Görevi tasarla: plan, konfigürasyon ve iş bölümü
Bu modülde artık yeni bir komut ya da yeni bir parça öğrenmiyorsun. Elinde ilk yedi modülde öğrendiğin her şey var: sürüş, mekanizma ya da gripper, telemetri, otonom. Bu derste tek bir şey yapacaksın: koca bir görevi, henüz hiçbir tuşa basmadan, kağıt üstünde planlayacaksın. Bu ders bir yapım dersi değil, bir tasarım dersi. Sonraki derslerde robotu kuracak ve programlayacaksın; ama iyi bir plan olmadan başlarsan, o dersler dağınık geçer. Bugün o planı kuruyorsun.
Kanca: neden hemen başlamıyoruz? (10 dk)
Videodaki iki ekibe dikkat et. İkisinin de robotu aynı, görevi aynı, süresi aynı. Bir ekip on dakika tahtanın başında duruyor: sahayı çiziyor, rotayı okla gösteriyor, kim ne yapacak diye konuşuyor. Öteki ekip vakit kaybetmemek için hemen robotu kapıp sürmeye başlıyor. Sence yarışın sonunda hangisi görevi bitirir?
Sınıfa sor, önce tahmin etsinler:
- Hemen başlayan ekip zaman kazanıyor gibi görünüyor. Peki ilerde neden takılabilir?
- Sen büyük bir görev verilse (mesela bir odayı baştan aşağı düzenlemek) işe nereden başlardın: rastgele mi, yoksa önce bir plan yapıp mı?
Kesin cevabı şimdi söylemiyoruz. Şu kadarını söyleyelim: gerçek mühendis ekipleri, ister uzay aracı ister yarış robotu yapsınlar, işe her zaman kağıt ve planla başlar. Bugün sen de öyle yapacaksın.
Ana etkinlik: kağıt üstünde tasarla (20 dk)
Görevin ne olduğunu bir önceki derste konuştunuz. Hatırlatalım: robot başlangıç alanından çıkacak, bir yükü alacak, hedef bölgeye taşıyacak, oraya bırakacak ve park alanına dönecek. Şimdi bunu üç kararla kağıda döküyorsun. Ekipçe konuşun, ama kararı siz verin; bu derste hazır cevap yok, sadece boş şablonlar var.
Karar 1: Yükü neyle alacaksın? Robotunda yükü tutmak için iki yol öğrendin. Hangisinin sende olduğu kitine bağlı; ekipte hangisi varsa onun üstüne düşün.
| Seçenek | Nasıl çalışır | İyi olduğu iş |
|---|---|---|
| Mekanizma (M04) | Dişli sistemi buton basılıyken döner, bırakınca durur | İtmek, sarmak, çevirerek yükü hareket ettirmek |
| Gripper (M05) | Servo bir açıya gider ve orada tutar (kapat/aç) | Bir cismi kavrayıp kaldırmak ve bırakana kadar tutmak |
Yükünüz nasıl bir şey? Kavranacak bir kutu mu, itilecek bir cisim mi? Buna göre hangi düzeneği kullanacağınızı kağıda yazın ve tek cümleyle nedenini de yazın. Neden yazmak önemli: kararın gerekçesi, ilerde sıkışınca sizi doğru yolda tutar.
Karar 2: Kumanda eşlemesi. Robotu iki kişi süremez; bir tuşun iki işi olamaz. O yüzden hangi çubuğun ve hangi tuşun ne yapacağını şimdiden kağıda yazıyorsun. Aşağıdaki şablonun bir satırını örnek doldurdum; gerisini ekipçe siz doldurun.
| Kumanda | Kod karşılığı | Ne yapsın |
|---|---|---|
| Sol çubuk yukarı/aşağı | js.getLeftY() | İleri / geri sürüş |
| Sağ çubuk sağa/sola | js.getRightX() | ... (siz doldurun) |
| Sağ omuz tuşu | js.getRB() | ... (siz doldurun) |
| Sol omuz tuşu | js.getLB() | ... (siz doldurun) |
| A / B tuşu | js.getA() / js.getB() | ... (siz doldurun) |
Not: mekanizma seçtiyseniz omuz tuşlarını (basılıyken dönsün), gripper seçtiyseniz A/B tuşlarını (kapat/aç) kullanmanız işinize gelir. Ama son karar sizin; yeter ki bir tuşa tek bir iş düşsün.
Karar 3: Saha planı ve rota. Ders 1'de sahanın krokisini çizmiştiniz; onu önünüze alın, yeniden çizmeyin. Şimdi o krokinin üstüne robotun izleyeceği rotayı ayrıntılandırın: nerede duracak, nerede döneceğini, nerede yükü alacağını, nerede bırakacağını okla ve kısa notlarla gösterin. Kroki Ders 1'den hazır; bu derste ona sürüşün ayrıntısını ekliyorsunuz.
Bu üç kağıt sizin tasarımınız. Henüz hiçbir tuşa basmadınız ama robotun ne yapacağını artık biliyorsunuz.
Kavram köprüsü: tasarım, ayrıştırma ve kısıt (7 dk)
Az önce yaptığın şeyin adını koyalım. Büyük bir işi yapıma başlamadan önce parçalarına ayırıp planlamaya tasarım denir. İyi mühendisler koda ya da montaja atlamadan önce hep bunu yapar.
İçinde üç fikir var:
- Görev ayrıştırma: Koca "depo görevi"ni tek parça olarak düşünmedin; onu "çık, git, hizala, al, taşı, bırak, dön, park et" gibi küçük adımlara böldün. Büyük bir iş korkutucudur; küçük adımlar tek tek yapılabilir. Bir görevi çözmenin ilk kuralı: onu yapılabilir parçalara böl.
- Kısıt: Yükü neyle alacağına canın istediği gibi karar vermedin; kitinde ne varsa ona göre karar verdin. Bir tasarımı sınırlayan bu gerçeklere kısıt denir. Kısıt kötü bir şey değil; kararı netleştirir. Mühendis her zaman elindeki parçayla, elindeki süreyle, elindeki alanla çalışır.
- Ödünleşim: Mekanizma da gripper de bir işi iyi yapar, ötekini değil. Birini seçince ötekinden vazgeçtin. Bir seçeneğin iyi yanı için başka bir seçenekten vazgeçmeye ödünleşim denir. Tasarımın çoğu böyle seçimlerden oluşur.
Tasarım, "en havalı robotu yap" değildir. Tasarım, "elimdeki parçayla, bu sürede, bu görevi en güvenilir nasıl bitiririm?" sorusudur.
Uygulama: görev listesi ve zaman kutulama (15 dk)
Şimdi tasarımını yapılacaklar listesine çeviriyorsun. Saha planındaki rotaya bakarak görevi sıralı adımlara böl. İşte doldurulmaya hazır bir şablon; sağ sütunları ekipçe siz doldurun.
| # | Adım | Robot ne yapar | Hangi kumanda / faz |
|---|---|---|---|
| 1 | Başlangıçtan çık | İleri sür | ... |
| 2 | Yüke yaklaş ve hizalan | ... | ... |
| 3 | Yükü al | ... | ... |
| 4 | Hedefe taşı | ... | ... |
| 5 | Bırak | ... | ... |
| 6 | Park alanına dön | ... | ... |
Maçın başında (ilk 30 saniyede) otonom faz var; onu da listeye kaba bir not olarak ekleyin ("maç başı: başlangıç karesinden çıkıp yüke doğru kendi başına gitsin" gibi). Ayrıntısını sonraki derste çözeceksiniz; şimdilik yerini tutmanız yeter.
Şimdi zaman kutulama. Kalan derslerde yapmanız gereken işler (kur, programla, dene, düzelt) sınırlı sürede sığmalı. Her işe kabaca kaç dakika ayıracağınızı önceden yazmaya zaman kutulama denir. Bir kutuya sığmazsanız, o işi kısaltır ya da bölersiniz. Böylece son derste "vaktimiz kalmadı" demezsiniz.
| İş | Ayrılan süre | Kim yapacak |
|---|---|---|
| Mekanizmayı/gripper'ı tak ve dene | ... dk | ... |
| Kumanda eşlemesini koda geçir | ... dk | ... |
| Rotayı baştan sona bir kez dene | ... dk | ... |
| Otonom bonusu ayarla | ... dk | ... |
Son sütun iş bölümü. Bir robot ekibi tek kişiden çok daha hızlıdır, ama yalnız herkesin işi belliyse. Ders 1'de dağıttığınız dört rolü hatırlayın ve bu derste kimin ne yapacağını kağıda yazın: kim Sürücü (kumandayı tutar), kim Kodcu (kodu yazar ve yükler), kim Kayıtçı (telemetriyi okur, kronometreyi tutar, notu alır), kim Gözcü (sahaya bakıp sürücüye seslenir). Roller ders içinde değişebilir, ama her an kimin ne yaptığı belli olmalı. Aynı anda iki kişi kumandaya uzanırsa robot da siz de şaşırırsınız.
Pekiştirme ve değerlendirme (6 dk)
Kısa öz-kontrol. Kağıtlara bakmadan cevaplamayı deneyin:
- Görevinizi kaç adıma böldünüz? En zor adım hangisi, neden?
- Yükü almak için mekanizmayı mı gripper'ı mı seçtiniz? Bu kararın tek cümlelik gerekçesi neydi?
- Kumanda eşlemenizde tek bir tuşa iki iş düşmüş mü? Kontrol edin; düşmüşse şimdi düzeltin.
- Ekipte kim Sürücü, kim Kodcu, kim Kayıtçı, kim Gözcü? Herkes kendi rolünü söyleyebiliyor mu?
Günlük hayat bağı: büyük bir doğum günü partisi düzenlediğini düşün. Önce işi parçalara bölersin (davet, süsleme, ikram), her parçaya süre ve kişi ayırırsın, sıralarsın. Bugün robot için yaptığın tam olarak buydu. Ayrıştırma, iş bölümü ve zaman kutulama, robotta da hayatta da aynı işe yarar.
Erken bitirene ek görev: Plan B ve risk (opsiyonel)
Planınız bitti mi? O zaman planınızı zorlayın.
- En zayıf halka. Görev listenizdeki adımlara tek tek bakın ve "burada en kolay ne ters gider?" diye sorun. Yük düşerse? Robot hedefi kaçırırsa? En riskli adımın yanına bir Plan B cümlesi yazın. Gerçek ekipler en çok bu yüzden kazanır: bir şey ters gittiğinde ne yapacaklarını önceden bilirler.
- Otonom taslağı. Maç başındaki (ilk 30 saniyelik) otonom bonusu için kaba bir faz taslağı yazın; henüz kod değil, sadece kağıtta sıra: "Faz 0: 2 sn ileri. Faz 1: dön. Faz 2: dur." Otonom modülünde fazları böyle sıralamayı öğrenmiştiniz; burada onu kendi görevinize uyarlıyorsunuz. Süreleri sonraki derste ölçerek bulacaksınız.