Pendahuluan
Robotik merupakan salah satu bidang yang tengah berkembang pesat seiring dengan perkembangan teknologi. Salah satu cara untuk membuat robot yang lebih interaktif dan responsif adalah dengan menggunakan sensor. Dalam artikel ini, kita akan membahas tentang pemrograman AI sederhana pada robot menggunakan Arduino Nano yang dilengkapi dengan sensor RGB. Sensor RGB akan membantu robot mendeteksi warna di sekitarnya, sehingga mampu membuat keputusan berdasarkan warna yang terdeteksi.
Apa itu Arduino Nano?
Arduino Nano adalah papan mikrokontroler kecil yang populer di kalangan penggemar elektronika dan robotik. Meskipun ukuran fisiknya kecil, kemampuannya sangat besar. Dengan menggunakan Arduino Nano, kita dapat membuat berbagai proyek mulai dari yang sederhana hingga yang lebih kompleks, termasuk robotik.
Sensor RGB
Sensor RGB adalah alat elektronik yang dapat mendeteksi warna dengan memanfaatkan komponen red (merah), green (hijau), dan blue (biru). Dalam proyek robotik, sensor ini dapat digunakan untuk mengidentifikasi warna berbagai objek dan mengevaluasi lingkungan sekitar. Dengan informasi ini, robot dapat mengambil tindakan yang sesuai, seperti menjauh dari warna tertentu atau menuju warna lainnya.
Hardware yang Diperlukan
Untuk memulai proyek ini, berikut adalah perangkat keras yang dibutuhkan:
- Arduino Nano
- Sensor RGB (contoh: TCS3200)
- Motor driver (contoh: L298N)
- Roda dan chasis robot
- Baterai
- Kabel jumper
- Breadboard (opsional)
Pengkabelan
Sebelum kita masuk ke dalam pemrograman, mari kita pahami cara menghubungkan sensor RGB dan motor driver ke Arduino Nano.
Pengkabelan Sensor RGB (TCS3200)
- VCC ke 5V pada Arduino Nano
- GND ke GND pada Arduino Nano
- S0 ke pin digital 2
- S1 ke pin digital 3
- S2 ke pin digital 4
- S3 ke pin digital 5
- OUT ke pin digital 6
Pengkabelan Motor Driver (L298N)
- IN1 ke pin digital 8
- IN2 ke pin digital 9
- IN3 ke pin digital 10
- IN4 ke pin digital 11
- ENA dan ENB ke 5V
- Motor ke terminal output motor driver
- GND ke GND pada Arduino dan sumber daya (baterai)
Pemrograman Arduino
Setelah melakukan pengkabelan, langkah selanjutnya adalah membuat script untuk mengontrol robot. Berikut adalah contoh script untuk mengendalikan robot berdasarkan deteksi warna oleh sensor RGB.
Script Arduino
#include <TCS3200.h>
TCS3200 colorSensor(2, 3, 4, 5); // Pin S0, S1, S2, S3
int motor1Pin1 = 8;
int motor1Pin2 = 9;
int motor2Pin1 = 10;
int motor2Pin2 = 11;
void setup() {
Serial.begin(9600);
colorSensor.begin();
pinMode(motor1Pin1, OUTPUT);
pinMode(motor1Pin2, OUTPUT);
pinMode(motor2Pin1, OUTPUT);
pinMode(motor2Pin2, OUTPUT);
}
void loop() {
colorSensor.read();
int r = colorSensor.red();
int g = colorSensor.green();
int b = colorSensor.blue();
Serial.print("R: ");
Serial.print(r);
Serial.print(" G: ");
Serial.print(g);
Serial.print(" B: ");
Serial.println(b);
if (r > g && r > b) {
// Jika warna merah terdeteksi
moveForward();
} else if (g > r && g > b) {
// Jika warna hijau terdeteksi
turnLeft();
} else if (b > r && b > g) {
// Jika warna biru terdeteksi
turnRight();
} else {
stopRobot();
}
delay(100);
}
void moveForward() {
digitalWrite(motor1Pin1, HIGH);
digitalWrite(motor1Pin2, LOW);
digitalWrite(motor2Pin1, HIGH);
digitalWrite(motor2Pin2, LOW);
}
void turnLeft() {
digitalWrite(motor1Pin1, LOW);
digitalWrite(motor1Pin2, LOW);
digitalWrite(motor2Pin1, HIGH);
digitalWrite(motor2Pin2, LOW);
}
void turnRight() {
digitalWrite(motor1Pin1, HIGH);
digitalWrite(motor1Pin2, LOW);
digitalWrite(motor2Pin1, LOW);
digitalWrite(motor2Pin2, LOW);
}
void stopRobot() {
digitalWrite(motor1Pin1, LOW);
digitalWrite(motor1Pin2, LOW);
digitalWrite(motor2Pin1, LOW);
digitalWrite(motor2Pin2, LOW);
}
Penjelasan Script
- Library TCS3200: Pertama, kita mengimpor library TCS3200 untuk memudahkan komunikasi dengan sensor warna.
- Inisialisasi: Pada bagian
setup()
, kita menginisialisasi koneksi serial dan pengaturan pin. - Membaca Warna: Dalam fungsi
loop()
, sensor membaca warna dan menyimpan nilai RGB. - Logika Pengendalian: Robot akan bergerak maju jika mendeteksi warna merah, berbelok kiri saat mendeteksi hijau, dan berbelok kanan saat mendeteksi biru. Jika tidak ada warna yang jelas terdeteksi, robot akan berhenti.
- Fungsi Motor: Terdapat fungsi terpisah untuk menggerakkan robot maju, belok, dan berhenti.
Kesimpulan
Dengan menggunakan Arduino Nano dan sensor RGB, kita bisa membuat robot yang mampu mendeteksi dan merespons warna. Proyek ini tidak hanya menyenangkan tetapi juga mendidik, karena memberikan wawasan mendalam tentang pemrograman, elektronika, dan robotik. Anda dapat mengembangkan proyek ini lebih lanjut dengan menambahkan lebih banyak sensor atau fitur lain untuk meningkatkan kemampuan robot. Selamat mencoba!