Anda di halaman 1dari 18

Laporan Line Follower Robot Lampiran

LINE FOLLOWER ROBOT

LAPORAN
Diajukan untuk memenuhi sebagian persyaratan
Kelulusan Mata Kuliah Robotik

Disusun oleh
BAYU PUTRA KUSUMA
NIM : 71 05 040 089

DEPARTEMEN PENDIDIKAN NASIONAL


JOINT PROGRAM BA MALANG
TEKNIK ELEKTRO
2008

Bayu Putra Kusuma MK 5-2 1


Laporan Line Follower Robot Lampiran

I KAJIAN TEORI

1.1 Penjelasan Umum

Gambar 1.1 Line Follower Robot

Line Follower Robot adalah sebuah alat yang dapat berjalan secara
otomatis mengikuti garis berdasarkan perubahan warna pada garis baik hitam
dan putih. Hasil dari perubahan warna tersebut menyebabkan nilai pada photo
diode berubah sehingga menyebabkan nilai yang masuk ke dalam port ADC
pada mikrokontroller berubah, dan nilai ADC tersebut yang akan kita oleh
menjadi sebuah input.
Line Follower ini mempunyai dua buah motor DC 6 Volt yang dapat
digerakkan maju dan mundur dengan menggunakan driver motor L293D, saat
sensor mendeteksi adanya garis hitam ditengah dari wilayah sensor maka
kedua motor akan berjalan searah jarum jam sehingga robot maju, dan ketika
sensor mendeteksi adanya garis hitam dipinggir wilayah sensor maka salah
satu motor akan berputar searah jarum jam dan yang satu berlawanan arah
jarum jam sehingga robot akan bergerak ke arah kanan atau kiri. Dan ketika
sensor tidak mendeteksi adanya garis pada wilayah sensor maka robot akan
berjalan mundur.
Robot ini dapat dikembangkan lagi menjadi sebuah aplikasi yang
berguna baik di masyarakat maupun di industri, contohnya sebagai sebuah alat
pengantar barang secara otomatis atau terprogram.

Bayu Putra Kusuma MK 5-2 2


Laporan Line Follower Robot Lampiran

1.2 ATMEGA 16

ATMEGA 16 adalah IC low-power yang dibuat berdasarkan arsitektur


dari RISC. Dengan memberikan perintah yang tepat dalam satu single clock
cycle, ATMEGA 16 dapat merespon perintah tersebut 1 MIPS per MHz untuk
mengoptimalkan konsumsi tegangan.

Gambar 1.2 Pin Out dari ATMEGA 16

IC ATMEGA 16 mempunyai empat buah port. Port A sebagai inputan


pngonversi dari sinyal analog menjadi sinyal digital. Port B dapat difungsikan
sebagai port download dan upload program. Port C sebagai port I/O biasa. Dan
port D dapat digunakan sebagai port komunikasi serial.
Minimum sistem pada robot ini kita menggunakan dua buah port yaitu
port A sebagai input, dan port C sebagai ouput. Setiap port pada minimum
sistem di robot telah kita lengkapi dengan pin Vcc, dan pin Ground pada pin 8
dan pin 9.

Bayu Putra Kusuma MK 5-2 3


Laporan Line Follower Robot Lampiran

1.3 Photo Diode Sebagai Pembagi Tegangan


Pengaplikasian sensor cahaya pada robot ini, dibuat dengan
menggunakan 4 buah infrared, dan 4 buah photo diode. Sebuah photo diode
akan berubah nilai R-nya tergantung dengan cahya yang dikenakan padanya.

Gambar 1.3. Grafik respon R terhadap Cahaya pada photo diode

Dengan demikian kata dapat membuat suatu pembagi tegangan dengan


menggunakan photo diode ini. Dapat dicontohkan dengan rangkaian berikut :

Gambar 1.4. Photo diode saat tidak mendapat cahaya.

Gambar 1.5. Photo diode saat mendapat cahaya.


Pada gambar terlihat pada saat LDR tidak mendapat cahaya nilai R pada
LDR tinggi, dan ketika mendapat cahaya nilai R dari LDR mengecil sehingga
tegangan pada R6 mendekati supply. Dapat dicontohkan jika pada saat tidak
mendapat cahaya LDR (RL) = 1 Kohm

Bayu Putra Kusuma MK 5-2 4


Laporan Line Follower Robot Lampiran

