Kamis, 25 April 2019

Kumpulan Cara Membuat Robot Line Follower dengan Pemrograman Arduino

1. MEMBUAT ROBOT LINE FOLLOWER SEDERHANA DENGAN ARDUINO



Line follower robot adalah sebuah robot yang dapat mengikuti garis secara otomatis. Robot didukung oleh rangkain komponen elektronika yang dilengkapi dengan roda dan digerakan oleh motor. Pengendalian kecepatan sangat bergantung pada batas putaran dan pergesekan antara ban robot dengan lantainya. Robot tersebut dirancang untuk bernavigasi dan bergerak secara otomatis mengikuti sebuah alur garis yang dibuat.
Untuk membaca garis, robot dilengkapi dengan sensor yang diletakkkan diujung depan dari robot tersebut. Line follower robot ini memiliki jenis dan bentuk serta memiliki beberapa sistem penggerak dan pengendali sebagai pengatur kinerja yang beraneka ragam sesuai dengan kreatifitas pembuatnya.



Bahan yang harus disediakan:

1x Arduino Uno : http://jogjarobotika.com/arduino-uno-r3-compatible-cable-data

2x TCRT5000 : http://jogjarobotika.com/sensor-garis-tcrt5000-infrared-module

1x L298N Driver Motor : http://jogjarobotika.com/l298n-driver-modul

1x Sasis Kit 2WD : http://jogjarobotika.com/2wd-sasis-kit

2xSpacer 3cm :http://jogjarobotika.com/spacer-kuningan-30mm6mm

1x Kabel Jumper Male-Female http://jogjarobotika.com/kabel-jumper-male-female-40pc

Mur baut 3mm, Jack DC Male

Setelah bahan ready maka tahap selanjutnya adalah merakitnya, namun sebelum itu solderlah motor dc, saklar, dan jack dc terlebih dahulu.

Penyolderan Saklar dilakukan dengan cara membagi jumper male-female menjadi dua. bagian female disolder ke bagian 0 (mati) dan bagian male disolder ke bagian - (Hidup). Sedangkan Jack DC disolder dengan cara membuang bagian female dari kabel jumper, perlu dicatat warna dan polaritasnya! Begitupun dengan penyolderan Motor DC..

Sudah?? Lanjut rakit sasis kitnyaa...

Saya rasa perakitan sasis nggk perlu dijelaskan :P

Oke lanjut ke pengkabelan..



Pengkabelan dilakukan dengan menggunakan kabel jumper, untuk power 5V dapat diambil dari L298N driver (Hati-hati jangan sampai salah ke 12V)

Berikut bentuk robot nampak bawah setelah terakit..



Sebelum masuk ke pemrograman alangkah baiknya kita tahu sistem kerja dari sensor dan driver motor yg digunakan.

Sensor Garis TCRT5000

Sensor ini merupakan sensor garis yang mempunyai 4Pin, VCC,GND, Output Analog (A0), Output Digital (DO). Dalam diagram pengkabelan diatas dapat dilihat bahwa kita (berencana) menggunakan DO sebagai input ke Arduino, dimana nantinya kita menggunakan teori Input-Output dalam pemrogramannya. Dimana jika sensor mendeteksi garis hitam maka sensor akan mengirimkan logika High (1). Kalibrasi sensor dilakukan dengan memutar trimpot yang terdapat pada sensor.

L298N Driver

L298N driver merupakan dricer motor yang sanggup mengontrol dua buah motor DC, driver ini membutuhkan sebuah pin logic (LOW/HIGH)  dan sebuah pin PWM untuk menggerakkan motor.  Berikut konfigurasi dari L298N Driver.



Setelah mengerti cara kerja dari sensor dan driver motor maka kita siap untuk masuk ke pemrograman..

#define m1 3
#define m2 5
#define m3 9
#define m4 10

int arrow =0;
void setup() {


pinMode(m1,OUTPUT);
pinMode(m2,OUTPUT);
pinMode(m3,OUTPUT);
pinMode(m4,OUTPUT);
pinMode(12,INPUT);
pinMode(13,INPUT);

}

void loop() {

// pembacaan sensor pada pin 12 dan 13

int lsensor=digitalRead(12);
int rsensor=digitalRead(13);

//logika robot menggunakan prinsip  AND
if((lsensor == LOW)&&(rsensor== HIGH))
{
// maju dengan kecepatan 100
motorOut(100,100,2);

}
if((lsensor== HIGH)&&(rsensor== LOW))
{
//belok kiri
motorOut(0,100,2);

}

if((lsensor==HIGH)&&(rsensor== HIGH))
{
motorOut(0,100,2);

//belok kiri

}
if((lsensor== LOW)&&(rsensor==LOW))
{
//belok kanan
motorOut(100,0,2);
}
}

