Robot line follower merupakan robot yang mampu mengikuti garis hitam di atas permukaan putih. Robot ini sering digunakan dalam berbagai aplikasi, seperti edukasi, industri, dan robotika. Membuat robot line follower sederhana dengan ESP32 adalah cara yang menarik untuk mempelajari dasar-dasar robotika dan juga pemrograman.
Baca juga: Membangun Sistem Pemantauan Suhu Real-time dengan ESP32 dan DHT22
Perlengkapan
- ESP32 DevKitC
- 2x Sensor TCRT5000
- 2x Motor DC 5V
- Driver Motor L298N
- Roda robot
- Baterai 9V
- Kabel jumper
- Soldering kit
- Breadboard (opsional)
Langkah-langkah
1. Merakit robot:
- Pasang sensor TCRT5000 pada bagian depan robot. Pastikan sensor menghadap ke bawah dan sejajar dengan permukaan.
- Hubungkan sensor TCRT5000 ke ESP32 DevKitC menggunakan kabel jumper. Lihat tabel berikut untuk pin koneksi:
Sensor TCRT5000 | ESP32 DevKitC |
---|---|
VCC | 3.3V |
GND | GND |
OUT | GPIO2 (D4) |
- Hubungkan motor DC ke driver motor L298N. Lihat tabel berikut untuk pin koneksi:
Motor DC | L298N |
---|---|
VCC | 12V |
GND | GND |
IN1 | IN1 |
IN2 | IN2 |
- Hubungkan driver motor L298N ke ESP32 DevKitC menggunakan kabel jumper. Lihat tabel berikut untuk pin koneksi:
L298N | ESP32 DevKitC |
---|---|
Enable A | GPIO13 (D7) |
Enable B | GPIO12 (D6) |
IN1 | GPIO14 (D5) |
IN2 | GPIO15 (D8) |
- Pasang roda robot pada motor DC.
- Hubungkan baterai 9V ke robot.
Baca juga: Memanfaatkan WiFi dan Bluetooth ESP32 untuk Proyek IoT Anda
2. Memprogram ESP32:
- Buka IDE Arduino.
- Pilih “ESP32 DevKitC” sebagai papan target.
- Buat file baru dengan nama “line_follower.ino”.
- Salin dan tempel kode berikut ke file “line_follower.ino”:
#include <Wire.h>
// Pin sensor TCRT5000
const int sensor1Pin = 2;
const int sensor2Pin = 4;
// Pin motor DC
const int motor1PinA = 14;
const int motor1PinB = 15;
const int motor2PinA = 12;
const int motor2PinB = 13;
void setup() {
// Serial.begin(115200);
//pinMode(sensor1Pin, INPUT);
//pinMode(sensor2Pin, INPUT);
pinMode(motor1PinA, OUTPUT);
pinMode(motor1PinB, OUTPUT);
pinMode(motor2PinA, OUTPUT);
pinMode(motor2PinB, OUTPUT);
}
void loop() {
int sensor1Value = digitalRead(sensor1Pin);
int sensor2Value = digitalRead(sensor2Pin);
// Jalankan motor jika sensor mendeteksi garis hitam
if (sensor1Value == LOW && sensor2Value == LOW) {
digitalWrite(motor1PinA, HIGH);
digitalWrite(motor1PinB, LOW);
digitalWrite(motor2PinA, HIGH);
digitalWrite(motor2PinB, LOW);
} else if (sensor1Value == LOW) {
digitalWrite(motor1PinA, LOW);
digitalWrite(motor1PinB, HIGH);
digitalWrite(motor2PinA, HIGH);
digitalWrite(motor2PinB, LOW);
} else if (sensor2Value == LOW) {
digitalWrite(motor1PinA, HIGH);
digitalWrite(motor1PinB, LOW);
digitalWrite(motor2PinA, LOW);
digitalWrite(motor2PinB, HIGH);
} else {
// Berhentikan robot
digitalWrite(motor1PinA, LOW);
digitalWrite(motor1PinB, LOW);
digitalWrite(motor2PinA, LOW);
digitalWrite(motor2PinB, LOW);
}
}
- Upload kode ke ESP32 DevKitC.
3. Menjalankan robot:
- Nyalakan baterai 9V.
- Letakkan robot di atas garis hitam.
- Robot akan mulai mengikuti garis hitam.
- Jika robot keluar dari garis, sesuaikan posisi sensor TCRT5000 agar robot kembali ke garis.
- Anda dapat bereksperimen dengan kode untuk mengubah kecepatan robot dan cara berbelok.
Tips:
- Gunakan baterai berkualitas tinggi untuk performa robot yang optimal.
- Pastikan juga sensor TCRT5000 terpasang dengan benar dan sejajar dengan permukaan.
- Bersihkan sensor TCRT5000 secara berkala agar robot dapat mendeteksi garis dengan baik.
- Anda juga dapat menggunakan modul Bluetooth atau WiFi untuk mengendalikan robot secara nirkabel.
Kesimpulan:
Kesimpulannya membuat robot line follower sederhana dengan ESP32 adalah cara yang menarik untuk mempelajari dasar-dasar robotika dan pemrograman. Robot ini juga dapat digunakan untuk berbagai aplikasi, seperti edukasi, industri, dan robotika.
Baca juga: Membuat Dashboard IoT Real-time dengan ESP32 dan Node-RED