i
Universitas Kristen MaranathaMODIFIKASI NAVIGASI PLEDGE UNTUK ROBOT
PEMADAM API KRCI 2011 DIVISI BERODA
Disusun oleh :
Nama :
Philander Antonius
NRP
:
0722034
Jurusan Teknik Elektro, Fakultas Teknik, Universitas Kristen Maranatha,
Jl.Prof.Drg.Suria Sumantri, MPH No. 65, Bandung, Indonesia.
Email : accel_05061128@yahoo.com
ABSTRAK
Pada akhir-akhir ini telah banyak diselenggarakan kompetisi robot yang
bertujuan untuk menumbuh kembangkan ilmu pengetahuan dan teknologi. Kontes
Robot Cerdas Indonesia (KRCI) merupakan sebuah kompetisi robot yang
diadakan setiap tahun oleh Direktorat Jenderal Pendidikan Tinggi (DIKTI). Pada
Tugas Akhir ini, navigasi robot dirancang agar robot dapat memeriksa ruang tanpa
memerlukan robot menjelajahi seluruh pelosok ruang yang diperiksa. Robot
cerdas pemadam api dengan rangka dasar robot terbuat dari bahan aluminium dan
aklirik dilengkapi dengan sensor jarak ultrasonik untuk mengukur jarak antara
robot dengan lingkungan di sekitarnya, sensor UVTron untuk mendeteksi api, dan
sensor warna ZX-03 untuk mendeteksi warna lantai pintu yang dilalui robot.
Robot dikontrol dengan menggunakan pengontrol mikro ATmega 128. Robot
menggunakan teknik navigasi pledge modifikasi di dalam maze, sehingga robot
dapat memeriksa setiap ruang untuk menemukan api.
Berdasarkan percobaan yang dilakukan dapat dikatakan bahwa robot dapat
memeriksa ruang dan hanya menjelajahi ruang yang terdapat api, pendeteksian
warna lantai pintu yang dilalui robot dengan menggunakan sensor warna, dan
mendeteksi api dengan konfigurasi maze yang berubah-ubah. Robot dapat dengan
baik menjelajahi maze dengan konfigurasi non-arbitary home. Robot belum dapat
secara langsung kembali ke home pada konfigurasi arbitary home.
Kata Kunci : Navigasi robot, KRCI, Sensor UVTron, Sensor Jarak Ultrasonik,
ii
Universitas Kristen MaranathaMODIFICATION OF PLEDGE NAVIGATION FOR FIRE
FIGHTING ROBOT KRCI 2011 WHEELED DIVISION
Composed by :
Name :
Philander Antonius
NRP
:
0722034
Electrical Engineering, Maranatha Christian University,
Jl.Prof.Drg.Suria Sumantri, MPH No. 65, Bandung, Indonesia.
Email : accel_05061128@yahoo.com
ABSTRACT
Lately many robotic competitions held which aims to cultivate science and
technology. Indonesian Smart Robot Contest (KRCI) is a robot competition held
every year by the Directorate General of Higher Education (DIKTI).
In this Final Project, robot navigation is designed for robot can check the
room without having to go explore inside the room. Fire fighting robot is made
with basic framework of aluminum and acrylic then equipped with an ultrasonic
distance sensor to measure the distance between the robot and the environment
around it, UVTron sensor to detect fire, and a color sensor ZX-03 for detecting the
color of the floor through which the robot. The robot is controlled by using a
micro controller ATmega 128. Robot using modified pledge navigation inside
maze, therefore robot can maneuver as fast in checking every room to find fire.
Based on experiments that can be said the robot can check room and only
explore the room that has fire inside it, detecting the color of the floor through
which the robot by using a color sensor ZX-03, and detects the fire with the
changing configuration of a maze. Robot can successfully explore maze in
non-arbitrary configuration. Robot cannot automatically return to home in non-arbitrary
configuration.
Keywords: Robot navigation, KRCI, UVTron Sensor, Ultrasonic Sensor, Color
iii
Universitas Kristen MaranathaDAFTAR ISI
Halaman
ABSTRAK………..
i
ABSCTRACT………
ii
KA
TA PENGANTAR………...
iii
DAFTAR
ISI………
...
iv
DAFTAR TABEL………
..
viii
DAF
TAR GAMBAR……….
ix
BAB I PENDAHULUAN
I.1
LATAR BELAKANG
………
1
I.2
IDENTIFIKASI MASALAH
………
2
I.3
TUJUAN
………..
2
I.4
PEMBATASAN MASALAH
………...
2
I.5
SISTEMATIKA PENULISAN
……….
4
BAB II LANDASAN TEORI
II.1
KRCI 2011………
6
II.2
PANDUAN PERATURAN KRCI………. 7
II.2.1
LAPANGAN……….
7
II.2.2
HOME………
8
II.2.3
LILIN……….
8
II.3
TEORI ROBOT BERODA
………
9
II.3.1
ROBOT 4-WHEELED DRIVE
………
...
……
9
II.3.2
ROBOT ALL-WHEELED DRIVE
………
...
…
9
II.3.3
ROBOT INDIVIDUAL-WHEELED DRIVE
………
..
10
II.4
KOMPONEN ROBOT………...….
10
II.4.1
ATMEGA128……….
10
II.4.2
SENSOR ULTRASONIK (SRF05)………
.
…..
13
II.4.3
SENSOR API (UVTRON)………
.
……
15
II.4.4
SENSOR WARNA
……….
17
iv
Universitas Kristen MaranathaII.5.1
DEFINISI NAVIGASI (maze solving algorithm)………
19
II.5.2
RAN
DOM MUSE ALGORITHM………
19
II.5.3
WALL FOLLOWER……….
20
II.5.4
PLEDGE ALGORITHM………...
20
II.5.5
TREMAUX ALGORITHM………..
21
II.5.6
DEAD-
END FILLER………
22
II.5.7
CUL-DE-
SAC FILLER……….
22
II.5.8
BLIND ALLEY
FILLER………..
23
II.5.9
BLIND ALLEY SEALER……….
23
II.5.10
CHAIN ALGORITHM………..
23
II.5.11
SHORTEST PATH FINDER………
24
II.5.12
RECURSIVE BACKTRACKER……….
25
BAB III PERANCANGAN DAN REALISASI
III.1 PERANCANGAN SISTEM ROBOT
………...
26
III.1.1 ROBOT BERODA EMPAT
………
.. 26
III.1.2 SKEMATIK ROBOT BERODA EMPAT
………
..
…………
..
27
III.1.3 SKEMATIK MOTOR DRIVER
………
..
………..
29
III.1.4
OCR……….………
..
30
III.1.5 SENSOR JARAK ULTRASONIK SRF05
………
.
…………
..
30
III.1.6 SENSOR API UVTRON
………
.. 31
III.1.7 ZX-
03………...………
.. 32
III.2 PERANCANGAN SISTEM NAVIGASI
……….
32
III.3 KONFIGURASI LAPANGAN……….
33
III.4 ALGORITMA NAVIGASI ROBOT
………
33
BAB IV
IV.1 DATA
OCR……….
45
IV.2 DATA NAVIGASI……….. 47
IV.2.1 HOME(NON-ARBITARY)
………..
47
IV.2.2 HOME(ARBITARY)
………
56
v
Universitas Kristen MaranathaIV.4 ANALISA KESALAHAN……….
81
BAB V KESIMPULAN DAN SARAN
V.1 KESIMPULAN………
85
V.2 SARAN……….
87
DAFTAR PUSTAKA………
88
LAMPIRAN
–
A FOTO FIREBOLT
vi
Universitas Kristen MaranathaDAFTAR TABEL
Halaman
Tabel 3.1 Tabel Kebenaran Driver Motor LMD 18200
………..
29
Tabel 4.1 Data pengujian OCR
………
45
Tabel 4.2 Data pengujian pada Home-ruang 1
……….
48
Tabel 4.3 Data pengujian pada Home-
ruang 2……….
50
Tabel 4.4 Data pengujian pada Home-
ruang 3………..
52
Tabel 4.5 Data pengujian pada Home-
ruang 4………..
54
Tabel 4.6 Data pengujian pada Ruang1-ruang
2………
56
Tabel 4.7 Data pengujian pada Ruang1-ruang
3………
58
Tabel 4.8 Data pengujian pada Ruang1-ruang
4………
60
Tabel 4.9 Data pengujian pada Ruang2-ruang
1………
62
Tabel 4.10 Data pengujian pada Ruang2-ruang
3………
64
Tabel 4.11 Data pengujian pada Ruang2-ruang
4………
66
Tabel 4.12 Data pengujian pada Ruang3-ruang
1………
68
Tabel 4.13 Data pengujian pada Ruang3-ruang
2………
70
Tabel 4.14 Data pengujian pada Ruang3-ruang
4………
72
Tabel 4.15 Data pengujian pada Ruang4-ruang
1………
74
Tabel 4.16 Data pengujian pada Ruang4-ruang
2………
76
Tabel 4.17 Data pengujian pada Ruang4-ruang
3………
78
vii
Universitas Kristen MaranathaDAFTAR GAMBAR
Halaman
Gambar 1.1
D
enah lapangan KRCI 2011………
3
Gambar 1.2
Posisi pintu ruang 1 dan ruang 4 (4 konfigurasi pintu)
……..
4
Gambar 2.1
Denah Lapangan……….
7
Gambar 2.2
Bentuk dan Ukuran Lapangan Tampak Samping
………
7
Gambar 2.3
Bentuk dan Ukuran Home
………
8
Gambar 2.4 Bentuk dan Ukuran Lilin
………...
9
Gambar 2.5
Konfigurasi Kaki ATMEGA128
……….
12
Gambar 2.6
Diagram Blok ATMEGA128
………..
13
Gambar 2.7
Koneksi Pin SRF05
……….
14
Gambar 2.8
Diagram Waktu Sensor SRF05
………
15
Gambar 2.9
UVtron Bulb
………
15
Gambar 2.10 Dimensi Sensor UVtron
………..
16
Gambar 2.11 UVtron Driving Circuit
………
16
Gambar 2.12 Dimensi UVtron Driving Circuit
……….
17
Gambar 2.13 Skematik Rangkaian Sensor UVtron
………...
17
Gambar 2.14 Bentuk Sensor TCRT5000
………...
18
Gambar 2.15 Contoh Penggunaan Sensor TCRT5000
………..
19
Gambar 2.16 Wall-follower/Hand-rule path
……….
20
Gambar 2.17 Tremaux Algorithm
……….
21
Gambar 2.18 Dead-End Filler
………..
22
Gambar 2.19 Loop Path
………
23
Gambar 2.20 Blind-Alley Path
………..
23
Gambar 2.21 Chain algorithm
………
24
Gambar 2.22 Backtracking Algorithm
………
.. 25
Gambar 3.1
Diagram Blok Sistem Robot Beroda
………..
26
Gambar 3.2 Pin pada ATMega 128
……… 27
Gambar 3.3
Skematik Pengontrol Mikro
………...………....
28
Gambar 3.4
Rangkaian Motor Driver
……….…………....
29
Gambar 3.5
Output PWM OCR ………..………...………....
30
viii
Universitas Kristen MaranathaGambar 3.7
Posisi sensor SRF05 pada robot beroda………
31
Gambar 3.8 Alokasi Pin UVTron Hamamatsu
………... 32
Gambar 3.9 Pin pada ZX-03
……….. 32
Gambar 3.10 Posisi Home di lorong (Non-Arbitary Home
)……….
33
Gambar 3.11 Flowchart
Navigasi utama Robot………..
34
Gambar 3.12 Flowchart Sub-program
Cek Posisi………
35
Gambar 3.13 Kegiatan robot saat melakukan sub-program
Cek posisi…….
36
Gambar 3.14 Flowchart Sub-program Cari Api
………
37
Gambar 3.15 Flowchart Sub-program Pindah Island
………
38
Gambar 3.16
Posisi robot pada lorong 4………
39
Gambar 3.17 Flowchart
Cek Ruang………..
40
Gambar 3.18 Sub-program Home
……….
41
Gambar 3.19 Sub-program lewat ruang
………
42
Gambar 3.20 Sub-program wall-follower kiri
………..
43
Gambar 3.21 P
osisi sensor jarak pada robot beroda………
43
Gambar 3.22 Sub-Program wall-follower kanan
………
44
Gambar 4.1
4 buah Konfigurasi pintu………
47
Gambar 4.2
Jalur Pergerakan Robot Pada Non-Arbitary Home-Ruang 1.. 49
Gambar 4.3
Jalur Pergerakan Robot Pada Non-Arbitary Home-Ruang 2.. 51
Gambar 4.4
Jalur Pergerakan Robot Pada Non-Arbitary Home-Ruang 3.. 53
Gambar 4.5
Jalur Pergerakan Robot Pada Non-Arbitary Home-Ruang 4.. 55
Gambar 4.6 Jalur Pergerakan Robot Pada Non-Arbitary Home(ruang 1)
-
Ruang 2……….
57
Gambar 4.7 Jalur Pergerakan Robot Pada Non-Arbitary Home(ruang 1)
-Ruang 3
……….
59
Gambar 4.8 Jalur Pergerakan Robot Pada Non-Arbitary Home(ruang 1)
-Ruang 4
……….
61
Gambar 4.9 Jalur Pergerakan Robot Pada Non-Arbitary Home(ruang 2)
-Ruang 1
……….
63
ix
Universitas Kristen Maranatha-Ruang 4
……….
67
Gambar 4.12 Jalur Pergerakan Robot Pada Non-Arbitary Home(ruang 3)
-Ruang 1
……….
69
Gambar 4.13 Jalur Pergerakan Robot Pada Non-Arbitary Home(ruang 3)
-
Ruang 2……….
71
Gambar 4.14 Jalur Pergerakan Robot Pada Non-Arbitary Home(ruang 3)
-Ruang 4
……….
73
Gambar 4.15 Jalur Pergerakan Robot Pada Non-Arbitary Home(ruang 4)
-Ruang 1
……….
75
Gambar 4.16 Jalur Pergerakan Robot Pada Non-Arbitary Home(ruang 4)
-
Ruang 2……….
77
Gambar 4.17 Jalur Pergerakan Robot Pada Non-Arbitary Home(ruang 4)
-
Ruang 3……….
79
Gambar 4.18 Lokasi terjadinya ke
gagalan penjelajahan………..
81
LAMPIRAN A
A-1
TAMPAK DEPAN
A-2
TAMPAK SAMPING KIRI
A-3
LAMPIRAN B
PROGRAM PADA PENGONTROL MIKRO
B-1
PROGRAM UTAMA
/*****************************************************
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 : 03/05/2011
Author : F4CG
Company : F4CG
Comments:
Chip type : ATmega128
Program type : Application
Clock frequency : 11,059200 MHz
Memory model : Small
External SRAM size : 0
Data Stack size : 1024
*****************************************************/
#include <mega128.h>
#include <delay.h>
#include <stdio.h>
// Alphanumeric LCD Module functions
#asm
.equ __lcd_port=0x15 ;PORTC
#endasm
#include <lcd.h>
#define ADC_VREF_TYPE 0x00
// Read the AD conversion result
unsigned int read_adc(unsigned char adc_input)
{
ADMUX=adc_input | (ADC_VREF_TYPE & 0xff);
// Start the AD conversion
ADCSRA|=0x40;
B-2
while ((ADCSRA & 0x10)==0);
ADCSRA|=0x10;
return ADCW;
}
// Declare your global variables here
unsigned int
a,b,c,d,e,f,g,i,ic,j,k,l,lz,m,n,o,p,z,x,xa,xb,xc,xd,xe,xf,xg,r,h,counter,adc,adc_1,s1,s2,sensor_7,c1,bm,GakBisa
Keluar,counter_GakBisaKeluar,GakBisaKeluarDeui;
unsigned char text[32];
//depan kiri depan kanan
//xa,xb,xc void aktif() { ulang: if(PINE.0==0){ goto lanjut; }
if(PINA.0==1 & PINA.1==0 & PINA.2==0)
{
while(PINA.0==1 & PINA.1==0 & PINA.2==0){delay_us(2);}
}
else
{
goto ulang;
}
if(PINA.0==0 & PINA.1==1 & PINA.2==0)
{
while(PINA.0==0 & PINA.1==1 & PINA.2==0) {delay_us(2);}
if(PINA.0==1 & PINA.1==1 & PINA.2==0)
{
// while(PINA.0==1 & PINA.1==1 & PINA.2==0) {delay_us(2);}
// if(PINA.0==0 & PINA.1==0 & PINA.2==1)
{
// while(PINA.0==0 & PINA.1==0 & PINA.2==1) {delay_us(2);}
goto lanjut;
}
//else
B-3
//goto ulang; //} } else { goto ulang; } } else { goto ulang; } lanjut: } void servo_on(){ for(k=60;k>0;k--) {for(j=0;j<3;j++)//lama pengulangan silkus on yg sama
{ PORTE.4=1; delay_us(1400); for(i=0;i<k;i++){delay_us(10);}; PORTE.4=0; delay_us(18300); } } for(k=0;k<60;k++) {
for(j=0;j<3;j++)//lama pengulangan silkus on yg sama
B-4
PORTE.4=0; delay_us(18020); } void maju(){PORTA.3=0; //kiri
PORTA.4=0;
PORTA.5=1; //kanan
B-9
xf=(g/29.034); } void sensor7(){ sensor_7=0; DDRD.7=1; PORTD.7=1; delay_us(15); DDRD.7=0; PORTD.7=0; delay_us(750); while(PIND.7==0) { delay_us(1); } while(PIND.7==1) { sensor_7++; delay_us(1); } xg=(sensor_7/29.034); } void wallfollow_kiri() { if(x>6) {if(xd>25 && xb>27)
B-10
kanan_doank(); OCR1A=100; OCR1B=100; } else { maju(); OCR1A=80; OCR1B=80; } } else { kanan(); OCR1A=220; OCR1B=220; } } void ikut_kanan(){ while (1) { start_2:sensor0(); // x
sensor1(); // xa
sensor2(); // xb
sensor3(); // xc
sensor5(); // xe
if(xb==10){o=210;} else if(xb==9){o=200;} else if(xb>=10){o=180;} else if(xc==7){o=210;} else if(xc==8){o=200;} else if(xc>=9){o=180;}
if(PINE.3==1) //Uv tron off
{
GakBisaKeluar=0;
B-11
PORTB.7=0;
if(x>10) //wall kanan
{
if(xe>10 && xc>18)
{ kanan(); OCR1A=255; OCR1B=40; delay_ms(100); } else if(xb<10) { kanan_doank(); OCR1A=o; OCR1B=o; } else if(xc<8) { kiri_doank(); OCR1A=o; OCR1B=o; } else if(xa<=4){ kiri(); OCR1A=100; OCR1B=100; } else { maju(); OCR1A=165; OCR1B=165; } } else { kiri(); OCR1A=210; OCR1B=210; }
if(k==2 && xc>25 && xe>25)
B-12
h=1;
}
if(read_adc(1)<150 && read_adc(0)<70 && k==2) //balik home ITEM
{
r=1;
}
if(h==1 && r==1 && read_adc(1)>=350 && read_adc(0)>=300 && k==2) //home???
{
brenti();
OCR1A=255;
OCR1B=255;
//PORTB.7=0;
lcd_putsf("aing home iyeu\n");
delay_ms(5000);
}
if(read_adc(0)<=160 && read_adc(0)>=100 && read_adc(1)<=250 && read_adc(1)>=150 &&
h==1){ // ABU
break;
}
if(read_adc(1)>=300) // PUTIH
{
s1=1;
}
if(s1==1 && read_adc(1)<150 && k!=2){ // ITEM
counter_GakBisaKeluar = counter_GakBisaKeluar+1;
s1 = 0;
}
if(k==2){
counter_GakBisaKeluar=0;
}
if(counter_GakBisaKeluar>=1) //lorong
{
adc=read_adc(0);
adc_1=read_adc(1);
sensor7();
sensor6();
if((adc<=150 && adc>=100) && (adc_1<=250 && adc_1>=150)) { //blkg &&
B-13
if(xg<=10 && xg>=5){
if(xf<=10 && xf>=5){
c1=1;
delay_ms(5);
}
else goto start_2;
}
else goto start_2;
}
else goto start_2;
}
if(counter_GakBisaKeluar>=1 && c1==1 && GakBisaKeluar>=3)
{
adc=read_adc(0);
adc_1=read_adc(1);
sensor7();
sensor6();
if((adc<=150 && adc>=100) && (adc_1<=250 && adc_1>=150)) {
if(xg<=10 && xg>=5){
if(xf<=10 && xf>=5){
GakBisaKeluar=0;
break;
c1=0;
}
else goto start_2;
}
else goto start_2;
}
else goto start_2;
B-14
sprintf(text,"%d",GakBisaKeluarDeui); lcd_puts(text); delay_ms(500); while(GakBisaKeluarDeui>=3){ mundur(); OCR1A=255; OCR1B=255; delay_ms(1000); break; GakBisaKeluarDeui=0; } } if(PINE.2==0){ kiri_mundur(); OCR1A=200; OCR1B=200; } if(PINE.5==0){ kanan_mundur(); OCR1A=200; OCR1B=200; } }else //ada api
{
if(read_adc(1)<350) // ABU PALING BESAR, putih paling kcl
{
if(x>10) //wall kanan
{
if(xe>10 && xc>18)
B-16
}
if(read_adc(1)>350 && k==1) //msh putih
{ brenti(); OCR1A=255; OCR1B=255; PORTB.7=1; servo_on(); k=2; bm=1; }
if(read_adc(1)>350 && k==1 && bm==2) //
{ brenti(); OCR1A=255; OCR1B=255; PORTB.7=1; servo_on(); k=2; bm=1; } if(bm==1){ kiri_mundur(); OCR1A=130; OCR1B=130; delay_ms(250); bm=2; } } }; } void main(void) {
// Declare your local variables here
// Input/Output Ports initialization
// Port A initialization
// Func7=In Func6=Out Func5=Out Func4=Out Func3=Out Func2=In Func1=In Func0=In
// State7=T State6=0 State5=0 State4=0 State3=0 State2=T State1=T State0=T
B-17
DDRA=0x78;
// Port B initialization
// Func7=Out Func6=Out Func5=Out Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=0 State6=0 State5=0 State4=T State3=T State2=T State1=T State0=T
PORTB=0x00;
DDRB=0xE0;
// Port C 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
PORTC=0x00;
DDRC=0x00;
// Port D 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
PORTD=0x00;
DDRD=0x00;
// Port E initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=P State5=T State4=T State3=T State2=T State1=T State0=P
PORTE=0x41;
DDRE=0x00;
// Port F 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
PORTF=0x00;
DDRF=0x00;
// Port G initialization
// Func4=In Func3=In Func2=In Func1=In Func0=In
// State4=T State3=T State2=T State1=T State0=T
PORTG=0x00;
DDRG=0x00;
// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: Timer 0 Stopped
B-18
// OC0 output: Disconnected
ASSR=0x00;
TCCR0=0x00;
TCNT0=0x00;
OCR0=0x00;
// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: 10.800 kHz
// Mode: Ph. correct PWM top=00FFh
// OC1A output: Non-Inv.
// OC1B output: Non-Inv.
// OC1C output: Discon.
// Noise Canceler: Off
// Input Capture on Falling Edge
// Timer1 Overflow Interrupt: Off
// Input Capture Interrupt: Off
// Compare A Match Interrupt: Off
// Compare B Match Interrupt: Off
// Compare C Match Interrupt: Off
TCCR1A=0xA1; TCCR1B=0x05; TCNT1H=0x00; TCNT1L=0x00; ICR1H=0x00; ICR1L=0x00; OCR1AH=0x00; OCR1AL=0x00; OCR1BH=0x00; OCR1BL=0x00; OCR1CH=0x00; OCR1CL=0x00;
// Timer/Counter 2 initialization
// Clock source: System Clock
// Clock value: Timer2 Stopped
// Mode: Normal top=FFh
// OC2 output: Disconnected
TCCR2=0x00;
TCNT2=0x00;
OCR2=0x00;
B-19
// Clock source: System Clock
// Clock value: Timer3 Stopped
// Mode: Normal top=FFFFh
// OC3A output: Discon.
// OC3B output: Discon.
// OC3C output: Discon.
// Noise Canceler: Off
// Input Capture on Falling Edge
// Timer3 Overflow Interrupt: Off
// Input Capture Interrupt: Off
// Compare A Match Interrupt: Off
// Compare B Match Interrupt: Off
// Compare C Match Interrupt: Off
TCCR3A=0x00; TCCR3B=0x00; TCNT3H=0x00; TCNT3L=0x00; ICR3H=0x00; ICR3L=0x00; OCR3AH=0x00; OCR3AL=0x00; OCR3BH=0x00; OCR3BL=0x00; OCR3CH=0x00; OCR3CL=0x00;
// External Interrupt(s) initialization
// INT0: Off
// INT1: Off
// INT2: Off
// INT3: Off
// INT4: Off
// INT5: Off
// INT6: Off
// INT7: Off
EICRA=0x00;
EICRB=0x00;
EIMSK=0x00;
// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0x00;
B-20
// Analog Comparator initialization
// Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0x80;
SFIOR=0x00;
// ADC initialization
// ADC Clock frequency: 691,200 kHz
// ADC Voltage Reference: AREF pin
ADMUX=ADC_VREF_TYPE & 0xff;
ADCSRA=0x84;
// LCD module initialization
lcd_init(16);
// aktif();
p=0; //cek lorong (ga pake ping>>
n=0; //ada d lorong
m=0; //var belum dapat posisi
k=0;
l=0; //posisi island
z=0; //api sudah padam cari home
counter=0;
//OCR1A = motor kiri
//b= kanan
while (1)
{ sensor0(); //x depan
sensor2(); //xb
sensor3(); //xc kanan
sensor4(); //xd
sensor5(); //xe kanan
sensor6(); //xf
sensor7(); //xg kanan
if(m==0) //cari kiri
{
kiri();
OCR1A=150;
B-21
if (xb<10 && xd<9 && xf<8)
{k=1;} //sudah dapat tembok kiri
if (k==1) { brenti(); OCR1A=100; OCR1B=100; delay_ms(1000);
if (x>15 && xg>25) //cari posisi
{lz=0; //ini sebagai variable posisi robot di lorong
n=0; //ini sebagai variable posisi home non arbitary
k=0; //pengecekan posisi dihentikan
m=1;
}
else
{lz=1; //ini sebagai variable posisi home dan posisi robot...
n=1;
k=0; //pengecekan posisi dihentikan
m=1;}}
} //a1
}
if (m==1) ///sudah dapat posisi
{ //ini program navigasinya.
If(l==0)
{ //step 2 loop counter 3
if(x>12) //wall follower kiri
{
if(xd>25 && xb>27)
B-22
else if(xb<10) //asli 8
{ kanan_doank(); OCR1A=180; OCR1B=180; } else { maju(); OCR1A=150; OCR1B=150; } } else { kanan(); OCR1A=180; OCR1B=180; }
if(read_adc(1)>500 && read_adc(0)<=300)
{s1=1;
};
if(s1==1) //depan sudah pintu putih.
{if(read_adc(0)>500 && read_adc(1)<=300)
{ brenti(); OCR1A=200; OCR1B=200; delay_ms(400); counter=counter+1;
p=1; //cek ruang
}
if(p==1)
{
if(PINE.3==1&&lz==0) //tidak ada api dan posisi di lorong
B-23
OCR1A=120; OCR1B=120; delay_ms(600); kanan(); OCR1A=200; OCR1B=200; delay_ms(900); maju(); OCR1A=150; OCR1B=150; delay_ms(900);p=0; //cek ruang selesai
s1=0; //cek pintu selesai
}
else if(PINE.3==0&&lz==0) //ada api dan posisi di lorong
{maju(); //masuk ruang
OCR1A=130; OCR1B=130; delay_ms(250); brenti(); OCR1A=130; OCR1B=130; Counter=0; z=1; p=0; s1=0; lz=1; }
else if(lz==1) //keluar ruang
{maju(); OCR1A=130; OCR1B=130; delay_ms(500); p=0; s1=0; lz=0; };
} //b2
B-24
if (counter>=3)
{
if (xf<13 && xg<10) //pindah island
{if (read_adc(1)<300 && read_adc(0)<300 && read_adc(1)>200 &&read_adc(0)>200)
{l=1;} //harus pindah island
} } } } if (l==1) {
if(x>8) //wall follower kanan
{
if(xe>25 && xc>27)
{ kanan(); OCR1A=180; OCR1B=100; delay_ms(100); } else if(xc<10) { kiri_doank(); OCR1A=180; OCR1B=180; }
else if(xb<13) //asli 8
B-25
else { kiri(); OCR1A=180; OCR1B=180; }if(read_adc(1)>500 && read_adc(0)<=300) {s1=1;
};
if(s1==1) //depan sudah pintu putih.
{if(read_adc(0)>500 && read_adc(1)<=300)
{ brenti(); OCR1A=200; OCR1B=200; delay_ms(400); counter=counter+1;
p=1; //cek ruang
}
if(p==1)
{
if(PINE.3==1&&lz==0) //tidak ada api dan posisi di lorong
{mundur(); //balik lorong()
OCR1A=120; OCR1B=120; delay_ms(600); kanan(); OCR1A=200; OCR1B=200; delay_ms(900); maju(); OCR1A=150; OCR1B=150; delay_ms(900);
p=0; //cek ruang selesai
s1=0; //cek pintu selesai
}
B-26
{maju(); //masuk ruang
OCR1A=130; OCR1B=130; delay_ms(250); brenti(); OCR1A=130; OCR1B=130; z=1; p=0; s1=0; lz=1; }
else if(lz==1) //keluar ruang
{maju(); OCR1A=130; OCR1B=130; delay_ms(500); p=0; s1=0; counter=0; lz=0; };
} //b4
}; } If(z==1)
{ if(x>12)
{
if(xd>25 && xb>27)
B-27
kiri_doank();
OCR1A=180;
OCR1B=180;
}
else if(xb<10) //asli 8
{ kanan_doank(); OCR1A=180; OCR1B=180; } else { maju(); OCR1A=150; OCR1B=150; } } else { kanan(); OCR1A=180; OCR1B=180; } if(n==0)
{
if(s2==0)
{
if(read_adc(1)>500 && read_adc(0)<=300)
{s1=1;
};
if(s1==1)
{if(read_adc(0)>500 && read_adc(1)<=300)
{mundur(); //balik lorong()
B-28
delay_ms(900);
maju();
OCR1A=150;
OCR1B=150;
delay_ms(900);
s1=0; } }
else
{
if(read_adc(1)>500 && read_adc(0)<=300)
{s1=1;
};
if(s1==1)
{if(read_adc(0)>500 && read_adc(1)<=300)
{maju(); //keluar ke lorong()
OCR1A=120;
OCR1B=120;
delay_ms(200);
s2=0; }}
};
}
};
};
LAMPIRAN C
DATASHEET
Sensor Ultrasoni
k (SRF05)………...
C-1
Sensor Api
(UVTron)………
C-4
Modul C3704………..
C-6
1
Universitas Kristen MaranathaBAB I
PENDAHULUAN
Bab ini akan membahas mengenai latar belakang beserta masalah dan
batasannya dari pembuatan navigasi robot. Bab ini juga berisi mengenai tujuan
pembuatan navigasi robot serta keseluruhan isi laporan.
I.1. LATAR BELAKANG
Dengan semakin berkembangnya persaingan pada kompetisi robot KRCI
yang diadakan oleh direktorat jendral pendidikan dari tahun ke tahun, maka
diperlukan adanya peningkatan daya saing robot. Algoritma navigasi robot
merupakan salah satu factor penting dalam peningkatan daya saing robot.
Perancangan algoritma navigasi robot pada kompetisi KRCI ini bertujuan
agar robot dapat menjelajahi semua ruang sehingga dapat menemukan api dan
memadamkannya. Perancangan algoritma ini diharapkan dapat diaplikasikan pada
robot divisi berkaki maupun beroda dalam menyelesaikan maze.
Algoritma navigasi robot yang dihasilkan dalam Tugas Akhir ini, dapat
mengitari
maze, menuju semua ruang, menemukan api, dan kembali ke
home
dengan waktu yang lebih singkat. Dengan demikian maka waktu yang diperlukan
dalam menyelesaikan misi akan semakin kecil, dan memperbesar peluang
memenangkan kompetisi tersebut.
Pada perlombaan KRCI yang sudah dilakukan sebelumnya
menggunakan
navigasi
wall-follower kiri yang memiliki kelebihan yaitu dapat
start dari semua
ruang pada maze kecuali ruang 4 yang berada pada island terpisah di dalam maze,
dan dapat kembali ke home. Tetapi navigasi tersebut masih terdapat kekurangan,
yaitu tidak dapat menjelajahi ruang 4 dan tidak dapat menjelajahi ruang lain jika
start di ruang 4 karena ketiga ruang tersebut berada pada
island yang berbeda
dengan ruang 4. Sehingga dibutuhkan algoritma navigasi baru yang dapat
2
Universitas Kristen MaranathaI.2. IDENTIFIKASI MASALAH
Masalah dalam Tugas Akhir ini adalah :
a.
Bagaimana robot dapat masuk ke semua ruang dan berpindah island?
b.
Bagaimana robot tidak menjelajahi ruang yang tidak ada apinya ?
I.3. TUJUAN
Tujuan dari Tugas Akhir ini adalah membuat algoritma agar menavigasikan
robot dapat mencari api kemudian kembali ke home pada KRCI 2011 dengan start
dari sembarang ruang.
I.4. PEMBATASAN MASALAH
Mengingat luasnya masalah mengenai perancangan navigasi robot , maka
untuk menyederhanakan permasalahan, laporan Tugas Akhir ini dibatasi dengan
batasan sebagai berikut:
1.
Aturan dan kelengkapan
maze mengacu pada ketentuan lomba KRCI
2011
[4]baik divisi beroda maupun berkaki.
a.
Robot bernavigasi dalam
maze yang terdiri dari 4 ruang dan koridor
antar ruang dengan dimensi maksimum 248 cm x 248 cm x 30 cm.
b.
Lantai
maze beralaskan karpet berwarna abu-abu, tengah dari maze
beralaskan karpet berwarna hitam.
c.
Konfigurasi lapangan ada 64 buah yang dibagi berdasarkan posisi
Start (home),titik api dan posisi pintu pada ruang 1 dan ruang 4 .
1.
Start di HOME , posisi api berada di antara ruang 1, ruang 2,
ruang 3, atau ruang 4. Dengan pintu ruang 1 dan ruang 4 yang
dapat berubah (16 konfigurasi).
2.
Start di ruang 1, posisi api berada di antara ruang 2, ruang 3,
atau ruang 4. Dengan pintu ruang 1 dan ruang 4 yang dapat
berubah (12 konfigurasi)
3.
Start di ruang 2, posisi api berada di antara ruang 1, ruang 3,
atau ruang 4. Dengan pintu ruang 1 dan ruang 4 yang dapat
3
Universitas Kristen Maranatha4.
Start di ruang 3, posisi api berada diantara ruang 1, ruang 2,
atau ruang 4. Dengan pintu ruang 1 dan ruang 4 yang dapat
berubah (12 konfigurasi)
5.
Start di ruang 4, posisi api berada diantara ruang 1, ruang 2,
atau ruang 3. Dengan pintu ruang 1 dan ruang 4 yang dapat
berubah (12 konfigurasi)
[image:60.595.242.436.271.477.2]d.
Gambar lapangan yang digunakan pada KRCI 2011 ditunjukkan oleh
Gambar 1.1
Gambar 1.1 denah lapangan KRCI 2011
Posisi pintu pada ruang1 dan ruang 4 dapat berubah-ubah, dapat
4
Universitas Kristen MaranathaGambar 1.2 Posisi pintu ruang 1 dan ruang 4 (4 konfigurasi pintu)
I.5. SISTEMATIKA PENULISAN
Penyusunan laporan Tugas Akhir terdiri dari lima bab sebagai berikut:
Bab I PENDAHULAN
Bab ini membahas mengenai latar belakang, perumusan masalah, tujuan,
pembatasan masalah, dan sistematika penulisan.
Bab II LANDASAN TEORI
Bab ini membahas mengenai dasar teori teknik navigasi yang akan digunakan
robot dalam menjelajahi maze.
Bab III PERANCANGAN DAN REALISASI
5
Universitas Kristen MaranathaBab IV DATA PENGAMATAN DAN ANALISIS
Bab ini membahas mengenai data dan analisis kinerja dari robot menggunakan
navigasi.
Bab V KESIMPULAN DAN SARAN
Bab ini membahas mengenai kesimpulan dari pembuatan navigasi dengan robot
85
Universitas Kristen MaranathaBAB V
KESIMPULAN DAN SARAN
Pada bab ini akan dijelaskan tentang simpulan dari Tugas Akhir dan saran-saran
yang perlu dilakukan untuk pengembangan lebih lanjut di masa mendatang.
V.1 KESIMPULAN
Dengan memperhatikan data pengamatan dan analisis pada bab sebelumnya,
Dapat disimpulkan bahwa:
1.
Robot FireBolt mampu bernavigasi dalam mencari api tanpa harus masuk
menjelajahi ruang yang tidak terdapat api.
2.
OCR pada robot FireBolt masih belum optimal dengan terdapatnya kegagalan
dalam bernavigasi seperti tersangkut dan tidak mendeteksi pintu.
3.
Pada pengujian navigasi mencari api didapatkan persentasi keberhasilan untuk
masing-masing konfigurasi, yaitu:
a.
Persentasi keberhasilan 100% untuk konfigurasi
Non-Arbitary
Home
dengan titik api pada Ruang 1.
b.
Persentasi keberhasilan 100% untuk konfigurasi
Non-Arbitary
Home
dengan titik api pada Ruang 2.
c.
Persentasi keberhasilan 100% untuk konfigurasi
Non-Arbitary
Home
dengan titik api pada Ruang 3.
d.
Persentasi keberhasilan 100% untuk konfigurasi
Non-Arbitary
Home
dengan titik api pada Ruang 4.
e.
Persentasi keberhasilan 100% untuk konfigurasi
Arbitary
Home
(Ruang
1) dengan titik api pada Ruang 2.
f.
Persentasi keberhasilan 100% untuk konfigurasi
Arbitary
Home
(Ruang
1) dengan titik api pada Ruang 3.
g.
Persentasi keberhasilan 92.5% untuk konfigurasi
Arbitary
Home
86
Universitas Kristen Maranathah.
Persentasi keberhasilan 100% untuk konfigurasi
Arbitary
Home
(Ruang
2) dengan titik api pada Ruang 1.
i.
Persentasi keberhasilan 100% untuk konfigurasi
Arbitary
Home
(Ruang
2) dengan titik api pada Ruang 3.
j.
Persentasi keberhasilan 82.5% untuk konfigurasi
Arbitary
Home
(Ruang 2) dengan titik api pada Ruang 4.
k.
Persentasi keberhasilan 100% untuk konfigurasi
Arbitary
Home
(Ruang
3) dengan titik api pada Ruang 1.
l.
Persentasi keberhasilan 100% untuk konfigurasi
Arbitary
Home
(Ruang
3) dengan titik api pada Ruang 2.
m.
Persentasi keberhasilan 77.5% untuk konfigurasi
Arbitary
Home
(Ruang 3) dengan titik api pada Ruang 4.
n.
Persentasi keberhasilan 62.5% untuk konfigurasi
Arbitary
Home
(Ruang 4) dengan titik api pada Ruang 1.
o.
Persentasi keberhasilan 52.5% untuk konfigurasi
Arbitary
Home
(Ruang 4) dengan titik api pada Ruang 2.
p.
Persentasi keberhasilan 65% untuk konfigurasi
Arbitary
Home
(Ruang
4) dengan titik api pada Ruang 3.
4.
Secara keseluruhan pengujian navigasi mencari api tanpa harus menjelajahi
ruang yang tidak terdapat api mempunyai tingkat keberhasilan sebesar
89.53125%. Namun masih terdapat kegagalan menjalankan navigasi
khususnya pada
Arbitary
Home
(ruang 4) tempat sering terjadinya kegagalan
salah program.
5.
Kelebihan dari navigasi ini adalah dapat mempersingkat waktu pencarian api,
87
Universitas Kristen MaranathaV.2 SARAN
Saran-saran yang dapat diberikan untuk perbaikan dan pengembangan dari Tugas
Akhir ini adalah sebagai berikut:
1.
Robot perlu diberikan regulator pada power suply motor DC agar output dari motor
DC lebih stabil.
2.
Pengaturan akan OCR yang lebih presisi agar dapat bernavigasi dengan lincah tanpa
tersangkut.
3.
Penggunaan sensor kompas dalam maneuver kembali ke lorong agar robot tidak
salah belok sehingga menyebabkan robot tersangkut di persimpangan ruang dan
juga agar robot tidak masuk pada ruang tersebut.
4.
Pengenalan
maze
yang lebih mendalam mengenai ciri khusus pada masing-masing
88 Universitas Kristen Maranatha
DAFTAR PUSTAKA
1.
Andrianto, H.,
Buku Panduan : Pelatihan Mikrokontroler AVR ATmega16
,
2008.
2.
Budiharto, W.,
Membuat Robot Cerdas
, Jakarta : Gramedia, 2006.
3.
Goris, Kristof. 2004. Autonomous Mobile Robot Mechanical Design.
Thesis
.
Vrije Universiteit Brussel.
4.
Panduan KRCI 2011 (Beroda
–
Berkaki
–
Battle
) Final.pdf
5.
Pitowarno, E.,
Robotika Disain, Kontrol, Dan Kecerdasan Buatan
, Edisi
ke-1, Yogyakarta:Andi, 2006.
6.
Sigit,
Riyanto.
Robotika,
Sensor,
Dan
Aktuator
,
Edisi
ke-1,
Yogyakarta:Graha Ilmu, 2007.
7.
http://www.enotes.com/topic/Maze_solving_algorithm
8.
http://209.85.175.190/watch?v=6OzpKm4te-E
9.
http://www.cs.berkeley.edu/~kamil/teaching/sp03/031703.pdf
10.
http://www.astrolog.org/labyrnth/algrithm.htm
11.
http://www.atmel.com
12.
http://www.parallax.com
13.
http://www.robokits.co.nz/ZX-03_IR_Sensor_Resource_Page
14.
http://www.robot-electronics.co.uk/htm/srf05tech.htm
15.
http://www.robotshop.com/world/devantech-ultrasonic-range-finder-srf05-1.html
16.
http://www.robotstorehk.com/R2868.pdf
17.
http://www.atmel.com/dyn/resources/prod_documents/doc2542.pdf
18.
http://www.robot-electronics.co.uk/htm/srf05tech.htm