Realisasi Prototipe Robot Pengikut Jalur Hitam.

REALISASI PROTOTIPE ROBOT PENGIKUT JALUR HITAM
Disusun Oleh:
Nama :

Totok Wahyudi

Nrp

0422084

:

Jurusan Teknik Elektro, Fakultas Teknik, Universitas Kristen Maranatha,
Jl. Babakan Jeruk 1 no.92, Bandung, Indonesia,
email : [email protected]

ABSTRAK

Kemajuan teknologi telah meningkatkan kualitas hidup manusia. Salah
satu hasilnya adalah robot. Keberadaan robot telah banyak membantu manusia
untuk meringankan pekerjaan. Robot diciptakan dalam bentuk dan ukuran yang

beraneka ragam sesuai dengan tujuan robot itu diciptakan. Salah satu bentuk robot
yang paling populer adalah robot beroda. Perancangan robot beroda ini pada
umumnya berbentuk seperti mobil.
Tugas Akhir ini merealisasikan sebuah robot pengikut garis berwarna
hitam. Robot pengikut garis berwarna hitam ini merupakan suatu bentuk robot
bergerak otonom yang mempunyai misi mengikuti suatu garis pandu yang telah
ditentukan secara otonom. Dalam perancangan dan implementasinya, masalahmasalah yang harus dipecahkan adalah sistem penglihatan robot, arsitektur
perangkat keras yang menyangkut perangkat elektronik dan mekanik, dan
organisasi perangkat lunak untuk basis pengetahuan dan pengendalian. Tujuan
Tugas Akhir ini adalah merancang dan merealisasikan suatu robot yang mampu
mengikuti

garis

berwarna

hitam

dengan


menggunakan

mikrokontroler

ATMEGA8535 dan sensor Hamamatsu P5587. Sistem mekanik robot ini
mengadopsi sistem manuver pada mobil dengan menggunakan tiga roda.

i

Hasilnya memperlihatkan bahwa robot mampu mengikuti garis berwarna
hitam pada jalur lurus sejauh 2 meter dengan kecepatan maksimum mencapai
0,17 meter per detik. Prototipe robot juga mampu mengikuti garis berwarna hitam
pada jalur kotak-kotak dengan koordinat (x,y) dengan kecepatan maksimum
mencapai 0,15 meter per detik. Prototipe robot ini memiliki kemampuan bergerak
pada jarak terpendek dan dapat kembali pada jalurnya ketika jalur hitam terlepas
dari daerah pendeteksian sensor.

Kata kunci : Pengikut jalur hitam, mikrokontroler ATMEGA8535, sensor
Hamamatsu P5587, jalur hitam berbentuk kotak-kotak dengan
koordinat (x,y), jarak terpendek.


ii

REALIZATION OF BLACK LINE FOLLOWER ROBOT PROTOTYPE
Composed by:
Name :

Totok Wahyudi

Nrp

0422084

:

Electrical Engineering, Maranatha Christian University,
Jl. Babakan Jeruk 1 no.92, Bandung, Indonesia,
email : [email protected]

ABSTRACT


The development of technology has increased human life quality. One of
the result is robot. The exsistance of robot has helped human to do their work and
make it easier to do. Robot was created in many form and size compatible with
robot’s purposes itself. One of the famous form of robot is wheel robot. In
common, the form of wheel robot likes car.
The Final Project is to realize a black line follower robot. Black line
follower robot is one of autonomous mobile robot that has mission following
outonoumosly the guided line. In its design and implementation, problems that
should be solve are system robot vision, architecture of hardware including
electronics and mechanics, and organization of software for knowledge base and
controll. The goal of this Final Project is to design and realize a black line
follower robot by using microcontroller ATMEGA8535 and Hamamatsu P5587
censor. The mechanical system of the robot adopts maneuverability system of car
by using three wheel.
Result shows the robot can follow the black straight line with radius 2
metre has maximum velocity until 0,17 meter per second. Beside that, robot can
follow the black line in the form of coordinate (x,y) with maximum velocity until

iii


0,15 meter per second. The capability of robot can move in the shortest distance
and back to the line when the black line is lost from sensor area detection.

Keywords : Black line follower, microcontroller ATMEGA8535, Hamamatsu
P5587 censor, the black line in the form of coordinate (x,y), the
shortest distance.

iv

KATA PENGANTAR

Segala puji syukur ke hadirat Tuhan Yang Maha Esa atas segala rahmat
dan karunia-Nya sehingga penulis mampu menyelesaikan Tugas Akhir ini dengan
baik dan tepat pada waktunya di Laboratorium Fisika dan Instrumentasi. Laporan
Tugas Akhir yang berjudul “REALISASI PROTOTIPE ROBOT PENGIKUT
JALUR HITAM” ini disusun untuk memenuhi persyaratan program studi sarjana
strata satu (S-1) Jurusan Teknik Elektro, Fakultas Teknik Universitas Kristen
Maranatha Bandung.
Selama pelaksanaan Tugas Akhir penulis telah mendapat banyak

bimbingan, dorongan, dan bantuan yang berarti dari berbagai pihak. Oleh karena
itu, penulis tidak lupa mengucapkan terima kasih kepada pihak-pihak yang telah
membantu dan mendukung dalam pengerjaan Tugas Akhir :
1. Muliady, ST., MT. selaku dosen pembimbing Tugas Akhir yang telah
menawarkan topik, menyumbangkan pengetahuan, memberikan masukan
berupa ide-ide, kritik, serta saran, sehingga Tugas Akhir ini dapat diselesaikan
tepat pada waktunya dan juga selaku dosen wali.
2. Dr. Erwani Merry Sartika, ST., MT., Ir. Aan Darmawan, MT., Drs. Zaenal
Abidin, M.Sc. selaku penguji yang telah memberikan ide, kritik, dan saran
pada saat seminar dan sidang Tugas Akhir.
3. Dr. Ir. Daniel Setiadikarunia, MT. selaku Kepala Jurusan Teknik Elektro
Universitas Kristen Maranatha.
4. Ir. Anita Supartono, M.Sc. selaku Koordinator Tugas Akhir Jurusan Teknik
Elektro Universitas Kristen Maranatha.
5. Keluarga yang selalu memberikan dukungan, baik doa, moral dan materiil
sehingga Tugas Akhir ini dapat diselesaikan.
6. Rekan-rekan Laboratorium Fisika dan Instrumentasi Universitas Kristen
Maranatha yang telah banyak membantu.