//Fungsi untuk menggerakkan motor
void motorOut(unsigned char lpwm, unsigned char rpwm, int arrow){
//arrow =1 mundur, 2 maju,
if(arrow==1){
digitalWrite(m3,HIGH);
digitalWrite(m1,LOW);
analogWrite(m4,255-lpwm);
analogWrite(m2,rpwm);
}
else if (arrow==2)
{
digitalWrite(m3,LOW);
digitalWrite(m1,HIGH);
analogWrite(m4,lpwm);
analogWrite(m2,255-rpwm);
}

}

untuk memperlambat atau mempercepat jalannya robot tinggal ganti saja nilai pwm pada

motorOut(lpwm,rpwm,arrow), semakin besar nilainya semakin kencang pula robot akan melaju.

kalau sudah tinggal cari isolasi dan buat jalur dan gassss! seperti di video ini

https://www.youtube.com/watch?v=A54fCOUZAVQ

sumber: http://www.jogjarobotika.com/blog/membuat-robot-line-follower-sederhana-dengan-arduino-b105.html



2. Membuat Robot Line Follower Sederhana 4 Sensor Menggunakan Arduino dan Modul Sensor Garis



Assalamualaikum.
Salam Sejahtera Untuk Kita Semua Sobat …
Robot line follower atau pengikut garis adalah robot yang sangat sering kita dengar namanya. Yups, robot ini memang sangat cocok untuk bahan pembelajaran bagi yang hobi robotika maupun elektronika. Robot ini sudah mewakili logika sederhana dalam pembuatan robot yang tentunya dapat kita kembangkan agar dapat menjadi semakin canggih 😀 .

Nah pada kali ini, NP akan share bagaimana cara membuat sebuah robot line follower sederhana menggunakan 4 buah sensor dan tentu saja board microcontroller Arduino sebagai controller utamanya. Robot kali ini sangat sederhana karena tidak menggunakan pemrograman yang rumit. Hanya mengandalkan “if else” saja. Jika menginginkan robot line follower yang lebih canggih, bisa mengguanakan algoritma metode PID ataupun Jaringan Syaraf Tiruan (JST). Monggo disimak tutorialnya sob :mrgreen: .


Berikut ini komponen yang harus dipersiapkan :

  • 1 buah Arduino (bisa menggunakan Arduino UNO, MEGA, NANO, MINI atau yang lain. bisa diperoleh Di Sini)
  • 1 buah Modul Sensor Line Tracking isi 4 (Bisa diperoleh Di Sini)
  • 1 buah Driver Motor L298N (Bisa diperoleh Di Sini)
  • 2 buah Motor DC + Roda (Bisa diperoleh Di Sini)
  • Baterai sesuai kebutuhan, tegangan sekitar 5-12V (Bisa diperoleh Di Sini)
  • Kabel jumper secukupnya (Bisa diperoleh Di Sini)
  • Breadboard/Projectboard jika diperlukan (Bisa didapat Di Sini)
  • Software Arduino IDE (Jika belum punya, maka download Di Sini)
  • Dan jika ingin belajar bagaimana cara menggunakan Arduino bagi pemula, silahkan download Ebook nya Di Sini



Dan berikut ini adalah skema rangkaiannya :



Keterangan Rangkaian :

  • Bisa Menggunakan Segala Jenis Arduino (UNO, NANO, MEGA, MINI, dll), karena penomoran pinnya sama. Tinggal cocokkan Saja nomor Pin-Pin nya.
  • Pin Modul Sensor no. 1 ==> Pin A5 Arduino
  • Pin Modul Sensor no. 2 ==> Pin A4 Arduino
  • Pin Modul Sensor no. 3 ==> Pin A3 Arduino
  • Pin Modul Sensor no. 4 ==> Pin A2 Arduino
  • Pin In1 Driver Motor ==> Pin 7 Arduino
  • Pin In2 Driver Motor ==> Pin 6 Arduino
  • Pin In3 Driver Motor ==> Pin 5 Arduino
  • Pin In4 Driver Motor ==> Pin 4 Arduino
  • Pin ENA-bawah Driver Motor ==> Pin 9 Arduino
  • Pin ENB-bawah Driver Motor ==> Pin 9 Arduino
  • Pin ENA-atas Driver Motor ==> Pin 5V Arduino
  • Pin ENB-atas Driver Motor ==> Pin 5V Arduino
  • OUT1 dan OUT2 Driver Motor ==> Motor 1
  • OUT3 dan OUT4 Driver Motor ==> Motor 2
  • Pin 12V Driver Motor ==> Hubungkan ke baterai
  • Pin GND Driver Motor ==> Hubungkan ke Ground(-) Baterai dan Ground(GND) Arduino
  •  Kaki vcc pada masing-masing komponen hubungkan ke sumber power positif 5v (bisa dari 5v Arduino)
  • Kaki gnd/ground pada masing-masing komponen hubungkan ke sumber negatif power (dihubungkan ke pin gnd Arduino)


Kemudian rakitlah robot sesuai dengan kreatifitas sobat. Ini NP berikan referensi bentuk robot sesuai dengan robot yang NP buat. Berikut ini merupakan pemasangan sensor line trackingnya :






Setelah itu, silahkan upload program seperti di bawah ini pada software Arduino IDE milik sobat, dan tata cara upload program ke Arduino bisa sobat baca Di Sini :


// ------ Project Membuat Robot Line Follower 4 Sensor ------- //
// ------------- Dibuat oleh : M. Nofgi Y.P.U. -------------- //
// ------------- www.nofgipiston.wordpress.com -------------- //


// inialisasi pin motor kanan dan motor kiri
// motor1 dan motor2 = motor kanan
// motor3 dan motor4 = motor kiri
const int motor1 = 7;
const int motor2 = 6;
const int motor3 = 5;
const int motor4 = 4;


// inialisasi pi sensor garis 1 sampai 4
// sensor1 dan snsor2 = sensor sebelah kanan
// sensor3 dan sensor4 = sensor sebelah kiri
const int sensor1 = A5;
const int sensor2 = A4;
const int sensor3 = A3;
const int sensor4 = A2;

// inialisasi pin speed motor
// wajib pin support PWM
const int pinSpeed = 9;

// inialisasi variabel data 1 sampai 4
int data1, data2, data3, data4;

// inialisasi nilai kecepatan motor
// range nilai antara 0 sampai 255
int speedMotor = 255;

// ---------- program dfault/setting awal ---------- //

void setup()
{
 // inialisasi pin motor sebagai output
 pinMode(motor1, OUTPUT);
 pinMode(motor2, OUTPUT);
 pinMode(motor3, OUTPUT);
 pinMode(motor4, OUTPUT);

// inialisasi pin sensor sebagai input
 pinMode(sensor1, INPUT);
 pinMode(sensor2, INPUT);
 pinMode(sensor3, INPUT);
 pinMode(sensor4, INPUT);

// inialisasi pin speed motor sebagai output
 pinMode(pinSpeed, OUTPUT);
}

// ---------- program utama, looping/berulang terus-menerus ---------- //

void loop ()
{
 // masing2 variabel data menyimpan hasil pembacaan sensor
 // berupa logic LOW/HIGH
 data1 = digitalRead(sensor1);
 data2 = digitalRead(sensor2);
 data3 = digitalRead(sensor3);
 data4 = digitalRead(sensor4);

// mengatur kecepatan motor
 analogWrite(pinSpeed, speedMotor);

// ----------- pengaturan jalannya robot sesuai pembacaan sensor ------------ //

if (data1 == LOW && data2 == LOW && data3 == LOW && data4 == LOW)
 {
 //maju
 digitalWrite(motor1, HIGH);
 digitalWrite(motor2, LOW);
 digitalWrite(motor3, HIGH);
 digitalWrite(motor4, LOW);
 }

else if (data1 == HIGH && data2 == HIGH && data3 == HIGH && data4 == LOW)
 {
 //kanan
 digitalWrite(motor1, LOW);
 digitalWrite(motor2, HIGH);
 digitalWrite(motor3, HIGH);
 digitalWrite(motor4, LOW);
 }

else if (data1 == LOW && data2 == HIGH && data3 == HIGH && data4 == HIGH)
 {
 //kiri
 digitalWrite(motor1, HIGH);
 digitalWrite(motor2, LOW);
 digitalWrite(motor3, LOW);
 digitalWrite(motor4, HIGH);
 }

else if (data1 == HIGH && data2 == HIGH && data3 == LOW && data4 == LOW)
 {
 //kanan
 digitalWrite(motor1, LOW);
 digitalWrite(motor2, HIGH);
 digitalWrite(motor3, HIGH);
 digitalWrite(motor4, LOW);
 }

else if (data1 == LOW && data2 == LOW && data3 == HIGH && data4 == HIGH)
 {
 //kiri
 digitalWrite(motor1, HIGH);
 digitalWrite(motor2, LOW);
 digitalWrite(motor3, LOW);
 digitalWrite(motor4, HIGH);
 }

else if (data1 == HIGH && data2 == LOW && data3 == LOW && data4 == LOW)
 {
 //kanan
 digitalWrite(motor1, LOW);
 digitalWrite(motor2, HIGH);
 digitalWrite(motor3, HIGH);
 digitalWrite(motor4, LOW);
 }

else if (data1 == LOW && data2 == LOW && data3 == LOW && data4 == HIGH)
 {
 //kiri
 digitalWrite(motor1, HIGH);
 digitalWrite(motor2, LOW);
 digitalWrite(motor3, LOW);
 digitalWrite(motor4, HIGH);
 }

else if (data1 == HIGH && data2 == LOW && data3 == HIGH && data4 == LOW)
 {
 //kanan
 digitalWrite(motor1, LOW);
 digitalWrite(motor2, HIGH);
 digitalWrite(motor3, HIGH);
 digitalWrite(motor4, LOW);
 }

else if (data1 == LOW && data2 == HIGH && data3 == LOW && data4 == HIGH)
 {
 //kiri
 digitalWrite(motor1, HIGH);
 digitalWrite(motor2, LOW);
 digitalWrite(motor3, LOW);
 digitalWrite(motor4, HIGH);
 }

else if (data1 == LOW && data2 == HIGH && data3 == LOW && data4 == LOW)
 {
 //kanan
 digitalWrite(motor1, LOW);
 digitalWrite(motor2, HIGH);
 digitalWrite(motor3, HIGH);
 digitalWrite(motor4, LOW);
 }

else if (data1 == LOW && data2 == LOW && data3 == HIGH && data4 == LOW)
 {
 //kiri
 digitalWrite(motor1, HIGH);
 digitalWrite(motor2, LOW);
 digitalWrite(motor3, LOW);
 digitalWrite(motor4, HIGH);
 }

else if (data1 == LOW && data2 == HIGH && data3 == HIGH && data4 == LOW)
 {
 //maju
 digitalWrite(motor1, HIGH);
 digitalWrite(motor2, LOW);
 digitalWrite(motor3, HIGH);
 digitalWrite(motor4, LOW);
 }

else if (data1 == HIGH && data2 == HIGH && data3 == HIGH && data4 == HIGH)
 {
 //maju
 digitalWrite(motor1, HIGH);
 digitalWrite(motor2, LOW);
 digitalWrite(motor3, HIGH);
 digitalWrite(motor4, LOW);
 }
}



