Robot Line Follower Sederhana dengan Arduino

Tutorial membuat robot line follower sederhana dengan arduino
Setelah dilakukan simulasi robot line follower dengan arduino di software proteus, maka pada post kali ini saya akan mengimplementasikannya pada perangkat yang sesungguhnya. Proses pembuatan tidaklah terlalu rumit karena semua kit yang akan digunakan sudah banyak tersedia baik dari kit chasis, modul sensor, atau modul driver motor. 

Perangkat yang diperlukan
  • Sensor garis 
Sensor garis yang digunkan adalah sensor Infra red-photodioda dengan keluaran digital. Untuk jumlah sensornya adalah 5 buah / 5 channel. Nah untuk mempermudah perakitan, dapat menggunakan sensor BFD-1000 5 Channel Infrared Sensor.
  • Driver Motor
Driver motor yang digunakan adalah modul L298N. Hargannya gak mahal kok. Selain itu, kinerja dari diver motor ini juga sangat powerfull.
  • Kit Chasis dan DC motor
Untuk kit chasis dapat menggunakan kit acrylic yang banyak tersedia dipasaran. Dapat juga membuat sendiri karena sebenarnya tidak terlalu sulit (dapat menggunakan papan acrylic atau triplek). Sementara untuk motor memakai motor DC 3-6V yang sudah lengkap dengan gearbox dan roda. Kerena modelnya 2 WD maka untuk roller roda 1 memakai roda gila/caster wheel yang anti selip.
  • Arduino
Untuk arduino yang digunakan dalam tutorial ini adalah Arduino Uno. Silahkan disesuaikan penggunaan pinnya bila menggunakan arduino tipe lainnya.
  • Baterai /power bank 
Untuk power stand alone nya kita bisa menggunakan baterai dengan kapasitas 9-12 V. Power dari baterai dengan tegangan kisaran lebih dari 5 V dihubungkan dengan konektor DC pada arduino atau bisa juga melalui pin Vin. Kalau powernya menggunakan power bank, karena tegangan dari powerbank sudah stabil 5V, maka dihubungkan ke pin 5V arduino. Robot line follower yang dibuat menggunakan battery power bank (memanfaatkan barang yang ada)

Wiring Diagram
Diagram pengkabelan dari robot line follower sederhana menggunakan arduino dapat dilihat dibawah ini. Pin Enable A (L298) terhubung dengan arduino pin 3 (PWM ) dan pin enable B (L298) terhubung dengan arduino pin 5(PWM). Jumper pin 12V pada module L298N sebaiknya dilepas saja.

Pemasangan sensor harap diperhatikan karena akan mempengaruhi gerak robot. Dalam hal ini saya sudah mencoba beberapa posisi dan yang terbaik cara pemasangan sensor BFD-1000 adalah seperti gambar diatas (posisi miring/roda depan agak ditinggiin).

Arduino Program
Program robot line follower ini tidak jauh berbeda dengan yang ada pada Simulasi Arduino Line Follower Robot di Proteus . Sementara untuk cara kerja sistemnya sendiri dapat dipelajari pada simulasi line follower bagian pertama. Untuk program arduinodapat dilihat dibawah ini:

/*program Arduino LF dengan  sensor IR 5ch
  www.arducoding.com */
#define enA 3
#define in1 2
#define in2 4
#define in3 6
#define in4 7
#define enB 5

int pin_sensor[]={8,9,10,11,12};
int baca_sensor;
int inp;
int hasil_baca[]={0,0,0,0,0};

void setup(){
  pinMode(enA, OUTPUT); pinMode(enB, OUTPUT);
  pinMode(in1, OUTPUT); pinMode(in2, OUTPUT);
  pinMode(in3, OUTPUT); pinMode(in4, OUTPUT);
  
  int a;
  //setting pin sensor sebagai INPUT
   while(a<5){
    pinMode(pin_sensor[a],INPUT);
    a=a+1;
   } 
 }
 void loop() {
   baca_sensor=readOut(pin_sensor);
   switch (baca_sensor) {
      //hasil baca sensor untuk belok kiri
      case 11110: case 11000: 
      case 11100: case 11101:  
      case 10000: 
      belok_kiri(); break;

      //hasil baca sensor untuk arah maju
      case 11001: case 11011: 
      case 10011: 
      gerak_maju(); break;

      //hasil baca sensor untuk belok kanan
      case 10111: case 111:  case 11:  
      case 1111: case 1: 
      belok_kanan(); break;
              
      //baca hitam semua=stop
      case 0: 
      motor_stop(); break;
   } 
 }
 
 //menampung hasil baca sensor menjadi interger
 int readOut(int pin_sensor[]){
   int a,b,c=0;
   inp=0;
   while(c<5){
    hasil_baca[c]=0;
    c=c+1;
   }
   for(a=0;a<5;a++){
     hasil_baca[a]=digitalRead(pin_sensor[a]);
   }
   while(b<5){
     inp=inp*10+hasil_baca[b];
     b=b+1;
   }
  return inp;
}

//kendali motor
void gerak_maju(){
  analogWrite (enA, 255);
  digitalWrite(in1, HIGH);
  digitalWrite(in2, LOW);
  digitalWrite(in3, HIGH);
  digitalWrite(in4, LOW);
  analogWrite (enB, 255);
}
void belok_kanan(){
  analogWrite (enA, 0);
  digitalWrite(in1, HIGH);
  digitalWrite(in2, LOW);
  digitalWrite(in3, HIGH);
  digitalWrite(in4, LOW);
  analogWrite (enB, 200);
}

void belok_kiri(){
  analogWrite (enA, 200);
  digitalWrite(in1, HIGH);
  digitalWrite(in2, LOW);
  digitalWrite(in3, HIGH);
  digitalWrite(in4, LOW);
  analogWrite (enB, 0);
}
void motor_stop(){
  analogWrite (enA, 0);
  analogWrite (enB, 0);
}
Upload program ke arduino siapkan lintasannya dan lakukan ujicoba. Sebagai gambaran hasilnya dapat dilihat pada video berikut:

Pencarian Terkait:
  1. Robot Line Follower Arduino
  2. Line Follower Seherdana Arduino
  3. Arduino Line Follower Robot
  4. rancangan Arduino Line Follower