Scratch ile Robotik Kodlama Mantığı Nasıl Öğrenilir?
Robotik dünyasına adım atan çocukların ve yeni başlayan yetişkinlerin karşısına çıkan en caydırıcı zorluk; noktalı virgülleri unutmak, parantezleri kapatmamak veya değişken tiplerini yanlış tanımlamak gibi teknik sözdizimi (syntax) hatalarıdır. Bir çocuğun zihninde muazzam bir otonom robot fikri varken, sırf bir yazım yanlışı yüzünden projenin çalışmaması öğrenme hevesini kırabilir.
İşte tam bu noktada MIT Medya Laboratuvarı tarafından geliştirilen ve dünya çapında milyonlarca okulda kullanılan Scratch, robotik kodlama mantığını sözdizimi engeline takılmadan öğreten bir pedagojik devrimdir.
Bu rehberde; Scratch bloklarının arkasındaki gerçek robotik mimariyi, mantıksal düşünme bloklarını, mBlock ile sanal bloklardan fiziksel robotik donanımlara geçişi ve uygulamalı proje senaryolarını en ince ayrıntılarına kadar keşfedeceksiniz.
🧩 Scratch Blokları ile Gerçek Kodların Karşılaştırması
Pek çok kişi Scratch'i yalnızca "çocuk oyunu" sanır. Oysa Scratch'teki her bir renkli blok, NASA'nın roket yazılımlarında veya otonom Tesla araçlarında kullanılan C++ ve Python algoritmalarının birebir görsel karşılığıdır:
| Scratch Renk Kategorisi | Blok Örneği | Metin Tabanlı C++ Karşılığı | Robotik Görevi |
|---|---|---|---|
| Olaylar (Sarı) | Yeşil Bayrağa Tıklandığında | void setup() { ... } | Robotun enerjisi açıldığında çalışacak ilk ayarlar |
| Kontrol (Turuncu) | Sürekli Tekrarla | while(true) { ... } veya void loop() | Sensörleri durmaksızın dinleyen ana işletim döngüsü |
| Kontrol (Turuncu) | Eğer ... ise, Değilse | if (sensorVal == HIGH) { ... } else { ... } | Engelle karşılaşıldığında yön değiştirme kararı |
| Algılama (Açık Mavi) | Mavi Renge Dokunuyor mu? | digitalRead(TCRT5000_PIN) | Çizgi izleyen sensörün siyah/beyaz zemin okuması |
| Değişkenler (Turuncu) | Skor'u 1 Artır | score += 1; veya turSayisi++ | Robot tekerleğinin tur sayısını veya mesafeyi hafızada tutma |
| Hareket (Koyu Mavi) | 10 Adım Git | digitalWrite(IN1, HIGH); analogWrite(ENA, 200); | Motor sürücüye voltaj verip robotu ileri sürme |
| İşlemler (Yeşil) | < (Mesafe) < (20) > | if (mesafe < 20) | Sensör değerini sayısal eşikle karşılaştırma |
🧠 Robotik Mantığın 4 Temel Taşı Scratch ile Nasıl İnşa Edilir?
1. Sıralı Talimat Verme (Sequence)
Robotlar inisiyatif alamaz; komutları yukarıdan aşağıya doğru sırayla çalıştırır. Scratch üzerinde bir kuklaya "Önce 10 adım git, sonra 90 derece dön, sonra ses çıkar" dediğinizde çocuk mantıksal işlem sırasını öğrenir. Bir aşçının kek tarifindeki adımları karıştırması gibi, robotik kodlamada da adımların sırası sonucu tamamen değiştirir.
2. Döngü Mekanizması (Loops)
Bir robot süpürge tüm odayı temizleyene kadar hareket etmeyi bırakmamalıdır. Scratch'teki sürekli tekrarla bloğu, robotun mikrodenetleyicisine sürekli olarak "Sensörleri oku -> Karar ver -> Motoru döndür" komutunu vermenin en yalın görsel yoludur.
3. Şartlı Karar Ağaçları (Branching)
Otonom bir robotun akıllı sayılabilmesi için şartlara göre karar değiştirmesi gerekir:
Scratch'teki eğer - değilse blokları, karmaşık karar matrislerini çocukların gözünde somutlaştırır.
4. Olay Güdümlü Programlama (Event-Driven Architecture)
Modern robotlar sadece döngüyle çalışmaz; dış dünyadan gelen kesintilere (interrupts) anında cevap verir. Scratch'teki "Boşluk tuşuna basıldığında" veya "Kuklaya tıklandığında" blokları, acil stop butonları veya çarpışma tamponu sensörlerinin mantığını simgeler.
🚀 Scratch'ten Fiziksel Dünyaya Geçiş: mBlock ve Robotik Kartlar
Scratch'in resmi sürümü ekran üzerindeki sanal kuklaları kontrol eder. Ancak Scratch çekirdeği üzerine inşa edilen mBlock yazılımı sayesinde, aynı renkli blokları kullanarak gerçek Arduino, micro:bit ve Makeblock robotlarını kodlayabilirsiniz!
mBlock ile Adım Adım Robot Araba Kodlama Örneği:
[ Arduino Başladığında ]
[ Sürekli Tekrarla ]
[ Eğer < (Pin 9 Ultrasonik Mesafe) < 15 > ise ]
[ Sol Motor Hızı: 0 , Sağ Motor Hızı: 0 ] <-- DUR
[ 0.5 Saniye Bekle ]
[ Sol Motor Hızı: -150 , Sağ Motor Hızı: 150 ] <-- SAĞA DÖN
[ 0.4 Saniye Bekle ]
[ Değilse ]
[ Sol Motor Hızı: 180 , Sağ Motor Hızı: 180 ] <-- İLERİ GİT
Bu blokları dizdikten sonra "Yükle (Upload)" butonuna bastığınızda, mBlock arka planda bu görsel blokları anında hatasız bir Arduino C++ koduna dönüştürür ve USB kablosu üzerinden robota aktarır!
💡 Scratch Tabanlı 3 Eğlenceli Robotik Proje Senaryosu
1. Sanal Çizgi İzleyen Robot Simülatörü
2. Yapay Zeka Destekli Kamera ile Robot Kol Kontrolü
3. Akıllı Sera ve Otomatik Havalandırma Simülatörü
🎓 Pedagojik Bakış: Blok Kodlamadan Metin Tabanlı Dillere Ne Zaman Geçilmeli?
Eğitimcilerin en çok ikilemde kaldığı konu geçiş zamanlamasıdır:
❓ Sıkça Sorulan Sorular (SSS)
Scratch ile kodlama öğrenen biri daha sonra Python öğrenebilir mi?
Evet, hatta çok daha hızlı öğrenir. Çünkü programlamanın en zor kısmı sözdizimi değil, mantıksal problem çözme ve algoritma kurabilmektir. Scratch bu mantığı eksiksiz oturttuğu için öğrenciler metin tabanlı Python veya C++ dillerine geçerken sadece yeni kelimeleri öğrenir, mantık zaten zihinlerinde kuruludur.
Scratch ücretli midir ve internet olmadan çalışır mı?
Hayır. Scratch, MIT tarafından tüm dünya çocuklarının eşit eğitim alabilmesi amacıyla geliştirilmiş, %100 ücretsiz ve reklamsız bir eğitim platformudur. Hem tarayıcı üzerinden online hem de "Scratch Desktop" uygulamasıyla internetsiz olarak çalıştırılabilir.