TUTORIAL PERANCANGAN SISTEM EMBEDDED BERBASIS STATECHART:STUDI KASUS PADA LINE FOLLOWER MOBILE ROBOT

dokumen-dokumen yang mirip
Fungsi Soft Timer untuk Keperluan Operasi Tundaan dan Penjadwalan (Scheduling) Pada Sistem Embedded

RANCANG BANGUN ROBOT PENGIKUT GARIS (LINE FOLLOWER) MENGGUNAKAN SENSOR INFRA MERAH (PHOTODIODE)

JOBSHEET SISTEM CERDAS REASONING 1 PENGENALAN ROBOT LINE FOLLOWER

BAB V IMPLEMENTASI DAN PENGUJIAN

BAB III PERANCANGAN. Gambar 3.1 Blok Diagram Sistem

BAB III PERANCANGAN. Pada bab ini akan dibahas mengenai beberapa hal dasar tentang bagaimana. simulasi mobil automatis dirancang, diantaranya adalah :

BAB IV PERANCANGAN. 4.1 Flowchart

BAB II TINJAUAN PUSTAKA. Line follower robot pada dasarnya adalah suatu robot yang dirancang agar

BAB 4 IMPLEMENTASI DAN EVALUASI. Atmel (

BAB IV PENGUJIAN DAN ANALISA

BAB I PENDAHULUAN I-1

Membuat Robot Line Follower Hendawan Soebhakti Dosen Teknik Elektronika Politeknik Negeri Batam

BAB 3 PERANCANGAN SISTEM

Robot Bergerak Penjejak Jalur Bertenaga Sel Surya

BAB III PERANCANGAN KECERDASAN-BUATAN ROBOT PENCARI JALUR

BAB III PERANCANGAN Sistem Kontrol Robot. Gambar 3.1. Blok Diagram Sistem

RANCANG BANGUN ROBOT PENGIKUT GARIS (LINE FOLLOWER) MENGGUNAKAN SENSOR PHOTODIODE DENGAN PEMROGRAMAN MIKROKONTROLER ATMEGA8535 TUGAS AKHIR

PENGONTROL PID BERBASIS PENGONTROL MIKRO UNTUK MENGGERAKKAN ROBOT BERODA. Jurusan Teknik Elektro, Fakultas Teknik. Universitas Kristen Maranatha

Analisa dan Perbaikan Algoritma Line Maze Solving Untuk Jalur Loop, Lancip, dan Lengkung pada Robot Line Follower (LFR)

RANCANG BANGUN MOBIL ROBOT DETEKSI API DAN LINE FOLLOWER BERBASIS MIKROKONTROLER PIC16F84

Perancangan Robot Pengikut Garis Sederhana Sebagai Perangkat Pelatihan Tingkat Pemula

BAB I PENDAHULUAN. Inggris, Jepang, Perancis) berlomba-lomba untuk menciptakan robot-robot

RANCANG BANGUN ROBOT PENGIKUT CAHAYA (LIGHT FOLLOWER) MENGGUNAKAN SENSOR LDR DENGAN PEMROGRAMAN MIKROKONTROLER ATMEGA8535 TUGAS AKHIR

BAB 4 HASIL DAN PEMBAHASAN

RANCANG BANGUN ROBOT PENGANTAR SURAT MENGGUNAKAN MIKROKONTROLER AT89S51

Membuat Robot Tidak Susah. Hendawan Soebhakti Dosen Teknik Elektro Politeknik Batam Portal : hendawan.wordpress.

Implementasi Kamera OV7670 Sebagai Pendeteksi Garis Pada Robot Line Follower

Implementasi Sistem Navigasi Maze Mapping Pada Robot Beroda Pemadam Api

Jurnal Coding Sistem Komputer Untan Volume 03, No 2 (2015), hal ISSN X IMPLEMENTASI ALGORITMA MAZE SOLVING PADA ROBOT LINE FOLLOWER

BAB I PENDAHULUAN 1.1 Latar Belakang

BAB II DASAR TEORI Kajian Pustaka a. Penerapan Algoritma Flood Fill untuk Menyelesaikan Maze pada Line Follower Robot [1]

