İçeriğe Geç

#24 Labirent Çözen Araba Nasıl Yapılır?

01 Nov 2023
#24 Maze Navigating Robot Project With PicoBricks
Kendi otonom labirent çözme robotunuzu yapmaya ne dersiniz? Bu projede, bir arabanın LDR sensörü, motor sürücüsü ve servo motorları kullanarak labirenti kendi başına çözmesine tanık olacağız. Makalemizde python kodlarını ve başlangıç ​​için bağlantı şemasını bulabilirsiniz.

Kodlama eğitimi, programlama dillerinin tarihi kadar eskidir. Bugün, kodlama eğitimini popülerleştirmek ve heyecan verici ve eğlenceli hale getirmek için farklı ürünler kullanılmaktadır. Bunların ilki eğitim robotlarıdır. Robotları hazırlamak ve programlamak, çocukların mühendislik ve kodlama becerilerini geliştirir. Kodlama eğitimini popülerleştirmek ve öğretmenleri ve öğrencileri teşvik etmek için kurumlar ve kuruluşlar tarafından robotik yarışmaları düzenlenmektedir. Bu yarışmalardan biri de  Labirent Çözücü Robot yarışmalarıdır. Bu robotlar, labirentte dolaşarak ve başlangıç ​​noktasına geri dönerek labirenti nasıl çözeceklerini öğrenirler. Daha sonra labirente tekrar başladıklarında, hedeflerine mümkün olan en kısa yoldan ulaşmaya çalışırlar. Robotlar, labirenti öğrenirken kızılötesi veya ultrasonik mesafe sensörleri kullanır.

Evlerde ve iş yerlerinde kullanılan akıllı robot süpürgeler de, labirent çözücü robotların algoritmalarına yakın bir mantıkla çalışır. Sürekli olarak engelleri kontrol eden ve haritalayan algoritmaları sayesinde, eşyalara çarpmadan görevlerini tamamlamaya çalışırlar. Çoğu akıllı süpürge, yüksek hassasiyetli lazer ölçümleri ve engel algılama için tasarlanmış LIDAR ve kızılötesi sensörlerle donatılmıştır.

Bu projede, kendi labirentinizi gezinmek için kullanabileceğiniz basit bir robot yapacağız.

Labirent Robot Detayları ve Algoritması

Bu projede, setle birlikte gelen 2WD robot araba kiti'ni kullanacağız. Robotun önündeki duvarları algılayabilmesi ve hareketlerini belirleyebilmesi için HC-SR04 ultrasonik mesafe sensörünü kullanacağız. Labirentte, robot arabanın önündeki alanı tarayacak ve boşsa ileriye doğru hareket edecektir. Eğer 5 cm içinde bir duvar (engel) varsa, araba sağa dönecek ve mesafeyi tekrar ölçecektir. Sağdaki yeni mesafe 5 cm'den fazlaysa, yoluna devam edecektir. Eğer daha azsa, sola dönecek ve ileriye hareket edecektir. Sağa ve sola dönerek, aracı yönlendirip labirentten çıkmasını sağlayacağız.

Bileşenler

  • 1X PicoBricks
  • 1X HC-SR04 Ultrasonik Sensör
  • 2X DC Motor
  • Jumper Kabloları
  • Kolay Bağlantı Kabloları

Bağlantı Şeması

Picobricks' modüllerini kablaj yapmadan kodlayabilir ve çalıştırabilirsiniz. Eğer modülleri panodan ayırarak kullanacaksanız, modül bağlantılarını grove kabloları ile yapmalısınız.

Projenin İnşa Aşamaları

Ses kontrollü araba projesindeki 2WD robot araba montajı adımlarını takip ederek robot arabayı oluşturabilirsiniz.

Ses Kontrollü Araba Projesi

Bu projede HC05 bluetooth modülünü kullanmayacağız.

HC-SR04 ultrasonik mesafe sensörünü robota monte etmek için gerekli parçaları buradaki linkten indirebilir, 3D yazıcıda basabilir ve araca monte edebilirsiniz.

Robotu monte ettikten sonra, labirenti oluşturmak için karton kutular kullanabilirsiniz. Duvarları kartondan yapabilir veya 3D baskılı duvarlar kullanarak duvarları sıcak yapıştırıcı ile bağlayarak labirenti inşa edebilirsiniz.

Microblocks Çalıştırma Sekmesi

Labirent Çözücü Robotun MicroBlocks Kodları

Projeye ait Microblocks kodlarına, resmi Microblocks Çalıştır sekmesine sürükleyerek veya butona tıklayarak ulaşabilirsiniz.

 

PicoBricks'un MicroPython Kodları


