coseru.id - Coding asik & Seru

🔍 Cari Materi & Kelas

Robotika & Otomasi Tingkat: Menengah 6 x dilihat

Membuat Robot Pengikut Garis dengan Kontrol PID Menggunakan Arduino

Membuat Robot Pengikut Garis dengan Kontrol PID Menggunakan Arduino

Ringkasan Proyek

Pelajari cara membuat robot pintar yang mampu mengikuti lintasan garis hitam secara otomatis menggunakan Arduino Pro Mini dan delapan sensor QTR-8RC. Robot ini dilengkapi algoritma PID agar dapat bergerak lebih stabil saat melewati tikungan, serta modul Bluetooth HC-05 untuk membantu mengatur parameter kendali melalui smartphone.

Bahan & Komponen

Daftar perangkat keras, modul, dan tools yang dibutuhkan untuk merakit proyek ini.

Daftar Komponen & Perangkat Keras

  • 1x Arduino Pro Mini 328 5V/16MHz (Mikrokontroler utama yang memproses informasi sensor dan mengendalikan robot)
  • 1x DRV8835 Dual Motor Driver Carrier (Modul pengendali kecepatan dan arah putaran dua motor DC)
  • 1x S7V7F5 5V Step-Up/Step-Down Voltage Regulator (Menstabilkan tegangan untuk rangkaian logika)
  • 1x Baterai Li-Po 7,4V (Sumber energi robot; proyek asli menggunakan Turnigy Nano-tech 300mAh 2S 45–90C)
  • 1x QTR-8RC Reflectance Sensor Array (Delapan sensor reflektansi untuk mendeteksi posisi garis)
  • 2x Micro Metal Gearmotor HPCB 6V (Motor penggerak dengan rasio roda gigi 10:1 dan kecepatan nominal sekitar 3000 RPM)
  • 2x Solarbotics RW2i Wheel (Roda penggerak robot)
  • 1x Ball Caster dengan bola logam 3/8 inci (Roda penyeimbang pada bagian depan)
  • 1x HC-05 Bluetooth Module (Komunikasi serial nirkabel untuk pengaturan parameter robot)
  • 2x Push Button 6x6x6 mm (Tombol kalibrasi dan menjalankan robot)
  • 4x Resistor 1k Ohm (Komponen pendukung rangkaian elektronik sesuai desain PCB)
  • 1x Custom PCB (Papan rangkaian khusus untuk menghubungkan komponen tanpa banyak kabel)
  • Beberapa komponen hasil 3D Printing (Dudukan baterai, motor, sensor, dan struktur robot)
  • Sekrup M3x16 dan M2x10 (Pengikat komponen mekanik)
  • Kabel dan konektor (Penghubung baterai, sensor, motor, dan modul elektronik)

Software dan Aplikasi Pendukung

  • Arduino IDE (Menulis, memverifikasi, dan mengunggah kode Arduino)
  • QTRSensors Library dari Pololu (Membaca dan melakukan kalibrasi sensor QTR-8RC)
  • EasyEDA (Mendesain schematic dan layout PCB)
  • SketchUp (Membuat desain mekanik robot dalam bentuk model 3D)
  • MIT App Inventor 2 (Membuat aplikasi Android untuk mengatur nilai PID melalui Bluetooth)

Alat Perakitan

  • Solder dan timah solder (Memasang komponen pada PCB)
  • 3D Printer (Mencetak dudukan dan struktur mekanik)
  • Obeng kecil (Memasang sekrup dan dudukan robot)
  • USB-to-Serial Adapter (Alat tambahan yang diperlukan untuk mengunggah program ke Arduino Pro Mini yang tidak memiliki USB bawaan)
  • Charger Li-Po 2S yang sesuai (Mengisi baterai dengan aman)

Langkah Pembuatan

Khusus Member

Panduan perakitan tahap demi tahap dan catatan proses pengerjaan.

Robot Line Follower adalah robot otomatis yang dapat mendeteksi dan mengikuti sebuah garis pada permukaan lantai atau lintasan. Dalam proyek ini, kita akan mempelajari cara menggabungkan Arduino, sensor reflektansi, motor DC, dan algoritma PID agar robot mampu mengikuti lintasan secara cepat dan stabil. Proyek asli dibuat oleh Bot Reboot dan berhasil meraih peringkat keempat dalam kompetisi RoboTEC di Rumania.

Panduan ini merupakan adaptasi edukatif yang ditulis ulang berdasarkan informasi teknis proyek asli, bukan salinan lengkap artikelnya. Halaman sumber menyediakan sejumlah foto proses pembuatan yang URL individualnya tidak seluruhnya dapat diverifikasi melalui akses yang tersedia.

Langkah 1: Memahami Cara Kerja Robot Line Follower

