İçeriğe atla
//

Bilim ve Teknoloji Üretmek İçin Buradayız!

Mesafe 0 Tuzağı: Sensör Hata Verdi, Engel Yok
Püf Noktası 06.08.2026 👁 2

Mesafe 0 Tuzağı: Sensör Hata Verdi, Engel Yok

⏱️ Tahmini okuma: 2 dk

Atölyede en sık yaşadığımız o saç baş yolduran anlardan birini konuşalım.

Öğrenci heyecanla gelir: Hocam kod bitti, her şey tamam, hadi deneyelim! Robotu büyük bir umutla koridorun başına koyarsınız. Koridor bomboş. Önünde ne duvar var ne engel. Ama robot hareket eder etmez birdenbire, sanki görünmez bir duvara çarpmış gibi panikle durur, geri kaçar ya da olduğu yerde anlamsızca dönmeye başlar.

Öğrencinin yüzü düşer: Ama hocam önü boştu, niye durdu? Siz tebessüm edersiniz... Çünkü robotun o an neyi yanlış yorumladığını biliyorsunuzdur.

Sensörün kafası karışınca ne olur?

Kaynak çoğu zaman o meşhur yarasa gözlü ultrasonik sensörümüzdür: HC-SR04. Ses dalgası gönderir, yankıyı bekler.

Ama gerçek hayat laboratuvar gibi değildir. Bazen ses kumaşta emilir, bazen açı terstir, yankı geri dönmez. Tam o an sensör ölçüm yapamaz. Arduino ya demek istediği şudur: Mesafeyi ölçemedim, bilmiyorum.

Bunu nasıl söyler? Yazılımcıların bilinen hata işaretiyle: koca bir 0 değeri göndererek.

Kardeş yazımızdan farkı: Robot Neden Hayalet Görür? yazısında rastgele yanlış ölçümleri (gürültüyü) ortalama ile süzüyorduk. Bu yazıda mesele başka: Sensör bilinçli olarak 0 = ölçüm başarısız diyor. 

Robotun masum matematik hatası

Öğrencinin kodunda genelde şu masum satır vardır:

if (mesafe < 15) {
  dur();
}

Sensör o an 0 gönderir. Robot saf saf hesaplar: 0, 15 ten küçük mü? Evet, hem de çok küçük!

Ve zavallı robot, burnunun duvara yapıştığını sanıp panik düğmesine basar. Ortada duvar yoktur. Sadece kafası karışmış, ölçüm yapamamış bir sensör vardır. Robot hayalet görmüyor; bir hata kodunu yanlış yorumluyor.

Tecrübe konuşuyor: Robota mantık öğretin

Ona şunu öğretmeliyiz: Bak, sana gelen 0, dibine kadar yaklaştın demek değildir. Sensör hata verdi demektir. Onu engel sanma, pas geç.

Eski düz mantık: Mesafe 15 ten küçükse dur.

Yeni tecrübeli mantık: Mesafe 15 ten küçükse ve mesafe 0 değilse dur.

if (mesafe > 0 && mesafe < 15) {
  dur();
}

İşte bu kadar. Bu küçük dokunuşla robot o hayalet sıfırları, yani hatalı ölçümleri engel sanmaz; sadece gerçek mesafelere tepki verir.

İsterseniz bunu ortalama filtreyle birlikte de kullanın: Önce birkaç ölçüm alın, ortalamayı hesaplayın; sonra kararda yine mesafe > 0 şartını unutmayın. İkisi birbirinin rakibi değil, tamamlayıcısıdır.

Unutmayalım; robotik biraz da böyledir: Mükemmel olmayan donanımları, akıllıca yazılmış kodlarla idare etme sanatı.

👨‍💻

İçerik Yazarı

Mustafa KARSLI

Bilişim Teknolojileri Öğretmeni

Bu içeriği paylaş

Bu sayfa işinize yaradı mı?

Bu yazıyı değerlendirin

5 yıldız üzerinden puanlayın — Google arama sonuçlarında yıldız görünmesine yardımcı olur.

/ 5 (0 oy)

Öğrenci paneli

Bu ders size atandıysa ilerlemenizi mustafakarsli.com öğrenci panelinden «Derslerim» sayfasında işaretleyebilirsiniz.

Derslerime git ↗

Mobil Erişim — QR Kod

QR

Telefonunuzla tarayın

📚 Benzer Makaleler

💬 Yorumlar

Henüz yorum yapılmamış.

Fikrini Belirt

Yorumlar yönetici onayından sonra yayınlanır. Küfür, hakaret, kişisel veri ve reklam içeren mesajlar reddedilir.