BAB IV ANALISA DAN PENGUJIAN ALAT

Pemrograman Robotik Menggunakan Bahasa Java (Studi kasus Line Maze)

SISTEM ROBOT PENGIKUT GARIS DAN PEMADAM API BERBASIS MIKROKONTROLER AT89C51. Budi Rahmani, Djoko Dwijo Riyadi ABSTRAK

BAB I PENDAHULUAN. pesat ditandai dengan persaingan sangat kuat dalam bidang teknologi. Seiring

BAB III PERANCANGAN DAN PEMBUATAN ALAT

BAB 4 HASIL DAN PEMBAHASAN

BAB V ANALISIS DAN UJI COBA. Pada bab ini akan dibahas mengenai pengujian dan analisa pada hardware

(Line Tracker/Follower Robot) Presented by: Asniar Aliyu, ST. M.Eng (Staf Dosen Sekolah Tinggi Teknologi Nasional Yogyakarta)

BAB I PENDAHULUAN. berbagai proses pengendalian. Keterbatasan keterbatasan tersebut lambat laun

BAB 3 PERANCANGAN SISTEM

Kendali Logika Fuzzy Pada Robot Line Follower

Media Informatika Vol. 15 No. 2 (2016) SIMULASI ROBOT LINE FOLLOWER DENGAN PROTEUS. Sudimanto

BAB III PERANCANGAN DAN PEMBUATAN APLIKASI

BAB IV ANALISA DAN PENGUJIAN DATA

BAB 4 IMPLEMENTASI DAN EVALUASI. Pada Bab IV ini menjelaskan tentang spesifikasi sistem, rancang bangun

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

Bab I Pendahuluan 1 BAB I PENDAHULUAN

Gambar 4.1 Cara Kerja Mode Acak Pada Ruang Tak Berpenghalang

AN-0011 LINE TRACKER ROBOT DENGAN MENGGUNAKAN UNIVERSAL DELTA ROBO KITS

ROBOT PENGHINDAR HALANGAN DENGAN MIKROKONTROLER AT89C51

BAB III ANALISIS DAN PERANCANGAN

BAB III METODE PENELITIAN. pada blok diagram tersebut antara lain adalah webcam, PC, microcontroller dan. Gambar 3.1 Blok Diagram

ABSTRAK. Kata Kunci : Robot Line Follower

ROBOT LABA-LABA PENJEJAK GARIS (HEXAPOD LINE FOLLOWER)

REALISASI ROBOT DALAM AIR

BAB IV UJI COBA DAN IMPLEMENTASI

IMPLEMENTASI FUZZY LOGIC CONTROLLER PADA ROBOT LINE FOLLOWER

BAB IV ANALISA DAN PENGUJIAN ALAT

BAB III PERANCANGAN ALAT. eletronis dan software kontroler. Konstruksi fisik line follower robot didesain

ARIEF SARDJONO, ST, MT.

PERANCANGAN SISTEM KENDALI GERAK PADA PLATFORM ROBOT PENGANGKUT

MERANCANG ROBOT PENJEJAK GARIS DENGAN MENGGUNAKAN DELTA ROBO KITS DAN DST-R8C STAMP

ABSTRAK. Universitas Kristen Maranatha

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

EMDEDDED ARRAY SENSOR UNTUK LINE FOLLOWING ROBOT

APLIKASI PERINTAH SUARA UNTUK MENGGERAKKAN ROBOT. Disusun Oleh : Nama : Astron Adrian Nrp :

PERBANDINGAN ALGORITMA FLOODFILL DAN DJIKSTRA S PADA MAZE MAPPING UNTUK ROBOT LINE FOLLOWER

BAB III PERANCANGAN DAN REALISASI. blok diagram dari sistem yang akan di realisasikan.

RANCANG BANGUN ROBOT PENGIKUT GARIS DAN PENDETEKSI HALANG RINTANG BERBASIS MIKROKONTROLER AVR SKRIPSI

Implementasi Sistem Navigasi Behavior Based Robotic dan Kontroler Fuzzy pada Manuver Robot Cerdas Pemadam Api

