PERANCANGAN SISTEM GERAK DAN SISTEM NAVIGASI PADA ROBOT HEXAPOD BERBASIS ARDUINO MEGA1280
Naskah Publikasi
diajukan oleh Frian Hady Permana 08.11.2406
kepada SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER AMIKOM YOGYAKARTA 2012
DESIGNING OF MOTION SYSTEM AND NAVIGATION SYSTEM IN HEXAPOD ROBOT BASE ON ARDUINO MEGA1280
PERANCANGAN SISTEM GERAK DAN SISTEM NAVIGASI PADA ROBOT HEXAPOD BERBASIS ARDUINO MEGA1280
Frian Hady Permana Jurusan Teknik Informatika STMIK AMIKOM YOGYAKARTA
ABSTRACT Hexapod Robot is a robot that has six legs as a means of motion. Hexapod robot have a lot of flexibility in moving. The design concept of the hexapod robot has adapted the insect nervous system. In the design of hexapod robots, motion systems and navigation systems become a very important part especially for create an autonomous robot. System requirements can be fulfilled by using one technology such as the Arduino. Arduino is a microcontroller single board that open source, so it is easy to learn especially to design and build robotic systems. Arduino will be integrated with the robot sensors and actuators which will work together to achieve a function of autonomous robot that can move and navigate in search of a particular area. Keyword: Hexapod robot, autonomous robot, arduino
1.
Pendahuluan Perkembangan teknologi informasi mengalami perkembangan pesat dari
masa ke masa yang terlihat dari invoasi yang dihasilkan dan terjadinya interaksi sosial
antara
teknologi
tersebut
dengan
kehidupan
masyarakat
yang
menyebabkan teknologi menjadi salah satu bagian dari kehidupan masyarakat. Munculnya teknologi merupakan salah satu tuntutan dan kebutuhan dari manusia yang menginginkan kemudahan dalam kehidupannya. Perkembangan teknologi mengalami banyak evolusi baik dari teknologi komunikasi, transfortasi, komputerisasi, otomasi, sistem informasi dan robotika. Revolusi industri di Negara maju menjadi salah satu embrio yang melahirkan teknologi yang terus menerus mengalami evolusi dan perkembangan. Hal ini disebabkan oleh kompetisi untuk menciptakan teknologi yang memiliki pengaruh besar bagi kehidupan manusia. Dengan adanya kompetisi ini melahirkan ide-ide kreatif dan mengubah pola pikir manusia untuk lebih berkembang dalam menciptakan teknologi seperti teknologi robotika. Pada awalnya robot dioperasikan sebagai salah satu alat yang membantu dalam industri tapi dewasa ini robot sudah bukan hal baru bagi manusia dimana semua aspek kehidupan membutuhkan peran aktif dari teknologi robot tersebut. Para praktisi dan peneliti mengembangkan teknologi robot ini bertujuan untuk membantu manusia karena robot pada dasarnya merupakan sebuah alat yang terbentuk dari kinerja mekanis, elektronis dan logika pemrograman yang dapat membut robot bekerja sesuai dengan kebutuhan. Bentuk dan konsep perancangan dari suatu robot dipengaruhi oleh fungsi kerja dan tujuan dari robot tersebut, sehingga tidak semua robot memiliki mobilitas untuk bergerak dari satu area ke area lain dan ada robot yang khusus dirancang untuk dunia industri sehingga hanya diam dan bekerja secara otomatis. Pemerintah Indonesia sendiri mengadakan kompetisi robot di kalangan mahasiswa dan pelajar yang bertujuan untuk pengembanan ide-ide kreatif dan peningkatan kualitas sumber daya manusia sehingga menghasilkan inovasi baru dalam dunia teknologi robotika tersebut. Indonesia meruapakan salah satu Negara yang memiliki dukungan besar dalam dunia robotika, terbukti dengan diadakannya berbagai kompetisi nasional dibidang robotika seperti Kontes Robot
Indonesia, Kontes Robot Cerdas Indonesia, Kontes Robot Seni Indonesia. Tujuan dari kompetisi itu tidak lain untuk meningkatkan kualitas sumber daya manusia khususnya dalam bidang IPTEK dan robotika. Kontes Robot Cerdas Indonesia atau KRCI merupakan bentuk kompetisi yang mengedepankan perlombaan robot cerdas otomatis dalam menjalankan tugas tertentu, dan terdapat beberapa divisi perlombaan yaitu divisi beroda, divisi berkaki, dan divisi humanoid. Untuk perlombaan pada divisi beroda dan berkaki mengadopsi peraturan dari kontes robot luar negeri yaitu Fire - Fighting Robot Contest yang diadakan di Trinity College, Hartford, Connecticut, AS. Didalam peraturan kontes robot pemadam api (Fire – Fighting Robot Contest), robot harus memiliki kemampuan untuk menemukan dan memadamkan api di area lomba yang sudah ditentukan. Tujuan dari perlombaan ini adalah sebagai simulasi sebuah robot dalam usaha untuk memadamkan api di lokasi kebakaran. Kemampuan bergerak dan bernavigasi merupakan modal yang harus dimiliki robot untuk dapat menjalankan tugasnya tersebut. Banyak permasalahan yang dihadapi para peserta kontes khususnya untuk KRCI devisi berkaki, permasalahan dalam kemampuan robot untuk bergerak dan bernavigasi yang menyebabkan robot tidak dapat menelusuri semua ruangan yang ada pada area yang telah disediakan. Melihat latar belakang tersebut, penulis melakukan riset dan membuat tulisan ilmiah ini dengan judul “Perancangan Sistem Gerak Dan Sistem Navigasi Pada Robot Hexapod Berbasis Arduino Mega1280”. Dengan adanya penelitian ini diharapkan dapat membantu masyarakat dalam memahami dasar-dasar dalam perancangan sistem gerak dan sistem navigasi pada sebuah robot cerdas berkaki sehingga dapat memberikan kontribusi positif dalam dunia robotika Indonesia.
2.
Landasan Teori
2.1.
Mikrokontroler ATmega1280 Mikrokontroler yang merupakan salah satu teknologi semi konduktor
merupakan sebuah kombinasi dari sebuah CPU, memori dan I/O yang terintegasi dalam bentuk sebuah IC atau dapat disebut dengan Single Chip. AT MEGA1280 merupakan salah satu mikrokontroller yang memiliki port yang lebih banyak daripada seri ATMEL versi sebelumya, (seperti ATmega16, ATmega32, ATmega8535). Sehingga dalam penanganan kontrol yang memerlukan I/O yang banyak, membuat komponen menjadi lebih hemat baik dari segi sisi biaya dan desain hardware yang dibutuhkan.
Gambar 2.5. Bentuk fisik mikrokontroler ATMEGA1280 Fitur yang dimiliki ATmega1280 1. Memiliki internal EPROM, sehingga tidak perlu lagi memakai baterai untuk mem-backup isi RAM. 2. Memiliki 8 channel ADC 10 bit. 3. Ram internal 4kb (bandingkan 8535 yang hanya 2Kbyte). 4. 4KB EEPROM untuk program. 5. Internal watch dog. Nah ini penting, sehingga bisa mencegah sistem hang. 6. Real Time Counter with Separate Oscillator. 7. Brown-out detector, juga mencegah hang. 8. In-system programming, tidak perlu programmer khusus. 9. 6 PWM Saluran dengan Programmable Resolusi 2-16 Bits. 10. 8-channel, 10-bit ADC :
a) 8 Single-ended Channels b) 7 Differential Channels in TQFP Package Only c) 2 Differential Channels with Programmable Gain at 1x, 10x, or 200x 11. Byte-oriented Two-wire Serial Interface 12. Programmable Serial USART 13. Master/Slave SPI Serial Interface 14. Programmable Watchdog Timer with Separate On-chip Oscillator 15. Internal kalibrasi RC Oscillator
2.2.
Motor Servo Motor servo adalah motor yang mampu bekerja dua arah yaitu searah
jarum jam (clockwise) dan berlawanan jarum jam (counterclockwise) dimana arah dan sudut pergerakan rotornya dapat dikendalikan hanya dengan memberikan pengaturan duty cycle sinyal PWM pada bagian pin kontrolnya.
Gambar 2.3. Bentuk Fisik Hitec Servo HS-645MG Motor servo pada umumnya terdiri dari dua jenis yaitu servo continuous dan servo standar. Servo continuous dapat berputar sebesar 360 derajat, sedangkan motor servo tipe standar hanya mampu berputar 180 derajat. Motor Servo harus memiliki kemampuan yang baik ketika dihadapkan dalam mengatasi perubahan yang sangat cepat baik dalam hal posisi, kecepatan dan akselerasi. Putaran motor tidak tergantung pada besarnya suplai tegangan ke motor, akan tetapi seberapa besar sinyal inputan (PWM) yang diberikan. Untuk lebih jelasnya perhatikan gambar dibawah ini.
90o
0o
180o
Sinyal inputan PWM Arah piringan servo
Gambar 2.4. Prisip kerja Motor Servo
2.3.
Prinsip Kerja Sensor Ultrasonik pada Navigasi Robot Pengukuran jarak dengan gelombang ultrasonik umumnya menggunakan
metoda waktu tempuh (Time Of Flight), yaitu selang waktu yang dibutuhkan sejak gelombang ditransmisikan atau dipancarkan oleh transduser pemancar (Tx) sampai gelombang tersebut diterima kembali oleh transduser penerima (Rx) setelah dipantulkan oleh objek pemantul. Dengan mengetahui selang waktu tersebut maka jarak antara transduser dengan objek dapat ditentukan.
Gambar 2.14. Prinsip Pengukuran Jarak Dengan Metoda Time Of Flight
2.4.
Konsep Komunikasi I2C pada Mikrokontroler I2C (Inter-Integrated Circuit) bus adalah sebuah standar protocol
komunikasi yang efektif digunakan untuk menghubungkan perangkat periferal dalam skala kecil pada embedded system. I2C menggunakan dua kabel untuk menghubungkan beberapa perangkat di sebuah bus multi-drop. Bus adalah dua arah, kecepatan rendah, dan sinkron
pada clock yang saman. Beberapa produsen, seperti Microchip, Philips, Intel, dan lain-lain menghasilkan mikrokontroler kecil dengan I2C built in. Data rate pada I2C lebih lambat dari SPI yaitu 100 kbps dalam mode standar, dan 400 kbps dalam mode cepat.1 Dua kabel digunakan untuk menghubungkan dengan I2C adalah SDA (serial data) dan SCL (serial clock). Mereka terhubung ke suplai positif melalui resistor pull-up dan karena itu tetap High jika tidak digunakan. Perangkat yang menggunakan bus I2C untuk berkomunikasi mengendalikan keadaan Low atau membuat menjadi High. Setiap perangkat terhubung ke bus I2C memiliki alamat unik dan dapat beroperasi baik sebagai pemancar (master bus), penerima (slave bus), atau keduanya.
1
Catsoulis J., Designing Embedded Hardware, (USA: O’Reilly Media Inc, 2006), hlm. 174
3.
Perancangan sistem Pada bagian software akan dirancang sebuah aplikasi tertanam yang
dibangun dengan Arduino IDE sehingga dapat melakukan penanaman kecerdasan pada robot untuk dapat bergerak dan bernavigasi.
Gambar 3.1. Diagram Blok Sistem Robot 3.1.
Flowchart Navigasi Robot Karena robot hexapod akan beroperasi di dalam suatu labirin maka robot
ini harus mempunyai kemampuan untuk berjalan menyusuri dinding. Untuk mendukung hal tersebut maka robot dilengkapi dengan lima buah sensor yang saling bekerjasama yang menjadi inputan bagi robot. Nilai jarak dari hasil pembacaan sensor ping akan direferensikan dalam gerakan kaki-kaki robot. Algoritma wall follower (telusur dinding) merupakan algoritma yang akan menentukan efesiensi penelusuran robot. Untuk robot hexapod ini dirancang untuk dapat menelusuri dinding kanan karena dilihat dari efisiensi pada bentuk lapangan yang mengacu pada lapangan KRCI Nasional.
Mulai
Inisialisasi Sub Sistem
Standby Mode
Inputan Sound Sensor
Tidak
Ya
Baca Sensor Ultrasonik
Jarak Depan > 20
Ya
Maju
Tidak
Jarak Depan > 20 Jarak Kiri > Jarak Kanan
Ya
Maju
Tidak
Jarak Kanan > Jarak Kiri
Ya
Kanan
Tidak
Jarak Depan < 20 Jarak Kiri > Jarak Kanan
Ya
Kiri
Tidak
Tidak Maju
Jarak Depan < 20 Jarak Sudut Kiri < 20 Jarak Sudut Kanan <20
Ya
Gambar 3.2. Flowcart Navigasi Robot
Mundur, Kiri
4.
Pembahasan
4.1
Bagian Mekanik Untuk bagian badan secara keseluruhan menggunakan dengan ketebalan 3
mm sedangkan untuk bagian kaki dan lengan menggunakan akrilik dengan ketebalan 5 mm.
Gambar 4.1 Bentuk Badan Robot Dari Atas
Gambar 4.2 Bentuk Lengan Atas
Gambar 4.3 Bentuk Lengan Tengah
Gambar 4.4. Bentuk Kaki
Gambar 4.5. Bagian Sensor Ultrasonik 4.2
Pengendalian Pergerakan Motor Servo Dalam membuat gerakan pada robot ada beberapa hal yang harus
diperhatikan yaitu karakteristik dari pergerakan sudut di setiap bagian kaki dimana tiap bagian kaki memiliki karakteristik pergerakan sudut yang berbeda, untuk lebih jelasnya perhatikanlah gambar dibawah ini. (axis L1)
o
180
0
o
(axis L1)
(axisL3) (axis L2)
0
o
180 (axis L2)
(axis R3) (axis R2)
180
o
0
o
(axis L3)
o
o
180
o
0
0
180
(axis R1)
o
0
o
180
(axis R1) (axis R2)
o
o
(axis R3)
Gambar 4.6. Sudut dan Poros Pada Semua Kaki Robot
4.3
Pemrograman
4.3.1
Pemrograman Motor Servo Arduino IDE menyediakan library yang sangat membantu dalam melakukan
penanaman perangkat lunak pada robot hexapod. #include <Servo.h> Servo.h merupakan library untuk servo kontroler sehingga servo sebanyak 18 buah dapat dikontrol melalui mikrokontroler. 4.3.2
Pemrograman Sensor Ultrasonik Sensor ultrasonik berperan penting dalam sistem navigasi robot yaitu
sebagai subsistem yang akan menghitung jarak robot dengan dinding. Mikrokontroler mengirimkan pulsa (trigger pulse) minimal sebesar 2 μS. Perintah ini dikirim menggunakan instruksi pinMode(pingPin, INPUT); duration = pulseIn(pingPin, HIGH); Setelah pengiriman pulsa HIGH maka sensor ultrasonik akan menerima gema (echo) yang dipantulkan menuju objek dan nantinya akan di konversi ke nilai jarak inci dan centimeter. inches = microsecondsToInches(duration); cm = microsecondsToCentimeters(duration); 4.3.3
Pemrograman Komunikasi I2C Melakukan setup terhadap komunikasi I2C dengan menambahkan library
wire pada kedua program yang tertanam didalam arduino master dan arduino slave. #include <Wire.h> Pada void setup arduino slave dan arduino master harus saling berkomunikasi dimana akan terjadi proses send dan request antara kedua arduino. Master akan bekerja untuk membaca data yang dikirim dari slave yang akan diproses didalam loop.
Wire.requestFrom(2, 6); while(Wire.available()){ char c = Wire.receive(); Serial.print(c); } delay(500); wire.requestFrom merupakan sebuah aksi yang dilakukan oleh arduino master untuk meminta pengiriman data dari arduino slave melalui address 2. void setup() { Wire.begin(2); Wire.onRequest(requestEvent); }
5.
PENUTUP
5.1.
Kesimpulan Dari rangkaian proses analisis masalah, perancangan, pembuatan dan
pengujian robot hexapod yang telah dilakukan, dalam penyusunan penelitian ini dapat ditarik beberapa kesimpulan penting yang berkaitan dengan perancangan robot hexapod antara lain: 1. Penggunaan dua buah Arduino Mega1280 sebagai mikrokontroler pada robot hexapod berjalan sesuai perancangan dimana arduino master menjalankan tugasnya dengan maksimal dalam mengontrol pergerakan 18 buah motor servo. Sedangkan arduino slave mengontrol inputan dari sensor ultrasonik. Komunikasi I2C antara kedua arduino ini berjalan dengan lancar tanpa mengalami kendala. 2. Penggunaan motor servo dengan torsi 9 kilo sebagai aktuator robot yang terpasang pada mekanik robot bekerja dengan baik. Lengan tengah dan lengan bawah menggunakan akrilik dengan ketebalan 5mm sehingga kuat
untuk
menopang
badan
robot.
Tingkat
kepresisian
pada
pemasangan motor servo sangat mempengaruhi sudut dari pergerakan tiap kaki khususnya pada proses kalibrasi sudut sehingga nilai dari sudut tidak langsung bisa di generate pada nilai tertentu. 3. Penggunaan sensor ultrasonik sebagai sub sistem navigasi yang mengukur jarak antara robot dengan dinding sudah cukup baik akan tetapi terdapat beberapa masalah yang berkaitan dengan efektifitas penggunaan jumlah sensor. Sudut tembak dari sensor ultrasonik sudah berjalan baik khususnya sensor yang berada pada bagian depan, kanan, dan kiri. Pada proses ujicoba menggunakan lima buah sensor pada robot mengalami banyak error yang terjadi akibat tabrakan sinyal antara sensor satu dengan sensor yang lain.
5.2.
Saran Dalam perancangan dan pembuatan sistem gerak dan navigasi pada robot
hexapod penulis memberi saran-saran pengembangan lebih lanjut untuk mencapai sistem yang lebih sempurna: 1. Untuk menyempurnakan konstruksi mekanik robot khususnya masalah tingkat kepresisian dalam integrasi aktuator dengan mekanik robot yaitu dengan menggunakan pengerjaan mekanik robot yang dilakukan dengan mesin yang memiliki tingkat kepresisian tinggi seperti mesin laser. Dengan memiliki tingkat presisi yang tinggi maka proses kalibrasi pada motor servo akan lebih mudah khususnya pada proses perancangan sistem gerak. 2. Dibutuhkannya sebuah algoritma problem solving khususnya ketika salah satu sensor mengalami permasalahan atau bahkan lebih dari satu buah sensor tidak dapat bekerja. Hal ini tentunya menjadi bagian yang sangat mendasar mengingat fungsi dari sensor ultrasonik sebagai bagian yang menjadi inputan untuk dapat menghasilkan sebuah navigasi pada robot. 3. Dibutuhkannya pengembangan pada algoritma wall follower robot dimana masih sering terjadinya error pada saat robot melakukan navigasi. Adapun
pengembangan
yang
dapat
dilakukan
adalah
dengan
menambahkan algoritma PID khususnya untuk mendapatkan tingka presisi yang tinggi dari navigasi robot. Penulis sangat bahagia dengan senang hati ketika pembaca memberikan sumbangan ilmu berupa kritik dan saran, karena penulis sadar keterbatasan kemampuan sehingga diharapkan masukkan yang membangun agar robot hexapod ini dapat berkembang jauh lebih baik.
DAFTAR PUSTAKA
Anonim, 2011. Arduino Mega (http://www.arduino.cc/en/Main/ArduinoBoardMega, diakses 4 Mei 2012) Anonim, 2012. Ping Ultrasonic Range Finder Tutorial (http://www.arduino.cc/en/Tutorial/Ping, diakses 4 Mei 2012) Anonim, 2012. ATmega640/1280/1281/2560/2561 Datasheet (www.atmel.com/Images/doc2549.pdf, diakses 22 Mei 2012) Anonim, 2012. Servo Library and Tutorial (http://www.arduino.cc/playground/ComponentLib/Servo, diakses 4 Mei 2012) Anonim, 2012, PING )))™ Ultrasonic Distance Sensor (#28015) (http://www.parallax.com/dl/docs/prod/acc/28015-PING-v1.3.pdf, diakses 22 Mei 2012) Anonim, 2012. PID (http://id.wikipedia.org/wiki/PID, diakses 25 Mei 2012) Pitowarno E., 2006 “Desain, Kontrol, dan Kecerdasan Buatan” , Penerbit C.V Andi Offset, Yogyakarta Catsoulis J., 2006 “Designing Embedded Hardware”, Penerbit O’Reilly Media Inc, USA Budiarto. Widodo, S.Si, M.Kom, 2004 “interfacing Komputer dan Mikrokontoler”, Penerbit Elex Media Komputindo Iswanto, 2008 “Desain dan Implementasi Desain Embeded Mikrokontroler ATMega8535 dengan Bahasa Basic”, Penerbit Gava Media, Yogyakarta Suyadi Taufiq Dwi Septian, 2008 “Build Your Own Line Follower Robot”, Penerbit Andi, Yogyakarta Wasito, 2006 “Vademekum Elektronika Edisi Kedua”, Penerbit PT Gramedia Pustaka Utama, Jakarta