C3 Seminar Nasional Teknologi Informasi 2016 RANCANG BANGUN LENGAN ROBOT PENGIKUT PERGERAKAN LENGAN DAN JARI MANUSIA MENGGUNAKAN FLEX SENSOR Fadhli Dzil Ikram1), Ratna Aisuwarya,2), Moh Hafiz Hersyah,3) 1) 2,3) Mahasiswa Sistem Komputer Fakultas Teknologi Informasi Universitas Andalas Dosen Jurusan Sistem Komputer Fakultas Teknologi Informasi Universitas Andalas Jalan Kampus Limau Manis Padang, Sumatera Barat 25162 Email : [email protected] robot. Penelitian sebelumnya lengan robot berbasis mikrokontroler dengan memanfaatkan flex sensor. Perancangan ini difokuskan pada pergerakan lengan dengan menggunakan 3 buah motor servo dan 3 buah flex sensor yang terpasang pada lengan dan sarung tangan[1] ABSTRACT The research about robotic arm is one of technology developments in robotics area, where the aim of using this robot is to increase work efficiency and to decrease work accident risk, especially for high risk occupation. Robotic arm in this research consists of flex sensor, Mega250 arduino, servo motor. Seven flex sensors are installed on humn arm. First one is on elbow, which is dedicated for moving objects the second is on wrist for lifting and dropping objects, and third to seventh are on fingers (glove) for gripping objects. Flex sensor is used to detect the movements of the arm and every movements causing the change of resistance value in the sensor. Data from felx sensors are sent to and processed by microcontroller and the result is used to control the movement of robotic arm replica. Ten time experiment for flex sensors of each gripping, lifting, and dropping objects resulted success rate of 80%. 2. Landasan Teori 2.1 Robot Kata robot diambil dari kata yang berasal dari kata robota, yang mempunyai arti pekerja. Robot pertama kali dikembangkan oleh Computer Aided ManufacturingInternational (CAM-I), “Robot adalah peralatan yang mampu melakukan fungsi-fungsi yang biasa dilakukan oleh manusia, atau peralatan yang mampu bekerja dengan intelegensi yang mirip dengan manusia”.[2] Definisi kedua, dikembangkan oleh Robotics Institute of America (RIA), perkumpulan pembuat robot yang lebih menitikberatkan terhadap kemampuan nyata yang dimiliki oleh robot terhadap kemiripannya dengan manusia. Key words flex sensor, robotic arm, resistance, Mega2560 arduino, servo motor. 1. Pendahuluan 2.2 Robot Manipulator Saat ini penelitian robotika terus berkembang, penggunaan robot dilakukan untuk meningkatkan efisiensi pekerjaan yang dilakukan manusia dan juga untuk mengurangi resiko kecelakaan kerja pada pekerjaan yang menuntut tingkat resiko yang cukup tinggi. Salah satu penelitian robotika yaitu tentang lengan robot. Lengan robot biasanya berfungsi untuk mengambil suatu benda, kemudian meletakan benda tersebut pada tempat lain yang bisa dilakukan secara otomatis maupun manual dengan mengunakan joystick sesuai kondisi yang diinginkan. Pada pengembangannya robot lengan ini bisa mengikuti gerakan lengan manusia dengan memanfaatkan flex sensor sebagai pendukung kinerja Robot manipulator, seperti gambar.1 adalah sekumpulan hubungan mekanik yang terdiri dari rangkaian kinematic berupa lengan (link). Pada robot industri, manipulator merupakan sebuah rangkaian benda kaku (rigid bodies) terbuka yang terdiri atas sendi (joint) dan terhubung dengan lengan (link) dimana setiap posisi sendi ditentukan dengan variabel tunggal sehingga jumlah sendi sama dengan nilai derajat kebebasan (degree of freedom). Manipulator yang sering dipakai sebagai robot industri pada dasarnya terdiri atas struktur mekanik, penggerak (aktuator), sensor dan sistem kontrol. Dasar (base) manipulator sering disebut kerangka dasar (base frame) dan ujung dari manipulator 16 Seminar Nasional Teknologi Informasi 2016 C3 biasanya dilengkapi dengan end effector yang salah satu jenisnya adalah gripper. Gambar 3 Rangkaian pembagi tegangan Dari rangkaian pembagi tegangan diatas dapat dirumuskan : Gambar. 1 Robot manipulator[3] 2.3 Arduino Mega 2560 Arduino adalah sebuah board mikrokontroler yang berbasis ATMega2560. Arduino memiliki 54 pin input/output yang mana 15 pin dapat digunakan sebagai output PWM, 16 analog input, crystal osilator 16 MHz, koneksi USB, jack power, kepala ICSP, dan tombol reset[4]. Arduino mampu mensupport mikrokontroler; dapat dikoneksikan dengan komputer menggunakan kabel USB. Arduino Mega2560 adalah merupakan sebuah board minimum sistem mikrokontroler yang bersifat open source. Didalam rangkaian board arduino terdapat mikrokontroler AVR seri ATMega 2560 yang merupakan produk dari Atmel. Dimana : Vout = tegangan keluaran R1 = resistor 1 R2 =resisto r2 Vcc = tegangan input 2.5 Motor Servo Motor Servo adalah sebuah motor dengan sistem closed feedback dimana posisi dari motor akan diinformasikan kembali pada rangkaian kontrol yang ada di dalam motor servo. Struktur perangkatnya terdiri dari sebuah motor, rangkaian gigi, potensiometer dan rangkaian kontrol.[6] Potensiometer berfungsi untuk menentukan batas sudut dari putaran yang dihasilkan. Sedangkan sudut dari sumbu motor servo diatur berdasarkan lebar pulsa yang dikirimkan melalui kaki sinyal yang telah disediakan. Motor servo biasanya hanya bergerak mencapai sudut tertentu saja dan tidak bergerak kontinyu seperti motor DC maupun motor stepper. Tetapi motor servo dapat dimodifikasi agar dapat bergerak kontinyu. Pada sebuah robot, motor servo ini sering digunakan untuk bagian kaki, lengan dan bagian lainnya yang bergerak terbatas dan sangat membutuhkan torsi cukup besar. Motor servo bergerak dua arah, yaitu searah jarum jam dan berlawanan arah jarum jam. Arah dan sudut dari pergerakan rotornya dapat dikendalikan dengan memberikan pengaturan sinyal pulseout dari mikrokontroler pada pin bagian sinyal motor servo tersebut. 2.4 Flex Sensor Flex Sensor adalah sensor gerak dengan cara kerja mengeluarkan perubahan resistansi akibat adanya perubahan lekukan pada kontur sensor. Sensor flex yang digunakan berukuran 4,5 inchi memiliki 2 kaki pin, dengan bentuk fisik tipis memanjang dan lentur. Sensor ini mengeluarkan output berupa resistansi. Dua pin kaki sensor tersebut, jika salah satu pin diberikan tegangan +5 volt maka pin yang lainnya sebagai output serta tegangan 0 volt. Prinsip kerja sensor flex ini mirip dengan variabel resistor. Sensor flex akan memberikan resistansi kepada mikrokontroler melalui rangkaian pembagi tegangan[5]. Gambar 2. Flex sensor 2.4 Rangkaian Pembagi Tegangan 2.6 ADC (Analog to Digital Converter) Rangkaian pembagi tegangan, seperti Gbr.3 berfungsi membagi tegangan input menjadi beberapa bagian tegangan output. Rangkaian pembagi tegangan pada dasarnya dapat dibuat dengan 2 buah resistor. ADC adalah proses pengubahan sinyal analog menjadi sinyal digital. Proses pengubahan terjadi pada konverter/pengubah yang dikenal dengan analog to digital converter. Proses pengubahan ini dikenal juga dengan nama sistem akusisi data. Terdapat empat macam ADC yang memenuhi standar industri, yaitu integrating, tracking converter, successive approximation dan flash/paralel. Keempat jenis ADC 17 C3 Seminar Nasional Teknologi Informasi 2016 tersebut mewakili beberapa macam pertimbangan diantaranya resolusi, kecepatan konversi dan biaya. Prinsip kerja ADC banyaknya masukan, terutama yang berasal dari transduser, merupakan isyarat analog yang harus disandikan menjadi informasi digital sebelum masukan itu diproses, dianalisa atau disimpan didalam kalang digital. Pengubah mengambil masukan, mencobanya, dan kemudian memproduksi suatu kata digital bersandi yang sesuai dengan taraf dari isyarat analog yang sedang diperiksa. Keluaran digital bisa berderet (bit demi bit) atau berjajar dengan semua bit yang disandikan disajikan serentak. Dalam sebagian besar pengubah, isyarat harus ditahan mantap selama proses pengubahan. Hasil percobaan sebaiknya ditampilkan dalam berupa grafik atau pun tabel. Untuk grafik dapat mengikuti format untuk diagram dan gambar. Skema rangkaian perancangan lengan robot ini terdiri dari flex sensor, Aduino mega2560, motor servo, power supply. Adapun skema rangkaian terdiri dari Arduino mega2560, flex sensor, dan motor servo. 3. Metodologi Penelitian 3.1 Rancangan Penelitian Berikut adalah rancangan penelitian Gambar 6. Skema perancangan hardware Studi Literatur Pada rangkaian ini, flex sensor berfungsi sebagai pambaca gerakan lengan dan jari. Pada saat lengan dan jari digerakkan, maka nilai dari resistansi flex sensor ini akan berubah. Untuk dapat membaca perubahan resistansi ini pada arduino, maka digunakan rangkaian pembagi tegangan dengan resistor bernilai 10 KΩ. Pada rangkaian ini terdapat 7 buah rangkaian pembagi tegangan yang masing-masing digunakan untukflex sensor 1, flex sensor 2, dan flex sensor 3sampai flex sensor 7. Masing-masing dari keluaran rangkaian pembagi tegangan ini diinputkan ke pin analog A0, A1, dan A2 sampai A6 pada arduino. Nilai resistansi flex sensor yang terbaca akan berubah menjadi nilai tegangan, nilai tegangan(analog) akan menjadi input pada mikrokontroller yang dikonversikan menjadi sinyal digital menjadi sudut perputaran untuk memutar motor servo pada lengan dan jarirobot. Masingmasing servo diberi supply tegangan dari luar Perancangan Perancangan Hardware Perancangan Software Pengujian Pembuatan mekanik lengan robot dan posisi flex sensor Pembuatan coding pada arduino IDE Pengujian nilai hambatan flex s ensor Pengujian sudut putar motor servo End Proses Hasil Penelitian Analisa Laporan dan Dokumentasi Hasil Gambar 4 Rancangan penelitian Pada sarung tangan dan siku dipasangkan flex sensor. Ketika ditekuk, maka flex sensor mengalami perubahan nilai resistansi. Perubahan nilai dari flex sensor akan dikirimkan ke mikrokontroler. Nilai tersebut akan diubah menjadi sinyal digital oleh port ADC pada mikrokontroler. Dalam program, nilai ADC diolah sehingga menghasilkan nilai untuk menggerakkan setiap motor servo pada lengan robot. 3.3 Perancangan Software Pada perancangan software arduino, pertama kali yang dilakukan adalah menentukan pin-pin yang digunakan. Adapun pin-pin yang digunakan pada perancangan sistem kali ini adalah pin analog input A0A6 dan juga 7 buah pin output digital 2-7 untuk mengontrol motor servo. Selanjutnya pembacaan nilai ADC untuk mendapatkan nilai perubahan dari flexsensor dan dikonversi kedalam nilai sudut putar. Nilai dari sudut putar inilah yang nantinya akan di kirimkan ke pin output digital yang akan mengontrol sudut perputaran dari motor servo. 3.2 Perancangan Hardware Power Supply Flex Sensor Arduino Mega 2560 Motor Servo Gambar 5 Rancangan blok diagram 18 Seminar Nasional Teknologi Informasi 2016 C3 pergelangan tangan motor servo dibatasi pergerakannya dari 00sampai 400. Mulai Inisialisasi pin analog dan pin digital mikrokontroller Input nilai perubahan tegangan sensor flex Baca nilai perubahan tegangan sensor flex Ubah nilai tegangan menjadi nilai ADC pada mikrokontroller Konversi nilai ADC menjadi nilai derajat servo (0, 90, 318, 220) (0, 45, 220,160) (0, 90, 240, 180) (0, 90, 210,170) (0, 90, 190, 100) (0, 90, 260,170) (0, 90, 260, 200) Sudut R (multimeter) ADC V Out R(teori) Error % 00 21,32 kΩ 325 1,58 V 21,64 kΩ 1,47 % 100 22.25 kΩ 305 1,49 V 23,55 kΩ 5,52 % 200 24,30 kΩ 296 1,44 V 24,72 kΩ 1,77 % 300 26,27 kΩ 280 1,36 V 26,76 kΩ 1,83 % 400 28,06 kΩ 265 1,29 V 28,75 kΩ 2,4 % 500 30,08 kΩ 255 1,25 V 30,00 kΩ 0,26 % 600 31,30 kΩ 247 1,21 V 31,32 kΩ 0,06 % 700 33,60 kΩ 240 1,17 V 32,73 kΩ 2,65 % 800 35,45 kΩ 228 1,11 V 35,04 kΩ 1,17% 900 36,79 kΩ 220 1,07 V 36,72 kΩ 0,19 % Sedangkan motor servo pada bagian siku dibatasi pergerakannya dari 00 sampai 900 Gerakan Servo 4.2 Pengujian Sensor Selesai Pengujian flex sensor pada Tbl.2 dan Tbl.3 bertujuan untuk melihat perubahan nilai resistansi yang terjadi pada sensor. Masing-masing sensor diuji dengan sudut dari 00 sampai 900 dan sensor sarung tangan (jari) diuji pada saat keadaan membuka dan pada saat telapak tangan mengepal. Gambar 7. Perancangan software 4. Hasil dan Analisa 4.1 Implementasi Sistem Tabel 2. Nilai resistansi keluaran flex sensor 1 dan 2 Sistem ini terdiri dari 3 bagian utama : 1. Flex sensor Letak flex sensor, seperti Tbl.1 masing-masing flex sensor dihubungkan pada pin A0, A1, A2, A3, A4, A5, dan A6. Sensor pertama diletakkan pada siku yang digunakan untuk memindahkan benda. Sensor kedua diletakkan pada pergelangan tangan yang berguna untuk mengangkat dan menurunkan benda. Dan sensor yang diletakkan pada jari (sarung tangan) berguna untuk menggenggam benda. Tabel 1 Konfigurasi sensor Nomor Sensor Letak Sensor Sensor 1 Siku Sensor 2 Pergelangan tangan Sensor 3-7 Jari (Sarung Tangan ) Tabel 3 nilai resistansi keluaran flex sensor 3 sampai 7 2. Lengan robot Lengan robot dibuat seperti lengan manusia, seperti Gbr.11yang terdiri dari 3 bagian utama yaitu bagian gripper jari yang berfungsi sebagai penggenggam benda, bagian pergelangan tangan, dan bagian siku. Masingmasing bagian tersebut digerakkan menggunakan motor servo. Motor servo pada replika lengan robot diatas dirancang bergerak dengan batasan-batasan tertentu yaitu motor servo pada gripper dapat bergerak dari posisi terbuka sampai posisi mengepal. Untuk nilai error rata-rata resistansi adalah 0,52 %. 19 C3 Seminar Nasional Teknologi Informasi 2016 Pengujian flex sensor pada pergelangan tangan diatas nantinya berguna untuk menggerakkan pergelangan pada replika lengan robot. Posisi sudut yang digunakan flex sensor pada pergelangan tangan berdasarkan beberapa kondisi yaitu dengan sudut minimal 00 sampai sudut maksimal 400 sesuai dengan penjelasan pada implementasi replika lengan robot. 4.5 Pengujian Servo pada Siku Secara keseluruhan, hasil pengujian servo pada siku terdiri atas sudut yang diinginkan dengan sudut yang terbaca pada motor servo secara acak pada tabel 7. Tabel 7 Pengujian servo pada siku Sensor 4.2 Pengujian Sensor Flex pada Siku 4 5 6 7 Tabel 4 Pengujian sensor flex pada siku R(multimeter) 38,14 kΩ 40,72 kΩ 42,31 kΩ 44,17 kΩ 45,10 kΩ 46,60 kΩ 48,75 kΩ 50,33 kΩ 52,06 kΩ 54,09 kΩ ADC 214 205 198 192 188 182 175 170 166 160 V Out 1,04 V 1,00 V 0,96 V 0,93 V 0,91 V 0,88 V 0,85 V 0,83 V 0,81 V 0,78 V R(teori) 38,07 kΩ 40,00 kΩ 42,08 kΩ 43,76 kΩ 44,94 kΩ 46,81 kΩ 48,82 kΩ 50,24 kΩ 51,72 kΩ 54,10 kΩ Error % 0,18 % 1,80 % 0,54 % 0,93 % 0,35 % 0,44 % 0,14 % 0,17 % 0,65 % 0,01 % 1 2 3 4 5 6 7 Sudut Diinginkan Sudut Terbaca Nilai error 00 150 300 450 600 750 900 00 130 290 430 570 770 860 0% 13,33 % 3,33 % 4,44 % 5% 2,66 % 4,44 % No 1 2 3 4 5 3 4 5 6 7 Membuka Mengepal Membuka Mengepal Membuka Mengepal Membuka Mengepal Membuka Mengepal ADC 250 180 235 190 225 120 270 180 265 220 Nilai ADC dari sensor 214 205 198 192 188 Sudut Diinginkan Sudut Terbaca Nilai error 00 100 200 300 400 00 80 180 290 390 0% 20 % 10 % 3,33 % 2,5 % Tabel 9 Pengujian servo pada jari Sensor V Out 1,22 0,87 1,14 O,92 1,09 0,58 1,32 0,87 1,29 1,07 30,98 kΩ 47,47 kΩ 33,85 kΩ 44,34 kΩ 35,87 kΩ 76,20 kΩ 27.87 kΩ 47,47 kΩ 28,75 kΩ 36,72 kΩ Pengujian servo pada bagian jari robot terdiri atas sudut yang diinginkan pada jari manusia dengan sudut yang terbaca pada motor servo. Sudut yang dibentuk pada jari manusia diambil dalam range 00saat membuka dan 900 saat mengepal, diilustrasikan pada table 9. 3 4 Tabel 6. Hasil pengujian sensor flex pada jari R (multimeter) 30,28 kΩ 46,76 kΩ 32,35 kΩ 42,83 kΩ 34,38 kΩ 75,54 kΩ 28,30 kΩ 45,10 kΩ 27,55 kΩ 35,11 kΩ 1,22 0,87 1,14 O,92 1,09 0,58 1,32 0,87 1,29 1,07 4.7 Pengujian Servo Pada Jari Posisi sensor flex pada jari berdasarkan kepada dua kondisi yaitu pada saat membuka dan mengepal. Hasil pengujian telihat pada tabel 6. Kondisi R(teori) Tabel 8. Pengujian servo pada pergelangan tangan 4.4 Pengujian Sensor Flex pada Jari Sensor V Out Pengujian servo pada bagian pergelangan tangan terdiri atas sudut yang diinginkan pada pergelangan tangan dengan sudut yang terbaca pada motor servo pada tabel 8. Tabel 5 Pengujian sensor flex pada pergelangan tangan Nilai ADC dari sensor 325 300 280 260 247 234 220 R ADC (multimeter) 30,28 kΩ 250 46,76 kΩ 180 32,35 kΩ 235 42,83 kΩ 190 34,38 kΩ 225 75,54 kΩ 120 28,30 kΩ 270 45,10 kΩ 180 27,55 kΩ 265 35,11 kΩ 220 4.6 Pengujian Servo Pada Pergelangan Tangan 4.3 Pengujian Sensor Flex Pada Pergelangan Tangan No Membuka Mengepal Membuka Mengepal Membuka Mengepal Membuka Mengepal Membuka Mengepal 3 Pengujian servo pada bagian siku terdiri atas sudut yang diinginkan pada siku dengan sudut yang terbaca pada motor servo. Sudut yang dibentuk pada siku manusia diambil acak dalam range 00 sampai 900. Hasil pengujian terlihat pada tabel 4 berikut: Sudut 00 100 200 300 400 500 600 700 800 900 Kondisi 5 R(teori) 6 30,98 kΩ 47,47 kΩ 33,85 kΩ 44,34 kΩ 35,87 kΩ 76,20 kΩ 27.87 kΩ 47,47 kΩ 28,75 kΩ 36,72 kΩ 7 Kondisi ADC Sudut diinginkan Membuka Mengepal Membuka Mengepal Membuka Mengepal Membuka Mengepal Membuka Mengepal 250 180 235 190 225 120 270 180 265 220 00 900 00 900 00 900 00 900 00 900 Sudut terbac a 00 850 00 850 00 880 00 880 00 890 Nilai Error 0% 5,56% 0% 5,56% 0% 2,22% 0% 2,22% 0% 1,11% 4.8 Pengujian Secara Keseluruhan Pengujian sistem secara keseluruhan dilakukan dengan cara menggenggam, mengangkat dan meletkkan 20 Seminar Nasional Teknologi Informasi 2016 C3 benda uji ke tujuan. Benda uji yang beratnya tidak lebih dari 0,5kg diletakkan dalam jangkauan gripper. Pengujian dilakukan sebanyak 10 kali pada table 10. [2] Tabel 10 Pengujian secara keseluruhan [4] [3] Keterangan Percobaan Menggenggam Mengangkat Meletakkan 1 Berhasil Berhasil Berhasil 2 Berhasil Berhasil Berhasil 3 Berhasil Tidak Berhasil 4 Berhasil Tidak Berhasil Berhasil 5 Berhasil Berhasil Berhasil 6 Berhasil Berhasil Tidak Berhasil 7 Berhasil Berhasil Berhasil 8 Berhasil Berhasil Berhasil 9 Berhasil Berhasil Berhasil 10 Berhasil Berhasil Berhasil [5] [6] Berhasil [7] Mohammad Hafiz Hersyah, memperoleh gelar MT dari Institut Teknologi Bandung pada tahun 2013. Saat ini sebagai Staf Pengajar program studi Sistem Komputer Fakultas Teknologi Informasi Universitas Andalas 5. Kesimpulan Berdasarkan pengujian dan analisa yang telah dilakukan, maka dapat disimpulkan beberapa hal : 1. Sensor flex rata-rata perubahan resistansi dan tegangan keluaran masing-masing sensor setiap ditekuk 10 untuk menggerakkan lengan robot adalah 2. 3. 4. 5. 0,178kΩ sensor pertama, 0,166kΩ sensor kedua. Sensor flex pada jari diukur dengan 2 kondisi membuka dan mengepal. Nilai error rata-rata resistansi (multimeter) terhadap resistansi (teori) adalah sensor pergelangan tangan 0,52%, dan sensor siku 1,73%. Nilai resistansi sensor flex tidak tetap atau selalu berubah-ubah sehingga menyebabkan gerakan lengan robot terlalu bergetar. Nilai error rata-rata sudut diinginkan pada pergelangan tangan terhadap sudut yang terbaca pada motor servo pada replika lengan robot adalah pergelangan tangan 7,16%, siku 4,74%. Pada jari robot diukur pada keadaan membuka dan mengepal Tingkat keberhasilan lengan robot dapat menggenggam, mangangkat, dan meletakkan benda uji dalam 10 kali percobaan sebesar 80%. REFERENSI [1] Pitowarnno, Endra, 2006, “Robotika: Desain, Kontrol, dan kecerdasan Buatan”, Andi offset: Yogyakarta. Rusmandi, Dedy, 2001, “Mengenal Komponen Elektronika”, Penerbit Pionir Jaya: Bandung. Kadir, Abdul, 2007, “Panduan Praktis Mempelajari Aplikasi Mikrokontroller dan Pemrogramannya Menggunakan Arduino”, Andi: Yogyakarta. Sparkfun, Flex Sensor 4,5”, https://cdn.sparkfun.com/datasheets/Sensors/For ceFlex/FLEXSENSORREVA1.pdf. Diakses tanggal 9 Februari 2015, jam 22.00 WIB. Purnama Agus, 2012, Motor Servo, http://elektronikadasar.web.id/teorielektronika/ motorservo/. Diakses tanggal 9 Februari 2015, jam 22.00 WIB. Veronica, Maria dan Dwi Widya Utari, 2014, “Rancang Bangun Jari Tangan Robot Pengikut Pergerakan Jari Tangan Manusia”, Skripsi S-1 “tidak diterbitkan” STMIK GI MDP. Wisesa, Arya., 2014, “Rancang Bangun Lengan Robot Pengikut Pergerakan Lengan Manusia Menggunakan Flex Sensor”, Skripsi S-1 “tidak diterbitkan” Sitem Komputer Universitas Andalas. 21