Arıza Analizi

Bir robot çalışmadığında güç, bağlantı, sensör, kod ve mekaniği katman katman kontrol etmeyi öğren.

DERS PUSULASI

Bu sayfayı ne için kullanacaksın?

Ana fikir

Robot çalışmadığında panik yapmadan, güçten koda kadar katman katman ilerleyerek arızanın gerçekte nerede olduğunu bulmayı öğreniyoruz.

Üretilecek kanıt

Bir arkadaşının veya öğretmenin robotuna küçük, kolayca geri alınabilir bir "arıza" koymasını iste. Örneğin bir motor kablosunu çıkarsın veya kodda bir pin numarasını değiştirsin. Sonra sen bulmaya çalış. Robotu çalıştır ve belirtiyi bir cümleyle yaz. Örnek: "Sağ motor dönmüyor." Katman haritasına göre en alttan başla: güç, bağlantı, sensör, kod, mekanik.…

Kontrol tuzağı

Aynı anda birden çok şeyi değiştirmek İki kabloyu birden değiştirir ve robot çalışırsa, hangisinin sorun olduğunu asla öğrenemezsin. Her denemede tek değişken. En üst katmandan başlamak Çoğu kişi hemen koda dalar. Oysa sorunun büyük kısmı güç ve gevşek kablolardadır. Önce en basiti kontrol et. Seri monitörü…

Sonraki bağlantı

Proje: Engel Kaçan Robot

Modül kaynakları: Python Tutorial · Arduino Learn

SeviyeBaşlangıç
Yaş10–16
Süre25–35 dk
Ön koşulTest Parkuru Hazırlama
İçerikStandart ders · 1.350 kelime
Son güncelleme

Bir cümlelik özet

Robot çalışmadığında panik yapmadan, güçten koda kadar katman katman ilerleyerek arızanın gerçekte nerede olduğunu bulmayı öğreniyoruz.

Neden önemli?

Bir robot ilk denemede genellikle beklediğin gibi çalışmaz. Motorlar sessiz kalır, tekerlekler ters döner, sensör hep aynı değeri verir veya robot durup dururken kendi etrafında döner. Bu normaldir; mühendisliğin büyük bölümü "çalıştırmak" değil, "neden çalışmadığını anlamak"tır.

Sorun şu: bir robotta aynı anda beş farklı katman iş görür. Güç, kablolar, sensörler, kod ve mekanik. Bir belirti (örneğin robotun hareket etmemesi) bu katmanların herhangi birinden gelebilir. Rastgele denemek yerine sistemli bir yol izlersek, arızayı dakikalar içinde daraltabiliriz.

Bu derste öğrendiğin yöntem yalnız robotlar için değil; bozulan her sistem için geçerlidir. "Önce en basit ve en olası nedeni kontrol et" düşüncesi hayatın her yerinde işe yarar.

Beş katmanlı düşünmek

Bir robotu, üst üste dizilmiş beş katman olarak düşünebilirsin. Bir belirtiyle karşılaştığında, hangi katmanın sorumlu olduğunu bulmak isteriz.

Katmanlar neler?

  1. Güç: Piller, güç kaynağı, açma/kapama düğmesi. Enerji yoksa hiçbir şey çalışmaz.
  2. Bağlantı: Kablolar, jumper teller, breadboard, lehim noktaları, ortak toprak (GND).
  3. Sensör: Mesafe, çizgi, dokunma gibi girdi veren parçalar. Yanlış okuma yanlış karar demektir.
  4. Kod: Arduino'ya yüklediğin program. Mantık hatası burada gizlenir.
  5. Mekanik: Şasi, tekerlek, dişli, motor. Elektronik doğru olsa bile mekanik takılabilir.

Önemli bir kural: en alttan başla. Güç ve bağlantı en basit ama en sık nedenlerdir. Kod hatası aramaya başlamadan önce, pilin gerçekten dolu olduğundan emin ol. Deneyimli mühendisler bile zamanın çoğunda sorunun gevşek bir kabloda olduğunu görür.

Belirti bir şey söylemez, katman söyler

Aynı belirti farklı katmanlardan gelebilir. Örnek: "Robot düz gitmiyor, sağa kayıyor."

Bu yüzden "neden" diye tahmin etmek yerine, her katmanı tek tek test ederek olasılıkları eleriz.

Katman katman kontrol yöntemi

