robot micromouse den gan menggunakan algoritma depth-first search
TRANSCRIPT
ROBOT MICROMOUSE DENGAN MENGGUNAKAN
ALGORITMA DEPTH-FIRST SEARCH
NUR SYAFIDTRI ANITA
Jurusan Sistem Komputer, Fakultas Ilmu Komputer, Universitas Gunadarma, Margonda Raya
100 Depok 16424 telp (021) 78881112, 7863788
Abstraksi : Robot Micromouse adalah robot cerdas yang dapat bergerak bebas di dalamsebuah labirin (maze) tanpa menyentuh objek sekitarnya, robot mengetahui ke arah manaharus bergerak, berapa derajat harus berputar jika menemui jalan buntu pada area labirin.Robot micromouse ini termasuk ke dalam jenis Robot Mobile yaitu Autonomous MobileRobot. Autonomous Mobile Robot adalah pengendalian gerakan dari robot yang berdasarkanprogram kemudi yang diberikan sehingga seolah -olah robot tersebut bergerak sendiri. Robotini dibangun atau dibuat dengan menggunakan mikrokontroler ATMEGA 128 sebagaipengendali, tiga buah sensor inframerah GP2D12 buatan SHARP untuk mendeteksi adanyatembok atau tidak adanya tembok, dua buah driver motor yaitu SPC Stepper Motor dan duabuah stepper motor yang sumber tegangannya berasal dari satu buah baterai LithiumPolymer. Robot micromouse memiliki dua mode yaitu mode explorasi dan mode hafalan.Mode explorasi robot akan melalui semua jalan yang ada pada labirin sedangkan modehafalan robot akan bergerak sesuai dengan data yang tersimpan pada EEPROMmikrokontroler yang diperoleh dari mode eksplorasi. Robot ini menggunakan algoritmaDepth-First Search untuk mencari jalan keluar dalam suatu labirin. Bahasa pemograman yangdigunakan adalah bahasa C. Hasil pengujian, menunjukkan bahwa robot dapat menemui jalankeluarnya sendiri dengan beragam konfigurasi labirin, dengan asumsi titik mulai dan titikakhir tetap.
Kata Kunci: Sensor, Mikrokontroler, SPC Stepper Motor, Stepper Motor
Tanggal Pembuatan : 12 April 2010
PENDAHULUAN
Kata Robot berasal dari bahasa
Czech, robota yang berarti pekerja. Kata
Robot diperkenalkan dalam bahasa Inggris
pada tahun 1921 oleh Wright Karel
Capek. Robot adalah mesin hasil rakitan
manusia yang bisa bekerja tanpa mengenal
lelah. Akhir-akhir ini telah banyak
dilakukan penelitian di bidang robotika,
termasuk negara kita Indonesia yang juga
turut berperan dalam penelitian dan
berinovasi dalam pembuatan robot. Di
Indonesia bukan hanya mahasiswa
perguruan tinggi yang dapat membuat
robot akan tetapi murid-murid SMK
(Sekolah Menengah Kejuruan), murid -
murid SMA (Sekolah Menengah Atas)
bahkan anak SD (Sekolah Dasar) pun
dapat membuat robot.
Dalam membangun sebuah robot
ada beberapa hal penting yang haru s ada
yaitu system mekanik robot, system
elektronik robot dan software atau bahasa
pemograman. Sistem mekanik robot
adalah memilih material (bahan)
pembangunan fisik robot. Untuk memilih
material (bahan) untuk membuat robot
haruslah sesuai. Untuk mengetahu i bahan
yang sesuai untuk robot bisa mencarinya
melalaui internet atau dari referensi buku -
buku yang ada dalam bidang robotika.
Sistem elektronik robot sebuah robot
meliputi adanya rangkaian pengendali
utama (main controller), rangkaian sensor
dan rangkaian driver akuator
(elektromekanik yang memiliki daya gerak
[1]. Pada umumnya akuator robot adalah
motor DC, motor DC stepper, ataupun
motor DC servo. Sedangkan software atau
pemograman digunakan dalam
pembangunan robot dengan komponen
programmable, seperti IC mikrokontroler /
mikroprosessor. Komponen programmable
adalah komponen yang terbuat dari bahan
semikonduktor dan merupakan integrasi
dari berbagai komponen elektronika di
dalamnya dan dapat di program ulang
demi pengendalian robot. Bahasa
pemograman komponen programmable
yang sering digunakan adalah bahasa
pemograman assembly dan / atau bahasa
pemograman C / C++ serta bahasa
Compiler (Bascom).
Berdasarkan uraian yang penulis
jabarkan, penulis ingin membuat sebuah
robot yaitu robot yang bernama ‘ Robot
Micromouse dengan Menggunakan
Algoritma Depth-First Search’. Robot
ini adalah sebuah robot yang dapat
bergerak dengan bebas di dalam sebuah
labirin (maze) tanpa menyentuh objek atau
tembok sekitarnya, yang pada akhirnya
robot mengetahui kearah mana robot
bergerak, berapa derajat harus berputar
jika menemui jalan buntu pada area labirin
(maze) tersebut.
TINJAUAN PUSTAKA
Teori Robot
Istilah ‘Robot’ dan ‘Robotics’
adalah istilah yang baru pada abad ke 20
ini, tetapi idenya didasarkan pada sejarah
yang sama. Kata ‘Robot’ pertama kali
digunakan oleh suatu grup drama
‘Czechoslovakia Dramatist, Karel Capek
pada tahun 1921’ sewaktu bermain di
‘Rossum’s Universal Robots’. Rancangan
robot ini sepenuhnya dikerjakan /
digerakkan secara manual. Istilah
‘Robotics’ oleh Isaac Asimov diartikan
sebagai ukuran pengetahuan / pelajaran
tentang robot, mulai dari desainnya,
manufaktur hingga penggunaannya.
Pada umumnya bagian-bagian yang
menunjang pembentukan suatu robot
adalah :
Central Computer atau Control
Circuitry
Bagian ini sebagai otak yang
mengolah dan mengatur segala
sesuatu yang menyebabkan robot
ini dapat ‘kelihatan hidup’. Dia
mengolah yang diberikan oleh
bagian input dan mengontrol yang
akan dilakukan pada bagian
outputnya
Obstacle detectors, Vision System
Bagian dari input yang
memberikan masukan-masukan
variabel guna diolah untuk
menentukan yang akan dilakukan
oleh bagian outputnya
Driver Motor, Arm, Gripper
Tidak seluruhnya harus terpasang
lengkap, namun driver motor
adalah yang paling dominan
banyak dijumpai pada robot dan ini
adalah bagian dari output
sistemnya. Pada umumnya bagian
ini ditunjang oleh seperangkat alat -
alat mekanis
Central Power System
Bagian ini amat vital karena
merupakan ‘nyawa’ bagi robot.
Ketiga bagian diats selalu
membutuhkan daya untuk da pat
bekerja, maka bagian ini sangat
penting.
Gambar 1. Blok Diagram Robot Secara
Umum
Jenis-jenis Robot
Robot mempunyai 2 jenis yaitu :
a. Robot Mobile
Kata robot mobile mempunyai arti
bergerak, yang dimaksudkan
adalah system robot tersebut
mampu memindahkan dirinya
sendiri dari posisi A ke posisi B,
dimana kedua posisi tersebut
berada pada jarak tertentu
(keseluruhan badan robot
berpindah tempat), biasa dikatakan
bahwa robot tersebut bergerak
dinamis.
1. Operator Oriented
Mobil robot dengan Operator
Oriented adalah pengendalian
gerakan dari robot yang
membutuhkan seorang
operator. Jadi seluruh gerakan
robot untuk memindahkan
tubuhnya tergantung dari
instruksi yang diberikan oleh
seorang operator.
2. Self Running
(Autonomous)
Mobile robot dengan Self
Running adalah pengendalian
gerakan dari robot yang
berdasarkan program kemudi
yang diberikan sehingga
seolah-olah robot tersebut
bergerak sendiri. Jenis ini tidak
tergantung dari kemudi seorang
operator dan juga biasanya
ditempatkan beberapa jenis
sensor untuk mendeteksi situasi
sekelilingnya (untuk mengenali
medan jelajahnya).
b. Non- Mobile Robot
Kebalikan dari pengertian robot
mobile, maka non robot mobile
memiliki pengertian system robot
yang tidak dapat memindahkan
posisinya dari satu tempat ke
tempat lain. Artinya robot tersebut
hanya dapat menggerakan
tubuhnya saja, misalnya ini terjadi
pada perangkat manipulator yaitu
lengan robot, tangan kaki dan
sebagainya. Atau dengan kata lain
tubuh robot berada pada posisi
yang tetap.
Mikrokontroler
Sebuah pengembangan lebih lanjut
mengenai mikroprossor adalah
mikrokontroller. Bila dalam
penggunaannya, mikroprosesor
membutuhkan RAM dan ROM untuk
membuat suatu alat yang sederhana. Akan
tetapi dalam sebuah chip mikrokontroler,
piranti-piranti tersebut telah terintegrasi
cukup lengkap didalamnya, bahkan
sekarang mikrokontroler ada yang
memiliki piranti-piranti tambahan lain
yang telah terintegrasi didalamnya, seperti
ADC (Analog Digital Converter), RTC
(Real Time Clock), dan lain -lain.
Penggunaan mikrokontroler dapat
mengurangi komponen yang akan
digunakan bila kita akan membuat suatu
alat/rangkaian elektronik.
Arsitektur Mikrokontroler
Mikrokontroler merupakan sebuah
sistem komputer yang seluruh atau
sebagian besar elemennya dikemas dalam
satu chip IC, sehingga disebut single chip
microcomputer. Lebih lanjut
mikrokontroler merupakan sistem
komputer yang memiliki satu atau
beberapa tugas yang sangat spesifik,
berbeda dengan PC yang memilki beragam
fungsi. Perbedaan lainnya adalah
perbandingan RAM dan ROM yang sangat
berbeda antara komputer dengan
mikrokontroler. Dalam mikrokontroler,
ROM jauh lebih besar dibandingkan
RAM, sedangkan dalam komputer atau PC
RAM jauh lebih besar dibanding ROM.
Mikrokontroler dapat disebut sebagai 'one
chip solution' karena terdiri dari :
• CPU ( central processing unit )
CPU yaitu bagian yang paling penting
dari suatu mikroprocessor, ia melakukan
pemrosesan data
• RAM ( Random Access Memory )
RAM digunakan untuk menyimpan data
sementara
• EPROM/PROM/ROM (Eraseable
Programmable Read Only Memory )
• I/O ( Input / Output ) - serial and paraller
Unit ini berfungsi agar mikrokonroler
dapat berkomunikasi dalam format serial
atau paralel, sehingga dapat
berkomunikasi dengan mudah dengan PC
dan devais standar digital lainnya
• Timers
Timer berguna untuk menga tur
pewaktuan pada sytem berbasis
mikrokontroler, misal untuk delay atau
pencacah
• Interrupt controller
Berfungsi menangani suatu request pada
saat mikrokontroler sedang running.
Peran clock bagi mikrokontroler ibarat
jantung manusia. Manusia tanpa detak
jantung tidak akan hidup.
Mikrokontroler tanpa ' detak ' clock juga
tidak akan berfungsi.Pulsa clock
mengambil peran penting dalam
menentukan kecepatan dan sinkronisasi
kerja Central Processing Unit ( CPU )
mikrokontroler
IC mikrokontroler memiliki dua
pin ( XTAL1 dan XTAL2 ) yang
merupakan input dan output dari on-chip
inverting amplifier satu tahap. Kaki-kaki
ini dapat dihubungkan dengan rangkaian
pembangkit pulsa clock. Dengan
memnfaatkan on-chip ascillator, rangkaian
pembangkit pulsa hanya membutuhkan
dua kapasitor dan sebuah quartz crystal
atau ceramic resonator. Jika menggunakan
quartz crystal, nilai kapasitor yang umum
digunakan adalah 47pF. Frekuensi Quartz
Crystal atau Ceramic Resonator (kedua
istilah ini disebut Osilator) yang dapat
digunakan berkisar antara 0 Hz hingga 24
MHz, bahkan ada beberapa varian
mikrokontroler yang mampu mengunakan
osilator 49 MHz. Namun frekuensi yang
sering digunakan, terutama jika
menggunkan komunikasi Universal
Asynchronous Transmitter (UART) adalah
11,0592 MHz. Selain dengan on-chip
oscillator, IC mikrokontroler juga
menggunakan external clock generator.
Sumber clock luar ini dihubungkan dengan
XTAL1 sedangkan XTAL2 tidak
terhubung kemanapun juga. Pin XTAL2
merupakan inverted output dari XTAL1.
Machine Cycle atau siklu s mesin
merupakan satuan waktu terkecil dalam
menjalankan satu instruksi. Satu machine
cycle terdiri atas enam state atau tahap.
Masing-masing tahap terdiri dari 2 phase
atau fase. Jadi satu machine cycle terdiri
dari 12 periode osilator (6 state x 2 phase )
atau 12 pulsa clock. Jika frekuensi kristal
yang digunakan adalah 12 MHz, maka
kristal tersebut akan mengeluarkan
12.000.000 pulsa per detik. Hal ini berarti
dalam satu detik akan ada 1.000.000
(12.000.000/12) machine cycle. Atau
dengan kata lain, satu machine cycle akan
memakan waktu satu mikro detik. Jika
frekuensi kristal yang digunakan lebih
tinggi, maka akan ada lebih banyak
machine cycle dalam satu detik sehingga
lebih banyak instruksi/opcode yang dapat
dijalankan.
Jenis - jenis Mikrokontroler
Ada beberapa jenis-jenis Mikrokontroler
yaitu AT89C51, AT89LS53,
AT89LS8252, AT89S51, AT89S52,
AT89S53, AT89S852 dan lain -lain. Untuk
IC Mikrokontroller AT89C51 adalah
mikrokontroler dengan arsitektur MCS51
seperti 8031 dengan memori Flash
PEROM (Programmable and Erasable
Read Only Memory), IC tersebut dapat
diprogram dan dapat juga difl ash ulang
dengan menggunakan elektrik. IC
AT89C51 bersifat nonvolotile, kapasitas
ruang yang dapat diisi sebesar 4 Kb.
Dalam pengoperasiannya, AT89C51
membutuhkan tegangan DC se bagai
aktifator berkisar antara 4 - 5,5 Volt pada
pin VCC (pin 40), sedangkan pin GND
(pin 20) diberikan tegangan 0 volt.
Gambar 2. Konfigurasi Pin IC
AT89C51
IC Mikrokontroler tipe AT89S51 buatan
Atmel merupakan salah satu tipe
mikrokontroler yang mempunyai arsitektur
8051. Mikrokontroler dengan arsitektur
8052 merupakan salah satu jenis arsitektur
mikrokontroler paling lama dan paling
banyak digunakan di dunia karena bersifat
low cost dan high performance. Arsitektur
ini dikeluarkan pertama kali oleh i ntel dan
kemudian menjadi sangat populer. Pada
seri-seri mikrokontroler berarsitektur 8051
tergabung dalam satu keluarga
mikrokontroler yaitu keluarga MCS -51.
Dibawah ini konfigurasi pin-pin dari
AT89S52:
Gambar 3. Konfigurasi Pin Pada
AT89S52
Motor
Motor mekanik mengubah energi
listrik menjadi gerak mekanik. Gerakan
memutar yang merubah gerak mekanik
menjadi gerak listrik, itu dilakukan oleh
dinamo atau generator. Kebanyakan motor
listrik bekerja berdasarkan
elektromagnetik, tapi motor didasari oleh
fenomena elektromagnetik lainya. Seperti
gaya elektrostatis dan juga efek
Piezoelektrik. Prinsip yang fundamental
dari motor elektromagnetik yaitu
berdasarkan dari tenaga mekaniknya ketika
kabelnya dihubungkan dengan listrik,
tanpa adanya medan magnet. Tenag a ini di
deskripsikan oleh hokum gaya Lorentz dan
itulah yang memisahkan keduanya antara
kabel dan medan magnet. Kebanyakan
motor listrik bergerak berputar tapi bisa
juga bergerak linear. Pada motor bagian
dalam yang berputar disebut rotor dan
pada bagian yang tidak bergerak disebut
stator. Rotor berputar karena ada kawat
dan medan magnet.
Motor Stepper
Stepper motor adalah salah satu
tipe motor yang sangat popular digunakan
sebagai peralatan penggerak/pemutar
(movement unit/actuator) dalm
sistemkontrol otomatis di industry,
instrumentasi, bahkan printer yang sering
kita gunakan.
Pada dasarnya, prinsip kerja
Stepper motor ini sama dengan DC Motor,
yaitu pembangkitan medan magnet untuk
memperoleh gaya tarik ataupun gaya
lawan dengan menggunakan catu teganga n
DC pada lilitan/kumparannya.
Perbedaanya terletak pada gaya yang
digunakan. Bila DC Motor menggunakan
gaya lawan untuk ‘menolak’ atau
mendorong ‘fisik kutub magnet’ yang
dihasilkan maka Stepper Motor justru
menggunakan gaya tarik untuk menarik
‘fisik kutub magnet yang berlawanan’
sedekat mungkin ke posisi kutub magnet
yang dihasilkan oleh kumparan. Oleh
karena itu, pada DC Motor, putarannya
relative tidak terkendali, jarak tolakannya
sangat relative, tergantung pada besar
medan magnet yang dihasilkan.
Sebaliknya pada Stepper Motor, gerakan
motor terkendali karena begitu kutub yang
berlawanan tadi sudah tarik-menarik dalam
posisi yang paling dekat, gerakan akan
terhenti dan direm. Oleh sebab itu, Stepper
Motor menggunakan teknik khusus untuk
dapat memberikan efek putar pada
rotornya.
Stepper Motor mempunyai 2 tipe
yaitu unippolar dan bipolar. Stepper yang
digunakan untuk robot micromouse ini
adalah Stepper Motor Bipolar. Stepper
Motor memiliki 4 fase, pada prinsipnya
ada dua macam cara kerja yaitu Full St ep
dan Half Step. Yang dimaksud dengan Full
Step adalah suatu mode motor stepper
dimana per langkahnya merupakan
pergeseran maksimum antara rotor
terhadap stator sehingga mode Full
merupakan mode tercepat untuk
melakukan pergeseran/perputaran namun
memiliki kekurangan dari segi torsi yang
dihasilkan sedangkan Half Step adalah
setiap pergeseran perlangkah merupakan
setengah dari pergeseran yang dihasilkan
oleh mode Full,sehingga mode Half
memiliki kecepatan yang lebih lambat dari
mode Full namun memiliki tor si yang
lebih kuat. Berikut adalah tabel pola dan
cara kerja dari motor stepper :
Gambar 4. Tabel Pola dan
Cara Kerja Motor Stepper
Cara kerja Stepper Motor ini
menggunakan mode Full Step. Berputar
CW (Clock Wise) 90º dan CCW (Counter
Clock Wise) 180º. Sedangkan untuk Half
Step berputar 45º. Berikut gambar stepper
motor bipolar dan unipolar :
Gambar 5. Bipolar Stepper
Gambar 6. Unipolar Stepper
Motor DC
Motor DC merupakan suatu
komponen elektronika yang dapat
mengubah energi listrik menjadi energ i
gerak. Untuk pengaturan arah pregerakan
motor DC dapat dilakukan sebagai berikut
:
Gambar 7. Skematik Motor DC
Sensor
Sensor adalah suatu alat atau
rangkaian alat yang dipakai untuk merubah
suatu besaran tertentu menjadi besaran lai n
dengan cara " merasakan / mendeteksi"
dalam bahasa inggris disebut to sense.
Artinya jika pada suatu ketika ada sesuatu
atau benda yang lewat pada jangkauannya
( terukur ) maka sensor akan mer asakan /
mendeteksi sesuatu tersebut tanpa harus
mengetahui benda apa yang me lewatinya.
LDR (Light Dependent Resistor)
LDR atau Light Dependent
Resistor adalah salah satu jenis resistor
yang nilai hambatannya dipengaruhi oleh
cahaya yang diterimanya. Sama halnya
dengan Photoresistor, LDR ini juga dibuat
dari Cadmium Sulfida yang peka terhadap
cahaya. Seperti yang telah kita ketahui
bahwa cahaya memiliki 2 (dua) sifat yang
berbeda yaitu sebagai gelombang
elektromagnetik dan foton/ partikel energi
(dualisme cahaya). Saat cahaya menerangi
LDR, foton akan menabrak ikatan
Cadmium Sulfida dan melepaskan
elektron. Semakin besar intensitas cahaya
yang datang, semakin banyak elektron
yang terlepas dari ikatan. Sehingga
hambatan LDR akan turun saat cahaya
meneranginya. LDR akan mempunyai
hambatan yang sangat besar saat tidak ada
cahaya yang mengenainya (gelap). Dalam
kondisi ini, hambatan LDR mampu
mencapai 1 M ohm. Akan tetapi, saat
terkena sinar, hambatan LDR akan turun
secara drastis hingga nilai beberapa puluh
ohm saja.
Gambar 8. Simbol LDR
Sensor Jarak
Sensor dalam robotik dari sudut
pandang taksonominya dapat
dikelompokan dalam dua kategori, yaitu :
1. Sensor Internal
Sensor posisi Sensor kecepatan Sensor percepatan
2. Sensor External
Sensor taktil (tactile)
berbasis sentuhan misalnya
limit switch
Sensor force dan sensor
torsi (torque sensor)
sensor proksimiti
Sensor jarak (sonar, PSD,
dan lain-lain)
Sensor vision (kamera)
gyro, kompas digital,
detektor api, dan
sebagainya
Dari pengelompokan sensor ini
kemudian dikenal istilah low-level control
dan high-level control dalam kontrol
robotik. Low-level control didasarkan pada
cara instalasi sensor dan cara membaca
datanya, yakni dengan mengukur langsung
pada bagian tubuh/sendi/sumbu -putar dari
struktur (robot). Sedangkan high -level
control adalah kontrol yang bekerja
berdasarkan data-data sensor yang
merupakan informasi tentang lingkungan
dimana robot itu bekerja. Misalnya kontrol
gerak mobile robot untuk menghindari
halangan. Data-data sensor yang diperoleh
dari sensor jarak (range finder sensor)
seperti ultrasonik, TX-RX Inframerah dan
sebagainya, adalah mengandung informasi
lingkungan (eksternal). Pada sistem mobile
robot high-level control berkaitan dengan
berbagai hal yang berhubungan dengan
pemetaan medan, perencanaan jelajah,
metoda penghindaran halangan, koordinasi
antar robot dan lain sebagainya.
Sensor TX-RX ultrasonik
beroperasi secara biner yang outputnya
dapat menyatakan ada (1) atau tidak ada
(0) pantulan ultrasonik, yang artinya ada
obyek/halangan atau tidak.
Sensor jarak adalah sensor yang
umumnya paling banyak digunakan oleh
para pembuat robot di Indonesia. Terdapat
beberapa jenis sensor jarak yang bereda di
pasaran. Misalnya: Sensor jarak PING dari
Parallax, Devantech SRF04 ranger,sensor
jarak GP2D12 dari Sharp dan sebagainya.
Berikut adalah bentuk fisik dari sensor
ultrasonic PING dan GP2D12 dari SHARP
:
Gambar 9. Sensor Ultrasonik PING
dari Parallax
Gambar 10. Sensor Jarak GP2D12 dari
SHARP
Driver Motor
Driver Motor yang digunakan oleh
para pembuat robot di Indonesia ada
beberapa jenis yaitu driver motor L293D,
SPC Stepper Motor ver2.0 buatan
Innovative dan sebagainya. Biasanya
driver motor L293D sebagai penggerak
motor DC tetapi bisa juga untuk stepper
motor. Sedangkan untuk SPC Stepper
Motor digunakan untuk stepper motor.
Berikut adalah gambar dari driver motor
L293D dan SPC Stepper Motor :
Gambar 11. L293D Tampak Atas
Gambar 12. SPC Stepper Motor ver2.0
Maze Solving Algorithm
Dalam matematika dan komputasi,
algoritma merupakan kumpulan perintah
untuk menyelesaikan suatu masalah.
Perintah-perintah ini dapat diterjemahkan
secara bertahap dari awal hingga akhir.
Masalah tersebut dapat berupa apa saja,
dengan catatan untuk setiap masalah, ada
kriteria kondisi awal yang harus dipenuhi
sebelum menjalankan algoritma.
Algoritma akan dapat selalu berakhir
untuk semua kondisi awal yang memenuhi
kriteria, dalam hal ini berbeda dengan
heuristik. Algoritma sering mempunyai
langkah pengulangan (iterasi) atau
memerlukan keputusan (logika Boolean
dan perbandingan) sampai tugasnya
selesai.
Desain dan analisis algoritma
adalah suatu cabang khusus dalam ilmu
komputer yang mempelajari karakteristik
dan performa dari suatu algoritma dalam
menyelesaikan masalah, terlepas dari
implementasi algoritma tersebut. Dalam
cabang disiplin ini algoritma dipelajari
secara abstrak, terlepas dari sist em
komputer atau bahasa pemrograman yang
digunakan. Algoritma yang berbeda dapat
diterapkan pada suatu masalah dengan
kriteria yang sama.
Kompleksitas dari suatu algoritma
merupakan ukuran seberapa banyak
komputasi yang dibutuhkan algoritma
tersebut untuk menyelesaikan masalah.
Secara informal, algoritma yang dapat
menyelesaikan suatu permasalahan dalam
waktu yang singkat memiliki kompleksitas
yang rendah, sementara algoritma yang
membutuhkan waktu lama untuk
menyelesaikan masalahnya mempunyai
kompleksitas yang tinggi. Ada beberapa
algoritma yang biasa dipakai dalam robot
micromouse yaitu sebagai berikut:
Algoritma Flooding
Algoritma flooding adalah
algoritma untuk mendistribusikan bahan
untuk setiap bagian yang terhubung
jaringan. Nama berasal dari kon sep
genangan banjir.
Algoritma ini dalam robot micromouse
digunakan untuk mendapatkan rute
terpendek (meskipun tidak tercepat).
Algoritma ini didasarkan pada pemikiran
membayangkan sedang berdiri dalam
sebuah labirin ( maze ) yang dindingnya
non-permeable dan rata, berlantai tingkat
juga memiliki sebuah pipa air. Jika pipa air
diputar, air akan mengisi labirin ( maze ).
Rute terpendek ke tujuan target akan
diambil oleh setetes air pertama yang tiba
disana, inilah sebabnya disebut ‘banjir’
algoritma. Berikut adalah contoh dari
algoritma flooding :
Gambar 13. Contoh Cara Kerja
Flooding
Algoritma Pencarian
Metode pencarian dikatakan penting untuk
menyelesaikan permasalahan karena setiap
state (keadaan) menggambarkan langkah -
langkah untuk menyelesa ikan
permasalahan. Metode pencarian dikatakan
penting untuk perencanaan karena dalam
sebuah permainan kan menentukan apa
yang harus dilakukan dimana setiap state
menggambarkan kemungkinan posisi pada
suatu saat.
Jadi, metode pencarian adalah bagian
dari kesimpulan, dimana setiap state
menggambarkan hipotesis dalam sebuah
rangkaian deduktif.
Breadth-First Seacrh (Pencarian
Melebar Pertama)
Pada metode breadth-first secrh,
semua node pada level n akan dikunjungi
terlebih dahulu sebelum mengunjungi
node-node pada level n+1. Pencarian
dimulai dari node akar terus ke level ke -1
dari kiri ke kanan, kemudian berpindah ke
level selanjutnya, demikian pula dari kiri
ke kanan hingga ditemukannya solusi.
Berikut adalah gambar breadth -first search
:
Gambar 14. Bentuk Tree Untuk
Breadth-first Search
Keuntungan dari Breadth-first
Search :
a. Tidak akan menemui jalan
buntu
b. Jika ada satu solusi, maka
breadth-first search akan
menemukannya. Dan, jika
ada lebih dari satu solusi,
maka solusi minimum akan
ditemukan
Kelemahan dari Breadth-first
Search :
a. Membutuhkan memori
yang cukup banyak, karena
menyimpan semua node
dalam satu pohon
b. Membutuhkan waktu yang
cukup lama, karena akan
menguji n level untuk
mendapatkan solusi pada
level yang ke-(n+1)
Depth-first Search (Pencarian ke Dalam
Pertama)
Pada algoritma Depth-First Search
proses pencarian ke node -node yang
selevel. Pencarian dimulai dari node akar
ke level yang lebih tinggi. Proses ini
diulangi terus hingga ditemukannya solusi.
Berikut adalah tree dari depth-first search :
Gambar 15. Bentuk Tree Untuk Depth -
first Search
Algoritma
1. Buat sebuah antrian atau stack,
inisialisasi node pertama
dengan Root dari tree
2. Bila node pertama, jika ≠
GOAL, node dihapus diganti
dengan anak-anaknya dengan
urutan LCHILD
3. Bila node pertama = GOAL ,
selesai
Keuntungan dari algoritma Dept -
First Seacrh :
1. Membutuhkan memori yang
relative kecil, karena hanya
node-node pada lintasan yang
aktif saja
2. Secara kebetulan, metode
depth-first search akan
menemukan solusi tanpap harus
menguji lebih banyak lagi
dalam ruang keadaan
Kelemahan dari algoritma Dept -
First Search :
1. Memungkinkan tidak
ditemukannya tujuan yang
diharapkan
2. Hanya akan menemukan satu
solusi pada setiap pencarian
PERANCANGAN ROBOT
Gambaran Umum
Robot Micromouse pertama kali
dibuat oleh Claude Elwood Shannon
pada tahun 1950 yang diberi nama
Theseus. Theseus, robot tikus yang bisa
bermain maze (lorong simpang siur)
mengambil suatu hal positif yang lebih
mendekati aslinya. Robot dikendalikan
oleh suatu rangkaian relay, tikus magnetis
seukuran aslinya mengembara pada lorong
simpang siur dengan 25 penyiku. Lorong
simpang siurnya bisa diubah sesuka hati
dan tikus kemudian memeriksa secara
menyeluruh jalan yang harus ditempuh
untuk menemukan titik tujuan. Setelah
melalui lorong simpang siur, tikus bisa
ditempatkan di manapun dan akan
bergerak secara langsung sampai ke tujuan
ditempatkan di arena yang tidak biasanya,
tikus itu akan mencari sampai mencapai
suatu posisi yang dikenal dan kemudian
mulai menuju titik yang dikendaki, dan
menambahkan pengetahuan yang baru atas
lintasan yang dilaluinya ke memorinya.
Hal ini nampak sebagai alat yang bisa
belajar untuk pertama kalinya, pad a
tingkatan ini.
Gambar 16. Shannon dan Theseus
Pada kasus Theseus, ‘otak’ dan
‘otot’ adalah dua bagian yang terpisah dari
tikus itu sendiri dan kenyataannya ada di
bawah lorong simpang siur itu. Otak
adalah suatu rangkaian sekitar 100 relay,
dan ototnya berupa sepasang motor yang
dikemudikan secara elektromagnet yaitu
oleh tindakan magnetis menggerakkan
tikus melalui lorong simpang siur itu.
Dengan pengembangan untaian kondisi
padat, dimungkinkan membuat tikus yang
menyatu (otak dan ototnya ada dala m diri
tikus itu sendiri). Sehingga apabila
dibandingkan dengan Theseus, otaknya
lebih kecil tetapi ukuran tikusnya lebih
besar. Pada tahun 1978 sejumlah insinyur
membangun tikus maze-solving untuk
IEEE Spectrum yang menyelenggarakan
acara ‘Amazing Micro Mouse Maze
Contest,’ yang mana Theseus sebagai
penampilan tamu.
Jadi Robot Micromouse adalah
sebuah robot cerdas yang dapat bergerak
dengan bebas di dalam sebuah area labirin
(maze) tanpa menyentuh objek sekitarnya,
yang pada akhirnya robot mengetahui ke
arah mana harus bergerak, berapa derajat
harus berputar jika menemui jalan buntu
pada area labirin (maze) tersebut. Robot
micromouse ini juga bekerja secara
autonomous atau tanpa inte rfensi dari
manusia.
Analisis Perancangan Robot
Analisis Perancangan Robot Secara
Blok Diagram
Analisis perancangan robot terdiri dari
analisis blok diagram. Berikut adalah
penjelasannya :
Gambar 17. Diagram Blok Robot
Micromouse
1. Blok ADC
ADC (Analog to Digital Converter)
adalah rangkaian pengubah
informasi dari tegangan ke digital.
A/D Converter ini dapat dipasang
sebagai pengonversi tegangan
analog dari suatu peralatan sensor
ke konfigurasi digital yang akan
diumpankan ke suatu sistem
minimum. Sensor yang digunakan
termasuk sensor ADC karena
sensor dari SHARP ini yai tu
GP2D12 outputnya berupa
tegangan analog. Pada blok ADC
ini yaitu sensor yang dipasang pada
arah depan, kanan, kiri.
a. Blok Sensor Jarak GP2D12
Sensor yang digunakan untuk
robot ini yaitu sensor jarak
buatan SHARP yaitu GP2D12.
Gambar susunan sensor
digunakan pada robot adalah
sebagai berikut :
Gambar 18. Susunan Sensor Pada
Robot
Gambar 19. Analog Output Voltage
Vs Distance to Reflective Object
GP2D12
Hubungan antara gambar susunan
sensor dengan garfik diatas adalah
menjelaskan alasan susunan sensor
robot tersebut dipasang dengan
jarak 10 cm. Gambar grafik diatas
adalah gambar grafik non linier.
Dapat diketahui bahwa dengan
membaca tegangan pada grafik
dapat mengetahui jarak yang bisa
dibaca oleh sensor. Makin dekat
jarak, maka tegangan semakin
tinggi. Tetapi pada titik tertentu
tegangan turun drastis atau drop.
Kendala atau masalah yang
dihadapi apabila pada saat
tegangan 2 volt terjadi dua
kemungkinan yaitu object berada di
5 cm atau object berada di 12 cm
dan pada tegangan 0.8 volt object
berada di 3 cm ( artinya ada
tembok ) atau object berada di 30
cm (artinya tidak ada tembok).
Hal ini menyebabkan tidak bisa
membedakan ada object atau tidak
adanya object. Untuk menghindari
hal tesebut maka dibuat bendanya
tidak mungkin lebih dekat dari 10
cm yaitu jarak dari base sensor dan
robot diberi jarak 10 cm. Hal ini
dikarenakan tembok tidak mungkin
lebih dekat dengan badan robot. Ini
digunakan untuk menghindari dari
daerah yang mempunyai dua
kemungkinan. Inilah alasan setiap
sensor diberi jarak 10 cm. Te tapi
jarak tiap sensor berbeda karena
tiap sensor berbeda. Bisa saja
sensor kiri jaraknya lebih dari 10
cm atau bisa saja kurang dari 10
cm. Karena semua sensor itu tidak
seperti grafik diatas, picknya selalu
berubah-ubah. Hal ini dapat
diketahui dengan cara uji coba.
2. Blok Modul Mikrokontroler
ATMEGA 128
Mikrokontroler yang digunakan
pada robot ini adalah produk dari
ATMEL. Modul ini dipakai karena
memiliki kapasitas memori yang
besar yaitu 128 Kb, dan memiliki
banyak pin terutama jalur I/O. Pada
saat modul mikrokontroler
mendapatkan tegangan sebesar 11
Volt maka melalui IC regulator
yang terdapat di dalamnya, modul
tersebut akan secara otomatis
mengeluarkan tegangan 5 Volt
yang nantinya akan digunakan
sebagai sumber tegangan untuk
driver motor, sensor dan motor
stepper. Modul mikrokontroler ini
berfungsi sebagai pengontrol yang
akan menerima data dari Sensor
jarak GP2D12 dan melalui
pemrograman yang terdapat di
dalamnya akan memutuskan
tindakan yang akan dilakukan robot
selanjutnya.
Modul mikrokontroler in i
mempunyai 53 pin yang digunakan
sebagai jalur I/O. Adapun I/O yang
terhubung ke modul mikrokontroler
tersebut adalah sensor jarak untuk
arah depan pada pin PF.0, sensor
jarak arah kanan pada pin PF.1 dan
sensor jarak arah kiri pada pin
PF.2. Berikut gambar
mikrokontroler ATMEGA 128 :
Gambar 20. Mikrokontroler
Sebagai Pengendali
Berikut ini port-port yang
digunakan :
Port PF.0 – 2
Digunakan untuk sensor
jarak arah depan, kanan, kiri
Port PD0- 1 / Port I2C (
SCL dan SDA)
Digunakan untuk driver
motor stepper yaitu SPC Stepper
Motor
Dalam blok ini
mikrokontroler akan melakukan
pemrosesan terhadap penerimaan
data yang didapat dari sensor jarak,
kemudian mengolahnya dan
memberikan output untuk masukan
untuk mengaktifkan SPC Motor
Stepper yang akan dilanjutkan
untuk menggerakkan motor
stepper.
3. Blok I2C Bus
IIC (sering ditulis juga I2C)
singkatan dari Inter Integrated
Circuit bus yang dikembangkan
oleh Philips Semiconductor sejak
tahun 1992, dengan konsep dasar
komunikasi 2 arah antar IC
dan/atau antar sistem secara serial
menggunakan 2 kabel. Kedua pin
pada I2C yitu SDA dan SDL. SDA
digunakan untuk data serial dan
SCL untuk clocking. Dibawah ini
contoh sistem dengan I2C :
Gambar 21. Contoh Sistem dengan I2C
Pada blok I2C bus ini terdapat 2
blok yaitu blok SPC Motor Stepper
dan blok motor stepper. Berikut
penjelasannya :
a. Blok SPC Motor Stepper
Smart Peripheral Controller /
SPC STEPPER MOTOR
merupakan pengontrol motor
stepper yang menggunakan
I2C-bus sebagai jalur
pengiriman data sehingga dapat
lebih menghemat dan
mempermudah pengkabelan,
selain itu SPC Stepper Motor
dapat digunakan secara paralel.
Sehingga SPC Motor Stepper 1
dan SPC Motor Stepper 2 dapat
diparalelkan. Contoh aplikasi
dari SPC Stepper Motor adalah
untuk robot dan sumber gerak
lainnya. Jadi SPC Motor
Stepper ini yang memberikan
perintah untuk menggerakkan
motor stepper sesuai dengan
data yang diterima dari
mikrokontroler. SPC Stepper
Motor dapat digunakan secara
paralel dengan cara mengatur
pin – pin S1, S2, S3, S4, RST
yang ada pada board SPC
Stepper Motor. Untuk pin S1
digunakan untuk tipe motor
stepper, diberi logika 1 apabila
motor stepper yang digunakan
adalah motor stepper bipolar
dan logika 0 untuk motor
unipolar. Karena penulis
menggunakan motor stepper
bipolar maka output pada pin
S1 berlogika 1. Pin S2
digunakan untuk arah putaran
motor, diberi logikak 1 apabi la
berputar CW ( Clock Wise) dan
berlogika 0 untuk CCW (
Counter Clock Wise). Pin S3
digunakan untuk mode putaran,
berlogika 1 untuk mode putaran
Full dan berlogika 0 untuk
mode putaran Half. Pin S4
digunakan untuk clock. Clock
ini digunakan untuk
menjalankan motor stepper
sebanyak jumlah clock. Pin
RST digunakan untuk
melepaskan motor stepper dari
keadaan clock.
b. Blok Motor Stepper
Jenis motor stepper yang
digunakan adalah motor stepper
jenis bipolar. Motor akan
bergerak dalam mode full,
berputar ClockWise ( CW) 180º
dan Counter ClockWise 90º
dan seterusnya. Motor stepper
akan bergerak sesuai dari hasil
data pada SPC Motor Stepper.
Analisis Perancangan Robot Secara
Keseluruhan
Gambar 22. Rangkaian Keseluruhan
Rangkaian keseluruhan dari
robot micromouse adalah dalam rangkaian
menggunakan tegangan aktifator sebesar
11 Volt yang berasal dari baterai Li -Po.
Pada saat modul mikrokontroler mendapat
tegangan sebesar 11 Volt maka melalui IC
regulator yang terdapat di dalamnya,
modul tersebut akan secara otomati s
mengeluarkan tegangan 5 Volt dan
tegangan aktifator tersebut diberikan
kepada komponen lainnya yaitu sensor,
driver motor, dan motor stepper.
Sensor jarak SHARP GP2D12
merupakan sensor yang memiliki output
tegangan analog ( ADC ). Sensor GP2D12
mendeteksi terus menerus ketika diberi
daya. Output berupa tegangan analog yang
sesuai dengan jarak yang diukur. Nilai
tersebut diperbaharui setiap 32 ms.
Berdasarkan pengukuran, tegangan yang
dihasilkan pada jarak 10 cm adalah 2.6
Volt dan menurun tidak secara lin ier pada
jarak 80 cm berkisar pada tegangan 0.5
Volt. Setelah sensor sudah memiliki
ukuran jarak yang sesuai maka hasil data
tersebut akan disimpan di dalam
mikrokontroler dengan cara memprogram
mikrokontroler tersebut. Sehingga setelah
sensor membaca pada jarak sekian cm ada
tembok atau tidak ada tembok pada maze
maka mikrokontroler akan mengetahui
tindakan yang dilakukan selanjutnya.
Selanjutnya data akan
dikirimkan ke SPC Motor Stepper. SPC
Motor Stepper ini yang memberikan
perintah untuk menggerakkan motor
stepper sesuai dengan data yang diterima
dari mikrokontroler. SPC Stepper Motor
dapat digunakan secara paralel dengan
cara mengatur pin – pin S1, S2, S3, S4,
RST yang ada pada board SPC S tepper
Motor. Untuk pin S1 digunakan untuk tipe
motor stepper, diberi logika 1 pada motor
stepper karena tipe yang digunakan motor
stepper bipolar. Pin S2 digunakan untuk
arah putaran motor, diberi logika 1 apabila
berputar CW ( Clock Wise) dan berlogika
0 untuk CCW ( Counter Clock Wise). Pin
S3 digunakan untuk mode p utaran,
berlogika 1 untuk mode putaran Full. Pin
S4 digunakan untuk clock. Clock ini
digunakan untuk menjalankan motor
stepper sebanyak jumlah clock. Pin RST
digunakan untuk melepaskan motor
stepper dari keadaan clock.
Setelah data SPC Stepper Motor
diterima maka motor stepper akan
bergerak dari data yang diterima. Mode
putaran untuk motor stepper ini adal ah
mode putaran Full. Jika CW (Clock Wise )
berputar 90º, sedangkan CCW (Counter
Clock Wise) 180º.
Analisis Logika Pemrograman
Robot Micromouse ini me nggunakan
bahasa pemograman yaitu bahasa C pada
mikrokontoler.
Bahasa C
Program yang diolah oleh mikrokontroler
dapat dilihat melalui flowchart yaitu
sebagai berikut :
Gambar 23. Flowchart Untuk Robot
Micromouse
Gambar 24. Flowchart Cek Kotak
Tersambung
Gambar 25. Flowchart Mode Hafalan
Untuk Robot Micromouse
Pada diagram alur yang pertama
dimulai dengan ‘START’, robot dalam
keadaan siap untuk dijalankan. Sebelum
robot berjalan robot melakukan proses
‘Inisialisasi system’. Pada kotak proses
‘pos = 4.1’ maksudnya awal atau start
robot diletakkan pada kotak atau titik
4.1 pada maze. Kotak proses yang
kedua ‘arah= ATAS’ maksudnya robot
diletakkan ke arah atas. Selanjutnya
setelah robot berjalan, masuk ke dalam
kotak proses ketiga ‘stack cek kot ak
tersambung’. Setelah mengecek kotak
yang tersambung dengan robot maka isi
stack akan di pop, sehingga robot akan
mengetahui letak koordinat yang akan
selanjutnya dituju. Itulah proses yang
keempat ‘Gerakan motor menuju kotak
tujuan’. Selanjutnya masuk ke kotak
proses pertama
‘while(kotak!=kotakFinish)’. Proses ini
robot apakah sudah berada pada kotak
yang bukan finish atau belum. Jika ‘F’
berarti robot sudah berada di kotak
finish, robot akan berhenti. Jika ‘T’
maka akan masuk kembali pada kotak
proses ‘stack cek kotak tersambung’.
Setelah pengecekan sudah dilakukan
maka akan masuk ke kotak kondisi lagi
yaitu ‘Jalan buntu’. Apabila robot
menemui jalan buntu jika ‘F’ maka isi
stack kembali di pop, dan robot
bergerak menuju kotak tujuan
selanjutnya setalah itu kembali ke
proses ‘while(kotak!=kotakFinish) dan
seterusnya hingga robot menuju kotak
finish. Jika ‘T’ atau robot menemui
jalan buntu maka akan ke kotak proses
‘Gerakan motor kembali ke cabang
sebelumnya’ setelah itu isi stack
kembali di pop, dan robot akan menuju
tujuan atau pada koordinat berikutnya
dalam maze.
Pada flowchart cek kotak
tersambung, terdapat kotak proses
‘FlagKosong=0’ maksudnya semua
sensor mendeteksi penghalang atau
tembok. Setelah itu ‘BacaSensor’,
sensor mendeteksi depan, kanan, kiri.
Prioritas sensor mendeteksi yaitu
pertama mendeteksi arah depan terlebih
dahulu, kanan, baru kiri. Misalkan arah
robot kondisinya arah‘ATAS’ pada
flowchart cek kotak tersambung ini
maka akan masuk ke dalam kotak
proses ‘Sensor Kiri tidak mendeteksi
tembok’ maka jika ‘F’ maka akan
masuk ke dalam proses selanjutnya
yaitu ‘Sensor kanan tidak mendeteksi
tembok’ jika ‘F’ masuk lagi dalam
kotak proses selanjutnya ‘Sensor atas
tidak mendeteksi tembok’ jika ‘F’ lagi
masuk ke kotak proses lagi
‘flagkosong=0’. Dalam proses ini
semua sensor mendeteksi adanya
tembok jika ‘T’ maka robot menemui
‘Jalan Buntu’ dan robot akan kembali
pada cabang sebelumnya. Jika ‘F’ maka
robot akan menuju kotak selanjutnya
pada maze. Pada proses ‘Sensor kiri
tidak mendeteksi tembok’ jika ‘T’ maka
‘Kotak tersebut tersambung dengan
kotak posisi robot’ dan ‘Flagkosong++’
akan bernilai 1. Selanjutnya masuk ke
dalam proses ‘Sensor kanan tidak
mendeteksi tembok’ jika ‘T’ kotak
tersambung dengan kotak posisi robot
dan ‘FlagKosong++’ akan bernilai 1.
Sehingga nilai untuk Flagkosong saat
ini bernilai 2. Masuk ke dalam proses
‘Sensor atas tidak mendeteksi tembok’
maka ‘Flagkosong++’ bernilai 1. Jadi
Flagkosong bernilai 3. Masuk pada
proses ‘Flagkosong=0’ jika ‘F’ robot
akan berada pada kotak fin ish dan
berhenti.
Kedua flowchart diatas pada saat
robot dalam keadaan mode explorasi
yaitu bergerak untuk menyusuri semua
tempat yang ada dalam maze sehingga
robot akan mengetahui jalan ke tempat
tujuan atau finish dengan menyimpan
data yang dilalui sebelumnnya. Tempat
penyimpanan tersebut dismpan di
dalam memori yang dimiliki oleh
mikrokontroler yang digunakan. Pada
mode hafalan ini robot tetap
menginisialisasi system yanga
kemudian robot diletakkan pada titik
(4,1). Setelah itu robot akan bergerak
menuju titik-titik yang sudah disimpan
pada EEPROM mikrokontroler. Jika
robot sudah pada titik FINISH maka
robot akan berhenti. Pada kondisi
‘while(kotak!=0xFF)’ ini maksudnya
pada program apabila robot telah berada
pada save path terakhir 0xFF jika ‘T’
maka robot akan membaca EEPROM
lagi dan bergerak menuju kotak
selanjutnya apabila ‘F’ maka robot akan
berhenti, hal ini berarti robot sudah
berada di kotak FINISH.
Algoritma Pada Robot Micromouse
Algoritma yang digunakan pada
robot micromouse ini adalah algoritma
DEPT-FIRST SEARCH (algoritma
pencarian kedalam pertama). Algoritma ini
digunakan karena memiliki memori yang
kecil untuk program yang dibuat unutuk
robot ini. Pada algoritma Depth-First
Search proses pencarian ke node -node
yang selevel. Pencarian dimulai dari node
akar ke level yang lebih tinggi. Proses ini
diulangi terus hingga ditemukannya solusi.
Algoritma
4. Buat sebuah antrian atau stack,
inisialisasi node pertama
dengan Root dari tree
5. Bila node pertama, jika ≠
GOAL, node dihapus diganti
dengan anak-anaknya dengan
urutan LCHILD
6. Bila node pertama = GOAL ,
selesai
Keuntungan dari algoritma Dept -
First Search :
3. Membutuhkan memori yang
relative kecil, karena hanya
node-node pada lintasan yang
aktif saja
4. Secara kebetulan, metode
depth-first search akan
menemukan solusi tanpap harus
menguji lebih banyak lagi
dalam ruang keadaan
Kelemahan dari algoritma Dept -
First Search :
3. Memungkinkan tidak
ditemukannya tujuan yang
diharapkan
4. Hanya akan menemukan satu
solusi pada setiap pencarian
Dalam algortima depth-first search
ini pertama-tama penulis memisalkan pada
kotak maze koordinat (y,x) bukan (x,y).
disini penulis menggunakan standarisasi
matematika. Ukuran maze yang digunakan
yaitu 100x100 cm bila dipotong 25x25 cm
akan mendapatkan sebanyak 16 kotak.
Pada setiap ukuran 25x25 cm maka akan
diberi titik koordinat (y,x). Berikut adalah
bentuk mazenya :
Gambar 26. Koordinat Untuk Maze
Pada gambar diatas pada maze
diberi angak untuk (y,x) hal ini untuk
memudahkan arah untuk bergeraknya
robot sehingga diberi titik koordinat.
Setelah maze sudah diketahui angka
koordinatnya maka pada kotak yang
ukurannya 25x25 cm tersebut isikan titik
koordinat (y,x) yang sudah ada. Untuk itu
gambar maze selanjutnya adalah sebagai
berikut :
Gambar 27. Letak Koordinat Pada
Setiap Kotak Maze
Gambar 27 adalah gambar titik
koordinat untuk setiap kotak pada maze.
Untuk mengetahui isi titik koordinat
tersebut dapat dilihat angka yang sudah
pada sumbu y dan sumbu x. Penulis
memisalkan angka-angka pada sumbu y
dan sumbu x dengan cara membag i maze
ke dalam kotak-kotak yang ukurannya
25x25 cm sehingga didapat 4 kotak untuk
sumbu y dan 4 kotak untuk sumbu x.
Selanjutnya dalam kotak tersebut bisa diisi
dengan titik koordinat (y,x).
Setelah mengisikan titik -titik
koordinat tersebut maka akan ter lihat arah
robot akan bergerak. Robot akan
diletakkan pada titik koordinat (4.1), titik
tersebut merupakan awal robot akan
bergerak (START) berikut adalah gambar
dari pergerakan robot keseluruhan :
Gambar 28. Arah Pergerakan Robot
Keseluruhan
Setelah mengetahui arah
pergerakannya maka pada algoritma depth -
first search ini dibuat dalam bentuk tree.
Bentuk tree untuk mode explorasi adalah
sebagai berikut :
Gambar 29. Bentuk Tree Untuk Mode
Explorasi
Untuk gambar tree diatas merupakan
implementasi rute atau jalur yang dilewati
oleh robot. Jalur yang dilewati sama
dengan gambar pergerakan robot pada
gambar diatas. Tree ini memudahkan
untuk mengetahui jalur yang akan dilewati
robot.
Setelah mengetahui arah pergerakan
robot dalam maze dan dalam bentu k tree
maka agar robot bisa bergerak menuju arah
atau titik tersebut yaitu dengan cara titik -
titik tersebut dijadikan stack (antrian) dan
dismpan dalam bentuk array. Stack disini
menggunakan cara LIFO (Last In First
Out). Stack yang disediakan sebanyak 20
stack. Berikut adalah cara kerja LIFO
untuk robot micromouse :
Gambar 30. Cara Kerja LIFO
Pada Robot Micromouse
Cara kerja diatas merupakan untuk
mode explorasi pada robot. Setiap robot
mengexplorasi atau melewati setiap tempat
maka jalan tersebut akan disimpan pada
memori (EEPROM) yang dimiliki oleh
mikrokontroler. Setelah menyimpan jalan
yang dilewati dan disimpan penulis
menamainya robot dalam keadaan mode
hafalan. Mode hapalan ini maksudnya
bahwa robot akan melewati jalan yang
tidak buntu hingga menemukan jalan
keluar atau FINISH. Berikut adalah
pergerakan robot pada keadaan mode
hafalan pada maze :
Gambar 31. Pergerakan Robot
Keseluruhan Untuk Mode Hafalan
Untuk gambar tree mode hafalan
sama seperti pergerakan diatas berikut
adalah gambar tree mode hafalan :
Gambar 32. Bentuk Tree Mode Hafalan
Keseluruhan
PENGUJIAN DAN PENGOPERASIAN
SISTEM
Pengoperasian Robot
Untuk menggunakan alat yang dibuat
ini diperlukan catu daya yang berasal dari
baterai. Baterai yang digunakan adalah
baterai Lithium Polimer sebesar 11,1 Volt.
Berikut cara pengoperasian alat :
1. Menghubungkan kabel power
Gambar 33. Menghubungkan
Kabel Power
2. Setelah dihubungkan, apabila
lampu LED pada mikrokontroler
ATMEGA 128 menyala artinya
robot dalam keadaan siap
digunakan
Gambar 34. Kondisi LED Pada
ATMEGA 128
3. Set robot pada mode explorasi
(mode tersebut diset pada port B)
set pin B menjadi logika 1
Gambar 35. Robot Dalam Mode
Explorasi
4. Setelah itu menekan tombol power
pada mikrokontroler maka robot
siap berjalan / bergerak dalam
maze (mode explorasi)
Gambar 36. Robot Dalam
Keadaan Siap
5. Setelah robot di set ke mode
explorasi, robot dapat di set ke
mode hafalan pada port B dengan
memberikan logika 0
Gambar 37. Robot Dalam Mode
Hafalan
6. Robot akan bergerak sesuai dengan
data yang disimpan pada EEPROM
pada mode explorasi
Hasil Uji Coba Robot
Setelah cara pengoperasian robot maka
hasil uji coba robot adalah sebagai berikut
:
Table 4.1 Performa Robot Mode
Explorasi
Robot bergerak sebanyak 140 step.
Sedangkan derajat pergerakan motor
stepper adalah 1,8° per step. Jadi :
1 step= 1,8°
140 step= 140x1,8°
= 252° untuk pergerakan derajat
motor stepper
Untuk 25 cm yaitu jarak yang ditempuh
dari kotak (titik) ke kotak lainnya dalam
maze. Jaraknya sama dengan untuk setiap
kotak atau titik pada maze.
PENUTUP
Kesimpulan
Kesimpulan yang dapat diambil adalah
bahwa robot micromouse ini terdapat dua
mode yaitu explorasi dan mode hafalan.
Pada mode explorasi robot akan
mengunjungi tempat yang belum pernah
dilewati olehnya. Setelah robot
mengexplorasi semua tempat maka pada
mode hafalan robot akan bergerak menuju
jalan keluar tanpa melewati jalan buntu.
Robot micromouse ini menggunakan
algoritma depth-first search untuk
pencariannya menuju jalan keluar. Car a
kerja algoritma ini menggunakan cara
LIFO (Last In First Out) dimana data titik
koordinat yang sudah ditentukan
dimasukkan kedalam bentuk antrian,
sehingga robot tidak akan melalui jalan
yang buntu dalam mode hafalan.
Pergerakan robot lambat yang disebab kan
oleh tidak digunakannya gear box.
Saran
Berdasarkan kesimpulan yang dijelaskan
pada subbab sebelumnya, maka didapatkan
beberapa saran untuk penyempurnaan
robot ini, yaitu :
1. Penggunaan sensor SHARP
GP2D12 dipengaruhi intensitas
pencahayaan dan warna dinding
sehingga proses kalibrasinya harus
dilakukan dilokasi lomba. Untuk
mampu beradaptasi lebih baik
terhadap pengaruh cahaya dapat
digunakan sensor ultrasonic atau
sonar
2. Untuk mempercepat jalannya
robot, perlu digunakan stepper
motor yang memiliki kecepa tan
putaran tinggi atau yang sudah
dilengkap dengan gear box yang
ratio giginya disesuaikan dengan
kecepatan yang diinginkan sesuai
torsi dan kecepatan rotasi motor.
DAFTAR PUSTAKA
http://diglib.petra.ac.id, accesed by Januari
2010.
Pitowarno, Endra.2005.Mikroprosesor dan
Interfacing.Yogyakarta:ANDI.
www.google.com , accesed by November2009.
www.toko-elektronik.com, accesed byJanuari 2010.
www.alldatasheet.com, accesed by Januari2010.
http://en.wikipedia.org/wiki/electric_motor, accesed by Agustus 2009.
Ilyas,Sistem Pengendali Robot ViaHANDPHONE,2009.
Nur Syafidtri Anita, Tirai OtomatisBerbasiskan MikrokontrolerAT89S51,2008.
Septian Andrevo, ANTI CRASHULTRASONIC (AUTO-BOT)Untuk Aplikasi PemadamKebakaran,2008.
Tubagus Arief Rachman, AnalisaTopologi Jaringan ServerMenggunakan Metode GreedyPewarnaan pada PT.DigitalWireless Indonesia,2009.
www.micromouse.uk, accesed byNovember 2009.