- Cara membina robot mengelakkan halangan menggunakan Ultrasonic Sensor
- Komponen Diperlukan
- Rajah Litar
- Halangan Menghindari Robot menggunakan Arduino - Code
Robot Mengelakkan Halangan adalah peranti pintar yang secara automatik dapat merasakan halangan di depannya dan menghindarinya dengan memutar dirinya ke arah lain. Reka bentuk ini membolehkan robot menavigasi di persekitaran yang tidak diketahui dengan mengelakkan perlanggaran, yang merupakan syarat utama bagi mana-mana robot bergerak autonomi. Aplikasi robot Mengelakkan Halangan tidak terhad dan digunakan di kebanyakan organisasi ketenteraan sekarang yang membantu melaksanakan banyak pekerjaan berisiko yang tidak dapat dilakukan oleh mana-mana tentera.
Kami sebelum ini membina Robot Mengelakkan Halangan menggunakan Raspberry Pi dan menggunakan PIC Microcontroller. Kali ini kita akan membina robot mengelakkan Halangan menggunakan sensor ultrasonik dan Arduino. Di sini sensor Ultrasonik digunakan untuk merasakan rintangan di jalan dengan mengira jarak antara robot dan halangan. Sekiranya robot menemui halangan, ia akan mengubah arah dan terus bergerak.
Cara membina robot mengelakkan halangan menggunakan Ultrasonic Sensor
Sebelum membina robot, penting untuk memahami bagaimana sensor ultrasonik berfungsi kerana sensor ini akan mempunyai peranan penting dalam mengesan halangan. Prinsip asas di sebalik pengoperasian sensor ultrasonik adalah mencatat masa yang diambil oleh sensor untuk memancarkan sinar ultrasonik dan menerima sinar ultrasonik setelah memukul permukaan. Kemudian jarak lebih jauh dikira menggunakan formula. Dalam projek ini, Sensor Ultrasonik HC-SR04 yang banyak digunakan. Untuk menggunakan sensor ini, pendekatan serupa akan diikuti dijelaskan di atas.
Oleh itu, pin Trig HC-SR04 dibuat tinggi untuk sekurang-kurangnya 10 kita. Satu pancaran sonik dihantar dengan 8 denyutan 40KHz setiap satu.
Isyarat kemudian memukul permukaan dan kembali ke belakang dan ditangkap oleh pin Echo penerima HC-SR04. Pin Echo telah membuat tinggi pada saat mengirim tinggi.
Masa yang diambil oleh rasuk untuk kembali disimpan dalam pemboleh ubah dan ditukar ke jarak menggunakan pengiraan yang sesuai seperti di bawah
Jarak = (Masa x Kelajuan Bunyi di Udara (343 m / s)) / 2
Kami menggunakan sensor ultrasonik dalam banyak projek, untuk mengetahui lebih lanjut mengenai sensor Ultrasonik, memeriksa projek lain yang berkaitan dengan sensor Ultrasonik.
Komponen untuk robot penghalang halangan ini dapat dijumpai dengan mudah. Untuk membuat casis, casis mainan apa pun boleh digunakan atau boleh dibuat khas.
Komponen Diperlukan
- Arduino NANO atau Uno (versi apa pun)
- Sensor Ultrasonik HC-SR04
- Modul Pemandu Motor LM298N
- Motor DC 5V
- Bateri
- Roda
- Casis
- Wayar Pelompat
Rajah Litar
Gambarajah litar lengkap untuk projek ini diberikan di bawah, kerana anda dapat melihatnya menggunakan nano Arduino. Tetapi kita juga dapat membina robot menghindari halangan menggunakan Arduino UNO dengan litar yang sama (ikuti pinout yang sama) dan kod.
Setelah litar siap, kita harus membina rintangan mengelakkan kereta dengan memasang litar di atas casis robot seperti yang ditunjukkan di bawah.
Halangan Menghindari Robot menggunakan Arduino - Code
Program lengkap dengan video demonstrasi diberikan pada akhir projek ini. Program ini akan merangkumi penyediaan modul HC-SR04 dan mengeluarkan isyarat ke Motor Pins untuk menggerakkan arah motor dengan sewajarnya. Tiada perpustakaan akan digunakan dalam projek ini.
Pertama tentukan pin trig dan echo HC-SR04 dalam program. Dalam projek ini pin trig dihubungkan ke GPIO9 dan pin gema disambungkan ke GPIO10 dari Arduino NANO.
int trigPin = 9; // pin trig HC-SR04 int echoPin = 10; // Pin gema HC-SR04
Tentukan pin untuk input Modul Pemandu Motor LM298N. LM298N mempunyai 4 pin input data yang digunakan untuk mengawal arah motor yang terhubung dengannya.
int revleft4 = 4; // Gerakan terbalik motor Kiri int fwdleft5 = 5; // Gerakan ForWarD motor Kiri int revright6 = 6; // Gerakan terbalik motor Kanan int fwdright7 = 7; // Gerakan ForWarD motor Kanan
Dalam fungsi setup () , tentukan arah data dari pin GPIO yang digunakan. Empat pin Motor dan pin Trig ditetapkan sebagai OUTPUT dan Pin Echo ditetapkan sebagai Input.
pinMode (revleft4, OUTPUT); // tetapkan pin Motor sebagai output pinMode (fwdleft5, OUTPUT); pinMode (revright6, OUTPUT); pinMode (fwdright7, OUTPUT); pinMode (trigPin, OUTPUT); // tetapkan pin trig sebagai output pinMode (echoPin, INPUT); // tetapkan pin gema sebagai input untuk menangkap gelombang yang dipantulkan
Dalam fungsi loop () , dapatkan jarak dari HC-SR04 dan berdasarkan jarak menggerakkan arah motor. Jarak akan menunjukkan jarak objek yang datang di hadapan robot. Jarak diambil dengan meletupkan pancaran ultrasonik hingga 10 kita dan menerimanya setelah 10us. Untuk mengetahui lebih lanjut mengenai mengukur jarak menggunakan sensor Ultrasonik dan Arduino, ikuti pautan.
digitalWrite (trigPin, RENDAH); kelewatanMikrodetik (2); digitalWrite (trigPin, TINGGI); // hantarkan gelombang untuk kelewatan 10 kamiMikrodetik (10) tempoh = pulseIn (echoPin, TINGGI); // terima jarak gelombang yang dipantulkan = jangka masa / 58.2; // tukar kepada kelewatan jarak (10);
Sekiranya jarak lebih besar daripada jarak yang ditentukan bermaksud tidak ada halangan di lintasannya dan ia akan bergerak ke arah hadapan.
jika (jarak> 19) { digitalWrite (fwdright7, TINGGI); // bergerak maju digitalWrite (revright6, RENDAH); digitalWrite (fwdleft5, TINGGI); digitalWrite (revleft4, RENDAH); }
Sekiranya jaraknya kurang dari jarak yang ditentukan untuk mengelakkan halangan bererti ada beberapa halangan di depan. Jadi dalam keadaan ini robot akan berhenti sebentar dan bergerak ke belakang selepas itu berhenti lagi sebentar dan kemudian beralih ke arah lain.
jika (jarak <18) { digitalWrite (fwdright7, LOW); // Hentikan digitalWrite (revright6, RENDAH); digitalWrite (fwdleft5, RENDAH); digitalWrite (revleft4, RENDAH); kelewatan (500); digitalWrite (fwdright7, RENDAH); // movebackword digitalWrite (revright6, TINGGI); digitalWrite (fwdleft5, RENDAH); digitalWrite (revleft4, TINGGI); kelewatan (500); digitalWrite (fwdright7, RENDAH); // Hentikan digitalWrite (revright6, RENDAH); digitalWrite (fwdleft5, RENDAH); digitalWrite (revleft4, RENDAH); kelewatan (100); digitalWrite (fwdright7, TINGGI); digitalWrite (revright6, RENDAH); digitalWrite (revleft4, RENDAH); digitalWrite (fwdleft5, RENDAH); kelewatan (500); }
Jadi ini adalah bagaimana robot dapat mengelakkan halangan di jalannya tanpa tersekat di mana sahaja. Cari kod dan video yang lengkap di bawah.