v


7. Staf Pengajar Jurusan Teknik Elektro Universitas Kristen Maranatha yang
telah membekali penulis dengan pengetahuan yang berguna dalam
penyusunan Tugas Akhir ini.
8. Staf Tata Usaha Jurusan Teknik Elektro Universitas Kristen Maranatha.
9. Keluarga dari Rina Andriyani serta Sdr. Rina Andriyani yang terus memberi
perhatian, dorongan, dan doa kepada penulis selama ini.
10. Reymond Wahyudi, Henry Setiadi, Shanti Purnama, Yakub Hartanto, Angkar
Wijaya, Jonatan Kurnia, Rico Tedja, Deni Purnawan beserta teman-teman lain
yang ikut memberikan semangat, ide dan saran.
11. Semua rekan yang telah membantu penulis baik secara langsung maupun tidak
langsung.

Penulis sadar sepenuhnya bahwa masih banyak kekurangan dan kesalahan
dalam penulisan laporan Tugas Akhir ini. Oleh karena itu, dengan segala
kerendahan hati, penulis mengharapkan saran dan kritik yang membangun yang
dapat menyempurnakan laporan Tugas Akhir ini.
Semoga laporan Tugas Akhir ini dapat bermanfaat bagi semua pihak yang
membutuhkan.


Bandung, 4 September 2008

Penulis

vi

DAFTAR ISI

Halaman
ABSTRAK .................................................................................................

i

ABSTRACT ................................................................................................

iii

KATA PENGANTAR ................................................................................

v


DAFTAR ISI ...............................................................................................

vii

DAFTAR TABEL .......................................................................................

x

DAFTAR GAMBAR ..................................................................................

xii

BAB I

PENDAHULUAN

I.1 Latar Belakang ......................................................................................

1


I.2 Identifikasi Masalah ..............................................................................

2

I.3 Tujuan ...................................................................................................

2

I.4 Pembatasan Masalah ..............................................................................

2

I.5 Spesifikasi Alat ......................................................................................

3

I.6 Sistematika Penulisan ............................................................................

4


BAB II

LANDASAN TEORI

II.1 Pengantar Robot ..................................................................................

5

II.1.1 Sejarah dan Perkembangan Robot .................................................

6

II.1.2 Komponen Dasar untuk Merancang Robot ...................................

6

II.1.3 Jenis Robot Beroda (Wheel Robot) Berdasarkan Sistem
Gerak .............................................................................................

7

II.1.4 Keuntungan Penggunaan Robot ....................................................

10

II.2 Hamamatsu P5587 ................................................................................

11

II.2.1 Fitur Hamamatsu P5587 ................................................................

12

II.2.2 Konfigurasi Pin Hamamatsu P5587 ..............................................

12

II.3 LCD (Liquid Crystal Display) ..............................................................

13

II.4 Jembatan H (H-Bridge) ........................................................................

15

vii

II.5 Mikrokontroler ATMEGA8535 ...........................................................

17

II.5.1 Fitur ATMEGA8535 .....................................................................

18

II.5.2 Arsitektur Mikrokontroler ATMEGA8535 ...................................

18

II.5.3 Konfigurasi Pin Mikrokontroler ATMEGA8535 ...........................

20

II.5.4 Peta Memori ...................................................................................

21

II.5.5 Port I/O Mikrokontroler ATMEGA8535 .......................................

22

II.5.6 Pulse Width Modulation (PWM)....................................................

23

BAB III PERANCANGAN DAN REALISASI
III.1 Diagram Blok ......................................................................................

27

III.2 Perancangan dan Realisasi Perangkat Keras ......................................

28

III.2.1 Rangkaian Pengontrol Prototipe Robot Pengikut
Jalur Hitam ....................................................................................

28

III.2.2 Pengujian Sensor Hamamatsu P5587 ...........................................

30

III.2.3 Perancangan dan Realisasi Rangkaian Hamamatsu P5587 ...........

31

III.2.4 Perancangan dan Realisasi Rangkaian IC L293D .........................

32

III.2.5 Perancangan dan Realisasi Prototipe Robot Pengikut
Jalur Hitam ....................................................................................

34

III.3 Perancangan Perangkat Lunak ............................................................

37

III.3.1 Algoritma Sistem Gerak pada Prototipe Robot .............................

37

III.3.2 Diagram Alir (Flowchart) pada Prototipe Robot ..........................

40

III.3.2.1 Diagram Alir (Flowchart) pada Fungsi Keypad ....................

40

III.3.2.2 Diagram Alir untuk Algoritma Sistem Gerak
pada Tiap Kondisi Awal ........................................................

42

III.3.2.3 Diagram Alir pada Proses Counter ........................................

46

III.3.2.4 Diagram Alir pada Proses Tracking .......................................

48

BAB IV PENGUJIAN
IV.1 Pengujian Prototipe Robot pada Jalur Lurus Berwarna Hitam
dengan Jarak 2 Meter .........................................................................

viii

50

IV.1.1 Pengujian Prototipe Robot pada Jalur Lurus Berwarna
Hitam dengan Jarak 2 Meter Tanpa Diberi Gangguan .................

50

IV.1.2 Pengujian Prototipe Robot pada Jalur Lurus Berwarna
Hitam Berjarak 2 Meter dengan Diberi Gangguan
Berupa Dorongan Berulang ..........................................................

52

IV.1.3 Pengujian Prototipe Robot pada Jalur Lurus Berwarna
Hitam Berjarak 2 Meter dengan Diberi Gangguan
Berupa Dorongan pada Awal Perjalanan ......................................

53

IV.2 Pengujian Prototipe Robot pada Jalur Kotak-kotak
dengan Koordinat (x,y) Sesuai Algoritma Sistem Gerak ...................

54

IV.2.1 Pengujian Prototipe Robot pada Jalur Kotak-kotak
dengan Koordinat (x,y) untuk Kondisi Awal
Menghadap Positive Imaginer ......................................................

55

IV.2.2 Pengujian Prototipe Robot pada Jalur Kotak-kotak
dengan Koordinat (x,y) untuk Kondisi Awal
Menghadap Negative Imaginer .....................................................

57

IV.2.3 Pengujian Prototipe Robot pada Jalur Kotak-kotak
dengan Koordinat (x,y) untuk Kondisi Awal
Menghadap Positive Real .............................................................

58

IV.2.4 Pengujian Prototipe Robot pada Jalur Kotak-kotak
dengan Koordinat (x,y) untuk Kondisi Awal
Menghadap Negative Real ............................................................

BAB V

59

KESIMPULAN DAN SARAN

V.1 Kesimpulan ..........................................................................................

67

V.2 Saran ....................................................................................................

68

DAFTAR PUSTAKA .................................................................................

69

LAMPIRAN A LISTING PROGRAM
LAMPIRAN B DATASHEET MIKROKONTROLER
LAMPIRAN C DATASHEET HAMAMATSU P5587
LAMPIRAN D DATASHEET IC L293D

ix

DAFTAR TABEL

Halaman
Tabel 2.1 Konfigurasi Pin Out LCD.............................................................

14

Tabel 2.2 Konfigurasi Masukan – Keluaran.................................................

23

Tabel 3.1 Tegangan Keluaran (Vo) pada Sensor Hamamatsu P5587……..

30

Tabel 3.2 Fungsi Motor DC dalam Sistem Gerak Prototipe Robot ............

33

Tabel 3.3 Algoritma Sistem Gerak Prototipe Robot
Pengikut Jalur Hitam……………………………………………

39

Tabel 4.1 Pengujian Prototipe Robot pada Jalur Lurus Berwarna
Hitam dengan Jarak 2 Meter Tanpa Diberi Gangguan…………… 51
Tabel 4.2 Pengujian Prototipe Robot pada Jalur Lurus Berwarna
Hitam Berjarak 2 Meter dengan Diberi Gangguan
Berupa Dorongan Berulang………………………………………. 52
Tabel 4.3 Pengujian Prototipe Robot pada Jalur Lurus
Berwarna Hitam Berjarak 2 Meter dengan
Diberi Gangguan Berupa Dorongan pada Awal Perjalanan……... 53
Tabel 4.4 Waktu Tempuh Prototipe Robot untuk Kondisi
Awal Menghadap Positive Imaginer……………………………. 56
Tabel 4.5 Kecepatan Rata-rata dan Tingkat Kegagalan Prototipe Robot
untuk Kondisi Awal Menghadap Positive Imaginer…………….. 56

x

Tabel 4.6 Waktu Tempuh Prototipe Robot untuk Kondisi
Awal Menghadap Negative Imaginer……………………………

57

Tabel 4.7 Kecepatan Rata-rata dan Tingkat Kegagalan Prototipe Robot
untuk Kondisi Awal Menghadap Negative Imaginer………………. 58
Tabel 4.8 Waktu Tempuh Prototipe Robot
untuk Kondisi Awal Menghadap Positive Real…………………..

58

Tabel 4.9 Kecepatan Rata-rata dan Tingkat Kegagalan Prototipe Robot
untuk Kondisi Awal Menghadap Positive Real………………….... 59
Tabel 4.10 Waktu Tempuh Prototipe Robot
untuk Kondisi Awal Menghadap Negative Real……………………. 60
Tabel 4.11 Kecepatan Rata-rata dan Tingkat Kegagalan Prototipe Robot
untuk Kondisi Awal Menghadap Negative Real…………………... 60

xi

DAFTAR GAMBAR

Halaman
Gambar 1.1 Pola Jalur Hitam Berbentuk Kotak-kotak
dengan Koordinat (x,y)…………………………………...

2

Gambar 1.2 Posisi Prototipe Robot terhadap Jalur Hitam........................

3

Gambar 2.1 Sistem Gerak Differential Drive…………………………...

7

Gambar 2.2 Sistem Gerak Tricycle Drive……………………………….

8

Gambar 2.3 Sistem Gerak Synchronous Drive…………………………

8

Gambar 2.4 Penggunaan Roda Omni-Directional……………………….

9

Gambar 2.5 Sistem Gerak Holonomic Drive……………………………..

9

Gambar 2.6 Bentuk Fisik dan Dimensi Hamamatsu P5587………………

11

Gambar 2.7 Konfigurasi Pin Hamamatsu P5587........................................

12

Gambar 2.8 Gambar LCD 16x2..................................................................

14

Gambar 2.9 Rangkaian Jembatan H............................................................

15

Gambar 2.10 Rangkaian Jembatan H dengan Kondisi
Motor Berputar Searah Jarum Jam..........................................

16

Gambar 2.11 Rangkaian Jembatan H dengan Kondisi
Motor Berputar Berlawanan Arah Jarum Jam..........................

16

Gambar 2.12 Diagram Blok Arsitektur ATMEGA8535................................

19

Gambar 2.13 Pin ATMEGA8535 PDIP........................................................

20

xii

Gambar 2.14 Konfigurasi Memori Data AVR ATMEGA8535....................

21

Gambar 2.15 Memori Program AVR ATMEGA8535.................................

22

Gambar 2.16 Clear Timer On Compare Match……………………………

24

Gambar 2.17Phase and Frequency Correct PWM………………………..

25

Gambar 3.1 Diagram Blok Prototipe Robot Pengikut Jalur Hitam……….

28

Gambar 3.2 Skematik Rangkaian pada Prototipe Robot
secara Keseluruhan ………………………………………….

29

Gambar 3.3 Skematik Rangkaian Hamamatsu P5587 dengan
Mikrokontroler ATMEGA8535…………………………….

31

Gambar 3.4 Sketsa dan Realisasi Rangkaian Hamamatsu P5587………..

32

Gambar 3.5 Skematik Rangkaian IC L293D dengan
Mikrokontroler ATMEGA8535…………………………….

34

Gambar 3.6 Roda Bebas Berbentuk Bola………………………………..

35

Gambar 3.7(a) Prototipe Robot Tampak Samping……………………….

36

Gambar 3.7(b) Prototipe Robot Tampak Atas……………………………

36

Gambar 3.7(c) Prototipe Robot Tampak Bawah…………………………

36

Gambar 3.7(d) Prototipe Robot Tampak Depan…………………………

37

Gambar 3.8 Kondisi Awal pada Prototipe Robot………………………

37

Gambar 3.9 Diagram Alir pada Prototipe Robot untuk
Koordinat Awal (x1,y1)…………………………………..

xiii

40

Gambar 3.10 Diagram Alir pada Prototipe Robot untuk
Koordinat Tujuan (x2,y2)…………………………………

42

Gambar 3.11(a) Algoritma Sistem Gerak pada Prototipe Robot
untuk Kondisi Awal Menghadap Positive Imaginer……

43

Gambar 3.11(b) Algoritma Sistem Gerak pada Prototipe Robot
untuk Kondisi Awal Menghadap Negative Imaginer…....

44

Gambar 3.11(c) Algoritma Sistem Gerak pada Prototipe Robot
untuk Kondisi Awal Menghadap Positive Real…………..

45

Gambar 3.11(d) Algoritma Sistem Gerak pada Prototipe Robot
untuk Kondisi Awal Menghadap Negative Real…………..

46

Gambar 3.12(a) Diagram Alir pada Proses Counter Sumbu X…………..

47

Gambar 3.12(b) Diagram Alir pada Proses Counter Sumbu Y…………..

47

Gambar 3.13 Diagram Alir pada Proses Tracking……………………….

49

Gambar 4.1 Jalur Warna Hitam dengan Jarak 2 Meter…………………….

50

Gambar 4.2 Pola Pergerakan Prototipe Robot pada Jalur Lurus Berwarna
Hitam dengan Jarak 2 Meter Tanpa Diberi Gangguan………… 51
Gambar 4.3 Pola Pergerakan Prototipe Robot pada Jalur Lurus Berwarna
Hitam Berjarak 2 Meter dengan Diberi Gangguan
Berupa Dorongan Berulang…………………………………....

xiv

53

Gambar 4.4 Pola Pergerakan Prototipe Robot pada Jalur Lurus Berwarna
Hitam Berjarak 2 Meter dengan Diberi Gangguan
Berupa Dorongan pada Awal Perjalanan……………………….. 54
Gambar 4.5 Jalur Hitam Berbentuk Kotak-kotak dengan Koordinat (x,y)….. 55
Gambar 4.6 Daerah Rawan Kesalahan pada Jalur Hitam………………..

61

Gambar 4.7 Kondisi Jalur Hitam yang Mempengaruhi Pergerakan
pada Prototipe Robot…………………………………………

61

Gambar 4.8 Pola Gerak pada Prototipe Robot dari Koordinat A1
Menuju Koordinat C3 dengan Kondisi Awal
Menghadap Sumbu Negative Real…………………………

63

Gambar 4.9 Pola Gerak pada Prototipe Robot dari Koordinat A3
Menuju Koordinat C1 dengan Kondisi Awal
Menghadap Sumbu Positive Imaginer……………………….

64

Gambar 4.10 Pola Gerak pada Prototipe Robot dari Koordinat C1
Menuju Koordinat A3 dengan Kondisi Awal
Menghadap Sumbu Positive Imaginer………………………..

65

Gambar 4.11 Pola Gerak pada Prototipe Robot dari Koordinat B1
Menuju Koordinat B3 dengan Kondisi Awal
Menghadap Sumbu Negative Imaginer……………………….

xv

66

Lampiran A
LISTING PROGRAM

/*****************************************************
This program was produced by the
CodeWizardAVR V1.25.3 Standard
Automatic Program Generator
© Copyright 1998-2007 Pavel Haiduc, HP InfoTech s.r.l.
http://www.hpinfotech.com
Project :
Version :
Date : 8/9/2008
Author : F4CG
Company : F4CG
Comments:
Chip type
: ATmega8535
Program type
: Application
Clock frequency : 8.000000 MHz
Memory model
: Small
External SRAM size : 0
Data Stack size : 128
*****************************************************/
#include
#include
#include
#include
#include
char temp;
int x1,y1,x2,y2,x,y,i,j,k;
bit s1,s2,s3,s4,s5;
// Alphanumeric LCD Module functions
#asm
.equ __lcd_port=0x15 ;PORTC
#endasm
#include
// Timer 0 output compare interrupt service routine
interrupt [TIM0_COMP] void timer0_comp_isr(void)
{
// Place your code here
s1=PINA.0;
s2=PINA.1;
s3=PINA.2;
s4=PINA.3;
s5=PINA.4;
}
void kanan(void)
{PORTD=0b00110001;}
void kiri(void)
{PORTD=0b00110100;}
void maju(void)

