Test: Dört Tekeri Tek Tek Doğrula
Mecanumda "yükle ve sür" yürümez. Dört motordan biri bile ters dönerse robot tuhaf davranır, ve sebebini sürerek bulamazsın. Bu derste bir protokol öğreneceksin: her tekeri havadayken tek tek doğrularsın, desenler tutana kadar robot yere inmez. Bittiğinde robotun ilk kez üç yönde birden kayarak sürülecek.
Kanca: aynı kod, farklı robot (10 dk)
Videodaki iki robota tıpatıp aynı kod yüklendi. Biri düzgün ileri gitti, diğeri olduğu yerde döndü. Kod aynıysa hata kodda olamaz, değil mi? İşte mecanumun kilit fikri burada: bir mecanum robotta iki ayrı yer bozulabilir. Kod (bir motorun hangi yöne döndüğü) bozulabilir, ya da mekanik (tekerlerin köşelere nasıl yerleştiği) bozulabilir. İkisi de aynı belirtiyi verir: robot yanlış gider.
Sınıfça konuş: senin robotun ileri komutunda düz gitmezse, bunun bir kod hatası mı yoksa bir montaj hatası mı olduğunu nasıl anlarsın? Şu an cevabın yoksa sorun değil, bu dersin tamamı o cevabı veriyor.
Bu yüzden robotu hemen yere koyup sürmeyeceğiz. Önce askıya alıp dört tekeri tek tek sorgulayacağız. Bir robotu havada test etmek, onu yere koyup tahmin etmekten her zaman daha hızlı sonuç verir.
Askıda desen testi: tahmin et, dene, gözle (20 dk)
Robotu yükseltiye al: dört teker de havada dönebilmeli, kablolar toplu olsun. Pili tak, telefondan robotun ağına bağlan, Driver Station'da Init ve sonra Start.
Testin tamamı üç deseni robotunla karşılaştırmaktan ibaret. Aşağıdaki tabloyu yazdır ya da yanında açık tut. FL = ön sol, FR = ön sağ, BL = arka sol, BR = arka sağ köşe.
| Komut | FL | FR | BL | BR |
|---|---|---|---|---|
| İleri (sol çubuk yukarı) | ileri | ileri | ileri | ileri |
| Yan kay (sol çubuk sağa) | ileri | geri | geri | ileri |
| Dön (sağ çubuk sağa) | ileri | geri | ileri | geri |
Her testte önce tahmin et, sonra dene, sonra gözle. Sırayı bozma, çünkü sıra teşhisin kendisidir.
1. İleri testi. Sol çubuğu hafifçe ileri it. Beklenen: dört teker de robotu ileri götürecek yönde döner. Her köşeye tek tek bak. Ters döneni not et; köşe etiketleri sayesinde hangi motor olduğunu biliyorsun. Ters dönen bir motoru düzeltmek için o motorun iki sinyal pinini kodda yer değiştirirsin (aşağıda nasıl olduğu var). Değiştir, yeniden yükle, tekrar bak. Dört teker de doğru olana kadar bu adımdan çıkma.
2. Yan kayma testi. Sol çubuğu sağa yatır. Beklenen desen tabloda: FL ileri, FR geri, BL geri, BR ileri. Şimdi dikkatli ol: ileri testini geçtin ama bu desen tutmuyorsa, sorun kodda değil. Tekerlerin köşelere yerleşiminde. Ders 1'deki X desenini yeniden kontrol et; büyük ihtimalle iki teker yer değiştirecek.
3. Dönüş testi. Sağ çubuğu sağa yatır. Beklenen: sol taraftaki iki teker (FL, BL) ileri, sağdaki iki teker (FR, BR) geri döner. Robot havada kendi ekseninde dönüyormuş gibi görünmeli.
4. Stop kontrolü. Tekerler dönerken Stop'a bas. Dördü de anında durmalı. Durmuyorsa robotu yere indirme.
Bir motorun pin çiftini kodda yer değiştirmek şöyle görünür. Yazılım dersinden gelen kodda her köşenin iki sinyal pini var:
const int FL_RPWM = 10, FL_LPWM = 11; // on sol motorun iki sinyal pini
const int FR_RPWM = 12, FR_LPWM = 13; // on sag motorun iki sinyal pini
const int BL_RPWM = 14, BL_LPWM = 15; // arka sol motorun iki sinyal pini
const int BR_RPWM = 16, BR_LPWM = 17; // arka sag motorun iki sinyal pini
Diyelim ön sol teker ileri komutunda geri dönüyor. O motorun iki pin değerini yer değiştir: FL_RPWM = 11, FL_LPWM = 10. Tek yaptığın ileri ve geri sinyallerini takas etmek. Yeniden yükle ve ileri testini tekrarla. Sadece hatalı motora dokun, doğru dönenlere elleme.
Kavram köprüsü: kod mu, mekanik mi? (7 dk)
Şimdi bu protokolün gizli dersini adlandıralım. Her testin ne doğruladığı farklı:
- İleri testi motor yönlerini doğrular. Bu bir kod sorusudur: her motorun pin çifti doğru sırada mı? Buradaki hatayı kodda pin takasıyla çözersin.
- Yan kayma testi tekerlek yerleşimini doğrular. Bu bir mekanik sorusudur: makaralar X desenini oluşturacak şekilde doğru köşelerde mi? Buradaki hatayı koda dokunmadan, tekerleri yer değiştirerek çözersin.
Bu ayrım sana bir teşhis kuralı verir:
- İleri düzgün ama yan kayma bozuksa: koda dokunma, tekerlere bak.
- İkisi de bozuksa: önce ileriyi düzelt, sonra yan kaymaya geç. Sıra bu yüzden önemli; ileriyi düzeltmeden yan kaymayı okuyamazsın.
Videodaki dönen robotu hatırla. Kod aynıydı ama bir teker ters yerleşmişti. Yani hata mekanikteydi, ve ne kadar kod okusan bulamazdın. İyi bir robotçu hatayı aramaz, hatayı bölgesine sıkıştırır: önce hangi yarıda olduğunu bulur, sonra orada çözer.
Uygulama: bozuk robot istasyonları (15 dk)
Şimdi teşhisçi sensin. Öğretmenin sınıfa 2-3 "bozuk robot" istasyonu kurdu. Her istasyonda bir robot kasıtlı olarak bozuk: bazısında bir motorun pin çifti ters (kod hatası), bazısında bir teker yanlış köşede (mekanik hata).
Küçük gruplar halinde her istasyona uğra ve şu yarışı oyna: bozuk olan desen mi, kod mu? Kural şu, robota ilk dokunuşundan önce tanı koyacaksın.
Her istasyonda üç adım izle:
- İleri ve yan kayma testini askıda çalıştır. Hangi desen bozuk, onu bul.
- Teşhis kuralını uygula. Sadece yan kayma bozuksa "mekanik" de. İleri bozuksa "kod" de. İkisi de bozuksa hangisini önce düzelteceğini söyle.
- Kağıda tanını yaz, sonra düzelt. Kod hatasıysa pin çiftini takas et; mekanik hataysa tekeri doğru köşeye taşı. Robot üç deseni de geçince istasyon çözülmüş sayılır.
Grupların tanılarını sınıfça karşılaştır. En hızlı doğru teşhis kazanır, ama düzeltmeden önce yanlış tanı koyan gruba süre eklenir. Amaç hızlı dokunmak değil, doğru düşünmek.
Ders sonu kontrolü (7 dk)
Kendini yokla. Aşağıdakilerin hepsine "evet" diyebiliyor musun?
- Üç desen testi de (ileri, yan kayma, dönüş) tabloya birebir uyuyor.
- Hangi motorların pin çiftini takas ettiğini ve neden ettiğini anlatabiliyorum.
- "Kod hatası mı, teker yerleşimi mi?" sorusuna hangi testin cevap verdiğini biliyorum.
- Robotu yerde üç ekseni birlikte kullanarak sürdüm.
Sorun giderme tablosu, takıldığın yerde:
| Belirti | Muhtemel neden | Çözüm |
|---|---|---|
| İleri komutunda bir teker ters | Motor yönü montajdan ters bağlı | O motorun iki sinyal pinini kodda yer değiştir |
| İleri düzgün, yan kaymada robot dönüyor | X deseni bozuk: tekerler yanlış köşede | Ders 1 şemasına göre çapraz tekerleri yer değiştir |
| Yan kaymada robot çapraz gidiyor | Bir sürücü yanlış pin çiftine bağlı, köşeler karışmış | Etiketleri kontrol et; her köşeyi sürücü sürücü doğrula |
| Yan kayma zayıf, tekerler kayıyor | Zemin uygun değil ya da ağırlık dengesiz | Sert düz zeminde dene; pili merkeze yakın sabitle |
| Bir motor hiç dönmüyor | O sürücünün güç ya da sinyal bağlantısı eksik | Önce güç, sonra sinyal jumperlarını izle; şüpheli sürücüyü sağlam köşeyle değiştirerek arızayı ayır |
| Yük altında robot resetleniyor | Dört motorun akımı beslemeyi zorluyor | Pili şarj et, güç bağlantılarını sık; sinyal kablolarını güç hattından ayır |
Günlük hayat bağı: bir teknisyen bozuk bir cihazı hemen açıp parça sökmez. Önce arızayı bir bölgeye sıkıştıracak testler yapar; "sorun güç katında mı, sinyal katında mı?" Senin ileri ve yan kayma testin de tam olarak bu: koca bir problemi iki küçük soruya böler.
Erken bitirene ek görev
Robotun üç deseni de geçtiyse ve zamanın kaldıysa:
- Kör teşhis. Bir arkadaşın senin robotuna gizlice tek bir hata soksun (bir pin çiftini takas etsin ya da bir tekeri taşısın). Robotu görmeden, yalnız desen testleriyle hatanın kod mu mekanik mi olduğunu ve hangi köşede olduğunu bul.
- Köşegen sürüş. Yalnız sağ ön köşeye doğru kaymak için sol çubuğu çapraz tut. Dört tekerin bu komutta ne yapması gerektiğini önce tabloya bakmadan tahmin et, sonra askıda doğrula.