Isi kandungan:

Sistem Radar Mudah Dari Magicbit: 6 Langkah
Sistem Radar Mudah Dari Magicbit: 6 Langkah

Video: Sistem Radar Mudah Dari Magicbit: 6 Langkah

Video: Sistem Radar Mudah Dari Magicbit: 6 Langkah
Video: How To Make An Automatic Object Sensing Smart Dustbin - DIY Project 2024, Julai
Anonim

Tutorial ini menunjukkan cara membuat sistem radar sederhana menggunakan sensor HC-SR04 dan papan dev Microbit dengan pemprosesan dan Arduino IDE.

Bekalan:

  • Motor servo mikro SG90
  • Wayar pelompat (generik)
  • Papan roti (generik)
  • Magicbit
  • Kabel USB-A hingga Mikro-USB
  • Sensor Ultrasonik - HC-SR04 (Generik)

Langkah 1: Cerita

Dalam tutorial ini kita akan belajar bagaimana membuat sistem radar mudah menggunakan papan pemuka teras Magicbit. Untuk tujuan ini kami menggunakan sensor ultrasonik HC-SR04 dan untuk memaparkan data, kami menggunakan lingkungan pemrosesan. Mari bermula.

Langkah 2: Teori dan Metodologi

Pertama, mari kita bincangkan bagaimana ini berfungsi. Prinsipnya sangat mudah. Mula-mula kita memutar sensor kita di sekitar paksi menegak dalam julat 180 darjah secara berterusan. Semasa gerakan itu kami mengambil data mengenai jarak ke objek terdekat dari sensor ultrasonik pada setiap sudut. Untuk proses ini kami menggunakan papan teras Magicbit. Selepas itu, kita harus menjalin hubungan dengan persekitaran pemprosesan untuk menunjukkan data kita. Oleh itu, kami menggunakan protokol komunikasi bersiri dengan kadar baud yang sesuai. Kemudian kami merancang antara muka sistem radar kami dengan menggunakan IDE pemprosesan. Dalam IDE itu, kami mengkonfigurasi komunikasi bersiri kami untuk mendapatkan data masa nyata melalui siri. Oleh itu, kami melakukan komunikasi masa nyata dengan Magicbit dan menunjukkan data yang dihantar dari Magicbit ke IDE pemprosesan.

Langkah 3: Persediaan Perkakasan

Persediaan Perkakasan
Persediaan Perkakasan
Persediaan Perkakasan
Persediaan Perkakasan

Untuk projek ini, kami menggunakan tiga komponen perkakasan. Mereka adalah Magicbit, servo motor dan sensor ultrasonik. Sambungan antara semua bahagian ini ditunjukkan dalam Rajah di atas.

Sensor ultrasonik digunakan 3.3 v untuk power up. Oleh itu, kami menggunakan port bawah kanan papan Magicbit untuk menyambungkan sensor ultrasonik ke Magicbit. Tetapi motor servo digunakan 5V untuk berfungsi dengan baik, oleh itu kami menggunakan port kiri bawah untuk menghubungkan motor servo dengan Magicbit. Dalam kes ini, kami menggunakan modul penyambung servo Magic bit. Tetapi jika anda tidak mempunyai modul tersebut, anda boleh menggunakan tiga wayar jumper untuk menyambungkan 5V hingga 5V, Gnd ke Gnd dan pin isyarat ke 26 pin di magicbit.

Setelah membina litar, kita mempunyai bahagian mekanikal kecil untuk dibina. tetapkan penyambung servo sisi tunggal ke motor servo menggunakan kacang kecil. Kemudian pasangkan sensor pada penyambung itu menggunakan beberapa pendakap berbentuk L atau cara yang betul. Selepas keseluruhan sistem, kami tetap menggunakan papan roti. Tetapi anda boleh menggunakan permukaan lain untuk memasang servo dan Magicbit.

Langkah 4: Persediaan Perisian

Persediaan Perisian
Persediaan Perisian
Persediaan Perisian
Persediaan Perisian

Bahagian perisiannya sedikit kompleks. Untuk memahami dengan betul, anda boleh merujuk pautan berikut sebelum beralih ke bahagian seterusnya.

magicbit-arduino.readthedocs.io/en/latest/

hello.processing.org/editor/

Mari lihat kod Arduino IDE dan bagaimana kod itu berfungsi.

Untuk memandu servo kami menggunakan perpustakaan servo ESP32. Perpustakaan ini hampir termasuk dalam pengurus papan bit sihir di Arduino IDE. Untuk menangani sensor ultrasonik, kami menggunakan perpustakaan newPing. Ini boleh dimuat turun dari pautan berikut.

bitbucket.org/teckel12/arduino-new-ping/do…

Muat turun fail zip dan dan pergi alat> sertakan perpustakaan> tambahkan perpustakaan Zip di Arduino. sekarang pilih fail zip yang anda muat turun dari pustaka pin baru. Untuk berkomunikasi dengan pemprosesan, kami menggunakan komunikasi bersiri dengan kadar baud 115200. Ini adalah frekuensi yang paling tepat untuk ESP32. Pada setiap sudut kami menghantar data kami ke komputer menggunakan protokol ini. Jarak ke objek depan terdekat dari sensor, arah putaran dan sudut putaran termasuk dalam data ini. Dengan menggunakan dua untuk gelung, kami memutar servo kami ke dua arah. Sementara putaran satu darjah kami menghantar data bersiri sebanyak 4 kali. Sebabnya anda dapat memahami dalam memproses penjelasan bahagian.