{PORTD=0b00110101;}
void mundur(void)
{PORTD=0b00111010;}
void stop(void)
{PORTD=0b00110000;}

// Declare your global variables here
void main(void)
{
// Declare your local variables here
// Input/Output Ports initialization
// Port A initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTA=0x00;
DDRA=0x00;
// Port B initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTB=0x00;
DDRB=0x00;
// Port C initialization
// Func7=Out Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0=Out
// State7=0 State6=0 State5=0 State4=0 State3=0 State2=0 State1=0 State0=0
PORTC=0x00;
DDRC=0xFF;
// Port D initialization
// Func7=Out Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0=Out
// State7=0 State6=0 State5=0 State4=0 State3=0 State2=0 State1=0 State0=0
PORTD=0x00;
DDRD=0xFF;
// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: 7.813 kHz
// Mode: CTC top=OCR0
// OC0 output: Disconnected
TCCR0=0x0D;
TCNT0=0x00;
OCR0=0x26;
// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: 125.000 kHz
// Mode: Ph. & fr. cor. PWM top=ICR1
// OC1A output: Non-Inv.
// OC1B output: Non-Inv.
// Noise Canceler: Off

// Input Capture on Falling Edge
// Timer 1 Overflow Interrupt: Off
// Input Capture Interrupt: Off
// Compare A Match Interrupt: Off
// Compare B Match Interrupt: Off
TCCR1A=0xA0;
TCCR1B=0x13;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x02;
ICR1L=0x71;
OCR1AH=0x01;
OCR1AL=0x38;
OCR1BH=0x01;
OCR1BL=0x38;
// Timer/Counter 2 initialization
// Clock source: System Clock
// Clock value: Timer 2 Stopped
// Mode: Normal top=FFh
// OC2 output: Disconnected
ASSR=0x00;
TCCR2=0x00;
TCNT2=0x00;
OCR2=0x00;
// External Interrupt(s) initialization
// INT0: Off
// INT1: Off
// INT2: Off
MCUCR=0x00;
MCUCSR=0x00;
// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0x02;
// Analog Comparator initialization
// Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0x80;
SFIOR=0x00;
// LCD module initialization
lcd_init(16);
// Global enable interrupts
#asm("sei")

while (1)
{
// Place your code here
koordinat_satu:

temp=scan_keypadB();
switch (temp)
{
case 1: lcd_putsf("1"); delay_ms(1000); y1=1;break;
case 2: lcd_putsf("2"); delay_ms(1000); y1=2; break;
case 3: lcd_putsf("3"); delay_ms(1000); y1=3; break;
case 'A': lcd_clear(); lcd_putsf("A"); delay_ms(1000); x1=1; break;
case 'B': lcd_clear(); lcd_putsf("B"); delay_ms(1000); x1=2; break;
case 'C': lcd_clear(); lcd_putsf("C"); delay_ms(1000); x1=3; break;
case '*': lcd_putsf(" menuju "); delay_ms(1000); goto koordinat_dua; break;
case '#': lcd_clear();lcd_putsf("clear");delay_ms(3000);lcd_clear();lcd_putsf(""); goto koordinat_satu; break;
}
delay_ms(1);
goto koordinat_satu;
//===============================================================================
//================================================================================
//================================================================================
koordinat_dua:
temp=scan_keypadB();
switch (temp)
{
case 1: lcd_putsf("1"); delay_ms(1000); y2=1; break;
case 2: lcd_putsf("2"); delay_ms(1000); y2=2; break;
case 3: lcd_putsf("3"); delay_ms(1000); y2=3; break;
case 'A': lcd_putsf("A"); delay_ms(1000); x2=1; break;
case 'B': lcd_putsf("B"); delay_ms(1000); x2=2; break;
case 'C': lcd_putsf("C"); delay_ms(1000); x2=3; break;
case 4: lcd_clear();lcd_putsf("GO!!!"); goto arah_imajiner_positif; break;
case 5: lcd_clear();lcd_putsf("GO!!!"); goto arah_imajiner_negatif; break;
case 6: lcd_clear();lcd_putsf("GO!!!"); goto arah_real_positif; break;
case 7: lcd_clear();lcd_putsf("GO!!!"); goto arah_real_negatif; break;
case '#':lcd_clear();lcd_putsf("clear");delay_ms(3000);lcd_clear();lcd_putsf(""); goto koordinat_satu; break;
}
delay_ms(1);
goto koordinat_dua;
//================================================================================
//================================================================================
//================================================================================
//================================================================================
//================================================================================
arah_imajiner_positif:
delay_ms(1000);
x=x1-x2;
y=y1-y2;
goto sistem_gerak;

//================================================================================
//================================================================================
arah_imajiner_negatif:
delay_ms(1000);
x=x2-x1;
y=y2-y1;
goto sistem_gerak;
//================================================================================
//================================================================================
arah_real_positif:
delay_ms(1000);
x=y2-y1;
y=x1-x2;
goto sistem_gerak;
//================================================================================
//================================================================================

arah_real_negatif:
delay_ms(1000);
x=y1-y2;
y=x2-x1;
goto sistem_gerak;

//================================================================================
//================================================================================
//================================================================================
//================================================================================
sistem_gerak:
if(y0)
{
if(y>0 && x>0)
{
sumbu_x_satu_empat:
kiri();
if(s1==1 && s2==0 && s3==0 && s4==0 && s5==1)
{goto counter_empat;}
goto sumbu_x_satu_empat;
}
//================================================================================
//================================================================================
counter_empat:
PORTD=0b00110101;
delay_ms(10);
counter_empat_satu:
k=0;
if(s1==0 && s2==0 && s3==0 && s4==0 && s5==0)
{
k=k+1;
x=abs(x)-k;
if(x==0)
{goto tiga;}
perintah_empat:
if(s1==0 && s2==0 && s3==0 && s4==0 && s5==0)
{
PORTD=0b00110101;
if((s1==1 && s2==0 && s3==0 && s4==0 && s5==1) || (s1==0 && s2==0 && s3==0 && s4==1
&& s5==1) || (s1==0 && s2==0 && s3==1 && s4==1 && s5==1) || (s1==0 && s2==1 && s3==1
&& s4==1 && s5==1) || (s1==1 && s2==0 && s3==0 && s4==0 && s5==0) || (s1==1 && s2==1
&& s3==0 && s4==0 && s5==0) || (s1==1 && s2==1 && s3==1 && s4==0 && s5==0) || (s1==1
&& s2==1 && s3==1 && s4==1 && s5==0))
{goto counter_empat;}

goto perintah_empat;
}
}

if(s1==1 && s2==0 && s3==0 && s4==0 && s5==1)
{OCR1AH=0x01; OCR1AL=0x38; OCR1BH=0x01; OCR1BL=0x38;}
if(s1==0 && s2==0 && s3==0 && s4==1 && s5==1)
{OCR1AH=0x00; OCR1AL=0xfa; OCR1BH=0x01; OCR1BL=0x38;}
if(s1==0 && s2==0 && s3==1 && s4==1 && s5==1)
{OCR1AH=0x00; OCR1AL=0xbb; OCR1BH=0x00; OCR1BL=0xfa;}
if(s1==0 && s2==1 && s3==1 && s4==1 && s5==1)
{OCR1AH=0x00; OCR1AL=0x7d; OCR1AH=0x00; OCR1AL=0xbb;}
seven:
if(s1==1 && s2==1 && s3==1 && s4==1 && s5==1)
{
OCR1AH=0x00; OCR1AL=0x7d; OCR1AH=0x00; OCR1AL=0xbb;
if(s1==1 && s2==1 && s3==1 && s4==1 && s5==1)
{goto seven;}
if((s1==0 && s2==1 && s3==1 && s4==1 && s5==1) || (s1==0 && s2==0 && s3==1 && s4==1
&& s5==1) || (s1==0 && s2==0 && s3==0 && s4==1 && s5==1) || (s1==0 && s2==0 && s3==0
&& s4==0 && s5==1) || (s1==1 && s2==0 && s3==0 && s4==0 && s5==1) || (s1==0 && s2==0
&& s3==0 && s4==0 && s5==0) || (s1==1 && s2==0 && s3==0 && s4==0 && s5==0) || (s1==1
&& s2==1 && s3==0 && s4==0 && s5==0) || (s1==1 && s2==1 && s3==1 && s4==0 && s5==0)
|| (s1==1 && s2==1 && s3==1 && s4==1 && s5==0))
{goto counter_empat_satu;}
}
if(s1==1 && s2==1 && s3==0 && s4==0 && s5==0)
{OCR1AH=0x01; OCR1AL=0x38; OCR1BH=0x00; OCR1BL=0xfa;}
if(1==1 && s2==1 && s3==1 && s4==0 && s5==0)
{OCR1AH=0x00; OCR1AL=0xfa; OCR1BH=0x00; OCR1BL=0xbb;}
if(s1==1 && s2==1 && s3==1 && s4==1 && s5==0)
{OCR1AH=0x00; OCR1AL=0xbb; OCR1BH=0x00; OCR1BL=0x7d;}
eight:
if(s1==1 && s2==1 && s3==1 && s4==1 && s5==1)
{
OCR1AH=0x00; OCR1AL=0xbb; OCR1AH=0x00; OCR1AL=0x7d;
if(s1==1 && s2==1 && s3==1 && s4==1 && s5==1)
{goto eight;}
if((s1==1 && s2==1 && s3==1 && s4==1 && s5==0) || (s1==1 && s2==1 && s3==1 && s4==0
&& s5==0) || (s1==1 && s2==1 && s3==0 && s4==0 && s5==0) || (s1==1 && s2==0 && s3==0
&& s4==0 && s5==0) || (s1==1 && s2==0 && s3==0 && s4==0 && s5==1) || (s1==0 && s2==0
&& s3==0 && s4==0 && s5==0) || (s1==0 && s2==0 && s3==0 && s4==0 && s5==1) || (s1==0
&& s2==0 && s3==0 && s4==1 && s5==1) || (s1==0 && s2==0 && s3==1 && s4==1 && s5==1)
|| (s1==0 && s2==1 && s3==1 && s4==1 && s5==1))

{goto counter_empat_satu;}
}
goto counter_empat_satu;

//================================================================================
//================================================================================
//================================================================================
//================================================================================
tiga:
kiri();
if(s1==1 && s2==0 && s3==0 && s4==0 && s5==1)
{goto counter_lima;}
goto tiga;
}
//================================================================================
//================================================================================
//================================================================================
if(y>0 && x==0)
{
tahap_satu:
kanan();
if(s1==1 && s2==0 && s3==0 && s4==0 && s5==1)
{goto tahap_dua;}
goto tahap_satu;
tahap_dua:
mundur();
if(s1==0 && s2==0 && s3==0 && s4==0 && s5==0)
{goto tahap_tiga;}
goto tahap_dua;
tahap_tiga:
kanan();
if(s1==1 && s2==0 && s3==0 && s4==0 && s5==1)
{goto counter_lima;}
goto tahap_tiga;
}
//================================================================================
//================================================================================
//================================================================================

counter_lima:
PORTD=0b00110101;
delay_ms(10);
counter_lima_satu:
i=0;
if(s1==0 && s2==0 && s3==0 && s4==0 && s5==0)
{
i=i+1;
y=abs(y)-i;
if(y==0)
{
stop();lcd_clear();lcd_putsf("FINISH");
delay_ms(5000);lcd_clear();lcd_putsf("");
goto koordinat_satu;
}
perintah_lima:
if(s1==0 && s2==0 && s3==0 && s4==0 && s5==0)
{PORTD=0b00110101;
if((s1==1 && s2==0 && s3==0 && s4==0 && s5==1) || (s1==0 && s2==0 && s3==0 && s4==1
&& s5==1) || (s1==0 && s2==0 && s3==1 && s4==1 && s5==1) || (s1==0 && s2==1 && s3==1
&& s4==1 && s5==1) || (s1==1 && s2==0 && s3==0 && s4==0 && s5==0) || (s1==1 && s2==1
&& s3==0 && s4==0 && s5==0) || (s1==1 && s2==1 && s3==1 && s4==0 && s5==0) || (s1==1
&& s2==1 && s3==1 && s4==1 && s5==0))
{goto counter_lima;}
goto perintah_lima;
}
}

if(s1==1 && s2==0 && s3==0 && s4==0 && s5==1)
{OCR1AH=0x01; OCR1AL=0x38; OCR1BH=0x01; OCR1BL=0x38;}
if(s1==0 && s2==0 && s3==0 && s4==1 && s5==1)
{OCR1AH=0x00; OCR1AL=0xfa; OCR1BH=0x01; OCR1BL=0x38;}
if(s1==0 && s2==0 && s3==1 && s4==1 && s5==1)
{OCR1AH=0x00; OCR1AL=0xbb; OCR1BH=0x00; OCR1BL=0xfa;}
if(s1==0 && s2==1 && s3==1 && s4==1 && s5==1)
{OCR1AH=0x00; OCR1AL=0x7d; OCR1AH=0x00; OCR1AL=0xbb;}
nine:
if(s1==1 && s2==1 && s3==1 && s4==1 && s5==1)
{
OCR1AH=0x00; OCR1AL=0x7d; OCR1AH=0x00; OCR1AL=0xbb;
if(s1==1 && s2==1 && s3==1 && s4==1 && s5==1)
{goto nine;}

if((s1==0 && s2==1 && s3==1 && s4==1 && s5==1) || (s1==0 && s2==0 && s3==1 && s4==1
&& s5==1) || (s1==0 && s2==0 && s3==0 && s4==1 && s5==1) || (s1==0 && s2==0 && s3==0
&& s4==0 && s5==1) || (s1==1 && s2==0 && s3==0 && s4==0 && s5==1) || (s1==0 && s2==0
&& s3==0 && s4==0 && s5==0) || (s1==1 && s2==0 && s3==0 && s4==0 && s5==0) || (s1==1
&& s2==1 && s3==0 && s4==0 && s5==0) || (s1==1 && s2==1 && s3==1 && s4==0 && s5==0)
|| (s1==1 && s2==1 && s3==1 && s4==1 && s5==0))
{goto counter_lima_satu;}
}
if(s1==1 && s2==1 && s3==0 && s4==0 && s5==0)
{OCR1AH=0x01; OCR1AL=0x38; OCR1BH=0x00; OCR1BL=0xfa;}
if(1==1 && s2==1 && s3==1 && s4==0 && s5==0)
{OCR1AH=0x00; OCR1AL=0xfa; OCR1BH=0x00; OCR1BL=0xbb;}
if(s1==1 && s2==1 && s3==1 && s4==1 && s5==0)
{OCR1AH=0x00; OCR1AL=0xbb; OCR1BH=0x00; OCR1BL=0x7d;}
ten:
if(s1==1 && s2==1 && s3==1 && s4==1 && s5==1)
{
OCR1AH=0x00; OCR1AL=0xbb; OCR1AH=0x00; OCR1AL=0x7d;
if(s1==1 && s2==1 && s3==1 && s4==1 && s5==1)
{goto ten;}
if((s1==1 && s2==1 && s3==1 && s4==1 && s5==0) || (s1==1 && s2==1 && s3==1 && s4==0
&& s5==0) || (s1==1 && s2==1 && s3==0 && s4==0 && s5==0) || (s1==1 && s2==0 && s3==0
&& s4==0 && s5==0) || (s1==1 && s2==0 && s3==0 && s4==0 && s5==1) || (s1==0 && s2==0
&& s3==0 && s4==0 && s5==0) || (s1==0 && s2==0 && s3==0 && s4==0 && s5==1) || (s1==0
&& s2==0 && s3==0 && s4==1 && s5==1) || (s1==0 && s2==0 && s3==1 && s4==1 && s5==1)
|| (s1==0 && s2==1 && s3==1 && s4==1 && s5==1))
{goto counter_lima_satu;}
}
goto counter_lima_satu;
};
}