Robot Line Follower bekerja dengan membaca perbedaan pantulan cahaya dari permukaan hitam dan putih. Sensor QTR-8RC yang dipasang pada bagian depan robot memantau posisi garis. Informasi tersebut diproses oleh Arduino Pro Mini untuk menentukan apakah robot harus bergerak lurus, berbelok ke kiri, atau berbelok ke kanan.

Berbeda dari robot sederhana yang hanya menggunakan perintah belok berdasarkan kondisi sensor, robot ini menggunakan algoritma PID. PID adalah singkatan dari Proportional, Integral, dan Derivative. Ketiga komponen tersebut membantu menghasilkan koreksi kecepatan yang lebih halus sehingga robot tidak mudah berosilasi atau keluar dari lintasan.

Robot Line Follower dengan kontrol PID karya Bot Reboot
Robot Line Follower dengan Arduino dan sistem kendali PID.

Langkah 2: Menyiapkan Komponen Elektronik

Siapkan Arduino Pro Mini, DRV8835, sensor QTR-8RC, dua motor DC, modul Bluetooth HC-05, dan regulator 5V. Arduino berfungsi sebagai pusat kendali, sedangkan DRV8835 mengatur daya menuju kedua motor.

Proyek asli menggunakan baterai Li-Po 7,4V berkapasitas 300mAh. Tegangan baterai dialirkan ke input daya motor driver dan regulator 5V. Keluaran regulator digunakan untuk memberikan catu daya stabil kepada Arduino dan bagian rangkaian yang membutuhkan 5V.

Pastikan jalur GND terhubung bersama. Periksa spesifikasi setiap modul sebelum menghubungkan baterai. Jangan langsung menghubungkan baterai 7,4V ke pin VCC 5V Arduino.

Langkah 3: Merancang Bentuk dan Ukuran Robot

Penulis merancang robot dengan konfigurasi menyerupai mobil balap kecil. Dua motor dan roda penggerak diletakkan di belakang, sedangkan Ball Caster berada di depan. Sensor QTR-8RC dipasang pada sisi depan untuk mendeteksi garis sebelum bagian utama robot melewatinya.

Desain awal mempertimbangkan aturan kompetisi berupa ukuran robot maksimum 30 x 30 cm dan radius tikungan lintasan minimum 7,5 cm. Faktor terpenting dalam perancangan adalah keseimbangan antara kecepatan, panjang robot, posisi sensor, dan kemampuan berbelok.

Pada prototipe awal, robot mengalami kesulitan saat menghadapi tikungan tajam. Desain selanjutnya dibuat lebih ringkas agar lebih mudah bermanuver. Salah satu strategi yang diuji penulis adalah menggerakkan roda dalam arah berlawanan untuk menghasilkan putaran tajam.

Langkah 4: Membuat Lintasan Pengujian

Untuk mencoba robot, buat lintasan menggunakan kertas putih ukuran A3 dan PVC tape berwarna hitam. Tempelkan tape sehingga membentuk jalur dengan bagian lurus dan beberapa tikungan.

Pastikan permukaan lintasan rata dan memiliki kontras yang jelas. Tambahkan tikungan dengan radius berbeda untuk menguji apakah robot mampu menyesuaikan arah tanpa kehilangan garis. Hindari permukaan sangat mengilap yang dapat mengganggu pembacaan sensor.

Langkah 5: Memasang Motor dan Roda

Pasang kedua Micro Metal Gearmotor HPCB 6V pada dudukan motor. Kencangkan menggunakan sekrup M3x16 sesuai kebutuhan desain mekanik. Setelah motor terpasang, hubungkan roda Solarbotics RW2i ke poros masing-masing motor.

Pasang Ball Caster di bagian depan menggunakan sekrup M2x10. Pastikan ketiga titik tumpuan menyentuh lantai secara stabil. Robot tidak boleh miring secara berlebihan karena perubahan ketinggian sensor terhadap lintasan dapat memengaruhi akurasi pembacaan.

Periksa apakah kedua roda mampu berputar bebas tanpa menyentuh PCB, baterai, atau dudukan lainnya.

Langkah 6: Menghubungkan Sensor QTR-8RC

Sensor QTR-8RC memiliki delapan kanal pembaca pantulan cahaya. Pada konfigurasi program proyek, delapan output sensor dihubungkan ke pin digital dan analog Arduino yang digunakan sebagai digital I/O.

Konfigurasi yang digunakan adalah sensor 0 ke D10, sensor 1 ke D11, sensor 2 ke D12, sensor 3 ke A0, sensor 4 ke A1, sensor 5 ke A2, sensor 6 ke A4, dan sensor 7 ke A5. Pin LEDON atau emitter control menggunakan D7.

Perhatikan urutan fisik sensor dari kiri ke kanan. Posisi dan arah koreksi harus sesuai dengan orientasi sensor yang terpasang. Jika urutan terbalik, respons belokan dapat menjadi salah.

