i ROBOT PENYELESAIAN MAZE MOHD HAFIZ BIN MOHD AMBAR Laporan projek ini dikemukakan sebagai memenuhi sebahagian daripada Syarat Penganugerahan Ijazah Sarjana Muda Sains (Sains Komputer) Fakulti Sains Komputer dan Sistem Maklumat Universiti Teknologi Malaysia Mei , 2010
137
Embed
ROBOT PENYELESAIAN MAZE MOHD HAFIZ BIN …ir.fsksm.utm.my/8/1/mohdhafizbinmohdambarac073085do7ttt.pdf · menjadi sistem kawalan lengkap. ... 4.5 Skematik Basic stamp 2 39 4.6 Motor
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
i
ROBOT PENYELESAIAN MAZE
MOHD HAFIZ BIN MOHD AMBAR
Laporan projek ini dikemukakan sebagai memenuhi sebahagian daripada
Syarat Penganugerahan Ijazah Sarjana Muda Sains (Sains Komputer)
Fakulti Sains Komputer dan Sistem Maklumat
Universiti Teknologi Malaysia
Mei , 2010
ii
PSZ 19 : 16 : (Pind.1/97)
UNIVERSITI TEKNOLOGI MALAYSIA
CATATAN * Potong yang tidak berkenaan.
** Jika tesis ini SULIT atau TERHAD, sila lampirkan surat daripada pihak berkuasa,organisasi berkenaan dengan menyatakan sekali sebab dan tempoh tesis ini perlu dikelaskan sebagai SULIT atau TERHAD.
Tesis dimaksudkan sebagai tesis bagi Ijazah Doktor Falsafah dan Sarjana secara penyelidikan, atau disertasi bagi pengajian secara kerja kursus dan penyelidikan, atau Laporan Projek Sarjana Muda (PSM).
BORANG PENGESAHAN STATUS TESIS
JUDUL : ROBOT PENYELESAIAN MAZE
SESI PENGAJIAN : 2009/2010 - 2 Saya MOHD HAFIZ BIN MOHD AMBAR mengaku membenarkan tesis ( PSM/Sarjana/Doktor Falsafah )* ini disimpan di Perpustakaan Universiti Teknologi Malaysia dengan syarat-syarat kegunaan seperti berikut :
1. Tesis adalah hakmilik Universiti Teknologi Malaysia. 2. Perpustakaan Universiti Teknologi Malaysia dibenarkan membuat salinan untuk tujuan pengajian sahaja. 3. Perpustakaan dibenarkan membuat salinan tesis ini sebagai bahan pertukaran antara institusi pengajian tinggi. 4. **Sila tandakan ( )
SULIT
TERHAD TIDAK TERHAD Disahkan oleh
(TANDATANGAN PENULIS) (TANDATANGAN PENYELIA)
Alamat Tetap : 21, JLN KALONG SATU, DR. MOHD MURTADHA BIN MOHAMAD TAMAN KOBENA, 81200 JOHOR BAHRU,
JOHOR DARUL TAKZIM.
Tarikh : 01 MEI 2010 Tarikh : 01 MEI 2010
(Mengandungi maklumat yang berdarjah keselamatan atau kepentingan Malaysia seperti yang termaktub di dalam AKTA RAHSIA RASMI 1972)
(Mengandungi maklumat TERHAD yang telah ditentukan oleh organisasi/badan di mana penyelidikan dijalankan)
√
iii
Saya akui karya yang berjudul ”Robot Penyelesaian Maze” ini adalah hasil kerja
saya sendiri kecuali nukilan dan ringkasan yang tiap satunya telah saya jelaskan
Pada asalnya dua pengesan diletakan di belakang dan satu di depan.Oleh
kerana aturcara kawalan motor servo dalam kiraan masa, robot akan bergerak dari
satu kotak ke satu kotak. Kebarangkalian pengesan inframerah belakang tidak
mengesan ruangan pada petak baru akan berlaku. Rujuk rajah 5.15 dibawah.
61
Rajah 5.15: Ralat pengesan
5.5 Navigasi Robot
Sebelum program direka, program yang terdiri daripada banyak fungsi perlu
diketahui dan ia perlu diberi perhatian. Ini kerana ada banyak keadaan yang robot
akan tempuh ketika menjelajahi maze. Didalam bahagian ini, masalah yang
kompleks akan dipecahkan kepada bahagian-bahagian kecil agar lebih mudah untuk
diselesaiakan. Untuk melaksanakanya, penghuraian tindakan robot untuk bergerak
melalui setiap keadaan dilakukan sebelum mengabungkan seluruh fungsi-fungis
tersebut. Ini akan menjimatkan masa berbanding membina seluruh fungsi dahulu
kerana jika sebarang masalah timbul, bahagian yang perlu diperbetulkan dapat
dikenalpasti dengan cepat.
Didalam menentukan navigasi robot, lapan keadaan dapat dikenalpasti yang
bakal dilalui oleh robot adalah seperti rajah 5.16 berikut.
62
Rajah 5.16: Lapan keadaan yang akan dilalui oleh robot
Dari segi algoritma pula, jika pengesan mengesan objek ia akan ditandakan
dengan ’1’ dan jika tidak dapat mengesan objek akan ditanda kan ’0’. Keadaan yang
menyebabkan robot perlu membuat pilihan juga telah dikenalpasti. Bagi menentukan
bagaimana robot membuat pemilihan laluan, robot perlu membuat pengiraaan
berdasarkan algoritma yang dibina. Oleh yang demikian algoritma keadaan yang
dikenalpasti adalah seperti jadual 5.3 dibawah.
Jadual 5.3: Algoritma keadaan robot
Pengesan Keadaan Pengiraan
Kiri(IN0) Kanan(IN2) Depan(IN5)
0 0 0
Ya
63
0 0 1
Ya
0 1 0
Ya
0 1 1
Tidak
1 0 0
Ya
1 0 1
Tidak
1 1 0
Tidak
1 1 1
Tidak
Algoritma keadan diatas sangat berguna untuk membuat aturcara kerana sebahagian
besar projek ini bergantung kepada keadaan pengesan dan keadaan sekeliling robot.
64
5.5.1 Bergerak Kehadapan
Oleh kerana robot perlu bergerak dari satu titik ke titik yang seterusnya di
dalam maze, kita harus memperlahankan durasi motor servo pada asas PULSOUT
850, 650. Ini akan membantu memastikan bahawa pembacaan pengesan lebih cekap
sebagai robot menjelajah maze. Untuk memperlahankan gerakan kehadapan, nilai
PULSOUT 750 motor servo menyebabkan arah putaran motor di tengah-tengah iaitu
tiada putaran. Nilai PULSOUT melebihi 750 menyebabkan motor servo membuat
putaran melawan arah jam. Manakala PULSOUT kurang dari 750 menyebabkan
motor servo membuat putaran mengikut arah jam. Kelajuan gerakan motor boleh
ditentukan dengan nilai PULSOUT tersebut. Semakin dekat nilai dengan 750
semakin lambat gerakan motor tersebut.
Rajah 5.17: Keratan aturcara bergerak kehadapan
Di dalam aturcara bergerak kehadapan di atas, terdapat fungsi FOR…NEXT
di mana ia menentukan masa putaran motor servo. Dibawah adalah contoh fungsi
FOR…NEXT yang menyebabkan motor berputar beberapa saat.
' {$STAMP BS2} ' {$PBASIC 2.5} pulseCount VAR Word PAUSE 3000 'tunggu 3 saat start : IF IN5 = 1 AND IN0 = 1 THEN forward 'jika pin5 dan pin0 ada halangan pergi ke 'forward' IF IN2 = 1 THEN END GOTO start 'kembali kepada 'start' forward : FOR pulseCount = 1 TO 15 PULSOUT 8, 650 PULSOUT 9, 850 PAUSE 50 NEXT PAUSE 1000 GOTO start
65
Rajah 5.18: Aturcara putaran motor
Setiap masa loop, arahan PULSOUT bertahan selama 1.7 ms, fungsi PAUSE adalah
20ms dan ia mengambil masa dalam 1.3 m untuk arahan dilaksanakan.
Sekali putaran = 1.7ms + 20ms + 1.3ms = 23.0 ms
Oleh kerana loop telah diletakkan sebanyak 100 kali, maka
Masa = 100 x 23.0 ms
= 2.30 s
Untuk aturcara bergerak ke hadapan diatas, robot akan bergerak kehadapan selama
0.8 s. ia cukup untuk bergerak dari kotak pertama iaitu titik pertam ke titik
seterusnya(kotak kedua).
Rajah 5.19 :Bergerak dari satu kotak ke satu kotak
FOR pulseCount = 1 TO 100 PULSOUT 13, 850 PAUSE 20 NEXT
66
5.5.2 Bergerak 90o ke Kiri
Setelah selesai membuat kaleborasi pergerakan robot kehadapan, langkah
seterusnya adalah membuat kaleborasi putaran 90 darjah ke kiri. Didalam keadaan
ini, robot dapat mengesan halangan pada pengesan hadapan dan pengesan kanan
tetapi tidak mengesan sebarang halangan pada pengesan kiri. Maka robot perlu
membuat putaran ke kiri tanpa perlu membuat sebarang pengiraan algoritma.
Pengaturcaraan bergerak kehadapan digunakan lagi didalam aturcara bergerak 90
darjah ke kiri. Semasa membuat putaran, kedudukan robot tidak berubah dan robot
perlu bergerak kehadapan untuk ke petak seterusnya.
Rajah 5.20 : Keratan aturcara putaran ke kiri
' {$STAMP BS2} ' {$PBASIC 2.5} pulseCount VAR Word PAUSE 3000 'Mula aturcara dalam kiraan 3 saat start : IF IN5 = 1 AND IN2 = 1 THEN ' pengesan 2 dan 5 aktif PAUSE 1000 'diam 1 saat GOSUB Left 'pergi ke sub program ENDIF 'Kembali ke Start GOTO start Left: FOR pulseCount = 1 TO 18 'pusingan ke kiri 90 darjah PULSOUT 8, 650 PULSOUT 9, 650 PAUSE 20 NEXT FOR pulseCount = 1 TO 15 ' bergerak ke hadapan PULSOUT 8, 650 PULSOUT 9, 850 PAUSE 50 NEXT GOTO start
67
Rajah 5.21: Pusing ke Kiri
5.5.3 Bergerak 90o ke Kanan
Setelah selesai membuat kaleborasi pergerakan robot ke kiri, langkah
seterusnya adalah membuat kaleborasi putaran 90 darjah ke kanan. Didalam keadaan
ini, robot ini juga dapat mengesan halangan pada pengesan hadapan dan pengesan
kiri tetapi tidak mengesan sebarang halangan pada pengesan kanan. Maka robot
perlu membuat putaran ke kanan tanpa perlu membuat sebarang pengiraan algoritma.
Pengaturcaraan bergerak kehadapan juga digunakan didalam aturcara ini.
68
Rajah 5.22 : Keratan aturcara putaran ke kanan
Rajah 5.23: Bergerak ke kanan
' {$STAMP BS2} ' {$PBASIC 2.5} pulseCount VAR Word PAUSE 3000 'Mula aturcara dalam kiraan 3 saat start : IF IN2 = 1 AND IN0 = 1 THEN ' pengesan 2 dan 0 aktif PAUSE 1000 'diam 1 saat GOSUB Right 'pergi ke sub program ENDIF GOTO start 'Kembali ke Start Right: FOR pulseCount = 1 TO 15 ' pusingan ke kanan 90-darjah PULSOUT 8, 850 PULSOUT 9, 850 PAUSE 20 NEXT FOR pulseCount = 1 TO 15 ' bergerak ke hadapan PULSOUT 8, 650 PULSOUT 9, 850 PAUSE 50 NEXT GOTO start
69
5.5.4 Jalan Mati (Deadend)
Jalan mati merupakan salah satu laluan yang akan dilalui oleh robot di dalam
maze. Laluan ini tidak mempunyai simpang yang boleh dilalui melainkan selain
membuat pusingan 180 darjah. Didalam keadaan ini, kesemua pengesan akan
mengesan dinding dan pengesan akan ditandakan ’1’.
Rajah 5.24 : Keratan aturcara putaran jalan mati
' {$STAMP BS2} ' {$PBASIC 2.5} pulseCount VAR Word PAUSE 3000 start : IF IN5 = 1 AND IN0 = 1 AND IN2 = 1 THEN ' kesemua pengesan ada halangan PAUSE 1000 'diam 1 saat GOSUB deadend 'pergi ke sub program ENDIF GOTO start deadend: FOR pulseCount = 1 TO 33 ' Pusingan 180 darjah PULSOUT 8, 650 PULSOUT 9, 650 PAUSE 20 NEXT FOR pulseCount = 1 TO 15 ' Bergerak kehadapan PULSOUT 8, 650 PULSOUT 9, 850 PAUSE 50 NEXT RETURN
70
Rajah 5.25: Jalan mati
5.6 Kepintaran Buatan
Didalam projek ini, algoritma yang digunakan adalah sangat kritikal kerana ia
menentukan kejayaan projek ini. Algoritma yang biasa digunakan seperti algoritma
’Flood Field’ atau ’A-Star’ agak sukar untuk diimplimentkan kepada aturcara yang
boleh difahami oleh mikropemproses. Masalah yang timbul akan dibincangkan pada
Bab 6. Oleh yang demikian, algoritma yang bersesuaian dicipta dengan
pengaturcaraan yang digunakan. Algoritma ini berpandukan kepada koordinat titik
pada maze.
Bagi menjelaskan algoritma ini, rekaan maze secara rawak akan digunakan
untuk pengujian. Maze tersebut adalah seperti rajah 5.26. dibawah.
71
Rajah 5.26 : Contoh maze
Sebelum aturcara dimulakan, nilai awal telah ditetapkan dimana arah robot
diletakan ke arah utara dan koordinat asal adalah (0,0). Destinasi maze adalah sama
ada (7,7), (7,8), (8,7), atau (8,8). Titik tengah diantara kesemua koordinat deatinasi
adalah (7.5, 7.5). Oleh itu, setiap koordinat baru yang memerlukan pengiraan akan
mengira jarak dari lokasi ke destinasi. Berikut merupakan contoh pengiraan.
Contoh :
Jarak diantara dua titik
A (13,5) dan B(6,7)
Rumus jarak AB = √( (x1-x2)2 + (y1-y2)2 )
Oleh itu Jarak AB = √( (13-6)2 + (5-7)2 )
= 7.28
72
Pengiraan koordinat baru perlu dimasukkan ke dalam algoritma menyelesaikan
maze. Oleh kerana algoritma menggunakan kaedah koordinat, maze seolah-olah
mempunyai paksi-x dan paksi-y.
Rajah 5.27 : Koordinat maze
Katakan robot didalam kedudukan X. Robot bekemungkinan menghadap ke
utara, timur, selatan atau barat. Setiap arah ini mempunyai pengiraan yang berbeza
untuk mendapatkan koordinat baru. Jadual dibawah(Jadual 5.4) menunjukkan
pengiraan yang terlibat didalam menentukan koordinat baru dan arah baru selepas
pengiraan dibuat.
73
Jadual 5.4 : Pengiraan koordinat
Arah Pergerakan
Maju Kiri Kanan Undur
Utara y=y+1
x=x
Arah=Utara
y=y
x=x – 1
Arah=Barat
y=y
x=x + 1
Arah=Timur
y=y-1
x=x
Arah=Selatan
Timur y=y
x=x + 1
Arah=Timur
y=y+1
x=x
Arah=Utara
y=y - 1
x=x
Arah=Selatan
y=y
x=x – 1
Arah=Barat
Selatan y=y-1
x=x
Arah=Selatan
y=y
x=x+1
Arah=Timur
y=y
x=x-1
Arah=Barat
y=y+1
x=x
Arah=Utara
Barat y=y
x=x – 1
Arah=Barat
y=y-1
x=x
Arah=Selatan
y=y+1
x=x
Arah=Utara
y=y
x=x + 1
Arah=Selatan
Sebagai contoh, katakan robot dalam kedudukan X dan menghadap ke timur.
Koordinat semasa adalah (5,2). Robot menjumpai simpang-T dan mempunyai
pilihan sama ada mahu bergerak ke kiri atau ke kanan seperti di dalam Rajah 5.28
dibawah.
Rajah 5.28 : Contoh masalah maze
Oleh kerana robot menghadap ke arah timur dan mempunyai pilihan ke kiri atau
kekanan, robot akan membuat pengiraan koordinat baru berpandukan jadual 5.4
Koordinat semasa = (5,2).
74
Kiri robot :
x = 5
y = 2 + 1
Koordinat kiri,A = (5,3)
Kanan robot :
x = 5
y = 5 -1
Koordinat kanan, B = (5,1)
Pengiraan jarak:
Koordinat destinasi = (7.5,7.5)
Koordinat kiri,A = (5,3)
Jarak dari A ke destinasi = √( (7.5-5)2 + (7.5-3)2 )
= 5.14
Koordinat kanan,B = (5,1)
Jarak dari B ke destinasi = √( (7.5-5)2 + (7.5-1)2 )
= 6.96
Daripada pengiraan diatas, petak sebelah kiri mempunyai jarak yang lebih
kecil. Oleh itu robot akan belok ke kiri dan arah robot akan berubah dari timur ke
arah utara. Keadaan koordinat semasa robot ketika ini adalah (5,3) dan mengarah ke
utara. Setiap keadaan yang ditempuhi oleh robot akan melalui proses pengiraan yang
sama. Proses ini akan berterusan sehingga koordinat destinasi tercapai.
5.7 Implimentasi Aturcara
Setelah aturcara pacuan motor servo dan proses pengiraan telah diperolehi,
aturcara untuk menyelesaikan maze yang lengkap boleh dibina. Aturcara lengkap
75
robot penyelesaian maze boleh dirujuk di Lampiran C. Aturcara berikut
menunjukkan keadaan robot didalam maze sama ada menghadap ke utara, timur,
selatan ataupun barat.
Rajah 5.29: Keratan aturcara arah robot
PUtara: IF IN0=1 AND IN5=1 AND IN2=0 THEN GOSUB PUtaraMaju ELSEIF IN0=1 AND IN5=1 AND IN2=1 THEN GOSUB PUtaraUndur ELSEIF IN0=0 AND IN5=1 AND IN2=1 THEN GOSUB PUtaraKiri ELSEIF IN0=1 AND IN5=0 AND IN2=1 THEN GOSUB PUtaraKanan ELSE GOSUB Pengiraan ENDIF PTimur: IF IN0=1 AND IN5=1 AND IN2=0 THEN GOSUB PTimurMaju ELSEIF IN0=1 AND IN5=1 AND IN2=1 THEN GOSUB PTimurUndur ELSEIF IN0=0 AND IN5=1 AND IN2=1 THEN GOSUB PTimurKiri ELSEIF IN0=1 AND IN5=0 AND IN2=1 THEN GOSUB PTimurKanan ELSE GOSUB Pengiraan ENDIF PSelatan: IF IN0=1 AND IN5=1 AND IN2=0 THEN GOSUB PSelatanMaju ELSEIF IN0=1 AND IN5=1 AND IN2=1 THEN GOSUB PSelatanUndur ELSEIF IN0=0 AND IN5= 1 AND IN2=1 THEN GOSUB PSelatanKiri ELSEIF IN0=1 AND IN5=0 AND IN2=1 THEN GOSUB PSelatanKanan ELSE GOSUB Pengiraan ENDIF PBarat: IF IN0=1 AND IN5=1 AND IN2=0 THEN GOSUB PBaratMaju ELSEIF IN0=1 AND IN5=1 AND IN2=1 THEN GOSUB PBaratUndur ELSEIF IN0=0 AND IN5=1 AND IN2=1 THEN GOSUB PBaratKiri ELSEIF IN0=1 AND IN5=0 AND IN2=1 THEN GOSUB PBaratKanan ELSE GOSUB Pengiraan ENDIF
76
Di dalam rajah 5.29 diatas, arah robot diwakilkan dengan PUtara, Ptimur,
Pselatan dan PBarat. Setiap kelas aturcara terdiri daripada aturcara pengesan
inframerah untuk memberitahu keadaan sekitar robot. Pengesan infaramerah
ditandakan ‘IN0’ untuk pengesan kiri, ‘IN2’ untuk pengesan depan dan ‘IN5’ untuk
pengesan kanan. Jika terdapat objek atau dinding di hadapan pengesan, pengesan
itu akan ditandakan HIGH atau ‘1’. Jika tiada apa-apa halangan ia akan ditandakan
LOW atau ‘0’ .
Lihat aturcara kelas PUtara(Rajah 5.29). Fungsi IF….ELSE yang pertama
menunjukkan ‘IN0’ dan ‘IN5’ dalam keadaan HIGH dan ‘IN2’ dalam keadaan
LOW. Ini bermakna robot yang menghadap ke utara perlu bergerak ke hadapan
tanpa melakukan pengiraan. Fungsi aturcara GOSUB adalah untuk berpindah
kepada kelas yang lain dan akan kembali kepada aturcara asal dengan adanya fungsi
RETURN. Jadi aturcara akan ke kelas PUtaraMaju untuk bergerak. Jika keadaan
pengesan tiada didalam senarai tersebut, ia akan jatuh kepada fungsi pengiraan.
Aturcara akan pergi ke kelas Pengiraan. Untuk menentukan laluan yang paling baik.
Fungsi arah PUtara ,PTimur,PSelatan dan PBarat perlu diasingkan kerana fungsi
GOSUB kepada aturcara seterusnya berbeza.
Rajah 5.30 dibawah menunjukkan implimentasi daripada jadual 5.4
berkenaan dengan pengiraan koordinat baru robot. Seperti yang telah diterangkan
tadi, bacaan pengesan mengikut arah robot berbeza dengan operasi penambahan dan
penolakan koordinat paksi-x dan paksi-y. Setelah operasi ini selesai, koordinat baru
akan diperolehi dan arah juga akan berubah. Proses setakat ini menunjukkan cara
bagaimana robot menjelajah maze tanpa menjumpai sebarang simpang yang
memaksa robot menggunakan kepintaran buatan. Aturcara didalam rajah 5.30
dibawah juga akan digunakan didalam aturcara kepintaran buatan
77
Rajah 5.30 : Keratan aturcara mengira koordinat
PUtaraMaju : y = y + 1 GOSUB Maju GOSUB Destinasi GOTO PUtara PUtaraUndur : y = y - 1 Arah = Selatan GOSUB Undur GOSUB Destinasi GOTO PSelatan PUtaraKiri : x = x - 1 Arah = Barat GOSUB Kiri GOSUB Destinasi GOTO PBarat PUtaraKanan : x = x + 1 Arah = Timur GOSUB Kanan GOSUB Destinasi GOTO PTimur . . . . . PBaratMaju : x = x - 1 GOSUB Maju GOSUB Destinasi GOTO PBarat PBaratUndur : x = x + 1 Arah = Timur GOSUB Undur GOSUB Destinasi GOTO PTimur PBaratKiri : y = y - 1 Arah = Selatan GOSUB Kiri GOSUB Destinasi GOTO PSelatan PBaratKanan : y = y + 1 Arah = Utara GOSUB Kanan GOSUB Destinasi GOTO PUtara
78
Jika dilihat didalam kelas yang pertama didalam rajah 5.30 diatas, terdapat
operasi pengiraan koordinat diikuti ‘GOSUB Maju’. ‘Maju’ adalah aturcara
pergerakan robot. Setelah robot bergerak, kelas ‘GOSUB Destinasi’ seperti di dalam
rajah 5.31 akan menentukan sama ada robot akan meneruskan aturcara atau berhenti.
Rajah 5.31 : Keratan aturcara tiba di destinasi atau tidak
Dalam kelas ini, nilai ‘x’ dan nilai ‘y’ semasa akan titentukan sama ada
didalam julat yang ditetapkan. Jika koordinat semasa dalam julat tersebut, proses
akan dihentikan. Jika koordinat tidak di dalam julat, kitaran aturcara akan diteruskan
sehingga tiba ke destinasi.
Seterusnya merupakan pengiraan jika robot melalui persimpangan. Di dalam
aturcara ini, Arah utara, timur, selatan dan barat masih diasingkan. Dalam keadaan
ini, robot dianggap perlu memilih untuk belok ke kiri, terus atau belok ke kanan.
Jadi koordinat ketiga-tiga laluan ini dikira. Pengiraan ini ditunjukkan di dalam
keratan aturcara didalam rajah 5.32 dibawah. Nilai untuk koordinat kiri, koordinat
depan dan koordinat kanan akan diperolehi dan maklumat ini akan diambil untuk
proses mengiraan jarak. Fungsi’ GOSUB Kirajarak’ akan menuding aturcara ke
Destinasi :
IF x=7 AND y=7 THEN
GOTO Berhenti
ELSEIF x=7 AND y=8 THEN
GOTO Berhenti
ELSEIF x=8 AND y=7 THEN
GOTO Berhenti
ELSEIF x=8 AND y=8 THEN
GOTO Berhenti
ELSE
RETURN
ENDIF
79
kelas Kirajarak. Berpandukan rajah 5.33 , ia menunjukkan rumus jarak diantara dua
titik koordinat. Rumus itu ditulis secara kiri ke kanan iaitu konsep pengiraan
matematik yang boleh difahami oleh bahasa PBASIC.
Rajah 5.32 : Keratan aturcara pengiraan pelbagai koordinat
Pengiraan : IF Arah = Utara THEN Kirix = x - 1 Kiriy = y Depanx = x Depany = y + 1 Kananx = x + 1 Kanany = y GOSUB Kirajarak GOSUB Periksapengesan ELSEIF Arah = Timur THEN Kirix = x Kiriy = y + 1 Depanx = x + 1 Depany = y Kananx = x Kanany = y + 1 GOSUB Kirajarak GOSUB Periksapengesan ELSEIF Arah = Selatan THEN Kirix = x + 1 Kiriy = y Depanx = x Depany = y - 1 Kananx = x - 1 Kanany = y GOSUB Kirajarak GOSUB Periksapengesan ELSE Kirix = x Kiriy = y - 1 Depanx = x - 1 Depany = y Kananx = x Kanany = y + 1 GOSUB Kirajarak GOSUB Periksapengesan ENDIF
80
Rajah 5.33: Keratan aturcara rumus
Di dalam bahasa PBASIC, SQR bermaksud punca kuasa dua. Setelah Nilai
JKiri, JDepan dan JKanan diperolehi, Kitaran aturcara akan dituding semula ke
kelas ‘pengiraan’ (Rujuk rajah 5.32). Kemudian aturcara dituding kepada kelas
‘Periksapengesan’. Tujuan kelas ‘Periksapengesan’ adalah untuk menentukan
keadaan pengesan inframerah iaitu mendapatkan maklumat laluan (Rujuk rajah
5.34).
Rajah 5.34 : Keratan aturcara periksa pengesan
Sebagai contoh keadaan pengesan dimana kesemua pengesan dalam keadaan
LOW ataupun ‘0’. Ia akan dituding kepada kelas LRF. LRF adalah singkatan nama
dalam bahasa ingeris ‘Left,Right,Front’ yang bermaksud kiri,kanan dan depan. Ini
menunjukkan kiri, kanan dan depan boleh dilalui mengikut nilai terkecil diantara
jarak yang sudah dikira tadi. Aturcara seperti didalam rajah 5.35 menunjukkan cara
nilai jarak koordinat tadi dipilih.
Periksapengesan : IF IN0=0 AND IN5=0 AND IN2=0 THEN LRF IF IN0=0 AND IN5=0 AND IN2=1 THEN LNR IF IN0=0 AND IN5=1 AND IN2=0 THEN LNF IF IN0=1 AND IN5=0 AND IN2=0 THEN FNR
Rajah 5.35: Keratan aturcara pemilihan jarak terdekat
Sebagai contoh, nilai JKiri adalah nilai yang paling kecil. Aturcara akan jatuh
kepada syarat pertama dan keadaan arah akan disemak bagi menentukan proses yang
seterusnya. Jika ‘Arah’ semasa adalah utara, makan aturcara akan dituding ke
‘PUtaraKiri’. Nilai koorninat semasa akan dikira untuk mendapatkan koordiant baru
dan proses penentuan destinasi robot akan dibuat sekali lagi. Jika robot sudah tiba ke
destinasi, pelaksanaan aturcara akan berhenti. Jika berlaku sebaliknya, aturcara akan
diteruskan.
Jika pengesan inframerah mengesan kurang dari tiga laluan, aturcara
pemilihan laluan adalah seperti di dalam rajah 5.36 dibawah. Nilai ‘JDepan’ akan
dijadikan seratus. Tujuan nilai ini ditetapkan adalah untuk memastikan aturcara
tidak melalui syarat yang ketiga. Perkara ini berlaku kerana jarak dari koordinat
semasa ke destinasi tidak akan mencecah seratus. Ini membolehkan aturcara jatuh
kepada syarat pertama atau kedua. Syarat ketiga tidak dapat dilalui kerana terdapat
dinding pada laluan tersebut.
LRF : IF (JKiri<JDepan)AND(JKiri<JKanan)THEN IF Arah = Utara THEN PUtaraKiri IF Arah = Timur THEN PTimurKiri IF Arah = Selatan THEN PSelatanKiri IF Arah = Barat THEN PBaratKiri ELSEIF (JDepan<JKiri)AND(JDepan<JKanan)THEN IF Arah = Utara THEN PUtaraMaju IF Arah = Timur THEN PTimurMaju IF Arah = Selatan THEN PSelatanMaju IF Arah = Barat THEN PBaratMaju ELSE IF Arah = Utara THEN PUtaraKanan IF Arah = Timur THEN PTimurKanan IF Arah = Selatan THEN PSelatanKanan IF Arah = Barat THEN PBaratKanan ENDIF RETURN
82
Rajah 5.36: Keratan aturcara pemilihan antara dua laluan
5.8 Pengujian Aturcara
Cara kerja aturcara ini akan diuji menggunakan keadaan maze secara
rawak(Rujuk rajah 5.26). Robot akan diletakkan pada penjuru kiri bawah bagi
memulakan penjelajahan maze. Rajah 5.37 dibawah menunjukkan bagaimana
aturcara beroperasi bersama pengesan inframerah dan maze. Lampiran F akan
menjelaskan bahagian yang memerlukan pengiraan. Rujuk rajah 5.37 untuk
panduan pergerakan robot. Cara pengiraan adalah mengikut bahasa PBASIC. Nilai
yang diperolehi adalah dalam bentuk intiger.
Anak panah di dalam maze adalah laluan yang tidak memerlukan pengiraan.
Ruang yang yang dinomborkan adalah kawasan yang memerlukan pengiraan.
LNF : JKanan = 100 IF (JKiri<JDepan)AND(JKiri<JKanan)THEN IF Arah = Utara THEN PUtaraKiri IF Arah = Timur THEN PTimurKiri IF Arah = Selatan THEN PSelatanKiri IF Arah = Barat THEN PBaratKiri ELSEIF (JDepan<JKiri)AND(JDepan<JKanan)THEN IF Arah = Utara THEN PUtaraMaju IF Arah = Timur THEN PTimurMaju IF Arah = Selatan THEN PSelatanMaju IF Arah = Barat THEN PBaratMaju ELSE ENDIF RETURN
83
Rajah 5.37: Laluan Robot
5.9 Rumusan
Peringkat pengujian adalah penting bagi melihat segala ralat atau hasil
pengiraan yang lebih jelas. Implimentasi bagi projek ini dapat dijalankan mengikut
perancangan. Bab seterusnya merupakan bab terakhir yang akan membincangkan
mengenai perbincangan dan kesimpulan. Segala kelebihan, kekangan, kelemahan
serta pencapaian yang telah didapati dalam menghasilkan projek ini juga turut
dibincangkan bagi memudahkan penambahbaikan di masa akan datang.
84
BAB 6
PERBINCANGAN DAN KESIMPULAN
6.1 Pengenalan
Bab ini merumuskan secara keseluruhan projek yang siap dihasilkan. Secara
keseluruhannya, projek yang telah dilaksanakan memiliki kelebihan dan kelemahan yang
tersendiri. Pembincangkan mengenai kelebihan, dan kekurangan yang dihadapi akan
dinyatakan secara terperinci bagi memudahkan pembaharuan atau naik taraf fungsi robot
telah yang dihasilkan.
6.2 Kelebihan Projek
Hasil projek yang dibuat adalah memenuhi matlamat dan objektif yang telah
digariskan. Robot ini dapat bergerak secara automatik sepanjang maze. Komunikasi
antara pelbagai peranti seperti pengesan inframerah dan motor servo adalah dalam
keadaan baik. Selain itu, struktur robot ini lebih ringkas dan tidak dibebani dengan
komponen yang sangat kompleks.
85
Penggunaan bekalan kuasa yang sedikit membolehkan robot membawa
beberapa biji bateri sahaja sepanjang maze. Oleh itu, tekanan terhadap kemampuan
motor membawa beban dapat dikurangkan. Motor yang boleh dikawal kelajuan dan
darjah pusingan membantu pengaturcara untuk meningkatkan lagi ketepatan
pusingan dan gerakan robot. Daripada analisa yang telah dibuat terhadap projek-
projek yang sedia ada, kebanyakkan ciri-ciri kebaikan dapat dipenuhi seperti :
i. Saiz robot yang kecil
ii. Penggunaan jumlah bekalan kuasa yang sedikit iaitu 6V
iii. Tayar dililit dengan getah untuk mengukuhkan cengkaman pada lantai
maze
iv. Kelajuan pergerakan robot sesuai iaitu bergerak dari satu kotak ke satu
kotak bagi memastikan algoritma dapat di laksanakan dengan sempurna
dan dapat mengelakan dari berlakunya pelanggaran dengan dinding.
6.3 Kelemahan Projek
Selain dari kebaikan yang ditonjolkan didalam penghasilan projek ini, projek
ini juga terdiri daripada kelemahan yang diantaranya termasuklah :
i. Jika maze banyak melibatkan pusingan dan gerakan, kebaragkalian
bekalan kuasa tidak mencukupi boleh berlaku.
ii. Robot tidak mempunyai fungsi mengetengahkan robot ditengah litar.
Oleh itu, robot berpotensi untuk melanggar dinding dan mengganggu
proses algoritma
iii. Pengesan inframerah yang digunakan adalah jenis mengesan keadaan
’HIGH’ dan ’LOW’. Jika menggunakan pengesan ultrasonik, kelajuan
dan gerakan boleh diaturcara dengan lebih optimum. Pantulan denyut
pengesan ultrasonik boleh menyukat jarak dan setiap jarak yang disukat
boleh diselitkan operasi lain.
iv. Kelajuan robot terhad.
v. Bahasa aturcara mudah tetapi penghasilan aplikasi dari bahasa tersebut
adalah terhad kerana ia lebih sesuai dalam aplikasi mudah.
86
6.4 Kekangan Dan Cabaran
Terdapat beberapa kekangan dan cabaran yang telah dikenalpasti semasa projek
ini dilaksanakan. Antara kekangan yang dikenlpasti adalah seperti berikut :-
i. Proses pembelian komponen utama adalah secara atas talian kerana
komponen tersebut tiada dijual di sekitar Johor Bahru.
ii. Sebarang masalah mengenai aturcara perlu ditangani sendiri kerana tidak
ramai yang mahir atau tahu mengunakan bahasa PBASIC.
iii. Kebanyakkan harga komponen agak mahal.
iv. Litar inframerah yang direka sendiri mudah mengalami kerosakan kerana di
dalam fasa pengujian, pengesan inframerah sering mengalami hentakan dan
pelanggarang dengan dinding maze.
v. Fasa pembinaan litar utama memakan masa yang lama kerana fungsi
mikropengawal, pengesan inframerah dan motor servo sering mengalami
kegagalan dan tidak stabil.
6.5 Cadangan Pembaikan Projek
Oleh kerana jangka masa pembangunan aturcara dan peranti adalah terhad,
projek ini hanya mampu menyokong beberapa fungsi penting sahaja. Cadangan
untuk meningkatkan keupayaan robot ini adalah seperti berikut :-
i. Aturcara bagi memastikan robot tidak melanggar dinding mestilah ada supaya
sebarang kerosakan peranti dan gangguan algoritma boleh dikurangkan
ii. Motor yang digunakan mestilah mampu membawa beban yang lebih berat
dan masih berkemampuan untuk bergerak dengan pantas.
iii. Pengesan yang digunakn lebih peka dan mampu menyukat jarak
iv. Struktur fizikal robot mestilah kecil dan ringan
87
6.6 Rumusan
Dengan adanya projek robot menyelesaian maze ini, ia boleh menjadi batu
loncatan kepada aplikasi lain yang lebih baik. Projek ini boleh dikembangkan untuk
menjadi projek seperti Robot Pendidiakan Aturcara, Robot Pemetaan Pelan, Robot
kawalan keselamatan dan bermacam-macam lagi.
Selain itu, projek ini juga adalah merupakan usaha menerajui perkembangan
teknologi yang selaras dengan kemajuan negara. Walaubagaimanapun, beberapa
kelemahan yang terdapat pada robot diharapkan dapat diperbaiki pada masa yang
akan datang bagi menghasilkan projek yang lebih interaktif , pelbagai guna dan
futuristik untuk kegunaan orang ramai pada masa yang akan datang.
88
RUJUKAN
[1] Universiti Teknologi Malaysia (1999). “Panduan Menulis Tesis.” Edisi Ketiga,
Penerbit Universiti Teknologi Malaysia
[2] Rujukan Laman web:
http:// www.micromouseinfo.com (diambil pada 06.07.2009)
[3] Rujukan Laman web:
http:// www.mobots.com (diambil pada 20.07.2009)
[4] Louis Wong Siang San. 2006. Micromouse The Maze Solving Robot.