Lampiran B
DATASHEET MIKROKONTROLER

Lampiran C
DATASHEET HAMAMATSU P5587

Lampiran D
DATASHEET IC L293D

BAB I
PENDAHULUAN

Pada bab ini dibahas mengenai latar belakang, identifikasi masalah, tujuan,
pembatasan masalah, spesifikasi alat dan sistematika penulisan.

I.1

Latar Belakang
Kemajuan teknologi belakangan ini semakin meningkatkan kreasi manusia

dalam menciptakan peralatan dengan tujuan meningkatkan kualitas hidup.
Manusia semakin berupaya membuat perangkat pembantu agar kerja manusia
lebih cepat dan ringan. Sebagai contohnya, perancangan dan pembuatan robot
semakin berkembang seiring dengan manfaat dan aplikasi robot.
Pada bidang industri mobilisasi suatu barang adalah kebutuhan yang
sangat penting. Pemindahan dan penyimpanan barang dari satu posisi ke posisi
lain membutuhkan suatu perangkat yang dapat bekerja dengan cepat dan tepat.
Penggunaan perangkat-perangkat pembantu akan menghemat tenaga kerja
manusia, waktu, dan biaya produksi. Dengan merealisasikan prototipe robot
pengikut jalur hitam, diharapkan mobilisasi suatu barang dapat menjadi lebih
cepat dan tepat.