RANCANG BANGUN SISTEM KONTROL ROBOT LINE FOLLOWER MENGGUNAKAN LOGIKA FUZZY

BAB IV PROTOTYPE ROBOT TANGGA BERODA. beroda yang dapat menaiki tangga dengan metode pengangkatan beban pada roda

BAB I PENDAHULUAN. di terapkan di dunia industri. Salah satu yang berkembang adalah Robot Pengikut. mengakibatkan gerakan robot tidak mencapai optimal

INDRA FIRMANSYAH MARISI

Rancang Bangun Robot Pembersih Lantai Berbasis Arduino

Tutorial Eagle. Berikut jendela baru

BAB I PENDAHULUAN. 1.1 Latar Belakang

BAB III ANALISA DAN PERANCANGAN

BAB IV ANALISIS DAN PEMBAHASAN

TUGAS AKHIR. Oleh RESI PERMANA FIDIANTO NPM JURUSAN TEKNIK INFORMATIKA FAKULTAS TEKNOLOGI INDUSTRI

Arbiel Yodinata. Ariel Valentino. Okky Andriansyah. Indah Kusumaningrum

BAB III PERANCANGAN SISTEM

Infrared Sensor on ATmega32 Microcontroller

KONTROL ROBOT MOBIL PENJEJAK GARIS BERWARNA DENGAN MEMANFAATKAN KAMERA SEBAGAI SENSOR

Miftahurrozaq [1], Iwan Setiawan [2], Budi Setyono [2] masuk), dan atau secara otomatis mengantarkan pemakai ke lokasi tertentu.

REALISASI ROBOT MOBIL HOLONOMIC Disusun Oleh : Nama : Santony Nrp :

BAB IV PENGUJIAN ROBOT AMPHIBI

BAB III PERANCANGAN DAN PEMBUATAN ALAT

BAB III METODE PENELITIAN. diperlukan dengan beberapa cara yang dilakukan, antara lain:

4 HASIL DAN PEMBAHASAN

BAB II TINJAUAN PUSTAKA

TUGAS AKHIR PENGENDALIAN ROBOT MOBILE BERBASIS IP (Internet Protocol) MELALUI JARINGAN WIFI. Oleh: Gama Wardhana ( )

Robot Pengikut Cahaya Menggunakan ATMEGA 8535

APLIKASI ROBOT PEMADAM API DENGAN MENGGUNAKAN SENSOR FLAME DETECTOR BERBASIS MIKROKONTROLLER ATMEGA8535 DAN DIDUKUNG BAHASA PEMROGRAMAN C

BAB IV PENGUJIAN DAN ANALISA

ROBOT PENJEJAK RUANGAN DENGAN SENSOR ULTRASONIK DAN KENDALI GANDA MELALUI BLUETOOTH

BAB V HASIL DAN PEMBAHASAN. Pengujian dilakukan terhadap 8 sensor photodioda. mendeteksi garis yang berwarna putih dan lapangan yang berwarna hijau.

BAB III PERANCANGAN SISTEM

INTEGRATION AND EVALUATION USING PATTERN RECOGNITION FOR MOBILE ROBOT NAVIGATION. Iman H. Kartowisastro.; Budiyanto Mulianto; Valentinus Rahardjo

Transkripsi:

TUTORIAL PERANCANGAN SISTEM EMBEDDED BERBASIS STATECHART:STUDI KASUS PADA LINE FOLLOWER MOBILE ROBOT (Embedded Systems Design Principles: From Drawing to Coding, rev 0, mei 2009) Oleh : Iwan Setiawan Automatic Control Lab, Electrical Engineering of UNDIP