RL
VR6 = xVin
RL + R 6
1
= x9
1 +10
= 0,8 Volt
dan ketika mendapat cahaya nilai Rl = 20 Kohm maka ;
RL
VR6 = xVin
RL + R 6
20
= x9
20 +10
= 8.65 Volt (simulasi)
= 16,36 Volt (perhitungan)

Dengan cara tersebut maka dapat kita dapat memperoleh nilai yang
akan kita masukkan pada input ADC pada mikrokontroller.

1.4 Driver Motor L293D


L293 dan L293D adalah driver yang digunakan untuk arus tinggi. L293
dibuat untuk menyediakan arus yang dapat diarahkan hingga 1 A pada
tegangan 4,5 Volt 36 volt. Sedangkan L293D dibuat untuk menyediakan arus
yang dapat diarahkan hingga 600 mA pada tegangan 4,5 volt hingga 36 volt.
Kedua driver tersebut didisain untuk dapat mengendalikan beban yanng bersifat
induktif seperti relay, solenoid, dc, dan motor stepping bipolar, maupun beban
yang mempunyai tegangan tinggi dan arus tinggi dalam penggunaan positif-
supply.

Gambar 1.6. Tampak atas LM293

Bayu Putra Kusuma MK 5-2 5


Laporan Line Follower Robot Lampiran

II PERANCANGAN DAN PEMBUATAN

2.1 Bagian Utama Robot


2.2.1 Rangka Dan Body

Gambar 2.1 Rangka dari Line Follower

Bagian ini digunakan untuk meletakkan semua komponen yang


melengkapi robot seperti minimum sistem, baterai, sensor, driver motor,
dan lain – lain. Bagian ini juga yang menentukan kestabilan dari
pergerakkan robot tersebut.
2.2.2 Minimum System

Gambar 2.2 Minimum system ATMEGA 16 pada Line Follower

Bayu Putra Kusuma MK 5-2 6


Laporan Line Follower Robot Lampiran

Minimum sistem merupakan bagian utama dari robot ini, dimana


pada bagian ini digunakan untuk meletakkan semua komponen dari
mikrokontroller baik ATMEGA 16, port I/O, supply utama, dan lain – lain.

2.2.3 Sensor

Gambar 2.3 Sensor garis pada Line Follower

Sensor digunakan sebagai input dari robot, pada sensor ini


terdapat 4 buah photo diode, 4 buah infra red, dan beberapa resistor
sebagai pembagi tegangan. Pada gambar dibawah diperlihatkan salah
satu penggunaan photo diode dan infra red sebagai input.

Gambar 2.4 Perangkaian Photo Diode dan Infra Red

Dengan rangkaian diatas kita dapat memperoleh perbedaan nilai yang


ditangkap oleh photo diode melalui Output CN1, output tersebut kita jadikan
input pada mikrokontroller melalui port A (ADC)
Dari hasil percobaan didapatkan nilai perbandingan untuk setiap sensor
pada tabel dibawah :

Bayu Putra Kusuma MK 5-2 7


Laporan Line Follower Robot Lampiran

Tabel 2.1 Perbandingan Nilai pada sensor.


Keadaan (Volt)
Sensor
Putih Hitam
S1 0.04 0.08
S2 0.06 0.11
S3 0.05 0.1
S4 0.04 0.14

Tabel diatas menunjukkan nilai yang ditangkap oleh photo diode, terlihat
nilai – nilai tersebut sangat kecil untuk diperbandingkan, sehingga untuk
mendapatkan range yang lebih luas kita akan memodifikasi pada program
robot. Dengan catatan pada program yang kita modifikasi adalah nilai ADC dari
input yang didapat dari sensor.

2.2.4 Driver Motor

Gambar 2.5 Driver motor pada Line Follower

Driver motor digunakan untuk mengendalikan motor sehingga dapat


berputar searah maupun berlawanan jarum jam sehingga membuat
motor dapat bergerak maju dan mundur.

Bayu Putra Kusuma MK 5-2 8


Laporan Line Follower Robot Lampiran

Schematic dari driver motor diperlihatkan pada gambar dibawah

Gambar 2.6 Schematic Driver Motor

2.2.5 Motor

Gambar 2.7 Motor pada Line Follower

Motor yang kita gunakan disini adalah motor DC 6 Volt, tepatnya


motor untuk pemutar kaset, motor ini dapat dibeli ditoko elektronik
terdekat. Kelemahan dari motor ini adalah tidak mempunyai torsi yang
cukup besar untuk menahan beban, walaupun mempunyai kecepatan
yang cukup baik.