1

BAB I PENDAHULUAN

I.2

2

Identifikasi Masalah
Identifikasi masalah dari Tugas Akhir ini adalah bagaimana membuat

robot bergerak yang dapat mengikuti jalur hitam dan dapat kembali pada jalurnya
jika terdapat gangguan.

I.3

Tujuan
Tujuan dari Tugas Akhir ini adalah merealisasikan prototipe robot

pengikut jalur hitam yang dapat kembali pada jalurnya jika terdapat gangguan.

I.4

Pembatasan Masalah
Dalam tugas akhir ini, pembatasan masalah mencakup hal-hal berikut:

1.

Warna jalur yang akan diikuti prototipe robot yaitu warna hitam.

2.

Lebar jalur yang akan diikuti prototipe robot yaitu 4,5cm.

3.

Pola jalur yang akan diikuti prototipe robot yaitu berbentuk kotak-kotak
dengan koordinat (x,y) yang ditunjukkan oleh Gambar 1.1.

Gambar 1.1 Pola Jalur Hitam Berbentuk Kotak-kotak dengan Koordinat (x,y)

BAB I PENDAHULUAN

4.

3

Prototipe robot masih dapat kembali pada jalurnya jika gangguan yang
diberikan membentuk sudut kurang dari atau sama dengan 30o (jalur hitam
terhadap posisi prototipe robot) seperti Gambar 1.2.

