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 17
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 :
4.
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)
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.
18
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
19
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
20
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 21
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
22
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
23
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.
24
Tabel 3.1. Tabel Keterangan Mekanik Robot
HARDWARE Dimensi 12 cm (p ) x 12 cm (l ) x 13 cm (t ) Berat ± 1 kg Roda 4 roda (2 aktif, 2 pasif) Tabel 3.2. Tabel Spesifikasi Pololu Micro Metal Gearmotors Rasio Gear Kecepatan Free-run @ 6V Arus Free-run @ 6V Arus Beban Maksimal @ 6V Torsi Beban Maksimal @ 6V
3.4.
30 : 1 1000 rpm 120 mA 1600 mA 0,25 kg
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.
25
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.
26
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)
27
Tabel 3.3. Kegunaan Pin Arduino UNO (lanjutan)
2.
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
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 28
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. 29
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
5.
𝑌 180° × 𝑋 𝜋
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
30
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
31
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 HBridge sehingga dapat bekerja untuk mengontrol segala macam
32
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
33
dihapus dan ditulis kembali per blok data tergantung alamat yang diinginkan sesuai dengan kebutuhan. Pada EEPROM, proses eraserewrite
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
34
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
Jalankan fungsi dari aksi penekanan Switch 1
Ya
Apakah ada penekanan dari Switch 1?
Tidak
Tidak
Jalankan fungsi kalibrasi batas nilai Sensor Dinding
Tidak
Apakah penekanan lebih dari 2 detik?
Apakah ada penekanan dari Switch 2? Ya
Jalankan fungsi dari aksi penekanan Switch 2
Ya Jalankan fungsi kalibrasi error Kompas Digital
Tidak
Tidak
Apakah penekanan lebih dari 2 detik?
Apakah ada penekanan dari Switch 3?
Ubah Algoritma
Ya
Ya
Jalankan fungsi kalibrasi lokasi untuk menentukan posisi Utara, Selatan, Timur dan Barat
Jalankan fungsi dari aksi penekanan Switch 3
Standby-for-Start
Jalankan fungsi algoritma yang dipilih hingga selesai
Ya
Ada halangan pada Sensor Dinding bagian depan?
Tidak
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.
35
START
Baca semua informasi tentang dinding labirin dari eeprom
Atur mode perjalanan berangkat (start to finish)
Atur mode perjalanan kembali (finish to start)
Cek dinding sekitar (bagian depan, samping kiri dan samping kanan )
Bangkitkan nilai tiap sel
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
Cek kondisi apabila nilai sel tetangga tidak ada yang 1 lebih kecil dari nilai sel robot berada atau ditemukan jalan buntu
Simpan informasi dinding dalam suatu array
Apakah kondisi terpenuhi?
Apakah kondisi terpenuhi?
Bangkitkan nilai tiap sel
Ya
Ya
Tidak
Tidak
Tidak
Bangkitkan nilai tiap sel
Tentukan sel tujuan selanjutnya yang memiliki nilai lebih kecil dari sel robot berada
Tentukan sel tujuan selanjutnya yang memiliki nilai lebih kecil dari sel robot berada
Berjalan 1 sel menuju sel yang dituju
Berjalan 1 sel menuju sel yang dituju
Apakah sudah mencapai finish?
Apakah sudah mencapai start?
Tidak
Ya
Ya Simpan semua informasi tentang dinding labirin di dalam eeprom
Simpan semua informasi tentang dinding labirin di dalam eeprom
END
Gambar 3.19. Flowchart Algoritma Flood-Fill
36
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
37
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
Baca semua informasi tentang nilai – nilai sel pada peta labirin dari eeprom
Berikan nilai 1 pada sel robot berada sebagai tanda bahwa sel tersebut sudah pernah dilewati
Berjalan 1 sel menuju salah satu sel yang belum pernah dilewati
Tidak Jelajahi Peta Labirin (Explore)
Apakah sudah mencapai finish?
Ya
Apakah sudah pernah mencapai finish?
Atur mode perjalanan berangkat (start to finish)
Ya
Simpan semua informasi tentang nilai – nilai sel pada peta labirin di dalam eeprom
Ya
Apakah sudah mencapai finish?
Tidak
Tidak Cek dinding sekitar (bagian depan, samping kiri dan samping kanan )
Atur mode perjalanan kembali (finish to start)
Cek dinding sekitar dan nilai sel sekitar
Tidak
Apakah jalan terbuka yang akan dituju sudah pernah dilewati?
Tidak Apakah ditemukan jalan buntu?
Apakah sudah mencapai start?
Ya
Ya
Berjalan 1 sel menuju sel yang telah ditandai dengan nilai 1 dan tidak terhalang oleh dinding
Ya Tidak
Berikan nilai 0 pada sel tersebut
Cek dinding sekitar dan nilai sel sekitar Jalankan proses runut-balik (backtrack) menuju sel yang merupakan percabangan sebelumnya yang masih memungkinkan ada jalur yang belum pernah dilewati
Berjalan 1 sel menuju sel yang telah ditandai dengan nilai 1 dan tidak terhalang oleh dinding
Gambar 3.20. Flowchart Algoritma Backtracking
38
END
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
39