Kini tiba masanya untuk melihat persekitaran pemprosesan. Ini adalah perisian pengaturcaraan berasaskan java. Kita boleh menulis sketsa program kita dalam lakaran ini dalam memproses IDE. Kami juga dapat menghasilkan output visual dari menjalankan program kami. Anda juga boleh mengambil output sebagai objek 2D dan 3d. Bukan hanya itu, ini boleh digunakan untuk pemprosesan gambar dan banyak lagi perkara.

Dalam lakaran pemprosesan pertama, kami merancang antara muka paparan data kami menggunakan fungsi grafik yang mudah. Pada permulaan kod, kami mewujudkan komunikasi bersiri kami dengan memasukkan perpustakaan bersiri. Dalam fungsi persediaan, anda perlu melakukan beberapa perubahan mengikut port USB yang anda gunakan untuk menghubungkan Magicbit dengan komputer. anda boleh memeriksa port anda menggunakan Arduino IDE semasa anda menyiapkan Arduino IDE untuk memuat naik kod. Kemudian ubah nama port com di bahagian setup dalam memproses lakaran. apabila data bersiri tersedia, fungsi Serialevent secara automatik akan terpicu. Oleh itu, logik utama kod ini termasuk dalam acara bersiri untuk mengelakkan sudut dan data hilang. apabila data baru tersedia, kami menarik garis di skrin mengikut sudut kami. Pada masa itu jika tidak ada objek yang dapat dikesan, maka garis penuh berwarna hijau. Sekiranya tidak, maka sebahagian bahagian garisan akan menjadi merah mengikut jarak dari sensor ke objek. Juga mengikut arah putaran, kita menarik 200 garis lagi dekat dengan garis itu dengan penurunan tahap warna hijau. antara setiap Utama kita mempunyai perbezaan 0.25 darjah. Oleh itu, kami mendapat 4 bacaan sekaligus dari Magicbit dalam setiap putaran darjah. Oleh kerana itu, kita dapat membuat carian yang cantik di layar.

Setelah memuat naik kejayaan kod sepenuhnya ke sihir dan tetapkan bahagian perkakasan berjaya buka pemprosesan IDE dan jalankan kod dengan mengklik butang jalankan. Kini anda mempunyai sistem radar yang sangat mudah.

Anda boleh menyesuaikan kod mengikut kehendak yang anda mahu paparkan.

Langkah 5: Penyelesaian masalah

Memproses lakaran tidak berjalan.

  • Tunggu sebentar. Kerana waktu mula bergantung pada prestasi PC dan GPU anda.
  • Periksa nombor port bersiri betul semasa memproses lakaran.
  • Periksa sambungan USB terpasang dengan betul.
  • Periksa hubungan antara sensor ultrasonik dan Magicbit.
  • Buka monitor bersiri dan periksa data yang berasal dari Arduino. Sekiranya tidak, masalahnya ialah kod Arduino anda atau pada sambungan USB anda.

Servo tidak berfungsi.

  • Periksa sambungan USB terpasang dengan betul.
  • Periksa pendawaian.
  • Periksa servo dalam keadaan baik.

Langkah 6: Kod Arduino

#sertakan

#define TRIGGER_PIN 21 #define ECHO_PIN 22 #define MAX_DISTANCE 200 SonPing Baru (TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); #masuk // sertakan jarak perpustakaan servo; Servo RadarServo; persediaan tidak sah () {Serial.begin (115200); RadarServo.attach (26); // Mentakrifkan pada pin mana kelewatan terlampir servo motor (3000); } gelung void () {// memutar motor servo dari 15 hingga 165 darjah untuk (int i = 0; i <= 180; i ++) {RadarServo.write (i); kelewatan (50); jarak = sonar.ping_cm (); // Memanggil fungsi untuk mengira jarak yang diukur oleh sensor Ultrasonik untuk setiap darjah untuk (int j = 0; j0) {break; } Cetakan bersiri (i); // Menghantar darjah semasa ke Serial Port Serial.print (","); // Menghantar watak tambahan tepat di sebelah nilai sebelumnya yang diperlukan kemudian dalam IDE Pemprosesan untuk mengindeks Serial.print (j); // Menghantar ijazah semasa ke Serial Port Serial.print ("*"); Cetakan bersiri (1); // Menghantar nilai jarak ke Serial Port Serial.print ("/"); // Menghantar watak penambahan tepat di sebelah nilai sebelumnya yang diperlukan kemudian dalam IDE Pemprosesan untuk mengindeks Serial.print (jarak); // Menghantar nilai jarak ke Serial Port Serial.print ("."); // Menghantar watak tambahan tepat di sebelah nilai sebelumnya yang diperlukan kemudian dalam IDE Pemprosesan untuk pengindeksan}} // Mengulangi baris sebelumnya dari 165 hingga 15 darjah untuk (int i = 180; i> = 0; i -) {RadarServo.tulis (i); kelewatan (50); jarak = sonar.ping_cm (); untuk (int j = 75; j> = 0; j- = 25) {if (i == 180 && (j == 75 || j == 50 || j == 25)) {teruskan; } Cetakan bersiri (i); // Menghantar darjah semasa ke Serial Port Serial.print (","); // Menghantar watak penambahan tepat di sebelah nilai sebelumnya yang diperlukan kemudian dalam IDE Pemprosesan untuk mengindeks Serial.print (j); // Menghantar ijazah semasa ke Serial Port Serial.print ("*"); Cetakan bersiri (-1); // Menghantar nilai jarak ke Serial Port Serial.print ("/"); // Menghantar watak penambahan tepat di sebelah nilai sebelumnya yang diperlukan kemudian dalam IDE Pemprosesan untuk mengindeks Serial.print (jarak); // Menghantar nilai jarak ke Serial Port Serial.print ("."); // Menghantar watak penambahan tepat di sebelah nilai sebelumnya yang diperlukan kemudian di IDE Pemprosesan untuk pengindeksan}}

}

Disyorkan: