ROBOT PENYELESAIAN MAZE MOHD HAFIZ BIN...
Transcript of ROBOT PENYELESAIAN MAZE MOHD HAFIZ BIN...
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
sumbernya.
Tandatangan : .................................................
Nama Penulis : Mohd Hafiz Bin Mohd Ambar
Tarikh : 1 Mei 2010
iv
PENGHARGAAN
Bersyukur saya kehadrat ilahi kerana dengan limpah kurnianya akhirnya saya
dapat menyiapkan Projek Sarjana Muda 2 saya dengan jayanya. Pertama sekali saya
ingin tujukan ucapan ribuan terima kasih dan penghargaan kepada penyelia saya, Dr
Mohd Murtadha Bin Mohamad yang telah memberikan tunjuk ajar dan nasihat
kepada saya.
Saya ingin mengucapkan ribuan terima kasih kepada ibu dan ayah saya yang
telah banyak memberi semangat dan perangsang untuk saya terus berusaha demi
menjamin masa depan saya.
Tidak lupa ucapan terima kasih saya tujukan kepada rakan-rakan yang telah
banyak memberi bimbingan, tunjuk ajar serta meluangkan masa dan tenaga
sepanjang saya menyiapkan projek ini. Kepada sahabat yang sudi memberi idea dan
pandangan bagi memastikan projek ini berjaya, segala sumbangan dan bantuan
kalian amat saya hargai dan saya kenang selamanya.
v
ABSTRAK
Pertandingan IEEE micromouse merupakan satu pertandingan yang popular
antara jurutera dan pelajar kejuruteraan. Objektif micromouse adalah mencari laluan
ke lokasi tengah dalam sebuah maze yang tidak ditentukan. Projek ini merangkumi
dua bahagian iaitu bahagian pembinaan perkakasan robot dan bahagian pembinaan
aturcara kawalan. Proses pembinaan perkakasan robot adalah merangkumi
pembinaan litar utama yang menggunakan mikropengawal ‘Micro Basic Stamp’
yang akan mengawal tingkahlaku pengesan inframerah dan motor servo. Secara
amnya, bahagian pengaturcaraan dibahagikan kepada dua fasa. Fasa pertama adalah
membangun dan menguji aturcara bagi setiap modul gerakan dan pengesanan secara
individu. Manakala fasa berikutnya ialah menggabungkan setiap modul untuk
menjadi sistem kawalan lengkap. Sebuah maze yang mempunyai 16x16 petak dibina
untuk menguji keseluruhan sistem robot. Robot yang dibangunkan mampu mencari
laluan ke petak tengah maze yang diberikan tanpa bantuan dan akan menghasilkan
laluan yang terpendek dari petak permulaan ke petak tengah maze tersebut.
vi
ABSTRACT
The IEEE micromouse competition has been a popular event among
engineering students and engineers. A micromouse is an autonomous vehicle whose
objective is to find the centre of an unknown maze. The project consist of two major
parts. The first part is micromouse hardware assembly and the second part is
programming the micromouse. The hardware assembly is including the integrated
main board that consist of Micro Basic Stamp microcontroller that controlling the
Infrared sensor and the servo motors behavior. The programming part consists of
two phases. The first phase is developing individual module of micromouse basic
movement. The second phase is to integrate the developed modules as a complete
micromouse control system. Sixteen cell maze is built in order to test the overall
system of the robot. As a result the robot will autonomously travel from the starting
cell to the centre of the maze without external help and manage to find the shortest
path from the mapping system after completely navigate the maze.
vii
Kandungan
Bab Kandungan Halaman
Abstrak iv
Kandungan vi
Bab 1 Pengenalan Projek
1.1 Pengenalan 1
1.2 Latar Belakang Masalah 3
1.3 Kepentingan Projek 4
1.4 Matlamat Projek 5
1.5 Objektif 5
1.6 Skop Projek 5
1.7 Kesimpulan 7
Bab 2 Kajian Literature
2.1 Pengenalan 8
2.2 Kajian Terhadap Projek Robot 8
2.3 Algoritma Micromouse 9
2.3.1 Algoritma ‘Flood-Fill’(Bellman flooding) 9
2.3.2 Algoritma ‘A-Star’ 13
2.4 Model Micromouse 17
2.4.1 Micromouse Mobot 17
2.4.2 Dexter Micromouse 18
2.4.3 Micromouse UTM FYP 2006 19
2.4.4 Micromouse University of East London 20
viii
2.5 Undang-Undang Pertandingan Micromouse 21
2.6 Analisis Projek Micromouse 21
2.7 Rumusan 23
Bab 3 Metadologi
3.1 Pengenalan 24
3.2 Methodologi Model Air Terjun 25
3.4 Kaedah Pembangunan Projek 26
3.4.1 Fasa Perancangan 26
3.4.2 Fasa Analisis 27
3.4.3 Fasa Rekabentuk Robot 28
3.4.4 Fasa Pengkodan 29
3.4.5 Fasa Pengujian 30
3.4.6 Fasa Penyelenggaraan 31
3.5 Analisa dan Spesifikasi Keperluan 32
3.5.1 Keperluan perkakasan dan Perisaian 32
3.5.2 Perkakasan 32
3.5.3 Spesifikasi Perkakasan 32
3.5.4 Justifikasi Perkakasan 33
3.5.5 Perisian 34
3.5.6 Spesifikasi Perisian 34
3.6 Rumusan 34
Bab 4 Rekabentuk Projek
4.1 Pengenalan 35
4.2 Rekabentuk Senibina Sistem/Aplikasi 35
4.3 Cadangan Rekabentuk Robot 36
4.4 Peranti dan Komponen Utama 38
4.4.1 Mikropengawal BASIC Stamp 38
4.4.2 Motor Servo 41
4.4.3 Pengesan Inframerah 42
4.5 Aturcara Bahasa PBASIC 44
4.5.1 Elimen Bahasa PBASIC 45
ix
4.5.2 Operasi Pengiraan PBASIC 45
4.6 Ciri-Ciri Pembaikan 46
4.7 Rekabentuk Aliran Proses 47
4.7.1 Muat Turun Aturcara 47
4.7.2 Proses Robot 50
4.8 Rumusan 51
Bab 5 Hasil Projek
5.1 Pengenalan 52
5.2 Pembinaan Litar Utama dan Komponen-komponen
Robot
52
5.3 Pembinaan Maze 57
5.4 Rekaan Robot 58
5.5 Navigasi Robot 61
5.5.1 Bergerak Kehadapan 64
5.5.2 Bergerak 900 Ke Kiri 66
5.5.3 Bergerak 900 Ke Kanan 67
5.5.4 Jalan Mati (Deadend) 69
5.6 Kepintaran Buatan 70
5.7 Implimentasi Aturcara 74
5.8 Pengujian Aturcara 82
5.9 Rumusan 83
Bab 6 Perbincangan Dan Kesimpulan
6.1 Pengenalan 84
6.2 Kelebihan Projek 84
6.3 Kelemahan Projek 85
6.4 Kekangan Dan Cabaran 86
6.5 Cadangan Pembaikan Projek 86
6.6 Rumusan 87
Rujukan 88
Lampiran A
xi
Senarai Jadual
Bab Nombor Tajuk Halaman
2 2.1 Analisa Algoritma 21
2.2 Analisa Model Micromouse 22
3 3.1 Spesifikasi Perkakasan 31
4 4.1 Spesifikasi Mikropengawal 39
4.2 Pin Basic Stamp 2 40
4.3 Spesifikasi Motor Servo 41
5 5.1 Pin Transistor 54
5.2 Bahagian struktur robot 59
5.3 Algoritma keadan robot 62
5.4 Pengiraan koordinat 73
xii
Senarai Rajah
Bab Nombor Tajuk Halaman
1 1.1 Plan maze yang digunakan 6
2 2.1 Tatasusunan Bellman flooding 10
2.2 Rajah Blok untuk algoritma
Bellman Flooding
11
2.3 Peta laluan 13
2.4 Pengiraan pertama 14
2.5 Pengiraan kedua 14
2.6 Pengiraan ketiga 15
2.7 Pengiraan keempat 15
2.8 Pengiraan kelima 16
2.9 Pengiraan keenam 16
2.10 Micromouse Mobot 17
2.11 Dexter di dalam maze 18
2.12 Pandangan Depan dan belakang
Dexter
19
2.13 Pandangan sisi Dexter 19
2.14 Micromouse UTM FYP 2006 19
2.15 Micromouse University of East 20
xiii
London
3 3.1 Rajah Model metodologi air
terjun
25
3.2 Rajah Blok Fasa Analisis 27
3.3 Rajah Blok Fasa Rekabentuk
Robot
28
3.4 Rajah Blok Fasa Pengkodan 29
3.5 Rajah Blok Fasa Pengujian 31
4 4.1 Rekaan Robot 36
4.2 Aras Satu Robot 37
4.3 Aras Dua Robot 37
4.4 Basic Stamp 2 Mikropengawal 38
4.5 Skematik Basic stamp 2 39
4.6 Motor Servo 41
4.7 Membuat Tetapan Titik Tengah 41
4.8 Keratan aturcara tetapan titik
tengah
42
4.9 Pengesan inframerah 42
4.10 Litar pengesan inframerah 43
4.11 Cara kerja pengesan inframerah 43
4.12 Litar Utama 44
4.13 Carta alir memuat turun aturcara 47
4.14 Kompil aturcara 48
4.15 Kesalahan dalam aturcara 48
4.16 Memuat turun aturcara ke dalam
mikropengawal
49
4.17 SEBI Board memuat turun 49
xiv
aturcara
4.18 Carta alir kerja robot 50
5 5.1 Rajah Blok litar 53
5.2 Litar PCb 53
5.3 Litar Utama 54
5.4 Transistor 54
5.5 BASIC Stamp II 55
5.6 Micro BASIC Modules 55
5.7 Pin Micro BASIC Modules 56
5.8 Pengesan Optikal Inframerah 57
5.9 Kerja-kerja memasang maze 57
5.10 Maze siap dipasang 58
5.11 Prototaip robot 58
5.12 Rekaan Akhir 59
5.13 Kedudukan pengesan 60
5.14 Keberkesanan pengesan 60
5.15 Ralat pengesan 61
5.16 Lapan keadaan yang akan dilalui
oleh robot
62
5.17 Keratan aturara bergerak ke
hadapan
64
5.18 Aturcara putaran motor 65
5.19 Bergerak dari satu kotak ke satu
kotak
65
5.20 Keratan aturcara putaran ke kiri 66
5.21 Pusingan ke kiri 67
5.22 Keratan aturcara putaran ke kanan 68
5.23 Bergerak ke kanan 68
xv
5.24 Keratan aturcara putaran jalan
mati
69
5.25 Jalan mati 70
5.26 Contoh maze 71
5.27 Koordinat maze 72
5.28 Contoh masalah maze 73
5.29 Keratan aturcara arah robot 75
5.30 Keratan aturcara mengira
koordinat
77
5.31 Keratan aturcara tiba di destinasi
atau tidak
78
5.32 Keratan aturcara pengiraan
pelbagai koordinat
79
5.33 Keratan aturcara rumus 80
5.34 Keratan aturcara periksa
pengesan
80
5.35 Keratan aturcara pemilihan jarak
terdekat
81
5.36 Keratan aturcara pemilihan antara
dua laluan
82
5.37 Laluan robot 83
xvi
Senarai Lampiran
Tajuk Halaman
A Carta Gantt xv
B Undang-Undang Pertandingan Micromouse xvii
C Aturcara Lengkap xxi
D Diagram Litar xxxiii
E Pertandingan micromouse xxxv
F Proses Pengiraan Robot xxxviii
1
BAB 1
PENGENALAN PROJEK
1.1 Pengenalan
Sejak beberapa dekad yang lalu, peranan robot dalam industri mahupun
kehidupan sehari-hari semakin meningkat. Hampir tidak ada cabang industri
teknologi tinggi yang tidak dibantu robot. Dalam kehidupan sehari-hari, pelbagai
bentuk robot dicipta untuk membantu atau memudahkan aktiviti manusia. Ada robot
yang digunakan di dalam perindustrian yang bentuknya hanya seperti lengan
mekanikal atau robot rumah tangga untuk membersihkan lantai yang bentuknya
hanya seperti alas kaki.
Semakin canggih dan merbahaya pekerjaan di sebuah industri, pemanfaatan
alat bantu robot makin tidak dapat dihindarkan. Sebagai contoh yang digunakan
ketika ini ialah robot pengesan kualiti di industri berat, robot untuk mencari dan
memusnahkan ranjau atau robot perlombongan minyak, serta robot yang bekerja
mengendali bahan kimia yang beracun dan merbahaya. Mungkin boleh dikatakan
2
bahawa teknologi robotik yang disebut sebagai robot cerdas yang dicipta untuk
membuat pekerjaan tertentu mempunyai ciri-ciri untuk menyerupai manusia.
Di satu sisi penggunaan robot akan mengurangkan peluang pekerjaan bagi
manusia. Di sisi lainnya, ternyata penggunaan robot memang membuat pekerjaan
menjadi lebih mudah. Sebagai contoh seperti di kilang kereta. Kerata banyak
membuat proses kimpalan dan membuat pemasangan menggunakan nat. Bayangkan
kerja-kerja ini dilakukan oleh tenaga manusia. Mungkin kenderaan yang mampu
dibuat hanya sebuah untuk seminggu. Dengan kewujudan robot, proses penghasilan
kereta lebih banyak dan cepat serta mempunyai kualiti yang lebih baik. Sudah tentu
perkembangan teknologi boleh diukur dengan penghasilan robot berkebolehan
tinggi. Dalam hal ini, teknologi kecerdasan buatan (Artificial Intelligance)
memainkan peranan yang besar.
Di dalam projek pembangunan robotik, robot ini juga membolehkan peluang
pekerjaan wujud. Kehadiran robot-robot ini boleh mendorong dalam perubahan
kaedah kerja, dari keadaan kepadatan kerja kepada menjadi padat dengan teknologi.
Pekerja yang melakukan tugas rutin selama bertahun-tahun akan dipacu menjadi
pekerja yang lebih banyak menggunakan pemikiran. Proses perubahan kerjaya juga
boleh berlaku.
Robot penyelesaian maze ialah robot ‘autonomous’ dimana sasaran utamanya
ialah untuk mencari kawasan tengah maze. Pada 1977, Majalah Spectrum IEEE
adalah yang pertama memperkenalkan idea robot Autonomous Micromouse sebagai
peranti menyelesaikan maze[1]. Pertandingan pertama IEEE dipanggil Amazing
Micromouse Maze Contest bertempat di New York pada June 1979. Lebih daripada
6000 penyertaan diterima, 50 micromouse diterima dimana pemenang bagi
pertandingan tersebut adalah Moonlight Flash, micromouse pengikut dinding tanpa
kepintaran. Populariti micromouse meningkat, dan pertandingan selepas itu
diadakan diserata dunia. Pertandingan diperingkat eropah diadakan buat pertama
3
kali di London pada tahun 1980, dan pertandingan micromouse dunia pertama yang
terbuka kepada seluruh peserta eropah dan Amerika Syarikat adalah di Tsukuba,
Jepun pada Ogos 1985.
Dari awal 1990, kelab Micromouse telah mula ditubuhkan di sekolah dan
Universiti diseluruh dunia. Pertandingan Micromouse IEEE sekarang mempunyai
peminat diantara para graduan dari pelbagai organisasi di seluruh dunia.
Micromouse semakin mendapat perhatian lebih sedekad. Micromouse pada awal
kemunculanya tidak mempunyai ciri-ciri teknologi dan elektronik yang maju
berbanding sekarang. . Tambahan lagi, sebahagian micromouse yang lain tidak
terbina dengan mikropemproses dalam rekaanya tetapi hanya semata-mata dengan
kaedah logik Litar Bersepadu yang mudah. Kelajuan tertinggi pada ketika itu
adalah 52cm per saat kerana menggunakan stepper motors untuk
menggerakkannya.
Micromouse pada ketika ini sangat memerlukan penggunaan elektronik yang
optimum, penggunaan teknologi micropemproses yang membolehkan micromouse
melaksanakan proses pelaksanaan berkomputer yang tidak dapat dilaksanakan ketika
dulu. Hasilnya, robot boleh diprogramkan dengan algoritma untuk mencari destinasi
maze. Motor, pengesan, litar bersepadu dan komponen lain telah dipertingkatkan
untuk membantu pereka robot. Bergantung kepada maze yang direka, micromouse
boleh bergerak selaju tiga meter sesaat . Secara keseluruhanya micromouse lebih
kecil, pantas dan lebih bijak berbanding micromouse yang dahulu.
1.2 Latar Belakang Masalah
Kelajuan perkembangan teknologi telah mendorong manusia melakukan
segala sesuatu pekerjan secara automatik berbanding secara manual. Dengan sebab
inilah suatu robot yang mempunyai tugas tertentu dicipta untuk menggantikan
pekerjan manusia, baik di dalam industri mahupun pekerjan manusia sehari-hari.
4
Penghasilan produk dengan cepat, berketepatan dan berkualiti merupakan faktor
utama terciptanya robot. Robot dapat bertindak balas dengan situasi dan keadaan
lingungan sekitar robot sehingga robot berkebolehan menggunakan konsep
kecerdasan buatan (Artifical Intelligent) dan konsep algoritma.
Beberapa penerapan robot pada masa ini antara lain ialah :
i. Mengelaskan kerangka kenderaan di industri pembuatan.
ii. Pencari dan pemadam sumber api
iii. Pelayan
iv. Robot Boneka
v. Robot Merawat pesakit
vi. Robot Perang (war robot)
vii. Robot Penjelajah.
Oleh itu sebuah robot penyelesaian maze ialah robot pintar yang berfungsi
untuk mencari laluan terpendek di dalam sesebuah maze. Jika di implimentasikan di
dalam dunia yang sebenar, robot ini boleh digunakan untuk membantu pihak bomba
mengesan laluan yang cepat dan betul untuk menyelamatkan mangsa. Penelitian dan
rancang untuk membangunkan robot ini, ia menggunakan pengesan yang
menjadikan mikropengawal BASIC Stamp sebagai platform utama. Robot ini
menggunakan lebih dari satu pengesan bagi meningkatkan kecekapan robot.
1.3 Kepentingan Projek
Bagi membolehkan robot memilih laluan yang betul di dalam sesebuah maze,
sebuah algoritma yang tertentu mesti dicipta. Robot ini bergerak berpandukan
algoritma yang dibangunkan di komputer dan di muaturun ke dalam mikropengawal.
Robot ini membantu kita untuk mengetahui laluan supaya dapat menjimatkan masa
untuk bergerak dari titik asalan ke destinasi. Walaupun projek ini pernah
dilaksanakan , tetapi dalam projek ini pengaturcaraan PBASIC Language
dipertengahkan yang aturcaranya lebih mudah dan ringkas.
5
1.4 Matlamat Projek
Membina sebuah robot dan aturcara yang boleh yang oleh berinteraksi antara
satu sama lain dimana robot boleh mengesan laluan dari titik asalan ke destinasi
sebuah maze.
1.5 Objektif
Objektif utama projek ini adalah untuk :-
i. Mengkaji penggunaan aplikasi yang dibangunkan sama ada bersesuaian
dengan robot yang di bangunkan
ii. Membangunkan sebuah robot serta programnya bagi menunjukkan
pergerakan atau laluan yang telah dilalui robot tersebut
iii. Menguji penggunaan robot tersebut untuk memastikan apa yang
dirancang mencapai ojektifnya.
1.6 Skop Projek
Projek ini adalah untuk membina robot yang boleh bergerak secara automatik
dan berfungsi untuk menyelesaikan maze dengan algoritma tertentu untuk
menghasilkan pergerakan yang lancar dalam suatu keadaan di dalam maze. Skop
projek adalah untuk menghasilkan robot yang interaktif diantara mikropengawal,
perkakasan dan perisian. Mikropengawal menerima maklumat tentang persekitaran
dan menyimpan maklumat maze dari dinding yang dikesan di dalam memori. Robot
yang bergerak secara automatik ini boleh melaksanakan algoritma menyelesaikan
maze ke kawasan tengah maze. Ukuran maze adalah tetap iaitu petak segiempat
sama bersisi panjang 18cm(rujuk Rajah 1.1). Segiempat sama tersebut disusun secara
16 x 16 baris lajur dan mempunyai dinding berketinggian 5cm dan ketebalan 1.2cm.
Robot juga tidak boleh menyentuh dinding maze dengan algoritma yang
6
membolehkan robot stabil dengan pergerakan tegak, membelok ke kiri dan kanan(90
darjah) dan putaran 180 darjah.
Robot ini menggunakan Parallax Microcontroller Basic Stamp 2 module
[11] yang berfungsi sebagai otak robot. Penggunaan teknologi mikropengawal
merupakan komponen utama di dalam membuat robot cerdas. Pergerakan robot
mengunakan dua buah motor servo yang memiliki kekuatan yang besar serta
pergerakan roda yang dapat berjalan ke depan dan ke belakang secara lancar. Oleh
kerana robot direka supaya dapat mengelak dari terkena dinding dan halangan, Robot
ini menggunakan pengesan infra merah.dan menggunakan kuasa batteri 9V untuk
mikropengawal dan 12V untuk kuasa pada motor servo.
Rajah 1.1 : Plan maze yang digunakan [14]
Robot ini bergerak menggunakan roda dan digerakkan menggunakan motor
servo. Keseluruhan robot ini dikawal oleh micropengawal dimana algoritma
program ini yang di bina di dalam komputer dan dimuaturun ke dalam ingatan
mikropengawal. Bahasa aturcara yang digunakan adalah PBASIC language. Skop
7
lain bagi projek ini pula berharap agar projek micromouse ini mempunyai perananya
yang tersendiri dalam membina serta membangunkan pengetahuan kejuruteraan
kerana ia banyak melibatkan elemen rekaan, kawalan, analisis dan macam-macam
lagi.
1.7 Kesimpulan
Rumusan yang dapat disimpulkan ialah terdapat beberapa perkara yang perlu
diambil kira iaitu mengenai pernyataan masalah, objektif yang perlu dicapai, skop
yang terlibat dalam projek ini. Ianya bertujuan memudahkan pihak pengurusan dan
juga pengguna menggunakan robot ini.
Kajian literatur akan diterangkan pada bab yang seterusnya yang mana akan
menerangkan mengenai semua sistem dan kaedah yang berkaitan dengan
pembangunan projek ini
8
BAB 2
KAJIAN LITERATUR
2.1 Pengenalan
Dalam bahagian ini, adalah penerangan berkenaan teknik-teknik dan juga
maklumat yang berkaitan dengan projek yang telah dibangunkan. Bagi melaksanakan
projek ini, kajian latar belakang dilakukan untuk mengumpul maklumat-maklumat
yang diperlukan dalam memudahkan lagi kerja pembangunan projek. Kajian ini
merangkumi tentang latar belakang masalah projek sedia ada, konsep dan teknik
penyelengaraan serta kajian terhadap bahasa pengaturcaraan dan perisian-perisian
yang akan digunakan untuk pembangunan projek
2.2 Kajian Terhadap Projek Robot
Sebelum sebarang kerja menghasilkan robot dilaksanakan, kajian dan analisa
mesti dilakukan bagi setiap komponen yang akan digunakan. Sebahagian besar
kajian adalah menerusi laman web. Selain daripada menggunkan internet sebagai
sumber maklumat, Perpustakaan Sultanah Zanariah dan Fakulti Sains Komputer dan
Sistem Maklumat juga memberikan maklumat tesis dari projek sarjana tahun
sebelumnya. Maklumat lain juga diambil dari dokumentasi pertandingan
9
micromouse itu sendiri. Dengan sedemikian, pemilihan mikropengawal, rekaan
kasis, keadaan tayar dan kedudukan pengesan boleh diputuskan. Bahagian ini adalah
fasa yang kritikal, dimana ia akan mempengaruhi keseluruhan projek. Terdapat dua
algoritma yang paling popular ketika ini iaitu Algoritma ‘A-Star’ dan Algoritma
‘Flood-Fill’[15]. Terdapat empat jenis model micromouse yang akan membantu
dalam proses mereka robot. Setiap spesifikasi model dianalisis dan diketogorikan
kepada kebaikan dan keburukan sebagai rujukan. Kelebihan setiap projek akan
diimplimentasikan ke dalam projek jika ianya bersesuaian dengan pertandingan
tersebut.
2.3 Algoritma Micromouse
Objektif utama algoritma penyelesaian maze adalah menentukan kedudukan
semasa robot dan kemana robot tersebut akan pergi selepas itu untuk ke tengah maze.
Robot akan menggunakan maklumat dinding yang disimpan ketika membuat
pergerakan didalam maze untuk menentukan laluan dari kotak permulaan ke kotak
tengah maze tersebut.
2.3.1 Algoritma ‘Flood-Fill’(Bellman flooding)
Algoritma Bellman flooding sangat popular di dalam menyelesaikan maze
pertandingan micromouse dan telah digunakan oleh beberapa pemenang kejuaraan
micromouse dunia[5]. Algoritma Bellman yang biasa dapat menyelesaikan maze
untuk mendapatkan laluan yang terpendek tetapi ia tidak selalunya terpantas. Untuk
mencari laluan yang tercepat ke tengah maze, ia sangat sesuaian untuk menggunakan
algoritma Bellman flooding dimana ia membanjiri maze(dalam bentuk pengiraan)
bagi mengetahui keadaan sekeliling maze. Kelebihan menggunkan algoritma
Bellman flooding adalah seperti berikut :
i. Tiada maze dalaman wujud selain yang telah dinyatakan di dalam peraturan
pertandingan. Biasanya hanya mempunyai parameter luaran.
10
ii. Petak sasaran dinomborkan dengan sifar. Kotak-kotak lain disambungkan
dengan petak sasaran tanpa dinding pembahagi, di mana setiap kotak
dinomborkan secara meningkat selangkah yang bermula dari destinasi.
iii. Pembanjiran akan berhenti jika kotak mempunyai nombor lain selain nombor
yang dihitung oleh kedudukan robot tersebut.
iv. Robot akan membuat pergerakan yang terbaik dari kedudukan semasa dengan
memilih nombor yang terendah di dalam maze tersebut.
v. Jika robot menghadapi situasi mempunyai dua laluan yang betul(dua nombor
yang sama), robot akan memilih laluan dalam turutan terus secara lurus tanpa
membelok kearah , timur, barat, utara atau selatan.
Contoh Bellman flooding dan arah tatasusunan ditunjukkan di bawah Rajah 2.1 dan
Rajah 2.1 : Tatasusunan Bellman flooding [5]
Di dalam rajah 2.1 diatas, setiap petak telah dibanjiri dengan nombor.
Nombor ini adalah jumlah langkah yang akan diambil untuk sampai ke tengah iaitu
‘0’. Katakan kita bermula dari kotak penjuru kiri yang ditandakan dengan nombor
11
10. Oleh kerana kiri dan kanan ada dinding jadi robot akan bergerak selangkah ke
hadapan. Pada kotak 9, robot ada dua pilihan untuk bergerak sama ada terus kekotak
yang bertanda 8 atau kotak bertanda 10. Robot akan bergerak kehadapan kerana
kotak tersebut mempunyai langkah atau bilangan kotak yang sedikit berbanding
bergerak ke sebelah kanan. Kaedah pemilihan kotak yang sama akan digunakan
sehingga menjumpai kotak 0 iaitu destinasi.
Rajah 2.2: Rajah Blok untuk algoritma Bellman Flooding
Rajah blok untuk algoritma Bellman flooding (rujuk Rajah 2.2) adalah kunci
pergerakan dalam menjelajah maze. Carta alir tersebut menerangkan dengan jelas
cara langkah-langkah kerja algoritma.
12
Langkah 1 : Tentukan posisi seterusnya dari kedudukan semasa. Ia menggunakan
maklumat dari tatasusunan Bellman flooding, bersama arah semasa robot. Ia hanya
mulakan langkah apabila robot berhampiran dengan destinasi yang diperlukan.
Langkah 2 : Tugas memandu robot terletak pada langkah terakhir. Walaupun tugas
ini tidak termasuk didalam algoritma menyelesaikan maze, setiap fasa mesti boleh
menyambungkan subfungsi ini.
Langkah 3: Memperbaharui maklumat dinding ketika bergerak dimana ia
dilaksanakan secara automatik oleh pengesan dan sub-sistem pengesan. Sub-sistem
pengesan menentukan bendera jika mana-mana maklumat dinding yang baru
diperolehi.
Langkah 4: Hanya dilaksanakan jika maklumat dinding berubah semasa pergerakan
ke destinasi yang diperlukan. Ini mengurangkan masa ketika hendak memproses
destinasi seterusnya
Langkah 5: Langkah terakhir di dalam proses pemeriksaan sama ada micromouse
telah sampai ke destinasi. Langkah termudah untuk memperolehi keadaan seperti ini
adalah memeriksa nombor Bellman posisi semasa micromose. Jika ia bernilai
kosong, maka arah kebanjiran mesti ditukar.
13
2.3.2 Algoritma ‘A-Star’
Algoritma pencarian A* atau disebut juga “A-star search”, merupakan format
best-fist search yang diketahui umum. Carian A* mengembangkan setiap nod
dengan cara mengabungkan g(n) dan h(n), dimana g(n) merupakan kos yang dicapai
sehingga di n, dan h(n) adalah anggaran kos untuk mencapai destinasi dari n.
Penilaian fungsi dari carian A* biasa dituliskan sebagai berikut :
f(n) = g(n) + h(n)
dimana f(n) merupakan anggaran jumlah kos dari laluan n sehingga destinasi[7].
Kaedah carian A* adalah lengkap dimana pengiraan ke destinasi boleh dicari
walaupun mempunyai banyak laluan. Masa penyelesaian adalah eksponen dan
kebanyakkan nod disimpan didalam memory. Berikut merupakan contoh
penyelesaian carian A* untuk mencari laluan optimum dari Bandar Arad ke
Bucherast. Di sebelah tepi peta adalah jarak laluan lurus ke Bucherast.
Contoh penyelesaian A* menggunakan pepohon [12]
Rajah 2.3 : Peta laluan
Langkah-langkah penyelesaian :
1. Titik asalan kita adalah Bandar Arad dan Destinasi adalah Bandar Bucherest.
Terdapat lebih dari satu laluan yang boleh digunakan. Berpandukan Rajah
14
2.4 dan rumus f(n) = g(n) + h(n). Penyelesaian A-Star adalah seperti
berikut:-
Rajah 2.4: Pengiraan Pertama
2. Berpandukan Rajah 2.3, Arad disambungkan dengan tiga laluan. Untuk
mencapai ke Bucherest kedudukan asalan akan ditambah dengan kedudukan
lurus ke Bucherast(rujuk Rajah 2.5 ).
Rajah 2.5 : Pengiraan kedua
Berpandukan Rajah 2.5, tiga lokasi yang boleh dilalui untuk ke
Bucherest adalah Sibui, Timisoara dan Zerind. Kaedah pengiraan yang sama
akan dilakukan dan Sibui mempunyai nilai yang terkecil. Oleh itu Sibiu
mempunyai kemungkinan menjadi laluan terdekat ke Bucherest.
3. Berpandukan Rajah 2.6, dari Sibui, Laluan yang boleh digunakan adalah
melalui Arad, Fagaras, Oradea dan Rimnicou Villcea. Pengiraan dibuat dan
Rimnicou Villcea mempunyai nilai terendah. Oleh itu Rimnicou Villcea
mempunyai kemungkinan menjadi laluan terdekat ke Bucherest.
15
Rajah 2.6: Pengiraan ketiga
4. Berpandukan Rajah 2.7, Caiova, Pitesti dan Sibui adalah lokasi yang
bersambungan dengan laluan ke Bucherest dari Rimnicou Villcea. Pengiraan
untuk Caiova, Pitesti dan Sibui juga perlu dibuat.
Rajah 2.7 : Pengiraan keempat
5. Dalam keadaan ini Fagaras mempunyai jalan terus ke Bucharest. Dari
pengiraan yang dibuat, untuk sampai ke destinasi melalui jalan Fagaras
adalah jauh. Oleh itu laluan dari Pitesti digunakan kerana nilainya adalah
kecil.
16
Rajah 2.8 : Pengiraan kelima
6. Berpandukan Rajah 2.9, Pitesti mempunyai sambungan terus ke Bucharest.
Setelah pengiraan dibuat, Jarak yang dilalui ke Bucharest terkecil dan ia juga
lebih kecil dari laluan dari Fagaras ke Bucharest. Oleh itu laluan yang akan
dipilih untuk ke Bucharest dari Arad adalah Arad ke Sibui ke Rimnicou
Villcea ke Petesti dan tiba di Bucharest.
Rajah 2.9 : Pengiraan keenam
17
2.4 Model Micromouse
Tujuan mencari maklumat mengenai model micromouse yang telah
dihasilkan adalah untuk mengenal pasti konsep yang digunakan. Idea yang telah
digunakan kemungkinan boleh diambil kebaikanya. Dan kelemahan yang dapat
dikenalpasti juga boleh digunakan untuk meningkatkan lagi kualiti dan keberkesanan
penghasilan projek micromouse ini.
2.4.1 Micromouse Mobot
Rajah 2.10 : Micromouse Mobot
Micromouse model Mobot[3] dicipta oleh pelajar dari India bernama Mohit
Bhoit. PIC 18F452 dengan memory besar telah digunakan dalam robot sebagai
pengawal. Robot ini menggunakan empat pengesan inframerah dan dua unipolar
stepper motor bersama dengan UCN5804 pemacu motor. Bekalan kuasa yang
digunakan ialah sepuluh biji bateri bersaiz AAA dan pemegangnya dibina dengan
plat aluminium . Tayar dibina menggunakan besi aluminium yang dilekatkan
bersama getah. Kawalan menggunakan memori yang tersedia yang cukup untuk
melaksanakan algoritma. Kawalan motor yang digunakan agak ringkas dalam
skematik sambungan dengan stepper motor. Idea menggunakan getah pada tayar
sangat baik kerana ia mengelakkan robot tergelincir ketika melaksanakan tugasan
kerana ia mengganggu prestasi robot.
18
2.4.2 Dexter Micromouse
Micromouse yang ini dinamakan Dexter[8] dimana maklumat ini diperolehi
internet. Dexter adalah micromouse yang direka oleh Steve Benkovic di dalam
pertandingan micromouse. Robot ini menggunakan Motorola 68Hc11 sebagai
pengawal bersama dengan 32k memori RAM untuk menggantikan kekurangan
ruangan ingatan. Sistem kawalan menggunakan dua mini stepper motor dan dipacu
oleh Allegro stepper motor dengan lapan bateri bersaiz AAA. Robot ini
menggunakan sebelas pengesan inframerah dan konsep rekaan berpandukan
kepada rekaan kerusi roda yang menggunakan kasis akrylik.
Rajah 2.11 : Dexter di dalam maze
Sub komponen yang lain yang termasuk dalam rekaan dexter adalah tayar
plastik dan paparan LCD (Liquid Crystal Display) sebagai paparan maklumat untuk
proses debug dan pengujian perestasi semasa bergerak di dalam maze kerana kita
tidak dapat mengesan kesalahan yang ditunjukkan oleh arahan aturcara dan
kesalahan tersebut hanya boleh dilihat menerusi bantuan paparan LCD. Micromouse
ini boleh menyelesaikan masalah maze dalam pertandingan dengan algoritma tetapi
tidak dapat bergerak dengan masa yang terpantas ke destinasi tetapi rekaan robot ini
sangat baik dan unik [8].
19
Rajah 2.12 : Pandangan Depan dan belakang Dexter
Rajah 2.13 : Pandangan sisi Dexter
2.4.3 Micromouse UTM FYP 2006
Rajah 2. 14 : Micromouse UTM FYP 2006
Versi Micromouse ini dibina oleh Louis Wong Siang San[4]. PIC 16F627
adalah pengawal yang digunakan. Louis menggunakan litar PCB untuk rekaan litar,
pengesan Inframerah, dua pemacu motor stepper dengan litar bersepadu ‘darlington
array’ dan bekalan kuasa luaran. Rangka robot ini terbina dari plat kayu dan rod
kecil untuk menampung dua tayar kayu. Model Micromouse ini juga menggunakan
mikropengawal yang mempunyai memori yang mencukupi untuk menyimpan
algoritma. Binaan litar dalaman adalah dengan papan PCB dimana dalam situasi ini,
20
litar robot kelihatan kemas dan boleh mengurangkan kegagalan litar untuk berfungsi
akibat daripada sambungan kabel yang longgar atau sebagainya[4].
2.4.4 Micromouse University of East London
Rajah 2.15: Micromouse University of East London
Projek Micromouse ini adalah berasaskan projek yang telah dibuat oleh
pelajar dari University of East London iaitu Michael Gims, Sonja Lenz dan Dirk
Becker[13]. Tujuan utama rekaan mereka adalah memenangi perlumbaan robot yang
boleh bergerak didalam maze sebanyak dua pusingan tanpa melanggar dinding maze
tersebut. Pembinaan micromouse menggunakan mikropengawal lebih mudah
dengan kebebasan membuat pengubahsuaian pada perisian untuk meningkatkan
keseluruhan kelajuan robot tanpa membuat perubahan pada perkakasan dan
komponen. Oleh itu, penggunaan Microchip Microcontroller PIC dimana
mempunyai pengoperasian yang pantas kerana terdiri daripada set pengurangan
arahan (pemprosesan RISC dengan senibina Harvard ) yang mudah untuk
dilaksanakan.
Sistem kawalan motor dilaksanakan secara separa dua jejantas (two half
bridge) dimana mengandungi MOSFET setiap aras. Setiap daripadanya untuk
bergerak dan berhenti. Transistor ini secara terus boleh mengawal peranti logik
CMOS dan berkebolehan menampung voltan dan arus yang tinggi.
21
2.5 Undang-Undang Pertandingan Micromouse
Didalam projek ini, undang-undang pertandingan Micromouse dikenalpasti
adalah bertujuan untuk memahami selok belok pertandingan selain menghadkan
fungsi micromouse yang dibina. Ciri-ciri micromouse adalah berdasarkan syarat-
syarat terkini fungsi yang patut diimplimentasikan ke dalam robot. Sila rujuk
Lampiran B.
2.6 Analisis projek micromouse
Daripada dua konsep algoritma dan empat model micromouse yang telah
dibincangkan tadi, setiap model dispesifikasikan dengan kategori kebaikan dan
kelemahan. Tujuan mengasingkan maklumat mengikut kategori adalah untuk
membuat rujukan semasa proses mereka bentuk projek. Setiap kebaikan dan
kelemahan model ditunjukkan di bawah :-
Jadual 2.1 : Analisa Algoritma
Algoritma Micromouse
Algoritma Kebaikan Kelemahan
‘Flood-Fill’(Bellman
flooding)
- Mudah difahami
- Boleh mengesan
kawasan tengah maze
dengan cepat
- Dapat menghindari
laluan yang salah
- Algorithem hanya
memerlukan jumlah
sensor yang sedikit
- Robot perlu bergerak
keseluruh maze
sebelum
memutuskan laluan
yang terpendek
A-Star - Boleh mengesan
laluan terpendek
- Memakan masa yang
lama kerana mengira
keseluruhan laluan
22
maze
Jadual 2.2 : Analisa Model Micromouse
Model Micromouse
Model Kebaikan Kelemahan
Mobot - Litar Ringkas
- Aturan dan struktur
yang bagus
- Pengaturcaraan yang
mudah dengan memori
yang mencukupi
- Tayar yang dililiti
getah
- Penggunaan bateri
yang banyak.
(pembaziran ruang)
Dexter - Struktur yang bagus
- Aturan yang bagus
- Penggunaan bateri
yang banyak.
(pembaziran ruang)
- Litar yang kompleks
- Memori kecil
- Tayar plastic
Micromouse (Louis
Wong Siang San)
- Saiz Kecil - Aturan dan struktur
yang bagus
- Litar Ringkas - Pengaturcaraan yang
mudah dengan memori
yang mencukupi
- Penggunaan bateri yang banyak. (pembaziran ruang)
- Tayar diperbuat dari kayu
- Struktur tidak begitu stabil
Micromouse
University of East
London
- Saiz kecil
- Aturan dan struktur
yang bagus
- Tayar yang dililiti
getah
- Litar kompleks
- Pergerakan pantas
- Kurang melibatkan
Kepintaran buatan
23
Daripada analisis yang dibuat, micromouse yang saya perlu hasilkan mestilah
mempunyai ciri-ciri kebaikan dan mengurangkan kelemahan yang ada supaya
micromouse yang dihasilkan lebih baik daripada model yang sebelumnya. Ciri-ciri
yang perlu ada di dalam projek ini adalah seperti berikut:-
i. Mencipta algoritma yang boleh menyelesaikan pelbagai jenis maze
dengan keluasan sama.
ii. Pergerakan mestilah pantas dan sesuai. Jika terlalu pantas dikuatiri lebih
cenderung untuk melanggar dinding.
iii. Tayar yang dililit dengan getah untuk mendapatkan cengkaman pada
lantai
iv. Dimensi rekaan robot mesti kurang dari saiz laluan maze iaitu kurang dari
18cm x 18cm. Ketinggian juga perlu dihadkan sipaya lebih stabil.
v. Penggunaan saiz dan bekalan kuasa yang kecil
vi. Menggunakan konsep dan litar yang ringkas
2.7 Rumusan
Bab ini menerangkan konsep dan teknologi yang diguna pakai dalam
membangunkan projek. Kajian dilakukan bagi memdapat keputusan yang tepat
dalam penggunaan teknologi yang digunakan.Pemilihan yang tepat dapat membantu
dalam pelaksaan pembangunan sistem yang lebih baik dan efiksyen. Bab seterusnya
menerangkan tentang metodologi yang digunakan dalam memastikan pembangunan
sistem dilakukan dengan lancar.
24
BAB 3
METADOLOGI
3.1 Pengenalan
Metodologi adalah gabungan kaedah, polisi, prosedur, piawai, teknik, alatan
dan bahasa pengaturcaraan yang akan digunakan untuk menganalisa dan
memperincikan keperluan dan rekabentuk sistem [Suhaimi Ibrahim et al, 1999].
Terdapat pelbagai jenis metodologi yang boleh digunakan untuk pembangunan
sesuatu projek bergantung kepada kesesuaian projek yang dibangunkan. Setiap
metodologi ini menggunakan teknik, kaedah serta pendekatan yang berlainan. Antara
model metodologi yang ada Model Air Terjun, Model Prototaip Evolusi, Model
Spiral, Kitar Hayat Pembangunan Sistem (SDLC) dan sebagainya.
Oleh yang demikian, pemilihan metodologi yang betul merupakan aspek
yang penting dalam pembangunan sesebuah projek untuk menghasilkan projek yang
berkualiti selain dapat menjamin penggunaan kos dan masa yang optimum. Oleh
yang demikian untuk membangunakan sistem ini adalah metodologi Model Air
Terjun.
25
3.2 Methodologi Model Air Terjun
Didapati kaedah metodologi Model Air Terjun adalah sesuai dalam
pembangunan projek ini. Metodologi ini dipilih kerana ia merupakan satu kitaran
yang berulang-ulang yang membolehkan fasa sebelumnya diulangi untuk
penambahan fungsi atau pembetulan. Model ini membuat andaian bahawa setiap
jujukan yang telah lengkap akan menghasilkan satu produk. Model ini terdiri
daripada enam fasa, iaitu fasa perancangan, fasa analisis, fasa reka bentuk, fasa
pengekodan, fasa pengujian dan fasa penyelengaraan.
Rajah 1.1 Model Air Terjun
Rajah 3.1 Model metodologi air terjun
Dengan model ini, projek yang akan dibangunkan adalah bagi memberikan
gambaran awal sistem kepada pengguna-pengguna sistem. Terdapat enam fasa dalam
membangunkan sistem ini dengan menggunakan model ini. Fasa-fasa berikut adalah:
i. Fasa Perancangan – Menentukan jenis metodologi yang ingin
digunakan.
ii. Fasa Analisa – Mengenalpasti dan menghasilkan spesifikasi
pengguna.
Perancangan
Analisis
Reka bentuk
Pengekodan
Pengujian
Penyelenggaran
26
iii. Fasa Rekabentuk – Merekebentuk projek yang ingin dibangunkan
dengan berpandukan kepada spesifikasi pengguna.
iv. Fasa Pengkodan – Merangka serta membangunkaan aturcara yang
bersesuaian dengan projek ini
v. Fasa Pengujian – Menguji projek yang dibangunkan dan
menunjukkan hasinya.
vi. Penyelanggaraan – Memastikan projek di dalam keadaan baik
3.4 Kaedah pembangunan projek
Dalam pembangunan sistem terdapat beberapa peringkat yang dikenali
sebagai fasa. Fasa ini merangkumi dalam satu kitar hayat yang disebut kitar hayat
pembangunan sistem. Setiap fasa mempunyai aktiviti-aktiviti tertentu. Setiap fasa
mungkin terpisah dari segi masa, iatu peralihan ke fasa berikutnya yang hanya
dilakukan jika aktiviti-aktiviti dalam fasa yang sebelumnya telah selesai. Setiap fasa
dikatakan sebagai tertakrif iaitu terdapat matlamat, input, output, aktiviti dan batu
tanda. Kesimpulannya matlamat dalam setiap fasa adalah menentukan tujuan setiap
aktiviti dalam fasa tersebut.
3.4.1 Fasa Perancangan
Fasa perancangan memberi penumpuan terhadap penakrifan masalah,
pengenalpastian skop dan kepentingan projek, kekangan serta keperluan pengguna.
Antara perancangan kajian ini melibatkan penghasilan jadual pembinaan iaitu carta
gantt bagi merancang dari segi masa dan aktiviti pembangunan dan menentukan
feasibiliti projek. Perancangan juga perlu untuk menentukan perkakasan dan perisian
yang akan digunakan sepanjang pembangunan sistem ini.
Projek ini terbahagi kepada dua iaitu perkakasan dan perisian. Langkah
pertama yang dilakaukan adalah membuat perkakasan yang diperlukan. Perkakasan
yang dimaksudkan adalah struktur robot. Struktur ini terdiri dari papan litar utama,
bateri, pengesan, motor servo dan tayar. Papan litar utama yang dibuat mestilah
27
dapat menyambungkan mikropengawal dengan motor servo dan pengesan. Ketiga-
tiga komponen ini mestilah dapat berfungsi dengan baik.
Setelah fasa pembinaan perkakasan lengkap, barulah proses pembinaan
aturcara boleh dilaksanakan. Aturcara tersebut kemudianya boleh dimuat turun ke
dalam mikropengawal dan disambungkan ke papan litar utama. Fasa pelaksanaan
perkakasan dan perisian ini boleh dirujuk pada Lampiran A.
3.4.2 Fasa Analisis
Fasa Analisa sistem adalah untuk menyelidik dan mengkaji dengan
mendalam tentang spesifikasi projek yang akan dibangunkan. Kajian yang mendalam
terhadap permasalahan semasa dan perbincangan dengan pihak pengguna penting
bagi memahami objektif perisian yang sebenar. Maklumat yang dikumpul perlu
dianalisis dan diteliti sebelum sesuatu sistem perisian dicadangkan.
Rajah 3.2: Rajah Blok Fasa Analisis
Daripada rajah blok fasa analisis diatas(Rajah 3.2), maklumat mengenai
micromouse dicari sama ada melalui laman web atau buku-buku rujukan tertentu.
Hasil daripada carian tersebut akan di buat perbandingan dan pemilihan dari segi
kriteria berdasarkan objektif supaya sasaran utama penghasilan projek tercapai.
Ciri-ciri projek yang akan dibangunkan dianalisa supaya dapat memperbaiki
projek yang sedia ada serta mengurangkan masalah yang dihadapi oleh pengguna.
Selain daripada itu, perisian dan kaedah yang akan digunakan dalam pernbangunan
Pemilihan kriteria melalui objektif
Pembandingan kriteria micromouse
Carian maklumat micromouse
28
robot juga akan dianalisa. Tujuannya adalah untuk memastikan pilihan yang dibuat
adalah sesuai dengan projek yang akan dibangunkan.
3.4.3 Fasa Rekabentuk Robot
Dalam fasa ini, reka bentuk logikal dilaksanakan untuk menerangkan secara
terperinci tentang elemen-elemen fungsian bagi projek yang akan dibangunkan. Fasa
ini melibatkan proses-proses yang mewakili struktur litar, struktur atur cara dan
rekaan kasis robot. Hubungan antara modul-modul yang terlibat juga dikenalpasti
dengan melukis rajah litar, rajah aliran data dan carta alir.
Rajah 3.3: Rajah Blok Fasa Rekabentuk Robot
Daripada rajah blok fasa rekabentuk robot diatas(Rajah 3.3), carian maklumat
berkenaan rekabentuk robot dibuat. Rekaan robot banyak mempengaruhi keadaan
robot semasa menjelajah maze. Contoh-contoh robot yang sedia ada dianalisa dan
dibuat perbandingan dan pemilihan melalui objektif berkenaan rekaan yang terbaik
dilaksanakan.
Dalam membina struktur robot, ciri-ciri maze perlu diketahuai bagi
memastikan robot berupaya menjelajah maze. Maze terdiri daripada kotak segitiga
sama berukuran 18 cm dan disusun secara matrik 16 baris dan 16 lajur dan dinding
maze berketinggian 5 cm.
Oleh yang demikaian, robot yang direka adalah dalam ukuran kurang
daripada 18cm bagi memudahkan robot membuat putaran dan gerakan. Kedudukan
Pemilihan rekabentuk melalui objektif
Pembandingan rekabentuk micromouse
Carian maklumat rekabentuk micromouse
29
pengesan inframerah diletakkan pada kedudukan yang sesuai supaya fungi mengesan
objek atau dinding boleh dipertingkatkan dan lebih peka.
Litar utama yang digunakan adalah ringkas. Kesemua komponen seperti
motor servo, bekalan kuasa dan pengesan mestilah disambungkan kepada
mikropengawal. Bekalan kuasa yang digunakan adalah 6V tetapi apabila bekalan
kuasa memasuki litar regulator, bekalan kuasa diturunkan kepada 5v. Motor servo
dan pengesan disambungkan pada pin-pin yang sesuai.
3.4.4 Fasa Pengkodan
Fasa ini melibatkan aktiviti-aktiviti pengekodan untuk pembinaan projek
sebenar dengan menggunakan bahasa pengaturcaraan yang dipilih. Pembangunan
projek pada peringkat ini adalah secara berperingkat-peringkat sehingga
terbentuknya sistem yang lengkap. Aturcara ditulis dengan menggunakan ‘PBASIC
Editor’ dan dimuat turun ke dalam mikropengawal menggunakan ‘SEBI Board’ .
Rajah 3.4: Rajah Blok Fasa Pengkodan
Di dalam rajah blok fasa pengkodan di atas(Rajah 3.4), analisa dimulakan
dengan mencari maklumat aturcara yang akan digunakan oleh mikropengawal.
Kemudian atucara pergerakan asas dibuat. Kesemua aturcara pergerakan asas dan
algoritma akan digabungkan dan terbentuklah aturcara lengkap.
Memasukkan algoritma penyelesaian maze
Menggabungkan aturcara asas
Bina aturcara pergerakan asas berdasarkan objektif
Carian maklumat tentang aturcara mikropengawal
30
Dalam membentuk aturcara yang lengkap, beberapa fasa pembinaan aturcara
perlu dibuat. Dari fasa inilah aturcara lain akan diurai dan dihubungkan antara satu
sama lain. Aturcara yang dimaksudkan adalah :
I. Aturcara maju ke hadapan
II. Aturcara Ke Kiri
III. Aturcara Ke Kanan
IV. Aturcara Undur ke belakang
Setelah aturcara ini berjaya, aturcara yang melibatkan pengesan pula perlu
dibuat. Aturcara utama tadi akan berfungsi berpandukan keadaan pengesan
inframerah. Oleh itu, aturcara pengesan inframerah akan digabungkan dengan
aturcara tadi dan ini akan menghasilkan aturcara yang lebih kompleks.
Kemudian, algoritma yang yang telah dirangcang perlu ditulis dalam bentuk
pengaturcaraan. Fasa ini agak kritikal kerana ia menentukan kejayaan projek ini.
Konsep algoritma yang digunakan adalah jenis koordinat. Setiap pergerakan akan
mengira koordinat baru. Algoritma tersebut akan beroperasi bersama algoritma
menentukan arah sama ada Utara, Timur, selatan atau Barat.
Aturcara lengkap terdiri daripada aturcara utama dan beberapa kelas dan sub
kelas. Setiap kelas akan ‘loop’ berpandukan aturcara yang terdapat pada aturcara
utama.
3.4.5 Fasa Pengujian
Fasa ini melibatkan pengujian ke atas projek dari segi aturcara ataupun
perkakasan untuk memastikan aturcara projek dapat berfungsi dengna perkakasan
dan bebas daripada ralat.
Setelah aturcara siap dibina, pengujian terhadap keberkesanan aturcara
beroperasi bersama perkakasan dilakukan. Robot perlu diuji didalam maze yang
sebenar bagi memperolehi hasil ujian yang tepat. Oleh itu maze dengan matrik 16
lajur dan 16 baris kotak berukuran 18 cm dibina.
31
Rajah 3.5: Rajah Blok Fasa Pengujian
Daripada rajah blok di atas, robot dan maze mestilah selesai dibina bagi
melancarkan proses pengujian. Aturcara lengkap di masukkan ke dalam
mikropengawal dan pergerkan robot diuji di dalam maze.
3.4.6 Fasa Penyelenggaraan
Fasa ini melibatkan penyelenggaraan ke atas projek bagi memastikan
komponen yang terlibat dengan projek ini berada dalam keadaan baik suapaya ia
dapat bertindak balas dengan aturcara yang dibina bagi memastikan hasil
keseluruhan projek berjaya mencapai objektifnya.
Robot ini mempunyai banyak sambungan kabel dan wayar dari servo dan
juga pengesan inframerah. Sambungan ini mestilah ketat kerana jika sambungan
longgar dikuatiri mengganggu penghantaran isyarat dari pengesan ke
mikropengawal. Selain itu, sambuangan skru pada struktur robot juga perlu diambil
perhatian. Sebarang bahagian robot yang tertanggal ketika robot bergerak boleh
memberikan kesan kepada prestasi robot.
Uji robot di dalam maze
Aturcara lengkap siap dan dimasukkan ke dalam mikropengawal
Menyiapkan rekabentuk robot dan maze
32
3.5 Analisa dan Spesifikasi Keperluan
Analisa dan spesifikasi keperluan adalah penting untuk menentukan
keperluan perkakasan dan perisian dalam pembangunan sistem ini. Ini juga penting
dalam menentukan spesifikasi input dan output.
3.5.1 Keperluan perkakasan dan perisaian
Perkakasan dan perisian yang terdapat pada pasaran telah dikaji untuk
memilih jenis perkakasan dan perisian yang sesuai untuk digunakan sepanjang proses
pembangunan sistem. Pemilihan perkakasan dan perisian yang sesuai adalah penting
bagi memastikan sistem yang dibangunkan adalah memenuhi kehendak pengguna di
samping memastikan kelancaran sistem.
3.5.2 Perkakasan
Perkakasan yang sesuai perlu dipilih supaya ia dapat digunakan bersama
dengan perisian yang dipilih untuk proses pembangunan sistem. Pemilihan
perkakasan juga adalah bergantung kepada kemampuan untuk menampung jumlah
data samada besar atau kecil.
3.5.3 Spesifikasi Perkakasan
Spesifikasi perkakasan yang dipilih untuk membangunkan sistem ini adalah
seperti dalam Jadual di bawah.
Jadual 3.1 : Spesifikasi perkakasan
Perkakasan Spesifikasi
Unit Pemprosesan Pusat (CPU) Genuine Intel® T5450 Core 2 Duo
1.66Ghz
Kapasiti Ingatan 1Gb
Kapasiti Cakera Keras 150Gb
Basic Stamp Training Board Untuk membuat ujian pada litar dan
33
aturcara
3.5.4 Justifikasi Perkakasan
Beberapa justifikasi parkakasan yang dipilih dalam pernbangunan
Micromouse ialah:
i. Unit pemprosesan pusat
Keperluan minimum untuk unit pemprosesan pusat ialah intel Core 2
Duo 1.66GHz. Unit pemprosesan yang diperlukan adalah agak tinggi supaya
proses pembangunan aturcara dan memuaturun aturcara kedalam robot ini
dapat dilakukan dengan lebih cepat dan lebih efektif.
ii. Kapasiti Ingatan
Kapasiti Ingatan yang minimum ialah 2GB. Kapasiti ingatan yang
memenuhi 2GB atau lebih tinggi mempunyai kebaikan kerana ia dapat
mempercepatkan aktiviti-aktiviti pembangunan sistem ini.
iii. Kapasaiti Cakera Keras
Jumlah kapasiti cakera keras yang besar ini diperlukan untuk
menyimpan data-data.
iv. Basic Stamp Training board
Perkakasan ini adalah antara perkakasan yang penting di dalam projek
ini. Basic Stamp Trainig board akan disambungkan dengan komputer
menggunakan kabel sesiri bagi membolehkan pengujian terhadap aturcara
dapat dilakukan. Perkakasan ini boleh juga digunakan untuk membuat
34
pengujian terhadap litar kerana ia terdiri daripada pelbagai fungi seperti port
bekalan kuasa 5V, Litar LED dan sebagainya.
3.5.5 Perisian
Perisian yang sesuai perlu dipilih supaya ia dapat digunakan untuk
menghasilkan projek ini. Pemilihan perisian perlu dilihat dari segi kesesuaian dan
mampu menyokong pembinaan aturcara yang baik.
3.5.6 Spesifikasi Perisian
Spesifikasi perisian boleh dibahagikan kepada dua kategori iaitu perisian
untuk teknologi dan perisian untuk aplikasi. Perisian untuk teknologi merupakan
perisian yang digunakan dalam merekabentuk dan membangunkan sistem, manakala
perisian untuk aplikasi pulaa merupakan perisian yang digunakan sebagai case-tool
untuk proses analisa, dokumentasi dan implementasi dalam pembangunan sistem. Ia
dapat dibahagikan kepada dua kategori lagi iaitu perisian untuk dokumentasi dan
rekabentuk dan perisian untuk implementasi.
3.6 Rumusan
Hasil daripada kajian yang dilakukan, didapati metodologi model air terjun
adalah sesuai untuk pembangunan aturcara projek ini kerana membolehkan system
diubahsuai dari semasa ke semasa. Manakala carta alir sesuai untuk pembinaan
kerkakasan. Pemilihan perkakasan dan perisian memainkan peranan di dalam
menjamin kelancaran pembangunan sistem cadangan.
35
BAB 4
REKABENTUK PROJEK
4.1 Pengenalan
Dalam bahagian ini adalah penerangan tentang jangkaan atau hasil kerja yang
dilaksanakan meliputi rekabentuk senibina projek, rekabentuk aturcara, teknik dan algoritma
yang digunakan dalam penghasilan robot ini. Bahagian ini juga mengandungi carta alir
mengenai projek supaya gambaran tentang apa yang berlaku ketika proses pembinaan
struktur robot, pembangunan aturcara robot dan proses pergerakan robot di dalam maze lebih
jelas.
4.2 Rekabentuk senibina sistem/aplikasi
Sebelum sebarang rekaan dibuat, analisa tentang Micromouse perlu dibuat.
Hasil dari analisis yang telah dibuat mendapati bahawa beberapa ciri-ciri penting
perlu wujud untuk menghasilkan robot yang paling baik daripada model sebelumnya.
Ciri-ciri yang perlu ada di dalam projek ini adalah seperti berikut:-
i. Mencipta algoritma yang boleh menyelesaikan pelbagai jenis maze
dengan keluasan sama.
36
ii. Pergerakan mestilah pantas dan sesuai. Jika terlalu pantas dikuatiri lebih
cenderung untuk melanggar dinding.
iii. Tayar yang dililit dengan getah untuk mendapatkan cengkaman pada
lantai
iv. Dimensi rekaan robot mesti kurang dari saiz laluan maze iaitu kurang dari
18cm x 18cm. Ketinggian juga perlu dihadkan sipaya lebih stabil.
v. Penggunaan saiz dan bekalan kuasa yang kecil
vi. Menggunakan konsep dan litar yang ringkas
4.3 Cadangan Rekabentuk Robot
Lakaran ringkas Rajah 4.1 di bawah menunujukkan rekaan rekabentuk robot
yang dibina. Ia adalah pandangan sisi robot.
Rajah 4.1 : Rekaan robot
Seperti di dalam Rajah 4.1 di atas, dimensi robot adalah 12cm x 12cm x
12cm. Robot ini mempunyai dua aras iaitu aras pertama yang terdiri daripa papan
litar kawalan motor dan motor servo. Aras kedua terdiri daripada Papan litar Utama
dan pengesan inframerah. Robot ini tidak mempuyai ketinggian yang lebih tinggi
37
dari dinding maze kerana untuk mengukuhkan kestabilan micromouse di dalam
maze.
Rajah 4.2 : Aras satu Robot
Rajah 4.2 diatas menunjukkan aras satu robot. Kedudukan motor dan papan
litar adalah seperti di atas.
Rajah 4.3 : Aras dua robot
38
Rajah 4.3 diatas menunjukkan aras dua robot. Aras dua memberikan
penggunaan ruangan yang luas kepada micromouse. Seperti yang dilihat dalam
Rajah 4.3 sensor inframerah diletakkan di bahagian utara, timur, selatan dan barat
micromouse.
4.4 Peranti dan Komponen utama
Peranti dan komponen yang digunakan adalah Micropengawal BASIC Stamp,
Motor Servo dan pengesan Inframerah. Ia adalah perkara yang penting didalam
penghasilan projek ini.
4.4.1 Mikropengawal BASIC Stamp
Rajah 4.4 : Basic Stamp 2 Mikropengawal
Mikropengawal (rujuk Rajah 4.4)ialah komputer dalam cip yang berfungsi
untuk membuat kawalan keatas perkakasan elektronik. Sesebuah mikropengawal
mengandungi segala ingatan atau antaramuka yang diperlukan untuk aplikasi mudah.
Jadi mikropengawal boleh dikelaskan sebagai litar bersepadu tunggal.
Mikropengawal ini dihasilkan oleh Syarikat Parallax dimana ia mudah untuk
diprogramkan dan menggunakan bahasa pengaturcaraan yang dipanggil Bahasa
PBASIC. Perkataan ‘STAMP’ diambil sempena saiznya yang kecil yang
menghampiri saiz setam surat kecuali Model BS2 p40 yang lebih panjang kerana
mempunyai tambahan beberapa pin masukan dan keluaran. Basic Stamp 2 adalah
39
DIP(Dual inline package) 24-pin module. Kadang kala mikropengawal dipanggil
juga sebagai papan computer tunggal kerana ia mempunyai pemproses, ingatan,
pemasa dan antara muka (16 pin ) tersendiri.
Basic Stamp 2 bertindak seperti otak di dalam projek elektronik dan aplikasi
yang memerlukan mikropengawal yang boleh diaturcara. Mikropengawal yang
boleh diaturcara ini berkebolehan untuk mengawal dan memantau fungsi suis,
pemasa, motor, pengesan, geganti dan banyak lagi. Kebaikan utama ialah aturcara
yang digunakan oleh mikropengawal ini adalah bahasa pengaturcaraan PBasic yang
mudah untuk difahami dan dipelajari.
Jadual 4.1 : Spesifikasi Mikropengawal
Processor Speed 20 MHz
Program Execution Speed ~4,000 instructions/sec.
RAM Size 32 Bytes (6 I/O, 26 Variable)
EEPROM (Program) Size 2K Bytes, ~500 instructions
I/O Pins 16 +2 Dedicated Serial
Voltage Requirements 5 - 15 vdc
Current Draw at 5V 3 mA Run / 50 µA Sleep
PBASIC Commands 42
Size 1.2"x0.6"x0.4"
Rajah 4.5: Skematik Basic stamp 2
40
Jadual 4.2 : Pin Basic Stamp 2
Pin Nama Peneragan
1 SOUT Serial out: disambungkan pada Pin RX komputer
(D89pin 2/ D825 pin 3) untuk pengaturcaraan.
2 SIN Serial In: disambungkan pada Pin TX komputer (D89
pin3/D625 pin 2) untuk pengaturcaraan.
3 ATN Attention: disambungkan pada Pin sesiri DTR komputer
(D89 pin4/ D825 pin 20) untuk pengaturcaraan.
4 ATN System ground: (same as pin 23) disambungkan pada
Pin GND komputer (D89 pin 5/ D625 pin7 untuk
pengaturcaraan
5-20 P0-P15 Pin I/O : Pin masukkan/keluaran pelbagai guna
21 VDD 5-volt DC input/output: jika voltan yang lebih esar
dimasukkan ke dalam pin VIN, dan pin ini akan
menukar nilai tersebut kepada 5 volt.
22 RES Reset input/output: menjadi rendah apabila bekalan
kuasa lebih rendah daripada 4.2 volt yang menyebabkan
Basic stamp di reset.
23 VSS System GND (sama dengan pin 4) disambung pada
bekalan kuasa.
24 VIN Unregulated power in: menerima 5.5-15VDC.
41
4.4.2 Motor Servo
Rajah 4.6 : Motor Servo
Motor servo (rujuk Rajah 4.6)adalah motor yang bergerak berpandukan
denyut yang dibekalkan dari mikropengawal. Motor servo terbahagi kepada dua
jenis iaitu Motor servo jenis biasa dan Motor servo jenis bersambungan. Motor
servo jenis biasa ialah motor yang berkeupayaan untuk membuat putaran sebanyak
180 darjah sahaja. Manakala Motor servo jenis bersambungan boleh membuat 360
darjah putaran. Servo motor sangat sesuai digunakan di dalam produk robotik.
Motor jenis ini tidak mengetengahkan kelajuan tetepi mempunyai kuasa pacuan yang
kuat.
Jadual 4.3 : Spesifikasi Motor Servo
Bekalan kuasa 4v -6v
Purata kelajuan 60 rpm
Berat 45.0 g
Kekuatan 3.40 kg/cm
Siaz 40.5mm x20.0mm x38.0mm
Rajah 4.7 : Membuat tetapan titik tengah
42
Titik tengah motor servo perlu ditetapkan dari masa kesemasa. Semakin
kerap motor ini digunakan, keadaan titik tengah ini juga akan berubah. Bagi
membuat tetapan, aturcara seperti berikut akan dimuat turun kedalam mikropengawal
dan pemutar skru akan memutarkan nat didalam lubang seperti rajah 4.7 diatas.
Putar pemutar skru sehingga motor tidak bergerak.
Rajah 4.8: Keratan aturcara tetapan titik tengah
4.4.3 Pengesan Inframerah
Pengesan Inframerah (rujuk Rajah 4.9)merupakan komponen yang penting di
dalam projek ini. Pengesan ini berkebolehan untuk mengesan keadaan sekeliling
robot dan mengelak halangan. Sinaran inframerah akan dipancaran dan pantulan
cahaya tersebut akan dikesan dan akan dihantar kepada mikropengawal untuk
diproses.
Rajah 4.9 : Pengesan Inframerah
' {$STAMP BS2}' {$PBASIC 2.5} DO PULSOUT 13, 750 PAUSE 20 LOOP
43
Rajah 4.10: Litar pengesan inframerah
Komponen yang ditunjukkan pada rajah 4.9 diatas akan disambungkan
seperti di dalam rajah 4.10. Pin 9 dan pin 8 adalah contoh sambungan pin dari litar
tersebut kepada mikro pengawal. Pengesan inframerah terdiri daripada dua bahagian
iaitu pemancar dan penerima. Pemancar akan memancarkan denyut dan akan
dipantulkan jika terkena objek. Pantulan denyut tersebut akan diterima oleh penerima
dan akan dihantar kepada mikropengawal untuk dianalisa. Rajah 4.11 berikut
menunjukkan cara kerja pengesan inframerah.
Rajah 4.11: Cara kerja pengesan inframerah
44
Rajah 4.12: Litar Utama
Berpandukan rajah 4.12 di atas, ia merupakan litar yang akan digunakan di
dalam projek ini. Ia terdiri daripada dua regulator 5v untuk membekalkan kuasa
kepada mikropengawal, motor servo dan pengesan inframerah. Regulator 5v yang
pertama akan membekalkan kuasa kepada mikro pengawal dan pengesan manakala
regulator 5v yang satu lagi akan membekalkan kuasa kepada motor servo.
4.5 Aturcara Bahasa PBASIC
Seperti versi aturcara bahasa PBASIC yang lain, bahasa yang digunakan di
dalam mikropengawal jenis ini adalah sama. Selagi struktur aturcara betul,
pengkompil akan mengkompil aturcara tanpa sebarang masalah. Mengapa
menggunakan BASIC Stamp? BASIC Stamp sudah dijual di serata dunia dan banyak
pengguna mengambil bahagian didalam forum Parallax atas talian. Ia menyebabkan
ramai pihak berkongsi idea ataupun aturcara projek sesama sendiri. Ini memudahkan
pengguna baru untuk mempelajari pengaturcaraan bahasa PBASIC.
45
4.5.1 Elimen Bahasa PBASIC
Panduan cara penulisan boleh didapati di dalam perisian ‘PBASIC Editor’ itu
sendiri. Ia telah dihasilkan oleh pengaturcara profesional menggunakan bahasa
tahap-tinggi seperti Visual-Basic, C atau C++ dan Java. Gunakan panduan tersebuat
dengan membuat pengubahsuaian bergantung kepada keperluan. Beberapa langkah
asas bagi memulakan pembangunan aturcara bahasa PBASIC adalah seperti berikut :
i. Teratur dan konsisten iaitu menggunakan contoh program yang terdapat
didalam ‘PBASIC Editor’ untuk membantu pembelajaran.
ii. Menggunakan nama untuk ‘variable’, ‘label’ dan ‘constant’ yang unik
iii. Menamakan pin intaramuka supaya ia tidak bertindih dengan fungsi lain
iv. Membuat pengumuman kepada ‘Variable’
v. Setiap penyataan keadaan mestilah jelas seperti penggunaan IF…ELSE
Aturan-aturcara bahasa PBASIC ini hamper sama dengan aturcara bahasa lain.
Pengunaan fungsi IF…ELSE, SELECT…CASE dan bermacam lagi masih
digunakan. Walaubagaimanapun kaedah pengiraan matematik adalah berlainan dan
ia perlu diambil perhatian.
4.5.2 Operasi Pengiraan PBASIC
Seperti aturcara lain, bahasa PBASIC tidak terlepas dari membuat aturcara
bagi proses pengiraan. Proses pengiraan di dalam projek ini adalah penting kerana
pengiraan jarak dan koordinat baru diperlukan tambahan lagi kaedah matematik
bahasa PBASIC Stamp adalah berbeza. Bahasa PBASIC menyelesaikan masalah
matematik dalam turutan kiri ke kanan masalah. Keputusan masalah matematik
sebelum akan digunakan oleh masalah selepas. Sebagai contoh amabil operasi seperti
berikut:
12 + 3 * 2/4
BASIC STAMP akan membaca masalah matematik dalam turutan seperti berikut :
12 + 3 = 15
15 *2 = 30
30/4 = 7
46
Oleh kerana BASIC Stamp membaca hasil intiger, hasil masalah 30 / 4 adalah
7 dan bukan 7.5. Jika masalah diatas dilaksanakan menggunakan kaedah matematik
seperti biasa, operasi pendaraban akan dilakukan dahulu diikuti dengan operasi
pembahagian dan penambahan. Untuk mendapatkan nilai yang sama seperti kaedah
matematik biasa, cara penulisan masalah matematik mestilah diubah seperti berikut ;
12 + ((3 * 2) / 4)
Dengan ini, BASIC STAMP akan membaca masalah matematik dalam turutan
seperti berikut :
3*2 = 6
6/4 = 1
12 + 1 = 13
4.6 Ciri-Ciri Pembaikan
Litar yang digunakan dalam projek asal adalah menggabungkan tiga
jenis litar utama iaitu litar pengesan inframerah, litar mikropengawal dan
litar kawalan motor. Litar mikropengawal hanya memerlukan sambungan
mikropengawal ke motor servo dan pengesan inframerah. Dengan ini
penjimatan dari segi kos dan ruangan di dalam robot juga dapat dikurangkan.
Daripada fungsi hanya mengenal arah laluan fungsi kepintaran buatan
dimasukkan supaya micromouse berkeupayaan untuk membuat pemilihan
laluan tercepat dengan algorithm tertentu.
Micromouse yang asal hanya tertumpu kepada fungsi utama iaitu
mengesan laluan litar. Jika ingin membuat pengubahsuaian, litar juga perlu
diubah. Tetapi robot dalam projek ini boleh diubah kepada fungsi lain dengan
hanya mingubah aturcara pada mikropengawal. Sebagai contoh gabungan
motor servo dan pengesan inframerah boleh menghasilkan robot bergerak
47
secara rawak tanpa mengena dinding. Untuk membuat robot tersebut aturcara
baru perlu dibangunkan dan dimuat turun ke dalam mikropengawal.
4.7 Rekabentuk Aliran Proses
Didalam bahagian ini, rekabentuk aliran kerja akan dijelaskan melalui carta
alir. Kaedah ini banyak digunakan kerana ia sangat mudah untuk difahami.
4.7.1 Muat Turun Aturcara
Rajah 4.13 : Carta alir memuat turun aturcara
Berpandukan carta alir dalam Rajah 4.8, algoritma yang telah direka
menggunakan BASIC Stamp Editor, akan dimuat turun ke dalam micropengawal
sama ada menggunakan BASIC Stamp Training Board atau disambungkan terus ke
ya
Tidak
ya
Tidak
Selesai
Mula
Membangunkan aturcara
Kompil
Muat turun dalam robot
Ada kesalahan?
Ada masalah?
Periksa sambungan Komputer
48
papan litar utama yang direka mempunyai sambungan kabel sesiri. Langkah-langkah
adalah seperti berikut :
i. Pertama adalah melakukan pengaturcaraan. Setelah selesai, kompil aturcara
tersebut.
Rajah 4.14: Kompil aturcara
ii. Jika ada kesalahan, baiki semula aturcara tersebut.
Rajah 4.15: Kesalahan dalam aturcara
49
iii. Jika tiada kesalahan , warna hijau akan kelihatan di bawah tetingkap. Muat
turun kedalam micropengawal. Jika aturcara tidak dapat dimuat turun,
periksa sambungan, bekalan kuasa dan micropengawal. Kemudian muat
turun semula.
Rajah 4.16: Memuat turun aturcara kedalam mikropengawal
Rajah 4.17: SEBI Board memuat turun aturcara
50
4.7.2 Proses Robot
Rajah 4.18 : Cara alir kerja robot
Berpandukan carta alir dalam Rajah 4.9, algoritma yang telah direka
bertujuan mempunyai pengiraan matematik yang tertentu untuk tiba ke destinasi.
Apabila micromouse diletakkan didalam maze dan memulakan pergerakan, algoritma
yang diaturaca juga akan beroperasi bersama. Robot akan bergerak kehadapan
disamping mengesan keadaan sekeliling maze. Jika Micromouse menjumpai
simpang, ia akan berhenti seketika untuk membuat pengiraan laluan terpendek. Jika
tidak menjumpai simpang ia akan meneruskan pergerakan disamping mengesan sama
ada sudah sampai kedestinasi atau belum. Jika belum Micromouse akan mengulangi
proses penyelesaian tadi.
Selesai
Mula
Menerusksn pacuan
Periksa pengesan
Pacu kehadapan
berhenti
Pengiraan laluan
terpendek
Jumpa simpang?
Ya
Tidak
Tiba di destinasi?
Ya
Tidak
51
4.8 Rumusan
Secara kesimpulanya, bab ini menerangkan rekabentuk yang direka untuk
menghasilkan robot yang menepati ciri-ciri micromouse yang telah ditetapkan oleh
IEEE pertandingan Micromouse Dunia. Rekaan ini termasuk juga pemilihan motor
dan jenis pengesan yang digunakan. Komponen yang paling penting adalah
penggunaan mikropemgawal dan algoritma yang digunakan untuk menghasilkan
projek ini,
Bab seterusnya menerangkan mengenai hasil projek yang diperolehi
daripada kerja-kerja mengumpul maklmat dan analisis projek.
52
BAB 5
HASIL PROJEK
5.1 Pengenalan
Bab ini menerangkan fasa implimentasi di mana ia merangkumi hasil akhir
perkakasan dan perisian. Robot ini dibina untuk bergerak secara automatik di dalam
maze. Ciri-ciri utama didalam projek ini seperti jenis mikropengawal yang
digunakan, pengesan inframerah dan algoritma serta fasa pengujian juga diterangkan
selanjutnya di dalam bab ini.
5.2 Pembinaan Litar Utama dan Komponen-Komponen Robot
Untuk membuat papan litar utama. Penggabungan litar Basic Micro , litar
bekalan kuasa, dan litar pengesan inframerah dilakukan. Semua ini adalah rangkaian
litar digital, jadi ia memerlukan bekalan kuasa sebanyak 5V.
53
Rajah 5.1: Rajah Blok litar
Kemudian litar dilukis pada papan PCB secara songsang daripada litar yang
digunakan. Setelah siap dilukis asid digunakan untuk menghakis ruangan pada
pada PCB yang tidak digunakan. Multimeter digunakan untuk memeriksa litar bagi
memastikan tiada sambungan yang terputus. Beberapa lubang pada papan PCB yang
digunakan ditebuk untuk membuat sambungan komponen dan mematri komponen
tersebut. Setelah selesai memateri, komponen, saya meletakkan papan litar utama ke
casis dan melakukan beberapa sambungan mengikut litar tadi.
Rajah 5.2: Litar PCB
54
Rajah 5.3: Litar Utama
Untuk mendapatkan bekalan kuasa 5V, litar regulator digunakan untuk
menukarkan 6V kepada 5V. Litar kecil yang membekalkan bekalan kuasa +5V ini
sangat berguna untuk membuat ujikaji keatas litar-litar elektronik . Ia kecil dan
sejenis pengubah yang murah yang mudah didapati di mana-mana kedai elektronik
dan juga boleh dibuat sendiri. Rajah 5.3 menunjukkan kedudukan litar regulator
yang digunakan. Litar ini dapat memberikan output +5 V dan 150 mA , tetapi boleh
ditingkatkan menjadi 1 A apabila pendinginan (heatsink) yang baik ditambah kepada
transistor 7805 (Rajah 5.4) .
Rajah 5.4 : Transistor
Jadual 5.1: Pin Transistor
Pin Penerangan
1 Voltan masukan (6V)
2 Bumi
3 Voltan keluaran (5V)
55
Pada peringkat perancangan, mikropengawal yang ingin digunakan
adalah BASIC STAMP II seperti yang ditunjukkan di dalam rajah 5.5
dibawah . Tetapi komponen tersebut digantikan dengan Micro Basic
Modules seperti di dalam rajah 5.6 dibawah. Micro Basic Modules dipilih
kerana :
i. Harga lebih murah berbanding Basic Stamp 2
ii. Ciri-ciri sama seperti Basic Stamp 2
Rajah 5.5: BASIC Stamp II
Rajah 5.6: Micro BASIC Modules
Kedua-dua mikropengawal mempunyai fungsi pin dan ciri-ciri yang
sama. Program pengaturcaraan juga mempunyai struktur yang sama.
56
Rajah 5.7: Pin Micro Basic Modules
Pada awal, litar pengesan inframerah yang terdiri daripada penghantar
denyut dan penerima denyut dibina sendiri. Litar ini akan disambungkan kepada
papan litar utama supaya komunikasi antara mikropengawal dan pengesan boleh
berlaku. Tetapi proses pembinaan litar inframerah mengalami masalah seperti :
i. Fungsi pengesan sangat kritikal, sambungan komponen di dalam litar
kadang kala longgar dan mengganggu prestasi robot.
ii. Sambungan komponen pada litar sukar dikenalpasti keadaanya sama ada
berfungsi atau tidak.
iii. Litar pengesan mudah mengalami kerosakan
iv. Litar pengesan yang mempunyai fungsi yang sama agak mahal dipasaran
Oleh kerana masalah seperti diatas berlaku, pengesan PnP Optikal Inframerah
digunakan dan ia merupakan sejenis pengesan dengan kaedah pantulan cahaya
inframerah. Ia direka untuk mengesan objek, dan sesuai untuk mengesan objek dari
jarak 3 sentimeter hingga 100 sentimeter. Ia sesuai untuk projek pengesan objek
seperti projek automasi dan robotic. Spesifikas komponen ini adalah seperti
berikut :
i. Voltan yang digunakan adalah 5V
ii. 3 pin iaitu Voltan masukan (5V), Bumi dan Pin keluaran
iii. Pin keluaran logik tunggal
iv. Terdiri daripada Osilator
v. LED merah (LED ini akan menyala jika terdapat isyarat)
57
vi. Kecekapan pengesan boleh ubah
Rajah 5.8: Pengesan Optikal Inframerah
5.3 Pembinaan maze
Untuk menguji fungsi robot ini, sebuah maze dengan ukuran sebenar dibuat
untuk menguji kecekapan dan fungsi robot tersebut. Maze tersebut dibuat dengan
kayu. Maze ini dalah jenis boleh ubah. Ini bermakna rekaan maze boleh diubah
mengikut apa yang dikehendaki. Untuk projek ini bentuk maze dipilih secara rawak
dan rajah yang berikut menunjukkan contoh bentuk maze dan kerja-kerja
pemasangan maze.
Rajah 5.9: Kerja- kerja memasang maze
58
Rajah 5.10 : Maze siap dipasang
5.4 Rekaan Robot
Sedikit perubahan dilakukan dalam rekaan robot. Robot yang direka agak
tinggi kerana perlu membuat ruangan yang cukup untuk pengesan inframerah. Robot
terdiri daripada tiga aras iaitu aras yang paling bawah untuk ruangan pengesan dan
motor servo. Aras kedua untuk ruangan bekalan kuasa dan aras tiga untuk papan litar
utama. Rekaan robot adalah seperti rajah 5.12 berikut.
Rajah 5.11: Prototaip robot
59
Rajah 5.12: Rekaan akhir
Jadual 5.2 : Bahagian struktur robot
Petunjuk
1 Papan Litar Utama
2 Bekalan kuasa
3 Pengesan dan Motor Servo
Didalam projek membina sebuah robot , kedudukan pengesan sangat penting
bagi memastikan pengesan dapat mengesan objek dengan baik dan dapat berfungsi
dengan litar dan aturcara dengan. Oleh itu, pengesan diletakkan di aras yang
terbawah kerana ia searas dengan dinding maze. Jumlah pengesan yang digunakan
adalah tiga. Dan kedudukan pengesan adalah seperti di dalam rajah 5.13. dibawah.
Kedudukan pengesan adalah sesuai kerana ia boleh berfungsi dengan baik di dalam
persimpangan contohnya seperti rajah 5.14 dibawah.
1
2
3
60
Rajah 5.13: Kedudukan pengesan
Ketiga-tiga pengesan inframerah diletakkan dihadapan robot.
Rajah 5.14: Keberkesanan pengesan
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
Kirajarak : JKiri = SQR (((15/2) - Kirix)*((15/2) - Kirix) + (((15/2) - Kiriy)*((15/2) - Kiriy))) JDEPAN = SQR (((15/2) - Depanx)*((15/2) - Depanx) + (((15/2) - Depany)*((15/2) - Depany))) JKanan = SQR (((15/2) - Kananx)*((15/2) - Kananx) + (((15/2) - Kanany)*((15/2) - Kanany))) RETURN
81
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.
University Technology Malaysia. Degree Thesis.
[5] Rujukan Laman web:
http://www.lboro.ac.uk/departments/el/robotics/Maze_Solver.html
(diambil pada 20.08.2009)
89
[6] Rujukan Laman web:
http://en.wikipedia.org/wiki/Micromouse (diambil pada 05.09.2009)
[7] Rujukan Laman web:
http://upe.acm.jhu.edu/websites/Benny_Tsai/Introduction%20to%20AStar.htm
(diambil pada 25.08.2009)
[8] Rujukan Laman web:
http://www.micromouseinfo.com/dexter/introduction.html
(diambil pada 24.8.2009)
[9] Rujukan Laman web:
http://www.roboticsindia.com/modules.php?name=News&file=article&sid=154
(diambil pada 24.8.2009)
[10] Rujukan Laman web:
http://micromouse.cannock.ac.uk (diambil pada 25.08.2009)
[11] Rujukan Laman web:
http://www.parallax.com/tabid/295/Default.aspx (diambil pada 25.08.2009)
90
[12] Nota Microsoft Power Point, Kepintaran Buatan ,SCK2263 Seksyen 1, Best-First
Search. 2008/2009
[13] Michael Gims, Sonja Lenz, Dirk Becker. 2006. Micromouse University of East London Thesis.
Laman web :
http://www.google.com.my/url?sa=t&source=web&ct=res&cd=1&url=http%3A
%2F%2Fwww.oldradio.de%2Fservice%2Fuel%2Freports%2Fmicromouse%2F
micromouse.pdf&ei=ly7OSsryIpPU7AOiyZjmAQ&rct=j&q=micromouse+proje
ct&usg=AFQjCNFsaqDKKgVoqC5Z3UrrsSQPB_8HfA
[14] Rujukan Laman web:
http://guppy.mpe.nus.edu.sg/srg/ (diambil pada 25.08.2009)
[15] Rujukan Laman web:
http://ashish.ideaforge.co.in/robotics.htm (diambil pada 25.08.2009)
[16] Rujukan Laman web:
http://en.wikipedia.org/wiki/Flood_fill (diambil pada 26.08.2009)
[17] Rujukan Laman web:
http://www.me.iitb.ac.in/~adeshmukh/floodfill.php
xviii
Undang-Undang Pertandingan Micromouse
1. Lokasi permulaan maze akan diletakkan pada pepenjuru maze. Ia
mempunyai tiga dinding mengelilingi lokasi tersebut. Bahagian bukaan
mestilah menghala ke destinasi iaitu di tengah-tengah maze disebelah
kanan dari lokasi permulaan.
2. Lebar dan panjang micromouse adalah 25cm x 25cm. Micromouse tidak
mempunyai had ketinggian. Micromouse tidak dibenarkan mengubah
dimensi saiznya ketika bergerak melalui maze.
3. Micromouse mestilah sepenuhnya bergerak secara automatik dan tidak
boleh menerima isyarat dari luar untuk membantu pergerakan
micromouse.
4. Kaedah mengesan dinding adalah bergantung kepada pereka. Tetapi
rekaan tidak boleh menyebabkan kerosakan dinding dan kaedah pacuan
robot adalah atas pertimbangan pereka termasuk sumber tenaga yang
tidak mencemarkan alam sekitar.
5. Micromouse tidak boleh meninggalkan sebarang peranti sepanjang laluan
semasa membuat penjelajahan sepanjang maze.
6. Micromouse tidak boleh melompat, memanjat atau merosakkan dinding
maze.
7. Setiap penyertaan akan diberikan had masa 5 minit atau 6 kali
perlanggaran dalam maze. Micromouse boleh bergeraka sebanyak mana
yang boleh dalam had masa dan tidak oleh berlanggar lebih dari 5 kali.
8. Pengiraan markah yang diperolehi adalah seperti berikut :
Markah(Berjaya tiba ke destinasi)= Masa yang diambil + Penalti
carian +Penalti sentuhan
Penalti Carian = 1/60 daripada masa yang digunakan dalam saat
Penalti Sentuhan = 2 saat
Sebagai contoh, Jika micromouse berada dalam maze tanpa
bersentuhan selama 4 minit, memulakan pergerakan dari asalan ke
destinasi selama 20 saat. Jadi masa larian adalah
xix
20 + 1/60th (4X60) = 24 saat. Jika micromouse bersentuhan, penalti
penambahan selama 2 saat yang menghasilkan markah adalah 26 saat.
Ketepatan markah adalah berhampiran dengan 1/100th saat.
9. Masa larian akan mula dikira apabila micromouse mula meninggalkan
kotak pertama sehinggalah micromouse tiba di destinasi. Larian akan
lengkap jika keseluruhan micromouse berada di dalam kotak destinasi.
10. Sistem pengiraan berkomputer dengan alat pengesan elektronik akan
digunakan untuk mengira markah setiap micromouse. Alat pengesan
elektronik akan diletakkan pada kotak permulaan dan kotak destinasi.
Alat tersebut akan diletakkan 1 cm di atas lantai maze. Sebarang masalah
teknikal tentang sistem ini, akan dibantu oleh pengiraan masa secara
manual.
11. Prosedur pada permulaan setiap penyertaan adalah ringkas dan tiada
kemudahan pengubahsuaian strategi pergerakan robot. Tekan butang
mula atau suis mula sekali untuk memulakan operasi micromouse.
Dengan had masa yang telah diberikan, peserta tidak boleh memasukkan
apa-apa maklumat kedalam micromouse.
12. Peserta akan diberikan masa 1 minit untuk memeriksa keadaan sensor jika
diperlukan. Walaubagaimanapun, peserta dilarang membuat tetapan baru
atau strategi baru ke dalam micromouse. Masa membuat carian bagi
robot akan mula jika peserta masih membuat pemeriksaan sensor jika
masa untuk memeriksa robot tamat. Hanya seorang peserta dibenarkan
untuk mengendali micromouse ketika perlawanan dimulakan.
13. Jika micromouse tiba di kotak destinasi, micromouse mestilah berhenti
dengan sendirinya, kekal di dalam kotak dan dan menyambung membuat
navigasi ke kawasan lain untuk pergi ke kotak asalan. Jika robot
memilih untuk berhenti di destinasi, peserta perlu mengangkat dan
dimulakan kembali. Jika diangkat secara manual, ia dikira sentuhan
keatas robot. Oleh itu penalti sentuhan akan dikenakan.
14. Jika micromouse mengalami masalah ketika larian, peserta mesti meminta
kebenaran daripada pengadil untuk membatalkan larian dan memulakan
semula dari asalan. Peserta tidak perlu memulakan semula perlawanan
jika micromouse membuat pergerakan yng salah dan keputusan hakim
xx
adalah muktamad. Setiap peserta mestilah menyelesaikan masalah
teknikal dalam had masa lima minit yang diberikan. Penjadualan semula
jika berlaku masalah teknikal pada micromouse tidak akan berlaku.
15. Sebelum maze yang lengkap dikonfigurasi, semua peserta mesti
mendaftarkan diri dengan urusetia. Selepas pendaftaran dibuat, tiada
penukaran dan penggantian bahagian pada micromouse. Jika
pertandingan dimulakan dan tiada penukaran bateri boleh dilakukan dan
penalti sentuhan akan dikenakan jika perkara ini berlaku
xxii
' {$STAMP BS2}
' {$PBASIC 2.5}
pulseCount VAR Word
Arah VAR Byte
Utara VAR Byte
Timur VAR Byte
Selatan VAR Byte
Barat VAR Byte
x VAR Byte
y VAR Byte
Pengesan VAR Byte
JKiri VAR Byte
JDepan VAR Byte
Jkanan VAR Byte
Kirix VAR Byte
Kiriy VAR Byte
Depanx VAR Byte
Depany VAR Byte
Kananx VAR Byte
Kanany VAR Byte
main:
Arah = Utara
x = 0
y = 0
PAUSE 3000
IF Arah = Utara THEN PUtara
PUtara:
IF IN0=1 AND IN5=1 AND IN2=0 THEN
GOSUB PUtaraMaju
ELSEIF IN0=1 AND IN5=1 AND IN2=1 THEN
xxiii
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
xxiv
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
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
xxv
Arah = Timur
GOSUB Kanan
GOSUB Destinasi
GOTO PTimur
PTimurMaju :
x = x + 1
GOSUB Maju
GOSUB Destinasi
GOTO PTimur
PTimurUndur :
x = x - 1
Arah = Barat
GOSUB Undur
GOSUB Destinasi
GOTO PBarat
PTimurKiri :
y = y + 1
Arah = Utara
GOSUB Kiri
GOSUB Destinasi
GOTO PUtara
PTimurKanan :
y = y - 1
Arah = Selatan
GOSUB Kanan
GOSUB Destinasi
GOTO PSelatan
PSelatanMaju :
y = y - 1
GOSUB Maju
xxvi
GOSUB Destinasi
GOTO PSelatan
PSelatanUndur :
y = y + 1
Arah = Utara
GOSUB Undur
GOSUB Destinasi
GOTO PUtara
PSelatanKiri :
x = x + 1
Arah = Timur
GOSUB kiri
GOSUB Destinasi
GOTO PTimur
PSelatanKanan :
x = x - 1
Arah = Barat
GOSUB Kanan
GOSUB Destinasi
GOTO PBarat
PBaratMaju :
x = x - 1
GOSUB Maju
GOSUB Destinasi
GOTO PBarat
PBaratUndur :
x = x + 1
Arah = Timur
GOSUB Undur
xxvii
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
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
Berhenti :
STOP
Pengiraan :
IF Arah = Utara THEN
xxviii
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
xxix
Kirajarak :
JKiri = SQR (((15/2) - Kirix)*((15/2) - Kirix) + (((15/2) - Kiriy)*((15/2) - Kiriy)))
JDEPAN = SQR (((15/2) - Depanx)*((15/2) - Depanx) + (((15/2) - Depany)*((15/2) -
Depany)))
JKanan = SQR (((15/2) - Kananx)*((15/2) - Kananx) + (((15/2) - Kanany)*((15/2) -
Kanany)))
RETURN
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
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
LNR :
JDepan = 100
IF (JKiri<JDepan)AND(JKiri<=JKanan)THEN
xxx
IF Arah = Utara THEN PUtaraKiri
IF Arah = Timur THEN PTimurKiri
IF Arah = Selatan THEN PSelatanKiri
IF Arah = Barat THEN PBaratKiri
ELSEIF (JKanan<JKiri)AND(JKanan<JDepan)THEN
IF Arah = Utara THEN PUtaraKanan
IF Arah = Timur THEN PTimurKanan
IF Arah = Selatan THEN PSelatanKanan
IF Arah = Barat THEN PBaratKanan
ELSE
STOP
ENDIF
RETURN
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
STOP
ENDIF
RETURN
FNR :
JKiri = 100
IF (JDepan<=JKanan)AND(JDepan<=JKiri)THEN
IF Arah = Utara THEN PUtaraMaju
IF Arah = Timur THEN PTimurMaju
IF Arah = Selatan THEN PSelatanMaju
xxxi
IF Arah = Barat THEN PBaratMaju
ELSEIF (JKanan<JDepan)AND(JKanan<JKiri)THEN
IF Arah = Utara THEN PUtaraKanan
IF Arah = Timur THEN PTimurKanan
IF Arah = Selatan THEN PSelatanKanan
IF Arah = Barat THEN PBaratKanan
ELSE
STOP
ENDIF
Maju:
FOR pulseCount = 1 TO 41
PULSOUT 8, 720
PULSOUT 9, 730
PAUSE 50
NEXT
PAUSE 100
RETURN
Undur:
FOR pulseCount = 1 TO 71 ' Pusingan 180 darjah
PULSOUT 8, 680
PULSOUT 9, 730
PAUSE 20
NEXT
PAUSE 100
FOR pulseCount = 1 TO 41 ' Bergerak kehadapan
PULSOUT 8, 720
PULSOUT 9, 730
PAUSE 50
NEXT
PAUSE 100
RETURN
Kiri:
FOR pulseCount = 1 TO 19 'pusingan ke kiri 90 darjah
xxxii
PULSOUT 8, 680
PULSOUT 9, 730
PAUSE 50
NEXT
PAUSE 100
FOR pulseCount = 1 TO 41 ' bergerak ke hadapan
PULSOUT 8, 720
PULSOUT 9, 730
PAUSE 50
NEXT
PAUSE 100
RETURN
Kanan:
FOR pulseCount = 1 TO 31 ' pusingan ke kanan 90-darjah
PULSOUT 8, 720
PULSOUT 9, 770
PAUSE 20
NEXT
PAUSE 100
FOR pulseCount = 1 TO 41 ' bergerak ke hadapan
PULSOUT 8, 720
PULSOUT 9, 730
PAUSE 50
NEXT
PAUSE 100
RETURN
xxxix
Proses pengiraan robot
Lokasi Pemilihan laluan
1 Depan=(0,2) Kanan = (1,1)
Depan = √( (7.5-0)2 + (7.5-2)2 )
= 8
Kanan = √( (7.5-1)2 + (7.5-1)2 )
= 8
Laluan = Depan
2 Kiri=(1,3) Depan = (2,2)
Depan = √( (7.5-1)2 + (7.5-3)2 )
= 7
Kanan = √( (7.5-2)2 + (7.5-2)2 )
= 7
Laluan = Depan
3 Kiri=(4,7) Kanan = (4,5)
xl
Depan = √( (7.5-4)2 + (7.5-7)2 )
= 3
Kanan = √( (7.5-4)2 + (7.5-5)2 )
= 3
Laluan = Kiri
4 Depan=(4,5) Kanan = (3,6)
Depan = √( (7.5-4)2 + (7.5-5)2 )
= 3
Kanan = √( (7.5-3)2 + (7.5-6)2 )
= 4
Laluan = Depan
5 Depan=(6,2) Kanan = (5,1)
Depan = √( (7.5-6)2 + (7.5-2)2 )
= 5
Kanan = √( (7.5-5)2 + (7.5-1)2 )
= 6
Laluan = Depan
6 Depan=(7,2) Kiri = (6,3)
Depan = √( (7.5-7)2 + (7.5-2)2 )
= 5
Kiri = √( (7.5-6)2 + (7.5-3)2 )
= 4
Laluan = Kiri
7 Kiri=(10,4) Kanan = (10,2)
Kiri = √( (7.5-10)2 + (7.5-4)2 )
= 4
Kanan = √( (7.5-10)2 + (7.5-2)2 )
= 5
Laluan = Kiri
8 Kiri=(9,4) Kanan = (11,4)
Kiri = √( (7.5-9)2 + (7.5-4)2 )
= 3
Kanan = √( (7.5-11)2 + (7.5-4)2 )
xli
= 5
Laluan = Kiri
9 Kiri=(5,3) Kanan = (5,5)
Kiri = √( (7.5-5)2 + (7.5-3)2 )
= 4
Kanan = √( (7.5-5)2 + (7.5-5)2 )
= 2
Laluan = Kanan
10 Depan =(13,14) Kanan = (12,13)
Depan = √( (7.5-13)2 + (7.5-14)2 )
= 8
Kanan = √( (7.5-12)2 + (7.5-13)2 )
= 7
Laluan = Kanan
11 Kiri=(10,11) Kanan = (10,13)
Kiri = √( (7.5-10)2 + (7.5-11)2 )
= 5
Kanan = √( (7.5-10)2 + (7.5-13)2 )
= 6
Laluan = Kiri
12 Kiri=(8,12) Depan = (9,13)
Kiri = √( (7.5-8)2 + (7.5-12)2 )
= 5
Depan = √( (7.5-9)2 + (7.5-13)2 )
= 6
Laluan = Kiri
13 Kiri=(8,11) Kanan = (8,13)
Kiri = √( (7.5-8)2 + (7.5-11)2 )
= 4
Kanan = √( (7.5-8)2 + (7.5-13)2 )
= 6
Laluan = Kiri
14 Kiri=(6,12) Depan = (7,13)
xlii
Kiri = √( (7.5-6)2 + (7.5-12)2 )
= 5
Depan = √( (7.5-7)2 + (7.5-13)2 )
= 6
Laluan = Kiri
15 Kiri=(7,10) Depan = (6,9)
Kiri = √( (7.5-7)2 + (7.5-10)2 )
= 3
Depan = √( (7.5-6)2 + (7.5-9)2 )
= 2
Laluan = Depan
16 Depan = (6,11) Kanan = (7,10)
Depan = √( (7.5-6)2 + (7.5-11)2 )
= 4
Kanan = √( (7.5-7)2 + (7.5-10)2 )
= 3
Laluan = Kanan
17 Kiri=(11,9) Kanan = (9,9)
Kiri = √( (7.5-11)2 + (7.5-9)2 )
= 4
Kanan = √( (7.5-9)2 + (7.5-9)2 )
= 2
Laluan = Kanan
18 Kiri=(10,8) Depan = (9,7)
Kiri = √( (7.5-10)2 + (7.5-8)2 )
= 3
Depan = √( (7.5-9)2 + (7.5-7)2 )
= 2
Laluan = Depan
19 Kiri =(10,6) Kanan = (8,6)
Kiri = √( (7.5-10)2 + (7.5-6)2 )
= 3
Kanan = √( (7.5-8)2 + (7.5-6)2 )