- Komponen Diperlukan:
- Pemasangan Robot Pembersih Lantai:
- Pendawaian dan Sambungan:
- Penjelasan Program:
Pembersih lantai automatik bukanlah perkara baru, tetapi semuanya mempunyai masalah biasa. Semuanya terlalu mahal untuk apa yang mereka lakukan. Hari ini, kita akan membuat Robot Pembersihan Rumah Automatik yang hanya berharga sebahagian kecil dari yang ada di pasaran. Robot ini dapat mengesan rintangan & objek di hadapannya dan dapat terus bergerak, menghindari halangan, hingga seluruh ruangan dibersihkan. Ia mempunyai sikat kecil yang melekat padanya untuk membersihkan lantai.
Periksa juga Robot Pembersih Vakum Pintar kami menggunakan Arduino
Komponen Diperlukan:
- Arduino UNO R3.
- Sensor Ultrasonik.
- Perisai Pemandu Motor Arduino.
- Casis Robot Pemacu Roda.
- Komputer untuk Memprogram Arduino.
- Bateri untuk Motor.
- Bank Kuasa Untuk Menghidupkan Arduino
- Berus Kasut.
- Pad Scrub Scotch Brite.
Catatan: Daripada menggunakan bateri, anda juga boleh menggunakan wayar 4 helai panjang seperti yang kami lakukan. Walaupun ini bukan penyelesaian yang sangat elegan atau praktikal tetapi anda boleh melakukannya jika anda tidak merancang untuk menggunakannya di dunia nyata setiap hari. Pastikan panjang kabel mencukupi.
Sebelum membincangkan secara terperinci mari kita bincangkan mengenai Ultrasonik terlebih dahulu.
Sensor Ultrasonik HC-SR04:
Sensor Ultrasonik digunakan untuk mengukur jarak dengan ketepatan tinggi dan bacaan stabil. Ia dapat mengukur jarak dari 2cm hingga 400cm atau dari 1 inci hingga 13 kaki. Ia memancarkan gelombang ultrasound pada frekuensi 40KHz di udara dan jika objek itu akan menghalangnya maka ia akan kembali ke sensor. Dengan menggunakan masa yang diperlukan untuk menyerang objek dan kembali, anda dapat mengira jaraknya.
Sensor ultrasonik menggunakan teknik yang disebut "ECHO". "ECHO" hanyalah gelombang suara yang dipantulkan. Anda akan mendapat ECHO apabila bunyi dipantulkan kembali setelah menemui jalan buntu.
Modul HCSR04 menghasilkan getaran suara dalam jarak ultrasonik apabila kita membuat pin 'Trigger' tinggi sekitar 10us yang akan mengirimkan ledakan sonik 8 kitaran pada kelajuan suara dan setelah memukul objek, ia akan diterima oleh pin Echo. Bergantung pada masa yang diperlukan oleh getaran suara untuk kembali, ia memberikan output nadi yang sesuai. Sekiranya objek jauh, maka diperlukan lebih banyak masa untuk didengar oleh ECHO dan lebar denyut outputnya akan besar. Dan jika halangan sudah dekat, maka ECHO akan terdengar lebih cepat dan lebar denyut output akan lebih kecil.
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 maju dan mundur yang meliputi jarak yang sama. Oleh itu, masa untuk mencapai halangan hanyalah separuh daripada jumlah masa yang diambil
Jadi Jarak dalam sentimeter = 17150 * T
Kami sebelum ini telah membuat banyak projek berguna dengan menggunakan sensor Ultrasonik dan Arduino ini, periksa di bawah ini:
- Pengukuran Jarak Berdasarkan Arduino menggunakan Sensor Ultrasonik
- Door Alarm menggunakan Arduino dan Ultrasonic Sensor
- Pemantauan Dumpster Berasaskan IOT menggunakan Arduino
Pemasangan Robot Pembersih Lantai:
Pasang Arduino di casis. Pastikan anda tidak membuat litar pintas sekiranya casis anda terbuat dari logam. Adalah idea yang baik untuk mendapatkan kotak untuk Arduino dan perisai pengawal motor. Kunci motor dengan roda dan casis menggunakan skru. Casis anda harus mempunyai pilihan untuk melakukan ini dari kilang, tetapi jika tidak, anda boleh membuat penyelesaian yang berbeza. Epoxy bukan idea yang buruk. Pasang berus kasut di bahagian depan casis. Kami menggunakan kombinasi skok epoksi M-Seal dan gerudi untuk ini, walaupun anda boleh menggunakan penyelesaian lain yang mungkin lebih mudah bagi anda. Pasang scrub Scotch Brite di belakang berus. Kami menggunakan batang yang melintasi casis yang menahannya, walaupun ini juga tidak dapat ditingkatkan. Poros bermuatan spring boleh digunakan untuk menemaninya. Pasang bateri (atau kabel di bahagian belakang casis).Epoksi atau pemegang bateri adalah kaedah yang baik untuk melakukan ini. Lem panas juga tidak teruk.
Pendawaian dan Sambungan:
Litar untuk Robot Pembersihan Rumah Automatik ini sangat mudah. Sambungkan sensor Ultrasonik ke Arduino seperti yang disebutkan di bawah dan letakkan pelindung Pemandu Motor ke Arduino seperti perisai lain.
Pin Trig Ultrasonik disambungkan ke pin ke-12 di Arduino, pin Echo disambungkan ke pin ke-13, pin voltan ke pin 5V dan pin Ground ke pin ground. Pin Echo dan pin Trig membolehkan Arduino berkomunikasi dengan sensor. Kuasa dihantar ke sensor melalui voltan dan pin Ground, dan pin Trig dan Echo memungkinkannya mengirim dan menerima data dengan Arduino. Ketahui lebih lanjut mengenai Interfacing ultrasonik sensor dengan Arduino di sini
Perisai motor harus mempunyai sekurang-kurangnya 2 output, dan ia harus disambungkan ke 2 motor anda. Biasanya, output ini dilabel "M1" dan "M2" atau "Motor 1" dan "Motor 2". Kabelkan bateri dan power bank anda ke pelindung motor dan Arduino masing-masing. Jangan menyeberang menghubungkannya. Perisai motor anda harus mempunyai saluran input. Sekiranya anda menggunakan wayar, sambungkannya ke penyesuai AC.
Penjelasan Program:
Buka Arduino IDE. Tampal kod Arduino yang lengkap, yang diberikan pada akhir tutorial ini, ke dalam IDE. Sambungkan Arduino anda ke komputer. Pilih port di Tools / Port. Klik butang muat naik.
Uji robot. Sekiranya berubah terlalu sedikit atau terlalu banyak, bereksperimen dengan kelewatan sehingga sempurna.
Sebelum memasuki kod, kita perlu memasang Perpustakaan Perisai Motor Adafruit untuk menggerakkan motor DC. Oleh kerana kita menggunakan perisai pemandu motor L293D, kita perlu memuat turun Perpustakaan AFmotor dari sini. Kemudian tambahkan ke dalam folder perpustakaan Arduino IDE anda. Pastikan anda menamakannya semula menjadi AFMotor . Ketahui lebih lanjut mengenai memasang pustaka ini.
Kod itu mudah dan dapat difahami dengan mudah, tetapi di sini kita telah menerangkan beberapa bahagiannya:
Di bawah kod menyediakan robot. Mula-mula kami telah memasukkan Adafruit Library untuk memandu motor dengan perisai pemandu Motor. Selepas itu, kami menentukan Trig pin dan Echo pin. Ia juga memasang motor. Ini menetapkan pin Trig ke output dan pin Echo untuk dimasukkan.
#include #define trigPin 12 #define echoPin 13 AF_DCMotor motor1 (1, MOTOR12_64KHZ); AF_DCMotor motor2 (2, MOTOR12_8KHZ); kekosongan persediaan () {pinMode (trigPin, OUTPUT); pinMode (echoPin, INPUT); }
Kod di bawah ini memberitahu Arduino untuk mengulangi arahan berikut. Selepas itu, ia menggunakan sensor untuk menghantar dan menerima bunyi ultrasonik. Ia menghitung jarak dari objek setelah gelombang ultrasonik memantul kembali, setelah mencatat bahawa objek berada dalam jarak yang ditetapkan, ia memberitahu Arduino untuk memutar motor dengan sewajarnya.
gelung kekosongan () {jangka masa panjang, jarak; digitalWrite (trigPin, RENDAH); kelewatanMikrodetik (2); digitalWrite (trigPin, TINGGI); kelewatanMikrodetik (10); digitalWrite (trigPin, RENDAH); tempoh = pulseIn (echoPin, TINGGI); jarak = (tempoh / 2) / 29.1; jika (jarak <20) {motor1.setSpeed (255); motor2.setSpeed (0); motor1.run (LATAR BELAKANG); motor2.run (LATAR BELAKANG); kelewatan (2000); // TUKAR INI TERSEBUT DENGAN BAGAIMANA ROBOT MENGHILANGKAN.
Ini menjadikan robot berpusing dengan memutar satu motor dan menjadikan yang lain tidak bergerak.
Kod di bawah ini menjadikan robot memutar kedua-dua motor ke arah yang sama untuk membuatnya bergerak ke hadapan sehingga ia dapat mengesan objek di sempadan tersebut.
lain {motor1.setSpeed (160); // TUKAR INI BERSAMA BAGAIMANA CEPAT ROBOT ANDA HARUS. motor2.setSpeed (160); // TUKAR INI KEPADA NILAI YANG SAMA SEBAGAI ANDA TETAP DI ATAS. motor1.run (KEHADIRAN); motor2.run (KEHADIRAN); }