Bayu Putra Kusuma MK 5-2 9


Laporan Line Follower Robot Lampiran

2.2 Flow Chart Dan Cara Kerja


Flow Chart dari program robot
Start

inisialisasi

S1 < 135 && S2 > Tidak


135 && S3 > 135 &&
S4 < 135

Ya S1 < 135 && S2 > Tidak


135 && S3 < 135 &&
S4 < 135

Ya
S1 < 135 && S2 < Tidak
135 && S3 > 135 &&
S4 < 135

Ya
S1 > 135 && S2 < Tidak
135 && S3 < 135 &&
S4 < 135

Ya S1 > 135 && S2 > Tidak


135 && S3 < 135 &&
S4 < 135

Ya S1 > 135 && S2 > Tidak


135 && S3 < 135 &&
S4 < 135

Ya S1 > 135 && S2 >


135 && S3 < 135 &&
S4 < 135

Ya

Tidak

Robot Belok
Robot Maju Robot Belok Kiri Robot mundur
Kanan

Looping

End

Bayu Putra Kusuma MK 5-2 10


Laporan Line Follower Robot Lampiran

Keterangan Flow Chart


< 135 : sensor medeteksi warna putih
> 135 : sensor medeteksi warna hitam
Robot maju : motor kanan berputar searah jarum jam, motor kiri berputar
searah jarum jam (dilihat pada satu sisi)
Robot belok kiri : motor kanan berputar searah jarum jam, motor kiri
berputar berlawanan jarum jam (dilihat pada satu sisi)
Robot belok kanan : motor kanan berputar berlawanan jarum jam, motor kiri
berputar searah jarum jam (dilihat pada satu sisi)
Robot mundur : motor kanan berputar berlawanan jarum jam, motor kiri
berputar berlawanan jarum jam (dilihat pada satu sisi)

Cara Kerja Robot


- Pada saat sensor S2 dan S3 mendeteksi warna hitam serta S1 dan S4
mendeteksi warna putih maka robot akan bergerak maju sebab S2 dan
S3 bernilai > 135 dan S1, S4 < 135
- Ada tiga kondisi untuk robot agar belok ke kiri yaitu pada saat S1 > 135,
atau S1 dan S2 > dari 135, atau S1, S2, dan S3 > 135
- Dan ada tiga kondisi juga untuk robot agar belok ke kanan yaitu pada
saat S4 > 135, atau S4 dan S3 > dari 135, atau S4, S3, dan S2 > 135
- Untuk perintah mundur akan dieksekusi pada saat sensor membaca S1,
S2, S3, S4 < 135 atau S1, S4 > 135 dan S2, S3 > 135.

Tabel 2.2 Input Output dari robot


Input Output

Sensor Port A Pin Driver Port C Putaran Motor

S1 Pin 1 1A Pin 1 M Kanan CW

S2 Pin 3 2A Pin 3 M Kanan CCW

S3 Pin 5 3A Pin 5 M Kiri CCW

S4 Pin 7 4A Pin 7 M Kiri CW

Bayu Putra Kusuma MK 5-2 11


Laporan Line Follower Robot Lampiran

2.3 Program Robot


#include <mega16.h>
#include <delay.h>
#include <stdio.h>
#define ADC_VREF_TYPE 0x20
int i;
int mj,md;
// Read the 8 most significant bits
// of the AD conversion result

unsigned char read_adc(unsigned char adc_input)


{
ADMUX=adc_input | (ADC_VREF_TYPE & 0xff);
// Delay needed for the stabilization of the ADC
input voltage
delay_us(10);
// Start the AD conversion
ADCSRA|=0x40;
// Wait for the AD conversion to complete
while ((ADCSRA & 0x10)==0);
ADCSRA|=0x10;
return ADCH;
}

void maju()
{
PORTC=0x77;
delay_ms(70);
PORTC=0xFF;
delay_ms(100);

}
void mundur()
{
PORTC=0xDD;
delay_ms(70);
PORTC=0xFF;
delay_ms(100);

}
void blkkiristgh()
{
PORTC=0xF7;
delay_ms(50);
PORTC=0xFF;
delay_ms(100);
i=0;
}

Bayu Putra Kusuma MK 5-2 12


Laporan Line Follower Robot Lampiran