Dan berikut ini adalah video demonstrasinya di channel Youtube saya :




Untuk pergerakannya memang masih sedikit kaku karena program masih bersifat sederhana. Belum mengaplikasikan metode controller seperti PID ataupun JST (Jaringan Syaraf Tiruan).



Penjelasan singkat dari program di atas yakni :
Sifat dari sensor garis/line tracking ini adalah saat dia mendeteksi warna putih, maka output sensor berupa data logic LOW, sedangakan saat sensor mendeteksi garis hitam, maka output data berupa logic HIGH.

Nah berdasarkan cara kerja sensor inilah kita mengatur pergerakan roda motor pada robot. Perhatikan tabel di bawah ini :




Untuk pergerakan belok kanan-kiri pada robot ini menggunakan sistem differential drive. Jadi bukan pakai steering, melainkan perbedaan arah putar pada roda kanan-kiri. Contohnya kalau mau belok kanan, maka motor kanan berjalan mundur dan motor kiri berjalan maju, sedangkan jika belok kiri maka motor kiri berjalan mundur dan motor kanan bergerak maju.

Ketika sensor kanan mendeteksi garis hitam, robot akan berbelok ke kanan. Dan sebaliknya, saat sensor kiri mendeteksi garis hitam, maka robot akan berbelok ke kiri. Untuk lebih jelasnya silahkan dilihat pada program.




Nah mudah buak untuk membuat sebuah robot line follower ? Sebenarnya bermodal dua buah sensor saja juga bisa, namun lebih banyak sensor tentunya lebih presisi bukan ? Tapi tentu saja algoritma pemrogramannya juga semakin bertambah panjang sob hehe :mrgreen: .

Jangan bosan-bosan belajar dan berlatih dengan Arduino ya sob … Karena banyak sekali alat-alat serta kreatifitas yang dapat kita buat dengan board microcontroller serba bisa ini 🙂 .

“Barang siapa yang menempuh suatu jalan untuk menuntut ilmu, Allah akan memudahkan baginya jalan ke surga (HR Muslim)”

Semoga bermanfaat 😀 .

Salam Teknologi … Salam Arduino …🙂 .

Wassalamualaikum.

sumber: https://nofgipiston.wordpress.com/2017/03/09/membuat-robot-line-follower-sederhana-4-sensor-menggunakan-arduino-dan-modul-sensor-garis/



3. Membuat Line Follower Robot

Kali ini kita akan belajar membuat robot yang sangat sederhana - kita menyebutnya Robot Pengikut Garis. Robot ini menggunakan mikrokontroler untuk mengontrol algoritmanya. Proyek Robot Sederhana ini dapat menjadi proyek akhir pekan yang mengasyikkan. Yuk kita pelajari bagaimana cara membuatnya.

Hardware yang dibutuhkan..

Pabrikan








Alternatif

Pada pembahasan pembuatan Robot Line Follower ini, Cara penggunaan yang Pabrikan sama dengan yang Alternatif..Cuma bentuknya aja yang keliatan beda. Yang jelas aturan penghubungan pin-pin nya sama saja..

Blok Diagram
Blok diagram robot ini memberikan kita gambaran secara garis besar hubungan-hubungan antar pin yang kita gunakan.




Langkah Perakitan Hardwarenya..
Langkah Pertama



Siapkan badan robot kemudian pasangkan baterai 9 volt pada badan robot. Lalu, Lemkan ke badan robot.
note : Badan robotnya saya buat dari papan kayu dan pcb bolong untuk pasang sensor dan sudah saya pasangkan Motor DC 4 buah..

Langkah kedua



Langkah selanjutnya, pasangkan Arduino Uno di atas baterai..boleh di lem atau pakai spacer. Usahakan agar bagian bawah dari Arduino Uno tidak bersinggungan langsung dengan badan baterai agar tidak terjadi konsleting.

Langkah Ketiga



Kemudian, letakkan Driver DC Motor di atas arduino Uno.
note : Saya buat plastik alas untuk Driver DC Motor seperti shield Arduino


Langkah Keempat




Selanjutnya, kita pasangkan sensor di bagian depan robot. Sensor inilah yang nantinya membaca adanya garis hitam sehingga, robot dapat mengikuti alur garis yang ada.

Langkah Kelima
Langkah perakitan yang terakhir yaitu, menghubungkan pin-pin yang ada sesuai dengan Blok Diagram - Coba lihat dan perhatikan kembali hubungan pin-pin pada Blok Diagram Berikut..



1. Hubungkan kedua Pin VCC Sensor dengan Pin 5V Arduino.
2. Hubungkan kedua Pin Gnd Sensor dengan Pin Gnd Arduino.
3. Hubungkan Pin Data Sensor Kanan dengan Pin A3 Arduino.
4. Hubungkan Pin Data Sensor Kiri dengan Pin A2 Arduino.

5. Hubungkan Pin En1 Driver DC Motor dengan Pin 5 Arduino.
6. Hubungkan Pin En2 Driver DC Motor dengan Pin 6 Arduino.
7. Hubungkan Pin En3 Driver DC Motor dengan Pin 10 Arduino.
8. Hubungkan Pin En4 Driver DC Motor dengan Pin 11 Arduino.

9. Hubungkan Out Kanan Driver DC Motor dengan DC Motor Kanan.
10. Hubungkan Out Kiri Driver DC Motor dengan DC Motor Kiri.

11. Hubungkan Pin 5v Arduino dengan Kutub Positif (+) Baterai 9volt (yang pertama).
12. Hubungkan Pin Gnd Arduino dengan Kutub Negatif (-) Baterai 9volt (yang pertama).

13. Hubungkan  Pin 12 Volt Driver DC Motor dengan Kutub Positif Baterai 9volt (yang kedua).
14. Hubungkan pin Gnd Driver DC Motor dengan Kutub Negatif Baterai 9volt (yang kedua).
15. Hubungkan Pin 5volt Driver DC Motor dengan Pin 5v Arduino.


Logaritma Robotnya..




Pemrograman Robotnya...
Sebelum mengisi program ada baiknya lepas hubungan baterai 9 volt yang ke Arduino, kemudian Hubungkan Arduino dengan Komputer atau Laptop menggunakan kabel USB.
Bukalah IDE Arduino. Kemudian ketikkan Sketch atau Program berikut:



di COPAS juga boleh.Tapi, saya sarankan diketik ulang aja supaya lebih memahami alur programnya. Namanya juga belajar.. :)



//===================Blok Pertama Deklarasi dan Inisialisasi Variable=======================
int sensorKanan = 3;
int sensorKiri = 2;
int adaGaris = ... isi dengan angka dari hasil percobaan sensor


int motorKananA = 5;
int motorKananB = 6;
int motorKiriA = 10;
int motorKiriB = 11;

//=================Blok Kedua Seting Input dan Output=====================================
void setup()
{
pinMode (sensorKanan,INPUT);
pinMode (sensorKiri,INPUT);


pinMode (motorKananA,OUTPUT);
pinMode (motorKananB,OUTPUT);
pinMode (motorKiriA,OUTPUT);
pinMode (motorKiriB,OUTPUT);
}

//=======================================Blok Ketiga Program Utama=============================
void loop()
{
int sensorKanan = analogRead (sensorKanan);
delay (5);
int sensorKiri = analogRead (sensorKiri);
delay (5);
//-----------------------------------------------------------------------------------
if ( (sensorKanan >= adaGaris) && (sensorKiri >= adaGaris) )
{
mundur ();
}
//-----------------------------------------------------------------------------------
else if ( (sensorKanan >=adaGaris) && (sensorKiri < adaGaris) )
{
belokkiri ();
}
//-----------------------------------------------------------------------------------
else if ( (sensorKanan < adaGaris) && (sensorKiri >= adaGaris) )
{
belokkanan ();
}
//-----------------------------------------------------------------------------------
else
{
maju ();
}
//-----------------------------------------------------------------------------------
}

