PERANCANGAN SISTEM GERAK DAN SISTEM NAVIGASI...
Transcript of PERANCANGAN SISTEM GERAK DAN SISTEM NAVIGASI...
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.
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
Arah piringanservo
Sinyal inputan
PWM
0o 180o
90o
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.
1Catsoulis 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.
Gambar 3.2. Flowcart Navigasi Robot
Mulai
Inisialisasi
Sub Sistem
Standby Mode
Inputan
Sound Sensor
Baca Sensor Ultrasonik
Jarak Depan > 20 Maju
Jarak Depan > 20
Jarak Kiri > Jarak KananMaju
Jarak Kanan > Jarak Kiri Kanan
Jarak Depan < 20
Jarak Kiri > Jarak KananKiri
Jarak Depan < 20
Jarak Sudut Kiri < 20
Jarak Sudut Kanan <20
Mundur, KiriMaju
Ya
Tidak
Ya
Ya
Ya
Ya
Ya
Tidak
Tidak
Tidak
Tidak
Tidak
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.
Gambar 4.6. Sudut dan Poros Pada Semua Kaki Robot
(axis L1) (axis L2)
(axisL3)
0
180o
o
180o
0o
0
180o
o
(axis L1) (axis L2) (axis L3)
(axis R1)(axis R2)
(axis R3)
180o
0o
180o
0o
180o
0o
(axis R1) (axis R2) (axis R3)
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