Search Code

Pelajaran 7 dari 10: Pelacakan Garis, Deteksi Tebing Kalibrasi Sensor Skala Abu-abu Mobil Raspberry Pi Pico

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

Pelajaran 7 dari 10: Pelacakan Garis, Deteksi Tebing Kalibrasi Sensor Skala Abu-abu Mobil Raspberry Pi Pico

Dalam pelajaran ketujuh dari kursus Raspberry Pi Pico Smart Car ini, kita mengeksplorasi fungsi penting pelacakan garis dan deteksi tepi menggunakan modul sensor skala abu-abu. Modul ini berperan sebagai "mata" mobil Anda, memungkinkannya untuk mengikuti jalur yang telah ditentukan secara otonom dan menghindari bahaya jatuh. Proyek ini menunjukkan cara mengkalibrasi sensor untuk pembacaan yang akurat dan menerapkan logika yang menjaga mobil tetap di jalurnya, dengan fitur menyenangkan "Don't Push Me" yang mensimulasikan deteksi tepi. Panduan ini sangat cocok bagi siapa saja yang ingin melangkah melampaui kendali jarak jauh dasar dan menyelami dunia robotika yang dipandu sensor.

Teknologi ini memiliki banyak aplikasi praktis di luar sekadar proyek DIY yang menyenangkan. Prinsip-prinsip yang akan Anda pelajari di sini adalah fondasi untuk membangun sistem otonom dunia nyata. Berikut adalah beberapa ide untuk menginspirasi Anda:

  • Robot Pengiriman Otomatis: Bangun robot kecil yang dapat menavigasi lantai gudang atau kantor dengan mengikuti garis yang ditandai untuk mengirimkan barang.
  • Pemecah Labirin Meja: Buat robot yang dapat menavigasi labirin kompleks yang digambar dengan selotip listrik hitam.
  • Robot Keamanan dan Keselamatan: Implementasikan robot patroli yang mengikuti jalur yang ditetapkan dan menggunakan deteksi tepi untuk menghindari jatuh dari tangga atau permukaan yang ditinggikan.
  • Platform Edukasi: Gunakan mobil ini untuk mengajarkan dasar-dasar kontrol PID, fusi sensor, dan navigasi otonom.

Perangkat Keras dan Komponen

Proyek ini dibangun di atas kit mobil SunFounder Raspberry Pi Pico 4WD. Komponen kunci untuk pelajaran ini adalah modul sensor skala abu-abu, yang penting untuk pelacakan garis dan deteksi tepi. Modul ini memiliki tiga sensor independen yang mengukur jumlah cahaya yang dipantulkan dari permukaan di bawahnya. Data ini digunakan untuk membedakan antara garis hitam, permukaan putih, dan "tepi" atau ruang terbuka. Kit lengkap juga mencakup sasis mobil Pico, motor, dan paket baterai untuk memberi daya pada sistem.

Panduan Pengkabelan

Pengkabelan yang benar adalah langkah pertama untuk membuat sensor Anda berfungsi. Modul skala abu-abu terhubung ke Raspberry Pi Pico menggunakan empat kabel. Pengkabelannya sederhana dan ditunjukkan dengan jelas dalam video.

Berikut adalah konfigurasi pengkabelan seperti yang ditunjukkan dalam video (di video pada 03:01):

  • Kabel Hitam: Hubungkan ke pin GND di Pico.
  • Kabel Merah: Hubungkan ke pin 3.3V di Pico.
  • Kabel Kuning (Sensor Kanan): Hubungkan ke pin GPIO 28.
  • Kabel Coklat (Sensor Tengah): Hubungkan ke pin GPIO 27.
  • Kabel Putih/Abu-abu (Sensor Kiri): Hubungkan ke pin GPIO 26.

Mengkalibrasi Sensor Skala Abu-abu

Sebelum mobil dapat mengikuti garis dengan andal, Anda harus mengkalibrasi sensor untuk memahami pembacaan yang berbeda untuk putih, hitam, dan ruang kosong. Ini adalah langkah penting untuk memastikan mobil Anda membuat keputusan yang tepat. Sensitivitas sensor dapat disesuaikan dengan potensiometer kecil di modul.

Video menunjukkan proses kalibrasi (di video pada 04:39). Sensor harus diposisikan pada ketinggian optimal di atas tanah—sekitar 11 milimeter atau satu sentimeter—untuk mendapatkan pembacaan yang jelas. Dengan menyesuaikan potensiometer dan mengamati nilainya, Anda dapat menemukan titik optimal. Tujuannya adalah memiliki perbedaan yang signifikan antara pembacaan untuk permukaan putih (yang memantulkan banyak cahaya) dan garis hitam (yang memantulkan sangat sedikit).