Şimdi pratik bir kontrol sırası kuralım. Her adımda tek bir şeyi değiştir ve tekrar dene. Aynı anda iki şeyi değiştirirsen, hangisinin işe yaradığını bilemezsin.

Adım adım kontrol listesi

1. GÜÇ
   - Açma düğmesi açık mı?
   - Piller dolu mu? (Yeni pille değiştirip dene)
   - Güç LED'i yanıyor mu?

2. BAĞLANTI
   - Tüm kablolar yerinde mi, gevşek var mı?
   - Motor sürücü ve Arduino ORTAK TOPRAK (GND) paylaşıyor mu?
   - Doğru pinlere mi bağlı?

3. SENSÖR
   - Seri monitörde sensör ne değer okuyor?
   - Elini önüne koyunca değer değişiyor mu?

4. KOD
   - Program yüklendi mi? (Yükleme onayını gör)
   - Doğru pin numaraları yazılı mı?

5. MEKANİK
   - Tekerlekler serbest dönüyor mu?
   - Dişli veya kablo sürtüyor mu?

Seri monitör: robotun içini görmek

Seri monitör (Serial Monitor), robotun "ne düşündüğünü" ekranda okumanı sağlar. Gözünle göremediğin sensör değerlerini ve kararların gerçekten çalışıp çalışmadığını buradan takip edersin.

Örneğin bir mesafe sensörünün değerini yazdırmak için:

void setup() {
  Serial.begin(9600);          // Seri iletişimi başlat
}

void loop() {
  int mesafe = readDistance(); // Sensörü oku
  Serial.print("Mesafe: ");
  Serial.println(mesafe);      // Değeri ekrana yaz
  delay(200);
}

Seri monitörü açtığında sürekli bir sayı akışı görürsün. Elini sensörün önüne koyduğunda sayı değişmiyorsa, sorun kodda değil sensörde veya bağlantıdadır. Bu tek satır, arızanın hangi katmanda olduğunu anında daraltır.

Kararı da yazdır

Yalnız sensör değerini değil, robotun verdiği kararı da yazdırabilirsin. Böylece "sensör doğru okuyor ama motor tepki vermiyor" durumunu görürsün.

if (mesafe < 15) {
  Serial.println("Karar: DUR");
  stopMotors();
} else {
  Serial.println("Karar: ILERLE");
  moveForward();
}

Eğer ekranda "Karar: DUR" yazıyor ama tekerlekler dönmeye devam ediyorsa, artık biliyorsun: kod doğru çalışıyor, sorun motor sürücüde veya mekaniktedir. Katmanı bulduk.

Örnek arıza-çözüm tablosu

Aşağıdaki tablo, sık karşılaşılan belirtileri hangi katmandan başlayarak kontrol edeceğini gösterir. Bunu bir başlangıç haritası gibi kullan.

Örnek arıza-çözüm tablosu tablosu
BelirtiÖnce bakOlası nedenİlk çözüm
Hiçbir şey çalışmıyorGüçDüğme kapalı, pil bitikDüğmeyi aç, pili değiştir
Arduino çalışıyor ama motorlar dönmüyorBağlantıOrtak GND yok, motor pili boşGND'yi birleştir, motor pilini kontrol et
Motor tek yöne dönüyorBağlantıMotor kabloları tersİki motor kablosunu yer değiştir
Sensör hep aynı değer veriyorSensör/BağlantıKablo gevşek, yanlış pinKabloyu ve pin numarasını kontrol et
Robot sağa/sola kayıyorMekanikTekerlek gevşek, dişli sürtüyorTekerleği sıkıştır, sürtmeyi gider
Kod yüklenmiyorKod/BağlantıYanlış port, USB gevşekDoğru portu seç, USB'yi tak
Robot rastgele davranıyorGüçPiller zayıf, gerilim düşükPilleri yenile

Dikkat: "Motorlar dönmüyor" belirtisinin en sık nedeni ortak toprak eksikliğidir. Arduino ile motor sürücü ayrı güç kaynaklarından besleniyorsa, GND hatlarının birbirine bağlı olması gerekir. Bu bir sonraki bölümdeki güvenlik notuyla da ilgilidir.

Mini uygulama

