mBlock ile mBot engelden kaçan robot programlamak için robotun önündeki uzaklığı ultrasonik sensörle sürekli ölçer, bu değeri bir eşik ile karşılaştırır ve sonuca göre ileri gitme ya da yön değiştirme kararı verirsin. Önce mBot'u mBlock'a ekleyip sensör değerinin değiştiğini kontrol etmek, ardından bu ölçümü bloklarla karar yapısına bağlamak gerekir.
Bu çalışmada en önemli fikir, robotun çevresinden aldığı veriyi bir karara dönüştürmesidir. mBlock'ta blokları kurmadan önce sensörün ne ölçtüğünü ve bağlantının doğru çalıştığını görmek, daha sonra yapılacak ayarları kolaylaştırır.
Ultrasonik sensör mesafeyi nasıl ölçer?
Sensör, robotun çevresinden bilgi alan elektronik parçadır. Örneğin bir termostat odanın sıcaklığını ölçerek bilgi toplar. Eşik değer ise bu bilgiye göre karar vermek için belirlediğin sınırdır. Oda sıcaklığı belirli bir değerin altına indiğinde ısıtıcının çalışması gibi, mBot da mesafe belirlediğin sınırın altına düştüğünde yön değiştirebilir.
mBot'taki ultrasonik sensör, önündeki nesneye doğru ses dalgası gönderir. Dalga nesneye çarpıp geri döner ve sensör, bu yankının ne kadar sürede ulaştığını ölçer. Gidiş ve dönüş süresi kullanılarak sensör ile nesne arasındaki uzaklık hesaplanır. Bu nedenle sensörün ölçtüğü değer, mBlock içinde santimetre cinsinden okunabilir.
Makeblock'un mBot için yayımladığı teknik bilgilerde bu sensörün algılama aralığı 3-400 cm, belirtilen hata değeri ise 1 cm'den küçük olarak verilir. Sensörün kablosu, mCore üzerindeki sarı işaretli uygun porta takılmalıdır. mBot'ta varsayılan bağlantı çoğunlukla 3 numaralı porttur, ancak programdaki port seçimi fiziksel bağlantıyla her zaman aynı olmalıdır.
mBlock'ta sensör değerini okumak için Sensing, yani Algılama bölümündeki ultrasonic sensor () distance (cm) bloğu kullanılır. Parantez içindeki port seçimini değiştirdiğinde blok, seçtiğin porttaki sensörün uzaklık değerini santimetre olarak verir. Örneğin değer 18 ise mBot'un önündeki nesnenin sensöre olan uzaklığı yaklaşık 18 cm olarak okunur. Bu ölçüm, robotikten Python ve Java'ya uzanan kademe rehberinde anlatılan algılama, veri değerlendirme ve karar verme ilişkisini görmek için de iyi bir başlangıçtır.
mBlock'ta mBot nasıl eklenir ve sensör nasıl test edilir?

mBot'u test etmek için önce robotu bilgisayara bağla, sonra mBlock içindeki cihaz ekleme ekranından doğru modeli seç. mBlock 5 bilgisayar uygulamasında temel bağlantı akışı şu şekildedir:
- mBot'u USB kablosuyla bilgisayara bağla ve robotun güç düğmesini aç.
- mBlock'ta Devices sekmesine gir, + düğmesine bas ve cihaz kitaplığından mBot modelini seç.
- OK düğmesiyle cihazı çalışma alanına ekle.
- Connect düğmesine bas. USB kablosu kullanıyorsan bağlantı penceresinden USB seçeneğini, ardından yeniden Connect düğmesini kullan.
Bluetooth destekli mBot kullanıyorsan bilgisayarın Bluetooth özelliğini aç. Aynı cihaz ekleme adımlarından sonra Connect düğmesine basıp bağlantı penceresinde Bluetooth seçeneğini seçerek bağlantıyı kurabilirsin. Windows bilgisayarlarda üretici, Bluetooth bağlantısı için Bluetooth 4.0 uyumluluğuna dikkat edilmesini önerir. USB bağlantısında ise kullandığın kablonun yalnızca şarj etmeyen, veri aktarabilen bir kablo olması gerekir.
Bağlantı kurulduktan sonra sensörü denemek için Live moduna geç. Sensing bölümünde, fiziksel olarak sensörü taktığın porta karşılık gelen ultrasonik sensör mesafe bloğunu bul ve bloğun solundaki onay kutusunu işaretle. mBlock ekranında görünen değer değişmeli; elini sensörün önünde yaklaştırıp uzaklaştırdığında santimetre değeri de değişir.
Değer değişmiyorsa ilk kontrol edeceğin yer port seçimidir. Sensör mCore üzerindeki 3 numaralı porta takılıyken blokta başka bir port seçiliyse, kabloyu ve bloktaki port seçimini karşılaştır. Kabloları değiştirirken robotun gücünü kapatman, pil bağlantısını ve RJ25 kablosunun iki ucunun da tam oturduğunu kontrol etmen güvenli bir çalışma düzeni sağlar.
Engelden kaçma algoritması bloklarla nasıl kurulur?