//===========================Blok Keempat Arah Gerakan Robot==================================
void mundur (void)
{
analogWrite (motorKananA,0);
analogWrite (motorKananB,255);
analogWrite (motorKiriA,0);
analogWrite (motorKiriB,255);
}
//------------------------------------------------------------------------------------------
void belokkiri (void)
{
analogWrite (motorKananA,255);
analogWrite (motorKananB,0);
analogWrite (motorKiriA,0);
analogWrite (motorKiriB,255);
}
//------------------------------------------------------------------------------------------

void belokkanan (void)
{
analogWrite (motorKananA,0);
analogWrite (motorKananB,255);
analogWrite (motorKiriA,255);
analogWrite (motorKiriB,0);
}
//------------------------------------------------------------------------------------------
void maju (void)
{
analogWrite (motorKananA,255);
analogWrite (motorKananB,0);
analogWrite (motorKiriA,255);
analogWrite (motorKiriB,0);
}

  • Upload Program ke Arduino menggunakan tombol Upload pada IDE Arduino.
  • Jika program berjalan sebagaimana mestinya, barulah lepas kabel usb ke komputer, kemudian sambungkan lagi Arduino kita dengan baterai 9volt.


sumber: http://belajarbikinrobot.weebly.com/line-follower-robot.html


4. Robot Line Follower Digital Menggunakan Arduino
Pada skema lengkap robot line follower didesain dengan posisi sensor di atas permukaan putih. Dua buah sistem sensor di pasang pada pin Analog Input A0 dan A1, sedangkan sistem actuator motor DC dipasang pada Port 9 dan 6 untuk motor kiri, PORT 5 dan 3 untuk motor kanan. Prinsip kerja robot line follower berikut adalah saat sistem sensor berada di atas permukaan putih, akan ada pantulan cahaya dari LED yang akan mengenai sensor cahaya LDR sehingga resistansi sensor LDR berkurang sehingga arus bergerak melalui LDR. Kondisi tersebut menyebabkan arus output sensor menuju IC komparator LM 393 menjadi minimum, oleh IC LM 393, arus di non-inverting sehingga output menuju pin Arduino menjadi LOW (0). Sebaliknya, saat sistem sensor berada di atas garis hitam, tidak akan ada pantulan cahaya dari LED yang akan mengenai sensor cahaya LDR sehingga resistansi sensor LDR sangat besar sehingga arus tidak akan melalui LDR. Kondisi tersebut menyebabkan arus output sensor menuju IC komparator LM 393 menjadi maksimum, oleh IC LM 393, arus di non-inverting sehingga output menuju pin Arduino menjadi HIGH (1). Oleh Arduino data logika pin tersebut kemudian diolah untuk mengerakan motor, motor akan bergerak jika kedua pin motor tersebut memiliki beda polaritas. Selengkapnya mengenai logika gerak robot dapat dilihat pada Tabel 1 dan 2.

Tabel 21Kondisi Gerak Motor dan pengaruh Sensor
Kondisi
A0 = 0
A0 =1
A1 = 0
Maju
Belok Kiri
A1 = 1
Belok Kanan
Mundur


Tabel 2 Kondisi Gerak Motor dan Kondisi Logika Tiap Pin Motor
Kondisi
PORT 9
PORT 6
PORT 5
PORT 3
Maju
LOW
HIGH
LOW
HIGH
Belok Kiri
HIGH
LOW
LOW
HIGH
Belok Kanan
LOW
HIGH
HIGH
LOW
Mundur
HIGH
LOW
HIGH
LOW


 Gambar 1 Desain simulasi Proteus robot line follower digital

Gambar 1 adalah desain lengkap robot line follower digital dengan dua sensor cahaya dan komparator menggunakan board Arduino Uno. Sensor cahaya dihubungkan pada PORT Analog Input A0 dan A1 board Arduino, sedangkan input motor driver IC L293D terhubung dengan PORT yaitu 9, 6, 5, dan 3 Board Arduino.

Membuat Program Robot Line Follower Digital Menggunakan IDE Arduino

Susun rangkaian robot line follower digital menggunakan dua buah sensor seperti gambar berikut:


Gambar 2 Desain Fritzing rangkaian robot line follower digital

1. Hubungkan Arduino ke komputer dengan kabel USB. 
2. Buka software Arduino, dan ketik program berikut:

//ROBOT LINE FOLLOWER DIGITAL
//DILENGKAPI LCD DAN KOMUNIKASI SERIAL

#include
LiquidCrystal lcd(13,12,11,10,8,7);
int kiriA = 9;
int kiriB = 6;
int kananA = 5;
int kananB = 3;

void setup()
{
  lcd.begin(16,2);
  Serial.begin(9600);
  pinMode(kiriA,OUTPUT);
  pinMode(kiriB,OUTPUT);
  pinMode(kananA,OUTPUT);
  pinMode(kananB,OUTPUT);
  pinMode(A0,INPUT);
  pinMode(A1,INPUT);

}

