- Ultrasonik Sensörü kullanarak engellerden kaçınarak robot nasıl yapılır
- Gerekli Bileşenler
- Devre şeması
- Arduino Kullanan Engelden Kaçan Robot - Kod
Engelden Kaçan Robot, önündeki engeli otomatik olarak algılayabilen ve kendisini başka bir yöne çevirerek onlardan kaçınabilen akıllı bir cihazdır. Bu tasarım, herhangi bir otonom mobil robot için birincil gereksinim olan çarpışmalardan kaçınarak robotun bilinmeyen bir ortamda gezinmesini sağlar. Engelden Kurtulma robotunun uygulaması sınırlı olmayıp artık askeri organizasyonların çoğunda kullanılmakta ve hiçbir askerin yapamayacağı birçok riskli işin yapılmasına yardımcı olmaktadır.
Daha önce Raspberry Pi ve PIC Microcontroller kullanarak Engel Önleme Robotu geliştirdik. Bu sefer ultrasonik sensör ve Arduino kullanarak Engelden kaçan bir robot inşa edeceğiz . Burada, robot ile engel arasındaki mesafeyi hesaplayarak yoldaki engelleri algılamak için bir Ultrasonik sensör kullanılır. Robot herhangi bir engel bulursa yön değiştirir ve hareket etmeye devam eder.
Ultrasonik Sensörü kullanarak engellerden kaçınarak robot nasıl yapılır
Robotu yapmadan önce, ultrasonik sensörün nasıl çalıştığını anlamak önemlidir, çünkü bu sensör engelin tespit edilmesinde önemli bir role sahip olacaktır. Ultrasonik sensörün çalışmasının arkasındaki temel prensip, sensörün ultrasonik ışınları iletmek ve yüzeye çarptıktan sonra ultrasonik ışınları almak için harcadığı süreyi not etmektir. Daha sonra mesafe formül kullanılarak hesaplanır. Bu projede yaygın olarak bulunan HC-SR04 Ultrasonik Sensör kullanılmıştır. Bu sensörü kullanmak için yukarıda açıklanan benzer bir yaklaşım izlenecektir.
Dolayısıyla, HC-SR04'ün Trig pimi en az 10 us için yüksek yapılmıştır. Bir sonik ışın, her biri 40KHz'lik 8 atımla iletilir.
Sinyal daha sonra yüzeye çarpar ve geri döner ve HC-SR04'ün alıcı Yankı pini tarafından yakalanır. Yankı pimi yüksek gönderirken zaten yüksek yapmıştı.
Kirişin geri dönme süresi değişken olarak kaydedilir ve aşağıdaki gibi uygun hesaplamalar kullanılarak mesafeye dönüştürülür.
Mesafe = (Zaman x Havadaki Ses Hızı (343 m / s)) / 2
Ultrasonik sensör hakkında daha fazla bilgi edinmek, Ultrasonik sensörle ilgili diğer projeleri kontrol etmek için birçok projede ultrasonik sensör kullandık.
Bu engelden kaçınma robotunun bileşenleri kolayca bulunabilir. Şasi yapmak için herhangi bir oyuncak şasi kullanılabilir veya özel olarak yapılabilir.
Gerekli Bileşenler
- Arduino NANO veya Uno (herhangi bir versiyon)
- HC-SR04 Ultrasonik Sensör
- LM298N Motor Sürücü Modülü
- 5V DC Motorlar
- Batarya
- Tekerlekler
- Şasi
- Atlama Telleri
Devre şeması
Bir Arduino nano kullandığını görebileceğiniz gibi, bu proje için eksiksiz devre şeması aşağıda verilmiştir. Ancak aynı devre (aynı pinout'u takip edin) ve kod ile Arduino UNO'yu kullanarak bir engelden kaçınma robotu da yapabiliriz.
Devre hazır olduğunda, devreyi aşağıda gösterildiği gibi bir robotik şasi üzerine monte ederek arabadan kaçınarak engelimizi inşa etmeliyiz.
Arduino Kullanan Engelden Kaçan Robot - Kod
Tanıtım videosu ile birlikte eksiksiz program bu projenin sonunda verilmiştir. Program, HC-SR04 modülünün kurulmasını ve motor yönünü uygun şekilde hareket ettirmek için sinyallerin Motor Pinlerine çıkışını içerecektir. Bu projede kütüphane kullanılmayacaktır.
Öncelikle programda HC-SR04'ün trig ve eko pinini tanımlayın. Bu projede trig pini GPIO9'a ve eko pini Arduino NANO'nun GPIO10'una bağlanır.
int trigPin = 9; // HC- SR04'ün trig pini int echoPin = 10; // HC-SR04'ün yankı pimi
LM298N Motor Sürücü Modülünün girişi için pinleri tanımlayın. LM298N, kendisine bağlı motorun yönünü kontrol etmek için kullanılan 4 veri giriş pinine sahiptir.
int revleft4 = 4; // Sol motorun ters hareketi int fwdleft5 = 5; // Sol motorun ForWarD hareketi int revright6 = 6; // Sağ motorun ters hareketi int fwdright7 = 7; // Sağ motorun ForWarD hareketi
İçinde setup () işlev, kullanılan GPIO pimlerin veri yönünü tanımlar. Dört Motor pini ve Tetik pini OUTPUT olarak ayarlanır ve Echo Pin, Input olarak ayarlanır.
pinMode (revleft4, OUTPUT); // Motor pinlerini çıkış pinMode olarak ayarlayın (fwdleft5, OUTPUT); pinMode (revright6, OUTPUT); pinMode (fwdright7, OUTPUT); pinMode (trigPin, OUTPUT); // çıkış pinMode (echoPin, INPUT) olarak trig pini ayarla ; // yansıyan dalgaları yakalamak için eko pinini girdi olarak ayarlayın
Gelen döngü () işlev, HC-SR04 mesafeyi almak ve mesafeye göre motorlu yönde hareket. Mesafe, robotun önünden gelen nesne mesafesini gösterecektir. Mesafe, ultrasonik bir ışının 10 bize kadar patlatılması ve 10us sonra alınmasıyla alınır. Ultrasonik sensör ve Arduino kullanarak mesafe ölçümü hakkında daha fazla bilgi edinmek için bağlantıyı izleyin.
digitalWrite (trigPin, DÜŞÜK); gecikme Mikrosaniye (2); digitalWrite (trigPin, YÜKSEK); // 10 us gecikmesi için dalgalar gönderMicroseconds (10); süre = pulseIn (echoPin, HIGH); // yansıyan dalgaları alma mesafesi = süre / 58,2; // mesafe gecikmesine dönüştür (10);
Mesafe tanımlanan mesafeden büyükse, yolunda engel olmadığı ve ileri yönde hareket edeceği anlamına gelir.
eğer (mesafe> 19) { digitalWrite (fwdright7, HIGH); // ileri doğru digitalWrite (revright6, LOW); digitalWrite (fwdleft5, YÜKSEK); digitalWrite (revleft4, DÜŞÜK); }
Mesafe, engelden kaçınmak için tanımlanan mesafeden daha az ise, ileride bazı engeller olduğu anlamına gelir. Yani bu durumda robot bir süre duracak ve daha sonra tekrar hareket edecek ve bir süre daha duracak ve sonra başka bir yöne dönecektir.
eğer (mesafe <18) { digitalWrite (fwdright7, LOW); // digitalWrite'ı durdur (revright6, LOW); digitalWrite (fwdleft5, DÜŞÜK); digitalWrite (revleft4, DÜŞÜK); gecikme (500); digitalWrite (fwdright7, LOW); // movebackword digitalWrite (revright6, YÜKSEK); digitalWrite (fwdleft5, DÜŞÜK); digitalWrite (revleft4, YÜKSEK); gecikme (500); digitalWrite (fwdright7, DÜŞÜK); // digitalWrite'ı durdur (revright6, LOW); digitalWrite (fwdleft5, DÜŞÜK); digitalWrite (revleft4, DÜŞÜK); gecikme (100); digitalWrite (fwdright7, HIGH); digitalWrite (revright6, DÜŞÜK); digitalWrite (revleft4, DÜŞÜK); digitalWrite (fwdleft5, DÜŞÜK); gecikme (500); }
Yani bir robot, herhangi bir yere takılıp kalmadan yolundaki engellerden bu şekilde kaçabilir. Aşağıda tam kodu ve videoyu bulun.