Kata Pengantar Saat ini, tutorial yang membahas robot mobile penjejak garis banyak kita jumpai dalam buku, paper atau pun dari berbagai sumber di internet. Tetapi jika anda cermati, algoritma atau strategi kontrol robot mobile yang dibahas umumnya disajikan dalam bentuk kode program secara langsung. Mungkin saja algoritmanya relative canggih, tetapi apakah anda akan cepat paham dengan algoritma tersebut?, Penulis tidak yakin anda akan cepat menangkap ide yang ingin diungkap oleh si penyusun algoritma. Hal ini dikarenakan kode program-walaupun ditulis dalam bahasa tingkat tinggi (seperti C, Basic, atau Pascal) bagi manusia tetap merupakan bahasa yang tidak alamiah, tidak manusiawi! (untuk lebih jelasnya silahkan anda baca Design of Embedded Control System Using Statechart: One Picture is Worth a Thousand of Words!) Tulisan ini pada dasarnya tidak semata-mata membahas robot mobile (apalagi mengulang materi robot mobile yang mudah anda jumpai di internet). Robot mobile penjejak garis yang diusung dalam tulisan ini hanyalah merupakan studi kasus yang penulis gunakan untuk mengilustrasikan betapa sederhana, sistematis, mudah dipahami dan menyenangkannya perancangan sistem embedded dengan menggunakan Statechart. Dalam tulisan ini akan dijelaskan langkah perancangan dari mulai Thinking, Drawing sampai Coding yang nantinya dapat juga digunakan dalam perancangan sistem kontrol yang lebih luas. Semoga bermanfaat. 2

Problem Robot Mobile Penjejak Garis Sebelum melakukan proses perancangan perangkat lunak pengontrolan lewat diagram Statechart, kita terlebuh dulu harus paham dengan tujuan serta spesifikasi sistem yang akan dirancang. Berikut adalah tujuan serta spesifikasi yang dijadikan studi kasus dalam tulisan ini: Tujuan Perancangan: Robot mobile yang nanti dibangun akan mampu menjejak garis hitam pada bidang warna putih (atau sebaliknya: garis putih pada bidang warna hitam). Dalam hal ini, garis digunakan oleh robot sebagai panduan atau landmark dalam bernavigasi (jika anda ingin mengetahui permasalahan navigasi secara umum silahkan baca artikel: Navigation Problem: Where Am I, Where Am I going, How do I get There di alamat url: ) Spesifikasi Perangkat keras robot: Agar robot mobile memiliki kemampuan bermanuver tinggi dan dapat dikontrol relative mudah, sistem kemudi yang digunakan dalam studi kasus ini adalah jenis diferensial : Robot memiliki dua roda utama yang digerakan oleh sistem penggerak (motor DC) tersendiri dan satu buah kastor sebagai roda penyeimbang. Untuk dapat mendeteksi garis (membedakan warna), dalam studi kasus ini digunakan photosensor yang bekerja berdasarkan prinsip pemantulan cahaya: bidang warna gelap cenderung memantulkan cahaya relative sedikit dibandingkan bidang warna cerah. Agar pergerakan robot mobile relative halus, jumlah photosensor yang digunakan sebanyak 8 buah: 4 buah photosensor digunakan untuk mengetahui status posisi robot samping kiri relative terhadap garis, dan 4 buah photosensor sisanya digunakan untuk mengetahui status posisi robot samping kanan relative terhadap garis. Dalam studi kasus ini, informasi garis yang dijejak oleh robot akan bernilai 1 sedangkan informasi bidang (misal lantai) akan bernilai 0 (lihat Gambar 1)--Hal tersebut dapat dilakukan baik lewat rekayasa rangkaian sensor maupun lewat software (operasi pembalikan bit). Gambar 1. Informasi garis yang diperoleh robot lewat photosensor Untuk kepentingan perancangan perangkat lunak, empat buah photosensor sebelah kiri dan empat buah sensor sebelah kanan robot dikoneksikan pada PORT microcontroller yang berbeda. Didalam perangkat lunak, informasi kedua status sisi robot tersebut 3

disimpan dalam dua buah variabel bertipe integer tak bertanda, misal variabel left digunakan untuk menyimpan 4 buah informasi photosensor sebelah kiri robot dan variabel right digunakan untuk menyimpan 4 buah informasi photosensor sebelah kanan robot. Gambar 2 dan 3 berikut berturut-turut memperlihatkan contoh interkoneksi serta hubungan status photosensor dengan kedua nilai variabel left dan right Gambar 2. Interkoneksi Sensor Gambar 3. Hubungan status bit dengan nilai variabel left dan right 4

