PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI TUGAS AKHIR
LENGAN ROBOT PENIRU GERAKAN TANGAN MANUSIA
Disusun oleh : ALFIAN ANTA KUSUMA NIM : 125114037
PROGRAM STUDI TEKNIK ELEKTRO JURUSAN TEKNIK ELEKTRO FAKULTAS SAINS DAN TEKNOLOGI UNIVERSITAS SANATA DHARMA YOGYAKARTA 2015
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI FINAL PROJECT
HUMAN HAND MOVEMENTS IMITATOR ARM ROBOT
ALFIAN ANTA KUSUMA NIM : 125114037
ELECTRICAL ENGINEERING STUDY PROGRAM ELECTRICAL ENGINEERING DEPARTMENT FACULTY OF SCIENCE AND TECHNOLOGY SANATA DHARMA UNIVERSITY YOGYAKARTA 2015
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
iii
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
iv
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
v
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
HALAMAN PERSEMBAHAN DAN MOTTO HIDUP MOTTO
“ LAKUKAN YANG TERBAIK SAMPAI PADA BATASNYA DAN BERUSAHA DENGAN KERAS UNTUK MERAIHNYA ”
Dengan ini kupersembahkan karyaku ini untuk..... Tuhan Yesus Kristus Pembimbingku yang setia, Keluargaku tercinta, Teman-temanku seperjuangan, Dan semua orang yang mengasihiku Terima Kasih untuk semuanya.......
vi
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
vii
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
INTISARI Perkembangan teknologi saat ini sangat pesat salah satunya teknologi robotika. Saat ini robot memiliki peran yang sangat penting bagi kehidupan manusia, mulai dari bidang kesehatan, kedokteran, pertanian, bahkan sampai bidang teknologi manufaktur. Robot-robot yang diciptakan saat ini memiliki kegunaan untuk membantu kerja manusia hingga dapat meringankan pekerjaan manusia. Berdasarkan permasalahan tersebut maka memunculkan keinginan untuk menciptakan sebuah robot. Robot tersebut dibuat dengan konsep yang menyerupai lengan manusia. Lengan robot tersebut dapat bergerak mengikuti gerakan tangan manusia. Lengan robot tersebut dapat digerakkan menuju 3 sumbu yaitu, X, Y, dan Z. Lengan robot tersebut menggunakan motor servo sebagai penggeraknya dan dibantu dengan servo controller sebagai driver motor. Lengan robot tersebut dikendalikan menggunakan mikrokontroler sebagai pengendali utama. Menggunakan flex sensor sebagai pendeteksi gerakan lengan manusia. Flex sensor memiliki output berupa resistansi dan dengan menggunakan rangkaian pembagi tegangan untuk menghasilkan tegangan antara 0 – 5 volt. Flex sensor dipasang pada lengan manusia melengkung sesuai dengan gerakan lengan manusia maka output dari sensor dibaca oleh mikrokontroler 1 dan diolah sebagai data sensor. Data sensor tersebut dikomunikasikan dengan mikrokontroler 2 dengan komunikasi serial. Mikrokontroler 2 digunakan sebagai pengendali gerakan lengan robot dengan driver servo controller. Mikrokontroler 2 dengan servo controller berkomunikasi dengan I2C. Servo controller tersebut mengeluarkan pulsa untuk menggerakkan motor servo. Penelitian yang telah dilakukan dapat disimpulkan bahwa penelitian tersebut sudah berhasil. Gerakan lengan robot sudah dapat mengikuti gerakan tangan manusia secara real time. Berdasarkan pengujian gerakan lengan robot tersebut memiliki rata-rata % error kurang dari 10%.
Kata kunci : Lengan Robot, Flex Sensor, Arduino, Servo Motor Shield
viii
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
ABSTRACT Current technological developments very rapid one robotics technology. Currently the robot has a very important role for human life, ranging from the fields of health, medicine, agriculture, and even manufacturing technology. The robots were created today have their uses to help the working man to be able to alleviate human tasks. Based on these problems then led to the desire to create a robot. The robot is made with the concept that resembles a human arm. The robot arm can move to follow the movement of the human hand. The robot arm can be moved towards the 3 axes, namely, X, Y, and Z. The robot arm using servo motors as their driving force and aided by servo controller as a motor driver. The robot arm is controlled using a microcontroller as the main controller. Using flex motion detection sensor as a human arm. Flex sensor has an output in the form of resistance and by using a voltage divider circuit to produce a voltage between 0-5 volts. Flex sensor mounted on a human arm curved in accordance with the movement of a human arm, the output of the sensor is read by the microcontroller 1 and processed as sensor data. The sensor data is communicated to the microcontroller 2 by serial communication. Microcontroller 2 is used as the controller of the robot arm movement with servo controller driver. Microcontroller 2 with servo controllers communicate with I2C. The controller servo issued a pulse to drive the servo motors. Research that has been done can be concluded that the research has been successful. The movement of the robot arm has been able to follow the movement of the human hand in real time. Based on the testing of the robot arm movements had an average % error of less than 10%. Keywords: Arm Robot, Flex Sensor, Arduino, Servo Motor Shield
ix
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
x
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
DAFTAR ISI HALAMAN JUDUL ........................................................................................................ i HALAMAN PERSETUJUAN ......................................................................................... iii HALAMAN PENGESAHAN .......................................................................................... iv PERNYATAAN KEASLIAN KARYA .......................................................................... v HALAMAN PERSEMBAHAN DAN MOTTO HIDUP ................................................. vi LEMBAR PERNYATAAN PERSETUJUAN PUBLIKASI KARYA ILMIAH UNTUK KEPENTINGAN AKADEMIS ......................................................................... vii INTISARI .......................................................................................................................... viii ABSTRACT ........................................................................................................................ ix KATA PENGANTAR....................................................................................................... x DAFTAR ISI ..................................................................................................................... xi DAFTAR GAMBAR......................................................................................................... xiv DAFTAR TABEL ............................................................................................................. xvi DAFTAR PERSAMAAN.................................................................................................. xvii DAFTAR LAMPIRAN ..................................................................................................... xviii BAB I PENDAHULUAN 1.1. Latar Belekang.......................................................................................................... 1 1.2. Tujuan dan Manfaat Penelitian................................................................................. 2 1.3. Pembatasan Masalah................................................................................................. 2 1.4. Metodogi Penelitian.................................................................................................. 3 BAB II TINJAUAN PUSTAKA dan LANDASAN TEORI 2.1. Mikrokontroler ......................................................................................................... 6 2.1.1. Arduino Mega 2560 R3 ................................................................................. 7 2.1.2. Arduino Uno R3 ............................................................................................ 9 2.1.3. Perangkat Lunak Arduino .............................................................................. 11 2.2. Motor DC Servo ...................................................................................................... 12 2.2.1. RC Servo ........................................................................................................ 13 2.3. Torsi ......................................................................................................................... 15
xi
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 2.4. One Directional Flex Sensor..................................................................................... 15 2.5. Adafruit 16Channel 12 Bit PWM / Servo Shield I2C Interface .............................. 17 2.6. Komunikasi Serial .................................................................................................... 18 2.7. Komunikasi I2C........................................................................................................ 19 2.7.1. Mode Pengoperasian Transfer Data .............................................................. 21 BAB III PERANCANGAN SISTEM 3.1. Perancangan Perangkat Keras ( Hardware ) ............................................................ 23 3.1.1. Perancangan Mekanik .................................................................................... 25 3.1.2. Perancangan Elektrik ..................................................................................... 31 3.1.2.1. Perancangan Rangkaian Pengendali Utama ..................................... 31 3.1.2.2. Perancangan Rangkaian Flex Sensor ............................................... 33 3.1.2.3. Perancangan Rangkaian Motor Servo .............................................. 35 3.2. Perancangan Perangkat Lunak Secara Umum ......................................................... 36 3.2.1. Perangkat Lunak Program Flex Sensor ......................................................... 37 3.2.2. Perangkat Lunak Program Motor Servo ........................................................ 38 BAB IV HASIL DAN PEMBAHASAN 4.1. Hasil Perancangan Perangkat Keras ........................................................................ 39 4.2. Hasil Pengujian dan Analisa..................................................................................... 44 4.2.1. Pengujian Flex Sensor ................................................................................... 44 4.2.2. Pengujian ADC Flex Sensor .......................................................................... 50 4.2.3. Pengujian Gerakan Lengan Robot ................................................................. 51 4.3. Analisa Perangkat Lunak.......................................................................................... 56 4.3.1. Inisialisasi Mikrokontroler Lengan User ....................................................... 56 4.3.2. Pembacaan Sensor Mikrokontroler Lengan User .......................................... 56 4.3.3. Pengiriman Data Sensor Mikrokontroler Lengan User ................................. 57 4.3.4. Inisialisasi Mikrokontroler Robot .................................................................. 58 4.3.5. Pembacaan Data Serial Mikrokontroler Robot .............................................. 59 4.3.6. Menggerakkan Motor Servo .......................................................................... 60
xii
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI BAB V KESIMPULAN DAN SARAN 5.1. Kesimpulan............................................................................................................... 62 5.2. Saran ......................................................................................................................... 62 DAFTAR PUSTAKA ...................................................................................................... 64 LAMPIRAN ..................................................................................................................... 66
xiii
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
DAFTAR GAMBAR Gambar 1.1. Blok diagram lengan robot peniru gerakan tangan manusia....................... 4 Gambar 2.1. Tampilan Arduino Mega 2560 R3 .............................................................. 7 Gambar 2.2. Alokasi penempatan pin Arduino Mega 2560 R3...................................... 8 Gambar 2.3. Tampilan Arduino Uno R3.......................................................................... 9 Gambar 2.4. Alokasi penempatan pin Arduino Uno R3 ................................................. 10 Gambar 2.5. Tampilan IDE Arduino ............................................................................... 11 Gambar 2.6. Skema ekivalen motor DC servo dengan kontrol kecepatan ...................... 13 Gambar 2.7. Prinsip kerja RC servo ................................................................................ 13 Gambar 2.8. Motor RC servo........................................................................................... 14 Gambar 2.9. Konstruksi motor servo............................................................................... 14 Gambar 2.10 Flex Sensor.................................................................................................. 16 Gambar 2.11. Gambar rangkaian pembagi tegangan......................................................... 16 Gambar 2.12. Gambar Adafruit 16-Channel 12-Bit PWM / Servo Shield – I2C Interface 17 Gambar 2.13. Gambar Data transfer from a master transmitter to a slave receiver ........ 21 Gambar 2.14. Gambar Data transfer from a slave transmitter to a master receiver ........ 22 Gambar 3.1. Blok diagram sistem.................................................................................... 23 Gambar 3.2. Design 3D keseluruhan lengan robot .......................................................... 25 Gambar 3.3. Gambar posisi gear gemutar base yang di couple cengan motor servo ...... 26 Gambar 3.4. Gambar design end effector ........................................................................ 28 Gambar 3.5. Tampilan seluruhnya design gambar 3D lengan robot ............................... 30 Gambar 3.6. Gambar koneksi serial TX RX.................................................................... 32 Gambar 3.7. Gambar koneksi komunikasi i2c ................................................................. 33 Gambar 3.8. Contoh pemasangan flex sensor .................................................................. 33 Gambar 3.9. Gambar rangkaian flex sensor pada skematik............................................. 34 Gambar 3.10. Gambar sambungan output flex sensor ke ADC Arduino........................... 35 Gambar 3.11. Gambar rangkaian motor servo untuk lengan ............................................. 35 Gambar 3.12. Gambar port Adafruit 16-Channel 12-Bit PWM / Servo Shield – I2C Interface yang akan dihubungkan ke motor servo ...................................... 36
xiv
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI Gambar 3.13. Diagram alir perancangan perangkat lunak secara umum .................................. 37 Gambar 3.14. Diagram alir perancangan perangkat lunak program flex sensor ....................... 37 Gambar 3.15. Diagram alir perangkat lunak program motor servo ................................... 38 Gambar 4.1. Mekanik lengan robot ................................................................................. 39 Gambar 4.2. Motor servo penggerak bagian shoulder, elbow, dan pitch ........................ 40 Gambar 4.3. Motor base yang dihubungkan dengan transmisi gear rasio 1:1................. 40 Gambar 4.4. Konektor motor servo ................................................................................. 41 Gambar 4.5. Arduino Mega 2560, Servo Controller Shield, dan port komunikasi serial dihubungkan secara stackable..................................................................... 41 Gambar 4.6. Flex sensor yang dipasangkan pada tangan manusia.................................. 42 Gambar 4.7. Rangkaian pembagi tegangan dan port komunikasi serial yang dihubungkan secara stackable dengan Arduino Uno .................................. 42 Gambar 4.8. Hasil perancangan elektrik pada bagian tangan manusia atau user ............ 43 Gambar 4.9. Bagian elektrik lengan robot dan elektrik lengan manusia yang dihubungkan dengan komunikasi serial TX dan RX .................................. 44 Gambar 4.10. Grafik keluaran sensor bagian pitch ( A0 ) ................................................. 45 Gambar 4.11. Grafik keluaran sensor bagian pitch ( A1 ) ................................................. 46 Gambar 4.12. Grafik keluaran sensor bagian elbow ( A2 ) ............................................... 47 Gambar 4.13. Grafik keluaran sensor bagian shoulder ( A4 ) ........................................... 47 Gambar 4.14. Grafik keluaran sensor bagian base ( A5 ).................................................. 48 Gambar 4.15. Grafik keluaran sensor bagian base ( A6 ).................................................. 49 Gambar 4.16. Flex sensor pada bagian pergelangan tangan dan bawah bahu................... 49 Gambar 4.17. Flex sensor pada bagian siku dan bahu....................................................... 50 Gambar 4.18. Bagian pitch dan pergelangan tangan manusia ........................................... 52 Gambar 4.19. Bagian elbow dan siku tangan manusia ...................................................... 52 Gambar 4.20. Bagian shoulder dan bahu tangan manusia................................................. 53 Gambar 4.21. Bagian base dan bagian bawah bahu tangan manusia ................................ 53 Gambar 4.22. Listing program inisialisasi bagian lengan user .......................................... 56 Gambar 4.23. Listing program pembacaan flex sensor bagian lengan user....................... 57 Gambar 4.24. Listing program pengiriman data sensor bagian lengan user...................... 58 Gambar 4.25. Listing program pembacaan data sensor dan pengiriman data serial.......... 58 xv
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI Gambar 4.26. Listing program inisialisasi mikrokontroler robot ...................................... 59 Gambar 4.27. Listing program pembacaan data serial mikrokontroler robot .................... 60 Gambar 4.28. Listing program menggerakkan motor servo .............................................. 60 Gambar 4.29. Listing program data serial pulsa motor servo ............................................ 61
xvi
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
DAFTAR TABEL Tabel 2.1.
Keterangan Pin Arduino Mega 2560 R3.....................................................
8
Tabel 2.1.
(Lanjutan) Keterangan Pin Arduino Mega 2560 R3 ...................................
9
Tabel 2.2.
Keterangan Pin Arduino Uno R3 ................................................................
10
Tabel 2.2.
(Lanjutan) Keterangan Pin Arduino Uno R3 ..............................................
11
Tabel 2.3.
Keterangan Tombol Pada Tampilan IDE Arduino......................................
12
Tabel 3.1.
Tabel Perkiraan Berat Lengan dan Beban Yang Diangkat Lengan Pada Perancangan Lengan Robot ........................................................................
Tabel 3.2.
27
Tabel Sudut Maksimal Yang Dapat Digunakan Motor Servo Sesuai Sudut Lengan Manusia................................................................................
31
Tabel 4.1.
Tabel Output Tegangan Rangkaian Flex Sensor.........................................
44
Tabel 4.2.
( Lanjutan ) Tabel output tegangan rangkaian flex sensor ..........................
45
Tabel 4.3.
Tabel output ADC pada rangkaian flex sensor ...........................................
51
Tabel 4.4.
Tabel pengujian gerakan motor servo bagian pitch ....................................
53
Tabel 4.5.
( Lanjutan ) Tabel pengujian gerakan motor servo bagian pitch ................
54
Tabel 4.6.
Tabel pengujian gerakan motor servo bagian elbow...................................
54
Tabel 4.7.
Tabel pengujian gerakan motor servo bagian shoulder ..............................
54
Tabel 4.8.
( Lanjutan ) Tabel pengujian gerakan motor servo bagian shoulder ..........
55
Tabel 4.9.
Tabel pengujian gerakan motor servo bagian base .....................................
55
xvi
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
DAFTAR PERSAMAAN Persamaan 2.1. .........................................................................................................
15
Persamaan 2.2. .........................................................................................................
15
Persamaan 2.3. .........................................................................................................
15
Persamaan 2.4. .........................................................................................................
15
Persamaan 2.5. .........................................................................................................
17
xvii
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
DAFTAR LAMPIRAN L1.
Tabel Output Tegangan Rangkaian Flex Sensor...................................................... L1
L2.
Tabel Output ADC Pada Rangkaian Flex Sensor .................................................... L2
L3.
Listing Program Keseluruhan Bagian Lengan Manusia........................................... L3
L4.
Listing Program Keseluruhan Bagian Lengan Robot............................................... L6
L5.
Rangkaian keseluruhan ............................................................................................ L8
L6.
Data Sheet Flex Sensor............................................................................................. L10
L7.
Data Sheet Adafruit 16-Channel Servo Driver with Arduino .................................. L12
L8.
Data Sheet Servo Hitec HS-645MG......................................................................... L19
L9.
Data Sheet Hitec HS-805MG................................................................................... L20
L10. Data Sheet TowerPro MG946R ............................................................................... L21
xviii
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
BAB I PENDAHULUAN 1.1.
Latar Belakang Perkembangan teknologi saat ini sangat pesat salah satunya teknologi robotika. Saat
ini robot memiliki peran yang sangat penting bagi kehidupan manusia, mulai dari bidang kesehatan, kedokteran, pertanian, bahkan sampai bidang teknologi manufaktur. Bahkan saat ini robot sudah masuk di kehidupan rumah tangga, mulai dari mainan anak-anak hingga alat bantu pekerjaan sehari-hari. Jenis robot saat ini sudah banyak berkembang, mulai dari yang memakai roda hingga berkaki. Bahkan dahulu robot hanya dapat bergerak secara terbatas tetapi saat ini robot dapat bergerak ke segala arah. Perkembangan teknologi saat ini robot-robot yang dibuat semakin menyerupai dengan manusia walaupun hanya bagian-bagian tertentu saja, seperti tangan, kepala, ataupun kaki. Robot-robot yang diciptakan saat ini memiliki kegunaan untuk membantu kerja manusia hingga dapat meringankan pekerjaan manusia. Robot tersebut dapat digunakan untuk pekerjaan yang ringan hingga yang berat dan berbahaya. Robot-robot tersebut juga dilengkapi dengan sensor-sensor dan kecerdasan buatan sehingga robot tersebut dapat menentukan apa yang akan dilakukan apabila mendapat rangsangan dari luar. Berdasarkan permasalahan tersebut maka memunculkan keinginan untuk menciptakan sebuah robot. Robot tersebut dibuat dengan konsep yang menyerupai lengan manusia. Lengan robot tersebut dapat bergerak mengikuti gerakan tangan manusia. Lengan robot tersebut dapat digerakkan menuju 3 sumbu yaitu, X, Y, dan Z. Lengan robot tersebut menggunakan motor servo sebagai penggeraknya. Untuk menggerakkan motor servo tersebut memerlukan servo controller yang digunakan untuk mengatur pergerakan lengan robot tersebut sehingga dapat mengikuti gerakan lengan manusia secara bersamaan. Lengan robot tersebut dikendalikan menggunakan sebuah mikrokontroler sebagai otak dari robot tersebut.
1
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
2
Berdasarkan paparan diatas penulis ingin membuat lengan robot yang dapat mengikuti gerakan lengan manusia. Peneliti yang sudah pernah membuat adalah Raden Muhammad Syafruddin dan Nyayu Fitri dalam penelitian yang berjudul “ Perancangan Sistem Kendali Gerak Lengan Robot Pengikut Gerak Lengan Manusia Berbasis Mikrokontroller “ [ 1 ]. Penelitian yang dilakukan Raden Muhammad Syafruddin dan Nyayu Fitri, mikrokontroller yang digunakan adalah AVR ATMega8535 dan ATTiny2313. Selain itu menggunakan potensiometer sebagai sensor dan motor servo sebagai penggeraknya. Lengan robot yang akan dibuat oleh penulis berbeda dengan lengan robot yang pernah dibuat. Lengan robot yang akan dibuat menggunakan sensor yaitu flex sensor 4,5 inchi, serta menggunakan Arduino Mega2560-R3 dan Arduino Uno R3. Lengan robot yang akan dibuat dapat bergerak mengikuti gerakan lengan manusia. Sensor yang diletakkan pada lengan manusia mulai dari bahu hingga pergelangan. Sensor akan memberikan sinyal yang akan masuk ke mikrokontroler. Dalam mikrokontroler, sinyal tersebut akan diproses yang akan digunakan untuk menentukan posisi motor servo, sehingga gerakan servo dapat sesuai dengan gerakan lengan manusia. Selain itu lengan robot yang akan dibuat ini digunakan sebagai media untuk pembelajaran tentang robotika.
1.2.
Tujuan dan Manfaat Penelitian Dalam penelitian yang dilakukan memiliki tujuan umum dapat menciptakan alat
yang membantu dan meringankan kerja manusia serta dapat menggantikan peran manusia dalam manjalankan pekerjaan yang berat dan berbahaya. Memiliki tujuan khusus adalah menciptakan lengan robot dengan 3 sumbu yaitu X, Y, dan Z dan mengetahui cara kerjanya. Manfaat dari penelitian ini adalah dapat membantu pekerjaan manusia yang sulit dilakukan oleh manusia dari jarak jauh dan dapat digerakkan secara langsung atau realtime.
1.3.
Pembatasan Masalah Agar tugas akhir ini dapat sesuai dengan apa yang menjadi tujuannya dan
menghindari terlalu kompleksnya permasalahan yang muncul, maka perlu adanya batasan-
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
3
batasan masalah yang sesuai dengan judul tugas akhir ini. Adapun batasan masalahnya adalah : a. Menggunakan dua buah mikrokontroler arduino sebagai pengolah data sensor dan sebagai penggerak aktuator robot. Mikrokontroler yang digunakan adalah Arduino Mega 2560 R3 dan Arduino Uno R3. b. Sensor yang digunakan adalah one directional flex sensor 4,5” c. Menggunakan motor RC-servo sebagai aktuator d. Menggunakan servo shield sebagai driver motor servo e. Robot dapat bergerak pada sumbu X, Y, dan Z f. Kedua mikrokontroler tersebut menggunakan komunikasi serial.
1.4.
Metodologi Penelitian
Berdasarkan pada tujuan yang ingin dicapai maka metode yang diguanakan adalah :
a. Studi literatur dan referensi, yaitu mempelajari buku-buku dan makalah-makalah dari pustaka yang berhubungan dengan mikrokontroler khususnya Arduino, servo controller, motor servo dan juga mengenai Flex Sensor. b. Studi kasus terhadap alat yang telah dibuat sebelumnya. Tahap ini dilakukan guna memahami prinsip kerja alat sebelumnya. c. Menguji Flex Sensor. Tahap ini dilakukan guna memahami prinsip kerja Flex Sensor dan bisa mengetahui karakter Flex Sensor. d. Menguji motor servo. Tahap ini dilakukan guna memahami prinsip kerja motor servo dan bisa mengetahui karakter motor servo. e. Menguji servo controller. Tahap ini dilakukan guna memahami prinsip kerja servo controller baik secara sekuensial maupun bersamaan dan mengetahui cara menggunakan antarmuka pada servo controller. f. Menguji rangkaian kendali dengan mikrokontroler Arduino. Tahap ini guna lebih memahami bahasa yang digunakan mikrokontroler Arduino dan lebih memahami cara kerja dengan mencoba membuat rangkaian kendali sederhana terlebih dahulu.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
4
g. Perancangan sistem hardware dan software. Tahap ini bertujuan untuk mencari dan menentukan komponen-komponen suatu sistem yang akan dibuat dengan mempertimbangkan faktor-faktor permasalahan dan kebutuhan yang telah ditentukan. h. Pembuatan sistem hardware dan software. Berdasarkan gambar mikrokontroler sebagai kontrol utama. Mikrokontroler yang digunakan adalah Arduino Mega 2560 dan Arduino Uno R3. Data dihasilkan oleh Flex Sensor akan diproses oleh Arduino Uno R3, data tersebut digunakan sebagai data posisi lengan pengguna atau user. Data yang telah diproses oleh Arduino Uno R3 akan dikomunikasikan secara serial ke Arduino Mega 2560. Motor servo sebagai penggerak atau aktuator akan digerakkan oleh Adafruit 16-Channel Servo Driver yang dihubungkan Arduino Mega 2560 dengan komunikasi I2C.
Gambar 1.1. Blok diagram lengan robot peniru gerakan tangan manusia i. Proses pengujian dan pengambilan data. Teknik pengambilan data dilakukan dengan cara menguji keseluruhan sistem dengan menggabungkan antara rangkaian kendali dengan rangkaian aktuator dan sensor. Pengujian dilakukan dengan menghubungkan Flex Sensor dengan Arduino Uno. Pengambilan data yang dilakukan dengan mengambil data sudut yang dapat dijangkau oleh sensor. Dari data tersebut makan akan digunakan untuk menggerakkan motor servo yang dikontrol oleh servo driver yang dihubungkan dengan Arduino Mega 2560.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
5
j. Analisa dan kesimpulan hasil perancangan. Analisa data dilakukan dengan mengecek apakah alat sudah bekerja sesuai dengan perancangan awal dan bisa sesuai dengan kondisi yang diinginkan, meliputi kemampuan Arduino Uno yang dapat mengolah data yang dikeluarkan oleh Flex Sensor ketika sensor tersebut dibengkokkan. Motor servo dapat bergerak mengikuti gerakan tangan pengguna atau user. Penyimpulan hasil perancangan dilakukan dengan menghitung presentasi error yang terjadi.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
BAB II TINJAUAN PUSTAKA dan LANDASAN TEORI 2.1.
Mikrokontroler Mikrokontroler adalah salah satu dari bagian dasar dari suatu sistem komputer.
Meskipun mempunyai bentuk yang jauh lebih kecil dari suatu komputer pribadi dan komputer mainframe, mikrokontroler dibangun dari elemen-elemen dasar yang sama. Secara sederhana, komputer akan menghasilkan output spesifik berdasarkan inputan yang diterima dan program yang dikerjakan. Seperti umumnya komputer, mikrokontroler adalah alat yang mengerjakan instruksi-instruksi yang diberikan kepadanya. Artinya, bagian terpenting dan utama dari suatu sistem terkomputerisasi adalah program itu sendiri yang dibuat oleh seorang programmer. Program ini menginstruksikan komputer untuk melakukan jalinan yang panjang dari aksi-aksi sederhana untuk melakukan tugas yang lebih kompleks yang diinginkan oleh programmer [ 2 ]. Perkembangan mikrokontroler sangat pesat. Saat ini jenis-jenis mikrokontroler memiliki berbagai macam jenis, bentuk, fungsi yang beragam. Mikrokontroler dapat diprogram sesuai dengan keinginan pengguna atau user dengan program tertentu yang akan dimasukkan kedalam mikrokontroler tersebut. Bahasa pemrograman untuk mikrokontroler tersebut bermacam-macam yang digunakan, sebagai contohnya bahasa C, C++, basic, dan assembly. Bahasa tersebut digunakan sesuai dengan mikrokontroler yang digunakan. Pada penelitian ini, penulis menggunakan mikrokontroler tertentu yaitu : arduino. Arduino adalah sebuah platform elektronik yang open source. Arduino yang digunakan adalah Arduino Mega 2560 R3 dan Arduino Uno R3. Bahasa pemrograman yang digunakan oleh arduino adalah bahasa C. Arduino memiliki pemrograman sendiri yang dikenal dengan Integrated Development Environment (IDE). Pemrograman tersebut digunakan untuk menulis program yang nanti akan diunggah kedalam Arduino. Program tersebut dapat berfungsi pada beberapa sistem operasi seperti Windows, Macintosh, dan Linux. Selain itu Arduino juga dapat saling berkomunikasi antar arduino. Komunikasi
6
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
7
tersebut dapat dilakukan dengan komunikasi serial. Komunikasi tersebut memanfaatkan port tx dan rx pada Arduino.
2.1.1. Arduino Mega 2560 R3
Gambar 2.1. Tampilan Arduino Mega 2560 R3 [3]
Arduino Mega 2560 adalah sebuah board mikrokontroler yang berbasis pada IC ATmega 2560. Arduino Mega 2560 memiliki 54 buah pin digital yang dapat digunakan sebagai input ataupun output. Dari 54 buah pin tersebut, 15 pin diantaranya dapat digunakan sebagai output Pulse Width Modulation (PWM), memiliki 16 buah pin analog input, 4 buah pin UART yang berfungsi sebagai port serial hardware, sebuah osilator kristal 16 MHz, sebuah jack female untuk koneksi USB, jack female adaptor, dan sebuah tombol reset [3]. IC mikrokontroler yang digunakan pada penelitian ini adalah ATmega 2560. Mikrokontroler ATmega 2560 berbentuk persegi dengan jumlah pin sebanyak 100 buah pin [4]. ATmega 2560 memiliki kemampuan untuk mengeksekusi instruksi program dalam satu siklus clock tunggal, sehingga ATmega 2560 mampu mengoptimalkan konsumsi daya dibandingkan kecepatan pemrosesan program. Gambar 2.2. dan Tabel 2.1. menjelaskan tentang alokasi penempatan pin dan keterangan masing-masing pin.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
6
8
7
9
8
10
11
2
4
1 3
6
5
12
Gambar 2.2. Alokasi penempatan pin Arduino Mega 2560 R3 [3] Tabel 2.1. Keterangan Pin Arduino Mega 2560 R3 [3] No.
Parameter
Keterangan
1
ATmega 2560
IC mikrokontroler yang digunakan pada Arduino Mega 2560.
2
Jack USB
Untuk komunikasi mikrokontroler dengan PC
3
Jack Adaptor
4
Tombol Reset
5
Pin Analog
Masukan power eksternal bila Arduino bekerja mandiri (tanpa komunikasi dengan PC melalui kabel serial USB). Tombol reset internal yang digunakan untuk mereset modul Arduino. Menerima input dari perangkat analog lainnya.
Vin
=
Masukan tegangan input bagi Arduino ketika
menggunakan dumber daya eksternal.
5 V = Sumber tegangan yang dihasilkan regulator internal board Arduino.
6
Pin Power
3,3 V = Sumber tegangan yang dihasilkan regulator internal board Arduino. Arus maksimal pada pin ini adalah 50 mA.
GND = Pin ground dari regulator tegangan board Arduino.
IOREF = Tegangan Referensi.
AREF = Tegangan Referensi untuk input analog.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
9
Tabel 2.1. (Lanjutan) Keterangan Pin Arduino Mega 2560 R3 [3] 7 8
Light-Emitting
Pin digital 13 merupakan pin yang terkoneksi dengan LED
Diode (LED)
internal Arduino. Arduino Mega menyediakan 8 bit output PWM. Gunakan
Pin PWM
fungsi analogWrite() untuk mengaktifkan pin PWM ini. Digunakan untuk menerima dan mengirimkan data serial TTL
9
Pin Serial
(Receiver (Rx), Transmitter (Tx)). Pin 0 dan 1 sudah terhubung kepada pin serial USB to TTL sesuai dengan pin ATmega.
10 11
Pin Two Wire
Terdiri dari Serial Data Line (SDA) dan Serial Interface Clock
Interface (TWI)
(SCL).
Pin Digital
Pin yang digunakan untuk menerima input digital dan memberi output berbentuk digital (0 dan 1 atau low dan high) Terdiri dari 4 buah Pin : 1. Master In Slave Out (MISO) Jalur slave untuk mengirimkan data ke Master.
Pin Serial 12
Peripheral Interface (SPI)
2. Master Out Slave In (MOSI) Jalur master untuk mengirimkan data ke peralatan. 3. Serial Clock (SCK) Clock yang berfungsi untuk memberikan denyut pulsa ketika sedang menyinkronkan transmisi data oleh master 4. Slave Select (SS) Pin untuk memilih jalur slave pada perangkat tertentu.
2.1.2. Arduino Uno R3
Gambar 2.3. Tampilan Arduino Uno R3 [4]
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
10
Arduino Uno R3 adalah mikrokontroler menggunakan ATmega328. Uno memiliki 14 pin input/output digital (dimana 6 pin dapat digunakan sebagai output PWM), 6 input analog, 16 MHz osilator kristal, koneksi USB, jack power, ICSP header, dan tombol reset [5] . Secara spesifikasi, Arduino Uno sama dengan Duemilanove, dan Uno diluncurkan di tahun 2010 sedangkan Duemilanove diluncurkan di tahun 2009. 7
6
8
4 2
1 3
6
5
Gambar 2.4. Alokasi penempatan pin Arduino Uno R3 [6] Tabel 2.2. Keterangan Pin Arduino Uno R3 [6] No.
Parameter
Keterangan
1
ATmega 328
IC mikrokontroler yang digunakan pada Arduino Uno R3.
2
Jack USB
Untuk komunikasi mikrokontroler dengan PC
3
Jack Adaptor
4
Tombol Reset
5
Pin Analog
Masukan power eksternal bila Arduino bekerja mandiri (tanpa komunikasi dengan PC melalui kabel serial USB). Tombol reset internal yang digunakan untuk mereset modul Arduino. Menerima input dari perangkat analog lainnya.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
11
Tabel 2.2. (Lanjutan) Keterangan Pin Arduino Uno R3 [6]
Vin
=
Masukan tegangan input bagi Arduino ketika
menggunakan dumber daya eksternal.
5 V = Sumber tegangan yang dihasilkan regulator internal board Arduino.
6
Pin Power
3,3 V = Sumber tegangan yang dihasilkan regulator internal board Arduino. Arus maksimal pada pin ini adalah 50 mA.
7
Pin Digital
GND = Pin ground dari regulator tegangan board Arduino.
IOREF = Tegangan Referensi.
AREF = Tegangan Referensi untuk input analog.
Pin yang digunakan untuk menerima input digital dan memberi output berbentuk digital (0 dan 1 atau low dan high) Digunakan untuk menerima dan mengirimkan data serial TTL
8
Pin Serial
(Receiver (Rx), Transmitter (Tx)). Pin 0 dan 1 sudah terhubung kepada pin serial USB to TTL sesuai dengan pin ATmega.
2.1.3. Perangkat Lunak Arduino Area pemrograman Arduino dikenal dengan Integrated Development Environment (IDE) [7]. Area pemrograman yang digunakan untuk menulis baris program dan mengunggahnya ke dalam board Arduino, disamping itu juga dibuat lebih mudah dan dapat berjalan pada beberapa sistem operasi seperti Windows, Macintosh, dan Linux [8]. Gambar 2.11 dan Tabel 2.3 merupakan area pemrograman Arduino dan keterangan beberapa tombol utama.
Gambar 2.5. Tampilan IDE Arduino
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
12
Tabel 2.3. Keterangan Tombol Pada Tampilan IDE Arduino [8] No.
Tombol
Nama
Fungsi Menguji apakah ada kesalahan pada program atau sketch. Apabila sketch sudah benar, maka
1
Verify
sketch tersebut akan dikompilasi. Kompilasi adalah proses mengubah kode program ke dalam kode mesin. Mengirimkan kode mesin hasil kompilasi ke
2
Upload
3
New
Membuat sketch yang baru
4
Open
Membuka sketch yang sudah ada
5
Save
Menyimpan sketch
Serial
Menampilkan data yang dikirim dan diterima
6
Monitor
board Arduino
melalui komunikasi serial.
IDE Arduino membutuhkan beberapa pengaturan yang digunakan untuk mendeteksi board Arduino yang sudah dihubungkan ke komputer. Beberapa pengaturan tersebut adalah mengatur jenis board yang digunakan sesuai dengan board yang terpasang dan mengatur jalur komunikasi data melalui perintah Serial Port. Kedua pengaturan tersebut dapat ditemukan pada pull down menu Tools.
2.2.
Motor DC Servo Motor DC Servo ( DC-SV ) pada dasarnya adalah motor DC-Magnet Permanen
dengan kualifikasi khusus yang sesuai dengan aplikasi “servoring” di dalam teknik control. Dalam kamus Oxford istilah “servo” diartikan sebagai “a mechanism that controls a larger mechanism”. Beberapa tipe motor DC-SV yang dijual bersama dengan paket rangkaian drivernya telah memiliki rangkaian control kecepatan yang menyatu didalamnya. Putaran motor tidak lagi berdasarkan tegangan supply ke motor, namun berdasarkan tegangan input khusus
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
13
yang berfungsi sebagai referensi kecepatan output [9]. Dalam skema dapat digambarkan pada gambar 2.6.
Gambar 2.6. Skema ekivalen motor DC Servo dengan kontrol kecepatan [9]
2.2.1. RC Servo Dalam dunia hobby radio control ( RC ) dikenal istilah motor RC Servo yang memiliki makna yang sedikit berbeda dengan motor DC Servo yang dibicarakan sebelumnya. Motor RC Servo sering disingkat servo saja beroperasi berdasarkan control posisi pada poros Servo-nya. Berdasarkan model servo yang tersedia dipasaran dengan spesifikasi yang bermacam-macam. Pada umumnya servo memiliki memerlukan sinyal input dapam bentuk PWM dengan jangkauan gerakan poros outputnya berkisar antara -120o-+120o [9]. Gambar 2.7. mengilustrasikan hubungan bentuk sinyal kontrol input dengan posisi poros output servo.
Gambar 2.7. Prinsip kerja RC Servo [9]
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
14
Gambar 2.8. Motor RC Servo [10]
Gambar 2.9. Konstruksi motor servo [10] Jenis-jenis Motor Servo: 1. Motor Servo Standar Motor servo jenis ini hanya mampu bergerak dua arah (CW dan CCW) dengan defleksi masing-masing sudut mencapai 90° sehingga total defleksi sudut dari kanan – tengah – kiri adalah 180°.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
15
2. Motor Servo Continuous Motor servo jenis ini mampu bergerak dua arah (CW dan CCW) tanpa batasan defleksi sudut putar (dapat berputar secara kontinyu) dengan kata lain dapat berputar 360o. [10]
2.3.
Torsi Torsi merupakan bagian dari gaya yang diterima oleh motor. Perhitungan torsi
tergantung pada panjang dari setiap link lengan robot dan berat beban yang diterima oleh lengan robot tersebut [11]. Perhitungan torsi dapat diperoleh dengan menggunakan persamaan dibawah ini : =
( 2.1 )
=
( 2.3 )
( 2.2 )
=
Dimana, =
=
( 2.4 )
Dalam pemilihan motor servo yang akan digunakan dapat dilihat dari kecepatan dan torsi yang dimiliki oleh motor servo tersebut. Kecepatan dan torsi motor servo berbeda-beda tergantung dari model atau tipe motor servo. Dengan memperhitungkan torsi motor servo terlebih dahulu maka dapat dengan mudah untuk menentukan model atau tipe dari motor servo yang akan digunakan.
2.4.
One-Directional Flex Sensor Flex Sensor merupakan sensor yang berbentuk tipis seperti pita, dengan panjang 4,5
inchi. Flex sensor bekerja seperti variabel resistor dengan nilai resistensi yang dapat berubah-ubah pada saat terjadi lengkungan dan renggangan. Output resistensinya berubah secara linier selaras dengan besarnya sudut sensor yang dibengkokkan.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
16
Gambar 2.10. Flex Sensor [12] Flex sensor dapat diterapkan dalam berbagai teknologi, beberapa teknologi yang dapat menggunakan flex sensor adalah alat-alat medis, produk-produk olahraga, kontrol industri, instrumen musik, alat ukur dan terapi fisik [13]. Pada kondisi lurus memiliki resistansi 10Kohm dan pada saat dibengkokkan memiliki resistansi 60Kohm hingga 110Kohm. Resistensi Flex Sensor memiliki toleransi hingga 30%. Keluaran dari Flex Sensor memiliki nilai yang linier pada pertambahannya. Flex Sensor memiliki panjang 4,5 inchi [14]. Flex sensor tersebut akan dihubungkan ke mikrokontroler, khususnya pada bagian Vout dihubungkan pada input analog. Input analog pada Arduino memiliki ADC ( Analog to Digital Converter ). ADC ( Analog to Digital Converter ) dapat membaca 10 bit data dengan resolusi cukup besar yaitu 1024.
Gambar 2.11. Gambar rangkaian pembagi tegangan
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
=
∗
17
(2.5)
ADC ( Analog to Digital Converter ) digunakan untuk tegangan 0 hingga 5 volt. Agar dapat membaca nilai 0 hingga 5 volt maka dibuat rangkian pembagi tegangan dengan resolusi 0 hingga 5 volt. Rumus yang digunakan untuk menghitung Vout pada rangkaian pembagi tegangan yaitu sama seperti gambar 3.6 , dimana nilai R1 merupakan nilai dari Flex Sensor yang dapat berubah nilai resistensinya . Nilai pada R2 merupakan nilai resistor yang tetap nilai resistensinya.
2.5.
Adafruit 16-Channel 12-Bit PWM / Servo Shield – I2C Interface
Gambar 2.12. Gambar Adafruit 16-Channel 12-Bit PWM / Servo Shield – I2C Interface [15] Adafruit 16-Channel 12-Bit PWM / Servo Shield – I2C Interface merupakan modul pengendali motor servo yang dapat mengendalikan hingga 16 motor servo pada setiap board shield. Servo shield ini memiliki 6 alamat yang berbeda untuk mengontrol gerakan motor servo sehingga dapat di cascade hingga 62 board dan dapat mengendalikan 992 motor servo secara bersamaan. Selain itu servo shield ini menggunakan antar muka komunikasi I2C untuk mengkontrol gerakan motor servo. Komunikasi I2C menggunakan 2 buah port komunikasi yaitu SDA ( Serial Data ) dan SCL ( Serial Clock Line ). Penganturan clock pengiriman data menggunakan TLC5940 sehingga tidak perlu mengaktifkan clock secara terus menerus saat pengiriman data. Power
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
18
supply untuk driver dengan motor servo terpisah. Power supply untuk driver servo langsung terhubung dengan arduino, sedangkan power supply untuk motor servo dihubungkan dengan menyambungkan kabel dari luar dan memiliki tegangan 5 vdc 2A. Terdapat pengaman pada konektor untuk power supply motor servo apabila terjadi kesalahan pada saat menyambungkan sehingga polaritasnya terbalik [15] .
2.6.
Komunikasi Serial Komunikasi serial merupakan komunikasi data dengan pengiriman data secara satu per
satu pada waktu tertentu. Komunikasi data serial hanya menggunakan dua kabel yaitu kabel data untuk pengiriman yang disebut transmit ( TX ) dan kabel data untuk penerimaan yang disebut receive ( RX ). Kelebihan dari komunikasi serial adalah jarak pengiriman dan penerimaan dapat dilakukan dalam jarak yang cukup jauh dibandingkan dengan komunikasi parallel tetapi kekurangannya kecepatannya lebih lambat dibandingkan komunikasi parallel. Dalam komunikasi serial dikenal ada dua mode komunikasi serial: a. Mode Sinkron Mode sinkron merupakan mode komunikasi yang pengiriman tiap bit data dilakukan dengan menggunakan sinkronisasi clock. Saat transmitter hendak mengirimkan data, harus disertai clock untuk sinkronisasi antara transmitter dan receiver.
b. Mode Asinkron Komunikasi asinkron serial merupakan sebuah protocol transmisi asinkronous, dimana komunikasi ini tidak menggunakan clock, tetapi telah memiliki baudrate yang telah disepakati oleh masing-masing sistem yang sedang berkomunikasi. Kerja dari komunikasi ini adalah, signal start dikirimkan pada saat sebelum data dikirimkan dan signal stop dikirimkan setelah setiap data selesai dikirimkan. Signal start digunakan untuk mempersiapkan mekanisme penerimaan untuk menerima dan memproses data yang akan dikirimkan dan signal stop berguna untuk mempersiapkan mekanisme penerimaan data berikutnya. Berikut ini adalah protocol pengiriman data secara serial asinkron : 1. Start bit selalu berlogic LOW 2. Pengiriman data bit dari 0 sampai 8.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
19
3. Parity bit 4. Stop bit selalu berlogic HIGH IDLE jika tidak ada pengiriman data selanjutnya.[16]
2.7.
Komunikasi I2C Bus adalah sistem pengantar yang dilengkapi dengan komponen pengendali untuk
melayani pertukaran data antara komponen hardware satu dengan komponen hardware lainnya. Sistem pada mikrokontroler terdapat bus Data, bus Alamat, dan beberapa pengantar pengendali. Semakin tinggi frekuensi clock prosesor, maka semakin lebih cermat pengembang untuk memperhatikan timing dari seluruh komponen yang terlibat, agar tidak terjadi kesalahan dalam transaksi data. Bus yang cukup sering digunakan adalah bus bersifat paralel. Transaksi data dilakukan secara paralel sehingga transaksi data lebih cepat, akan tetapi disisi lain Mahal. Jika sistem relatif tidak membutuhkan transaksi yang cepat, maka penggunaan Serial Bus menjadi pilihan. Salah satu pilihan sistem data bus yang sering digunakan adalah I2C (Inter Integrated Circuit). Sistem Bus I2C pertamakali diperkenalkan oleh Firma Philips pada tahun 1979. Karakter I2C : 1. Serial Bus Data dikirim serial secara per-bit. 2. Menggunakan dua Penghantar Koneksi dengan ground bersama I2C terdiri dari dua penghantar:
SCL (Serial Clock Line) untuk menghantarkan sinyal clock.
SDA (Serial Data) untuk mentransaksikan data
3. Jumlah Peserta Bus maximal 127 peserta dialamatkan melalui 7-bit-alamat. Alamat ditetapkan kebanyakan secara hardware dan hanya sebagian kecil dapat dirubah. 4. Pengirim dan Penerima setiap transaksi data terjadi antara pengirim (Transmitter) dan penerima (Receiver). Pengirim dan penerima adalah peserta bus. 5. Master and Slave Device yang mengendalikan operasi transfer disebut Master, sementara device yang di kendalikan oleh master di sebut Slave.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
20
Aturan Komunikasi I2C : 1. I2C adalah protokol transfer data serial. Device atau komponen yang mengirim data disebut transmitter, sedangkan device yang menerimanya disebut receiver. 2. Device yang mengendalikan operasi transfer data disebut master, sedangkan device lainnya yang dikendalikan oleh master disebut slave. 3. Master device harus menghasilkan serial clock melalui pin SCL, mengendalikan akses ke BUS serial dan menghasilkan sinyal kendali START dan STOP.
Definisi-definisi Kondisi Bus : 1. Bus not busy: Pada saat ini Bus tidak sibuk, SCL dan SDA dua-duanya dalam keadaan HIGH. 2. Start data transfer: Ditandai dengan perubahan kondisi SDA dari HIGH ke LOW ketika SCL HIGH. 3. Stop data transfer: Ditandai dengan perubahan kondisi SDA dari LOW ke HIGH ketika SCL HIGH. 4. Data valid: Data yang dikirim bit demi bit dianggap valid jika setelah START, kondisi SDA tidak berubah selama SCL HIGH, baik SDA HIGH maupun SDA LOW tergantung dari bit yang ingin ditransfer. Setiap siklus HIGH SCL baru menandakan pengiriman bit baru. Duty cycle untuk SCL tidak mesti 50%, tetapi frekuensi kemunculannya hanya ada 2 macam, yaitu mode standar 100kHz dan fast mode atau mode cepat 400kHz. Setelah SCL mengirimkan sinyal HIGH yang kedelapan, arah transfer SDA berubah, sinyal kesembilan pada SDA ini dianggap sebagai acknowledge dari receiver ke transmitter. 5. Acknowledge: Setiap receiver wajib mengirimkan sinyal acknowledge atau sinyal balasan setiap selesai pengiriman 1-byte atau 8-bit data. Master harus memberikan ekstra clock pada SCL, yaitu clock kesembilan untuk memberikan kesempatan receiver mengirimkan sinyal acknowledge ke transmitter berupa keadaan LOW pada SDA selama SCL HIGH. Meskipun master berperan sebagai receiver, ia tetap sebagai
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
21
penentu sinyal STOP. Pada bit-akhir penerimaan byte terakhir, master tidak mengirimkan sinyal acknowledge, SDA dibiarkan HIGH oleh receiver dalam hal ini master, kemudian master mengubah SDA dari LOW menjadi HIGH yang berarti sinyal STOP.
2.7.1. Mode Pengoperasian Transfer Data Tergantung kondisi bit R/W, 2 jenis transfer dimungkinkan, yaitu : 1. Data transfer from a master transmitter to a slave receiver. Byte pertama yang dikirimkan oleh master adalah alamat slave, setelah itu master mengirimkan sejumlah byte data. Slave atau receiver mengirimkan sinyal acknowledge setiap kali menerima 1-byte data. Pada tiap byte, bit pertama yang dikirim adalah MSB.
Gambar 2.13. Gambar Data transfer from a master transmitter to a slave receiver [17] 2. Data transfer from a slave transmitter to a master receiver. Meskipun master berperan sebagai receiver, byte pertama dikirimkan oleh master berupa alamat slave. Setelah itu slave mengirimkan bit acknowledge, dilanjutkan dengan pengiriman sejumlah byte dari slave ke master. Master mengirimkan bit acknowledge untuk setiap byte yang diterimanya, kecuali byte terakhir. Pada akhir byte, master mengirimkan sinyal ‘not acknowledge’, setelah itu master mengirimkan sinyal STOP. [17]
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
22
Gambar 2.14. Gambar Data transfer from a slave transmitter to a master receiver [17]
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
BAB III PERANCANGAN SISTEM Bab ini menjelaskan mengenai perancangan lengan robot mengikuti gerakan tangan manusia berbasis mikrokontroler. Perancangan sistem yang akan dibahas pada bab ini terdiri dari dua bagian, yaitu perangkat keras (hardware) dan perangkat lunak (software). Perancangan sistem yang dibahas dalam bab ini terbagi dalam dua bagian besar, yaitu: a. Perancangan perangkat keras Perancangan Mekanik. Perancangan Rangkaian Elektrik Sistem Pengendali b. Perancangan perangkat lunak Perangkat lunak program Flex Sensor. Perangkat lunak program Motor Servo.
3.1.
Perancangan Perangkat Keras ( Hardware ) Perancangan perangkat keras terbagi menjadi Perancangan Blok Diagram Sistem,
Perancangan Mekanik, Rangkaian Flex Sensor dan Motor Servo serta Rangkaian Pengendali Utama. Perancangan perangkat keras, terlebih dahulu dilakukan perancangan blok diagram dari keseluruhan sistem serta rancangan gambar 3D yang akan dibuat.
Flex Sensor
Arduino Uno R3
Kom. Serial
Arduino Mega 2560
Bagian lengan user
Kom. I2C
Adafruit 16channel servo shield
Motor Servo
Bagian Robot
Gambar 3.1. Blok diagram sistem
Gambar 3.1 merupakan blok diagram sistem. Blok diagram tersebut, perangkat keras yang akan dibuat terdiri dari lima bagian, yaitu Flex Sensor, Arduino Uno R3, Arduino Mega 2560, Adafruit 16-Channel 12-Bit PWM / Servo Shield – I2C Interface, dan
23
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
24
Motor Servo. Terletak pada bagian lengan manusia atau user, yaitu Flex Sensor dan Arduino Uno R3 sedangkan bagian lengan robot terdapat yaitu Arduino Mega 2560, Adafruit 16-Channel 12-Bit PWM / Servo Shield – I2C Interface, dan Motor Servo. Sensor yang digunakan adalah Flex sensor. Flex sensor tersebut dipasangkan pada lengan manusia atau user. Lengan manusia atau user yang diberi Flex sensor terdapat pada bagian sendi, antara lain: pergelangan tangan, siku, bahu, dan dibagian dada dibawah tulang selangka ( berseberangan dengan tulang belikat). Output Flex sensor berupa resistansi yang memiliki nilai hambatan mulai dari 10Kohm – 40Kohm, nilai hambatan tersebut berubah secara linear. Menggunakan rangkaian pembagi tegangan pada Flex sensor tersebut sehingga dapat merubah nilai tegangan yang akan dibaca oleh mikrokontroler Arduino Uno. Nilai tegangan yang diubah oleh Flex sensor memiliki rentang nilai 0 volt hingga 5 volt. Output dari rangkaian pembagi tegangan tersebut dihubungkan pada port analog input Arduino Uno. Bagian port analog input Arduino Uno sudah memiliki ADC ( Analog to Digital Converter ) sehingga mikrokontroler tersebut dapat membaca nilai tegangan yang keluar dari rangkaian sensor tersebut. Data analog yang dibaca oleh mikrokontroler Arduino Uno diolah dan dihitung sehingga dapat menghasilkan nilai yang dapat digunakan untuk menggerakkan motor servo. Data dari Arduino Uno dimasukkan kedalam register sebelum dikirim ke Arduino Mega 2560. Komunikasi antara Arduino Uno dengan Ardunio Mega 2560 dihubungkan secara komunikasi serial, dengan menghubungkan port TX dan RX pada Arduino Uno dan Arduino Mega 2560. Data yang diterima oleh Arduino Uno R3 diolah, sehingga dapat digunakan untuk menggerakkan motor servo yang dibantu oleh servo controller. Servo Controller yang digunakan adalah Adafruit 16-Channel 12-Bit PWM / Servo Shield – I2C Interface. Arduino Mega 2560 digunakan untuk mengirim pulsa-pulsa yang nantinya akan digunakan untuk menggerakkan motor servo. Arduino Mega 2560 dengan Adafruit 16-Channel 12-Bit PWM / Servo Shield – I2C Interface dihubungkan secara komunikasi I2C. Komunikasi I2C tersebut menggunakan port SDA ( Serial Data ) dan SCL ( Serial Clock ) untuk transfer data. Adafruit 16-Channel 12-Bit PWM / Servo Shield – I2C Interface dapat menggerakkan motor servo secara sekuensial maupun secara serempak. Motor servo yang
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
25
digunakan berjumlah lima buah. Motor servo tersebut digunakan sebagai aktuator lengan robot tersebut. Motor servo tersebut menggerakkan bagian-bagian lengan robot antara lain bagian Base, Shoulder, Elbow, dan Pitch. Bagian Shoulder terdapat dua buah motor servo sebagai penggeraknya dan memiliki torsi yang paling besar daripada yang lainnya, dikarenakan bagian tersebut yang menerima beban yang paling besar. Lengan robot tersebut dapat bergerak sesuai ( meniru ) dengan gerakkan lengan manusia atau user.
3.1.1. Perancangan Mekanik Gambar 3.2. merupakan gambar keseluruhan design 3D lengan robot peniru gerakan tangan manusia. Lengan robot peniru greakan tangan manusia disusun dengan 5 bagian utama sebagai aktuator yang akan digerakkan dengan motor RC servo. Kelima bagian utama ini disebut sebagai penghubung atau link. Sedangkan bagian yang berperan sebagai penggerak (sendi) berdasarkan gerakkan motor RC servo disebut sebagai joint. Gambar 3.2. menampilkan keseluruhan design perancangan mekanik 3D lengan robot peniru gerakan tangan manusia beserta lima bagian utama pada robot yang berperan sebagai penghubung (link), yang meliputi : 1. Base (bagian dasar) 2. Shoulder (bagian bahu) 3. Elbow (bagian siku) 4. Pitch (bagian pergelangan)
10 9
5. End Effector (bagian ujung robot) 6. Motor Base 7. Motor Shoulder A 8. Motor shoulder b
8 7 6
9. Motor elbow 10. Motor pitch Gambar 3.2. Design 3D keseluruhan lengan robot
5 4 3 2 1
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
26
Gambar 3.3. merupakan design 3D bagian dasar (base) berbentuk lingkaran yang berdiameter 25cm. Base terhubung dengan sebuah as yang memanjang ke bawah dan mempunyai roda gigi. Roda gigi pada as berhubungan dengan roda gigi pada sebuah motor RC servo yang digunakan sebagai penggerak base. Base bergerak secara rotasi dan dapat menyebabkan perubahan posisi pada lengan-lengan penghubung yang lain.
Gambar 3.3. Gambar posisi gear pemutar base yang di couple dengan motor servo Bagian shoulder memiliki panjang lengan 18cm dan bergerak secara rotasi dengan 2 buah motor RC servo. Bagian elbow memiliki panjang lengan 12cm dan bergerak secara rotasi dengan sebuah motor RC servo. Bagian pitch memiliki panjang lengan 5cm dan bergerak secara rotasi dengan sebuah motor RC servo. Bagian paling ujung adalah end effector digunakan untuk menunjukkan end point dari lengan robot tersebut. Panjang end effector sampai ujung 7cm. End effector tersebut menggunakan sebuah spidol sebagai ujungnya. Total keseluruhan panjang lengan robot peniru gerakan tangan manusia dari pangkal shoulder sampai pada ujung end effector adalah 42cm. Besarnya dimensi berupa panjang yang dimiliki oleh keseluruhan penghubung (link) menentukan kemampuan sebagai jangkauan lengan robot ketika melakukan gerakkan. Bagian yang berperan sebagai penggerak adalah sendi (joint) terhubung langsung dengan motor RC servo. Gerakkan yang terjadi pada joint di setiap bagian pangkal dari link adalah rotasi. Gerakkan secara rotasi menyebabkan adanya perbedaan besarnya sudut-
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
27
sudut yang terjadi pada setiap penghubung (link) dari titik acuan awal yaitu pada bagian pangkal dari bahu (shoulder). Motor RC servo yang digunakan sebanyak 5 buah. Pemilihan motor RC servo yang digunakan pada setiap joint berdasarkan pada kemampuan yang harus dimiliki setiap joint untuk mengangkat beban. Beban dapat berupa lengan (link) dan benda yang diangkat. Kemampuan motor untuk berputar dengan suatu beban merupakan gaya putar yang disebut torsi (torque). Berikut ini perkiraan berat lengan penghubung (link) pada perancangan lengan robot: Tabel 3.1. Tabel perkiraan berat lengan dan beban yang diangkat lengan pada perancangan lengan robot NO.
Lengan Penghubung (link)
Perkiraan Berat setiap lengan
Beban yang diangkat setiap lengan
1.
End effector
100gr
100gr
2.
Pitch
120gr
220gr
3.
Elbow
200gr
420gr
4.
Shoulder
500gr
920gr
5.
Base
200gr
200gr
Tabel 3.1. menunjukkan perkiraan berat setiap lengan merupakan total berat dari material lengan dan motor RC servo yang menempel pada lengan. Kolom beban yang diangkat setiap lengan merupakan penjumlahan berat dari keseluruhan beban yang harus diangkat oleh setiap lengan. Perancangan mekanik untuk desain lengan robot peniru gerakan tangan manusia menggunakan material aluminium karena ringan dan mudah dikerjakan. Tabel 3.1. menunjukkan bagian base diasumsikan memiliki berat yang ringan walaupaun terletak paling dasar karena bagian base tidak terbebani oleh berat keseluruhan dari prototype lengan robot karena seluruh lengan robot sudah ditopang oleh empat buah tiang penyangga. Perancangan mekanik motor RC servo yang digunakan hanya untuk memutar bagian base yang memiliki torsi yang tidak terlalu besar yaitu diperkirakan sebesar10 kg.cm.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
28
Gambar 3.4. Design end effector
Gambar 3.4. merupakan gambar design end effector yang akan digunakan pada ujung lengan robot peniru gerakan tangan manusia. Bagian ini dirancang memiliki berat maksimal adalah 100gram dan memiliki ujung berupa spidol yang bebannya cukup ringan. Beban pada ujung robot cukup ringan sehingga gerakan robot tidak terbebani cukup besar oleh end effector. Ujung berupa spidol maka lengan robot tersebut dapat dengan mudah dibandingkan gerakannya, apakah gerakannya sama seperti gerakan lengan manusia atau user. Bagian pitch beban yang harus diangkat adalah 220gram karena bagian pitch selain mengangkat lengannya sendiri juga harus mengangkat seluruh bagian gripper. Bagian pitch memiliki panjang 5 cm dan bagian gripper sampai ujung jari memiliki panjang 7 cm, sehingga panjang lengan yang harus diangkat adalah 12 cm. Berikut adalah perhitungan untuk merancang torsi pada bagian pitch berdasarkan persamaan 2.1. dan 2.2. : = 220
= 12 =
2,2
= 0,22 = 0,22
∗ 0,1 = 0,22
Dimana, 1 =
= 0,1
= 0,22
∗ 10
∗ 12
⁄
= 2,2
= 2,64
= 2,2
.
⁄
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
29
Bagian elbow beban yang harus diangkat adalah 420 gram, sedangkan panjang lengan yang harus diangkat motor RC servo adalah 24 cm yang dihitung dari panjang lengan elbow, panjang lengan pitch dan panjang end effector. Kebutuhan torsi motor RC servo pada perancangan lengan robot berdasarkan persamaan 2.1. dan 2.2. : = 420
= 24 =
4,2
= 0,42 = 0,42
∗ 0,1 = 0,42
Dimana, 1 =
= 0,1
= 0,42
∗ 10
∗ 24
⁄
= 4,2
= 10,08
= 4,2
⁄
.
Bagian shoulder beban yang harus diangkat adalah 920 gram, sedangkan panjang
lengan yang harus diangkat motor RC servo adalah 42 cm yang dihitung dari panjang lengan shoulder, panjang lengan elbow, panjang lengan pitch dan panjang end effector. Kebutuhan torsi motor RC servo pada perancangan lengan robot berdasarkan persamaan 2.1. dan 2.2. : = 920
= 42 =
9,2
= 0,92 = 0,92
∗ 0,1 = 0,92
Dimana, 1 =
= 0,1
= 0,92
∗ 10
∗ 42
⁄
= 9,2
= 38,64
= 9,2
.
⁄
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
30
Berdasarkan perhitungan kebutuhan torsi pada bagian shoulder memang menunjukkan torsi yang dibutuhkan sangat besar. Hal tersebut akan membuat kesulitan tersendiri dalam mencari motor RC servo dengan torsi yang sangat besar. Oleh sebab itu, pada bagian shoulder perancangan menggunakan 2 buah motor RC servo dengan torsi masing-masing motornya lebih besar dari 19,32 Kg.cm (38,64 Kg.cm : 2 = 19,32 Kg.cm) yang akan dipasang pada shoulder 1 dan shoulder 2.
Z X Y a
Gambar 3.5. Tampilan seluruhnya design gambar 3D lengan robot Gambar 3.5. merupakan seluruh tampilan design lengan robot. Lengan robot tersebut memiliki 3 buah sumbu koordinat, yaitu X, Y, dan Z. Koordinat tersebut berguna untuk mengetahui posisi dari end point lengan robot tersebut. Design lengan robot yang dikendalikan oleh motor servo memiliki gerakan yang terbatas. Motor servo yang digunakan memiliki batas putar. Batas putar motor servo yang digunakan adalah 1800 . Tetapi sudut yang digunakan pada lengan robot tidak digunakan pada posisi maksimal. Sudut yang digunakan disesuaikan dengan sudut maksimal pada lengan manusia atau user. Sudut maksimal yang dapat di jangkau oleh lengan robot sebagai berikut :
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
31
Tabel 3.2. Tabel sudut maksimal yang dapat digunakan motor servo sesuai sudut lengan manusia NO.
Lengan Penghubung (link)
Panjang lengan
Sudut maksimal yang dapat dijangkau
1
Pitch + End Effector
12cm
1800
2
Elbow
12cm
1800
3
Shoulder
18cm
1800
4
Base ( berputar pada poros )
0cm
1800
3.1.2. Perancangan Elektrik Perancangan elektrik terbagi menjadi tiga bagian yaitu ; Perancangan rangkaian pengendali utama, Perancangan rangkaian Flex sensor, dan Perancangan rangkaian motor servo. Rangkaian pengendali utama merupakan rangkaian yang menjadi otak dari lengan robot tersebut terdapat mikrokontroler sebagai pengendali. Mikrokontroler yang digunakan adalah Arduino Mega 2560 R3 dan Arduino Uno R3. Selain itu juga terdapat Servo Controller sebagai driver untuk mengendalikan motor servo. Servo Controller tersebut digunakan agar gerakan dari motor servo tersebut dapat bergerak dengan baik dan tidak terjadi noise atau gangguan saat motor bekerja. Terdapat pula rangkaian flex sensor, yang digunakan untuk membaca output dari flex sensor. Output dari flex sensor akan diolah untuk menjadi pengontrol gerakan dari motor servo. Bagian yang ketiga adalah rangkaian motor servo. Penggerak atau aktuator dari lengan robot ini menggunakan motor RC servo. Motor servo tersebut akan digerakkan dengan menggunakan servo controller. Motor servo tersebut dapat bergerak secara bersamaan maupun secara sekuensial.
3.1.2.1. Perancangan Rangkaian pengendali utama Rangkaian pengendali utama terdapat tiga buah yang digunakan untuk mengontrol gerakan lengan robot. Pengendali tersebut adalah Arduino Mega 2560 R3, Arduino Uno R3, dan Adafruit 16-Channel 12-Bit PWM / Servo Shield – I2C Interface.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
32
Arduino Mega 2560 R3 dan Arduino Uno R3 dihubungkan dengan cara komunikasi serial menggunakan UART TTL Arduino, yaitu menggunakan pin TX dan RX untuk melakukan kamunikasi serial. Pin TX Arduino Uno R3 dihubungkan pada pin RX Arduino Mega 2560 dan Pin RX Arduino Uno R3 dihubungkan pada pin TX Arduino Mega 2560 agar dapat berkomunikasi. Komunikasi serial yang digunakan tersebut menggunakan program yang berbeda sehingga dapat menggunakan pin 10 dan pin 11 untuk komunikasi serial, sebagai pengganti pin TX dan pin RX yang sudah ada. Arduino Mega 2560 dikomunikasikan dengan Adafruit 16-Channel 12-Bit PWM / Servo Shield – I2C Interface. Komunikasi tersebut menggunakan komunikasi I2C, komunikasi tersebut memanfaatkan pin SDA dan SCL pada Arduino Mega 2560 dan pada Adafruit 16-Channel 12-Bit PWM / Servo Shield – I2C Interface.
Gambar 3.6. Gambar koneksi serial tx rx Komunikasi I2C dipilih karena pengiriman data lebih cepat dan tidak mengganggu komunikasi serial antara Ardunio Mega 2560 dengan Arduino Uno. Agar tetap dapat melakukan komunikasi serial antara Arduino Mega 2560 dan Arduino Uno R3. Serta komunikasi I2C pada Arduino Mega 2560 dengan Adafruit 16-Channel 12-Bit PWM / Servo Shield – I2C Interface tetap dapat bekerja untuk menggerakkan motor servo.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
33
Adafruit 16-Channel 12-Bit PWM / Servo Shield – I2C Interface tersebut dapat menggerakkan 16 servo secara bersamaan atau sekuensial. Servo controller tersebut menggunakan sumber tegangan yang terpisah dengan arduino.
Gambar 3.7. Gambar koneksi komunikasi i2c
3.1.2.2. Perancangan Rangkaian Flex sensor Perancangan rangkaian Flex Sensor, menggunakan rangkaian pembagi tegangan. Alasan menggunakan rangkaian pembagi tegangan dikarenakan keluaran dari Flex Sensor berupa hambatan atau resistensi. Keluaran dari rangkaian pembagi tegangan tersebut akan dihubungkan ke ADC ( Analog to Digital Converter ) pada Arduino Mega 2560 R3.
Gambar 3.8. Contoh pemasangan Flex Sensor [17]
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
34
Gambar 3.9. Gambar rangkaian flex sensor pada skematik Perhitungan yang digunakan pada rangkaian flex sensor mengacu pada persamaan 2.5. persamaan pembagi tegangan sebagai berikut : R1 = R Flex Sensor = 10Kohm – 40Kohm ; berdasarkan datasheet Spectra Symbol[13] R2 = 10Kohm Vin = 5 Vdc
Saat Flex Sensor Lurus ; berdasarkan datasheet Spectra Symbol[13] =5
∗
10 ( 10 + 10
)
= 2,5
Saat Flex Sensor Bengkok ; berdasarkan datasheet Spectra Symbol[13] =5 =1
∗
10 ( 40 + 10
)
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
35
Keluaran dari sensor tersebut dihubungkan ke ADC ( Analog to Digital Converter ) pada Arduino Uno R3 seperti pada gambar 3.10.
Gambar 3.10. Gambar sambungan output flex sensor ke ADC Arduino.
3.1.2.3. Perancangan Rangkaian Motor servo Perancangan aktuator yang digunakan adalah motor servo. Motor servo yang digunakan berjumlah 5 buah untuk menggerakkan lengan. Motor servo tersebut akan dihubungkan secara langsung ke servo controller tanpa perlu menggunakan rangkaian tambahan sebagai pendukung rangkaian tersebut. Motor servo tersebut digerakkan dengan menggunakan Adafruit 16-Channel 12-Bit PWM / Servo Shield – I2C Interface yang dihubungkan dengan Arduino Mega 2560. Antara Adafruit 16Channel 12-Bit PWM / Servo Shield – I2C Interface dengan Arduino Mega 2560 dihubungkan dengan komunikasi I2C. Komunikasi I2C tersebut menggunakan port SDA dan SCL.
Gambar 3.11. Gambar rangkaian motor servo untuk lengan
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
36
Port tersebut digunakan untuk transfer data serial antara Servo Controller dengan Arduino. Saat Arduino Mega 2560 tersebut memberikan perintah tertentu pada servo controler, maka servo controller tersebut akan langsung melakukan perintah yang diberikan untuk menggerakkan motor servo tersebut.
Gambar 3.12 Gambar Port Adafruit 16-Channel 12-Bit PWM / Servo Shield – I2C Interface yang akan dihubungkan ke motor servo
3.2.
Perancangan Perangkat Lunak Secara Umum ( Software ) Gambar 3.13. merupakan diagram alir perancangan perangkat lunak secara umum.
Diagram alir tersebut menggambarkan cara kerja dari program lengan robot yang dibuat. Mulai dari pembacaan sensor hingga menggerakkan motor servo. Pengendalian lengan robot menggunakan dua buah mikrokontroler sebagai pengendali utama. Program lengan robot tersebut selalu diawali dengan inisialisasi. Kedua buah mikrokontroler saling terhubung secara serial, agar mikrokontroler tersebut dapat berkomunikasi. Mikrokontroler 1 digunakan untuk mengolah data dari sensor yang digunakan oleh user pada lengan. Mikrokontroler 2 digunakan untuk memberi pulsa-pulsa untuk menggerakkan motor servo melalui
servo
kontroler.
Servo
kontroler
tersebut
telah
dikomunikasi
dengan
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
37
mikrokontroler 2 secara I2C, sehingga komunikasi serial antara mikrokontroler 1 dan mikrokontroler 2 tidak terganggu.
Gambar 3.13. Diagram alir perancangan perangkat lunak secara umum
3.2.1. Perangkat Lunak Program Flex Sensor
Gambar 3.14. Diagram alir perancangan perangkat lunak program flex sensor
Gambar 3.14. merupakan diagram alir dari program pembacaan flex sensor yang terpasang pada lengan user. Output dari sensor yang merupakan data analog di masukkan
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
38
pada ADC ( Analog to Digital Converter ) mikrokontroler. Data yang akan dikirimkan berjumlah 4 dan setiap data tersebut dimasukkan dalam sebuah register. Register tersebut dikirimkan secara berurutan ke mikrokontroller 2 dengan komunikasi serial.
3.2.2. Perangkat Lunak Program Motor Servo
Gambar 3.15. Diagram alir perangkat lunak program motor servo Gambar 3.15 merupakan diagram alir perangkat lunak program
motor servo.
Program untuk motor servo ini terletak pada mikrokontroler 2. Mikrokontroler 2 digunakan untuk mengendalikan gerakan motor servo dengan memberikan masukan pulsa-pulsa melalui servo kontroler. Melalui mikrokontroler digunakan sebagai kalibrasi motor servo. Kalibrasi dilakukan dengan tujuan supaya posisi robot dengan posisi lengan user posisinya sama.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
BAB IV HASIL DAN PEMBAHASAN Hasil implementasi alat beserta dengan pembahasan pada bab ini dibagi menjadi dua bagian yaitu hasil perancangan pada perangkat keras dan hasil perancangan pada perangkat lunak. Hasil implementasi lengan robot peniru gerakan tangan manusia ini secara keseluruhan sudah sesuai dengan perancangan pada BAB III.
4.1.
Hasil Perancangan Perangkat Keras Hasil Perancangan perangkat keras pada lengan robot peniru gerakan tangan
manusia ini terdiri atas beberapa bagian, diantaranya adalah mekanik lengan robot, elektrik pada bagian robot, elektrik pada bagian lengan manusia. Gambar 4.1. merupakan bagian mekanik lengan robot. Keterangan : 2
1
3
1. Bagian Pitch dan End Effector 2. Bagian Elbow 3. Bagian Shoulder 4. Bagian Base
4 Gambar 4.1. Mekanik lengan robot Gambar 4.2. merupakan motor servo yang digunakan untuk menggerakkan bagian shoulder, elbow, dan pitch yang disambung dengan end effector. Lengan pitch menggunakan servo Hitec HS-645MG Ultra Torque yang memiliki torsi 8 – 10 kg/cm pada tegangan 4,8 - 6 volt dan menggunakan metal gear. Lengan elbow menggunakan servo TowerPro MG946R yang memiliki torsi 10,5 – 13 kg/cm pada tegangan 4,8 - 6 volt dan menggunakan metal gear. Lengan shoulder menggunakan servo Hitec HS-805MG Mega
39
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
40
Giant Scale yang memiliki torsi 19,8 – 24,7 kg/cm pada tegangan 4,8 - 6 volt dan menggunakan metal gear. Selain itu motor servo yang digunakan untuk menggerakkan bagian base, motor servo tersebut telah ditambahkan transmisi roda gigi dengan rasio perbandingan 1:1 sehingga putaran bagian base sama dengan putaran motor servo yang ditunjukkan pada Gambar 4.3. Bagian base menggunakan servo TowerPro MG946R yang memiliki torsi 10,5 – 13 kg/cm pada tegangan 4,8 - 6 volt dan menggunakan metal gear.
Keterangan :
1
1. Motor Pitch 2. Motor Elbow 3. Motor Shoulder 1 dan 2
2
3 Gambar 4.2. Motor servo penggerak bagian shoulder, elbow, dan pitch
Gambar 4.3. Motor base yang dihubungkan dengan transmisi gear rasio 1:1
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
41
Hasil perancangan rangkaian elektrik pada bagian robot terdiri dari konektor motor servo, mikrokontroler Arduino Mega 2560, port komunikasi serial, dan servo controller shield. Konektor motor servo digunakan untuk menghubungkan antara motor servo dengan servo controller shield ditunjukkan pada Gambar 4.4. Mikrokontroler Arduino Mega 2560, servo controller shield dan port komunikasi serial dihubungkan secara stackable sehingga tidak memerlukan banyak tempat pada bagian lengan robot. Gambar 4.5. merupakan hasil perancangan rangkaian elektrik yang dihubungkan secara stackable.
Gambar 4.4. Konektor motor servo Keterangan : 1
2 3
1. Port Komunikasi Serial 2. Servo Controller Shield 3. Arduino Mega 2560
Gambar 4.5. Arduino Mega 2560, Servo Controller Shield, dan port komunikasi serial dihubungkan secara stackable Hasil perancangan elektrik bagian lengan manusia terbagi menjadi : bagian flex sensor, mikrokontroler Arduino Uno, rangkaian pembagi tegangan, port komunikasi serial, indicator led, dan tombol. Bagian flex sensor terbagi menjadi bagian pitch atau hand,
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
42
elbow, shoulder, dan bagian base. Setiap bagian flex sensor tersebut diletakkan pada bagian lengan manusia atau user sebagai pengendali gerakan lengan robot tersebut. Lengan manusia flex sensor diletakkan pada bagian pergelangan tangan, suku, bahu, dan dibagian dada dibawah tulang selangka. Flex sensor yang digunakan berjumlah 6 buah
ditunjukan pada Gambar 4.6. Mikrokontroler Arduino Uno digunakan untuk
membaca tegangan input yang dihasilkan oleh rangkaian pembagi tegangan flex sensor. Tegangan input tersebut dibaca melalui ADC ( Analog to Digital Converter ) mikrokontroler. Rangkaian pembagi tegangan dan port komunikasi serial, diletakkan diatas Arduino Uno yang dihubungkan secara stackable terdapat pada Gambar 4.7.
Gambar 4.6. Flex sensor yang dipasangkan pada tangan manusia
Gambar 4.7. Rangkaian pembagi tegangan dan port komunikasi serial yang dihubungkan secara stackable dengan Arduino Uno
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
43
Gambar 4.8. merupakan hasil perancangan elektrik pada bagian tangan manusia atau user. Flex sensor yang digunakan tersebut dihubungkan pada ADC ( Analog to Digital Converter ) Arduino Uno. Sehingga output dari sensor dapat dibaca oleh mikrokontroler. Flex sensor yang digunakan berjumlah 6, yang akan dipasangkan pada tangan manusia atau user. Bagian tangan manusia akan terletak pada pergelangan tangan, siku, bahu, dan pada bagian dada tepatnya pada tulang belikat dan selangka.
Gambar 4.8. Hasil perancangan elektrik pada bagian tangan manusia atau user Gambar 4.9. menunjukkan bahwa bagian elektrik lengan robot dan bagian elektrik lengan manusia dihubungkan secara serial menggunakan 3 buah kabel yaitu : kabel untuk Tx, Rx, dan Ground. Komunikasi serial tersebut menggunakan pin 10 dan 11 sebagai pengganti pin Tx dan Rx yang telah ada. Hal tersebut dilakukan supaya ketika transfer program tidak terganggu dengan pengiriman data dari mikrokontroler 1 ke mikrokontroler 2. Saat memonitor data yang diterima maupun dikirim tidak terjadi masalah pada komunikasi serialnya.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
44
Gambar 4.9. Bagian elektrik lengan robot dan elektrik lengan manusia yang dihubungkan dengan komunikasi serial tx dan rx
4.2.
Hasil Pengujian dan Analisa
4.2.1. Pengujian Flex Sensor Pada bab perancangan, diawal telah dilakukan pengujian pada rangkaian flex sensor apakah berfungsi dengan baik. Namun dilakukan kembali pengujian dan pencatatan data dari output tegangan rangkaian flex sensor dengan lebih teliti. Rangkaian flex sensor menggunakan tegangan sumber / Vs = 4,98 Vdc. Tabel 4.1. merupakan hasil keluaran dari rangkaian pembagi tegangan pada flex sensor. Hasil yang diperoleh memiliki perubahan nilai tegangan yang cukup linear terhadap perubahan sudut lengkungan. Nilai yang cukup linear tersebut diperoleh pada lengkungan satu arah yaitu dari 0o – 90o. Data yang telah didapat dan dicatatkan pada Tabel 4.1. sebagai berikut : Tabel 4.1. Tabel output tegangan rangkaian flex sensor Sudut Lengkungan 0o 10
o
20
o
30
o
40
o
Pitch
Output Tegangan Rangkaian Flex Sensor ( V ) Pitch Elbow Shoulder Base Base
( A0 )
( A1 )
( A2 )
( A4 )
( A5 )
( A6 )
1,78
1,84
1,86
1,62
1,34
1,48
1,81
1,88
1,92
1,65
1,37
1,52
1,84
1,92
1,98
1,70
1,4
1,58
1,9
1,97
2,08
1,74
1,42
1,65
1,95
2,04
2,17
1,80
1,49
1,70
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI Tabel 4.2. ( Lanjutan ) Tabel output tegangan rangkaian flex sensor Sudut
Output Tegangan Rangkaian Flex Sensor ( V ) Pitch Elbow Shoulder Base Base ( A1 ) ( A2 ) ( A4 ) ( A5 ) ( A6 )
Lengkungan
Pitch ( A0 )
50 o
2,01
2,1
2,26
1,87
1,55
1,80
2,07
2,16
2,37
1,95
1,63
1,88
2,13
2,24
2,48
2,03
1,71
1,97
2,19
2,32
2,56
2,13
1,79
2,06
2,27
2,40
2,63
2,27
1,89
2,18
2,37
2,43
2,67
2,35
2,01
2,24
2,42
2,44
2,69
2,39
2,09
2,29
2,45
2,44
2,70
2,43
2,14
2,32
2,47
2,45
2,71
2,45
2,17
2,34
2,49
2,46
2,72
2,47
2,18
2,36
2,5
2,46
2,72
2,48
2,2
2,37
2,52
2,46
2,73
2,48
2,2
2,37
2,52
2,46
2,73
2,49
2,21
2,38
2,53
2,47
2,73
2,49
2,22
2,38
60
o
70
o
80
o
90
o
100
o
110
o
120
o
130
o
140
o
150
o
160
o
170
o
180
o
Gambar 4.10. Grafik keluaran sensor bagian pitch ( A0 )
45
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
46
Gambar 4.10. merupakan grafik keluaran flex sensor yang digunakan untuk menggerakkan bagian pitch lengan robot. Keluaran tegangan dari sensor tersebut perubahannya linear terhadap perubahan kelengkungan sensor tersebut. Pengujian yang telah dilakukan terhadap flex sensor tersebut memiliki nilai kelinearan R2 = 0,953. Nilai kelinearan tersebut dapat diperoleh pada rentang kelengkungan 0o – 90o. Gambar 4.11. merupakan grafik keluaran flex sensor yang digunakan untuk menggerakkan bagian pitch lengan robot. Keluaran tegangan dari sensor tersebut perubahannya linear terhadap perubahan kelengkungan sensor tersebut. Pengujian yang telah dilakukan terhadap flex sensor tersebut memiliki nilai kelinearan R2 = 0,873. Nilai kelinearan tersebut dapat diperoleh pada rentang kelengkungan 0o – 90o.
Gambar 4.11. Grafik keluaran sensor bagian pitch ( A1 ) Bagian pitch lengan robot dikendalikan dengan mendeteksi gerakan pada pergelangan tangan manusia. Pergelangan tangan manusia memiliki gerakan dengan rentang 0o – 180o sehingga memerlukan dua buah flex sensor untuk mendeteksinya. Flex sensor tersebut dipasang dengan orientasi yang berbeda. Flex sensor tersebut arah pembacaan gerakan atau lengkungannya saling bertolak belakang sehingga gerakan pada pergelangan tangan manusia dapat terdeteksi semua.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
47
Gambar 4.12. Grafik keluaran sensor bagian elbow ( A2 ) Gambar 4.12. merupakan grafik keluaran flex sensor yang digunakan untuk menggerakkan bagian elbow lengan robot. Keluaran tegangan dari sensor tersebut perubahannya linear terhadap perubahan kelengkungan sensor tersebut. Pengujian yang telah dilakukan terhadap flex sensor tersebut memiliki nilai kelinearan R2 = 0,861. Nilai kelinearan tersebut dapat diperoleh pada rentang kelengkungan 0o – 90o. Bagian elbow lengan robot dikendalikan dengan mendeteksi gerakan pada siku tangan manusia.
Gambar 4.13. Grafik keluaran sensor bagian shoulder ( A4 )
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
48
Gambar 4.13. merupakan grafik keluaran flex sensor yang digunakan untuk menggerakkan bagian shoulder lengan robot. Keluaran tegangan dari sensor tersebut perubahannya linear terhadap perubahan kelengkungan sensor tersebut. Pengujian yang telah dilakukan terhadap flex sensor tersebut memiliki nilai kelinearan R2 = 0,931. Nilai kelinearan tersebut dapat diperoleh pada rentang kelengkungan 0o – 90o. Bagian shoulder lengan robot digerakkan dengan menggunakan dua buah motor servo. Motor servo tersebut bergerak bersamaan sehingga dapat menghasilkan torsi yang lebih besar untuk mengangkat bagian end effector, pitch, dan elbow. Bagian shoulder bergerak dengan mendeteksi gerakan pada bahu tangan manusia.
Gambar 4.14. Grafik keluaran sensor bagian base ( A5 ) Gambar 4.14. dan Gambar 4.15 merupakan grafik keluaran flex sensor yang digunakan untuk menggerakkan bagian base lengan robot. Keluaran tegangan dari sensor tersebut perubahannya linear terhadap perubahan kelengkungan sensor tersebut. Pengujian yang telah dilakukan terhadap flex sensor tersebut memiliki nilai kelinearan R2 = 0,947 dan R2 = 0,926. Nilai kelinearan tersebut dapat diperoleh pada rentang kelengkungan 0o – 90o. Bagian bawah bahu atau bagian tulang belikat dan tulang selangka dideteksi gerakannya dengan menggunakan flex sensor sehingga dapat menggerakkan base lengan robot. Bagian bawah bahu tersebut mempunyai gerakan yang lebar dengan rentang 0o – 180o sehingga memerlukan dua buah flex sensor untuk mendeteksi gerakan tersebut.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
49
Gambar 4.15. Grafik keluaran sensor bagian base ( A6 ) Seluruh grafik keluaran flex sensor memiliki karakteristik yang sama yaitu nilai kelinearan yang dimiliki sensor terletak pada rentang lengkungan 0o – 90o . Nilai kelinearan yang dihasilkan sensor tersebut cukup linear dengan nilai kelinearan R2 yang mendekati nilai 1 atau dapat dikatakan linear.
Gambar 4.16. Flex sensor pada bagian pergelangan tangan dan bawah bahu Gambar 4.16. merupakan gambar dua flex sensor yang dipasang berbeda orientasinya. Flex Sensor tersebut dipasang dengan posisi saling bertolak belakang. Flex sensor tersebut dipasang dengan cara demikian bertujuan untuk dapat mendeteksi gerakan lengan manusia yang memiliki rentang 0o – 180o. Flex sensor yang digunakan hanya mempunyai 1 arah lengkungan yang nilainya linear sehingga memerlukan 2 buah flex sensor untuk mendeteksi gerakan 0o – 180o. Bagian lengan manusia yang memiliki rentang gerakan antara 0o - 180o adalah bagian pergelangan tangan dan pada bagian bawah bahu
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
50
atau pada bagian tulang belikat dan selangka. Bagian lengan tersebut memerlukan dua buah flex sensor untuk mendeteksi gerakan lengan tersebut.
Gambar 4.17. Flex sensor pada bagian siku dan bahu Bagian siku dan bagian bahu lengan manusia memiliki rentang gereakan 0 o – 90o sehingga dapat dideteksi gerakannya hanya dengan 1 flex sensor seperti Gambar 4.17. Flex sensor yang digunakan hanya dapat mendeteksi gerakan satu arah saja dan nilai yang dihasilkan cukup linear pada satu arah lengkungan saja seperti pada grafik sensor A2 dan grafik sensor A4.
4.2.2. Pengujian Analog to Digital Converter Flex Sensor ADC merupakan bagian yang sangat penting untuk lengan robot peniru gerakan tangan manusia. Diperlukan pengujian ADC pada alat ini. Ini bertujuan untuk menentukan bahwa dapat atau tidak dapatnya ADC ini digunakan sebagai pengubah tegangan analog menjadi bilangan dalam bentuk bit-bit digital. Pada program arduino didalamnya sudah memiliki konversi ADC, sehingga dari input analog yang di terima oleh arduino dapat langsung diubah kedalam bit data digital. Bit data digital arduino memiliki rentang mulai dari 0 – 1023. Sehingga nilai input sensor yang memiliki rentang dari 0 -5 volt maka akan langsung diubah kedalan data digital dengan rentang 0 -1023. Data hasil pengujian analog to digital converter pada saat flex sensor kondisi lurus ( 90o ) dan pada saat kondisi flex sensor membengkok ( membengkok kearah 0o dan 180o ) dapat dilihat pada Tabel 4.2. berikut ini :
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
Sudut Lengkungan 0o 10
o
20
o
30
o
40
o
50
o
60
o
70
o
80
o
90
o
100
o
110
o
120
o
130
o
140
o
150
o
160
o
170
o
180
o
51
Table 4.3. Tabel output ADC pada rangkaian flex sensor Output ADC Pada Rangkaian Flex Sensor Pitch
Pitch
Elbow
Shoulder
Base
Base
( A0 )
( A1 )
( A2 )
( A4 )
( A5 )
( A6 )
505
519
463
513
567
535
507
519
464
513
569
535
508
519
465
515
571
537
511
519
466
517
573
539
513
519
467
519
575
541
515
520
469
523
578
542
520
521
471
529
583
544
526
525
475
537
597
555
534
527
481
549
617
568
554
532
492
564
640
585
571
542
507
596
664
611
586
559
525
619
679
631
600
579
547
640
696
649
615
599
567
655
709
665
628
615
586
667
720
682
638
625
604
678
734
696
648
637
619
688
742
707
655
645
634
695
751
720
662
653
650
701
756
728
4.2.3. Pengujian Gerakan Lengan Robot Perancangan lengan robot peniru gerakan tangan manusia. Gerakan yang dilakukan oleh lengan robot tersebut dirancang untuk meniru gerakan tangan manusia atau user yang mengendalikannya dengan menggunakan flex sensor sebagai pengendali. Gerakan-gerakan yang dapat ditiru oleh lengan robot sebagai berikut : Gambar 4.18. manunjukkan gerakan lengan robot dapat bergerak sama seperti gerakan tangan pengguna. Bagian pergelangan tangan pengguna akan sama gerakanannya pada bagian pitch di lengan robot.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
52
Bagian elbow pada lengan robot bergerak berdasarkan gerakan yang dideteksi oleh flex sensor pada bagian siku tangan manusia. Gerakan pada lengan robot akan sama seperti gerakan pada lengan manusia pada bagian siku Gambar 4.19.
Gambar 4.18. Bagian pitch dan pergelangan tangan manusia
Gambar 4.19. Bagian elbow dan siku tangan manusia Bagian bahu tangan manusia menggunakan sebuah flex sensor digunakan untuk mendeteksi gerakannya. Bagian shoulder lengan robot akan bergerak sesuai dengan gerakan bahu lengan manusia seperti pada Gambar 4.20. Bagian bawah bahu lengan manusia menggunakan dua buah flex sensor. Flex sensor tersebut digunakan untuk mendeteksi gerakannya sehingga dapat menggerakan
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
53
bagian base pada lengan robot. Bagian base dapat berputar dari 0o – 180o seperti pada Gambar 4.21.
Gambar 4.20. Bagian shoulder dan bahu tangan manusia
Gambar 4.21. Bagian base dan bagian bawah bahu tangan manusia Pengujian gerakan lengan robot peniru gerakan tangan manusia menunjukkan bahwa gerakan lengan robot sudah dapat meniru gerakan tangan manusia meskipun gerakan lengan robot tersebut terbatas. Gerakan lengan robot tersebut hanya dapat bergerak dengan 4 DOF. Berbeda dengan lengan menusia yang memiliki lebih dari 4 DOF. Tabel 4.4. Tabel pengujian gerakan motor servo bagian pitch SUDUT 0 10 20
SENSOR ( V ) PITCH ( A0 ) PITCH ( A1 ) 1,78 2,47 1,81 2,46 1,84 2,46
PULSA MOTOR 335 357 381
SUDUT MOTOR 0 9 19
% ERROR #DIV/0! 10 5
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI Tabel 4.5. ( Lanjutan ) Tabel pengujian gerakan motor servo bagian pitch SUDUT 30 40 50 60 70 80 90 100 110 120 130 140 150 160 170 180
SENSOR ( V ) PULSA PITCH ( A0 ) PITCH ( A1 ) MOTOR 1,9 2,46 405 1,95 2,46 433 2,01 2,45 457 2,07 2,44 481 2,13 2,44 507 2,19 2,43 533 2,27 2,4 558 2,37 2,32 583 2,42 2,24 608 2,45 2,16 632 2,47 2,1 658 2,49 2,04 683 2,5 1,97 708 2,52 1,92 732 2,52 1,88 758 2,53 1,84 783 RATA-RATA % ERROR
SUDUT MOTOR
% ERROR
29 39 48 58 68 79 89 98 108 119 128 139 149 158 168 178
3,33333333 2,5 4 3,33333333 2,85714286 1,25 1,11111111 2 1,81818182 0,83333333 1,53846154 0,71428571 0,66666667 1,25 1,17647059 1,11111111 2,4718573
Tabel 4.6. Tabel pengujian gerakan motor servo bagian elbow SUDUT 0 10 20 30 40 50 60 70 80 90
SENSOR ( V ) PULSA ELBOW ( A2 ) MOTOR 1,86 365 1,92 388 1,98 412 2,08 438 2,17 462 2,26 488 2,37 513 2,48 538 2,56 563 2,63 588 RATA-RATA % ERROR
SUDUT MOTOR 0 7 18 28 38 47 58 68 78 87
% ERROR #DIV/0! 30 10 6,6666667 5 6 3,3333333 2,8571429 2,5 3,3333333 7,7433862
Tebel 4.7. Tabel pengujian gerakan motor servo bagian shoulder SUDUT 0 10
SENSOR ( V ) SHOULDER ( A4 ) 1,62 1,65
PULSA MOTOR 1 355 377
PULSA MOTOR 2 355 377
SUDUT
% ERROR
0 9
#DIV/0! 10
54
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
55
Tebel 4.8.( Lanjutan ) Tabel pengujian gerakan motor servo bagian shoulder SUDUT 20 30 40 50 60 70 80 90
SENSOR ( V ) PULSA PULSA MOTOR 2 SHOULDER ( A4 ) MOTOR 1 1,7 402 402 1,74 428 428 1,8 452 452 1,87 478 478 1,95 503 503 2,03 528 528 2,13 553 553 2,27 578 578 RATA-RATA % ERROR
SUDUT
% ERROR
18 28 39 48 59 68 79 88
10 6,666667 2,5 4 1,666667 2,857143 1,25 2,222222 4,573633
Tabel 4.9. Tabel pengujian gerakan motor servo bagian base SUDUT 0 10 20 30 40 50 60 70 80 90 100 110 120 130 140 150 160 170 180
SENSOR ( V ) PULSA BASE ( A5 ) BASE ( A6 ) MOTOR 1,34 2,38 292 1,37 2,38 313 1,4 2,37 339 1,42 2,37 363 1,49 2,36 388 1,55 2,34 412 1,63 2,32 438 1,71 2,29 463 1,79 2,24 486 1,89 2,18 512 2,01 2,06 538 2,09 1,97 563 2,14 1,88 587 2,17 1,8 614 2,18 1,72 638 2,2 1,65 663 2,2 1,58 687 2,21 1,52 714 2,22 1,48 739 RATA-RATA % ERROR
SUDUT
% ERROR
0 8 18 28 39 47 58 68 78 88 98 108 118 127 138 148 158 167 178
#DIV/0! 20 10 6,666667 2,5 6 3,333333 2,857143 2,5 2,222222 2 1,818182 1,666667 2,307692 1,428571 1,333333 1,25 1,764706 1,111111 3,93109
Dari pengujian gerakan motor yang telah dilakukan pada setiap motor. Data gerakan motor servo yang bergerak berdasarkan gerakan tangan manusia telah di catat pada tabel untuk setiap gerakan motor servo. Gerakan motor servo memiliki rata-rata nilai
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
56
error yang cukup kecil yaitu kurang dari 10% error. Untuk setiap motor servo memiliki nilai error yang berbeda-beda hal tersebut terjadi karena setiap tipe motor servo memiliki spesifikasi yang berbeda-beda.
4.3.
Analisa Perangkat Lunak
4.3.1. Inisialisasi Mikrokontroler Lengan User Inisialisasi pada lengan robot peniru gerakan tangan manusia ini berisi tentang pendefinisian dari library dan variabel yang digunakan dalam proses pengoperasian data. Seperti pada bab perancangan pada diagram alir program, bagian dari inisialisasi meliputi input dan output baik digital maupun analog yang digunakan serta setup untuk komunikasi serial. Listing program inisialisasi dari alat ini dapat dilihat seperti pada gambar 4.22.
Gambar 4.22. Listing program inisialisasi bagian lengan user
4.3.2. Pembacaan Sensor Mikrokontroler Lengan User Listing program pembacaan sensor dapat dilihat pada Gambar 4.23. Keluaran dari flex sensor bersifat sangat sensitif. Sehingga bit data pada ADC yang dihasilkan dari output flex sensor nilainya berubah-ubah meskipun tidak ada gerakan yang dilakukan oleh
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
57
lengan user dan rentang nilai output yang dihasilkan oleh flex sensor memiliki rentang nilai yang kecil sehingga perubahan nilainya pada saat sensor membengkok bernilai kecil. Flex sensor yang digunakan hanya memiliki satu arah lengkungan sehingga hanya dapat melengkung dari 0o – 90o . Data yang dihasilkan oleh sensor dikonversi kedalam nilai sudut 0o – 90o. Untuk gerakan lengan user yang lebih dari 90o, maka digunakan dua buah sensor sehingga dapat membaca gerakan lengan hingga 180o. Bagian lengan yang menggunakan dua buah sensor adalah bagian pergelangan tangan dan bagian bahu. Bagian tersebut gerakan lengannya lebih dari 90o. Lengan robot yang dibuat memiliki 4 DOF sehingga hanya 4 sendi yang diberi sensor sesuai dengan lengan robot. Data dari 6 buah sensor yang dipasang pada lengan user dibuat menjadi 4 buah data yang akan dikirim untuk menggerakkan lengan robot tersebut.
Keterangan :
1
1. Konversi data sensor kedalam sudut. 2. Data sensor sebagai penggerak lengan robot.
2
Gambar 4.23. Listing program pembacaan flex sensor bagian lengan user
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
58
4.3.3. Pengiriman Data Sensor Mikrokontroler Lengan User Listing program pengiriman data sensor dapat dilihat pada Gambar 4.24. Pengiriman data sensor menggunakan komunikasi serial, memanfaatkan port Tx dan Rx mikrokontroler. Menggunakan library software mySerial sehingga dapat menggunakan pin 10 dan 11 sebagai port serial. Pengiriman data dilakukan secara berurutan mulai data1 hingga data4 dan berulang lagi. Komunikasi serial tersebut menggunakan bautrate 4800 sebagai kecepatan pengiriman data serial.
Gambar 4.24. Listing program pengiriman data sensor bagian lengan user
Gambar 4.25. Listing program pembacaan data sensor dan pengiriman data serial Pada Gambar 4.25. merupakan pembacaan serial monitor pada program mikrokontroler. Serial monitor menampilkan pembacaaan sensor dan data sensor yang telah diolah, serta data sensor yang dikirim ke mikrokontroler 2 sebagai data untuk menggerakkan motor servo. Pengiriman data dilakukan secara serial sehingga data dikirimkan secara berurutan dari data1 hingga data4.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
59
4.3.4. Inisialisasi Mikrokontroler Robot Inisialisasi pada lengan robot peniru gerakan tangan manusia ini berisi tentang pendefinisian dari library dan variabel yang digunakan dalam proses pengoperasian data. Seperti pada bab perancangan pada diagram alir program, bagian dari inisialisasi meliputi input, output baik digital maupun analog yang digunakan, setup komunikasi i2c dan setup untuk komunikasi serial serta setup motor servo pada servo controller. Listing program inisialisasi dari alat ini dapat dilihat seperti pada Gambar 4.26.
Gambar 4.26. Listing program inisialisasi mikrokontroler robot
4.3.5. Pembacaan Data Serial Mikrokontroler Robot Listing program pembacaan data serial mikrokontroler robot dapat dilihat pada Gambar 4.27. Pembacaan data sensor menggunakan komunikasi serial, memanfaatkan port Tx dan Rx mikrokontroler. Menggunakan library software mySerial sehingga dapat menggunakan pin 10 dan 11 sebagai port serial. Pembacaan data dilakukan secara berurutan mulai data1 hingga data4 dan berulang lagi. Komunikasi serial tersebut menggunakan bautrate 4800 sebagai kecepatan pengiriman data serial. Komunikasi serial dengan diberi syarat apabila ada data yang diterima maka data tersebut dibaca dan dimasukkan kedalam masing-masing register data.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
60
Gambar 4.27. Listing program pembacaan data serial mikrokontroler robot
4.3.6. Menggerakkan Motor Servo Listing program menggerakkan motor servo pada mikrokontroler robot dapat dilihat pada Gambar 4.28. Menggerakkan motor servo menggunakan pulsa-pulsa yang dikeluarkan oleh mikrokontroler melalui motor servo shield. Komunikasi antara mikrokontroler dengan motor servo shield menggunakan komunikasi I2C dengan menggunakan port SDA dan SCL. Dengan menggunakan motor servo shield sehingga program yang digunakan sesuai dengan library pada motor servo shield.
Gambar 4.28. Listing program menggerakkan motor servo Gambar 4.29. menunjukkan penerimaan data serial dari mikrokontroler 1. Data serial tersebut diubah menjadi pulsa – pulsa yang digunakan untuk menggerakkan motor servo. Setiap motor servo memiliki rentang pulsa yang berbeda-beda, hal tersebut terjadi karena motor yang digunakan memiliki tipe dan pembuatan yang berbeda.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
Gambar 4.29. Listing program data serial pulsa motor servo
61
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
BAB V KESIMPULAN DAN SARAN 5.1 Kesimpulan Setelah melakukan perancangan dan pengujian pada lengan robot peniru gerakan tangan manusia, peneliti dapat menarik kesimpulan sebagai berikut : 1. Penelitian yang telah dilakukan dapat disimpulkan bahwa penelitian tersebut sudah berhasil. Gerakan lengan robot sudah dapat mengikuti gerakan tangan manusia secara real time. Berdasarkan pengujian gerakan lengan robot tersebut memiliki rata-rata % error kurang dari 10%. 2. Nilai output dari One directional flex sensor adalah linear terhadap lengkungan gerakan sensor. Nilai keluaran flex sensor yang dihasilkan cukup linear dengan kelinearannya R2 = 0,861 – 0,953. Resolusi output yang dihasilkan oleh flex sensor hanya memiliki resolusi yang kecil sehingga nilai output terlalu mudah berubah walaupun sensor tidak melengkung.
5.2 Saran Berdasarkan hasil implementasi yang diperoleh, untuk pengembangan lebih lanjut ada beberapa saran agar alat ini dapat bekerja lebih baik, yaitu : 1. Perancangan ulang pada konstruksi lengan robot agar lebih kokoh dan stabil. Penggunaan motor servo dengan tipe metal gear yang memiliki torsi besar dan memiliki ketahanan yang baik. 2. One directional flex sensor memiliki keterbatasan dalam arah lengkungan sensor dan range resistansi yang kecil saat melengkung. Oleh sebab itu hindari pembacaan gerakan yang dua arah dan melakukan pembacaan dengan range yang cukup lebar hal itu menyebabkan nilai resistansi yang dihasilkan sering berubah. 3. Membaca lengkungan yang dua arah dapat menggunakan sensor lain seperti BiDirectional Flex Sensor. Selain itu untuk menambah range pembacaan dapat menambahkan rangkaian pengkondisi sinyal sehingga gerakan motor lebih persisi.
62
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
63
4. Komunikasi antara lengan robot dengan lengan manusia atau user, yang pada awalnya menggunakan komunikasi serial dengan kabel TX dan RX. Hal tersebut dapat digantikan dengan menggunakan komunikasi wireless seperti menggunakan Bluethoot, RF, ZigBee, dan Wifi.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
DAFTAR PUSTAKA [1]
Syafruddin, Raden Muhammad dan Fitri, Nyayu , 2012, Perancangan Sistem Kendali Gerak Lengan Robot Pengikut Gerak Lengan Manusia Berbasis Mikrokontroller, http://eprints.mdp.ac.id/430/1/PERANCANGAN%20SISTEM%20KENDALI%20 GERAK%20LENGAN%20ROBOT%20PENGIKUT%20GERAK%20LENGAN% 20MANUSIA%20BERBASIS%20MIKROKONTROLLER.pdf , diakses tanggal 18 Maret 2014
[2]
-------, --------, Konsep Mikrokontroler, http://sistemkomputer.fasilkom.narotama.ac.id/?p=194 , diakses tanggal 18 Maret 2014
[3]
-----, -----, Arduino Mega 2560, http://arduino.cc/en/Main/ArduinoBoardMega2560 , diakses tanggal 18 Maret 2014.
[4]
------, ------, Arduino Uno http://www.seeedstudio.com/depot/images/product/arduinorev31s.jpg maret 2014
[ 5]
------, ------, Arduino Uno Rev3, http://arduinomurah.blogspot.com/2013/04/arduino-uno-rev3.html diakses 20 maret 2014
[6]
------, ------, Arduino Uno R3, http://arduino.cc/en/Main/arduinoBoardUno diakses 20 maret 2014
[7]
--------, --------, Arduino Introduction, http://arduino.cc/en/Guide/Introduction , diakses 21 maret 2013.
[8]
-----------, ----------, Arduino Software, http://arduino.cc/en/Main/Software , diakses 21 maret 2013.
[9]
Pitowarno, Endra, 2006, ROBOTIKA : Disain, Kontrol, dan Kecerdasan Buatan, Penerbit : Andi Offset, Yogyakarta.
[10]
------------- , -------------- , Motor Servo , http://elektronika-dasar.web.id/teorielektronika/motor-servo/ , diakses tanggal 21 Maret 2014
[11]
Japar, Francis Giang Anak, 2010, Design Develop Robotic Arm For Automatic Guided Conveyor, http://umpir.ump.edu.my/2893/1/CD5974.pdf , diakses pada tanggal 10 Oktober 2014
Rev3, diakses 20
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI [12]
--------, ----------, Flex Sensor 4,5” , http://www.sparkfun.com/products/8606 diakses 25 maret 2014
,
[13]
--------, --------, Flex Sensor, www.cytron.com.my/usr_attachment/SN-FLX-01.pdf , diakses 25 maret 2014
[14]
-------, ------, Flex Sensor, http://www.digikey.com/us/en/ph/SpectraSymbol/flex_sensor.html diakses 3 April 2014
[15]
-----------, --------, Adafruit 16-Channel 12-Bit PWM / Servo Shield – I2C Interface, http://www.adafruit.com/product/1411 diakses 14 April 2014
[16]
---------------, ------------, Komunikasi Serial, http://www.scribd.com/doc/211402724/Komunikasi-Serial diakses 14 April 2014
[17]
----------, ---------, Pengetahuan dasar komunikasi i2c, http://mazanung.blogspot.com/2012/12/pengetahuan-dasar-komunikasi-i2c.html diakses 14 April 2014
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
LAMPIRAN
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
Lampiran Tabel Hasil Pengujian Alat Tabel L1. Tabel Output Tegangan Rangkaian Flex Sensor Sudut Lengkungan
Output Tegangan Rangkaian Flex Sensor ( V ) Pitch
Pitch
Elbow
Shoulder
Base
Base
( A0 )
( A1 )
( A2 )
( A4 )
( A5 )
( A6 )
1,78
2,47
2,73
2,49
1,34
2,38
10 o
1,81
2,46
2,73
2,49
1,37
2,38
20 o
1,84
2,46
2,73
2,48
1,40
2,37
30 o
1,9
2,46
2,72
2,48
1,42
2,37
40 o
1,95
2,46
2,72
2,47
1,49
2,36
50 o
2,01
2,45
2,71
2,45
1,55
2,34
60 o
2,07
2,44
2,70
2,43
1,63
2,32
70 o
2,13
2,44
2,69
2,39
1,71
2,29
80 o
2,19
2,43
2,67
2,35
1,79
2,24
90 o
0
o
2,27
2,40
2,63
2,27
1,89
2,18
o
2,37
2,36
2,56
2,13
2,01
2,06
110 o
2,42
2,28
2,48
2,03
2,09
1,97
120 o
2,45
2,20
2,37
1,95
2,14
1,88
130 o
2,47
2,12
2,26
1,87
2,17
1,80
140 o
2,49
2,04
2,17
1,80
2,18
1,70
150 o
2,50
1,97
2,08
1,74
2,20
1,65
160 o
2,52
1,92
1,98
1,70
2,20
1,58
170 o
2,52
1,88
1,92
1,65
2,21
1,52
180 o
2,53
1,84
1,86
1,62
2,22
1,48
100
L.1
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
Sudut
Table L2. Tabel Output ADC Pada Rangkaian Flex Sensor Output ADC Pada Rangkaian Flex Sensor
Lengkungan
Pitch
Pitch
Elbow
Shoulder
Base
Base
( A0 )
( A1 )
( A2 )
( A4 )
( A5 )
( A6 )
662
519
463
513
756
535
10 o
655
519
464
513
751
535
20 o
648
519
465
515
742
537
30 o
638
519
466
517
734
539
40 o
628
519
467
519
720
541
50 o
615
520
469
523
709
542
60 o
600
521
471
529
696
544
o
586
525
475
537
679
555
80 o
571
527
481
549
664
568
90 o
554
532
492
564
640
585
100 o
534
542
507
596
617
611
110 o
526
559
525
619
597
631
120 o
520
579
547
640
583
649
130 o
515
599
567
655
578
665
140 o
513
615
586
667
575
682
150 o
511
625
604
678
573
696
160 o
508
637
619
688
571
707
o
507
645
634
695
569
720
180 o
505
653
650
701
567
728
0
o
70
170
L.2
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
LISTING PROGRAM L3. Listing Program Keseluruhan Bagian Lengan Manusia #include <SoftwareSerial.h> SoftwareSerial mySerial(10, 11); // RX, TX int a=0; int b=0; int c=0; int d=0; int e=0; int f=0; int data1=0; int data2=0; int data3=0; int data4=0; void setup(){ Serial.begin(9600); mySerial.begin(4800); } void loop(){ ////////////PEMBACAAN FLEX SENSOR////////// a=analogRead(0); //sensor 1 a=map(a,0,1023,1023,0); a=map(a,553,685,0,90); a=map(a,90,0,0,90); if (a>90){ a=90; } b=analogRead(1); b=map(b,0,1023,1023,0); b=map(b,620,795,0,90); if (b<0){ b=0; }
// sensor 2
c=analogRead(2); c=map(c,0,1023,1023,0); c=map(c,485,657,0,90); c=map(c,0,90,90,0);
// sensor 3
L.3
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI if (c<0){ c=0; } d=analogRead(3); d=map(d,0,1023,1023,0); d=map(d,565,715,0,90); if (d<0){ d=0; }
//sensor 4
e=analogRead(4); e=map(e,0,1023,1023,0); e=map(e,655,785,0,90); e=map(e,0,90,90,0); if (e>90){ e=90; }
//sensor 5
f=analogRead(5); f=map(f,0,1023,1023,0); f=map(f,623,755,0,90); if (f<0){ f=0; }
//sensor 6
data1=a+b; data2=c; data3=d; data4=e+f;
//pembacaan 0 - 180 derajat //pembacaan 0 - 90 derajat //pembacaan 0 - 90 derajat //pembacaan 0 - 180 derajat
///////////KIRIM DATA SECARA SERIAL////////// mySerial.write(data1); mySerial.write(data2); mySerial.write(data3); mySerial.write(data4); ///////////////////SERIAL PRINT////////////////// Serial.print(a); Serial.print(" = "); Serial.print(b); Serial.print(" = "); Serial.print(c); Serial.print(" = "); Serial.print(d); Serial.print(" = "); Serial.print(e);
L.4
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI Serial.print(" = "); Serial.print(f); Serial.print(" = "); Serial.print(data1); Serial.print(" = "); Serial.print(data2); Serial.print(" = "); Serial.print(data3); Serial.print(" = "); Serial.println(data4); delay(15); }
L.5
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI L4. Listing Program Keseluruhan Bagian Lengan Robot #include <SoftwareSerial.h> #include <Wire.h> #include
Adafruit_PWMServoDriver pwm = Adafruit_PWMServoDriver(); #define SERVOMIN 150 // this is the 'minimum' pulse length count (out of 4096) #define SERVOMAX 600 // this is the 'maximum' pulse length count (out of 4096) SoftwareSerial mySerial(10, 11); // RX, TX void setup(){ Serial.begin(9600); mySerial.begin(4800); pwm.begin(); pwm.setPWMFreq(60); // Analog servos run at ~60 Hz updates } void loop(){ ////////////////////TERIMA DATA SECARA SERIAL///////////// if(mySerial.available()>=4){ int a=mySerial.read(); int b=mySerial.read(); int c=mySerial.read(); int d=mySerial.read(); ////////////////////////MENGUBAH DATA SERIAL UNTUK MENGGERAKKAN MOTOR/////////////// a=map(a,0,180,180,0); a=map(a,180,0,288,710); a=map(a,288,710,750,288); b=map(b,0,90,90,0); b=map(b,90,0,335,600); c=map(c,0,90,90,0); c=map(c,90,0,150,600); c=map(c,150,600,590,350); d=map(d,0,180,180,0); d=map(d,180,0,270,770); d=map(d,270,770,770,270); ////////////MOTOR SERVO/////////////// pwm.setPWM(0,150,d); //base pwm.setPWM(2,150,c); //shoulder1 pwm.setPWM(4,150,c); //shoulder2
L.6
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI pwm.setPWM(6,150,b); //elbow pwm.setPWM(8,150,a); //pitch /////////////////SERIAL PRINT/////////////// Serial.print(a); Serial.print(','); Serial.print(b); Serial.print(','); Serial.print(c); Serial.print(','); Serial.println(d); delay(10); }}
L.7
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI L5. Rangkaian keseluruhan
L.8
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
L.9
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
Lampiran Data Sheet Komponen L6. Data Sheet Flex Sensor
L.10
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
L.11
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI L7. Data Sheet Adafruit 16-Channel Servo Driver with Arduino
L.12
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
L.13
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
L.14
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
L.15
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
L.16
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
L.17
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
L.18
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI L8. Data Sheet Servo Hitec HS-645MG
L.19
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI L9. Data Sheet Hitec HS-805MG
L.20
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI L10. Data Sheet TowerPro MG946R
L.21