Engelden kaçan robot programı, sensör değerini sürekli okuyup bu değere göre karar verir. Buradaki eşik, karar vermek için belirlenen sınırdır. Örneğin kapıya yaklaşırken 15 santimetrelik bir çizgiyi sınır kabul edersen robot, mesafe bu değerin altına düştüğünde yön değiştirebilir.
Bunu koridorda yürümeye benzetebilirsin: Önüne bakarsın, yol açıksa ilerlersin, yakında bir engel varsa biraz geri çekilip dönersin ve yeni yönde tekrar önüne bakarsın. Robotun programı da birbirinden bağımsız komutları bir kez çalıştırmaz. Forever döngüsü içinde sensörü okur, karar verir, hareket eder ve yeniden ölçüm yapar.
- when green flag clicked bloğunu ekle ve altına forever bloğunu yerleştir.
- if () then () else () bloğunu forever bloğunun içine koy. Koşul alanına, ultrasonic sensor [Port 3] distance (cm) < 15 karşılaştırmasını yerleştir. Buradaki Port 3, sensörün gerçekten takılı olduğu portla aynı olmalıdır.
- then bölümüne move backward at power (40)% bloğunu ekle. Hemen arkasına wait (0.3) seconds koy. Kısa bekleme, robotun geri hareket komutunu uygulaması için zaman tanır.
- Aynı then bölümüne turn right at power (50)% bloğunu ekle ve arkasına tekrar kısa bir wait (0.5) seconds bloğu yerleştir. Böylece dönüş tamamlanmadan yeni sensör ölçümüne geçilmez.
- else bölümüne move forward at power (50)% bloğunu koy. Sensör 15 santimetreden daha uzak bir mesafe ölçtüğünde robot ileri hareket eder.
when green flag clicked
forever
if <ultrasonic sensor [Port 3] distance (cm) < 15> then
move backward at power (40)%
wait (0.3) seconds
turn right at power (50)%
wait (0.5) seconds
else
move forward at power (50)%
Bu sırayla çalıştığında mBot açık alanda ileri gider. Bir engel 15 santimetreden daha yakına geldiğinde kısa süre geri gider, sağa döner ve dönüş tamamlandıktan sonra sensör değerini yeniden okur. mBlock'taki forever, if () then () else () ve ultrasonik sensör blokları bu karar döngüsünün temelini oluşturur.
Program mBot'a yükleme ile canlı mod arasındaki fark nedir?
Live modda programın çalışması bilgisayar ile mBot arasındaki bağlantıya bağlıdır. Bu mod, sensör değerini gözlemlemek ve blokların robotu nasıl etkilediğini anında denemek için kullanılır. Bağlantı kesilirse program çalışmayı sürdüremez. Upload modda ise derlenen program mBot'a aktarılır ve yükleme tamamlandıktan sonra robot, mBlock bağlantısı kesilse bile programı kendi üzerinde çalıştırabilir.
mBot bağlantısı modele ve kullanılan donanıma göre USB kablosu, Bluetooth 4.0 veya 2.4G modülüyle kurulabilir. Live modda seçtiğin bağlantıyı çalışma boyunca korumalısın. Programı yükledikten sonra robotu bilgisayara bağlı sanıp Live davranışı beklemek sık yapılan bir karışıklıktır. Bağımsız deneme için Upload modunu seçip yüklemenin tamamlanmasını beklemen gerekir.
- Önce mBot'u bağla, Live modunu seç ve programı çalıştır.
- Elini veya bir nesneyi sensörün önüne getirerek mesafe değerinin değiştiğini ve robotun karar verdiğini gözlemle.
- Program doğru tepki veriyorsa Upload moduna geç ve programı mBot'a yükle.
- Yükleme tamamlandıktan sonra bağlantıyı kesip mBot'u kendi pil gücüyle çalıştırarak bağımsız hareketini dene.
Pilleri takarken kutupların doğru olduğundan, sensör ve motor kablolarının soketlere tam oturduğundan emin ol. Hareket testinde tekerleklerin çevresinde el, kablo ve takılabileceği bir nesne bırakma.
Hız, eşik ve bekleme süreleri nasıl ayarlanır?
Robotun daha dengeli çalışması için motor hızını, 15 cm eşik değerini ve bekleme sürelerini tek tek değiştirerek denemelisin. Sensör robotun önündeki uzaklığı ölçen parçadır. Eşik değeri ise robotun karar verdiği sınırdır; kapıya yaklaşınca duran bir insan gibi, mBot da mesafe 15 cm'nin altına indiğinde yön değiştirebilir.
İlk denemede ileri hareket hızını orta bir değerde tut. Robot çok hızlıysa engeli algılasa bile durmak ve dönmek için yeterli alan bulamayabilir. Çok yavaşsa hareketler daha kontrollü olur, ancak robotun tepkisini gözlemlemek için bekleme sürelerini ayrıca ayarlaman gerekir.
- İleri hareket motor hızını değiştir ve robotun düz zeminde nasıl ilerlediğini gözlemle.
- Ultrasonik sensör bloğundaki 15 cm değerini önce değiştirmeden dene. Robot engele fazla yaklaşıyorsa eşiği artır, gereğinden erken dönüyorsa daha düşük bir değerle test et.
- Geri hareket bloğundan sonra kısa bir bekleme ekle. Robot yeterince uzaklaşmıyorsa bu süreyi biraz artır.
- Dönme bloğundan sonra da kısa bir bekleme kullan. Robot dönüşü tamamlamadan yeniden ileri harekete geçiyorsa bekleme süresi kısa kalmış olabilir.
Ayarları her seferinde yalnızca bir değişkeni değiştirerek yapman sonucu anlamanı kolaylaştırır. Farklı renk ve yüzeylerde, duvara tam karşıdan ve hafif açılı konumlarda deneme yap. Şu kontrol sırası sorunun kaynağını bulmana yardımcı olur:
- Robot engeli hiç algılamıyorsa sensör kablosunu, sensörün bağlı olduğu portu ve blokta seçilen portu karşılaştır.
- Robot engeli algılıyor fakat hemen ileri gidiyorsa geri hareket ve dönüş sonrasındaki bekleme bloklarını incele.
- Hareket mantığı doğru olduğu hâlde robot beklenmedik biçimde çalışıyorsa Live ve Upload modundan hangisinin seçili olduğunu kontrol et. Live modda bilgisayar bağlantısı korunmalıdır; Upload modunda program mBot'a aktarıldıktan sonra robot bağlantı kesikken de çalışabilir.
Deneme sırasında pilin ve kabloların doğru takıldığından emin ol. Robotun hareket alanında el, kablo veya takılabileceği başka bir nesne bırakma.
Sık Sorulan Sorular
mBot engeli algılamıyorsa hangi bağlantı ve port kontrolleri yapılmalı?
Ultrasonik sensör kablosunun iki ucunun da tam oturduğunu, sensörün doğru porta bağlandığını ve mBlock'taki sensör bloğunda aynı portun seçildiğini kontrol et. Standart mBot kurulumunda sensör için varsayılan port 3 kullanılır, ancak asıl ölçüt sensörün fiziksel olarak bağlı olduğu portla bloktaki seçimin eşleşmesidir.
mBlock'ta sensör değerini ekranda göremiyorsam neyi kontrol etmeliyim?
mBot'un bağlı olduğunu, Live modun seçildiğini ve Sensing bölümündeki doğru ultrasonik sensör bloğunun işaretlendiğini kontrol et. Sensörün gerçek portu ile blokta yazan port aynı olmalı; ardından elini sensörün önünde hareket ettirerek ekrandaki değerin değişip değişmediğine bakabilirsin.
15 cm eşik değeri ve motor hızı nasıl değiştirilir?
15 cm değerini, eğer koşulunun içindeki ultrasonik sensör mesafe bloğunda değiştirerek ayarlayabilirsin. Motor hızı ise ileri, geri veya dönüş hareketini oluşturan motor bloklarındaki hız alanlarından değiştirilir; her değişiklikten sonra robotu aynı zeminde yeniden denemek daha sağlıklı karşılaştırma yapmanı sağlar.
Bekleme blokları engelden kaçan robot programında neden kullanılır?
Bekleme blokları, robotun geri gitme veya dönme hareketini tamamlaması için kısa bir süre tanır. Bu bloklar olmazsa robot hareketi bitmeden sonraki komuta geçebilir ve engelden yeterince uzaklaşmadan yeniden ileri hareket edebilir.
Programı mBot'a yükledikten sonra canlı mod ile robot üzerindeki çalışma nasıl ayırt edilir?
Live modda programın etkisini görmek için mBot'un bilgisayara bağlı kalması gerekir. Upload modunda program mBot'a aktarılır ve başarılı yüklemeden sonra bilgisayarla bağlantı kesilse bile robot üzerindeki program çalışabilir.
Bu ayarları sabırla ve tek tek değiştirerek yaptığında, mBot'un hangi koşulda nasıl tepki verdiğini daha kolay anlayabilir ve engelden kaçma programını daha kontrollü hâle getirebilirsin.