🤖 Robotik ve Kodlama Dersi 1. Dönem 2. Yazılı Soruları ve Cevapları

Bu sınav, özellikle kodlama mantığı, söz dizimi, değişken/fonksiyon kullanımı ve seri iletişim gibi programlama temellerine odaklanmaktadır.


(Sadece Klasik Sorular – Toplam Puan: 100)

I. KODLAMA TEMELLERİ VE UYGULAMALARI (5 Soru / 70 Puan)

Soru 1: Söz Dizimi Kuralları ve Pin Ayarları (20 Puan)

Mikrodenetleyici kodlamada (Örn: Arduino IDE) kullanılan söz dizimi kurallarının (Syntax) temel amacını açıklayınız. Bir butondan veri okumak için kullanılan dijital pini, kodun hangi bölümünde ve hangi fonksiyon (alt program) ile GİRİŞ (INPUT) olarak ayarlarız? Sözde kodunu yazınız.

Cevap:

  • Söz Dizimi Amacı: Kodun, derleyici tarafından hatasız bir şekilde anlaşılabilmesi için uyulması gereken yazım, noktalama ve kural setidir.
  • Pin Ayarı: Pin ayarı setup() fonksiyonu içinde yapılır. Bu fonksiyon, program kartta başladıktan sonra sadece bir kez çalışır.
  • Sözde Kod:FONKSIYON setup(): pinMode(PIN_NUMARASI, INPUT) // Örn: pinMode(2, INPUT)

Soru 2: Değişken ve Operatör Uygulaması (15 Puan)

Bir mikrodenetleyici programında, bir sıcaklık sensöründen okunan Celsius değerini saklamak için uygun bir değişken tanımlayınız ve bu değeri 5 artırmak için kullanılan aritmetik operatörü kullanarak sözde kodunu yazınız.

Cevap:

  • Uygun Değişken: Sıcaklık genellikle ondalıklı olabileceğinden, ondalıklı sayı (float) tipinde bir değişken tanımlamak uygundur.
  • Sözde Kod:float sicaklik = 25.5; // Değişken tanımlama ve başlangıç değeri sicaklik = sicaklik + 5; // Veya kısaca: sicaklik += 5;
  • Kullanılan Operatör: Toplama (+) operatörü.

Soru 3: Söz Dizimi ve Noktalama İşareti (15 Puan)

Mikrodenetleyici kodlamasında, bir komut satırının sonuna mutlaka konulması gereken noktalama işaretinin (terminator) adını ve bu işaretin kodlama dilindeki işlevini açıklayınız. Bu işaretin unutulması durumunda ne tür bir hata ile karşılaşılır?

Cevap:

  • Noktalama İşareti: Noktalı Virgül (;)
  • İşlevi: Derleyiciye, o komutun veya ifadenin sona erdiğini bildirir. Tıpkı Türkçe’de cümlenin sonuna nokta konulması gibi, bu işaret kodun mantıksal olarak ayrılmasını sağlar.
  • Hata Türü: Söz Dizimi Hatası (Syntax Error) ile karşılaşılır. Program derlenmeyi durdurur ve karta yüklenemez.

Soru 4: Fonksiyonların Kullanımı (10 Puan)

Robotik kodlamada Fonksiyon (Metot) kullanmanın temel amacını açıklayınız. Programın sıkça tekrar eden (Örn: Motorları 1 saniye durdurma) bir görevi için, nasıl bir fonksiyon tanımlanabileceğini sözde kod ile gösteriniz.

Cevap:

  • Temel Amaç: Aynı kod bloğunu programın farklı yerlerinde defalarca yazmak yerine, o görevi tek bir isim altında gruplamak (tekrar kullanılabilirlik) ve kodun okunurluğunu artırmaktır.
  • Sözde Kod:// Parametre almayan bir fonksiyon tanımlama FONKSIYON MotorDurdur(): digitalWrite(MOTOR_PINI, LOW); // Motoru durdurma komutu delay(1000); // 1 saniye bekleme

Soru 5: Söz Dizimi Kuralları ve Kapsam (10 Puan)

Mikrodenetleyici kodlarında blokları ve kapsamı (scope) belirlemek için kullanılan temel işaret çifti nedir? Bu işaretin kullanımının değişkenler ve fonksiyonlar açısından önemini açıklayınız.

Cevap:

  • İşaret Çifti: Süslü Parantez ({})
  • Önemi: Bu işaretler, bir fonksiyonun (setup, loop, özel fonksiyonlar) veya bir kontrol yapısının (if, for) başlangıcını ve bitişini belirler. Ayrıca değişkenlerin kapsamını (hangi kod bloğu içinde geçerli olduğunu) tanımlar. Örneğin, { ve } arasında tanımlanan yerel bir değişken, bu blok dışından erişilemez.

II. SERİ İLETİŞİM YÖNTEMLERİ (2 Soru / 30 Puan)

Soru 6: Seri İletişim Amacı ve Hızı (15 Puan)

Mikrodenetleyici kartlar ve bilgisayar arasındaki Seri İletişimin temel amacı nedir? Seri iletişimi başlatmak için kullanılan baud rate (iletişim hızı) kavramını açıklayınız ve iki cihazın sağlıklı iletişim kurması için bu hızın nasıl ayarlanması gerektiğini belirtiniz.

Cevap:

  • Temel Amaç: Mikrodenetleyici kartın, hata ayıklama (debugging) verilerini, sensör okumalarını veya kullanıcıdan gelen komutları bilgisayara (Seri Monitör) veya diğer cihazlara tek bir hat üzerinden veri paketleri halinde göndermesini/almasını sağlamaktır.
  • Baud Rate: Saniyede aktarılan bit sayısını ifade eden iletişim hızı birimidir.
  • Ayarlama Şartı: Mikrodenetleyici kodunda ayarlanan baud rate değeri ile bilgisayar üzerindeki Seri Monitör programının ayarındaki baud rate değeri kesinlikle aynı olmak zorundadır. Aksi takdirde, veri alışverişi bozuk karakterler veya anlamsız çıktılarla sonuçlanır.

Soru 7: Seri İletişim Uygulaması (15 Puan)

Programın başında Seri İletişimi 9600 baud hızında başlatan ve programın ana döngüsü (loop) içinde “Robot Çalışıyor” mesajını bilgisayara her satırda bir kez gönderen bir mikrodenetleyici sözde kodunu yazınız.

Cevap:

// Serbestçe bir komut
FONKSIYON setup():
    // Seri iletişimi 9600 baud hızında başlatma
    Serial.begin(9600); 

FONKSIYON loop():
    // Veriyi gönder ve satır sonu ekleyerek alt satıra geç (println komutu)
    Serial.println("Robot Çalışıyor"); 
    
    // Yüksek hızlı iletişimi yavaşlatmak için kısa bir gecikme eklemek mantıklı olur
    delay(500); // 500 milisaniye bekleme

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir