Ultrasonik Sensör Kullanarak Zemin Temizleme Robotu Nasıl Yapılır?

Otomatik zemin temizleme robotu yeni bir konsept değil. Ancak bu robotların büyük bir sorunu var. Onlar çok pahalı. Piyasada bulunan robot kadar verimli, düşük maliyetli bir zemin temizleme robotu yapabilirsek ne olur? Bu Robot, ultrasonik bir sensör kullanacak ve yoluna çıkan herhangi bir engelden kaçınacaktır. Bunu yaparak tüm odayı temizleyecektir.



(Bu Resim Devre Özetinden alınmıştır)

Otomatik Zemin Temizleme Robotu Yapmak İçin Ultrasonik Sensör Nasıl Kullanılır?

Artık projemizin özetini bildiğimiz gibi. Çalışmaya başlamak için biraz daha bilgi toplayalım.



Adım 1: Bileşenleri Toplama

Herhangi bir projeye başlamak için en iyi yaklaşım, başlangıçta eksiksiz 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.



  • Araba Tekerlek Şasi
  • Batarya
  • Fırçayı Göster

Adım 2: Bileşenleri İncelemek

Şimdi tüm bileşenlerin eksiksiz bir listesine sahip olduğumuz için, bir adım öne geçelim ve her bir bileşenin çalışmasını kısaca inceleyelim.



Arduino nano, bir devredeki farklı görevleri kontrol etmek veya gerçekleştirmek için kullanılan bir mikrodenetleyici kartıdır. Biz bir 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.

Arduino Nano

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 pimleriyle değiştirilir.



L298N Motor Sürücüsü

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 ultrasonik sinyale dönüştürür ve alıcı ultrasonik sinyali tekrar elektrik sinyaline dönüştürür. Verici ultrasonik bir 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.

Ultrasonik sensör

Adım 3: Bileşenleri Birleştirme

Artık tüm bileşenlerin nasıl çalıştığını bildiğimiz için, tüm bileşenleri bir araya getirelim ve bir robot yapmaya başlayalım.

Bir araba tekerleği şasisi alın ve şasilerin önüne bir gösteri fırçası monte edin. Scotch Brite'ı robotun altına monte edin. Ayakkabı fırçasının hemen arkasında olduğundan emin olun. Şimdi şaselerin üstüne ve arkasına küçük bir devre tahtası takın, Motor sürücüsünü takın. Motorların motor sürücüsüne doğru bağlantılarını yapın ve motor sürücüsünün pinlerini Arduino'ya dikkatlice bağlayın. Kasanın arkasına bir pil takın. Pil, motorlara güç sağlayacak olan Motor sürücüsünü çalıştıracaktır. Arduino, Motor sürücüsünden de güç alacak. Vcc pini ve ultrasonik sensörün topraklaması, Arduino'nun 5V ve toprağına bağlanacaktır.

Devre şeması

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 prosedür aşağıda açıklanmıştır.

  1. Arduino IDE'nin en son sürümünü şuradan indirin: Arduino.
  2. Arduino Nano kartınızı dizüstü bilgisayarınıza bağlayın ve kontrol panelini açın. kontrol panelinde tıklayın Donanım ve ses . Şimdi tıklayın Cihazlar ve yazıcılar. Burada mikrodenetleyici kartınızın bağlı olduğu bağlantı noktasını bulun. Benim durumumda COM14 ancak farklı bilgisayarlarda farklıdır.

    Bağlantı Noktası Bulma

  3. Araç menüsüne tıklayın ve panoyu Arduino Nano.

    Ayar Panosu

  4. 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 .

    Bağlantı Noktası Ayarlama

  5. Aynı Araç menüsünde İşlemciyi ATmega328P (Eski Önyükleyici).

    İşlemci

  6. Aşağıya eklenen kodu indirin ve Arduino IDE'nize yapıştırın. Tıkla yükle mikrodenetleyici kartınızdaki kodu yazmak için düğmeye basın.

    Yükle

Tıklayın buraya kodu indirmek için.

Adım 5: Kodu Anlama

Kod oldukça iyi yorumlanmış ve kendinden açıklamalıdır. Ancak yine de aşağıda kısaca açıklanmıştır.

1. Başlangıçta kullanacağımız tüm Arduino pinleri başlatılır.

int enable1pin = 8; // İlk Motor int motor1pin1 = 2 için pinler; int motor1pin2 = 3; int enable2pin = 9; // İkinci Motor için pimler int motor2pin1 = 4; int motor2pin2 = 5; const int trigPin = 11; // Ultrasonik Sensör için Pinler const int echoPin = 10; const int buzzPin = 6; uzun süre; // Ultrasonik Sensör float mesafesi için değişkenler;

2. geçersiz kurulum () INPUT veya OUTPUT olarak kullanılacak tüm pinleri ayarladığımız bir fonksiyondur. Baud Hızı da bu işlevde ayarlanır. Baud hızı, mikro denetleyici kartının bağlı sensörlerle iletişim kurduğu hızdır.

geçersiz kurulum () {Serial.begin (9600); pinMode (trigPin, OUTPUT); pinMode (echoPin, INPUT); pinMode (buzzPin, OUTPUT); pinMode (enable1pin, OUTPUT); pinMode (enable2pin, OUTPUT); pinMode (motor1pin1, OUTPUT); pinMode (motor1pin2, OUTPUT); pinMode (motor2pin1, OUTPUT); pinMode (motor2pin2, OUTPUT); }

3. geçersiz döngü () bir döngü içinde sürekli çalışan bir işlevdir. Bu döngüde mikrodenetleyiciye 50 cm içinde engel bulunmazsa ne zaman ilerlemesi gerektiğini anlattık. Bir engel bulunduğunda robot keskin bir sağa dönüş yapacaktır.

boşluk döngüsü () {digitalWrite (trigPin, LOW); gecikme Mikrosaniye (2); digitalWrite (trigPin, YÜKSEK); gecikme Mikrosaniye (10); digitalWrite (trigPin, DÜŞÜK); süre = pulseIn (echoPin, HIGH); mesafe = 0,034 * (süre / 2); if (mesafe> 50) // Engel bulunmazsa İleri Hareket {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) // Sharp Right Turn if an obstacle found { digitalWrite(enable1pin, HIGH); digitalWrite(enable2pin, HIGH); digitalWrite(motor1pin1, HIGH); digitalWrite(motor1pin2, LOW); digitalWrite(motor2pin1, LOW); digitalWrite(motor2pin2, LOW); } delay(300); // delay }

Şimdi, otomatik bir zemin temizleme robotu yapmak için ihtiyacınız olan her şeyi tartıştığımız gibi, kendi düşük maliyetli ve verimli zemin temizleme robotunuzu yapmanın tadını çıkarın.