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%.
▸ Baca selengkapnya: jelaskan cara melakukan aktivitas pembelajaran gerakan lengan
(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%.
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
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
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
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%.
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%.
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
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
xiii
BAB V KESIMPULAN DAN SARAN
5.1. Kesimpulan ... 62
5.2. Saran ... 62
DAFTAR PUSTAKA
... 64
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
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
xvi
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
xvii
Persamaan 2.1. ... 15
Persamaan 2.2. ... 15
Persamaan 2.3. ... 15
Persamaan 2.4. ... 15
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
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
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
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
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
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
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
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
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
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
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
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.
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
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.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
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
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.
= ∗ (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.
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
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.
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:
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
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
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.
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
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.
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
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
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
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
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
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
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.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 )
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.
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
)
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
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
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 :
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
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 <