17
BAB III
PERANCANGAN SISTEM
Pada bab ini akan dijelaskan mengenai perancangan alat yang telah dibuat
yang meliputi perancangan peta labirin, perancangan mekanik robot, perancangan
perangkat keras robot, dan perancangan perangkat lunak dari kedua algoritma pada
robot.
3.1. Gambaran Sistem
Sistem yang direalisasikan pada skripsi ini adalah sebuah sistem yang
berfungsi untuk mengendalikan sebuah robot micromouse. Sistem ini dirancang
dan dibuat dengan tujuan agar suatu algoritma pencarian jalur terpendek dapat
diimplementasikan ke dalamnya. Sistem ini memerlukan bantuan dari beberapa
sensor untuk dapat bekerja dalam merespon segala hal yang diperlukan oleh
algoritma pencarian jalur terpendek tersebut. Dengan demikian, sistem ini mampu
mengendalikan robot micromouse untuk dapat menyelesaikan suatu permasalahan
yang ada di dalam sebuah peta labirin. Blok diagram sistem dapat dilihat pada
Gambar 3.1.
Gambar 3.1. Blok Diagram Sistem
18
Secara umum, sistem yang dirancang terdiri dari kontrol utama, kontrol
aktuator, elektronik, aktuator, memori, dan sumber daya listrik.
1. Kontrol Utama
Kontrol utama dalam blok diagram sistem di atas adalah sebuah
mikrokontroler ATMega 328.
2. Kontrol Aktuator
Kontrol aktuator dalam blok diagram sistem di atas adalah driver
motor TB6612FNG.
3. Elektronik
Pada bagian ini terdapat beberapa macam perangkat keras
elektronik beserta sensor – sensor yang digunakan, diantaranya :
a. Sensor Dinding – LED & Photodiode (4 buah)
b. Kompas Digital HMC5983L
c. Rotary Encoder
d. MUX 8 to 1 74HC4051
e. Switch - ON/OFF
f. Switch - User Interface (3 buah)
4. Aktuator
Aktuator merupakan suatu penggerak pada robot. Dalam blok
diagram sistem di atas, terdapat 2 motor DC Pololu Micro Metal
Gearmotors yang digunakan sebagai alat penggerak robot.
5. Memori
Memori sangat diperlukan untuk dapat menyimpan segala
informasi penting yang dibutuhkan oleh algoritma pencarian jalur
terpendek. Memori yang digunakan adalah EEPROM AT24C512.
6. Sumber Daya Listrik
Sumber daya listrik pada robot dibagi menjadi dua bagian dimana
masing – masing menggunakan baterai lithium polymer 7, 4 V. Baterai
pertama digunakan sebagai sumber daya listrik pada mikrokontroler,
sensor dinding, kompas digital, rotary encoder, MUX 8 to 1, dan
EEPROM. Sedangkan baterai kedua digunakan sebagai sumber daya
listrik pada driver motor dan 2 motor DC.
19
3.2. Perancangan Peta Labirin
Peta labirin yang dibuat pada skripsi ini didasarkan pada perancangan serta
peraturan yang ditetapkan di dalam kompetisi micromouse yang telah ada sejak
dahulu [7]. Perancangan peta labirin dapat dilihat pada Gambar 3.2.
Gambar 3.2. Rancangan Peta Labirin 10 x 10
Peta labirin memiliki bentuk persegi yang disusun oleh banyak sel dengan
susunan a x a dimana a adalah jumlah sel untuk setiap sisi pada peta labirin.
Ukuran sel, ketebalan serta tinggi dinding labirin akan disesuaikan dengan ukuran
pada peraturan yang telah ada. Masing – masing sel peta labirin memiliki ukuran
20
18 cm (p) x 18 cm (l), namun sedikit terpotong ukurannya oleh dinding labirin
sehingga ruang terbuka pada tiap sel memiliki ukuran 16,8 cm (p) x 16,8 cm (l).
Dinding labirin memiliki ketinggian 5 cm dan ketebalan 1,2 cm. Lantai labirin
juga memiliki ketebalan yang sama dengan dinding labirin yaitu 1,2 cm.
Penghubung antara dinding labirin berupa tiang dengan ukuran 1,2 cm (p) x 1,2
cm (l) x 5 cm (t) yang dinamakan sebagai pos. Berdasarkan peraturan yang ada,
peta labirin seharusnya disusun dengan susunan sel 16 x 16 dengan total 256 sel.
Namun pada skripsi ini, peta labirin yang diterapkan memiliki susunan sel 10 x
10 dengan total 100 sel sehingga secara keseluruhan memiliki ukuran dimensi
181,2 cm (p) x 181,2 cm (l) x 6,2 cm (t).
Gambar 3.3. Dinding Adjustable
Peta labirin membutuhkan tiang – tiang pos sebagai penghubung antar
dinding labirin sehingga peletakan dinding labirin dapat diatur sesuai dengan
21
kehendak atau bisa dikatakan sebagai dinding adjustable. Bentuk rancangan
dinding labirin dan pos dapat dilihat pada Gambar 3.3. Dengan demikian, peta
labirin dapat disusun ulang menjadi perfect maze ataupun imperfect maze.
Gambar 3.4. Posisi Start dan Finish
Untuk posisi start ditempatkan pada salah satu sudut pada peta labirin.
Masing – masing posisi start tersusun dengan 3 dinding penghalang mengitari sel
sehingga hanya ada 1 jalur awal. Kemudian untuk posisi finish ditempatkan pada
sebuah ruangan yang terdiri dari 2 x 2 sel tepat pada tengah – tengah peta labirin
dengan 1 jalur masuk / keluar. Gambaran mengenai posisi start dan finish pada
peta labirin dapat dilihat pada Gambar 3.4.
Ada 3 macam variasi bentuk peta labirin yang dapat digunakan sebagai
tempat uji coba robot micromouse pada skripsi ini. Variasi bentuk peta labirin
tersebut dirancang melalui program simulator yang dinamakan “Micro Mouse
Maze Editor and Simulator”. Bentuk – bentuk variasi peta labirin tersebut dapat
dilihat pada Gambar 3.5.
Gambar 3.5. Bentuk Variasi Peta Labirin
22
Berikut adalah pembagian tingkat kesulitan pada peta labirin berdasarkan
dari ketiga bentuk variasi peta labirin yang telah dirancang, yaitu :
Variasi 1 tingkat kesulitan rendah
Variasi 2 tingkat kesulitan sedang
Variasi 3 tingkat kesulitan tinggi
Variasi pertama memiliki tingkat kesulitan rendah karena tidak memiliki
jalur sirkuler dan hanya memiliki sedikit percabangan. Variasi kedua memiliki
tingkat kesulitan sedang karena ada jalur sirkuler dan memiliki percabangan yang
cukup banyak. Variasi ketiga memiliki tingkat kesulitan tinggi karena ada jalur
sirkuler dan memiliki percabangan yang sangat banyak.
Pada skripsi ini, papan kayu yang digunakan untuk membuat lantai dasar
pada peta labirin adalah papan kayu Medium Density Fibreboard (MDF) karena
memiliki permukaan yang sangat halus dan rata, serta sangat kuat dan kokoh
untuk digunakan sebagai tempat uji coba robot. Dengan demikian robot dapat
berjalan dengan lancar tanpa adanya hambatan gerak pada kedua roda robot.
Sedangkan dinding labirin dan pos dibuat menggunakan bahan kayu plywood
dimana cukup ringan dan kuat. Untuk pewarnaan cat pada peta labirin, lantai sel
diberi warna hitam agar menyerap cahaya dan dinding labirin diberi warna putih
agar memantulkan cahaya. Dengan demikian cahaya hanya dapat dipantulkan
melalui dinding labirin dan tidak terpengaruh olah pantulan – pantulan sinar
cahaya lain melalui lantai sel. Untuk bagian atap dinding sel dan pos diberi warna
merah. Bentuk realisasi peta labirin dapat dilihat pada Gambar 3.6.
Gambar 3.6. Bentuk Realisasi Peta Labirin 10 x 10
23
3.3. Perancangan Mekanik Robot
Pada skripsi ini, mekanik pada robot dirancang sekecil mungkin namun kuat
dan kokoh. Dimensi robot disesuaikan terhadap kapasitas ruang gerak yang ada di
dalam setiap sel pada peta labirin. Seperti yang diketahui bahwa ukuran tiap sel
adalah 16,8 cm (p) x 16,8 cm (l) sehingga ukuran dimensi robot harus lebih kecil
daripada ukuran tersebut. Ukuran dimensi yang semakin kecil dapat mengurangi
resiko bertabrakan dengan dinding – dinding sel. Maka dari itu, pada skripsi ini
robot memiliki dimensi sebesar 12 cm (p) x 12 cm (l).
Gambar 3.7. Kerangka Robot
24
Body robot dibentuk menggunakan kerangka yang terbuat dari bahan plastik
acrylic dengan ketebalan 3 mm dimana cukup kuat dan cukup ringan. Kerangka
tersebut berbentuk lingkaran dengan diameter 12 cm. Ada 2 lapis kerangka yang
disusun untuk membentuk body robot, yaitu kerangka bawah dan kerangka atas
dimana tampak pada Gambar 3.7.
Gambar 3.8. Bentuk Realisasi Robot Micromouse
Gambar 3.8 menampilkan robot yang telah direalisasikan pada skripsi ini.
Robot dilengkapi 4 buah roda (aktif dan pasif) dan 2 buah motor DC dimana
masing – masing terpasang pada bagian tepi kerangka tepat pada garis
perpotongan kerangka. Dengan demikian robot akan memiliki pergerakan rotasi
yang menetap pada tempatnya tanpa mengubah posisi. Motor DC yang dipakai
adalah Pololu Micro Metal Gearmotors dimana sudah memiliki gearbox yang
terbuat dari metal sehingga kuat untuk digunakan pada torsi yang tinggi. Tabel 3.1
menunjukkan spesifikasi dari mekanik robot yang telah dibuat, sedangkan Tabel
3.2 menunjukkan spesifikasi motor DC yang digunakan pada robot.
25
Tabel 3.1. Tabel Keterangan Mekanik Robot
Dimensi 12 cm (p ) x 12 cm (l ) x 13 cm (t )
Berat ± 1 kg
Roda 4 roda (2 aktif, 2 pasif)
HARDWARE
Tabel 3.2. Tabel Spesifikasi Pololu Micro Metal Gearmotors
Rasio Gear 30 : 1
Kecepatan Free-run @ 6V 1000 rpm
Arus Free-run @ 6V 120 mA
Arus Beban Maksimal @ 6V 1600 mA
Torsi Beban Maksimal @ 6V 0,25 kg
3.4. Perancangan Perangkat Keras
Pada bagian ini akan dijelaskan mengenai perancangan perangkat keras
pada robot. Perancangan perangkat keras tersebut meliputi sistem kontrol dan
perangkat keras elektronik.
3.4.1. Sistem Kontrol
Sistem kontrol pada robot hanya terdiri dari satu bagian utama, yaitu
kontrol utama. Di sini kontrol utama memiliki peran penting dalam melakukan
pengontrolan terhadap keseluruhan sistem pada robot, seperti sistem navigasi
dan sistem gerak.
Dalam sistem navigasi robot, kontrol utama menerima segala data
keluaran dari sensor dinding, kompas digital dan rotary encoder. Data yang
diterima oleh kontrol utama berupa data mentah baik analog maupun digital.
Data – data mentah tersebut diolah sedemikian rupa menjadi suatu data penting
yang dapat digunakan oleh robot sebagai penunjuk jalan.
Dalam sistem gerak robot, kontrol utama mengirimkan perintah – perintah
khusus terhadap kontrol aktuator sehingga dapat mengontrol segala pergerakan
motor DC. Kecepatan motor dan arah perputaran motor diatur berdasarkan
sistem navigasi robot.
26
3.4.2. Perangkat Keras Elektronik
Perangkat keras elektronik yang digunakan oleh robot beserta
penjelasannya adalah sebagai berikut :
1. Arduino UNO (Mikrokontroler Tipe ATMega328)
Gambar 3.9. Kontroler Arduino UNO
Gambar 3.9 menunjukkan kontroler yang digunakan oleh robot,
yaitu Arduino UNO dimana merupakan sebuah mikrokontroler dengan
tipe chip ATMega328 [8]. Kontroler ini sudah memiliki regulator
tegangan yang menghasilkan tegangan sebesar 3,3 dan 5 VDC dimana
disuplai dengan tegangan masukan sekitar 7 – 12 VDC. Kontroler
memiliki 14 pin I/O digital dimana terdapat 6 pin analog dan 6 pin PWM.
Kontroler memliki 2 buah pin interrupt external yang berfungsi untuk
melakukan proses interupsi program apabila ada perintah interupsi dari
perangkat luar. Kontroler mampu berkomunikasi dengan perangkat lain
menggunakan jalur komunikasi yang bermacam – macam, yaitu jalur
komunikasi serial (TX dan RX), jalur komunikasi I2C (SDA dan SCL)
dan jalur komunikasi SPI. Kontroler juga memiliki flash memory sebesar
32 KB, SRAM sebesar 2 KB, EEPROM sebesar 1KB, dan kecepatan clock
sebesar 16 MHz.
27
Gambar 3.10. Konfigurasi Pin Arduino UNO
Kontroler dapat diprogram dengan menggunakan bahasa C dan
mudah untuk dipahami. Kontroler sudah dilengkapi dengan bootloader
yang memperbolehkan pengguna untuk meng-upload kode program tanpa
menggunakan perangkat pemrograman dari luar. Protokol yang digunakan
untuk berkomunikasi sama dengan protokol yang digunakan pada
STK500. Gambar 3.10 menunjukkan konfigurasi pin pada Arduino UNO,
sedangkan Tabel 3.3 menunjukkan kegunaan pin pada Arduino UNO.
Tabel 3.3. Kegunaan Pin Arduino UNO
PIN MODE KEGUNAAN
A0 OUTPUT Selektor MUX Bit 0
A1 OUTPUT Selektor MUX Bit 1
A2 OUTPUT Selektor MUX Bit 2
A3 INPUT Ouput MUX
A4 SDA Kompas Digital (Data)
A5 SCL Kompas Digital (Clock)
0 - -
1 OUTPUT LED RGB Hijau
(bersambung)
28
Tabel 3.3. Kegunaan Pin Arduino UNO (lanjutan)
PIN MODE KEGUNAAN
2 OUTPUT LED RGB Biru
3 INPUT Output Rotary Encoder
4 OUTPUT LED RGB Merah
5 INPUT Switch 1
6 INPUT Switch 2
7 INPUT Switch 3
8 OUTPUT Driver Motor Input 1 A
9 OUTPUT Driver Motor Input 2 A
10 OUTPUT Driver Motor PWM A
11 OUTPUT Driver Motor PWM B
12 OUTPUT Driver Motor Input 1 B
13 OUTPUT Driver Motor Input 2 B
2. Sensor Dinding
Sensor dinding yang digunakan oleh robot adalah sensor cahaya
yang terdiri dari photodioda (receiver) dan lampu LED (transmitter).
Photodioda akan mengalami perubahan resistansi pada saat menerima
intensitas cahaya tertentu dan akan mengalirkan arus listrik scara forward
sebagaimana dioda pada umumnya. Sensor cahaya ini disuplai dengan
tegangan 5 VDC dan bagian keluaran pada sensor dihubungkan dengan
masukan pada analog multiplexer (MUX 8 to 1). Hasil keluaran yang
dihasilkan oleh sensor cahaya berupa tegangan analog yang berkisar antara
0 – 5 VDC. Gambar 3.11 menunjukkan rangkaian dari sensor cahaya.
Gambar 3.11. Rangkaian Sensor Cahaya
29
3. MUX 8 to 1
MUX 8 to 1 merupakan sebuah multiplekser yang mampu
menggabungkan 8 jalur data menjadi 1 jalur data dengan memanfaatkan
3-bit selektor sebagai penyeleksi jalur data yang akan digunakan. Di sini
multiplekser yang digunakan adalah analog multiplexer 74HC4051
dimana data yang akan digabungkan berupa data analog [9]. Data analog
yang akan digabungkan menjadi 1 adalah data analog dari keluaran sensor
cahaya. Gambar 3.12 menunjukkan konfigurasi pin pada 74HC4051.
Gambar 3.12. Konfigurasi Pin 74HC4051
Hasil keluaran dari 74HC4051 sama dengan hasil keluaran dari
sensor cahaya dimana berupa tegangan analog yang berkisar dari 0 – 5
VDC. Tegangan analog tersebut akan dikonversi menjadi nilai digital
melalui ADC pada kontroler dengan resolusi 10-bit. Dengan demikian,
nilai digital keluaran sensor akan berkisar antara 0 sampai 1024.
4. Kompas Digital
Kompas digital yang digunakan oleh adalah sensor magnet
HMC5983L yang ditunjukkan pada Gambar 3.13. Sensor ini bekerja
dengan cara memanfaatkan gaya magnet pada bumi untuk menentukan
suatu arah tertentu sehingga dapat digunakan sebagai navigasi robot. Pada
umumnya sensor ini memilik 4 pin utama, yaitu SDA, SCL, VCC, GND.
Sensor ini bekerja pada tegangan 3,3 atau 5 VDC sesuai dengan kebutuhan
[10]. Pin SDA dan SCL pada sensor akan dihubungkan pada jalur I2C
kontroler.
30
Gambar 3.13. Sensor Magnet HMC5983L
Data yang dihasilkan oleh sensor ini berupa data digital dari 3 buah
sumbu (X, Y, Z). Masing – masing sumbu membutuhkan 2 buah register
sebagai penyimpanan data MSB dan LSB dimana masing – masing
register berukuran 1 byte. Data pada MSB dan LSB yang dihasilkan pada
masing – masing sumbu kemudian digabungkan menjadi satu register
berukuran 1 byte saja. Data digital tersebut akan dikirim melalui jalur data
(SDA) pada I2C.
Untuk sistem navigasi robot, data yang diperlukan hanyalah data dari
sumbu X dan Y saja. Data pada sumbu Z tidak diperlukan karena robot
hanya akan berjalan datar tanpa adanya kemiringan tertentu yang membuat
data pada sumbu Z berubah. Data pada sumbu X dan Y akan dikonversi
menjadi nilai sudut dalam satuan derajat dengan memanfaatkan presamaan
berikut.
𝑠𝑢𝑑𝑢𝑡 = 𝑡𝑎𝑛−1𝑌
𝑋×
180°
𝜋
5. Rotary Encoder
Rotary encoder yang digunakan oleh robot memiliki sensor optik
yang terdiri dari phototransistor sebagai pengirim sinyal (receiver) dan
Infrared LED sebagai penerima sinyal (transmitter). Roda piringan yang
digunakan adalah sebuah scroll wheel pada mouse komputer dengan
diameter roda sebesar 2,5 cm dan memiliki jumlah lubang sebanyak 48
31
lubang. Gambar 3.14 menunjukkan roda piringan yang digunakan pada
rotary encoder.
Gambar 3.14. Roda Piringan Rotary Encoder
Agar hasil keluaran dari rotary encoder berbentuk deretan pulsa
kotak, dibutuhkan suatu rangkaian khusus yang terdiri dari beberapa
transistor. Di sini transistor hanya bertindak sebagai saklar On / Off
sehingga hanya terdapat 2 kondisi yaitu Low (0 V) atau High (5 V). Hasil
keluaran pada rangkaian rotary encoder akan dihubungkan dengan pin
interrupt external (INT1) pada kontroler.
Gambar 3.15. Rangkaian Rotary Encoder
Gambar 3.15 menunjukkan rangkaian yang digunakan pada rotary
encoder. Dengan memanfaatkan fungsi interrupt external, maka deretan
pulsa hasil keluaran dari rangkaian rotary encoder dapat dibaca. Ada 2
cara yang dapat dilakukan untuk menghitung deretan pulsa tersebut, yaitu
32
dengan membaca perubahan sinyal low-to-high atau dengan membaca
sinyal high-to-low.
Untuk memaksimalkan resolusi penghitungan, maka diperlukan
penggabungan antara kedua cara penghitungan tersebut. Apabila roda
piringan memiliki jumlah lubang sebanyak 48 lubang, maka dalam satu
putaran roda akan dihasilkan 96 hitungan. Di sini roda piringan memiliki
keliling sebesar 7,85 cm. Dengan demikian, 1 hitungan yang dihasilkan
oleh putaran roda akan memiliki nilai jarak tempuh sebesar 0,082 cm.
6. Driver Motor
Driver motor yang digunakan untuk mengontrol motor DC adalah
dual TB6612FNG [11]. Driver motor ini mampu mengontrol 2 buah motor
DC sekaligus secara bersamaan. Driver motor ini mampu menyediakan
kebutuhan arus pada masing – masing motor DC sebesar 1,2 A (atau
sampai 3,2 A untuk waktu singkat). Kecepatan masing – masing motor DC
dikontrol melalui sinyal masukan Pulse Width Module (PWM) dari
kontroler. Suplai logika (VCC) dapat dikisarkan pada tegangan sebesar 2,7
– 5,5 VDC, sedangkan suplai motor dibatasi hingga mencapai tegangan
maksimal sebesar 15 VDC. Sistem kontrol yang diterapkan pada driver
motor adalah sistem H-Bridge.
Gambar 3.16. Driver Motor TB6612FNG
Gambar 3.16 menunjukkan driver motor TB6612FNG yang
digunakan dimana memiliki suatu fungsi kontrol khusus pada sistem H-
Bridge sehingga dapat bekerja untuk mengontrol segala macam
33
pergerakan motor. Fungsi kontrol tersebut menyediakan beberapa jenis
mode yang dapat digunakan dalam mengontrol pergerakan motor. Mode –
mode tersebut dapat diaktifkan dengan memberikan konfigurasi logika
input High dan Low pada driver motor. Tabel 3.4 menunjukkan fungsi
kontrol H-Bridge pada TB6612FNG.
Tabel 3.4. Fungsi Kontrol H-Bridge pada TB6612FNG
Mode CW digunakan untuk mengontrol otor agar berputar searah
jarum jam. Sedangkan mode CCW digunakan untuk mengontrol motor
agar berputar berlawanan arah jarum jam. Mode Short Brake digunakan
untuk mengontrol motor agar melakukan rem dengan kondisi motor masih
menyala. Mode Stop digunakan untuk mengontrol motor agar berhenti
dengan kondisi motor mati. Mode Standby digunakan untuk mengontrol
motor agar berada dalam kondisi siaga dan siap untuk dijalankan
kapanpun. Dengan memanfaatkan beberapa mode di atas, motor dapat
dikontrol secara dinamis sehingga mampu menggiring robot menelusuri
peta labirin yang berliku – liku.
7. EEPROM
EEPROM (Electrically Erasable Programmable Read-Only
Memory) merupakan sebuah chip memori yang digunakan untuk
menyimpan sejumlah konfigurasi data dimana data yang disimpan tidak
akan hilang meskipun sumber daya terputus. Data pada EEPROM dapat
34
dihapus dan ditulis kembali per blok data tergantung alamat yang
diinginkan sesuai dengan kebutuhan. Pada EEPROM, proses erase-
rewrite sangat terbatas sehingga perlu berhati – hati dalam
menggunakannya.
Gambar 3.17. Konfigurasi Pin EEPROM AT24C512
Pada skripsi ini, robot menggunakan EEPROM tipe AT24C512
dimana memiliki kapasitas penyimpanan sebesar 524,288 bit data atau
65,536 byte data. AT24C512 bekerja pada tegangan sebesar 1,8 – 3,6 VDC
dan memiliki batas erase-rewrite sebesar 100.000 siklus [12]. Data yang
tersimpan pada AT24C512 dapat diakses melalui jalur komunikasi data
pada I2C (SDA). Gambar 3.17 menujukkan konfigurasi pin EEPROM
AT24C512.
3.5. Perancangan Perangkat Lunak
Pada bagian ini akan dijelaskan mengenai perancangan perangkat lunak
pada robot. Di sini ada 3 buah flowchart yang akan disajikan dimana
menggambarkan alur jalannya program yang diterapkan pada robot. Flowchart
pertama menggambarkan alur program yang paling utama. Flowchart kedua
menggambarkan alur program dari algoritma flood-fill dalam pencarian jalur
terpendek. Sedangkan Flowchart ketiga menggambarkan alur program dari
algoritma backtracking dalam pencarian jalur terpendek.
3.5.1. Flowchart Program Utama
Program utama merupakan bagian paling utama dari keseluruhan program
yang digunakan untuk mengaktifkan fungsi kalibrasi sensor, fungsi seleksi
35
algoritma dan fungsi standby-for-start untuk mulai bersiap – siap menjalankan
proses pencarian jalur terpendek. Flowchart dari alur program utama dapat
dilihat pada Gambar 3.18.
START
Apakah ada penekanan dari
Switch 1?
Apakah ada penekanan dari
Switch 3?
Apakah ada penekanan dari
Switch 2?
Jalankan fungsi dari aksi
penekanan Switch 1
Tidak
Tidak
Tidak
Jalankan fungsi dari aksi
penekanan Switch 2
Jalankan fungsi dari aksi penekanan
Switch 3
Ya
Ya
Ya
Apakah penekanan lebih dari 2 detik?
Apakah penekanan lebih dari 2 detik?
Jalankan fungsi kalibrasi error Kompas Digital
Jalankan fungsi kalibrasi lokasi
untuk menentukan posisi Utara,
Selatan, Timur dan Barat
Jalankan fungsi kalibrasi batas
nilai Sensor Dinding
Ya
Tidak
Ya
Ubah Algoritma
Tidak
Standby-for-Start
Ada halangan pada Sensor Dinding bagian
depan?
TidakJalankan fungsi algoritma yang dipilih hingga
selesai
Ya
Gambar 3.18. Flowchart Program Utama
3.5.2. Flowchart Algoritma Flood-Fill
Algoritma flood-fill merupakan algoritma pertama yang diterapkan pada
robot micromouse dalam pencarian jalur terpendek. Flowchart dari alur program
algoritma flood-fill dapat dilihat pada Gambar 3.19.
36
START
Bangkitkan nilai tiap sel
Cek dinding sekitar (bagian depan,
samping kiri dan samping kanan )
Cek kondisi apabila nilai sel tetangga
tidak ada yang 1 lebih kecil dari nilai sel
robot berada atau ditemukan jalan
buntu
Apakah kondisi terpenuhi?
Bangkitkan nilai tiap sel
Tentukan sel tujuan selanjutnya yang
memiliki nilai lebih kecil dari sel robot
berada
Berjalan 1 sel menuju sel yang
dituju
Apakah sudah mencapai finish?
Simpan semua informasi tentang dinding labirin di
dalam eeprom
Simpan informasi dinding dalam suatu
array
Atur mode perjalanan berangkat
(start to finish)
Atur mode perjalanan kembali
(finish to start)
Bangkitkan nilai tiap sel
Cek dinding sekitar (bagian depan,
samping kiri dan samping kanan )
Simpan informasi dinding dalam suatu
array
Cek kondisi apabila nilai sel tetangga
tidak ada yang 1 lebih kecil dari nilai sel
robot berada atau ditemukan jalan
buntu
Apakah kondisi terpenuhi?
Bangkitkan nilai tiap sel
Tentukan sel tujuan selanjutnya yang
memiliki nilai lebih kecil dari sel robot
berada
Berjalan 1 sel menuju sel yang
dituju
Apakah sudah mencapai start?
Simpan semua informasi tentang dinding labirin di
dalam eeprom
END
Ya Ya
Tidak Tidak
Tidak Tidak
Ya Ya
Baca semua informasi tentang dinding labirin dari
eeprom
Gambar 3.19. Flowchart Algoritma Flood-Fill
37
Berikut adalah pseudo-code yang merupakan alur program dari algoritma
flood-fill, yaitu :
START
Baca semua informasi tentang dinding labirin dari eeprom
Atur mode perjalanan berangkat
Bangkitkan nilai tiap sel
WHILE belum mencapai finish DO
Cek dinding sekitar (depan, samping kiri, dan samping kanan)
Simpan informasi dinding ke dalam suatu array
IF sel tujuan terhalang olah dinding dan nilai sel tetangga tidak ada yang
bernilai 1 lebih kecil dari sel robot berada THEN
Bangkitkan nilai sel
ENDIF
Tentukan sel tujuan selanjutnya
Berjalan 1 sel menuju sel yang dituju
ENDWHILE
Simpan semua informasi tentang dinding labirin ke dalam eeprom
Atur mode perjalanan kembali
Bangkitkan nilai tiap sel
WHILE belum mencapai start DO
Cek dinding sekitar (depan, samping kiri, dan samping kanan)
Simpan informasi dinding ke dalam suatu array
IF sel tujuan terhalang olah dinding dan nilai sel tetangga tidak ada yang
bernilai 1 lebih kecil dari sel robot berada THEN
Bangkitkan nilai sel
ENDIF
Tentukan sel tujuan selanjutnya
Berjalan 1 sel menuju sel yang dituju
ENDWHILE
Simpan semua informasi tentang dinding labirin ke dalam eeprom
END
38
3.5.3. Flowchart Algoritma Backtracking
Algoritma backtracking merupakan algoritma kedua yang diterapkan pada
robot micromouse dalam pencarian jalur terpendek. Flowchart dari alur program
algoritma bcaktracking dapat dilihat pada Gambar 3.20.
START
Apakah sudah pernah mencapai
finish?
Jelajahi Peta Labirin(Explore)
Atur mode perjalanan berangkat
(start to finish)
Cek dinding sekitar dan nilai sel sekitar
Berjalan 1 sel menuju sel yang
telah ditandai dengan nilai 1 dan
tidak terhalang oleh dinding
Apakah sudah mencapai finish?
Berikan nilai 1 pada sel robot berada
sebagai tanda bahwa sel tersebut
sudah pernah dilewati
Cek dinding sekitar (bagian depan,
samping kiri dan samping kanan )
Apakah sudah mencapai finish?
Tidak
Ya
Tidak
Ya
Ya
Tidak
Apakah sudah mencapai start?
Cek dinding sekitar dan nilai sel sekitar
Berjalan 1 sel menuju sel yang
telah ditandai dengan nilai 1 dan
tidak terhalang oleh dinding
Atur mode perjalanan kembali
(finish to start)
Simpan semua informasi tentang
nilai – nilai sel pada peta labirin di dalam eeprom
END
Tidak
Ya
Berjalan 1 sel menuju salah satu
sel yang belum pernah dilewati
Apakah ditemukan jalan buntu?
Ya
Tidak
Jalankan proses runut-balik
(backtrack) menuju sel yang merupakan
percabangan sebelumnya yang
masih memungkinkan ada
jalur yang belum pernah dilewati
Berikan nilai 0 pada sel tersebut
Baca semua informasi tentang
nilai – nilai sel pada peta labirin dari
eeprom
Apakah jalan terbuka yang akan dituju sudah
pernah dilewati?
Ya
Tidak
Gambar 3.20. Flowchart Algoritma Backtracking
39
Berikut adalah pseudo-code yang merupakan alur program dari algoritma
backtracking, yaitu :
START
Baca semua informasi tentang nilai – nilai sel pada peta labirin dari eeprom
IF belum pernah mencapai finish THEN
Jelajahi peta labirin
WHILE belum mencapai finish DO
Cek dinding sekitar (depan, samping kiri, dan samping kanan)
IF ditemukan jalan buntu atau jalan terbuka yang akan dituju sudah
pernah dilewati THEN
Berikan nilai 0 pada sel tersebut
Jalankan proses runut-balik menuju sel percabangan sebelumnya
yang masih memungkinkan ada jalur yang belum pernah dilewati
ELSE
Berikan nilai 1 pada sel robot berada
Berjalan sejauh 1 sel menuju sel yang belum pernah dilewati
ENDIF
ENDWHILE
Simpan semua informasi nilai – nilai sel pada peta labirin di dalam eeprom
ELSE
Atur mode perjalanan berangkat
WHILE belum mencapai finish DO
Cek dinding sekitar dan nilai sel sekitar
Berjalan sejauh 1 sel menuju sel yang memiliki nilai 1
ENDWHILE
ENDIF
Atur mode perjalanan kembali
WHILE belum mencapai start DO
Cek dinding sekitar dan nilai sel sekitar
Berjalan sejauh 1 sel menuju sel yang memiliki nilai 1
ENDWHILE
END