• Tidak ada hasil yang ditemukan

Realisasi Prototipe Robot Pengikut Jalur Hitam.

N/A
N/A
Protected

Academic year: 2017

Membagikan "Realisasi Prototipe Robot Pengikut Jalur Hitam."

Copied!
51
0
0

Teks penuh

(1)

i

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 : boy_toqi@yahoo.co.id

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,

masalah-masalah 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

(2)

ii

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.

(3)

iii

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 : boy_toqi@yahoo.co.id

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

(4)

iv

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.

(5)

v

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)

vi

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

(7)

vii

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

(8)

viii

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

(9)

ix

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 ...

59

BAB V KESIMPULAN DAN SARAN

V.1 Kesimpulan ...

67

V.2 Saran ...

68

DAFTAR PUSTAKA ...

69

LAMPIRAN A LISTING PROGRAM

(10)

x

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 Jara

k 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

(11)

xi

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

(12)

xii

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

(13)

xiii

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

(14)

xiv

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

(15)

xv

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

(16)

Lampiran A

(17)

/***************************************************** 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 <mega8535.h> #include <delay.h> #include <stdio.h> #include <scankeypadB.h> #include <math.h> 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 <lcd.h>

// Timer 0 output compare interrupt service routine interrupt [TIM0_COMP] void timer0_comp_isr(void)

{

(18)

{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.

(19)

// 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) {

(20)

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;

(21)

//================================================================================ //================================================================================ 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(y<0) { if(y<0) { label_satu: maju();

if(s1==1 && s2==0 && s3==0 && s4==0 && s5==1) {goto counter_satu;}

goto label_satu; }

(22)

counter_satu: PORTD=0b00110101; delay_ms(10); counter_satu_satu: i=0;

if(s1==0 && s2==0 && s3==0 && s4==0 && s5==0) { i=i+1; y=abs(y)-i; if(y==0) {goto satu;} perintah_satu:

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_satu;} goto perintah_satu; } }

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;}

one:

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 one;}

(23)

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_satu_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;}

two:

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 two;}

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_satu_satu;} } goto counter_satu_satu; //================================================================================ //================================================================================ //================================================================================ satu: if(x<0) { sumbu_x_satu_satu: kanan();

if(s1==1 && s2==0 && s3==0 && s4==0 && s5==1) {goto counter_dua;} goto sumbu_x_satu_satu; } //================================================================================ if(x>0) { sumbu_x_satu_dua: kiri();

if(s1==1 && s2==0 && s3==0 && s4==0 && s5==1) {goto counter_dua;}

(24)

if(x==0) { stop();lcd_clear();lcd_putsf("FINISH"); delay_ms(5000);lcd_clear();lcd_putsf(""); goto koordinat_satu; } counter_dua: PORTD=0b00110101; delay_ms(10); counter_dua_satu: j=0;

if(s1==0 && s2==0 && s3==0 && s4==0 && s5==0) { j=j+1; x=abs(x)-j; if(x==0) { stop();lcd_clear();lcd_putsf("FINISH"); delay_ms(5000);lcd_clear();lcd_putsf(""); goto koordinat_satu; } perintah_dua:

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_dua;} goto perintah_dua; } }

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;}

(25)

if(s1==0 && s2==1 && s3==1 && s4==1 && s5==1)

{OCR1AH=0x00; OCR1AL=0x7d; OCR1AH=0x00; OCR1AL=0xbb;}

three:

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 three;}

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_dua_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;}

four:

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 four;}

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))

(26)

//================================================================================ //================================================================================ if(y>0 && x<0)

{

if(y>0 && x<0) {

sumbu_x_satu_tiga: kanan();

if(s1==1 && s2==0 && s3==0 && s4==0 && s5==1) {goto counter_tiga;} goto sumbu_x_satu_tiga; } //================================================================================ //================================================================================ //================================================================================ //================================================================================ counter_tiga: PORTD=0b00110101; delay_ms(10); counter_tiga_satu: j=0;

if(s1==0 && s2==0 && s3==0 && s4==0 && s5==0) { j=j+1; x=abs(x)-j; if(x==0) {goto dua;} perintah_tiga:

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_tiga;} goto perintah_tiga; }

}

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)

(27)

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;}

five:

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 five;}

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_tiga_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;}

six:

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 six;}

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))

(28)

dua:

kanan();

if(s1==1 && s2==0 && s3==0 && s4==0 && s5==1) {goto counter_lima;} goto dua; } //================================================================================ //================================================================================ //================================================================================ //================================================================================

if(y>0 && x>0) {

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))

(29)

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;}

(30)

{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();

(31)

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)

(32)

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;

(33)

Lampiran B

(34)
(35)
(36)
(37)
(38)
(39)

Lampiran C

(40)
(41)
(42)

Lampiran D

(43)
(44)
(45)

1

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

(46)

BAB I PENDAHULUAN

2

I.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

[image:46.595.210.433.527.726.2]

dengan koordinat (x,y) yang ditunjukkan oleh Gambar 1.1.

(47)

BAB I PENDAHULUAN

3

4.

Prototipe robot masih dapat kembali pada jalurnya jika gangguan yang

diberikan membentuk sudut kurang dari atau sama dengan 30

o

(jalur hitam

[image:47.595.246.383.223.363.2]

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

(48)

BAB I PENDAHULUAN

4

I.6

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

(49)

67

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.

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

(50)

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 bagian belakang prototipe robot

untuk memperoleh pergerakan arah mundur yang baik.

2. Menggunakan roda bebas dengan ukuran yang sesuai untuk memperoleh

(51)

69

DAFTAR PUSTAKA

1.

Budiharto, Widodo, Belajar Sendiri 12 Proyek Mikrokontroler untuk

Pemula, Jakarta: PT Elex Media Komputindo, 2007.

2.

Halim, Sandy, ST. Merancang Mobile Robot Pembawa Objek

Menggunakan OOPic-R, Jakarta:PT Elex Media Komputindo, 2007.

3.

Ogata, K

atsuhiko, “

Modern Control Engineering

, Third Edition,

Prentice-Hall, USA, 1997.

4.

Rusmadi, Dedy, Mengenal Komponen Elektronika, Bandung: CV Pionir

Jaya, 2001.

5.

Wardhana,

Lingga,

Belajar

Sendiri

Mikrokontroler

AVR

Seri

ATMega8535 Simulasi, Hardware, dan Aplikasi, Yogyakarta: CV Andi

Offset, 2006.

6.

http://www.acroname.com/robotics/parts/R64-P5587.pdf

7.

http://www.atmel.com/dyn/resources/prod_documents/doc2502.pdf

8.

http:// www.google.co.id/search?q=line-tracker-robot

9.

http:// www.ilmurobotika.com

10.

http:// www.insansainsprojects.wordpress.com/2008/06/05/h-bridge-driver

Gambar

Gambar 1.1 Pola Jalur Hitam Berbentuk Kotak-kotak dengan Koordinat (x,y)
Gambar 1.2 Posisi Prototipe Robot terhadap Jalur Hitam

Referensi

Dokumen terkait

Abstrak: Penelitian ini dilakukan dalam rangka pengembangan prospek geowisata dan agrowisata dari potensi sumber daya alam dan lingkungan secara lebih terperinci,

ANFIS merupakan jaringan adaptif yang ber- basis pada sistem kesimpulan FIS (fuzzy inference system) yang dapat digunakan untuk menentukan Klasifikasi buah sementara nilai

Perbedaan Let Down Sebelum Dan Sesudah Pijat Oksitosin Vertebrae Pada Ibu Yang Menyusui Bayi 0-6 Bulan Di Desa Candi Jati Kabupaten Jember ; Debbiyatus Sofia,

Dapat disimpulkan bahwa nilai index tersebut termasuk dalam nilai indeks tinggi, yang artinya penerapan (SLIMS) (UNIKA) Soegyapranata Semarang yaitu sebesar 66,0706

Berdasarkan rumusan masalah tersebut maka tujuan yang ingin dicapai dalam penelitian ini adalah untuk menguji hipotesis apakah ada hubungan antara kedisiplinan

Simpulan, motivasi paling kuat yang melatar belakangi pustakawan mengikuti kegiatan diklat Training For Trainers (TOT) angkatan tahun 2019 adalah kebutuhan

Kebutuhan akan modal manusia ( human capital ) dengan kemampuan intelektualnya merupakan faktor penting dan strategis di dalam perkembangan industry kreatif

Dalam pengobatan tradisional Talang Mamak, hubungan sosial antara dukun dan pasien sangat erat, dibandingkan hubungan sosial yang terjalin antara dukun dengan pasien