void loop()
{
  int kiri = digitalRead(A0);
  int kanan = digitalRead(A1);

 //HIGH=hitam, LOW=putih

  if ((kiri==HIGH)&&(kanan==LOW))
  {
    digitalWrite(kiriA,HIGH);
    digitalWrite(kiriB,LOW);
    digitalWrite(kananA,LOW);
    digitalWrite(kananB,HIGH);

    //LCD Program
    lcd.clear();
    lcd.setCursor(0,0);
    lcd.print("i=hitam a=putih");
    lcd.setCursor(0,1);
    lcd.print("BELOK KIRI");

    //Serial Program
    Serial.println("Sensor Kiri Hitam & Sensor Kanan Putih");
    Serial.println("BELOK KIRI");
  }
  else if ((kiri==LOW)&&(kanan==HIGH))
  {
    digitalWrite(kiriA,LOW);
    digitalWrite(kiriB,HIGH);
    digitalWrite(kananA,HIGH);
    digitalWrite(kananB,LOW);
    //LCD Program
    lcd.clear();
    lcd.setCursor(0,0);
    lcd.print("i=putih a=hitam");
    lcd.setCursor(0,1);
    lcd.print("BELOK KANAN");

    //Serial Program
    Serial.println("Sensor Kiri Putih & Sensor Kanan Hitam");
    Serial.println("BELOK KANAN");
  }
  else if ((kiri==HIGH)&&(kanan==HIGH))
  {
    digitalWrite(kiriA,HIGH);
    digitalWrite(kiriB,LOW);
    digitalWrite(kananA,HIGH);
    digitalWrite(kananB,LOW);
    //LCD Program
    lcd.clear();
    lcd.setCursor(0,0);
    lcd.print("i=hitam a=hitam");
    lcd.setCursor(0,1);
    lcd.print("MUNDUR");

    //Serial Program
    Serial.println("Sensor Kiri Hitam & Sensor Kanan Hitam");
    Serial.println("MUNDUR");
  }

  else
  {
    digitalWrite(kiriA,LOW);
    digitalWrite(kiriB,HIGH);
    digitalWrite(kananA,LOW);
    digitalWrite(kananB,HIGH);
    //LCD Program
    lcd.clear();
    lcd.setCursor(0,0);
    lcd.print("i=putih a=putih");
    lcd.setCursor(0,1);
    lcd.print("MAJU");

    //Serial Program
    Serial.println("Sensor Kiri Putih & Sensor Kanan Putih");
    Serial.println("MAJU");
  }

}

3. Pilih Board dan Serial PORT yang digunakan di menu Tools.
4. Tekan tombol Verify dipojok kiri toolbar. Setelah muncul pesan “Done Compiling”, selanjutnya tekan tombol Upload yang ada di kanan tombol Verifysampai muncul pesan “Done Uploading”

.
Gambar 3 Output program robot line follower menggunakan Arduino Uno

Saat kedua sensor berada dipermukaan putih maka robot akan bergerak maju, jika sensor kiri berada diatas garis hitam sedangkan sensor kanan di permukaan putih maka robot akan berbelok ke kiri, begitupula saat jika sensor kanan berada diatas garis hitam sedangkan sensor kiri di permukaan putih maka robot akan berbelok ke kanan, sehingga robot akan senantiasa berada menelusuri garis hitam.

Bentuk Robot Line Follower Digital Berbasis Sensor Cahaya


Gambar 4 Bentuk jadi robot line follower menggunakan Mikrokontroler Arduino

sumber: http://profesorbolabot.blogspot.com/2016/02/robot-line-follower-arduino.html




5. Aplikasi Android Tutorial Robot Line Follower Microcontroller, Ayo Buruan Instal Mantap....
Robot-ID.Com, Robot Line Follower adalah sebuah jenis robot yang termasuk dalam kategori mobile robot yang di desain untuk bekerja secara otomatis dan robot ini memiliki kemampuan untuk dapat mendeteksi garis (umumnya hitam & putih) dan bergerak mengikuti (follows) garis yang ada pada arena. 


Sistem kendali robot yang digunakan dirancang untuk bisa melaju pada jalur garis yang ada dan melakukan manuver gerakan sesuai kondisi sensornya agar tetap bisa mengikuti garis tersebut. Robot jenis ini lumayan banyak diminati bagi mereka yang baru belajar teknologi robot. Bahkan kompetisi-kompetisi Line Follower Robot, secara rutin sering diadakan di berbagai universitas di Indonesia. Dalam bidang industri, robot jenis ini sering digunakan untuk untuk memindahkan barang dari satu tempat ke tempat yang lain.

Instal aplikasinya sekarang juga klik INSTAL APLIKASI

Robot Line Follower terbagi dalam dua jenis yaitu :
Robot Line Follower Analog
Robot Line Follower Microcontroller (Pemrograman)



