Search Code

Kursus Pelajaran 6 dari 10: Mengendalikan Motor DC menggunakan Kit Mobil Pintar 4WD Raspberry Pi Pico

Pelajaran ini adalah bagian dari: Mobil Pintar Raspberry Pi Pico 4WD

Kursus Pelajaran 6 dari 10: Mengendalikan Motor DC menggunakan Kit Mobil Pintar 4WD Raspberry Pi Pico

Panduan proyek ini didasarkan pada Pelajaran 6 dari kursus Robojax Raspberry Pi Pico Smart Car. Dalam sesi ini, Anda akan belajar cara mengintegrasikan motor servo dan sensor ultrasonik untuk membuat sistem penghindaran rintangan yang cerdas untuk mobil 4WD Anda. Alih-alih hanya berhenti saat mendeteksi objek, proyek ini mengubah mobil Anda menjadi robot otonom mini yang secara aktif memindai lingkungannya, menentukan jalur yang paling jelas, dan bermanuver mengelilingi rintangan.

Ini bukan sekadar latihan teoretis; ini adalah proyek dasar untuk membangun robotika yang lebih kompleks. Berikut adalah beberapa aplikasi praktis untuk logika penghindaran rintangan ini:

  • Robot Eksplorasi Otonom: Bangun robot yang dapat menjelajahi ruangan atau labirin sendiri tanpa kendali jarak jauh.
  • Penyedot Debu Pintar: Gunakan logika yang sama untuk membuat robot penyedot debu sederhana yang dapat menghindari furnitur dan dinding saat membersihkan lantai.
  • Bot Patroli Keamanan: Program mobil untuk berpatroli di sekeliling area dan gunakan sensor ultrasonik untuk mendeteksi serta bermanuver mengelilingi objek yang tidak terduga.
  • Platform Robotika Edukasi: Gunakan ini sebagai dasar untuk bereksperimen dengan algoritma pencarian jalur yang lebih canggih dan fusi sensor.

Konsep intinya adalah menggunakan motor servo untuk memutar sensor ultrasonik, bertindak sebagai "radar" yang memindai area dari kiri ke kanan. Dengan mengukur jarak pada berbagai sudut, mobil dapat membuat peta lingkungan sekitarnya dan membuat keputusan untuk bergerak maju, berbelok kiri, atau berbelok kanan untuk menemukan jalur yang jelas (dalam video pada 02:47).

Perangkat Keras/Komponen

Proyek ini dibangun di sekitar Kit Mobil Pintar SunFounder Raspberry Pi Pico 4WD. Komponen utama yang digunakan dalam pelajaran ini adalah:

  • Papan Raspberry Pi Pico
  • Sasis Mobil Pintar 4WD dengan motor
  • Papan penggerak motor (termasuk dalam kit)
  • Sensor ultrasonik (tipe HC-SR04)
  • Motor servo
  • Paket baterai

Panduan Pengkabelan

Video menyebutkan bahwa kit dilengkapi dengan dokumentasi lengkap, instruksi langkah demi langkah, dan diagram pengkabelan. Pengkabelan untuk servo dan sensor ultrasonik biasanya terhubung ke papan penggerak motor, yang menggabungkan koneksi untuk Pico.

Silakan merujuk pada diagram di bawah ini untuk koneksi pin spesifik untuk kit Anda.

Penjelasan Kode

Video berfokus pada logika dalam file obstacle_avoid.py. Meskipun kode lengkap tersedia dengan kit, pelajaran ini menyoroti parameter yang dapat dikonfigurasi pengguna yang mengontrol perilaku mobil. Ini adalah variabel yang kemungkinan besar ingin Anda sesuaikan untuk menyetel kinerja robot Anda.

Di bagian atas program utama, Anda akan menemukan pengaturan kunci yang mendefinisikan perilaku mobil (dalam video pada 13:07):

# Pengaturan penghindaran rintangan
RADAR_REFERENCE = 20  # Jarak dalam cm untuk menganggap suatu rintangan
STEP_ANGLE = 10       # Derajat servo bergerak untuk setiap langkah pemindaian
FORWARD_SPEED = 30    # Kecepatan motor saat bergerak maju
TURN_SPEED = 50       # Kecepatan motor saat berbelok
FORWARD_SCAN_ANGLE = 50  # Derajat untuk pemindaian cepat ke depan
  • RADAR_REFERENCE: Ini adalah pengaturan yang paling penting. Ini mendefinisikan jarak aman minimum dalam sentimeter. Jika sensor ultrasonik mendeteksi objek lebih dekat dari nilai ini, mobil menganggapnya sebagai "bahaya" dan memulai rutinitas penghindaran (dalam video pada 22:03).
  • STEP_ANGLE: Ini menentukan resolusi pemindaian radar. Nilai yang lebih kecil (misalnya, 10 derajat) membuat pemindaian lebih presisi tetapi lebih lambat. Nilai yang lebih besar membuatnya lebih cepat tetapi kurang detail.
  • FORWARD_SPEED & TURN_SPEED: Ini adalah nilai PWM (0-100) yang mengontrol daya ke motor. Anda dapat menyesuaikan ini untuk mengubah seberapa cepat mobil melaju maju dan seberapa cepat berbelok (dalam video pada 13:33).
  • FORWARD_SCAN_ANGLE: Setelah rintangan dihindari, mobil melakukan pemindaian cepat untuk memastikan jalur di depan jelas. Variabel ini mengatur sudut untuk pemindaian tersebut. Nilai 50 berarti memindai dari -25 hingga +25 derajat relatif terhadap pusat (dalam video pada 13:40).

Proyek Langsung/Demonstrasi

Dalam video, instruktur mendemonstrasikan proyek secara bertahap. Pertama, dia menjalankan tes sederhana untuk menunjukkan bagaimana sensor ultrasonik mengukur jarak dan mencetak nilai ke shell, mengonfirmasi bahwa "0" mewakili rintangan dan "1" mewakili jalur yang jelas (dalam video pada 03:48).

Dia kemudian menjelaskan diagram alur pengambilan keputusan, yang merupakan otak dari operasi ini. Mobil menggunakan fungsi yang disebut get_direction() untuk menganalisis data radar. Fungsi ini membagi data pemindaian menjadi segmen ruang terbuka dan mengidentifikasi yang terluas. Berdasarkan di mana jalur lebar ini berada (kiri, tengah, atau kanan), mobil memutuskan ke arah mana harus berbelok (dalam video pada 11:19).

Terakhir, instruktur menyiapkan labirin rintangan dan mendemonstrasikan mobil menavigasi melewatinya. Anda dapat melihat mobil memindai kiri dan kanan, mundur jika macet, dan akhirnya menemukan jalur untuk melewati rintangan tanpa kendali manual (dalam video pada 22:53).

Bab

  • [00:00] Pengenalan Penghindaran Rintangan dengan Pico Car
  • [01:31] Fitur Kit dan Tinjauan Dokumentasi
  • [02:47] Demonstrasi Fitur Penghindaran Rintangan
  • [03:48] Pengujian Sensor Ultrasonik dan Pengukuran Jarak
  • [07:45] Penjelasan Algoritma Penghindaran Rintangan dan Diagram Alir
  • [12:49] Analisis Kode Utama Penghindaran Rintangan
  • [15:50] Demonstrasi Kode Langsung dan Interpretasi Data
  • [18:11] Pembahasan Mendalam tentang Logika Arah dan Belok
  • [22:53] Uji Langsung Terakhir dengan Labirin Rintangan
Tidak ada kode terlampir.

Sumber daya & referensi

Belum ada sumber daya.

Berkas📁

Tidak ada file tersedia.