Perancangan software pengontrolan Sederhana Berdasarkan spesifikasi diatas, sekarang kita pada dasarnya sudah dapat merancang sistem pengontrolan robot mobile penjejak garis. Algoritma dapat dibangun berdasarkan informasi posisi robot saat ini relative terhadap garis yang dijejaknya. Untuk lebih jelasnya anda perhatikan beberapa kemungkinan posisi robot mobile terhadap garis seperti nampak pada gambar 4 dibawah: Gambar 4. Beberapa posisi robot mobil pada garis Maka berdasarkan gambar 4 diatas, algoritma pengontrolan dapat mengambil bentuk seperti berikut ini: if (left==right) //mobot go straight if (left<right) //mobot turn left if (left>right) //mobot turn right Permasalahan yang muncul dengan strategi kontrol diatas adalah jika satu saat robot kehilangan jejak garis (misal karena belokannya terlalu tajam atau karena robot bergerak terlalu cepat), apakah robot harus bergerak ke arah kiri atau arah kanan?--lihat ilustrasinya pada gambar 5 berikut: 5

Gambar 5. Robot berada di luar garis Gambar 6. Sejumlah keadaan posisi robot mobile untuk setiap saat 6

Perancangan software pengontrolan Berbasis StateChart Thinking Ketika satu saat robot berada di luar garis (dalam hal ini diindikasikan oleh pembacaan kedua variabel left dan right yang bernilai 0), maka agar robot bergerak kearah yang benar, robot tersebut harus memiliki memori. Untuk setiap saat, robot harus mengetahui sedang dimanakah saya?, apakah saya sedang di track yang benar, apakah saya terlalu kiri dari garis?, apakah saya berada diluar garis sebelah kiri?, apakah saya berada di luar garis sebelah kanan?. Untuk lebih jelasnya anda perhatikan gambar 6. Jika robot mengetahui posisinya saat ini, maka pengontrolan pada dasarnya dapat dilakukan secara sederhana, berikut adalah contoh robot berpikir dengan logika yang benar: Jika saya berada di tengah garis maka saya akan bergerak lurus, jika saya sekarang di sebelah kiri garis maka saya akan bergerak kearah kanan, jika saya ada disebelah kiri garis tiba-tiba garisnya menghilang maka saya akan berbelok tajam kearah kanan, dan seterusnya, dan seterusnya. Drawing (and Thinking) Gambar 7. Diagram statechart pada robot mobile penjejak garis Setelah anda menetahui dan paham dengan berbagai kemungkinan posisi robot serta apa yang harus dilakukan oleh robot jika ada pada suatu keadaan tertentu, maka anda sekarang sudah dapat melakukan proses drawing. Dalam hal ini kemungkinan-kemungkinan posisi robot (state) anda gambarkan dalam bentuk kotak dengan ujung agak bundar (atau dapat juga digambar sebagai bulatan), transisi dari satu keadaan ke keadaan lain anda gambar kan sebagai tanda panah, dimana kondisi penyebab transisi tersebut anda tulis diatas tanda panah, sedangkan pengontrolan 7

robotnya itu sendiri misal robot belok kanan, robot lurus dan seterusnya pada dasarnya adalah bentuk activity, dalam hal ini anda tulis didalam state (lingkaran) Gambar 7 memperlihatkan representasi logika pengontrolan robot dalam bentuk Statechart yang digunakan dalam studi kasus ini secara relative lengkap. Walaupun anda mungkin sebelumnya belum mengenal Statechart, tetapi diagram pada gambar 7 nampaknya sangat intuitive dan mudah dipahami sehingga penulis yakin anda akan cepat paham dengan apa yang dikehendaki oleh gambar tersebut. Coding Setelah diagram Statechart diperoleh, maka langkah selanjutnya adalah coding. Untuk kasus ini ada dua buah fungsi yang perlu kita realisasisan dari statechart tersebut : 1. Fungsi transisi state : fungsi ini merepresentasikan kemungkingan-kemungkinan transisi state yang dapat terjadi untuk sebuah kondisi tertentu (lihat gambar 7) //fungsi statechart void transisi_state() switch(state) case INIT case CENTER case RIGHT case LEFT : if(right==left) state CENTER if(right<left) state = RIGHT; if(right>left) state = LEFT; : if(right<left) state = RIGHT; if(right>left) state = LEFT; : if(right==0) state= OUT_RIGHT; if(right>= left) state= CENTER; : if(left==0) state = OUT_LEFT; if(right<= left) state = CENTER; case OUT_RIGHT: if(right!=0) state = RIGHT; case OUT_LEFT : if(left!=0) state = LEFT; default : 8

