Dalam dunia robotika, deteksi garis adalah salah satu teknik yang penting untuk membantu robot mengikuti jalur yang telah ditentukan. Dengan menggunakan modul ESP8266, kita dapat membuat robot yang dapat mengidentifikasi dan mengikuti garis. Artikel ini akan membahas langkah demi langkah tentang cara membuat kode deteksi garis untuk robot AI menggunakan modul ESP8266.
Apa itu ESP8266?
ESP8266 adalah modul Wi-Fi murah dan populer yang sering digunakan dalam berbagai proyek IoT (Internet of Things). Modul ini memiliki kemampuan untuk terhubung ke jaringan Wi-Fi dan berkomunikasi dengan berbagai perangkat di internet. Dengan kemampuan ini, ESP8266 dapat digunakan bukan hanya untuk aplikasi berbasis web, tetapi juga untuk robotika.
Komponen yang Diperlukan
Sebelum kita mulai, ada beberapa komponen yang perlu kamu siapkan:
- ESP8266 (misalnya, NodeMCU)
- Sensor Garis (seperti TCRT5000)
- Motor DC (2 buah)
- Driver Motor (seperti L298N)
- Baterai (sesuai kebutuhan)
- Breadboard & Jumper Wire
- Roda robot (agar bisa bergerak)
Diagram Koneksi
Sebelum menulis kode, mari kita lihat bagaimana cara menghubungkan komponen-komponen tersebut:
-
Sensor Garis TCRT5000:
- VCC (Sensor) → VU (ESP8266)
- GND (Sensor) → GND (ESP8266)
- OUT (Sensor Kiri) → D1 (ESP8266)
- OUT (Sensor Kanan) → D2 (ESP8266)
-
Motor Driver L298N:
- IN1 (Motor Kiri) → D6 (ESP8266)
- IN2 (Motor Kiri) → D7 (ESP8266)
- IN3 (Motor Kanan) → D5 (ESP8266)
- IN4 (Motor Kanan) → D4 (ESP8266)
- VCC → Baterai (+)
- GND → Baterai (-)
Dasar Kode Deteksi Garis
Berikut adalah contoh kode sederhana untuk mendeteksi garis dan mengendalikan motor robot. Pastikan Anda telah memasang Arduino IDE dan menambahkan pustaka ESP8266.
#include <ESP8266WiFi.h>
#define LEFT_SENSOR D1
#define RIGHT_SENSOR D2
#define MOTOR_LEFT_FORWARD D6
#define MOTOR_LEFT_BACKWARD D7
#define MOTOR_RIGHT_FORWARD D5
#define MOTOR_RIGHT_BACKWARD D4
void setup() {
// Inisialisasi pin sensor
pinMode(LEFT_SENSOR, INPUT);
pinMode(RIGHT_SENSOR, INPUT);
// Inisialisasi pin motor
pinMode(MOTOR_LEFT_FORWARD, OUTPUT);
pinMode(MOTOR_LEFT_BACKWARD, OUTPUT);
pinMode(MOTOR_RIGHT_FORWARD, OUTPUT);
pinMode(MOTOR_RIGHT_BACKWARD, OUTPUT);
// Mulai motor dalam keadaan mati
stopMotors();
}
void loop() {
int leftValue = digitalRead(LEFT_SENSOR);
int rightValue = digitalRead(RIGHT_SENSOR);
// Logika untuk menggerakkan robot
if (leftValue == LOW && rightValue == LOW) {
moveForward();
} else if (leftValue == LOW && rightValue == HIGH) {
turnLeft();
} else if (leftValue == HIGH && rightValue == LOW) {
turnRight();
} else {
stopMotors();
}
}
void moveForward() {
digitalWrite(MOTOR_LEFT_FORWARD, HIGH);
digitalWrite(MOTOR_LEFT_BACKWARD, LOW);
digitalWrite(MOTOR_RIGHT_FORWARD, HIGH);
digitalWrite(MOTOR_RIGHT_BACKWARD, LOW);
}
void turnLeft() {
digitalWrite(MOTOR_LEFT_FORWARD, LOW);
digitalWrite(MOTOR_LEFT_BACKWARD, LOW);
digitalWrite(MOTOR_RIGHT_FORWARD, HIGH);
digitalWrite(MOTOR_RIGHT_BACKWARD, LOW);
}
void turnRight() {
digitalWrite(MOTOR_LEFT_FORWARD, HIGH);
digitalWrite(MOTOR_LEFT_BACKWARD, LOW);
digitalWrite(MOTOR_RIGHT_FORWARD, LOW);
digitalWrite(MOTOR_RIGHT_BACKWARD, LOW);
}
void stopMotors() {
digitalWrite(MOTOR_LEFT_FORWARD, LOW);
digitalWrite(MOTOR_LEFT_BACKWARD, LOW);
digitalWrite(MOTOR_RIGHT_FORWARD, LOW);
digitalWrite(MOTOR_RIGHT_BACKWARD, LOW);
}
Penjelasan Kode
-
Inisialisasi Pin: Di bagian
setup()
, kita mengatur pin untuk sensor dan motor. Sensor garis dibaca sebagai input, sedangkan pin motor diatur sebagai output. -
Logika Gerak: Di dalam
loop()
, kita membaca status sensor garis. Jika kedua sensor tidak mendeteksi garis (LOW), robot bergerak maju. Jika sensor kiri aktif, robot berbelok ke kiri, dan sebaliknya untuk belok kanan. Jika kedua sensor aktif, robot berhenti. -
Fungsi Pengerakan: Fungsi
moveForward()
,turnLeft()
,turnRight()
, danstopMotors()
mengandung perintah untuk mengendalikan motor.
Pengujian Robot
Setelah meng-upload kode ke ESP8266, saatnya untuk mengujinya. Tempatkan robot di atas jalur yang telah ditandai dengan garis hitam di atas latar putih. Jika semua koneksi dan kode sudah benar, robot harus bisa mengikuti garis dengan baik.
Kesimpulan
Robot AI yang menggunakan ESP8266 untuk deteksi garis adalah proyek menarik yang dapat meningkatkan pemahaman kita tentang robotika dan pemrograman. Melalui contoh di atas, Anda dapat memodifikasi dan mengembangkan lebih lanjut agar robot memiliki fungsi yang lebih canggih. Beberapa pengembangan yang dapat dilakukan antara lain menambahkan sensor tambahan, meningkatkan algoritma kontrol, atau menambahkan fitur komunikasi melalui Wi-Fi.
Dengan kombinasi yang tepat antara perangkat keras dan pemrograman, peluang untuk bereksperimen dan belajar dari proyek ini sangatlah besar. Selamat berkreasi!