Bagaimana Membuat Halangan Menghindari Robot Menggunakan Arduino?

Dunia bergerak pantas, dan teknologi juga bergerak dengannya dalam bidang robotik. Aplikasi robotik dapat dilihat di mana-mana tempat di seluruh dunia. Konsep robot mudah alih atau autonomi yang bergerak tanpa bantuan luaran adalah bidang penyelidikan yang paling menarik. Terdapat begitu banyak jenis robot mudah alih, misalnya, jurubahasa Self Localization and Mapping (SLAM), Line following, Sumo Bots, dll. Robot mengelakkan halangan adalah salah satunya. Ia menggunakan teknik untuk mengubah jalan jika mengesan ada halangan dalam perjalanannya.



(Gambar ihsan: Rangkaian litar)

Dalam projek ini, robot penghalang halangan berasaskan Arduino dirancang yang akan menggunakan sensor ultrasonik untuk mengesan semua rintangan di jalannya.



Bagaimana Mengelakkan Halangan Menggunakan Ultrasonik Sensor?

Seperti yang kita tahu abstrak projek kita, marilah kita melangkah selangkah ke depan dan mengumpulkan beberapa maklumat untuk memulakan projek.



Langkah 1: Mengumpulkan Komponen

Pendekatan terbaik untuk memulakan sesuatu projek adalah dengan membuat senarai komponen lengkap pada permulaan dan menjalani kajian ringkas setiap komponen. Ini membantu kita dalam mengelakkan kesulitan di tengah-tengah projek. Senarai lengkap semua komponen yang digunakan dalam projek ini diberikan di bawah.



  • Casis Roda Kereta
  • Bateri

Langkah 2: Mengkaji Komponen

Sekarang, kerana kita mempunyai senarai lengkap semua komponen, marilah kita melangkah selangkah ke depan dan menjalani kajian ringkas mengenai cara kerja setiap komponen.

Arduino nano adalah papan mikrokontroler yang mesra roti yang digunakan untuk mengawal atau menjalankan tugas yang berbeza dalam litar. Kami membakar a Kod C di Arduino Nano untuk memberitahu lembaga mikrokontroler bagaimana dan operasi apa yang harus dilakukan. Arduino Nano mempunyai fungsi yang sama persis dengan Arduino Uno tetapi dalam ukuran yang agak kecil. Mikrokontroler di papan Arduino Nano adalah ATmega328p.

Arduino Nano



L298N adalah litar bersepadu voltan tinggi dan arus tinggi. Ia adalah jambatan penuh dua yang direka untuk menerima logik TTL standard. Ia mempunyai dua input yang membolehkan peranti beroperasi secara bebas. Dua motor boleh disambungkan dan dikendalikan pada masa yang sama. Kelajuan motor diubah melalui pin PWM. Pulse Width Modulation (PWM) adalah teknik di mana aliran voltan dalam komponen elektronik mana pun dapat dikendalikan. Modul ini mempunyai H-Bridge yang bertanggungjawab untuk mengawal arah putaran pada motor dengan membalikkan arah arus. Enable pin A dan Enable Pin B digunakan untuk mengubah kelajuan kedua-dua motor. Modul ini boleh beroperasi antara 5 dan 35V dan arus puncak hingga 2A. Input Pin1 dan Input Pin2 dan untuk Motor pertama dan Input Pin3 dan Input Pin4 adalah untuk Motor kedua.

Pemandu Motor L298N

Papan HC-SR04 adalah sensor ultrasonik yang digunakan untuk menentukan jarak antara dua objek. Ia terdiri daripada pemancar dan penerima. Pemancar menukar isyarat elektrik menjadi isyarat ultrasonik dan penerima menukar isyarat ultrasonik kembali ke isyarat elektrik. Apabila pemancar menghantar gelombang ultrasonik, ia memantulkan setelah bertembung dengan objek tertentu. Jarak dikira dengan menggunakan masa, yang memerlukan isyarat ultrasonik untuk pergi dari pemancar dan kembali ke penerima.

Sensor Ultrasonik

Langkah 3: Menyusun Komponen

Sekarang seperti yang kita ketahui cara kerja kebanyakan komponen yang digunakan, marilah kita mulai menyusun semua komponen dan menghasilkan robot penghalang halangan.

  1. Ambil chasses roda kereta dan tempelkan papan roti di bahagian atasnya. Pasang sensor Ultrasonik di bahagian depan casing dan penutup bateri di belakang casis.
  2. Betulkan papan Arduino Nano di papan roti dan pasangkan pemandu motor tepat di belakang papan roti, di casis. Sambungkan pin Aktifkan kedua motor ke Pin6 dan Pin9 of Arduino nano. Pin In1, In2, In3 dan In4 modul pemandu motor masing-masing disambungkan ke pin2, pin3, pin4 dan pin5 dari Arduino nano.
  3. Pin trig dan echo sensor ultrasonik masing-masing disambungkan ke pin11 dan in10 dari Arduino nano. Vcc dan pin ground dari sensor ultrasonik disambungkan ke 5V dan ground Arduino Nano.
  4. Modul pengawal Motor dikuasakan oleh bateri. Papan Arduino Nano mendapat kuasa dari port 5V modul pemandu motor dan sensor ultrasonik akan mendapat kuasanya dari papan nano Arduino. berat dan tenaga bateri boleh menjadi faktor penentu prestasinya.
  5. Pastikan sambungan anda sama seperti yang ditunjukkan di bawah dalam rajah litar.

    Rajah Litar

Langkah 4: Bermula dengan Arduino

