- Komponen yang Dibutuhkan:
- Modul Sensor Ultrasonik:
- Penjelasan Sirkuit:
- Bagaimana itu bekerja:
- Penjelasan Pemrograman:
Robot adalah mesin yang mengurangi upaya manusia dalam pekerjaan berat dengan mengotomatiskan tugas-tugas di industri, pabrik, rumah sakit dll. Sebagian besar robot dijalankan dengan menggunakan beberapa unit kontrol atau komponen seperti tombol tekan, remote, joystick, PC, gerakan dan oleh menjalankan beberapa perintah dengan menggunakan pengontrol atau prosesor. Tapi hari ini kita hadir dengan Robot Otomatis yang bergerak secara otonom tanpa ada kejadian eksternal menghindari semua rintangan yang dilaluinya, ya kita bicarakan Robot Menghindari Rintangan. Dalam proyek ini, kami telah menggunakan Raspberry Pi dan driver Motor untuk menggerakkan robot dan sensor Ultrasonik untuk mendeteksi objek di jalur Robot.
Sebelumnya kami telah membahas banyak Robot yang berguna, Anda dapat menemukannya di bagian proyek Robotika kami.
Komponen yang Dibutuhkan:
- Raspberry Pi
- Modul Sensor Ultrasonik HC-SR04
- Sasis ROBOT lengkap dengan sekrup
- Motor DC
- IC L293D
- Roda
- Papan Roti
- Resistor (1k)
- Kapasitor (100nF)
- Menghubungkan kabel
- Power supply atau Power bank
Modul Sensor Ultrasonik:
Sebuah Kendala avoider Robot adalah Robot Automated dan tidak perlu dikendalikan menggunakan remote apapun. Jenis robot otomatis ini memiliki beberapa sensor 'indra keenam' seperti detektor rintangan, detektor suara, detektor panas, atau detektor logam. Di sini kami telah melakukan Deteksi Rintangan menggunakan Sinyal Ultrasound. Untuk tujuan ini, kami telah menggunakan Modul Sensor Ultrasonik.
Sensor Ultrasonik biasanya digunakan untuk mendeteksi objek dan menentukan jarak hambatan dari sensor tersebut. Ini adalah alat yang hebat untuk mengukur jarak tanpa kontak fisik, seperti Pengukur Ketinggian Air di tangki, pengukur jarak, robot penghindar rintangan dll. Jadi disini, kami telah mendeteksi objek dan mengukur jarak dengan menggunakan Sensor Ultrasonik dan Raspberry Pi.
Sensor ultrasonik HC-SR04 digunakan untuk mengukur jarak dalam kisaran 2cm-400cm dengan akurasi 3mm. Modul sensor terdiri dari pemancar ultrasonik, penerima, dan rangkaian kendali. Sensor Ultrasonik terdiri dari dua mata melingkar yang salah satunya digunakan untuk mentransmisikan gelombang ultrasonik dan yang lainnya untuk menerimanya.
Kita bisa menghitung jarak benda berdasarkan waktu yang dibutuhkan gelombang ultrasonik untuk kembali ke sensor. Karena waktu dan kecepatan suara diketahui, kita dapat menghitung jarak dengan rumus berikut.
- Jarak = (Waktu x Kecepatan Suara di Udara (343 m / s)) / 2.
Nilai tersebut dibagi dua karena gelombang bergerak maju dan mundur yang menempuh jarak yang sama, sehingga waktu yang dibutuhkan untuk mencapai halangan hanyalah separuh dari total waktu yang dibutuhkan.
Jadi kami telah menghitung jarak (dalam sentimeter) dari rintangan seperti di bawah ini:
pulse_start = time.time () sedangkan GPIO.input (ECHO) == 1: # Periksa apakah ECHO TINGGI GPIO.output (led, False) pulse_end = time.time () pulse_duration = pulse_end - pulse_start distance = pulse_duration * 17150 jarak = putaran (jarak, 2) avgDistance = avgDistance + jarak
Di mana pulse_duration adalah waktu antara mengirim dan menerima sinyal ultrasonik.
Penjelasan Sirkuit:
Rangkaian yang sangat sederhana untuk Robot Menghindari Rintangan ini menggunakan Raspberry Pi. Sebuah modul Ultrasonic Sensor, digunakan untuk benda mendeteksi, terhubung pada GPIO pin 17 dan 27 dari Raspberry Pi. Sebuah Driver Motor IC L293D terhubung ke Raspberry Pi 3 untuk mengemudi motor robot. Pin input driver motor 2, 7, 10 dan 15 masing-masing terhubung ke pin Raspberry Pi GPIO nomor 12, 16, 20 dan 21. Di sini kami telah menggunakan dua motor DC untuk menggerakkan robot di mana satu motor terhubung ke pin keluaran 3 & 6 dari IC driver motor dan motor lain terhubung ke Pin 11 & 14 dari IC driver motor.
Bagaimana itu bekerja:
Pengerjaan Robot Otonom ini sangat mudah. Saat Robot dihidupkan dan mulai berjalan, Raspberry Pi mengukur jarak objek, di depannya, dengan menggunakan Modul Sensor Ultrasonik dan menyimpannya dalam variabel. Kemudian RPi membandingkan nilai ini dengan nilai yang telah ditentukan dan mengambil keputusan yang sesuai untuk menggerakkan Robot ke Kiri, Kanan, Maju, atau mundur.
Di sini, di proyek ini, kami telah memilih jarak 15cm untuk mengambil keputusan apa pun oleh Raspberry Pi. Sekarang setiap kali Raspberry Pi mendapat jarak kurang dari 15cm dari objek apa pun, Raspberry Pi menghentikan robot dan memindahkannya kembali dan kemudian memutarnya ke kiri atau kanan. Sekarang sebelum memajukannya lagi, Raspberry Pi kembali memeriksa apakah ada penghalang dalam jarak 15 cm, jika ya maka ulangi lagi proses sebelumnya, jika tidak, gerakkan robot ke depan hingga akan mendeteksi hambatan atau objek lagi.
Penjelasan Pemrograman:
Kami menggunakan bahasa Python di sini untuk Program. Sebelum melakukan coding, pengguna perlu mengkonfigurasi Raspberry Pi. Anda dapat memeriksa tutorial kami sebelumnya untuk Memulai dengan Raspberry Pi dan Menginstal & Mengkonfigurasi Raspbian Jessie OS di Pi.
Bagian pemrograman proyek ini memainkan peran yang sangat penting untuk melakukan semua operasi. Pertama-tama, kami menyertakan pustaka yang diperlukan, menginisialisasi variabel, dan menentukan pin untuk sensor ultrasonik, motor, dan komponen.
impor RPi.GPIO sebagai GPIO waktu impor #Import time library GPIO.setwarnings (False) GPIO.setmode (GPIO.BCM) TRIG = 17 ECHO = 27………………….
Setelah itu kita buat beberapa fungsi def forward (), def back (), def left (), def right () untuk menggerakkan robot maju, mundur, kiri atau kanan masing-masing dan def stop () untuk menghentikan robot, periksa fungsi dalam Kode yang diberikan di bawah ini.
Kemudian, di program utama, kami telah memulai Sensor Ultrasonik dan membaca waktu antara transmisi dan penerimaan sinyal dan menghitung jarak. Di sini kami telah mengulangi proses ini sebanyak 5 kali untuk akurasi yang lebih baik. Kami sudah menjelaskan proses penghitungan jarak menggunakan sensor Ultrasonic.
i = 0 avgDistance = 0 untuk i dalam rentang (5): GPIO.output (TRIG, False) time.sleep (0.1) GPIO.output (TRIG, True) time.sleep (0.00001) GPIO.output (TRIG, False) sedangkan GPIO.input (ECHO) == 0: GPIO.output (led, False) pulse_start = time.time () sedangkan GPIO.input (ECHO) == 1: # Periksa apakah ECHO TINGGI GPIO.output (led, Salah) pulse_end = time.time () pulse_duration = pulse_end - pulse_start distance = pulse_duration * 17150 jarak = round (jarak, 2) avgDistance = avgDistance + jarak
Akhirnya jika Robot menemukan halangan didepannya maka setelah mendapatkan jarak dari halangan tersebut, kita telah memprogram Robot tersebut untuk mengambil rute yang berbeda.
jika avgDistance <15: count = count + 1 stop () time.sleep (1) back () time.sleep (1.5) if (count% 3 == 1) & (flag == 0): right () flag = 1 lagi: left () flag = 0 time.sleep (1,5) stop () time.sleep (1) else: forward () flag = 0
Kode lengkap untuk Robot Menghindari Rintangan Raspberry Pi ini diberikan di bawah ini dengan Video Demonstrasi.