Daftar Isi:
2025 Pengarang: John Day | [email protected]. Terakhir diubah: 2025-01-13 06:57
Saya sedang membangun untuk bersenang-senang robot yang ingin saya gerakkan secara mandiri di dalam rumah.
Ini adalah pekerjaan yang panjang dan saya melakukan langkah demi langkah.
Fokus instruksional ini pada deteksi rintangan dengan Arduino Mega
Sensor ultrasonik HC-SR04 vs HY-SRF05 murah dan mudah digunakan tetapi dapat menjadi sulit untuk diintegrasikan dalam loop mikrokontroler dalam robot yang kompleks. Saya ingin menjalankan deteksi rintangan dengan cara yang tidak sinkron.
_
Saya sudah menerbitkan 3 instruksi tentang fitur robot ini:
- Buat encoder roda Anda
- Jadikan Gerbang WIFI Anda
- Gunakan Unit Modul Inersia
Dan dokumentasi tentang menggabungkan kecerdasan buatan dan ultrasound untuk melokalisasi robot.
Langkah 1: Apa Sebenarnya Masalah Dengan Sensor Ultrasonik dan Mikrokontroler?
Penantian sinkron dan batasan Arduino
Kode mikrokontroler berjalan dalam satu lingkaran dan tidak mendukung multi-utas. Sensor ultrasonik didasarkan pada durasi sinyal. Durasi ini berlangsung hingga 30 mdtk yang sangat lama untuk menunggu di dalam loop ketika mikrokontroler harus berurusan dengan banyak motor dan sensor (misalnya motor servo dan DC dengan enkoder roda).
Jadi saya ingin mengembangkan objek yang berjalan secara tidak sinkron.
Langkah 2: Bagaimana Cara Kerjanya?
Ini telah dirancang untuk Atmega untuk deteksi rintangan. Ini mendukung hingga 4 sensor ultrasonik.
Berkat gangguan waktu berkala, sistem dapat memantau hingga 4 sensor ultrasonik. Kode utama hanya menentukan sensor mana yang akan diaktifkan dengan kondisi dan ambang batas. Yang utama akan diinterupsi hanya jika (kondisi, ambang batas) muncul.
Fungsi utamanya adalah:
- Peringatan adalah deteksi rintangan dasar dan memberikan interupsi jika setidaknya 1 dari 4 sensor mendeteksi jarak di bawah ambang batasnya
- Monitor adalah fungsi tambahan yang menyediakan interupsi pada kombinasi kondisi jarak hingga 4 sensor. Kondisi yang memungkinkan adalah over, under, equal atau not equal to threshold.
Langkah 3: Detail Teknis
Gunakan timer4 sehingga pin 6 7 8 tidak dapat digunakan sebagai PWM.
Untuk setiap sensor objek membutuhkan PIN pemicu dan PIN interupsi.
Di atas sensor interupsi PIN, objek membutuhkan PIN interupsi lain untuk penggunaan perangkat lunak.
Langkah 4: Bagaimana Menerapkannya?
Hubungkan sensor seperti di atas
Unduh dari repositori GitHub ini
- EchoObstacleDetection.cpp,
- EchoObstacleDetection.h
- ContohEchoObstacleDetection.ino
Buat direktori EchoObstacleDetection di dalam pustaka IDE Anda dan pindahkan.cpp dan.h
Menguji
Buka ContohEchoObstacleDetection.ino.
Ini adalah contoh pendeteksian rintangan sederhana yang dijalankan dengan 2 sensor ultrasonik.
Output diarahkan pada monitor serial. Pada awalnya akan mencetak jarak yang terdeteksi oleh 2 sensor dan kemudian mencetak peringatan tergantung pada jarak di bawah ambang batas.