2. Fungsi activity: Fungsi ini merepresentasikan apa yang dikerjakan oleh robot ketika berada pada keadaan posisi terntentu (lihat gambar 7) //fungsi activity dalam state void activity() if(state== CENTER) go_straight(); if(state== RIGHT) turn_left(); if(state== LEFT) turn_right(); if(state== OUT_RIGHT) turn_left_sharp(); if(state== OUT_LEFT) turn_right_sharp(); Didalam program utama, selanjutnya kita panggil atau jadwal kedua fungsi tersebut, misal setiap 50 ms sekali. Berikut adalah cuplikan program utama pengontrolan sistem robot penjejak garis //program utama enuminit, CENTER, RIGHT, LEFT, OUT_RIGHT, OUT_LEFT; #define right PINA&0x0f #define left PINB&0x0f unsigned char state;.. main() //inisialisasi hardware dan variabel lain yang diperlukan init_hardware(); state=init; //inisialisasi state awal while(1) //panggil fungsi state_mobot dan activity_in_state disini (misal setiap 50 ms) if(timer_soft ==50) transisi_state(); activity (); Mudah Bukan? Catatan-catatan Penting Agar program yang anda susun terstruktur, maka sebelum mendefinisikan fungsi-fungsi pergerakan robot high level, yaitu seperti go_straight(), turn_left(), turn_right() turn_left_sharp(), dan turn_right_sharp(), anda sebaiknya membuat atau mendefinisikan terlebih dulu sistem kontrol robot yang bersifat lebih low level. 9

Misal, Karena semua fungsi high level secara teknis nantinya akan memanipulasi besaran PWM untuk setiap roda, maka buat terlebih dulu fungsi pemanipulasian PWM untuk masing-masing roda, misal prototype yang digunakan: Void set_wheel_speed(int pwm_motor_kiri, int pwm_motor_kanan); //pwm 0-100% Dengan anggapan anda telah mendefiniskan detail dari fungsi diatas, maka nantinya fungsi high level secara langsung dapat memanggil fungsi low level tersebut. Berikut adalah contoh yang dapat anda gunakan: go_straight() set_wheel_speed(100, 100); //pwm 0-100% : max turn_left() set_wheel_speed(70, 90); //pwm 0-100% Khusus untuk algoritma untuk berbelok (misal turn_left(), turn_right(), dst), logika kontrol yang diimplementasikan didalamnya dapat saja bersifat batch, artinya besar kecepatan putar belok ditentukan juga oleh selisih besar variabel left dan right. Agar desain perangkat keras lebih efisien, sensor dapat dihubungkan dengan satu buah port (dengan catatan interkoneksi harus anda ubah --lihat ilustrasinya pada gambar 8) Gambar 8. Interkoneksi Sensor pada satu port yang sama 10

Diagram perancangan dapat anda kembangkan lebih lanjut, disesuaikan dengan problem yang dihadapi: misal jika robot yang anda rancang ingin dapat mendeteksi persimpangan (lihat gambar 9), serta juga ingin melakukan aksi tertentu, maka dalam perancangan anda harus menerapkan konsep event dan action (dalam studi kasus ini kedua konsep tersebut tidak diperlukan) Gambar 9. Persimpangan garis Bahan Bacaan 1. BrucePowerDouglas State Machines and StateChart, i-logix 2. Edward Carryer Event Driven Programming, Standford University 2005 3. Priyank Patil Line Following Robot K.J. Somaiya Collage of Eng., Bombay India 11