robot penyelesaian maze mohd hafiz bin...

137
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

Upload: lamnhu

Post on 01-Sep-2018

241 views

Category:

Documents


0 download

TRANSCRIPT

i

ROBOT PENYELESAIAN MAZE

MOHD HAFIZ BIN MOHD AMBAR

Laporan projek ini dikemukakan sebagai memenuhi sebahagian daripada

Syarat Penganugerahan Ijazah Sarjana Muda Sains (Sains Komputer)

Fakulti Sains Komputer dan Sistem Maklumat

Universiti Teknologi Malaysia

Mei , 2010

ii

PSZ 19 : 16 : (Pind.1/97)

UNIVERSITI TEKNOLOGI MALAYSIA

CATATAN * Potong yang tidak berkenaan.

** Jika tesis ini SULIT atau TERHAD, sila lampirkan surat daripada pihak berkuasa,organisasi berkenaan dengan menyatakan sekali sebab dan tempoh tesis ini perlu dikelaskan sebagai SULIT atau TERHAD.

Tesis dimaksudkan sebagai tesis bagi Ijazah Doktor Falsafah dan Sarjana secara penyelidikan, atau disertasi bagi pengajian secara kerja kursus dan penyelidikan, atau Laporan Projek Sarjana Muda (PSM).

BORANG PENGESAHAN STATUS TESIS

JUDUL : ROBOT PENYELESAIAN MAZE

SESI PENGAJIAN : 2009/2010 - 2 Saya MOHD HAFIZ BIN MOHD AMBAR mengaku membenarkan tesis ( PSM/Sarjana/Doktor Falsafah )* ini disimpan di Perpustakaan Universiti Teknologi Malaysia dengan syarat-syarat kegunaan seperti berikut :

1. Tesis adalah hakmilik Universiti Teknologi Malaysia. 2. Perpustakaan Universiti Teknologi Malaysia dibenarkan membuat salinan untuk tujuan pengajian sahaja. 3. Perpustakaan dibenarkan membuat salinan tesis ini sebagai bahan pertukaran antara institusi pengajian tinggi. 4. **Sila tandakan ( )

SULIT

TERHAD TIDAK TERHAD Disahkan oleh

(TANDATANGAN PENULIS) (TANDATANGAN PENYELIA)

Alamat Tetap : 21, JLN KALONG SATU, DR. MOHD MURTADHA BIN MOHAMAD TAMAN KOBENA, 81200 JOHOR BAHRU,

JOHOR DARUL TAKZIM.

Tarikh : 01 MEI 2010 Tarikh : 01 MEI 2010

(Mengandungi maklumat yang berdarjah keselamatan atau kepentingan Malaysia seperti yang termaktub di dalam AKTA RAHSIA RASMI 1972)

(Mengandungi maklumat TERHAD yang telah ditentukan oleh organisasi/badan di mana penyelidikan dijalankan)

iii

Saya akui karya yang berjudul ”Robot Penyelesaian Maze” ini adalah hasil kerja

saya sendiri kecuali nukilan dan ringkasan yang tiap satunya telah saya jelaskan

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

x

Lampiran B

Lampiran C

Lampiran D

Lampiran E

Lampiran F

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

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

91 

 

 

 

xv

LAMPIRAN A

xvi

xvii

LAMPIRAN B

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

xxi

LAMPIRAN C

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

xxxiii

LAMPIRAN D

xxxiv

xxxv

LAMPIRAN E

xxxvi

xxxvii

xxxviii

LAMPIRAN F

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 )

xliii

= 1

Laluan = Kanan

20 Kiri=(6,5) Kanan = (6,7)

Kiri = √( (7.5-6)2 + (7.5-5)2 )

= 2

Kanan = √( (7.5-6)2 + (7.5-7)2 )

= 1

Laluan = Kanan

21 Depan =(6,8) Kanan = (7,7)

Kiri = √( (7.5-6)2 + (7.5-8)2 )

= 1

Kanan = √( (7.5-7)2 + (7.5-7)2 )

= 0

Laluan = Kanan