Sekiranya anda belum biasa dengan Arduino IDE, jangan risau kerana prosedur langkah demi langkah untuk menyiapkan dan menggunakan Arduino IDE dengan papan mikrokontroler dijelaskan di bawah.

  1. Muat turun versi terbaru dari Arduino IDE dari Arduino.
  2. Sambungkan papan Arduino Nano anda ke komputer riba anda dan buka panel kawalan. di panel kawalan, klik pada Perkakasan dan Bunyi . Sekarang klik pada Peranti dan Pencetak. Di sini, cari port yang menghubungkan papan mikrokontroler anda. Dalam kes saya adalah COM14 tetapi berbeza pada komputer yang berbeza.

    Mencari Pelabuhan

  3. Klik pada menu Alat. dan tetapkan papan ke Arduino Nano dari menu lungsur turun.

    Menetapkan Papan

  4. Dalam menu Alat yang sama, tetapkan port ke nombor port yang anda perhatikan sebelumnya di Peranti dan Pencetak .

    Menetapkan Pelabuhan

  5. Dalam menu Alat yang sama, Tetapkan Pemproses ke ATmega328P (Pemuat Boot Lama).

    Pemproses

  6. Muat turun kod yang dilampirkan di bawah dan tampalkannya ke Arduino IDE anda. Klik pada muat naik butang untuk membakar kod pada papan mikrokontroler anda.

    Muat naik

Untuk memuat turun kod, tekan di sini.

Langkah 5: Memahami Kod

Kodnya dikomentari dengan baik dan jelas. Tetapi masih, ia dijelaskan di bawah

1. Pada permulaan kod, semua pin papan Arduino Nano yang disambungkan ke modul ultrasonik sensor dan pemacu motor, diinisialisasi. Pin6 dan Pin9 adalah pin PWM yang boleh mengubah aliran voltan untuk mengubah kelajuan Robot. Dua pemboleh ubah, jangka masa, dan jarak diinisialisasi untuk menyimpan data yang kemudian akan digunakan untuk mengira jarak sensor ultrasonik dan halangan.

int enable1pin = 6; // Pin untuk Motor Pertama int motor1pin1 = 2; int motor1pin2 = 3; int enable2pin = 9; // Pin Untuk Motor Kedua int motor2pin1 = 4; int motor2pin2 = 5; const int trigPin = 11; // Pencetus Pin Ultrasonik Sesnor const int echoPin = 10; // Echo Pin Of Ultrasonic Sesnor jangka masa panjang; // pemboleh ubah untuk Mengira jarak jarak apungan;

2. persediaan tidak sah () adalah fungsi yang digunakan untuk menetapkan al pin yang digunakan, sebagai MASUKKAN dan PENGELUARAN. Baud Rate ditentukan dalam fungsi ini. Baud Rate adalah kelajuan komunikasi di mana papan mikrokontroler berkomunikasi dengan sensor yang disatukan dengannya.

batal persediaan () {Serial.begin (9600); pinMode (trigPin, OUTPUT); pinMode (echoPin, INPUT); pinMode (aktifkan1pin, OUTPUT); pinMode (aktifkan 2pin, OUTPUT); pinMode (motor1pin1, OUTPUT); pinMode (motor1pin2, OUTPUT); pinMode (motor2pin1, OUTPUT); pinMode (motor2pin2, OUTPUT); }

3. gelung kosong () adalah fungsi yang berjalan berulang kali dalam satu kitaran. Dalam fungsi ini, kami memberitahu lembaga mikrokontroler bagaimana dan operasi apa yang harus dijalankan. Di sini, pertama, pin pemicu diatur untuk mengirim isyarat yang akan dikesan oleh pin gema. Kemudian masa yang diambil oleh isyarat ultrasonik untuk bergerak dari dan kembali ke sensor dikira dan disimpan dalam pemboleh ubah jangka masa. Kemudian waktu ini digunakan dalam formula untuk mengira jarak halangan dan sensor ultrasonik. Kemudian syarat dikenakan bahawa jika jaraknya lebih dari 5ocm, robot akan bergerak maju dalam garis lurus dan jika jaraknya kurang dari 50cm, robot akan mengambil belok kanan yang tajam.

gelung kosong () {digitalWrite (trigPin, LOW); // Menghantar dan Mengesan kelewatan Isyarat UltrasonikMikrodetik (2); digitalWrite (trigPin, TINGGI); kelewatanMikrodetik (10); digitalWrite (trigPin, RENDAH); tempoh = pulseIn (echoPin, TINGGI); // Mengira waktu yang diambil oleh gelombang ultrasonik untuk mencerminkan jarak belakang = 0.034 * (tempoh / 2); // Mengira jarak antara anda dengan robot dan rintangan. if (jarak> 50) // Bergerak Ke Hadapan jika jarak lebih besar daripada 50cm {digitalWrite (enabled1pin, HIGH); digitalWrite (aktifkan 2pin, TINGGI); digitalWrite (motor1pin1, TINGGI); digitalWrite (motor1pin2, RENDAH); digitalWrite (motor2pin1, TINGGI); digitalWrite (motor2pin2, RENDAH); } lain jika (jarak<50) // Sharp Right Turn if the distance is less than 50cm { digitalWrite(enable1pin, HIGH); digitalWrite(enable2pin, HIGH); digitalWrite(motor1pin1, HIGH); digitalWrite(motor1pin2, LOW); digitalWrite(motor2pin1, LOW); digitalWrite(motor2pin2, LOW); } delay(300); }

Permohonan

Jadi berikut adalah prosedur untuk membuat robot menghindari halangan Teknologi penghalang halangan ini juga dapat digugat dalam aplikasi lain. Beberapa aplikasi ini adalah seperti berikut.

  1. Sistem Penjejakan.
  2. Tujuan Pengukuran Jarak.
  3. Ini boleh digunakan dalam robot pembersih vakum automatik.
  4. Ini boleh digunakan dalam Tongkat untuk orang buta.