Bir arkadaşının veya öğretmenin robotuna küçük, kolayca geri alınabilir bir "arıza" koymasını iste. Örneğin bir motor kablosunu çıkarsın veya kodda bir pin numarasını değiştirsin. Sonra sen bulmaya çalış.

  1. Robotu çalıştır ve belirtiyi bir cümleyle yaz. Örnek: "Sağ motor dönmüyor."
  2. Katman haritasına göre en alttan başla: güç, bağlantı, sensör, kod, mekanik.
  3. Seri monitörü aç ve sensör ile karar satırlarını izle.
  4. Her adımda tek bir şey değiştir ve tekrar dene.
  5. Arızayı bulduğunda, hangi katmanda olduğunu ve nasıl bulduğunu bir not olarak yaz.

Bu alıştırmanın amacı arızayı hızlı bulmak değil, sistemli bulmaktır. Rastgele kablo çekiştirmek yerine haritayı takip et.

Sık yapılan hatalar

Aynı anda birden çok şeyi değiştirmek

İki kabloyu birden değiştirir ve robot çalışırsa, hangisinin sorun olduğunu asla öğrenemezsin. Her denemede tek değişken.

En üst katmandan başlamak

Çoğu kişi hemen koda dalar. Oysa sorunun büyük kısmı güç ve gevşek kablolardadır. Önce en basiti kontrol et.

Seri monitörü kullanmamak

Robotun içini göremezsen tahmin yürütürsün. Serial.println ile sensör değerini ve kararı yazdırmak, karanlıkta el feneri yakmak gibidir.

Ortak toprağı unutmak

Arduino ve motor sürücü ayrı pillerden besleniyorsa ve GND hatları birleşmemişse, motorlar çalışmaz veya rastgele davranır. En sık gizli arızalardan biridir.

Belirtiyi net yazmamak

"Robot bozuk" bir belirti değildir. "Robot ileri gidiyor ama engelde durmuyor" test edilebilir bir belirtidir. Net belirti, doğru katmana götürür.

Güvenlik notu

Arıza ararken robot beklenmedik anda hareket edebilir. Bu yüzden dikkatli ol:

Ders özeti

Kontrol soruları

  1. Bir robotta arıza aramaya neden en alt katmandan (güç) başlarız?
  2. Seri monitör hangi katmanların arızasını daraltmaya yardımcı olur ve nasıl?
  3. "Arduino çalışıyor ama motorlar dönmüyor" belirtisinde ilk kontrol edilecek en olası neden nedir?
  4. Neden her denemede yalnız tek bir şeyi değiştirmeliyiz?
  5. Motorları neden doğrudan Arduino pininden beslemeyip ayrı pil ile motor sürücü kullanırız?

Cevaplar

  1. Çünkü güç ve bağlantı hataları en sık görülen ve kontrolü en kolay nedenlerdir. Pil bitikse veya düğme kapalıysa üst katmanlarda hata aramak zaman kaybıdır.
  2. Sensör ve kod katmanlarını daraltır. Serial.println ile sensör değerini yazdırırsan, değer değişmiyorsa sorun sensör/bağlantıdadır; karar satırı doğru yazılıyor ama motor tepki vermiyorsa sorun motor/mekaniktedir.
  3. Ortak toprağın (GND) bağlı olmaması. Arduino ile motor sürücü ayrı güç kaynağı kullanıyorsa GND hatları birleşmezse motorlar çalışmaz. Motor pilinin boş olması da olasıdır.
  4. Aynı anda iki şey değiştirip robot çalışırsa hangi değişikliğin sorunu çözdüğünü bilemeyiz. Tek değişken, arızayı kesin olarak işaretlememizi sağlar.
  5. Motorlar yüksek akım çeker; Arduino pini bu akımı veremez ve zarar görür. Motor sürücü akımı ayrı pilden alır, Arduino yalnız kontrol sinyali gönderir; ortak toprak ile iki taraf aynı referansı paylaşır.

Kaynak ve doğrulama notu

“Arıza Analizi” dersi için doğrulama odağı Beş katmanlı düşünmek ile Belirti bir şey söylemez, katman söyler arasındaki ilişkinin örnekler üzerinde tutarlı çalışmasıdır. Robot davranışı yalnız kodla açıklanamaz; mekanik yapı, güç sistemi, sensör konumu ve zemin koşulları birlikte değerlendirilmelidir. Test sonuçları aynı parkurda birkaç tekrar yapılarak kaydedilmelidir.

Sonraki ders

Proje: Engel Kaçan Robot

Quiz’i BaşlatRobotik Sistemler bölümüne dön
SORU HAVUZU

Bu dersi 10 soruyla pekiştir

Bu ders için 20 soruluk bir havuz hazırlandı. Her başlangıçta 10 soru ve seçenekler yeniden karıştırılır.