Pendahuluan
Robot pengikut garis adalah salah satu proyek yang populer dalam dunia pemrograman dan robotika. Proyek ini mengajarkan konsep dasar tentang sensor, motor, dan pemrograman mikrokontroler. Arduino Nano adalah salah satu papan mikrokontroler yang sering digunakan karena ukurannya yang kecil dan kemudahan dalam pemrograman. Artikel ini akan membahas langkah-langkah dalam membangun dan memprogram robot pengikut garis menggunakan Arduino Nano.
Komponen yang Diperlukan
Sebelum mulai, berikut adalah komponen yang harus disiapkan:
- Arduino Nano
- Sensor Garis (IR Sensor)
- Motor DC (2 unit)
- Driver Motor (L298N atau L293D)
- Roda (2 unit dan 1 caster wheel)
- Baterai (Li-ion atau AA)
- Chassis (bisa dibuat dari bahan plastik atau kayu)
- Jumper wire
- Breadboard (opsional untuk percobaan)
- Resistor (220 ohm, jika diperlukan)
Skema Jumlah dan Rangkaian
Langkah awal adalah merancang skema sirkuit. Berikut adalah langkah-langkah yang perlu diperhatikan dalam menyusun rangkaian robot:
-
Menghubungkan Sensor Garis:
- Hubungkan pin output sensor garis ke pin digital di Arduino, misalnya pin D2 dan D3.
- Sensor biasanya memiliki 3 pin: VCC, GND, dan OUT.
-
Menghubungkan Driver Motor:
- Sambungkan motor DC ke output driver motor.
- Driver motor memiliki pin untuk menghubungkan ke Arduino, biasanya AIN1, AIN2, BIN1, dan BIN2. Gunakan pin digital Arduino seperti D4, D5 untuk motor kiri dan D6, D7 untuk motor kanan.
-
Power Supply:
- Sambungkan power supply ke driver motor untuk memberikan daya pada motor.
Berikut adalah contoh sederhana rangkaian robot pengikut garis:
Arduino Nano Driver Motor
+-----------+ +-----------+
| | | |
| D2 ------>| OUT1 | IN1 |----- Motor Kiri
| D3 ------>| OUT2 | IN2 |----- Motor Kanan
| D4 ------>| IN1 |
| D5 ------>| IN2 |
+-----------+ +-----------+
Pemrograman Robot
Setelah rangkaian selesai, langkah berikutnya adalah memprogram Arduino Nano. Berikut adalah kode dasar untuk robot pengikut garis:
// Definisikan pin
#define LEFT_SENSOR 2
#define RIGHT_SENSOR 3
#define LEFT_MOTOR_FWD 4
#define LEFT_MOTOR_BCK 5
#define RIGHT_MOTOR_FWD 6
#define RIGHT_MOTOR_BCK 7
void setup() {
// Inisialisasi pin
pinMode(LEFT_SENSOR, INPUT);
pinMode(RIGHT_SENSOR, INPUT);
pinMode(LEFT_MOTOR_FWD, OUTPUT);
pinMode(LEFT_MOTOR_BCK, OUTPUT);
pinMode(RIGHT_MOTOR_FWD, OUTPUT);
pinMode(RIGHT_MOTOR_BCK, OUTPUT);
}
void loop() {
int leftValue = digitalRead(LEFT_SENSOR);
int rightValue = digitalRead(RIGHT_SENSOR);
// Logika kontrol
if (leftValue == HIGH && rightValue == HIGH) {
// Kedua sensor berada pada garis (jalan lurus)
moveForward();
} else if (leftValue == LOW && rightValue == HIGH) {
// Belok kanan
turnRight();
} else if (leftValue == HIGH && rightValue == LOW) {
// Belok kiri
turnLeft();
} else {
// Jika kedua sensor kehilangan garis
stop();
}
}
void moveForward() {
digitalWrite(LEFT_MOTOR_FWD, HIGH);
digitalWrite(LEFT_MOTOR_BCK, LOW);
digitalWrite(RIGHT_MOTOR_FWD, HIGH);
digitalWrite(RIGHT_MOTOR_BCK, LOW);
}
void turnLeft() {
digitalWrite(LEFT_MOTOR_FWD, LOW);
digitalWrite[LEFT_MOTOR_BCK, HIGH];
digitalWrite(RIGHT_MOTOR_FWD, HIGH);
digitalWrite(RIGHT_MOTOR_BCK, LOW);
}
void turnRight() {
digitalWrite(LEFT_MOTOR_FWD, HIGH);
digitalWrite(LEFT_MOTOR_BCK, LOW);
digitalWrite(RIGHT_MOTOR_FWD, LOW);
digitalWrite(RIGHT_MOTOR_BCK, HIGH);
}
void stop() {
digitalWrite(LEFT_MOTOR_FWD, LOW);
digitalWrite(LEFT_MOTOR_BCK, LOW);
digitalWrite(RIGHT_MOTOR_FWD, LOW);
digitalWrite(RIGHT_MOTOR_BCK, LOW);
}
Penjelasan Kode
- Definisi Pin: Baris pertama dari kode mendefinisikan pin yang digunakan untuk sensor dan motor.
- Setup: Di dalam fungsi
setup()
, pin diatur ke mode input atau output. - Loop: Fungsi
loop()
terus memeriksa nilai dari sensor garis. Berdasarkan nilai tersebut, robot akan bergerak maju, belok kiri, belok kanan, atau berhenti. - Fungsi Gerakan: Fungsi seperti
moveForward()
,turnLeft()
, danturnRight()
mengontrol motor untuk bergerak sesuai kebutuhan.
Pengujian dan Penyempurnaan
Setelah pemrograman selesai, sambungkan Arduino Nano ke komputer dan unggah kode ke papan. Pastikan semua komponen terhubung dengan benar dan robot dalam keadaan siap.
Pengujian
- Cek Rangkaian: Pastikan semua komponen terpasang dengan benar dan sumber daya terhubung.
- Lakukan Calibrasi: Uji sensor IR di permukaan yang memiliki garis dan tanpa garis untuk memastikan respon sensor berfungsi.
- Uji Robot: Tempatkan robot di jalur yang telah disiapkan, amati apakah ia mengikuti garis dengan baik.
Penyempurnaan
- Penambahan Fitur: Tambahkan lebih banyak sensor untuk meningkatkan akurasi pengikut garis dan fungsi lainnya seperti penghentian otomatis di akhir garis.
- Optimalisasi Kode: Lakukan penyempurnaan kode dengan menambah fungsi debounce untuk sensor.
- Desain Fisik: Kembangkan desain fisik robot agar lebih menarik dan fungsional.
Kesimpulan
Proyek robot pengikut garis menggunakan Arduino Nano tidak hanya menyenangkan tetapi juga memberikan pengalaman berharga dalam dunia pemrograman dan robotika. Dengan mengikuti langkah-langkah di atas, Anda dapat membangun robot sederhana yang dapat berfungsi mengikuti garis. Tentu saja, eksperimen dan inovasi akan membantu memperkaya pengalaman belajar Anda lebih lanjut. Selamat mencoba!