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
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.
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
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.
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.
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
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
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
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
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
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
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
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
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
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
Lampiran A
/***************************************************** 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)
{
{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.
// 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) {
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;
//================================================================================ //================================================================================ 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; }
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;}
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;}
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;}
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))
//================================================================================ //================================================================================ 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)
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))
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))
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;}
{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();
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)
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
Lampiran C
Lampiran D
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
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.
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
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
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
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
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