Robot Line Follower Analog biasanya menggunakan komponen Transistor dan IC Op Amp sebagai komponen utama dan IC Driver motor, namun ada juga yang menggunakan relay sebagai kendali motor dc-nya. Robot Line Follower Analog biasanya terdapat beberapa tombol setting yang memiliki fungsi tertentu misalnya untuk pilihan warna jalur, baca garis kanan/kiri, juga tombol turbo untuk kecepatan lebih. Robot Line Follower Analog jika dilihat dari pergerakan ketika mendeteksi garis jalanya robot masih terkesan kasar saat mengikuti garis karena sistem kerjanya masih menggunakan sistem On/Off. Namun kali ini kita tidak membahas Robot Line Follower Analog tetapi yang akan dibahas adalah Robot Line Follower Micro.



Robot Line Follower Microcontroller biasanya menggunakan microcontroller sebagai otak robot, microcontroller yang digunakan bisa dengan minimum sistem atau bisa juga menggunakan arduino namun kali ini robot yang akan dibahas dalam aplikasi ini menggunakan microcontroler tipe Atmega16/32. Apa perbedaan dengan analog? Robot Line Follower Microcontroller di program dengan sistem PID jadi jalanya robot lebih halus dan setting sensornya bisa otomatis mendeteksi garis hitam atau putih, disamping itu Robot Line Follower Microcontroller bisa diprogram sesuai arena/lintasan dengan bentuk garis yang berbeda-beda.

Instal aplikasinya sekarang juga klik INSTAL APLIKASI






Robot Line Follower Microcontroller dalam menyusuri arena ada yang diprogram melalui komputer ada pula yang langsung diprogram dirobotnya biasa disebut Path Planning, dalam perlombaan robot LF pun sudah banyak digunakan oleh peserta lomba.



Robot Line Follower Microcontroller ini masih sangat sederhana dan hanya sebagai dasar pembelajaran line follower karena masih diprogram dengan komputer jadi tidak dispesifikan khusus untuk lomba namun sudah cukup bagus untuk sekedar tau basic Robot Line Follower Microcontroller .
Instal aplikasinya sekarang juga klik INSTAL APLIKASI

sumber: http://www.robot-id.com/2017/03/aplikasi-android-tutorial-robot-line.html#more




6. Cara Merancang Sensor Robot Line Follower Dengan Transistor Switching
Robot.My.Id, Selamat pagi gan, para master & newbie robotics, kali ini saya +sudarmanto saputra  mau share sedikit tentang sensor pada robot line follower/line tracer. Artikel ini saya beri tema Cara Merancang Sensor Robot Line Follower Dengan Transistor Switching.

Sensor pada robot line follower/line tracer merupakan bagian yang paling penting dalam sebuah robot LF, tanpa sensor robot tidak akan bisa membaca garis pada arena, sensor juga bagian yang paling unik karena kita bisa membuat desainnya sekreatif mungkin dengan jumlah komponen sensor yang bervariasi.

Umumnya sensor robot line follower/line tracer terdiri dari Led super bright dan Photodioda, jumlahnya tergantung kebutuhan robot line follower/line tracernya bisa terdiri dari 7-8 sensor dan ada juga yang 14-16 sensor.


Gambar Layout PCB Sensor LF Tampak Atas




Gambar Layout PCB Sensor LF Tampak Bawah

Robot line follower/line tracer analog biasanya menggunakan lebih banyak sensor kisaran 8-16 sensor hal ini agar pembacaan garis lebih maksimal karena hanya menggunakan rangkaian IC Op-amp dan relay, sedangkan untuk robot line follower/line tracer microcontroller penggunaan 7-10 sensor sudah mencukupi, karena pengolahan sinyal sensornya bisa lewat ADC (Analog to Digital Converter) pada microcontroller.

Kali ini sensor yang akan kita rancang adalah 7 sensor yang terdiri dari 7 buah Led super bright dan 7 buah Photodioda dengan tambahan satu transistor untuk switching, fungsi transistor disini adalah untuk menghidupkan dan mematikan 7 buah sensor dengan memanfaatkan pin pada microcontroler, jadi pada port A microcontroller ADC yang kita gunakan hanya 7 pin ditambah 1 pin lagi untuk switching transistor jadi total untuk sensor ini 8 pin pada port A.

Untuk jarak antar sensor tergantung berapa cm ukuran garis pada arena, umumnya garis arena LF berukuran 1,5-3 cm untuk itu jarak antar sensor kita perkirakan agar bisa menjangkau lebar garis, jangan khawatir gan untuk desain ini saya menggunakan satu buah sensor untuk mendeteksi garis tengah arena sebagai acuan jadi untuk navigasinya bisa lebih mudah kita mengaturnya.

Berikut ini gambar desain sensornya (Desain by.mrpujar Mutekla)


Gambar Layout Desain PCB Sensor LF pada software Diptrase

Tidak ada komentar:

Posting Komentar