Robotik sistemlerde algoritmik düşünebilme.
- Robotik sistemlerle çözülebilecek günlük hayat problemi belirler.
- Problemin girdi çıktılarını belirler.
- Problemin çözümüne ilişkin işlem adımlarını listeler.
- İşlem adımlarını akış şeması ile gösterir.
1) Algoritma ve Algoritmik Düşünme Nedir?
Algoritmik Düşünme: Karşılaştığımız karmaşık bir problemi doğrudan çözmeye çalışmak yerine; onu parçalara ayırma, önemli bilgileri öne çıkarma ve adım adım mantıksal bir çözüm yolu geliştirme becerisidir.
Algoritma: Bir problemi çözmek veya belirli bir amaca ulaşmak için tasarlanan, başlangıcı ve bitişi belli olan, sıralı ve sonlu mantıksal işlem adımlarıdır.
Başarılı bir robotik algoritmanın 4 temel özelliği olmalıdır:
- 1. Başlangıç ve Bitişi Olmalı: Nereden başlayacağı ve hedefe ne zaman ulaşacağı kesin olmalıdır.
- 2. Sıralı ve Mantıklı Olmalı: Adımların yeri rastgele değiştirilemez. (Örn: Motoru çalıştırmadan önce sensör verisini okumalıyız).
- 3. Açık ve Net Olmalı: Yorum farkına yer bırakmamalıdır. Robotlara "biraz bekle" veya "yaklaşınca dur" denilemez; "2 saniye bekle" veya "mesafe 15 cm'nin altına inince dur" denmelidir.
- 4. Sonlu Olmalı: Algoritma sonsuz bir belirsizlikte kaybolmamalı, her koşulda hedeflenen bir sonuca bağlanmalıdır.
Bir insana "Bana mutfaktan bir bardak su getir" dediğinizde; insan kapıyı açar, mutfağa gider, bardağı bulur, suyu doldurur ve getirir. Ara adımları zihninde otomatik tamamlar.
Ancak bir robota bunu yaptırmak için: "Ayağa kalk → 10 adım düz git → 90 derece sağa dön → Kapı kolunu algıla → Kolu 45 derece aşağı indir..." şeklinde en ince ayrıntısına kadar adım adım tarif etmeniz gerekir. Robotlar sezgileriyle hareket edemez, yalnızca algoritmalarına güvenir!
2) Robotik Problemleri Çözmenin 4 Altın Adımı
Robotik kodlamada her başarılı proje 4 temel aşamadan geçer:
| Aşama | Açıklama | Örnek Soru / Görev |
|---|---|---|
| 1. Problemi Belirle | Çözmek istediğimiz günlük hayat ihtiyacını veya aksaklığı net biçimde tarif etmek. | "Tatile gittiğimizde evdeki çiçeklerin susuz kalıp kuruması." |
| 2. Girdi ve Çıktıları Bul | Robotun çevreden hangi bilgiyi toplayacağını (Girdi) ve ne yapacağını (Çıktı) belirlemek. | Girdi: Toprağın nem değeri (Toprak Nem Sensörü) Çıktı: Su pompasının çalışması (Röle / Su Motoru) |
| 3. İşlem Adımlarını Sırala | Çözümün sözlü / metinsel algoritmasını mantıksal sırayla yazmak. | 1. Başla → 2. Nemi ölç → 3. Nem < %30 mu? → 4. Evet ise pompayı 3 sn çalıştır → 5. Bekle → 6. Başa dön. |
| 4. Akış Şemasıyla Göster | Metin halindeki adımları uluslararası geometrik sembollerle şemaya dökmek. | Elips, dikdörtgen ve karar eşkenar dörtgeni kullanarak akış diyagramını çizmek. |
3) Günlük Hayat Problemlerinde Girdi-İşlem-Çıktı Analizi
Bir problemi algoritmaya dökmeden önce mutlaka Girdi (Sensör) $ ightarrow$ İşlem (Koşul/Karar) $ ightarrow$ Çıktı (Eyleyici) tablosunu çıkarmalıyız:
| Günlük Hayat Robotik Problemi | Girdi (Sensör Bilgisi) | İşlem / Karar Mekanizması | Çıktı (Fiziksel Eylem) |
|---|---|---|---|
| 🌱 Akıllı Saksı Sulama | Toprak Nem Sensörü | Nem değeri %30'un altına düştü mü? | Su pompası rölesi açılır, su püskürtülür |
| 💡 Akıllı Gece / Sokak Lambası | LDR Işık Sensörü | Ortam aydınlığı 200 lüksün altına indi mi? | LED / Sokak lambası yakılır |
| 🚗 Engelden Kaçan Robot | Ultrasonik Mesafe Sensörü | Öndeki engel mesafesi 15 cm'den az mı? | Tekerlek motorları durdurulur ve ters çevrilir |
| 🧴 Temassız Dezenfektan Dispenseri | Kızılötesi (IR) Engel Sensörü | Cihazın altına el uzatıldı mı? | Mini servo motor basma kolunu iter |
| 🚨 Yangın Algılama ve Söndürme | Alev / Gaz Sensörü | Ortamda duman veya alev tespit edildi mi? | Buzzer siren çalar, fan veya söndürme vanası açılır |
4) Akış Şeması Nedir ve Geometrik Sembolleri Nelerdir?
Akış Şeması (Flowchart): Bir algoritmanın mantıksal adımlarını, karar noktalarını ve akış yönünü standart geometrik semboller ve oklar yardımıyla görselleştiren şemadır.
Neden akış şeması kullanırız? Çünkü karmaşık bir yazılımı metin olarak okumak zordur; akış şeması sayesinde hatanın nerede olduğunu (hata ayıklama / debugging) tek bakışta görürüz.
| Geometrik Şekil | Sembol Adı | Görevi ve Anlamı | Robotik Kodlama Örneği |
|---|---|---|---|
| Elips / Oval | Başla / Bitir | Algoritmanın nerede başlayacağını ve nerede sonlanacağını belirtir. | "BAŞLA" veya "DUR" |
| Paralelkenar | Veri Girişi / Girdi | Kullanıcıdan veya sensörlerden sisteme bilgi/veri okunduğunu gösterir. | "LDR ışık değerini oku", "Nem değerini al" |
| Dikdörtgen | İşlem / Eylem | Hesaplama yapmayı, değişken tanımlamayı veya bir çıktıyı çalıştırmayı gösterir. | "Motoru ileri çalıştır", "LED'i yak", "Sayacı 1 artır" |
| Eşkenar Dörtgen (Baklava) | Karar / Koşul (Eğer) | Bir şartı sınar. İçinden iki ok çıkar: EVET (Doğru) ve HAYIR (Yanlış). | "Mesafe < 20 cm mi?", "Işık < 100 mü?" |
| Akış Okları | Akış Yönü | İşlemlerin hangi sırayla ve yönde icra edileceğini gösterir. | Yukarıdan aşağıya veya şart sonucuna yönlendirir |
5) Uygulamalı Robotik Akış Şeması İncelemesi: Akıllı Saksı Sulama
Öğrencimiz Deniz'in saksı sulama projesini adım adım algoritmaya ve akış şemasına dönüştürelim:
Adım 1: Başla.
Adım 2: Toprak nem sensöründen nem değerini oku (Girdi).
Adım 3: Nem değeri %30'dan küçük mü? (Karar / Eşkenar Dörtgen)
• EVET ise: Su pompasını aç, 3 saniye su ver, pompayı kapat (İşlem).
• HAYIR ise: Pompayı kapalı tut, bekle.
Adım 4: 10 saniye bekle.
Adım 5: Adım 2'ye geri dön (Sürekli Döngü / Loop).
[ELİPS: BAŞLA] ➔[PARALELKENAR: Nem Değerini Oku] ➔<BAKLAVA: Nem < %30 mu?>├── [EVET] ➔
[DİKDÖRTGEN: Su Pompasını Çalıştır] ➔ [DİKDÖRTGEN: 3 sn Bekle ve Durdur] ➔ [Bağlantı]└── [HAYIR] ➔
[DİKDÖRTGEN: Pompayı Kapalı Tut] ➔ [Bağlantı][Bağlantı] ➔
[DİKDÖRTGEN: 10 Saniye Bekle] ➔ (Ok yukarı, Nem Değerini Oku adımına döner)6) Sınav Tarzı Örnek Sorular ve Çözümleri
A) Dikdörtgen B) Paralelkenar C) Eşkenar Dörtgen (Baklava) D) Elips
Çünkü "Mesafe 15 cm'den küçük mü?" sorusu bir karar / koşul (eğer) adımıdır. Şartın sonucuna göre robot "Evet" veya "Hayır" yönüne dallanacaktır. Karar işlemleri eşkenar dörtgen sembolü ile gösterilir.
1. Başla
2. LED lambayı yak
3. LDR sensöründen ışık değerini oku
4. Işık < 50 lüks ise 2. adıma git
Ali'nin hazırladığı bu algoritmada hangi mantık hatası yapılmıştır ve sistem nasıl düzelir?
Mantık Hatası: Ali ışık değerini okumadan (girdi almadan) önce lambayı yakmıştır. Yani gündüz hava aydınlık olsa dahi lamba doğrudan yanarak başlayacaktır.
Düzeltme: Önce LDR ile ışık seviyesi ölçülmeli (Girdi), ardından ortamın karanlık olup olmadığı kıyaslanmalı (Karar), karanlıksa lamba yakılmalıdır (Çıktı).
7) 3. Hafta Özeti ve Altın İlkeler
- Robotun zihni algoritmadır: Donanım ancak doğru kurgulanmış sıralı ve sonlu adımlarla anlam kazanır.
- Her problemin 3 ayağı: Girdi (Sensör bilgisi), İşlem (Karar/Koşul), Çıktı (Motor/LED eylemi).
- Akış şeması geometrisi: Başla/Bitir ➔ Elips, Veri Girişi ➔ Paralelkenar, İşlem/Eylem ➔ Dikdörtgen, Karar/Şart ➔ Eşkenar Dörtgen.
- Hata ayıklama şemayla kolaylaşır: Kod yazmaya başlamadan önce çizilen akış şeması projedeki mantık hatalarını erkenden önler.