Bir cümlelik özet
Mesafe sensörü, bir nesnenin ne kadar uzakta olduğunu ölçer; robotların önlerindeki engeli görüp çarpmadan durmasını sağlayan en önemli duyulardan biridir.
Neden önemli?
Bir robotun gözü yoktur. Önünde bir duvar mı, bir sandalye mi, yoksa boş bir yol mu olduğunu bilmez. Mesafe sensörü tam burada devreye girer: robota "önümde bir şey var ve şu kadar yakın" bilgisini verir.
Bu bilgi olmadan bir robot her yere çarpar. Mesafe sensörüyle ise robot durabilir, yön değiştirebilir veya yavaşlayabilir. Buna robotikte engel kaçınma denir ve neredeyse her hareketli robotun temel becerisidir.
Aslında bu sensörü günlük hayatta zaten görüyorsun:
- Araçların park sensörleri, duvara yaklaşınca daha sık öten uyarı sesini bu mantıkla üretir.
- Otomatik kapılar, önüne biri geldiğini algılayıp açılır.
Robot kolun, oyuncak arabanın ya da bir çizgi izleyen robotun "düşünmeden" durabilmesinin arkasında çoğu zaman bir mesafe sensörü vardır.
Ultrasonik mesafe sensörü nasıl çalışır?
En çok kullanılan mesafe sensörü ultrasonik olanıdır. İsmi karışık görünse de fikri çok basittir: ses dalgasıyla mesafe ölçer.
Yarasa gibi düşün
Yarasalar karanlıkta uçarken bir ses çıkarır. Bu ses bir nesneye çarpıp geri döner. Yarasa, sesin geri dönme süresine bakarak nesnenin ne kadar uzakta olduğunu anlar. Buna ekolokasyon denir.
Ultrasonik sensör de tam olarak bunu yapar:
- Sensör, kulağımızın duyamayacağı kadar yüksek frekanslı bir ses dalgası gönderir (bu yüzden "ultrasonik").
- Ses dalgası önündeki nesneye çarpar ve geri yansır.
- Sensör, sesin gidip gelme süresini ölçer.
- Ses havada sabit bir hızla yayıldığı için, bu süreden mesafeyi hesaplar.
Süreden mesafeye
Ses hava içinde yaklaşık saniyede 340 metre yol alır. Sensör "sesi gönderdim ve tam olarak şu kadar sonra geri geldi" der. Süre uzunsa nesne uzaktır; süre kısaysa nesne yakındır.
Bu hesabı bizim için genellikle bir kütüphane ya da hazır blok yapar. Biz çoğu zaman doğrudan santimetre cinsinden bir sayı okuruz. Örneğin sensör bize mesafe = 25 verdiğinde, "önümde 25 santimetre ötede bir şey var" demek ister.
Günlük hayattan iki örnek
- Araba park sensörü: Geri geri park ederken duvara yaklaştıkça "bip... bip... biiip" sesi hızlanır. Sensör mesafeyi sürekli ölçer ve mesafe küçüldükçe uyarıyı sıklaştırır.
- Çöp kutusunun otomatik kapağı: Elini yaklaştırınca açılan kutular, elin belirli bir mesafeden yakına geldiğini algılar ve motoru çalıştırır.
Sensörü okumak ve engel algılamak
Mesafe sensöründen tek başına bir sayı almak yeterli değildir. Asıl iş, o sayıya bakıp bir karar vermektir. Bunun için Algoritmalar dersinden hatırladığımız koşul yapısını kullanırız.
Temel fikir şudur: bir eşik (sınır değer) belirle. Ölçülen mesafe bu eşiğin altına düşerse, "engel var" kabul et.
Sözde kod: yaklaşınca dur
Başla
Sürekli tekrarla:
mesafe = sensörü oku
Eğer mesafe 15 santimetreden küçükse
motorları durdur
kırmızı LED'i yak
Değilse
ileri git
yeşil LED'i yak
Bitir
Burada 15 santimetre bizim eşiğimiz. Robot her an mesafeyi ölçer. Bir şey 15 santimetreden daha yakına gelirse durur ve uyarı verir; yol boşsa hareketine devam eder.
micro:bit tarzı örnek
Aşağıdaki kısa örnek, ölçülen mesafeye göre farklı davranır. oku_mesafe() yerine kullandığın sensöre uygun blok ya da fonksiyon gelir; mantık aynı kalır.
while True:
mesafe = oku_mesafe() # santimetre cinsinden
if mesafe < 15:
motorlari_durdur() # engel çok yakın
goster("DUR")
else:
ileri_git(hiz=30) # yol boş, yavaşça ilerle
İki eşikli daha akıllı bir örnek
Robotu tek adımda durdurmak yerine, önce yavaşlatıp sonra durdurmak daha yumuşak olur. Bunu iki eşikle yapabiliriz.
mesafe = sensörü oku
Eğer mesafe 10 santimetreden küçükse
dur
Değilse eğer mesafe 25 santimetreden küçükse
yavaşla
Değilse
normal hızda ilerle
Bu, gerçek robotların engele çarpmadan nazikçe durmasını sağlayan mantığa çok yakındır.
Mini uygulama
Bu uygulamayı sensörün olmadan da, kağıt üzerinde düşünerek yapabilirsin.
Amaç: Bir masa üstü robotunun masadan düşmeden ilerlemesi.
- Robotun önüne bir mesafe sensörü taktığını düşün.
- Bir eşik değeri seç (örneğin 12 santimetre).
- Aşağıdaki boşluğu kendi mantığınla doldur:
mesafe = sensörü oku
Eğer mesafe ____ santimetreden küçükse
____
Değilse
____
Sorular:
- Eşiği çok büyük seçersen (örneğin 60 santimetre) ne olur? Robot çok erken mi durur?
- Eşiği çok küçük seçersen (örneğin 2 santimetre) hangi tehlike ortaya çıkar?
- Robotun durduktan sonra ne yapmasını isterdin: geri mi gitsin, sağa mı dönsün?
Tek bir doğru cevap yoktur. Amaç, eşiğin robotun davranışını nasıl değiştirdiğini görmektir.
Uygulama laboratuvarı: Mesafe Sensörü
Mesafe Sensörü konusunu kalıcı hâle getirmenin en iyi yolu, kavramı küçük ve ölçülebilir bir göreve dönüştürmektir. Bu çalışmada Ultrasonik mesafe sensörü nasıl çalışır? ile Süreden mesafeye arasındaki ilişkiyi kullanarak ölçüm tablosu, kalibrasyon kararı ve güvenli çıktı davranışı hazırlayacaksın. Amaç yalnız sonucun çalışması değil; hangi kararı neden verdiğini, neyi test ettiğini ve hangi durumda tasarımı değiştireceğini açıklayabilmektir.
Görev senaryosu
Şu senaryoyu ele al: sıcaklık değişimini ölçüp eşik aşımını bildiren düzenek. Dersin ana hedefi “Ultrasonik mesafe sensörüyle uzaklığı ölçüp engel algılamayı öğren” olduğuna göre önce problemi tek cümleyle tanımla. Ardından sistemin alacağı girdiyi, uygulayacağı işlemi ve üreteceği çıktıyı ayrı ayrı yaz. Bilmediğin bir ayrıntı varsa onu varsayım olarak işaretle; varsayımı gerçek bilgi gibi kullanma.
- Planla: Başlangıç durumunu, beklenen sonucu ve kullanacağın kavramları yaz.
- En küçük sürümü kur: Yalnız temel davranışı çalıştır; süsleme ve ek özellikleri sonraya bırak.
- Üç test hazırla: Normal bir durum, sınırda bir durum ve hatalı ya da beklenmeyen bir durum seç.
- Sonucu kaydet: Beklenen ile gerçekleşeni yan yana yaz; fark varsa olası nedeni belirt.
- Tek değişiklik yap: Aynı anda birçok şeyi değiştirmek yerine bir kararı düzeltip testi yeniden çalıştır.
Başarı ölçütleri
- Sensör değeri farklı koşullarda kaydedildi mi?
- Eşik değeri tek ölçüme değil gözleme dayanıyor mu?
- Gürültülü veri filtreleniyor veya ortalanıyor mu?
- Aktüatör güvenli başlangıç durumunda mı?
- Sensör koparsa sistemin nasıl davranacağı tanımlı mı?
“Mesafe Sensörü” çalışmasını bitirdiğinde ürünü bir arkadaşına yalnız bölüm başlıklarıyla anlat. Arkadaşın sıcaklık değişimini ölçüp eşik aşımını bildiren düzenek senaryosundaki adımları ve karar nedenlerini takip edebiliyorsa anlatım yeterince açıktır. Anlaşılmayan noktayı daha fazla terim ekleyerek değil, Ultrasonik mesafe sensörü nasıl çalışır? ve Süreden mesafeye ilişkisini daha küçük adımlara bölerek düzelt.
Sık yapılan hatalar
Eşiği hiç belirlememek
Sensörden gelen sayıyı okuyup hiçbir koşula bağlamazsan robot kararı veremez. Mutlaka bir "şundan yakınsa" karşılaştırması olmalı.
Ölçümü bir kere yapmak
Mesafe sürekli değişir. Ölçümü sadece başta bir kez yaparsan robot değişen ortamı göremez. Ölçüm bir döngü içinde, tekrar tekrar yapılmalı.
Sensörü yanlış yöne bakacak şekilde takmak
Ultrasonik sensör önüne baktığı yeri ölçer. Yukarı ya da yana dönükse önündeki engeli göremez. Sensörün gitmek istediğin yöne baktığından emin ol.
Çok yumuşak veya çok küçük nesneleri unutmak
Ses dalgası yumuşak kumaş ya da çok ince nesnelerde iyi yansımayabilir. Bazı engeller sensöre "görünmez" olabilir; bu yüzden robotu her zaman gözlem altında dene.
Güvenlik notu
- Robot bir mesafe sensörüyle çalışıyorsa, mutlaka hareketli parçalar vardır: tekerlekler ve motorlar. Parmaklarını, saçını ve kablolarını dönen parçalardan uzak tut.
- Motorları asla kartın pinlerinden doğrudan besleme; bir motor sürücü ve uygun bir güç kaynağı kullan. Motoru doğrudan pine bağlamak kartına zarar verebilir.
- Yalnızca düşük gerilimli eğitim kaynaklarıyla çalış: pil, USB, micro:bit ya da Arduino. Hiçbir zaman şebeke (priz) elektriğine bağlama.
- Robotu ilk denemede düşük hızda başlat. Hızlı bir robot, sensör "dur" demeden önce engele çarpabilir.
- Testleri masadan düşme riskine karşı yere yakın, açık bir zeminde ve bir yetişkin gözetiminde yap.
Ders özeti
- Mesafe sensörü, bir nesnenin ne kadar uzakta olduğunu ölçer.
- Ultrasonik sensör, gönderdiği ses dalgasının geri dönme süresine bakarak mesafeyi hesaplar; yarasaların ekolokasyonuna benzer.
- Robot, ölçülen mesafeyi bir eşik değerle karşılaştırarak engel olup olmadığına karar verir.
- Engel kaçınma, "mesafe küçükse dur veya yön değiştir" mantığına dayanır ve bir döngü içinde tekrarlanmalıdır.
- Motorlar bir sürücü ve uygun güç kaynağıyla, düşük hızda ve yetişkin gözetiminde güvenle çalıştırılır.
Kontrol soruları
- Ultrasonik mesafe sensörü mesafeyi ölçmek için neyi kullanır?
- Sensör "önümde 8 santimetre ötede bir şey var" diyor. Eşiğimiz 15 santimetre ve kural "eşikten yakınsa dur" ise robot ne yapar?
- Ölçümü neden bir döngü içinde tekrar tekrar yapmamız gerekir?
- Motoru neden doğrudan kartın pininden beslememeliyiz?
- Robotu ilk denemede neden düşük hızda başlatmak daha güvenlidir?
Cevaplar
- Ses dalgası kullanır. Gönderdiği yüksek frekanslı sesin bir nesneye çarpıp geri dönme süresini ölçerek mesafeyi hesaplar.
- Robot durur (ve genelde bir uyarı verir), çünkü 8 santimetre, eşik olan 15 santimetreden daha yakındır.
- Çünkü ortam ve engellerin konumu sürekli değişir. Sadece bir kez ölçersek robot bu değişimleri göremez ve yanlış karar verir.
- Motorlar çok akım çeker; doğrudan pine bağlamak kartına zarar verebilir. Bunun yerine bir motor sürücü ve ayrı, uygun bir güç kaynağı kullanılır.
- Düşük hızda robot, sensör "dur" komutunu verecek zamanı bulur ve engele çarpma riski azalır. Yüksek hızda robot durmadan önce çarpabilir.
Kaynak ve doğrulama notu
“Mesafe Sensörü” dersi için doğrulama odağı Ultrasonik mesafe sensörü nasıl çalışır? ile Süreden mesafeye arasındaki ilişkinin örnekler üzerinde tutarlı çalışmasıdır. Sensör değerleri modele, besleme gerilimine ve ortama göre değişebilir. Bu nedenle derslerdeki eşikler örnek kabul edilmeli; gerçek projede ölçüm tablosu oluşturularak kalibrasyon yapılmalıdır.
Sonraki ders
Hareket Sensörü: Bir ortamda hareket olup olmadığını algılayan sensörü tanıyacak, "biri geçince ışığı yak" gibi kuralları kuracağız.