SEMINAR NASIONAL ELECTRICAL, INFORMATICS, AND IT’S EDUCATIONS 2009
RANCANG BANGUN ROBOT PEMINDAH BENDA DENGAN PENJEJAK GARIS 1
1
Erik Haritman Yoyo Somantri Jurusan Pendidikan Teknik Elekro FPTK UPI
1
Abstrak Robot cerdas ini dirancang untuk memindahkan benda dari satu titik ke titik yang lainya seperti halnya manusia, robot ini bergerak berdasarkan garis pandu yang dibaca oleh pasangan sensor Photo diode dan LED merah, dengan dua buah motor DC sebagai penggerak roda yang kecepatanya diatur dengan PWM, dan dua buah motor DC sebagai penggerak mekanisme pencapit benda. Untuk pemrograman robot secara keseluruhan menggunakan finite state machine dengan bahasa C sebagai penerjemah algoritmanya. Untuk compiler dan media editor menggunakan codevisionAVR. Kata Kunci: Robot, garis pandu, photodiode, lAlgoritma. I. Pendahuluan Teknologi terus berkembang seiring kebutuhan manusia yang komplek. Salah satu kebutuhan yang sering menjadi pemikiran praktisi teknologi sekarang adalah membuat suatu alat yang dulunya berbasis manual menjadi otomatis berdasarkan kecerdasan dari alat tersebut. Hal ini biasa kita kenal dengan robot. Penggunaan robot pada awalnya untuk kebutuhan industri. Tapi untuk sekarang-sekarang sudah mencakup berbagai bidang. Salah satu contoh penerapan robot untuk sekarang-sekarang ini adalah: 1. Robot pemindah benda 2. Robot militer 3. Robot pengintai 4. Robot Robot penjinak bom 5. ASIMO 6. AIBO 7. Robot kontes 8. Micro mouse 9. Robot industry Dalam makalah ini dibuat sebuah robot linefollower dengan tugas untuk memindahkan benda dalam bentuk silinder block dan meneruskan untuk dipindahkan dan dimasukkan kedalam tiang. Hal ini merupakan simulasi pemindah benda otomatis berdasarkan garis pandu pada lantai di industri. II. Rancangan robot Bentuk robot yang dirancang berfungsi untuk mengambil benda dan mengangkatnya. Sehingga didesain dengan bentuk seperti gambar 1.
Gambar 1. Bentuk Robot Sedangkan untuk pergerakan robot desain adalah sebagai berikut:
A2-84
Gambar 2. Diagram alir kerja robot Robot otomatis bergerak dari posisi start robot kemudian maju satu garis simpangan dengan mengikuti garis, setelah robot mencapai satu garis simpangan tersebut robot belok ke kanan dan dilanjutkan dengan mengikuti garis kembali umtuk menuju letak benda (silinder block) dengan melewati tiga garis simpangan dan kemudian berbelok ke kanan, robot maju kembali dengan mengikuti garis sampai robot dapat berada pada dimana benda (silinder block) disimpan dan mengambilnya. Setelah benda terambil robot berputar 180 derajat untuk menuju tiang (island) dengan melewati tiga simpangan dan berbelok ke kiri sampai robot dapat berada pada tiang (island) dan meletakkan benda (silinder block).
SEMINAR NASIONAL ELECTRICAL, INFORMATICS, AND IT’S EDUCATIONS 2009
Untuk perancangan algoritma robot yang baik, peneliti melakukan tiga tahapan perancangan, yaitu: Langkah 1. Desain kebutuhan kontrol robot Untuk intruksi dalam satu waktu terdapat dua intruksi antara eksekusi program utama dan penggerak aktuator (digunakan untuk kontrol PWM dari roda penggerak). Intruksi yang digunakan hanya menggunakan satu intruksi timer0 untuk pengaturan/pembangkitan PWM. Karena terdapat beberapa intruksi untuk satu perioda waktu yaitu intruksi program utama dan pembangkitan PWM roda penggerak, maka digunakan arsitektur pemrograman menggunakan foreground background untuk program utama sebagai foreground dan untuk fungsi pembangkit PWM sebagai background, dan algoritma pembangkit PWM menggunakan algoritma time triggered. Karena sistem tidak terlalu komplek maka penulis hanya menggunakan satu prosessor. Dalam pengaturan aktuator pencapit menggunakan kontrol loop terbuka berbasis delay.. Kontroler untuk robot mengikuti garis adalah dengan absolute maping dan untuk belok kanan dan belok kiri berdasarkan pembacaan garis pada saat berbelok sehingga posisi sensor line tengah mendeteksi garis. Tingkat pemrograman yang digunakan adalah bahasa tingkat tinggi menggunakan BAHASA C, dilihat dari kemudahan dalam memrogram suatu embedded system. Langkah 2. Susun skema mekanisme kontrol robot Jenis prossesor yang digunakan adalah mikrokontroler jenis AVR dengan seri ATMEGA8535. Skema robot sudah disusun terlebih dahulu sebelum membuat algoritma. Dalam langkah ini penulis gunakan untuk melakukan perancangan sistem kontrol secara keseluruhan dengan merujuk pada pertanyaanpertanyaan sebelumnya. Sistem kontrol terdapat dua garis besar low level dan high level. Untuk low level terdapat dua jenis, untuk pengaturan roda penggerak robot menggunakan Absolute maping dan untuk mengontrol cecapit menggunakan kontrol terbuka dengan kontroler terbuka berbasis delay. Dan untuk high level menggunakan finite state machine (FSM), dalam hal ini merupakan pernyataan pada kondisi-kondisi syarat dari gerak robot untuk mencapai goal (meletakan benda). Didalam langkah ini lebih pada perancangan penyusunan algoritma untuk setiap fungsi yang akan digunakan, dalam tugas akhir ini penulis menggunakan 8 fungsi. Diantaranya fungsi utama, fungsi line follower dan counter simpangan, fungsi PWM, fungsi belok kanan,
A2-85
fungsi belok kiri, fungsi ambil benda, dan fungsi letakkan benda. Tipe data yang digunakan berpatokan pada jenis variabel yang akan digunakan, karena sistem hanya memiliki kekompleksan yang tidak terlalu besar untuk tipe data jenis integer dan unsigned char masih memungkinkan Langlah 3. Pengkodean (pembuatan sintaks program) Pengkodean dilakukan dengan menggunakan CodeVision 12.5.7 evaluation. Dengan menuliskan keterangan untuk setiap baris program agar mudah untuk diingat. Sedangkan untuk pergerakan motor menggunakan prinsip PWM (Pulse wide modulation). Dalam pengaturan kecepatan motor DC permanen berbanding lurus dengan tegangan supply pada terminal inputannya. Untuk kecepatan motor rendah maka diberi tegangan rendah dan untuk mendapatkan putaran tinggi diberi tegangan tinggi. PWM (Pulse Wide Modulation) merupakan teknik pengaturan motor DC permanen dengan memanfaatkan besarnya tegangan rata-rata yang dihasilkan dengan menggunakan prinsip switching tegangan berdasarkan besarnya lebar pulsa untuk waktu pengaktifan dan penonaktifan pulsa yang diinginkan dengan perhitungan harga rata-rata . Dimana merupakan dutty cycle dari sebuah pengaturan PWM. Pulsa inilah yang dihasilkan dari mikrokontroler dengan orde tegangan TTL dan selanjutnya akan disupplay ke driver motor untuk dapat digunakan menggerakan motor dengan rangkaian utama dari driver ini adalah transistor yang digunakan dengan prinsip transistor sebagai saklar. PWM yang dihasilkan penulis menggunakan timer internal dengan menggunakan mode interrupt timer overflow dengan batas atas FFh atau dalam decimal 255. Jadi untuk perioda satu interupt adalah , sedangkan besarnya counter untuk mengeluarkan pulsa PWM menggunakan mode unsigned char dengan range hitungan dari 0-256. Jadi besar frekuensi yang dihasilkan dalam PWM ini adalah Maka frekuensi yang dihasilkan adalah
Dalam program interrupt timer penulis menggunakan sistem comparator (pembandingan) antara nilai interrupt timer dengan nilai settingan dari PWM itu sendiri. Penulis menggunakan settingan dengan nilai sesuai dengan batas dari unsigned char yaitu 0-255.
SEMINAR NASIONAL ELECTRICAL, INFORMATICS, AND IT’S EDUCATIONS 2009
A2-86 5V
III.
12V LS1 5V 4 3
M1 5 8
SW3 R2
D22
Q2 10K
2
7 1 2
Q1
PWM IN4148
MOTOR DC
1
6 12V
D1 IN4002
D313
RELAY DPDT
TIP3055
R9 5V
R8
R16 2
LED
D18 1
2
1
2
Out
1
Motor drive Pada robot ini digunakan digunakan empat buah motor DC yang masing masing harus bergerak secara dua arah yaitu Clock Wise (CW) dan Counter Clock Wise (CCW), masing-masing motor digunakan untuk, penggerak capit, penarik capit dan dua buah motor untuk penggerak roda. selain dapat bergerak dua arah motor roda juga harus dapat dikendalikan kecapatan putarnya, sehingga untuk penggerak (driver) dari ke empat motor tersebut digunakan dua buah transistor NPN yang dirangkai secara darlington sebagai kendali on/off dan switching transistor yang digerakan pulsa PWM, sebagai kendali arah putar motor digunakan relay DPDT (Dual Pole Double Throw) dengan mekanisme membalik tegangan. Dua buah sakelar push button digunakan untuk pengecekan kondisi dari driver motor. berikut adalah skematik rangkaian yang digunakan sebagai driver motor untuk satu buah motor.
R15 POT
D19
Q4
Gambar 5. Skematik Sensor Garis V. Minimum system Mikrokontroler tipe ATMega 8535 digunakan sebagai kontroler yang menggerakan robot, agar kontroler dapat diprogram dan bekerja sesuai rencana maka diperlukan sebuah sistem pendukung (Minimum Sistem) mikrokontroler tersebut. Seperti yang terlihat pada pada gambar 9 minimum system hanya terdiri dari sebuah crystal oscillator sebagai sumber clock prosesor dan sebuah system reset. Power supply menggunakan baterai 12 VDC 7A untuk keseluruhan sistem termasuk motor, sedangkan untuk system kontroler digunakan regulator yang menghasilkan tegangan 5V seperti terlihat pada gambar 6.
SW4
U4 LM7805 Q3
D25
IN4148
10K
D313
1 2
1 IN4002
VIN
C5 3300uF/25V
DC IN 21V
Gambar 3. Skematik Driver Motor IV. Rangkaian sensor Untuk dapat mendeteksi garis lapangan, digunakan pasangan sensor photo diode sebagai receiver dan LED merah sebagai transmitter, sensor ini bekerja berdasarkan cahaya LED yang diterima oleh Photo diode yang dipantulkan oleh garis lapangan berwarna putih, sehingga akan ada sinyal yang dihasilkan oleh photo diode dan mengaktifkan transistor yang mengakibatkan tegangan kolektor jatuh, dua buah gerbang Schmitt Trigger Inverter dipasang secara seri dan dihubungkan pada kolektor transistor untuk meredam noise dan mengondisikan agar menghasilkan out put rendah (“0”) saat sensor mendapat pantulan. Kedua sensor ini dipasang secara berdampingan dan ditempatkan dekat dengan garis lapangan, banyaknya sensor yang digunakan adalah enam pasang sensor. Gambar skematik sensor dan pengondisi sinyal dapat dilihat pada gambar Gambar 4 dan 5.
VOUT 2
R1
GND
D23 Direction
3
5V R3 220
D24 LED
Gambar 6. Skematik Power Supply VI. Algoritma Algoritma pemrograman untuk penghasil PWM dari sebuah mikrokontroler dengan arsistekture pemrograman menggunakan time triggered, sebagai berikut:
Gambar 4. Sensor Garis
Gambar 7. Algoritma PWM (pulse wide modulation)
SEMINAR NASIONAL ELECTRICAL, INFORMATICS, AND IT’S EDUCATIONS 2009
Sedangkan untuk pengaturan gerak line following menggunakan algoritma absolute maping. Gambar 8 menunjukan ilustrasi dari kemungkinankemungkinan dari sensor garis yang terjadi pada saat robot melakukan line follower:
Posisi yang
A2-87
penghitungan simpangan bertambah, berikut adalah ilustrasi sensor garis ketika berada di simpangan:
Gambar 9. Sensor garis ketika mendeteksi simpangan dan memulai menghitung simpangan ketika sudah keluar dari simpangan Sedangkan untuk settingan belok kiri dan belok kanan berdasarkan kondisi sensor dari robot pada saat berbelok kiri maupun kanan sehingga sensor robot dapat tepat berada pada posisi tengah, berikut ini ilustrasi secara rancangan untuk belok kiri dan kanan:
Gambar 8. Kemungkinan-kemungkinan posisi sensor garis Untuk sensor garis yang digunakan menggunakan aktif low, yaitu kondisi aktif ketika sensor memberi logika low (0) ke mikrokontroler. Dengan demikian kondisi normal sensor ketika tidak terkena garis adalah logika high (1) semua. Berikut ini tabel kondisi sensor garis dengan 8 bit data pada mikrokontroler dan aksi dari motor roda kiri dan roda kanan untuk mendapatkan posisi sensor seperti yang diharapkan: Tabel 1. kondisi sensor garis dan PWM yang dihasilkan
Gambar 10. Syarat awal robot untuk belok kiri dan belok kanan
Gambar 11. Posisi sensor garis ketika robot berbelok ke kiri dan berbelok ke kanan Dari semua bagian fungsi dari program robot secara bagian tersebut, maka selanjutnya adalah menggabungkan semua bagian itu dalam satu program utama yang meiliki fungsi sebagai program secara keseluruhan tugas robot untuk mencapai tugas yang diberikan pada sebuah robot sesuai dengan yang diharapkan dari deskripsi kerja robot. Algoritma yang digunakan dalam robot ini untuk mencapai tugasnya adalah menggunakan metoda Finite State Machine (FSM) yaitu algoritma untuk mengatur pergerakan robot berdasarkan perubahan-perubahan keadaan yang dialami oleh robot pada saat melakukan tugasnya. Setiap perubahan dari gerak robot didasarkan pada perubahan yang terjadi berdasarkan sensor garis pendeteksi simpangan yang mengakibatkan perubahan state (keadaan). Sebagai gambaran konsep algoritma dari metoda finite state machine dalam perancangan robot otomatis ini penulis gambarkan dalam bentuk skema FSM robot otomatis ini: Untuk posisi sensor garis ketika mendeteksi adanya simpangan dan proses perhitungan garis sampai sensor sudah keluar dari simpangan, baru
SEMINAR NASIONAL ELECTRICAL, INFORMATICS, AND IT’S EDUCATIONS 2009
Gambar 12. Skema metoda Finite State Machine (FSM) pada robot otomatis VII. Kesimpulan Berdasarkan kajian teori, perancangan serta pengujian alat penulis dapat menyimpulkan sebagai berikut: 1. Hardware kontroler secara garis besar terbagi atas sensor, system minimum, dan driver motor yang secara keseluruhan bekerja sekuensial sehingga jika salah satu fungsi terganggu, maka fungsi control akan terhenti yang dapat menyebabkan robot mati atau tidak terkendali. 2. Sinyal yang dihasilkan sensor masih mengandung banyak noise sehingga pengguanaan pengondisi sinyal cukup efektif untuk meredam noise dan mengatur tingkat sensitifitas sensor. 3. Penggunaan TIP3055 sebagai penggerak motor berbasis PWM menyebabkan terjadinya switching, tetapi karena kualitas respon yang kurang baik dari transistor serta adanya tegangan GGL balik motor menyebabkan tegangan cut off tidak langsung nol tetapi masih ada sisa yang menyebakan penambahan tegangan rata-rata, sehingga tegangan yang dihasilkan memiliki perbedaan yang cukup mencolok antara hasil ukur dengan perencanaan, tetapi hal tersebut dapat diatasi dengan melakukan manipulasi program sehingga robot masih dapat dikendalikan. 4. Algoritma dan program untuk robot otomatis terdiri dari dua jenis kontrolir, yaitu Low level control robot dan High level control robot. Open loop control pada sistem pencapit, absolute maping dalam mengikuti garis untuk low level controI-nya dan metoda Finite State Machine (FSM) dalam melakukan aksi robot sesuai dengan tugasnya untuk high level Kontrol-nya. 5. Penggunaan algoritma FSM (Finite sate machine) dalam pembuatan program High Level Control pada robot otomatis dapat dibuat dengan mudah, tetapi tidak dapat digunakan untuk arena yang berbeda-beda.
A2-88
DAFTAR PUSTAKA 1. Bejo, A. (2008). C dan AVR Rahasia Kemudahan Bahasa C dalam Mikrokontroler ATMEGA8535. Yogyakarta: Graha Ilmu. 2. Budiyanto, A. (2003). Pengantar Algoritma dan Pemrograman. Ilmu komputer.com 3. Hendrian, A. (2006). Getting starter Code Vision 1.25.3 and AVRStudio version 4.13 (4b528). Surabaya:Electronics Department EEPIS-ITS Embedded Research Group 4. Killian. (2005). Modern Control Technology:Component and Systems. 5. MCComb, G. (1987). Robot Builder’s Bonanza 99 Inexpensive Robotics Projects. NewYork: McGrawHill. 6. Pitowarno, E. (2006). Robotika: Desain, Kontrol, dan Kecerdasan Buatan. Yogyakarta: Penerbit Andi 7. R. BaII , S. (2002). Embedded Microprocessor Systems Real World Design. USA: Newnes. 8. Raharjo.b., Joni, I. (2006). Pemrograman C dan implementasinya. Bandung: Informatika. 9. Santoso A. (2007). Seminar Programming For Robotic Purpose. Bandung: ITB. 10. Sigit R. (2007). Modul Teknik-teknik Penyesuaian sensor. Surabaya: Politeknik Negri Surabaya. 11. W. Panjataitan, W. (2007). Dasar-dasar Komputasi Cerdas.Yogyakarta: Andi Offset.