Arduino Kullanarak Robottan Kaçınan Robot Nasıl Yapılır?
Dünya hızlı hareket ediyor ve teknoloji robotik alanında da onunla birlikte hareket ediyor. Robotik uygulamaları dünyanın her yerinde görülebilir. Dışarıdan herhangi bir yardım almadan hareket eden mobil veya otonom robot kavramı, en kapsamlı araştırma alanıdır. Pek çok mobil robot türü vardır, örneğin, Kendi Yerini Bulma ve Haritalama (SLAM) tercümanları, Çizgi izleme, Sumo Robotları vb. Engellerden kaçan robot bunlardan biridir. Yolunda herhangi bir engel tespit ederse yolu değiştirmek için bir teknik kullanır.
Bu projede, yolundaki tüm engelleri algılamak için ultrasonik bir sensör kullanacak Arduino tabanlı bir engel önleme robotu tasarlandı.
Ultrasonik Sensör Kullanılarak Engellerden Nasıl Kaçınılır?
Projemizin özetini bildiğimiz için, bir adım öne geçelim ve projeye başlamak için biraz bilgi toplayalım.
Adım 1: Bileşenleri Toplama
Herhangi bir projeye başlamak için en iyi yaklaşım, başlangıçta tüm bileşenlerin bir listesini yapmak ve her bir bileşenin kısa bir incelemesini yapmaktır. Bu, projenin ortasındaki rahatsızlıklardan kaçınmamıza yardımcı olur. Bu projede kullanılan tüm bileşenlerin tam listesi aşağıda verilmiştir.
Adım 2: Bileşenlerin İncelenmesi
Şimdi, tüm bileşenlerin tam bir listesine sahip olduğumuz için, bir adım ileri gidelim ve her bileşenin çalışmasının kısa bir incelemesine geçelim.
Arduino nano, bir devredeki farklı görevleri kontrol etmek veya gerçekleştirmek için kullanılan, breadboard dostu bir mikrodenetleyici kartıdır. Biz yakarız C Kodu Arduino Nano'da mikrodenetleyici kartına nasıl ve hangi işlemlerin gerçekleştirileceğini anlatın. Arduino Nano, Arduino Uno ile tamamen aynı işlevselliğe sahiptir, ancak oldukça küçük bir boyuttadır. Arduino Nano kartındaki mikrodenetleyici, ATmega328p.
L298N, yüksek akımlı ve yüksek voltajlı bir entegre devredir. Standart TTL mantığını kabul etmek için tasarlanmış bir çift tam köprüdür. Cihazın bağımsız olarak çalışmasına izin veren iki etkinleştirme girişine sahiptir. Aynı anda iki motor bağlanabilir ve çalıştırılabilir. Motorların hızı PWM pimleri aracılığıyla değiştirilir. Darbe Genişliği Modülasyonu (PWM), herhangi bir elektronik bileşendeki voltaj akışının kontrol edilebildiği bir tekniktir. Bu modül, akımın yönünü tersine çevirerek motorlarda dönüş yönünün kontrolünden sorumlu bir H-Bridge'e sahiptir. Etkinleştirme pimi A ve Etkinleştirme Pimi B, her iki motorun hızını değiştirmek için kullanılır. Bu modül 5 ile 35V arasında ve 2A'ya kadar pik akımda çalışabilir. Giriş Pimi1 ve Giriş Pimi2 ve Birinci motor için ve Giriş Pimi3 ve Giriş Pimi4 ikinci Motor içindir.
HC-SR04 kartı, iki nesne arasındaki mesafeyi belirlemek için kullanılan ultrasonik bir sensördür. Bir verici ve bir alıcıdan oluşur. Verici, elektrik sinyalini bir ultrasonik sinyale dönüştürür ve alıcı, ultrasonik sinyali tekrar elektrik sinyaline dönüştürür. Verici bir ultrasonik dalga gönderdiğinde, belirli bir nesneyle çarpıştıktan sonra yansır. Mesafe, ultrasonik sinyalin vericiden alıp alıcıya geri dönmesi için geçen süre kullanılarak hesaplanır.
3. Adım: Bileşenleri Birleştirme
Artık kullanılan bileşenlerin çoğunun çalışmasını bildiğimiz gibi, tüm bileşenleri bir araya getirmeye başlayalım ve bir engelden kaçan robot üretelim.
- Bir araba tekerlek şasesini alın ve üstüne bir breadboard yapıştırın. Ultrasonik sensörü şaselerin önüne ve şaselerin arkasına bir pil kapağını monte edin.
- Arduino Nano kartını devre tahtasına sabitleyin ve motor sürücüsünü devre tahtasının hemen arkasındaki kasalara takın. Her iki motorun da Etkinleştirme pinlerini Arduino nano'nun Pin6 ve Pin9'una bağlayın. Motor sürücü modülünün In1, In2, In3 ve In4 pinleri sırasıyla Arduino nano'nun pin2, pin3, pin4 ve pin5'lerine bağlanır.
- Ultrasonik sensörün trig ve eko pini, sırasıyla Arduino nano'nun pin11 ve in10'una bağlanır. Ultrasonik sensörün Vcc ve toprak pimi, Arduino Nano'nun 5V ve toprağına bağlanır.
- Motor denetleyici modülüne pil ile güç sağlanır. Arduino Nano kartı, gücü motor sürücü modülünün 5V portundan alır ve ultrasonik sensör gücünü Arduino nano kartından alır. Pillerin ağırlığı ve enerjisi, performansının belirleyici faktörü olabilir.
- Bağlantılarınızın aşağıda devre şemasında gösterilenle aynı olduğundan emin olun.
Adım 4: Arduino'ya Başlarken
Arduino IDE'ye henüz aşina değilseniz endişelenmeyin, çünkü Arduino IDE'yi bir mikrodenetleyici kartı ile kurmak ve kullanmak için adım adım bir prosedür aşağıda açıklanmıştır.
- Arduino IDE'nin en son sürümünü Arduino'dan indirin.
- Arduino Nano kartınızı dizüstü bilgisayarınıza bağlayın ve kontrol panelini açın. kontrol panelinde tıklayınDonanım ve ses. Şimdi tıklayınCihazlar ve yazıcılar.Burada mikrodenetleyici kartınızın bağlı olduğu bağlantı noktasını bulun. Benim durumumda COM14ancak farklı bilgisayarlarda farklıdır.
- Araç menüsünü tıklayın. ve panoyu şu şekilde ayarlayın: Arduino Nano açılır menüden.
- Aynı Araç menüsünde, bağlantı noktasını daha önce görüntülemede gözlemlediğiniz bağlantı noktası numarasına ayarlayın. Cihazlar ve yazıcılar.
- Aynı Araç menüsünde İşlemciyi ATmega328P (Eski Önyükleyici).
- Aşağıda ekli kodu indirin ve Arduino IDE'nize yapıştırın. Tıkla yükle mikrodenetleyici panonuzdaki kodu yazmak için düğmeye basın.
Kodu indirmek için burayı tıklayın.
Adım 5: Kodu Anlama
Kod iyi yorumlanmış ve kendinden açıklamalıdır. Ama yine de aşağıda açıklanmıştır
1. Kodun başlangıcında, Arduino Nano kartının ultrasonik sensöre ve motor sürücü modülüne bağlı tüm pinleri başlatılır. Pin6 ve Pin9, Robotun hızını değiştirmek için voltaj akışını değiştirebilen PWM pinleridir. İki değişken, süre, ve mesafedaha sonra ultrasonik sensörün ve engelin mesafesini hesaplamak için kullanılacak verileri depolamak için başlatılır.
int enable1pin = 6; // Birinci Motor için pimler int motor1pin1 = 2; int motor1pin2 = 3; int enable2pin = 9; // İkinci Motor İçin Pimler int motor2pin1 = 4; int motor2pin2 = 5; const int trigPin = 11; // Ultrasonik Sesnor'un Tetikleyici Pimi sabit int echoPin = 10; // Ultrasonik Sesnor'un Yankı Pimi uzun süreli; // mesafe float mesafesini hesaplamak için değişkenler;
2. geçersiz kurulum ()kullanılan tüm pimleri ayarlamak için kullanılan bir işlevdir. GİRİŞ ve ÇIKTI.Baud Hızı bu işlevde tanımlanır. Baud Hızı, mikro denetleyici kartının kendisiyle entegre sensörlerle iletişim kurduğu iletişim hızıdır.
geçersiz kurulum () {Serial.begin (9600); pinMode (trigPin, OUTPUT); pinMode (echoPin, INPUT); pinMode (enable1pin, OUTPUT); pinMode (enable2pin, OUTPUT); pinMode (motor1pin1, OUTPUT); pinMode (motor1pin2, OUTPUT); pinMode (motor2pin1, OUTPUT); pinMode (motor2pin2, ÇIKIŞ); }
3. geçersiz döngü ()bir döngüde tekrar tekrar çalışan bir işlevdir. Bu fonksiyonda mikrodenetleyici kuruluna nasıl ve hangi işlemlerin yapılacağını anlatıyoruz. Burada ilk önce tetik pimi yankı pini tarafından algılanacak bir sinyal gönderecek şekilde ayarlanır. Ardından, ultrasonik sinyalin sensöre gidip gelmesi için aldığı süre hesaplanır ve değişkene kaydedilir. süre. Daha sonra bu süre, engelin ve ultrasonik sensörün mesafesini hesaplamak için bir formülde kullanılır. Ardından, mesafe 5ocm'den fazla ise robotun düz bir çizgide ilerleyeceği ve mesafe 50cm'den az ise robotun keskin bir sağa dönüş yapacağı şartı uygulanır.
boşluk döngüsü () {digitalWrite (trigPin, LOW); // Ultrasonik Sinyal gecikmesini Gönderme ve AlgılamaMicroseconds (2); digitalWrite (trigPin, YÜKSEK); gecikme Mikrosaniye (10); digitalWrite (trigPin, DÜŞÜK); süre = pulseIn (echoPin, HIGH); // Ultrasonik dalganın geri mesafeyi yansıtmak için aldığı zamanın hesaplanması = 0.034 * (süre / 2); // Robbot ile engel arasındaki haftalık mesafeyi hesaplıyoruz. if (mesafe> 50) // Mesafe 50 cm'den büyükse İleriye Taşı {digitalWrite (enable1pin, HIGH); digitalWrite (enable2pin, HIGH); digitalWrite (motor1pin1, HIGH); digitalWrite (motor1pin2, DÜŞÜK); digitalWrite (motor2pin1, YÜKSEK); digitalWrite (motor2pin2, DÜŞÜK); } else if (mesafe <50) // Mesafe 50cm'den az ise Keskin Sağa Dönüş {digitalWrite (enable1pin, HIGH); digitalWrite (enable2pin, HIGH); digitalWrite (motor1pin1, HIGH); digitalWrite (motor1pin2, DÜŞÜK); digitalWrite (motor2pin1, DÜŞÜK); digitalWrite (motor2pin2, DÜŞÜK); } gecikme (300); }
Başvurular
İşte robottan kaçan bir engel yapma prosedürü buydu. Bu engelden kaçınma teknolojisi başka uygulamalarda da dava edilebilir. Bu uygulamalardan bazıları aşağıdaki gibidir.
- Takip Sistemi.
- Mesafe Ölçüm Amaçları.
- Bu, otomatik vakumlu temizlik robotlarında kullanılabilir.
- Bu, kör insanlar için Sticks'te kullanılabilir.