Langkah 7: Memasang Motor Driver DRV8835

DRV8835 bertugas mengatur kecepatan dan arah motor melalui sinyal dari Arduino. Program asli menggunakan mode PHASE/ENABLE. Pin MODE dihubungkan ke D8 dan diatur HIGH. Pin APHASE terhubung ke D9, AENABLE ke D6, BPHASE ke D5, dan BENABLE ke D3.

Hubungkan output Motor A pada driver ke motor pertama dan output Motor B ke motor kedua. Jika setelah pengujian arah putar roda ternyata terbalik, sesuaikan polaritas motor atau logika PHASE pada program.

Gunakan kecepatan PWM rendah saat pengujian awal. Motor 6V tidak boleh diberi beban dan tegangan berlebihan karena berpotensi menimbulkan panas atau kerusakan.

Langkah 8: Mendesain dan Merakit PCB

Penulis menggunakan EasyEDA untuk membuat schematic rangkaian, kemudian mengubahnya menjadi layout PCB. PCB digunakan untuk menggantikan breadboard dan kabel penghubung yang terlalu banyak.

Dalam EasyEDA, tempatkan komponen sesuai desain mekanik. Atur posisi Arduino, DRV8835, regulator, resistor, tombol, dan konektor. Setelah membuat jalur PCB, lakukan pemeriksaan koneksi dan clearance sebelum mengirim desain untuk fabrikasi.

Penulis memesan lima papan PCB dan kemudian memasang komponen menggunakan solder. Beberapa bagian, seperti HC-05 dan sambungan sensor, menggunakan female header agar mudah dilepas atau diganti.

Lakukan pemeriksaan hubungan pendek menggunakan multimeter sebelum memasang baterai.

Langkah 9: Membuat Dudukan dengan 3D Printing

Gunakan SketchUp atau software CAD untuk membuat dudukan baterai, sensor, motor, dan bagian mekanik lainnya. Ekspor setiap desain menjadi file STL sebelum dicetak menggunakan 3D Printer.

Dalam proyek asli, penulis menemukan beberapa lubang sekrup yang terlalu kecil atau tertutup sebagian oleh hasil cetakan. Karena itu, pastikan toleransi lubang sudah sesuai dengan ukuran sekrup.

Periksa ukuran baterai sebelum menggunakan file STL dari proyek asli. Bentuk dan ukuran baterai pengganti mungkin berbeda sehingga dudukan perlu disesuaikan.

Langkah 10: Memasang Arduino IDE dan Library QTRSensors

Instal Arduino IDE pada komputer. Buka menu Sketch > Include Library > Manage Libraries, kemudian cari QTRSensors dari Pololu dan lakukan instalasi.

Pilih board Arduino Pro or Pro Mini dengan prosesor ATmega328P dan frekuensi 5V/16MHz sesuai board yang digunakan. Siapkan USB-to-Serial Adapter untuk mengunggah program.

Dokumentasi sensor dapat dipelajari melalui https://www.pololu.com/docs/0J19/all. Setelah library terinstal, contoh penggunaan sensor tersedia melalui File > Examples > QTRSensors.

Langkah 11: Mengalibrasi Sensor

Kalibrasi sangat penting agar robot dapat membedakan garis hitam dengan permukaan putih secara akurat. Saat proses kalibrasi berlangsung, gerakkan sensor secara perlahan melintasi bagian hitam dan putih lintasan.

Library QTRSensors menyediakan fungsi qtr.calibrate() untuk merekam karakteristik pantulan permukaan. Program proyek menggunakan sekitar 400 kali pembacaan kalibrasi.

Setelah kalibrasi, qtr.readLineBlack(sensorValues) dapat memberikan estimasi posisi garis dalam rentang 0 hingga 7000. Nilai sekitar 3500 menunjukkan garis berada di tengah delapan sensor.

Jika hasil pembacaan tidak stabil, periksa jarak sensor terhadap lantai, pencahayaan, kualitas sambungan, dan apakah seluruh sensor sudah melewati permukaan terang maupun gelap selama kalibrasi.

Langkah 12: Memahami Algoritma PID

Sistem kendali membutuhkan nilai target agar robot tetap berada di tengah lintasan. Target sensor QTR-8RC adalah 3500. Kesalahan posisi atau error dihitung dari selisih antara posisi target dan posisi garis yang terbaca.

Komponen Proportional (P) menghasilkan koreksi berdasarkan besar kesalahan saat ini. Integral (I) memperhitungkan akumulasi kesalahan dari waktu ke waktu. Derivative (D) melihat perubahan kesalahan sehingga robot dapat merespons pergerakan garis yang cepat.

Koreksi akhir dihitung menggunakan kombinasi Kp, Ki, dan Kd. Nilai ini kemudian digunakan untuk menambah kecepatan salah satu motor dan mengurangi kecepatan motor lainnya.

