Engelden Kaçan Robot
  • Bu proje ile mBot robotu engelden kaçan bir robota dönüştüreceğiz. Öncelikle engelden kaçan robotlar, otonom olarak çevre kontrolü yapabilmektedir ve belirlenen mesafelerdeki engeli görerek sağa ya da sola döner ve böylelikle engelleri geçerek labirent ya da benzeri yerlerden çıkabilirler. Ayrıca hareketini önleyebilecek cisimleri görerek onları sağa ya da sola itebilirler.

  • Bizim yapacağımız proje ise hobi amaçlı olan ve daha çok yarışmalarda kullanılan engel algılayan robotlara bir giriş yapabilmek ve bu robotların mantığını, algoritmasını kavramayı amaçlayan bir proje olacaktır.


Gerekli Malzemeler:

  • Bilgisayar

  • mBot

  • mBlock 3 programı

  • USB kablo

  • Çeşitli engeller(duvar, saksı, tahta bloklar vb.)


Uygulama:

  • Öncelikle masaya ya da yere tahtalardan veya çevrede bulunan materyallerden yararlanarak bir labirent oluşturuyoruz. Belirli çıkış noktaları ekleyebiliriz.

    • Labirentte dönüş yapılması gereken kısımları biraz daha geniş yaparsak dönüş ve geçişlerin robotumuz için daha kolay olmasını sağlayabiliriz.

  • Alanımızı oluştuktan sonra mBlock programını açabiliriz. Eğer program açıksa üst kısımda bulunan “Dosya” sekmesinden “Yeni” kısmına tıklayarak yeni bir proje açabiliriz.

  • mBot’u USB kablo ile bilgisayara bağlıyoruz ve “Kartlar” sekmesinden “mBot(mCore)”, “Uzantılar” sekmesinden ise “Makeblock” un  seçeneğinin seçili olduğundan emin oluyoruz. Daha sonra “Bağlan” sekmesinden “Seri Port” kısmına tıklıyoruz ve açılan kısımdan seri portumuzu seçiyoruz. Böylece mBot’u kullanıma hazırlamış oluruz.

  • Böylece kodlarımızı yazmaya başlayabiliriz.Öncelikle robotumuzun engel gördüğünde yada engel yokken verdiği değerleri görmek için küçük bir kod yazıyoruz. Bunun için “Görünüm” dizisinden “merhaba de 2 saniye” kod bloğunu alarak, içerisine “Robotlar” dizisinden “Kapı_ mesafe algılayıcı değeri” bloğunu alarak “merhaba” yazısı üzerine bırakıyoruz. Böylece gelen değerleri ekranımızda görebiliriz.

  • Gerekli kod blokları aşağıda detaylı olarak gösterilmiştir.

    • Gelen değerlere göre mesafeyi ne kadar uzaklıkta olduğunda manevra yapacağımıza karar vererek, buna uygun kodlarımızı yazmaya başlayabiliriz.

    • Öncelikle sensörden gelen değerleri yazabileceğimiz bir değişken oluşturacağız. “Veri&Blok” dizisinde bulunan “Bir Değişken Oluştur” butonuna basarak “mesafe” isminde yeni bir değişken oluşturuyoruz. Daha sonra bu değişkenin içerisine “Robotlar” dizisinden “Kapı_ mesafe algılayıcı değeri” kod bloğunu alarak gelen değerleri değişkenin içerisine aktarmış oluyoruz.

    • Artık gereken koşul ifadelerimizi ekleyebiliriz. “Kontrol” dizisinden “eğer ise _ , değilse _” kod bloğunu alarak içerisine “İşlemler” dizisinden “<” (küçüktür) bloğunu alıyoruz. Bu kod bloğunun bir tarafına, “Veri&Blok” dizisinde bulunan  “mesafe” bloğunu, diğer tarafa ise üst kısımda belirlediğimiz engele ne kadar mesafe kala yön değiştirmek istiyorsak bu değeri yazıyoruz. Biz bu değeri “20” olarak belirledik. Buna göre eğer gelen değer “20“ den küçük ise “Robotlar” dizisinden “ileri git hızı 0 yap” kod bloğunu alarak, robotumuzun engele çarpmadan dönebilmesi için “ileri” kısmını “geri” olarak değiştiriyoruz ve altına  “Kontrol” dizisinden “1 saniye bekle” alarak bunu “0.5” saniye olarak değiştiriyoruz. Böylece kısa bir süre geri gidecek ve sonra sağa ya da sola dönüşünü sağlayacağız. Bunun içinde “Robotlar” dizisinden “ileri git hızı 0 yap” kod bloğunu alarak, “ileri” kısmını “sola dön olarak değiştiriyoruz ve kaç saniye dönmesini istiyorsak gene altına “Kontrol” dizisinden “1 saniye bekle” alarak bunu “0.5” saniye olarak değiştiriyoruz.

    • “değilse” kısmımıza ise gelen değer 20’den büyük olduğu sürece ileri gitmesini sağlayacak kod bloğunu ekleyerek kodlama kısmımızı bitiriyoruz.

    • Gerekli kod blokları aşağıda detaylı olarak gösterilmiştir.

    • Kodlama kısmımızı tamamladıktan sonra usb kablosu veya wifi 2.4G aparatı ile mBlock programında yazdığımız kodları mBot robotuna aktarabiliriz. Kodumuzu yükledikten sonra artık robotumuzu hazırladığımız labirente yerleştirerek denemelerini gerçekleştirebiliriz.