void blkkananstgh()
{
PORTC=0x7F;
delay_ms(50);
PORTC=0xFF;
delay_ms(100);
i=0;
}
// Declare your global variables here
void main(void)
{
unsigned int ADCIN1, ADCIN3, ADCIN5, ADCIN7,S4,S3,S2,S1;

// ADC initialization
// ADC Clock frequency: 750.000 kHz
// ADC Voltage Reference: AREF pin
// ADC Auto Trigger Source: None
// Only the 8 most significant bits of
// the AD conversion result are used
ADMUX=ADC_VREF_TYPE & 0xff;
ADCSRA=0x84;

/*
// USART initialization
// Communication Parameters: 8 Data, 1 Stop, No Parity
// USART Receiver: Off
// USART Transmitter: On
// USART Mode: Asynchronous
// USART Baud rate: 9600UCSRA=0x00;
UCSRB=0x48;
UCSRC=0x86;
UBRRH=0x00;
UBRRL=0x4D; */

DDRC=0xFF;
DDRB=0xFF;
while (1)
{
ADCIN1=read_adc(1);
ADCIN3=read_adc(3);
ADCIN5=read_adc(5);
ADCIN7=read_adc(7);

ADCIN1=ADCIN1+2; // 2 adalah penyamaan nilai

S4=ADCIN7*20; // 20 adalah penguatan nilai


S3=ADCIN5*20;
S2=ADCIN3*20;
S1=ADCIN1*20;

Bayu Putra Kusuma MK 5-2 13


Laporan Line Follower Robot Lampiran

//==========KONDISI BELOK KANAN=========================


if (S1 > 135 && S2 < 135 && S3 < 135 && S4 < 135)
{ PORTC=0x7D;
delay_ms(50);
PORTC=0xFF;
delay_ms(100);
i=0; // belok kanan full
}

else if (S1 > 135 && S2 > 135 && S3 < 135 && S4 < 135)
blkkananstgh();

else if (S1 > 135 && S2 > 135 && S3 > 135 && S4 < 135)
blkkananstgh();

//=================KONDISI BELOK
KIRI=====================
else if (S1 < 135 && S2 < 135 && S3 < 135 && S4 > 135)
{
PORTC=0xD7;
delay_ms(50);
PORTC=0xFF;
delay_ms(100);
i=0; // belok kiri full
}

else if (S1 < 135 && S2 < 135 && S3 > 135 && S4 > 135)
blkkiristgh();

else if (S1 < 135 && S2 > 135 && S3 > 135 && S4 > 135)
blkkiristgh();

//==================KONDISI MAJU===========================

else if (S2 >135 && S3 > 135 && S1 < 135 && S4 < 135)
{
maju();
mj=mj+1;
}
else if (S2 >135 && S3 < 135 && S1 < 135 && S4 < 135)
{
maju();
mj=mj+1;
}
else if (S2 < 135 && S3 > 135 && S1 < 135 && S4 < 135)
{
maju();
mj=mj+1;
}
else if (S2 > 135 && S3 > 135 && S1 > 135 && S4 > 135)
{

Bayu Putra Kusuma MK 5-2 14


Laporan Line Follower Robot Lampiran

maju();
mj=mj+1;
}

//================KONDISI MUNDUR=======================

else if (S2 < 135 && S3 < 135 && S1 < 135 && S4 <
135)
{
mundur();
md=md+2;
}
else if (S2 < 135 && S3 < 135 && S1 > 135 && S4 >
135)
{
mundur();
md=md+2;
}

else
PORTC=0x77;

if (md>mj)
{
mj=0;
md=0;
for(i=1;i>1000;i++) // perintah mundur jika
menemukan jalan buntu beberapa kali
{
PORTC=0xDD;
}
}

//==================KOMUNIKASI TO
HYPERTERMINAL=============
/*
printf("S4 = %u ",S4);
printf("S3 = %u ",S3);
printf("S2 = %u ",S2);
printf("S1 = %u ",S1);
printf("mj = %u ",mj);
printf("md = %u \r ",md); */

};
}

Bayu Putra Kusuma MK 5-2 15


Laporan Line Follower Robot Lampiran

Schematic Sensor Robot

Schematic Minimum Sistem AVR

Bayu Putra Kusuma MK 5-2 16


Laporan Line Follower Robot Lampiran

Schematic Motor Driver

Bayu Putra Kusuma MK 5-2 17


Laporan Line Follower Robot Lampiran

6.50

2.00
3.50

7.00

13.00

10.00 0.83

Gambar Robot Base tampak atas

7.00
6.50
4.79

Gambar Robot Base tampak samping

Bayu Putra Kusuma MK 5-2 18