Penulis memberikan contoh nilai Kp = 0,07, Ki = 0,0008, dan Kd = 0,6 pada robotnya. Nilai tersebut merupakan hasil penyetelan untuk perangkat tertentu, sehingga belum tentu cocok dengan desain robot lain.

Langkah 13: Mengunggah Program Arduino

Hubungkan USB-to-Serial Adapter ke Arduino Pro Mini sesuai pin VCC, GND, TX, RX, dan DTR apabila tersedia. Pastikan tingkat tegangan adaptor sesuai dengan board.

Buka program Arduino, periksa konfigurasi pin sensor dan motor, kemudian verifikasi program. Jika tidak ditemukan kesalahan kompilasi, unggah program ke Arduino.

Sebelum menjalankan motor, letakkan robot pada dudukan sehingga rodanya tidak menyentuh lantai. Uji respons masing-masing motor dan pastikan arah putar sesuai kebutuhan.

Langkah 14: Melakukan Pengujian PID

Setelah sensor dikalibrasi, tempatkan robot pada garis hitam. Mulailah dari kecepatan rendah dan amati perilakunya. Jika robot bergerak berlebihan ke kiri dan kanan, parameter PID mungkin terlalu agresif atau arah koreksi motor tidak tepat.

Coba atur Kp terlebih dahulu sampai robot mampu mengikuti jalur secara responsif. Selanjutnya tambahkan Kd untuk membantu mengurangi gerakan berosilasi dan memperhalus respons. Gunakan Ki secara hati-hati karena akumulasi error yang terlalu besar bisa memperburuk stabilitas.

Lakukan percobaan pada lintasan lurus, tikungan ringan, dan tikungan tajam. Catat parameter yang menghasilkan respons paling stabil.

Langkah 15: Menambahkan Bluetooth HC-05

Modul HC-05 digunakan untuk mengubah nilai PID melalui smartphone sehingga program tidak perlu selalu diunggah ulang setiap kali melakukan penyetelan.

Hubungkan HC-05 melalui komunikasi serial UART dengan memperhatikan pin TX, RX, VCC, dan GND. Perhatikan bahwa logika RX pada modul HC-05 umumnya membutuhkan level tegangan yang lebih rendah daripada output TX Arduino 5V, sehingga gunakan rangkaian penyesuai level yang sesuai.

Program Bluetooth proyek menggunakan komunikasi serial dengan Baud Rate 9600. Aplikasi pengendali dibuat menggunakan MIT App Inventor 2.

Langkah 16: Mengatur PID dari Smartphone

Pada aplikasi MIT App Inventor, penulis menggunakan slider untuk mengatur parameter kendali. Komunikasi dilakukan dengan mengirim pasangan byte yang mewakili jenis perintah dan nilainya.

Perintah 1 digunakan untuk nilai Kp, perintah 3 untuk Ki, perintah 5 untuk Kd, sedangkan perintah 7 untuk status menjalankan atau menghentikan robot. Perintah lainnya digunakan untuk mengatur faktor pembagi nilai PID.

Karena satu byte hanya memuat angka 0 sampai 255, nilai pecahan dapat dikirim menggunakan angka utama dan faktor pembagi berbasis pangkat sepuluh. Sebagai contoh, angka 55 dengan faktor pembagi 100 menghasilkan parameter 0,55.

Pastikan aplikasi smartphone menggunakan format komunikasi yang sama dengan program Arduino. Jika format data berbeda, parameter tidak akan terbaca dengan benar.

Langkah 17: Evaluasi dan Pengembangan Robot

Setelah robot mampu mengikuti garis, lakukan pengujian kecepatan pada beberapa lintasan. Bandingkan waktu tempuh, jumlah kesalahan pembacaan, dan kemampuan robot saat melewati tikungan tajam.

Pengembangan berikutnya dapat mencakup optimasi desain PCB, pengurangan berat mekanik, pengaturan kecepatan adaptif, pencatatan data sensor, dan penyetelan PID otomatis.

Selalu lakukan pengujian dengan pengawasan saat menggunakan solder, baterai Li-Po, dan komponen mekanik bergerak. Jangan mengisi baterai Li-Po menggunakan charger yang tidak mendukung konfigurasi selnya.

🔒
Akses Gratis Khusus Member

Buka Seluruh Panduan, Skema & Source Code

Dapatkan akses penuh ke langkah perakitan detail, diagram sirkuit lengkap, dan source code siap pakai. Gratis selamanya!

✓ Akses Gratis Selamanya
✓ Copy-Paste Source Code
✓ Kembali Otomatis ke Proyek

Petualangan Belajar di coseru

💡 Saksikan keseruan anak-anak belajar merakit robot dan coding! Daftar Kelas Uji Coba →