Berikut ringkasan arti pembacaan tersebut:

  • Permukaan Putih: Refleksi tinggi, menghasilkan nilai sensor tinggi (misalnya, sekitar 20.000).
  • Garis Hitam: Refleksi rendah, menghasilkan nilai sensor rendah (misalnya, sekitar 3.000).
  • Tepi (Ruang Kosong): Tidak ada refleksi, menghasilkan nilai sensor terendah (misalnya, sekitar 1.200).

Penjelasan Kode

Karena tidak ada kode yang disediakan untuk pelajaran ini, kita akan fokus pada logika konseptual dan fungsi-fungsi kunci dari pustaka Robojax yang digunakan untuk membuat mobil bekerja. Video menjelaskan dua fungsi utama yang akan Anda gunakan dari pustaka yang disediakan.

Menguji Sensor

Langkah pertama adalah menguji sensor Anda dengan skrip sederhana. Skrip ini menggunakan fungsi yang disebut get_grayscale_value() untuk membaca nilai mentah dari tiga sensor. Ini mencetak nilai-nilai tersebut ke monitor serial sehingga Anda dapat melihat bagaimana nilainya berubah ketika sensor berada di atas permukaan yang berbeda. Ini berguna untuk memverifikasi pengkabelan Anda dan melakukan langkah kalibrasi.


# Ini adalah contoh konseptual dari fungsi pengujian
from machine import Pin, ADC
import time

# Tentukan pin ADC untuk sensor skala abu-abu
grayscale_pins = [26, 27, 28]
sensors = [ADC(Pin(pin)) for pin in grayscale_pins]

while True:
    # Baca nilai mentah 16-bit dari sensor
    values = [sensor.read_u16() for sensor in sensors]
    print("Kiri: {} Tengah: {} Kanan: {}".format(values[0], values[1], values[2]))
    time.sleep_ms(100)

Logika Pelacakan Garis

Untuk pelacakan garis, kode tidak menggunakan nilai analog mentah. Sebaliknya, ini mengubahnya menjadi status digital sederhana: 1 jika sensor berada di atas garis hitam, dan 0 jika berada di atas permukaan putih. Ini ditangani oleh fungsi yang mengembalikan daftar tiga nilai (misalnya, [0, 1, 0]). Loop kontrol utama kemudian menggunakan daftar ini untuk menentukan tindakan mobil.

Logikanya didasarkan pada membandingkan status sensor dengan kondisi yang telah ditentukan. Misalnya, jika statusnya adalah [0, 1, 0], mobil berada tepat di garis dan harus bergerak maju. Jika statusnya adalah [1, 0, 0], mobil telah menyimpang ke kiri dan perlu mengoreksi jalurnya ke kanan. Video tersebut menjelaskan kondisi-kondisi ini secara rinci (di video pada menit 13:05), menunjukkan bagaimana kombinasi berbeda dari pembacaan sensor berhubungan dengan perintah motor yang berbeda, seperti belok kiri, belok kanan, atau melakukan koreksi tajam.


# Ini adalah contoh konseptual dari logika mengikuti garis
# Anggap 'status' adalah daftar seperti [0, 1, 0] dari sensor skala abu-abu

if status == [0, 1, 0]:  # Sensor tengah di garis
    # Bergerak maju
    pass
elif status == [1, 0, 0]:  # Sensor kiri di garis
    # Belok kanan
    pass
elif status == [0, 0, 1]:  # Sensor kanan di garis
    # Belok kiri
    pass
# ... kondisi lain untuk belokan yang lebih tajam

Demonstrasi Proyek Langsung

Dalam demonstrasi video, mobil ditempatkan di jalur cetak dengan garis hitam tebal. Mobil berhasil mengikuti garis, membuat belokan dan koreksi saat bergerak di sepanjang jalur. Video tersebut menyoroti masalah umum di mana roda bisa longgar saat belokan tajam, dan menunjukkan solusi sederhana dengan menambahkan sepotong kecil selotip pada poros roda agar lebih pas. Setelah ini diperbaiki, mobil melintasi seluruh jalur dengan lancar, menunjukkan efektivitas kalibrasi dan logika mengikuti garis.

Bab Video

  • [00:00] Pengenalan Pelacakan Garis dan Deteksi Tebing
  • [03:01] Menghubungkan Modul Sensor Skala Abu-abu
  • [04:39] Mengkalibrasi Sensor Skala Abu-abu
  • [13:05] Memahami Logika Mengikuti Garis
  • [19:43] Menguji Kode Pelacakan Garis
  • [24:50] Demonstrasi Langsung di Jalur Uji
Tidak ada kode terlampir.

Sumber daya & referensi

Belum ada sumber daya.

Berkas📁

Tidak ada file tersedia.