- Komponen yang Diperlukan:
- Modul Sensor Ultrasonik:
- Penjelasan Litar:
- Bagaimana ia berfungsi:
- Penjelasan Pengaturcaraan:
Robot adalah mesin yang mengurangkan usaha manusia dalam pekerjaan berat dengan mengautomasikan tugas di industri, kilang, hospital dll. Sebilangan besar robot dijalankan dengan menggunakan beberapa unit kawalan atau komponen seperti butang tekan, alat kawalan jauh, kayu bedik, PC, gerak isyarat dan oleh melaksanakan beberapa arahan dengan menggunakan pengawal atau pemproses. Tetapi hari ini kita berada di sini dengan Robot Automatik yang bergerak secara autonomi tanpa kejadian luaran mengelakkan semua halangan di jalannya, ya kita bercakap tentang Robot Mengelakkan Halangan. Dalam projek ini, kami telah menggunakan pemandu Raspberry Pi dan Motor untuk menggerakkan robot dan sensor Ultrasonik untuk mengesan objek di jalan Robot.
Sebelum ini kami telah merangkumi banyak Robot berguna, anda boleh mencarinya di bahagian projek Robotik kami.
Komponen yang Diperlukan:
- Pai raspberi
- Modul Sensor Ultrasonik HC-SR04
- ROBOT Chassis lengkap dengan skru
- Motor DC
- L293D IC
- Roda
- Papan Roti
- Perintang (1k)
- Kapasitor (100nF)
- Menyambung wayar
- Bekalan kuasa atau Power bank
Modul Sensor Ultrasonik:
Satu halangan avoider Robot adalah Robot Automatik dan ia tidak perlu dikawal menggunakan mana-mana jauh. Robot automatik jenis ini mempunyai beberapa sensor 'pancaindera keenam' seperti pengesan halangan, pengesan bunyi, pengesan haba atau pengesan logam. Di sini kita telah melakukan Pengesanan Obstacle menggunakan Sinyal Ultrasound. Untuk tujuan ini, kami telah menggunakan Modul Sensor Ultrasonik.
Sensor Ultrasonik biasanya digunakan untuk mengesan objek dan menentukan jarak halangan dari sensor. Ini adalah alat yang bagus untuk mengukur jarak tanpa hubungan fizikal, seperti Pengukuran Paras Air di tangki, pengukuran jarak, robot penghalang Halangan dll. Jadi di sini, kami telah mengesan objek dan mengukur jarak dengan menggunakan Sensor Ultrasonik dan Raspberry Pi.
Sensor ultrasonik HC-SR04 digunakan untuk mengukur jarak dalam lingkungan 2cm-400cm dengan ketepatan 3mm. Modul sensor terdiri daripada pemancar, penerima, dan rangkaian kawalan ultrasonik. Sensor Ultrasonik terdiri daripada dua mata bulat yang mana satu digunakan untuk menghantar gelombang ultrasonik dan yang lain menerimanya.
Kita dapat mengira jarak objek berdasarkan masa yang diambil oleh gelombang ultrasonik untuk kembali ke sensor. Oleh kerana masa dan kelajuan suara diketahui, kita dapat mengira jarak dengan formula berikut.
- Jarak = (Masa x Kelajuan Bunyi di Udara (343 m / s)) / 2.
Nilai dibahagi dua kerana gelombang bergerak ke depan dan ke belakang yang meliputi jarak yang sama. Oleh itu, masa untuk mencapai halangan hanyalah separuh daripada jumlah masa yang diambil.
Oleh itu, kami telah mengira jarak (dalam sentimeter) dari halangan seperti di bawah:
pulse_start = time.time () manakala GPIO.input (ECHO) == 1: #Periksa sama ada ECHO adalah GPIO TINGGI. output (dipimpin, Salah) pulse_end = waktu.waktu () jarak = bulat (jarak, 2) avgDistance = avgDistance + jarak
Di mana pulse_duration adalah masa antara menghantar dan menerima isyarat ultrasonik.
Penjelasan Litar:
Litar sangat mudah untuk Robot Mengelakkan Halangan ini menggunakan Raspberry Pi. Satu modul ultrasonik Sensor, yang digunakan untuk objek mengesan, disambungkan di GPIO pin 17 dan 27 Raspberry Pi. A Motor pemandu IC L293D adalah dihubungkan dengan Raspberry Pi 3 untuk memandu motor robot. Pin input pemandu motor 2, 7, 10 dan 15 masing-masing disambungkan ke pin Raspberry Pi GPIO nombor 12, 16, 20 dan 21. Di sini kita telah menggunakan dua motor DC untuk menggerakkan robot di mana satu motor disambungkan ke pin output 3 & 6 IC pemandu motor dan motor lain disambungkan pada Pin 11 & 14 IC pemandu motor.
Bagaimana ia berfungsi:
Kerja Robot Autonomi ini sangat mudah. Apabila Robot dihidupkan dan mula berjalan, Raspberry Pi mengukur jarak objek, di hadapannya, dengan menggunakan Modul Sensor Ultrasonik dan menyimpan dalam pemboleh ubah. Kemudian RPi membandingkan nilai ini dengan nilai yang telah ditentukan dan mengambil keputusan yang sesuai untuk menggerakkan Robot ke Kiri, Kanan, Maju, atau ke belakang.
Di sini, dalam projek ini, kami telah memilih jarak 15cm untuk mengambil keputusan oleh Raspberry Pi. Sekarang setiap kali Raspberry Pi mendapat jarak kurang dari 15cm dari objek apa pun maka Raspberry Pi menghentikan robot dan menggerakkannya kembali dan kemudian membelok ke kiri atau kanan. Sebelum memindahkannya ke hadapan lagi, Raspberry Pi sekali lagi memeriksa apakah ada halangan yang terdapat dalam jarak jarak 15 cm, jika ya sekali lagi mengulangi proses sebelumnya, maka gerakkan robot ke depan sehingga ia akan mengesan halangan atau objek lagi.
Penjelasan Pengaturcaraan:
Kami menggunakan bahasa Python di sini untuk Program. Sebelum membuat pengekodan, pengguna perlu mengkonfigurasi Raspberry Pi. Anda boleh menyemak tutorial kami sebelumnya untuk Bermula dengan Raspberry Pi dan Memasang & Mengkonfigurasi OS Raspbian Jessie di Pi.
Bahagian pengaturcaraan projek ini memainkan peranan yang sangat penting untuk melaksanakan semua operasi. Pertama sekali, kami menyertakan perpustakaan yang diperlukan, menginisialisasi pemboleh ubah dan menentukan pin untuk sensor, motor dan komponen ultrasonik.
import RPi.GPIO sebagai GPIO masa import #Import time library GPIO.setwarnings (False) GPIO.setmode (GPIO.BCM) TRIG = 17 ECHO = 27…………….
Selepas itu, kami telah membuat beberapa fungsi def maju (), def back (), def kiri (), def right () untuk menggerakkan robot masing-masing ke arah depan, belakang, kiri atau kanan dan def stop () untuk menghentikan robot, semak fungsi dalam Kod yang diberikan di bawah.
Kemudian, dalam program utama, kami telah memulakan Sensor Ultrasonik dan membaca masa antara penghantaran dan penerimaan isyarat dan mengira jaraknya. Di sini kami telah mengulangi proses ini selama 5 kali untuk ketepatan yang lebih baik. Kami telah menjelaskan proses mengira jarak menggunakan sensor Ultrasonik.
i = 0 avgDistance = 0 for i in range (5): GPIO.output (TRIG, False) time.sleep (0.1) GPIO.output (TRIG, True) time.sleep (0.00001) GPIO.output (TRIG, False) sementara GPIO.input (ECHO) == 0: GPIO.output (led, False) pulse_start = time.time () manakala GPIO.input (ECHO) == 1: #Periksa sama ada ECHO adalah GPIO.output TINGGI (dipimpin, False) pulse_end = time.time () pulse_duration = pulse_end - pulse_start jarak = pulse_duration * 17150 jarak = bulat (jarak, 2) avgDistance = avgDistance + jarak
Akhirnya jika Robot menemui halangan di hadapannya maka setelah mendapat jarak dari halangan tersebut, kami telah memprogramkan Robot untuk mengambil jalan yang berbeza.
jika avgDistance <15: count = count + 1 stop () time.sleep (1) back () time.sleep (1.5) if (count% 3 == 1) & (flag == 0): kanan () bendera = 1 lagi: kiri () bendera = 0 waktu. Tidur (1.5) berhenti () masa. Tidur (1) yang lain: ke hadapan () bendera = 0
Kod lengkap untuk Robot Mengelakkan Halangan Raspberry Pi ini diberikan di bawah dengan Video Demonstrasi.