Robotik sistemlerde çevrim içi yazılım geliştirme sürecinde kullanılan bileşenlerden yararlanabilme.
- Robotik sistemlerde çevrim içi yazılım geliştirme süreci bileşenlerini tanımlar.
- Robotik sistemlerde çevrim içi yazılım geliştirme süreci bileşenlerini kullanır (Tekrarlı İşlemler - Döngüler).
- Robotik sistemlerde çevrim içi yazılım geliştirme süreci bileşenlerini değerlendirir.
1) Döngü (Loop) Nedir ve Neden Kullanılır?
Döngü: Belirli bir komut veya komut grubunun, önceden belirlenmiş bir kurala ya da sayıya göre tekrar tekrar çalıştırılmasını sağlayan kontrol yapılarına denir.
Döngü kullanmanın 3 hayati faydası vardır:
- 1. Kod Kalabalığını Önler (Temiz Kod): 10 kez kare çizmek için 40 blok dizmek yerine, iç içe 2 döngüyle toplam 4 blokta aynı şekli çizebilirsiniz.
- 2. Bellek Tasarrufu Sağlar: Mikrodenetleyicilerin (örneğin Arduino Uno) hafızası çok kısıtlıdır. Döngüler program dosya boyutunu küçülterek robotun hafızasını korur.
- 3. Hızlı Düzenleme Kolaylığı: 50 yerde geçen bir bekleme süresini değiştirmek istediğinizde 50 satırı tek tek aramak yerine, döngü içindeki tek bir sayıyı değiştirmek yeterlidir.
2) Dizge'de Temel Döngü Blokları
Dizge ve blok tabanlı kodlama ortamlarında Kontrol (Turuncu) kategorisinde iki temel döngü yer alır:
| Blok Adı ve Şekli | Çalışma Mantığı | Kullanım Alanı |
|---|---|---|
| [... defa tekrarla] (Sayacı Belirli Döngü) | İçine yerleştirilen blokları belirtilen sayı kadar (örneğin 10 kez) çalıştırır ve süre dolunca döngüden çıkarak alttaki bloklara geçer. | Kare çizme (4 defa tekrarla), 10 basamak çıkma, 5 kez bip sesi çıkarma. |
| [sürekli tekrarla] (Sonsuz Döngü) | Kırmızı durdur butonuna basılana veya robotun gücü kesilene kadar içindeki komutları durmaksızın başa sarıp tekrar eder. Altına blok takılamaz (ağzı kapalıdır). | Robotik sistemlerin ana gövdesi, çevre kontrolü, sensör tarama, animasyon yürütme. |
3) Robotik Dünyasındaki Karşılığı: void loop()
Blok ortamında kullandığınız [sürekli tekrarla] bloğu, metin tabanlı robotik dillerde (C/C++ ve Arduino IDE) doğrudan void loop() fonksiyonudur.
Bir çizgi izleyen robot veya akıllı süpürge düşünün. Robot 5 saniye sonra durup kapanmaz; sürekli önündeki sensörleri kontrol etmek, engelleri taramak ve motorları ayarlamak zorundadır. İşte bu yüzden robotik yazılımların %99'u bir sonsuz döngü içerisinde nefes alır!
4) Kod Karşılaştırması: Döngüsüz vs Döngülü
Kare çizen bir robot kukla hazırlayalım:
| Yöntem 1: İlkel (Döngüsüz) | Yöntem 2: Profesyonel (Döngülü) |
|---|---|
1. [100 adım git]2. [90 derece dön]3. [100 adım git]4. [90 derece dön]5. [100 adım git]6. [90 derece dön]7. [100 adım git]8. [90 derece dön](Toplam 8 blok — uzun, yorucu ve hata yapmaya açık!) | 1. [4 defa tekrarla]➔ [100 adım git]➔ [90 derece dön](Toplam sadece 3 blok — şık, esnek ve hafıza dostu!) |
5) Sınav Tarzı Örnek Sorular ve Çözümleri
A)
[10 defa tekrarla]B)
[sürekli tekrarla]C)
[1 saniye bekle]D)
[eğer ... ise]İşlemin elektrik kesilene kadar durmaksızın devam etmesi istendiği için sonsuz döngü sağlayan
[sürekli tekrarla] bloğu kullanılmalıdır.[sürekli tekrarla] bloğunun alt ucunda neden diğer blokları takmak için bir çıkıntı (tırnak) bulunmaz?6) 10. Hafta Özeti ve Altın İlkeler
- Tekrar varsa döngü vardır: Aynı kodu arka arkaya kopyalamak yerine her zaman uygun döngü bloğu tercih edilmelidir.
- Defa tekrarla: Adım sayısı baştan bilinen geometrik çizimler veya sayaçlı işler için idealdir.
- Sürekli tekrarla: Robotların kesintisiz çevre algılama ve karar verme mekanizmasının ana omurgasıdır.