Gambar 1.2 Posisi Prototipe Robot terhadap Jalur Hitam

I.5

Spesifikasi Alat
Spesifikasi alat adalah sebagai berikut:

1.

Menggunakan dua buah motor yang telah dilengkapi dengan roda pada
bagian kiri dan kanan prototipe robot, serta satu roda bebas untuk mengikuti
gerakan roda lainnya.

2.

Mampu bergerak pada jalur hitam berbentuk kotak-kotak dengan koordinat (x,y).

3.

Menggunakan baterai NiMH 6 buah.

4.

Dapat kembali pada jalur hitam.

5.

Parameter gerak untuk mengikuti jalur hitam adalah perubahan warna hitam
dan putih.

BAB I PENDAHULUAN

I.6

4

Sistematika Penulisan
Penulisan laporan Tugas Akhir ini akan lebih terarah dan teratur bila

dibagi dalam lima bab berikut ini:
BAB I

PENDAHULUAN

Pada bab ini dibahas mengenai latar belakang, identifikasi masalah, tujuan,
pembatasan masalah, spesifikasi alat dan sistematika penulisan.
BAB II

LANDASAN TEORI

Pada bab ini dibahas mengenai teori-teori yang menunjang dalam pembuatan
prototipe robot. Teori yang dimaksud adalah teori tentang robotika, Hamamatsu
P5587,

LCD

(Liquid

Crystal

Display),

Jembatan

H

(H-Bridge)

dan

Mikrokontroler ATMEGA8535.
BAB III

PERANCANGAN DAN REALISASI

Pada bab ini dibahas mengenai perancangan dan realisasi tentang sistem yang
dibangun, meliputi diagram blok, perancangan dan realisasi perangkat keras, serta
perancangan perangkat lunak.
BAB IV

PENGUJIAN

Pada bab ini dibahas mengenai hasil pengamatan dan analisa terhadap alat yang
telah dirancang.
BAB V

KESIMPULAN DAN SARAN

Pada bab ini dibahas mengenai kesimpulan dari Tugas Akhir dan saran-saran yang
perlu dilakukan untuk perbaikan di masa yang mendatang.

BAB V
KESIMPULAN DAN SARAN

Pada bab ini dibahas mengenai kesimpulan dari Tugas Akhir dan saransaran yang perlu dilakukan untuk perbaikan di masa yang mendatang.

V.1

Kesimpulan
Dengan memperhatikan data pengamatan dan analisis pada bab

sebelumnya, dapat disimpulkan bahwa :
1.

Robot mobil pengikut jalur berwarna hitam dengan mikrokontroler
ATMEGA8535 yang dikendalikan dengan keypad telah berhasil direalisasi.

2.

Kondisi jalur berwarna hitam yang dilalui prototipe robot berpengaruh untuk
memperoleh pergerakan yang benar.

3.

Prototipe robot mampu melakukan pergerakan pada jalur yang terpendek.

4.

Persentase keberhasilan rata-rata pada jalur lurus berwarna hitam dengan
jarak 2 meter secara keseluruhan sebesar 93,33 % dan kecepatan rata-ratanya
sebesar 0,124 meter per detik.

5.

Persentase keberhasilan rata-rata pada jalur hitam berbentuk kotak-kotak
dengan koordinat (x,y) secara keseluruhan sebesar 96,25 % dan kecepatan
rata-ratanya sebesar 0,126 meter per detik.

67

BAB V KESIMPULAN DAN SARAN

68

V.1 Saran
Saran-saran yang dapat diberikan untuk perbaikan dan pengembangan dari
realisasi

prototipe

robot

pengikut

jalur

hitam

berbasis

mikrokontroler

ATMEGA8535 adalah sebagai berikut :
1

Penambahan sensor Hamamatsu P5587 pada bagia