from machine import Pin
from utime import sleep
import utime

# Define libraries
trigger = Pin(15, Pin.OUT)
echo = Pin(14, Pin.IN)
# Define sensor pins
m1 = Pin(21, Pin.OUT)
m2 = Pin(22, Pin.OUT)
# Define dc motor pins
m1.low()
m2.low()

signaloff = 0
signalon = 0

def getDistance():
   trigger.low()
   utime.sleep_us(2)
   trigger.high()
   utime.sleep_us(5)
   trigger.low()
   while echo.value() == 0:
       signaloff = utime.ticks_us()
   while echo.value() == 1:
       signalon = utime.ticks_us()
   timepassed = signalon - signaloff
   distance = (timepassed * 0.0343) / 2
   return distance

# Calculate distance
measure = 0

while True:
    measure = int(getDistance())
    print(measure)
    if measure > 5:
        m1.high()
        m2.high()
        sleep(1)  # If the distance is higher than 5, the wheels go straight
    else:
        m1.low()
        m2.low()
        sleep(0.5)
        m1.high()
        m2.low()
        sleep(0.5)
        measure = int(getDistance())
        if measure < 5:
            m1.low()
            m2.low()
            sleep(0.5)
            m1.low()
            m2.high()
            sleep(0.5)  # If the distance is less than 5, wait, move in any direction; if the distance is less than 5, move in the opposite direction
</code>

Arduino C Kodları


#include <NewPing.h>
#define TRIGGER_PIN  15
#define ECHO_PIN     14
#define MAX_DISTANCE 400
// Define sensor pins
NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE);

void setup() {
  pinMode(21, OUTPUT);
  pinMode(22, OUTPUT); // Define dc motor pins
}

void loop() {
  delay(50);
  int distance = sonar.ping_cm();
  Forward();
  if(distance < 5){
    Stop();
    delay(1000);
    Turn_Right();
    delay(1000);
    int distance = sonar.ping_cm();
    if(distance < 5){
      Stop();
      delay(1000);
      Turn_Left();
      delay(500);
      // If the distance is less than 5, wait, turn right; if the distance is less than 5 again, move in the opposite direction
    }
  }
}

void Forward(){
  digitalWrite(21, HIGH);
  digitalWrite(22, HIGH); // If the distance is higher than 5, go straight
}

void Turn_Left(){
  digitalWrite(21, LOW);
  digitalWrite(22, HIGH); // Turn left
}

void Turn_Right(){
  digitalWrite(21, HIGH);
  digitalWrite(22, LOW);  // Turn right
}

void Stop(){
  digitalWrite(21, LOW);
  digitalWrite(22, LOW); // Wait
}

SSS

Labirent koşucusundaki robotun algoritması nedir?

Labirent koşucusundaki robotun algoritması genellikle A* (A-yıldız) algoritması gibi bir yol bulma tekniğini içerir. Bu algoritma, en iyi ilk arama ve Dijkstra algoritmasının yönlerini birleştirerek labirent boyunca en kısa yolu etkin bir şekilde bulur, keşif ile hedefin mesafesini dengeler.

Labirent çözme robotunun avantajları nelerdir?

Labirent çözme robotunun avantajları arasında gelişmiş problem çözme becerileri, karmaşık ortamlarda etkin navigasyon, deneyimlerden öğrenme ve adapte olma yeteneği, arama ve kurtarma operasyonları için potansiyel ve robotik, yapay zeka ve otomasyon gibi çeşitli alanlarda uygulanabilir gelişmiş algoritmaların geliştirilmesi yer alır.

A* labirent çözme algoritması nedir?

A* labirent çözme algoritması, labirent boyunca en kısa yolu etkin bir şekilde bulmak için kullanılan bir yol bulma ve graf gezinti tekniğidir. Hem bir düğüme ulaşma maliyetini hem de hedefe olan tahmini mesafeyi göz önünde bulundurarak yol bulmayı optimize etmek için Dijkstra algoritmasının özellikleri ve sezgisel tabanlı arama, örneğin Açgözlü En İyi İlk Arama, özelliklerini birleştirir.

Önceki Gönderi
Sıradaki Gönderi

Abone olduğun için teşekkürler!

Bu e-posta kaydedildi!

Görünümü satın alın
Seçenekleri Seçin

Seçeneği Düzenle

Stok Bildirimi

Karşılaştır

Ürün Stok KoduDeğerlendirmeAçıklama Kategori Uygunluk Ürün Tipi Diğer Detaylar
this is just a warning
Giriş Yap
Alışveriş Sepeti
0 Ürünler
Same Day Shipping No Extra Costs
Easy Returns Guarantee Return with Ease
Secure Checkout Secure Payment