robot micromouse den gan menggunakan algoritma depth-first search

30
ROBOT MICROMOUSE DEN GAN 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 dalam sebuah labirin (maze) tanpa menyentuh objek sekitarnya, robot mengetahui ke arah mana harus bergerak, berapa derajat harus berputar jika menemui jalan buntu pada area labirin. Robot micromouse ini termasuk ke dalam jenis Robot Mobile yaitu Autonomous Mobile Robot . Autonomous Mobile Robot adalah pengendalian gerakan dari robot yang berdasarkan program kemudi yang diberikan sehingga seolah -olah robot tersebut bergerak sendiri. Robot ini dibangun atau dibuat dengan menggunakan mikrokontroler ATMEGA 128 sebagai pengendali, tiga buah sensor inframerah GP2D12 buatan SHARP untuk mendeteksi adanya tembok atau tidak adanya tembok, dua buah driver motor yaitu SPC Stepper Motor dan dua buah stepper motor yang sumber tegangannya berasal dari satu buah baterai Lithium Polymer. Robot micromouse memiliki dua mode yaitu mode explorasi dan mode hafalan. Mode explorasi robot akan melalui semua jalan yang ada pada labirin sedangkan mode hafalan robot akan bergerak sesuai dengan data yang tersimpan pada EEPROM mikrokontroler yang diperoleh dari mode eksplorasi. Robot ini menggunakan algoritma Depth-First Search untuk mencari jalan keluar dalam suatu labirin. Bahasa pemograman yang digunakan adalah bahasa C. Hasil pengujian, menunjukkan bahwa robot dapat menemui jalan keluarnya sendiri dengan beragam konfigurasi labirin, dengan asumsi titik mulai dan titik akhir 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)

Upload: vankhanh

Post on 11-Dec-2016

253 views

Category:

Documents


8 download

TRANSCRIPT

Page 1: robot micromouse den gan menggunakan algoritma depth-first search

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)

Page 2: robot micromouse den gan menggunakan algoritma depth-first search

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

Page 3: robot micromouse den gan menggunakan algoritma depth-first search

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

Page 4: robot micromouse den gan menggunakan algoritma depth-first search

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

Page 5: robot micromouse den gan menggunakan algoritma depth-first search

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

Page 6: robot micromouse den gan menggunakan algoritma depth-first search

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

Page 7: robot micromouse den gan menggunakan algoritma depth-first search

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

Page 8: robot micromouse den gan menggunakan algoritma depth-first search

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

Page 9: robot micromouse den gan menggunakan algoritma depth-first search

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

Page 10: robot micromouse den gan menggunakan algoritma depth-first search

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

Page 11: robot micromouse den gan menggunakan algoritma depth-first search

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

Page 12: robot micromouse den gan menggunakan algoritma depth-first search

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.

Page 13: robot micromouse den gan menggunakan algoritma depth-first search

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

Page 14: robot micromouse den gan menggunakan algoritma depth-first search

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.

Page 15: robot micromouse den gan menggunakan algoritma depth-first search

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 :

Page 16: robot micromouse den gan menggunakan algoritma depth-first search

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

Page 17: robot micromouse den gan menggunakan algoritma depth-first search

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 :

Page 18: robot micromouse den gan menggunakan algoritma depth-first search

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

Page 19: robot micromouse den gan menggunakan algoritma depth-first search

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

Page 20: robot micromouse den gan menggunakan algoritma depth-first search

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,

Page 21: robot micromouse den gan menggunakan algoritma depth-first search

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

Page 22: robot micromouse den gan menggunakan algoritma depth-first search

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

Page 23: robot micromouse den gan menggunakan algoritma depth-first search

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

Page 24: robot micromouse den gan menggunakan algoritma depth-first search

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

Page 25: robot micromouse den gan menggunakan algoritma depth-first search

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 -

Page 26: robot micromouse den gan menggunakan algoritma depth-first search

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

Page 27: robot micromouse den gan menggunakan algoritma depth-first search

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

Page 28: robot micromouse den gan menggunakan algoritma depth-first search

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

Page 29: robot micromouse den gan menggunakan algoritma depth-first search

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

Page 30: robot micromouse den gan menggunakan algoritma depth-first search

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.