Lengan robot peniru gerakan tangan manusia.
viii
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%.
(2)
ix
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%.
(3)
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
(4)
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
(5)
(6)
(7)
(8)
vi
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...
(9)
(10)
viii
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%.
(11)
ix
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%.
(12)
(13)
xi
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
(14)
xii
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
(15)
xiii
BAB V KESIMPULAN DAN SARAN
5.1. Kesimpulan ... 62
5.2. Saran ... 62
DAFTAR PUSTAKA
... 64
(16)
xiv
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 i
2c ... 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
(17)
xv
Gambar 3.13.
Diagram alir perancangan perangkat lunak secara umum... 37
Gambar 3.14.
Diagram alir perancangan perangkat lunak programflex 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
(18)
xvi
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
(19)
xvi
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 ...
27
Tabel 3.2.
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
(20)
xvii
Persamaan 2.1. ... 15
Persamaan 2.2. ... 15
Persamaan 2.3. ... 15
Persamaan 2.4. ... 15
(21)
xviii
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
(22)
1
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.
(23)
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
(24)
batasan-batasan masalah yang sesuai dengan judul tugas akhir ini. Adapun batasan-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 adalahone directional flex sensor4,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 mengenaiFlex Sensor.
b. Studi kasus terhadap alat yang telah dibuat sebelumnya. Tahap ini dilakukan guna memahami prinsip kerja alat sebelumnya.
c. MengujiFlex Sensor.
Tahap ini dilakukan guna memahami prinsip kerja Flex Sensor dan bisa mengetahui karakterFlex Sensor.
d. Menguji motor servo.
Tahap ini dilakukan guna memahami prinsip kerja motor servo dan bisa mengetahui karakter motor servo.
e. Mengujiservo 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.
(25)
g. Perancangan sistemhardwaredansoftware.
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 sistemhardwaredansoftware.
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 atauaktuator akan digerakkan oleh Adafruit 16-Channel Servo Driveryang 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 Sensordengan 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.
(26)
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 Sensorketika sensor tersebut dibengkokkan. Motor servo dapat bergerak mengikuti gerakan tangan pengguna atau user. Penyimpulan hasil perancangan dilakukan dengan menghitung presentasierroryang terjadi.
(27)
6
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
(28)
tersebut dapat dilakukan dengan komunikasi serial. Komunikasi tersebut memanfaatkan porttx dan rx pada Arduino.
2.1.1. Arduino Mega 2560 R3
Gambar 2.1. TampilanArduino Mega2560 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 femaleuntuk koneksi USB, jack femaleadaptor, dan sebuah tombolreset[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 siklusclocktunggal, 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.
(29)
Gambar 2.2. Alokasi penempatan pin ArduinoMega2560 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 JackUSB Untuk komunikasi mikrokontroler dengan PC
3 JackAdaptor Masukan power eksternal bila Arduino bekerja mandiri (tanpa komunikasi dengan PC melalui kabel serial USB).
4 TombolReset Tombol reset internal yang digunakan untuk mereset modul Arduino.
5 PinAnalog Menerima input dari perangkat analog lainnya.
6 PinPower
Vin = Masukan tegangan input bagi Arduino ketika menggunakan dumber daya eksternal.
5 V = Sumber tegangan yang dihasilkan regulator internal board Arduino.
3,3 V = Sumber tegangan yang dihasilkan regulator internal boardArduino. Arus maksimal pada pin ini adalah 50 mA. GND = Pingrounddari regulator teganganboardArduino. IOREF = Tegangan Referensi.
AREF = Tegangan Referensi untukinput analog. 1
3
6 5 12
11 10 9 8 7 6 4 2
(30)
Tabel 2.1. (Lanjutan) Keterangan Pin Arduino Mega 2560 R3 [3] 7 Light-Emitting
Diode(LED)
Pin digital 13 merupakan pin yang terkoneksi dengan LED internal Arduino.
8 Pin PWM Arduino Mega menyediakan 8 bit output PWM. Gunakan fungsianalogWrite()untuk mengaktifkan pin PWM ini.
9 PinSerial
Digunakan untuk menerima dan mengirimkan data serial TTL (Receiver(Rx),Transmitter(Tx)). Pin 0 dan 1 sudah terhubung kepada pin serial USBtoTTL sesuai dengan pin ATmega. 10 PinTwo Wire
Interface(TWI)
Terdiri dariSerial Data Line(SDA) danSerial Interface Clock (SCL).
11 Pin Digital Pin yang digunakan untuk menerimainput digitaldan memberi outputberbentuk digital (0 dan 1 ataulowdanhigh)
12
PinSerial Peripheral Interface(SPI)
Terdiri dari 4 buah Pin :
1. Master In Slave Out(MISO)
Jalurslaveuntuk mengirimkan data keMaster. 2. Master Out Slave In(MOSI)
Jalurmasteruntuk mengirimkan data ke peralatan. 3. Serial Clock(SCK)
Clockyang berfungsi untuk memberikan denyut pulsa ketika sedang menyinkronkan transmisi data olehmaster
4. Slave Select(SS)
Pin untuk memilih jalurslavepada perangkat tertentu.
2.1.2. Arduino Uno R3
(31)
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.
Gambar 2.4. Alokasi penempatan pin ArduinoUno 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 JackUSB Untuk komunikasi mikrokontroler dengan PC
3 JackAdaptor Masukan power eksternal bila Arduino bekerja mandiri (tanpa komunikasi dengan PC melalui kabel serial USB).
4 TombolReset Tombol reset internal yang digunakan untuk mereset modul Arduino.
5 PinAnalog Menerima input dari perangkat analog lainnya.
8 7
6
2 4
1
5 6
(32)
Tabel 2.2. (Lanjutan) Keterangan Pin Arduino Uno R3 [6]
6 PinPower
Vin = Masukan tegangan input bagi Arduino ketika menggunakan dumber daya eksternal.
5 V = Sumber tegangan yang dihasilkan regulator internal board Arduino.
3,3 V = Sumber tegangan yang dihasilkan regulator internal boardArduino. Arus maksimal pada pin ini adalah 50 mA. GND = Pingrounddari regulator teganganboardArduino. IOREF = Tegangan Referensi.
AREF = Tegangan Referensi untukinput analog.
7 PinDigital Pin yang digunakan untuk menerima input digital dan memberi outputberbentuk digital (0 dan 1 ataulowdanhigh)
8 PinSerial
Digunakan untuk menerima dan mengirimkan data serial TTL (Receiver (Rx), Transmitter (Tx)). Pin 0 dan 1 sudah terhubung kepada pin serial USBtoTTL 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.
(33)
Tabel 2.3. Keterangan Tombol Pada Tampilan IDEArduino[8]
No. Tombol Nama Fungsi
1 Verify
Menguji apakah ada kesalahan pada program atau sketch. Apabila sketch sudah benar, maka sketch tersebut akan dikompilasi. Kompilasi adalah proses mengubah kode program ke dalam kode mesin.
2 Upload Mengirimkan kode mesin hasil kompilasi ke board Arduino
3 New Membuatsketchyang baru
4 Open Membukasketchyang sudah ada
5 Save Menyimpansketch
6 Serial
Monitor
Menampilkan data yang dikirim dan diterima 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 boardyang digunakan sesuai denganboardyang terpasang dan mengatur jalur komunikasi data melalui perintah Serial Port. Kedua pengaturan tersebut dapat ditemukan padapull 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
(34)
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.
(35)
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°.
(36)
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.2 )
= ( 2.3 )
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.
(37)
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 padainput 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.
(38)
= ∗ (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. GambarAdafruit 16-Channel 12-Bit PWM / Servo Shield – I2C Interface[15]
Adafruit 16-Channel 12-Bit PWM / Servo Shield – I2C Interfacemerupakan 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 buahport komunikasi yaitu SDA (Serial Data) dan SCL (Serial Clock Line). Penganturanclockpengiriman data menggunakan TLC5940 sehingga tidak perlu mengaktifkanclocksecara terus menerus saat pengiriman data. Power
(39)
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 duamodekomunikasi 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 disertaiclockuntuk sinkronisasi antaratransmitterdanreceiver.
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 startdigunakan 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
(40)
3. Parity bit
4. Stop bit selalu berlogic HIGH IDLE jika tidak ada pengiriman data selanjutnya.[16]
2.7.
Komunikasi I
2C
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 frekuensiclockprosesor, maka semakin lebih cermat pengembang untuk memperhatikan timingdari 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 sinyalclock. SDA (Serial Data) untuk mentransaksikan data
3. Jumlah Peserta Busmaximal127 peserta dialamatkan melalui 7-bit-alamat. Alamat ditetapkan kebanyakan secarahardwaredan 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. MasterandSlave Deviceyang mengendalikan operasi transfer disebut Master, sementara device yang di kendalikan oleh master di sebut Slave.
(41)
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. Deviceyang mengendalikan operasi transfer data disebut master, sedangkandevice 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 acknowledgedarireceiverketransmitter.
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
(42)
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. GambarData 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]
(43)
Gambar 2.14. GambarData transfer from a slave transmitter to a master receiver [17]
(44)
23
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 programFlex 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.
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, Adafruit16-Channel 12-Bit PWM / Servo Shield – I2C Interface, dan
Arduino Uno R3 Arduino Mega 2560 Kom. Serial Flex Sensor Motor Servo Adafruit 16-channel servo shield Kom.
I2C
(45)
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 inputArduino Uno. Bagianport analog inputArduino 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 ) untuktransfer data.
Adafruit 16-Channel 12-Bit PWM / Servo Shield – I2C Interface dapat menggerakkan motor servo secara sekuensial maupun secara serempak. Motor servo yang
(46)
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, danPitch. Bagian Shoulderterdapat 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 atauuser.
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 RCservodisebut sebagaijoint.
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) 5. End Effector(bagian ujung robot) 6. MotorBase
7. MotorShoulder A 8. Motorshoulder b 9. Motorelbow 10. Motorpitch
Gambar 3.2.Design3D keseluruhan lengan robot
1 2 3 4 5 7 8 9 10 6
(47)
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 servoyang digunakan sebagai penggerak base. Basebergerak secara rotasi dan dapat menyebabkan perubahan posisi pada lengan-lengan penghubung yang lain.
Gambar 3.3. Gambar posisigearpemutarbaseyang dicoupledengan motor servo Bagian shouldermemiliki panjang lengan 18cm dan bergerak secara rotasi dengan 2 buah motor RCservo. Bagianelbowmemiliki 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 menunjukkanend 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 ujungend 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
(48)
sudut-sudut yang terjadi pada setiap penghubung (link) dari titik acuan awal yaitu pada bagian pangkal dari bahu (shoulder).
Motor RCservoyang digunakan sebanyak 5 buah. Pemilihan motor RCservoyang digunakan pada setiap jointberdasarkan pada kemampuan yang harus dimiliki setiapjoint 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 bagianbasetidak 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.
(49)
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 atauuser.
Bagianpitchbeban yang harus diangkat adalah 220gram karena bagianpitchselain mengangkat lengannya sendiri juga harus mengangkat seluruh bagian gripper. Bagian pitchmemiliki panjang 5 cm dan bagiangrippersampai ujung jari memiliki panjang 7 cm, sehingga panjang lengan yang harus diangkat adalah 12 cm. Berikut adalah perhitungan untuk merancang torsi pada bagianpitchberdasarkan persamaan 2.1. dan 2.2. :
= 220 = 0,22
= 12
= = 0,22 ∗ 10 ⁄ = 2,2 = 2,2 ⁄
2,2 ∗ 0,1 = 0,22
Dimana,1 = 0,1
(50)
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 panjangend effector. Kebutuhan torsi motor RC servopada perancangan lengan robot berdasarkan persamaan 2.1. dan 2.2. :
= 420 = 0,42
= 24
= = 0,42 ∗ 10 ⁄ = 4,2 = 4,2 ⁄
4,2 ∗ 0,1 = 0,42
Dimana,1 = 0,1
= = 0,42 ∗ 24 = 10,08 .
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 = 0,92
= 42
= = 0,92 ∗ 10 ⁄ = 9,2 = 9,2 ⁄
9,2 ∗ 0,1 = 0,92
Dimana,1 = 0,1
(51)
Berdasarkan perhitungan kebutuhan torsi pada bagian shoulder memang menunjukkan torsi yang dibutuhkan sangat besar. Hal tersebut akan membuat kesulitan tersendiri dalam mencari motor RC servodengan 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 padashoulder 1danshoulder 2.
Gambar 3.5. Tampilan seluruhnyadesigngambar 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 dariend pointlengan 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 :
X Y a
(52)
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 Controllertersebut digunakan agar gerakan dari motor servo tersebut dapat bergerak dengan baik dan tidak terjadinoiseatau 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, danAdafruit 16-Channel 12-Bit PWM / Servo Shield – I2C Interface.
(53)
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 Interfacetetap dapat bekerja untuk menggerakkan motor servo.
(54)
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.
(55)
Gambar 3.9. Gambar rangkaianflex sensorpada 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 ; berdasarkandatasheetSpectra Symbol[13] = 5 ∗ 10
( 10 + 10 )
= 2,5
Saat Flex Sensor Bengkok ; berdasarkandatasheetSpectra Symbol[13] = 5 ∗ 10
( 40 + 10 )
(56)
Keluaran dari sensor tersebut dihubungkan ke ADC (Analog to Digital Converter) pada Arduino Uno R3 seperti pada gambar 3.10.
Gambar 3.10. Gambar sambunganoutput flex sensorke 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 16-Channel 12-Bit PWM / Servo Shield – I2C Interface dengan Arduino Mega 2560 dihubungkan dengan komunikasi I2C. Komunikasi I2C tersebut menggunakan port SDA dan SCL.
(57)
Port tersebut digunakan untuk transferdata 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 GambarPortAdafruit16-Channel 12-Bit PWM / Servo Shield – I2C Interfaceyang 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
(58)
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 programflex sensor
Gambar 3.14. merupakan diagram alir dari program pembacaan flex sensor yang terpasang pada lenganuser. Output dari sensor yang merupakan data analog di masukkan
(59)
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 lenganuserposisinya sama.
(60)
39
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.
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. Lenganshoulder menggunakan servo Hitec HS-805MG Mega
1
3
4 2
Keterangan :
1. BagianPitchdan End Effector 2. BagianElbow 3. BagianShoulder 4. BagianBase
(61)
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. Bagianbasemenggunakan servo TowerPro MG946R yang memiliki torsi 10,5 – 13 kg/cm pada tegangan 4,8 - 6 volt dan menggunakanmetal gear.
Gambar 4.2. Motor servo penggerak bagianshoulder, elbow,danpitch
Gambar 4.3. Motorbaseyang dihubungkan dengan transmisigearrasio 1:1 1
Keterangan : 1. MotorPitch 2. MotorElbow 3. MotorShoulder1
dan 2 2
(62)
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 secarastackable.
Gambar 4.4. Konektor motor servo
Gambar 4.5. Arduino Mega 2560,Servo Controller Shield, danportkomunikasi serial dihubungkan secarastackable
Hasil perancangan elektrik bagian lengan manusia terbagi menjadi : bagian flex sensor, mikrokontroler Arduino Uno, rangkaian pembagi tegangan,portkomunikasi serial, indicator led, dan tombol. Bagian flex sensor terbagi menjadi bagian pitch atau hand,
1
2
3
Keterangan :
1. PortKomunikasi Serial
2. Servo Controller Shield
3. Arduino Mega 2560
(63)
elbow, shoulder, dan bagian base. Setiap bagian flex sensor tersebut diletakkan pada bagian lengan manusia atauusersebagai 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 danportkomunikasi serial, diletakkan diatas Arduino Uno yang dihubungkan secarastackableterdapat pada Gambar 4.7.
Gambar 4.6.Flex sensoryang dipasangkan pada tangan manusia
Gambar 4.7. Rangkaian pembagi tegangan danportkomunikasi serial yang dihubungkan secarastackabledengan Arduino Uno
(64)
Gambar 4.8. merupakan hasil perancangan elektrik pada bagian tangan manusia atauuser.Flex sensoryang 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 atauuser
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.
(65)
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 rangkaianflex 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. Tabeloutputtegangan rangkaianflex sensor
Sudut Lengkungan
OutputTegangan RangkaianFlex Sensor( V )
Pitch
( A0 )
Pitch
( A1 )
Elbow
( A2 )
Shoulder
( A4 )
Base
( A5 )
Base
( A6 )
0o 1,78 1,84 1,86 1,62 1,34 1,48 10o 1,81 1,88 1,92 1,65 1,37 1,52 20o 1,84 1,92 1,98 1,70 1,4 1,58 30o 1,9 1,97 2,08 1,74 1,42 1,65 40o 1,95 2,04 2,17 1,80 1,49 1,70
(66)
Tabel 4.2. ( Lanjutan ) Tabeloutputtegangan rangkaianflex sensor
Sudut Lengkungan
OutputTegangan RangkaianFlex Sensor( V )
Pitch
( A0 )
Pitch
( A1 )
Elbow
( A2 )
Shoulder
( A4 )
Base
( A5 )
Base
( A6 )
50o 2,01 2,1 2,26 1,87 1,55 1,80 60o 2,07 2,16 2,37 1,95 1,63 1,88 70o 2,13 2,24 2,48 2,03 1,71 1,97 80o 2,19 2,32 2,56 2,13 1,79 2,06 90o 2,27 2,40 2,63 2,27 1,89 2,18 100o 2,37 2,43 2,67 2,35 2,01 2,24 110o 2,42 2,44 2,69 2,39 2,09 2,29 120o 2,45 2,44 2,70 2,43 2,14 2,32 130o 2,47 2,45 2,71 2,45 2,17 2,34 140o 2,49 2,46 2,72 2,47 2,18 2,36 150o 2,5 2,46 2,72 2,48 2,2 2,37 160o 2,52 2,46 2,73 2,48 2,2 2,37 170o 2,52 2,46 2,73 2,49 2,21 2,38 180o 2,53 2,47 2,73 2,49 2,22 2,38
(67)
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 bagianpitch( A1 )
Bagian pitch lengan robot dikendalikan dengan mendeteksi gerakan pada pergelangan tangan manusia. Pergelangan tangan manusia memiliki gerakan dengan rentang 0o – 180osehingga memerlukan dua buah flex sensoruntuk 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.
(68)
Gambar 4.12. Grafik keluaran sensor bagianelbow( 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.
(69)
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 bagianbase( 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 terhadapflex sensortersebut 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 – 180osehingga memerlukan dua buahflex sensoruntuk mendeteksi gerakan tersebut.
(1)
(2)
L.17 PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
(3)
(4)
L.19
L8. Data SheetServo Hitec HS-645MG
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
(5)
(6)
L.21
L10. Data SheetTowerPro MG946R
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI