Pemrograman Robot Pengikut Garis Menggunakan Arduino Nano

3 min read 22-08-2024
Pemrograman Robot Pengikut Garis Menggunakan Arduino Nano

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:

  1. Arduino Nano
  2. Sensor Garis (IR Sensor)
  3. Motor DC (2 unit)
  4. Driver Motor (L298N atau L293D)
  5. Roda (2 unit dan 1 caster wheel)
  6. Baterai (Li-ion atau AA)
  7. Chassis (bisa dibuat dari bahan plastik atau kayu)
  8. Jumper wire
  9. Breadboard (opsional untuk percobaan)
  10. 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:

  1. 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.
  2. 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.
  3. 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(), dan turnRight() 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

  1. Cek Rangkaian: Pastikan semua komponen terpasang dengan benar dan sumber daya terhubung.
  2. Lakukan Calibrasi: Uji sensor IR di permukaan yang memiliki garis dan tanpa garis untuk memastikan respon sensor berfungsi.
  3. 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!