viii
INTISARI
Teknologi robot pada masa kini penggunaannya sangat beragam, mulai dari robot yang
digunakan dalam pekerjaan berat dan membahayakan manusia hingga robot yang diprogram
hanya untuk mengingatkan sebuah kegiatan manusia. Bagian yang cukup penting pada sebuah
robot terdapat pada bagian tangan, karena berguna untuk menyentuh dan memegang sebuah
obyek. Pada penelitian ini, robot berbentuk lengan akan memainkan dan menekan tuts
keyboard.
Lengan robot ini berbasis mikrokontroler yang diprogram untuk menggerakkan
lengannya untuk mencapai posisi yang telah ditentukan dan menekan tuts keyboard sesuai
dengan input tombol yang diaktifkan pada keypad. Lengan robot ini dilengkapi beberapa
motor servo untuk menggerakkan bagian dari lengan seperti pangkal putar, bahu, siku dan
pergelangan tangan. Lengan robot ini juga dilengkapi dengan motor servo berbentuk lima jari
yang berfungsi memainkan lagu dengan tempo yang telah disematkan kedalam programnya.
Hasil akhir dari pengujian lengan robot ini menunjukkan bahwa system ini dapat
memposisikan lengan dan memainkan nada dengan menekan tuts keyboard menggunakan
kelima jarinya sesuai dengan input keypad yang ditekan dan program yang telah dibuat.
ix
ABSTRACT
Nowadays, the use of robot is varied. The robot itself is sometimes used for hard work
and for reminding people in their activity. The most important part of robot is its hand since it
is benefit for touching and holding an object. In this research, robot in hand form will play and
press the keyboard’s keys.
This robot’s arm is based on microcontroller in which the robot is already programmed
to move its hand. By moving its hand, the robot is supposed to reach the position and press
keyboard’s keys by activated button keypad. The robot’s arm is completed by some servo
motors to move the part of its arm such as base, shoulder, elbow, and wrist. The arm is also
equipped by servo motors in five-fingers-form which is functioned to play a song based on
beat in the program.
By this research, the robot shows that the system can reach the determined position and
play the note by pressing the keyboard’s key using five fingers based on the keypad input and
even the program.
TUGAS AKHIR
LENGAN ROBOT BERMAIN KEYBOARD
MENGGUNAKAN LIMA JARI DALAM SATU
OKTAF NADA MAYOR DENGAN KENDALI
KEYPAD
Disusun oleh :
KRISTIAN ADI PERBOWO
NIM : 125114030
PROGRAM STUDI TEKNIK ELEKTRO
JURUSAN TEKNIK ELEKTRO
FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS SANATA DHARMA
YOGYAKARTA
FINAL PROJECT
FIVE FINGERS KEYBOARD PLAYER ARM
ROBOT IN ONE MAJOR OCTAF TONE BY
KEYPAD CONTROLLER
KRISTIAN ADI PERBOWO
NIM : 125114030
ELECTRICAL ENGINEERING STUDY PROGRAM
ELECTRICAL ENGINEERING DEPARTMENT
FACULTY OF SCIENCE AND TECHNOLOGY
SANATA DHARMA UNIVERSITY
vi
HALAMAN PERSEMBAHAN DAN MOTTO HIDUP
MOTTO
Naik lebih susah dari pada turun
Dengan ini kupersembahkan karyaku ini untuk...
Tuhanku Yesus Kristus Pembimbingku yang setia,
Keluargaku tercinta,
Teman-temanku seperjuangan,
Dan semua orang yang mengasihiku
viii
INTISARI
Teknologi robot pada masa kini penggunaannya sangat beragam, mulai dari robot yang
digunakan dalam pekerjaan berat dan membahayakan manusia hingga robot yang diprogram
hanya untuk mengingatkan sebuah kegiatan manusia. Bagian yang cukup penting pada sebuah
robot terdapat pada bagian tangan, karena berguna untuk menyentuh dan memegang sebuah
obyek. Pada penelitian ini, robot berbentuk lengan akan memainkan dan menekan tuts
keyboard.
Lengan robot ini berbasis mikrokontroler yang diprogram untuk menggerakkan
lengannya untuk mencapai posisi yang telah ditentukan dan menekan tuts keyboard sesuai
dengan input tombol yang diaktifkan pada keypad. Lengan robot ini dilengkapi beberapa
motor servo untuk menggerakkan bagian dari lengan seperti pangkal putar, bahu, siku dan
pergelangan tangan. Lengan robot ini juga dilengkapi dengan motor servo berbentuk lima jari
yang berfungsi memainkan lagu dengan tempo yang telah disematkan kedalam programnya.
Hasil akhir dari pengujian lengan robot ini menunjukkan bahwa system ini dapat
memposisikan lengan dan memainkan nada dengan menekan tuts keyboard menggunakan
kelima jarinya sesuai dengan input keypad yang ditekan dan program yang telah dibuat.
ix
ABSTRACT
Nowadays, the use of robot is varied. The robot itself is sometimes used for hard work
and for reminding people in their activity. The most important part of robot is its hand since it
is benefit for touching and holding an object. In this research, robot in hand form will play and
press the keyboard’s keys.
This robot’s arm is based on microcontroller in which the robot is already programmed
to move its hand. By moving its hand, the robot is supposed to reach the position and press
keyboard’s keys by activated button keypad. The robot’s arm is completed by some servo
motors to move the part of its arm such as base, shoulder, elbow, and wrist. The arm is also
equipped by servo motors in five-fingers-form which is functioned to play a song based on
beat in the program.
By this research, the robot shows that the system can reach the determined position and
play the note by pressing the keyboard’s key using five fingers based on the keypad input and
even the program.
xi
DAFTAR ISI
HALAMAN JUDUL... i
HALAMAN PERSETUJUAN ... iii
HALAMAN PENGESAHAN ... iv
PERNYATAAN KEASLIAN KARYA... v
HALAMAN PERSEMBAHAN DAN MOTTO HIDUP ... vi
LEMBAR PERNYATAAN PERSETUJAN KARYA ILMIAH
UNTUK KEPENTINGAN AKADEMIS ... vii
INTISARI ... viii
ABSTRACT
... ix
KATA PENGANTAR ... x
DAFTAR ISI ... xi
DAFTAR GAMBAR ... xiv
DAFTAR TABEL ... xvii
DAFTAR LAMPIRAN... xviii
BAB I PENDAHULUAN
1.1. Latar Belakang... 1
1.2. Tujuan Penelitian... 2
1.3. Batasan Masalah... 2
1.4. Pembatasan Masalah... 3
1.5. Rumusan Masalah... 3
1.6. Metodologi Penelitian... 3
BAB II TINJAUAN PUSTAKA DAN DASAR TEORI
2.1. Mikrokontroler... 6
2.1.1 Arduino Mega 2560 R3... 6
2.1.2 Perangkat Lunak Arduino ( Software)... 9
2.2. Motor Servo... 10
2.2.1 Pulsa Kontrol Motor Servo... 12
xii
2.4. Alat Musik Keyboard ... 13
2.5. Servo Controller ... 15
2.6. Komunikasi Serial………... 15
2.7. Komunikasi I2C... 16
2.7.1. Mode Pengoperasian Transfer Data ... 18
2.8. Kinematika... 19
BAB III PERANCANGAN SISTEM
3.1. Perancangan Perangkat Keras (
Hardware
) ... 25
3.1.1 Perancangan Mekanik Robot... 26
3.1.2
Pemodelan Mekanik ... 273.1.3 Perancangan Invers Kinematik... 32
3.2. Perancangan Rangkaian Pengendali Utama ... 36
3.2.1. Perancangan Elektrik... 36
3.2.1.1 Perancangan Keypad Matriks 3x4 ... 37
3.2.1.2 Perancangan Rangkaian Kontroler... 37
3.2.2. Perancangan Rangkaian Motor Servo... 38
3.3. Perancangan Perangkat Lunak ( Software )... 39
3.3.1. Perangkat Lunak Program Keseluruhan... 41
BAB IV HASIL DAN PEMBAHASAN
4.1. Hasil Perancangan Perangkat Keras... 45
4.2. Hasil Pengujian... 47
4.2.1 Implementasi Komunikasi
Keypad
dengan Mikrokontrol ... 48
4.2.2 Pengujian Pembacaan
Keypad
... 49
4.2.3 Pengujian Gerakan Jari Robot... 49
4.2.4 Pengujian Besar Sudut Pada Gerakan Lengan ... 51
4.2.5 Pengujian Lama Waktu Proses Penekanan Tuts Keyboard... 53
4.3. Analisa Perangkat Lunak... 55
4.3.1. Inisialisasi... 55
xiii
4.3.3. Program Motor Servo
...
56
BAB V KESIMPULAN DAN SARAN
5.1. Kesimpulan... 59
5.2. Saran ... 59
DAFTAR PUSTAKA ... 60
xiv
DAFTAR GAMBAR
Gambar 1.1. Blok Diagram Lengan Robot Bermain Keyboard dengan Lima Jari... 4
Gambar 2.1. Alokasi Penempatan Pin Arduino Mega 2560 R3 ... 7
Gambar 2.2.
Tampilan
Arduino Software (Arduino IDE)... 9
Gambar 2.3. Motor RC Servo... 11
Gambar 2.4. Konstruksi Motor Servo... 11
Gambar 2.5. Pulsa Kendali Motor Servo... 12
Gambar 2.6.
Gambar Keypad Matriks 3x4
... 13
Gambar 2.7. Gambar Alat Musik Keyboard... 14
Gambar 2.8. Gambar batas penggunaan jari kiri dan kanan tangan pada keyboard... 14
Gambar 2.9. Penomoran jari tangan kanan pada pelajaran dasar bermain keyboard ... 14
Gambar 2.10 Posisi pergerakan jari tangan kanan pada tuts keyboard (
fingering
) ... 18
Gambar 2.12. Gambar
data transfer drom a master transmitter to a slave receiver
... 19
Gambar 2.13. Gambar
data transfer drom a slave transmitter to a master receiver
... 19
Gambar 2.14. Kinematika pada Lengan Robot ... 20
Gambar 2.15. Lengan Robot tampak samping... 20
Gambar 2.16. Gambar skema lengan robot sederhana ... 21
Gambar 2.17. Skema posisi lengan robot dari samping ... 21
Gambar3.1. Blok Diagram Perangkat Keras (
Hardware )
... 26
Gambar3.2. Tampilan Seluruhnya
Design
Gambar 3D lengan robot... 27
Gambar3.3. Gambar Posisi Pemutar Base yang di Clouple Dengan Motor Servo... 27
Gambar3.4. Gambar desain tangan robot dengan lima jari ... 29
Gambar3.5. Tampilan seluruhnya desain gambar 3D lengan robot... 31
Gambar3.6. Posisi lengan robot dan keyboard saat kondisi awal... 32
Gambar3.7. Skema posisi awal lengan sederhana ... 33
Gambar3.8. Posisi lengan robot pada tuts keyboard dilihat dari atas ... 34
Gambar3.9. Posisi lengan robot dari atas sederhana... 35
Gambar3.10. Rangkaian Komunikasi keypad matriks dengan Arduino Mega 2560 ... 37
Gambar3.11. Rangkaian Komunikasi I2C... 38
xv
Gambar3.12. b. Gambar rangkaian motor servo untuk lengan ... 39
Gambar3.13. Diagram alir perancangan perangkat lunak secara umum... 40
Gambar3.14. Diagram alir program perangkat lunak keseluruhan... 41
Gambar3.15. a. Diagram Alir Proses data dari input angkat ... 42
Gambar3.15. b. Diagram Alir Program pemrosesan data dari input kode... 42
Gambar3.16. Diagram Alir Program pemilihan jari untuk menekan tuts keyboard... 43
Gambar3.17. Diagram chart nada yang dimainkan pada kode * ... 44
Gambar3.18. Diagram chart lagu “Ode to Joy” yang dimainkan pada kode #... 44
Gambar 4.1. Hasil Perancangan Konstruksi ... 45
Gambar 4.2. Posisi
microcontroller
dan
servo controller
... 46
Gambar 4.3. Posisi konektor pada
microcontroller
... 47
Gambar 4.4. Pemasangan Keypad pada board Arduino ... 48
Gambar 4.5. Data hasil penekanan tombol pada keypad ... 48
Gambar 4.6. Bentuk jari dan posisi motor servo pada lengan robot... 50
Gambar 4.7. Kawat yang menghubungkan antara pangkal jari dan tuas motor servo... 50
Gambar 4.8. Lengan robot dengan busur derajat... 52
Gambar 4.9. Instalasi Program... 55
Gambar 4.10. Program tombol Keypad ... 56
Gambar 4.11. Contoh program keypad ketika mengakuisisi gerakan lengan... 57
Gambar 4.12. Kode “0” yang diartikan sebagai base pada lengan robot... 57
Gambar 4.13. Program akuisisi data pada
Adafruit
... 57
xvii
DAFTAR TABEL
Tabel 2.1. Keterangan pin
Arduino Mega 2560 R3
...7
Tabel 2.2.
Keterangan tombol pada tampilan
Arduino IDE
...9
Tabel 3.1. Tabel perkiraaan berat lengan dan beban yang diangkat lengan pada perancangan
lengan robot ...28
Tabel 3.2. Tabel perencanaan gerakkan lengan robot berdasarkan putaran motor RC servo
...32
Tabel 4.1. Keterangan Gambar Keseluruhan Alat... 46
Tabel 4.2. Bagian dari perangkat keras elektrik dan fungsi dari rangkaian ...48
Tabel 4.3. Pengujian kondisi pembacaan tombol ...49
Tabel 4.4. Gerakan jari sesuai dengan
input keypad
...51
Tabel 4.5. Data pengukuran sudut lengan robot tanpa beban...52
Tabel 4.6. Data pengukuran sudut lengan robot dengan beban...52
Tabel 4.7. Hasil pengukuran waktu penekanan tuts oleh jari...53
Tabel 4.8. Data pengujian keberhasilan jari menekan tuts dari do rendah ke do tinggi...54
xvii
DAFTAR PERSAMAAN
Persamaan 2.1 ... 21
Persamaan 2.2 ... 21
Persamaan 2.3 ... 21
Persamaan 2.4 ... 22
Persamaan 2.5 ... 22
Persamaan 2.6 ... 22
Persamaan 2.7... 22
Persamaan 2.8 ... 22
Persamaan 2.9 ... 22
Persamaan 2.10 ... 22
Persamaan 2.11 ... 22
Persamaan 2.12 ... 22
Persamaan 2.13 ... 22
Persamaan 2.14 ... 22
Persamaan 2.15 ... 22
Persamaan 2.16 ... 22
Persamaan 2.17 ... 22
Persamaan 2.18 ... 22
Persamaan 3.1 ... 35
xviii
DAFTAR LAMPIRAN
1
BAB I
PENDAHULUAN
1.1. Latar Belakang
Perkembangan teknologi yang sangat pesat pada saat ini menyebabkan kemajuan teknologi yang begitu banyak dan cepat, salah satunya adalah teknologi robotika. Pada awalnya robot hanyalah sebuah alat mekanik khusus yang berfungsi untuk membantu meringankan tugas manusia.
Sejarah perkembangan robot dimulai ketika manusia mulai mencoba memasukkan kontrol otomatis pada alat mekanik tersebut, nantinya alat tersebut dapat dikendalikan dari jarak jauh atau bahkan dapat berjalan sendiri sesuai dengan perintah atau program yang sudah didefinisikan terlebih dahulu.
Penggunaan robot sudah meluas, robot sekarang difungsikan untuk melakukan pekerjaan yang berat, berulang dan bahkan pekerjaan-pekerjaan yang dianggap membahayakan nyawa jika manusia yang melakukannya. Biasanya kebanyakan robot industri digunakan dalam bidang produksi. Penggunaan robot lainnya termasuk untuk pembersihan limbah beracun, penjelajahan bawah air dan luar angkasa, pertambangan, pekerjaan penyelamatan, dll.
Robot dengan perkembangan teknologi saat ini mulai memasuki pasaran konsumen di bidang hiburan dan alat pembantu rumah tangga. Penyempurnaan robot pun dilakukan agar robot semakin mirip dengan manusia dan lebih handal dalam mengerjakan tugas-tugas yang diberikan.
Beberapa robot juga pernah dibangun untuk bermain alat music keyboard namun robot-robot tersebut menggunakan metode tetap dalam posisi dan menggunakan jari yang sangat banyak untuk menekan tuts, beberapa yang lain menggunakan sebuah rel untuk menggerakkan jari bergerak secara horizontal diatas papan keyboard.
Lengan robot yang penulis ciptakan menggunakan motor servo sebagai penggeraknya dan juga menggunakan keypad sebagai pemberi input kepada robot untuk melakukan gerakan dalam memilih dan menekan tuts keyboard sesuai dengan angka yang ditekan pada keypad tersebut dalam 1 oktaf tangga nada mayor.
Lengan robot yang akan dibuat oleh penulis dapat bergerak horizontal mengikuti arah tuts keyboard. Sinyal input yang diberikan oleh keypad diproses didalam mikrokontroler untuk menentukan posisi tangan dan jari, kemudian juga digunakan untuk menggerakkan jadi dalam menekan tuts nada yang dipilih.
1.2. Tujuan dan Manfaat Penelitian
Dalam penelitian yang dilakukan memiliki tujuan menciptakan alat berupa lengan robot yang mempunyai dan menggunakan kelima jarinya, bergerak menyerupai gerakan tangan manusia untuk meraih dan menekan tuts keyboard pada 1 oktaf nada mayor. Dan memiliki tujuan khusus adalah menciptakan lengan robot dengan 4 DOF (Degree of Fredom)dan mengetahui cara kerjanya.
Manfaat dari penelitian ini adalah menciptakan alat yang dan dapat dikontrol dengan alat keypad dengan kabel sebagai penguhubung mikrokontroler dan dapat digerakkan secara langsung ataurealtime.
1.3. Batasan Masalah
Agar tugas akhir ini dapat sesuai dengan apa yang menjadi tujuannya dan menghindari terlalu kompleksnya permasalahan yang muncul, maka perlu adanya batasan-batasan masalah yang sesuai dengan judul tugas akhir ini. Adapun batasan-batasan masalahnya adalah :
a. Menggunakan mikrokontroler arduino sebagai pengolah data sensor dan sebagai penggerak aktuator robot. Mikrokontroller yang digunakan adalah Arduino Mega 2560 R3 .
b. Mengunakan motor RC-servo sebagai aktuator c. Robot dapat bergerak pada sumbu X, Y, dan Z d. Robot memiliki 4 DOF(Degree of Fredom)
1.4. Pembatasan Masalah
1. Pengolahan mikrokontroler hanya terbatas pada putaran motor servo saja
2. Desain gripper disesuaikan dengan kondisi pergerakan mengingat adanya sudut putar dan bentuk tuts keyboard
3. Jarak robot dengan posisi keyboard disesuaikan mengingat adanya sudut putar agar jari tetap dapat mencapainya
4. Dalam pengujian hanya 1 oktaf nada mayor yang digunakan
5. Kecepatan pergerakan robot disesuakan dengan kemampuan mikrokontroler 6. Pada keypad terdapat dua macam jenis tombol yang digunakan, tombol angka
sebagai pengendali jari menekan tombol sesuai angka, tombol kode * dan # sebagai demonstrasi otomatis robot dalam bermain piano
1.5. Rumusan Masalah
1. Bagaimana cara mengendalikan robot berjari dengan sebuah alat pengendali jarak jauh berupa keypad
2. Bagaimana cara mengontrol motor servo dengan menggunakan servo kontrol dan mikrokontroller sehingga dapat digunakan untuk menggerakkan robot. 3. Bagaimana memposisikan sebuah lengan robot berjari agar dapat dengan tepat
menekan tuts keyboard
1.6. Metodologi Penelitian
Berdasarkan pada tujuan yang ingin dicapai maka metode yang digunakan adalah : a. Studi literatur dan referensi, yaitu mempelajari buku-buku dan makalah-makalah
dari pustaka yang berhubungan dengan mikrokontroler khususnya Arduino, motor servo dan juga mengenai kontrol dalam menggunakan keypad.
b. Studi kasus terhadap alat yang telah dibuat sebelumnya. Tahap ini dilakukan guna memahami prinsip kerja alat sebelumnya.
c. Menguji motor servo. Tahap ini dilakukan guna memahami prinsip kerja motor servo dan bisa mengetahui karakter motor servo.
memahami cara kerja dengan mencoba membuat rangkaian kendali sederhana terlebih dahulu.
e. 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.
f. Pembuatan sistemhardwaredansoftware.
Berdasarkan gambar mikrokontroler sebagai kontrol utama. Mikrokontroler yang digunakan adalah Arduino Mega 2560. Data dihasilkan oleh Keypad Matrix 4x3dan akan diproses oleh Arduino Mega 2560, data tersebut digunakan sebagau penentu data posisi lengan pengguna atau user. Data yang telah diproses oleh Arduino Mega 2560 akan dikomunikasikan dengan Adafruit Servo Controller yang akan mengontrol gerakan motor servo sebagai penggerak atau
accuator. Keypad Number 1
Keypad Number 2
Keypad Number 3
Keypad Number 5 Keypad Number 4
Keypad Number 6
Keypad Number 7
Keypad Number 8
Keypad Code X
Keypad Code #
Microcontroler
Arduino Mega 328 Servo ControllerSPC
Servo 1 Servo 2 Servo 3 Servo 5 Servo 4 Servo 6 Servo 7 Servo 8 Servo 9 Servo 10
Gambar 1.1 Blok Diagram Lengan Robot Bermain Keyboard Dengan Lima Jari g. Proses pengujian dan pengambilan data.
pengendali utama. Pengujian dilakukan dengan menghubungkan Keypad Matrix 4x3 dengan Arduino Mega 2560. Pengambilan data yang dilakukan dengan mengambil data posisi maksimal yang dapat dijangkau oleh lengan dan seberapa besar sudut perubahannya. Data tersebut akan digunakan untuk menggerakkan motor servo yang dikontrol oleh servo controller yang dihubungkan dengan Arduino Mega2560.
h. Analisa dan kesimpulan hasil perancangan.
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 ].
Pada saat ini 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. Bahasa pemrograman yang digunakan oleh arduino adalah bahasa C.
2.1.1. Arduino Mega 2560 R3
kristal 16 MHz, sebuah jack femaleuntuk koneksi USB, jack femaleadaptor, dan sebuah tombolreset3].
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.1 dan Tabel 2.1 menjelaskan tentang alokasi penempatan pin dan keterangan masing-masing pin.
Gambar 2.1. Alokasi Penempatan Pin ArduinoMega2560 R3 [3] 1
3
6 5 12
11 10
9 8
7 6
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 Masukankomunikasi dengan PC melalui kabel serial USB).power eksternal bila Arduino bekerja mandiri (tanpa 4 TombolReset Tombolresetinternal yang digunakan untuk mereset modul Arduino. 5 PinAnalog Menerima input dari perangkat analog lainnya.
6
PinPower
1. Vin = Masukan tegangan input bagi Arduino ketika 2. menggunakan sumber daya eksternal.
3. 5 V = Sumber tegangan yang dihasilkan regulator internalboard Arduino.
4. 3,3 V = Sumber tegangan yang dihasilkan regulator internalboard
Arduino. Arus maksimal pada pin ini adalah 50 mA. 5. GND = Pingrounddari regulator teganganboardArduino. 6. IOREF = Tegangan Referensi.
7. AREF = Tegangan Referensi untukinput analog.
7 Light-EmittingDiode(LED) PinArduino.digital 13 merupakan pin yang terkoneksi dengan LED internal
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 PinInterfaceTwo Wire
(TWI)
Terdiri dariSerial Data Line(SDA) danSerial Interface Clock(SCL).
11 Pin Digital Pin yang digunakan untuk menerimaberbentuk digital (0 dan 1 ataulowdaninput digitalhigh) dan memberioutput
12 PinPeripheralSerial Interface(SPI)
1. Terdiri dari 4 buah Pin : 2. Master In Slave Out(MISO)
3. Jalurslaveuntuk mengirimkan data keMaster.
4. Master Out Slave In(MOSI)
5. Jalurmasteruntuk mengirimkan data ke peralatan. 6. Serial Clock(SCK)
7. Clock yang berfungsi untuk memberikan denyut pulsa ketika sedang menyinkronkan transmisi data olehmaster
8. Slave Select(SS)
2.1.2. Perangkat Lunak Arduino (Software)
Area pemrograman Arduino dikenal dengan Integrated Development Enviroment
(IDE). Area pemrograman Arduino yang open sourcememungkinkan untuk menulis baris program dan mengunggahnya ke dalamboard Arduino. Disaping perangkat lunak ini juga dibuat lebih mudah dan dapat berjalan pada beberapa system operasi seperti Windows, Macintosh, dan Linux. Arduino dapat diprogram pada sistem operasi komputer berbasis
Windows, Mac OS X, dan Linux. Bahasa pemrogramannya dapat ditulis di Java, avr-gccdan perangakat lunak yang berbasisopen sourcelainnya [9].
IDE Arduino membutuhkan beberapa pengaturan yang digunakan untuk mendeteksi
board Arduino yang sudah dihubungkan ke komputer. Beberapa pengaturan tersebut adalah mengatur jenis board yang digunakan sesuai dengan board yang terpasang dan mengatur jalur komunikasi data melalui perintah Serial Port. Kedua pengaturan tersebut dapat ditemukan padapull down menu Tools.
Tabel 2.2. Keterangan Tombol Pada TampilanArduino IDE
No. Tombol Nama Fungsi
1 Verify
Menguji apakah ada kesalahan pada program atau
sketch. Apabilasketchsudah benar, makasketchtersebut akan dikompilasi. Kompilasi adalah proses mengubah kode program ke dalam kode mesin.
2 Upload Mengirimkan kode mesin hasil kompilasi ke boardArduino
3 New Membuat sketch yang baru
4 Open Membuka sketch yang sudah ada
5 Save Menyimpan sketch
6 SerialMonitor Menampilkan data yang dikirim dan diterima melaluikomunikasi serial.
Tugas dari Arduino Software adalah menghasilkan sebuah file berformathexyang akan di-downloadpada papan arduino atau papan sistem mikrokontroler lainnya. Ini mirip denganMicrosoft Visual Studio, Eclipse IDE, atau Netbeans. Lebih mirip lagi adalah IDE semacam Code::Blocks, CodeLite atau Anjuta yang mempermudah untuk menghasilkan
file program. Bedanya kesemua IDE tersebut menghasilkan program dari kode bahasa C (dengan GNU GCC) sedangkanArduino Software (Arduino IDE) menghasilkan file hex
dari baris kode yang dinamakan sketch[9].
Sketch adalah nama dari program yang ditulis pada Arduino Software, kemudian
sketch merupakan kesatuan dari kode program yang akan di-upload dan dijalankan pada papan Arduino. Pada umumnyasketchyang dibuat diArduino Softwaredi-compiledengan perintah verify / Compile (Ctrl+R) lalu hasilnya di-download ke papan Arduino seperti Arduino Uno R3. Program hasil kompilasi itu lalu dijalankan oleh bootloader. Semua papan Arduino memiliki perangkat lunak yang dinamakanbootloader [9].
2.2. Motor Servo
putaran sumbu (axis) dari motor akan diinformasikan kembali ke rangkaian kontrol yang ada di dalam motor servo[8].
Gambar 2.3. Motor RC Servo
Motor servo disusun dari sebuah motor DC, gearbox, variabel resistor (VR) atau potensiometer dan rangkaian kontrol. Potensiometer berfungsi untuk menentukan batas maksimum putaran sumbu (axis) motor servo. Sedangkan sudut dari sumbu motor servo diatur berdasarkan lebar pulsa yang pada pin kontrol motor servo.
Motor servo adalah motor yang mampu bekerja dua arah (CW dan CCW), arah dan sudut pergerakan rotornya dapat dikendalikan dengan memberikan variasi lebar pulsa (duty cycle) sinyal PWM pada bagian pin kontrolnya.
Jenis-jenis Motor Servo:
1. Motor Servo Standar 180°
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°.
2. Motor Servo Continuous
Motor servo jenis ini mampu bergerak dua arah (CW dan CCW) tanpa batasan defleksi sudut putar (dapat berputar secara kontinyu).
2.2.1. Pulsa Kontrol Motor Servo
Operasional motor servo dikendalikan oleh sebuah pulsa selebar ± 20 ms, lebar pulsa antara 0.5 ms dan 2 ms menyatakan akhir dari range sudut maksimum. Apabila motor servo diberikan pulsa dengan besar 1.5 ms mencapai gerakan 90°, maka bila kita berikan pulsa kurang dari 1.5 ms maka posisi mendekati 0° dan bila kita berikan pulsa lebih dari 1.5 ms maka posisi mendekati 180°.
Gambar 2.5. Pulsa Kendali Motor Servo
Motor Servo akan bekerja secara baik jika pada bagian pin kontrolnya diberikan sinyal PWM dengan frekuensi 50 Hz. Dimana pada saat sinyal dengan frekuensi 50 Hz tersebut dicapai pada kondisi Ton duty cycle 1.5 ms, maka rotor dari motor akan berhenti tepat di tengah-tengah (sudut 0°/ netral).
bertahan diposisi tersebut. Dan sebaliknya, jika Ton duty cycle dari sinyal yang diberikan lebih dari 1.5 ms, maka rotor akan berputar searah jarum jam (Clock Wise, CW) dengan membentuk sudut yang linier pula terhadap besarnya Ton duty cycle, dan bertahan diposisi tersebut [ 8 ].
2.3. Keypad Matriks 3x4
Keypad merupakan barisan dari tombol-tombol yang tersusun membentuk baris dan kolom. Terdapat 2 buah kabel yang terkoneksi setiap waktu ketika salah satu dari tombol tersebut ditekan. Contoh; jika tombol “1” ditekan, maka pin 1 dan pin 5 terkoneksi. Tidak terdapat koneksi diantara baris dan kolom pada keypad. Ada banyak jenis dari keypad. Beberapa diantaranya digunakan untuk fungsi yang berbeda-beda sesuai dengan kebutuhan pemakaian.
Pin pada keypad membutuhkan teganganpull updanpull downuntuk menghindari konsleting. Tegangan normal yang dibutuhkan adalah 5V dan juga terhubung dengan ground.
Gambar 2.6. Gambar Keypad Matriks 3x4
2.4. Alat musik Keyboard
Gambar 2.7. Gambar Alat Musik Keyboard
Penggunaan alat musik ini memiliki beberapa tatacara dalam prosesnya, selain untuk mempermudah dalam pengoperasian, tatacara ini juga berguna untuk melatih kelincahan jari dan koordinasi otak.
Pada umumnya keyboard memiliki 5 oktaf tangga nada, batas penggunaan jari kiri adalah 2 oktaf sebelah kiri dan penggunaan jari kanan adalah 3 oktaf tangga nada sselanjutnya.
Gambar 2.8. Gambar batas penggunaan jari kiri dan kanan tangan pada keyboard
Penempatan jari dalam pembelajaran dasar bermain keyboard pada nada mayor adalah menggunakan ibu jari untuk menekan tuts mayor C (do) kemudian diikuti jari telunjuk untuk menekantutsD (re) dan jari tengah digunakan untuk menekantutsE (mi).
Selanjutnya pada nada F (fa) kembali menggunakan ibu jari tangan kanan diikuti jari-jari yang lain dan diakhiri dengan menekan tuts mayor C (do) pada oktaf berikutnya dengan menggunakan jari kelingking.
Tatacara ini hanya berguna dalam melatih dasar dalam bermain keyboard dan tidak berpengaruh ketika bermain musik secara cepat.
Gambar 2.10. posisi pergerakan jari tangan kanan padatutskeyboard (fingering)
2.5. Servo Controller
Adafruit sevo motor controller merupakan modul pengendali motor servo yang dapat mengendalikan hingga 16 motor servo secara serentak maupun sekuensial. Modul ini mendukung motor servo standar maupun kontinyu.Adafruit sevo motor controller
menyediakan komunikasi antarmuka yaitu I2C. Modul ini dilengkapi
dengansoftwareuntuk mendesain gerakan dengan sekuen atau urutan tertentu dan menyimpan sekuen gerakan sehingga sesuai untuk aplikasi robotik maupun aplikasi lain yang menggunakan motor servo lainnya[14]. Adafruit sevo motor controller ini dapat digunakan untuk mengendalikan hingga 16 motor servo secara serentak maupun sekuensial. Pada antarmuka I2C, 8 modul Adafruit sevo motor controller dapat
dihubungkan bersama pada satu jalur I2C untuk mengendalikan hingga 8x20 motor
RCservo. Range catu daya yang digunakan modul adalah 5 - 6 VDC 2 - 10 A.
2.6. Komunikasi Serial
Komunikasi serial merupakan komunikasi data dengan pengiriman data secara satu per satu pada waktu tertentu. Sehingga komunikasi data serial hanya menggunakan dua kabel yaitu kabel data untuk pengiriman yang disebut transmit ( TX ) dan kabel data untuk penerimaan yang disebut receive ( RX ). Kelebihan dari komunikasi serial adalah jarak pengiriman dan penerimaan dapat dilakukan dalam jarak yang cukup jauh dibandingkan dengan komunikasi parallel tetapi kekurangannya kecepatannya lebih lambat dibandingkan komunikasi parallel.
Dalam komunikasi serial dikenal ada dua mode komunikasi serial: a. Mode Sinkron
Mode sinkron merupakan mode komunikasi yang pengiriman tiap bit data dilakukan dengan menggunakan sinkronisasi clock. Pada saat transmitter hendak mengirimkan data, harus disertai clock untuk sinkronisasi antara transmitter dan
receiver.
b. Mode Asinkron
Komunikasi asinkron serial merupakan sebuah protocol transmisi asinkronous, dimana komunikasi ini tidak menggunakan clock, tetapi telah memiliki baudrate yang telah disepakati oleh masing-masing sistem yang sedang berkomunikasi. Kerja dari komunikasi ini adalah, signal startdikirimkan pada saat sebelum data dikirimkan dan signal stop dikirimkan setelah setiap data selesai dikirimkan. Signal start digunakan untuk mempersiapkan mekanisme penerimaan untuk menerima dan memproses data yang akan dikirimkan dan signal stop
berguna untuk mempersiapkan mekanisme penerimaan data berikutnya [15]. Berikut ini adalahprotocolpengiriman data secaraserial asinkron: 1. Start bit selalu berlogic LOW.
2. Pengiriman data bit dari 0 sampai 8. 3. Parity bit.
4. Stop bit selalu berlogic HIGH IDLE jika tidak ada pengiriman data selanjutnya.
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
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.
a. Karakter I2C :
1. Serial Bus Data dikirim serial secara per-bit.
2. Menggunakan dua Penghantar Koneksi dengan ground bersama I2C terdiri dari dua penghantar:
a. SCL (Serial Clock Line) untuk menghantarkan sinyalclock. b. 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.
b. 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.
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 sebagaiacknowledgedarireceiverketransmitter. 5. Acknowledge:
Setiap receiver wajib mengirimkan sinyal acknowledge atau sinyal balasan setiap selesai pengiriman 1-byte atau 8-bit data. Master harus memberikan ekstraclockpada 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 penentu sinyal STOP. Pada bit-akhir penerimaan byte terakhir, master tidak mengirimkan sinyalacknowledge, 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
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.12. GambarData transfer from a master transmitter to a slave receiver
[18]
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. [18]
Gambar 2.13. GambarData transfer from a slave transmitter to a master receiver
[18]
2.8. Kinematika
derajat kebebasan masing-masingjoint, posisi, serta orientasi dariend effectorpada lengan robot.”
Terdapat dua topik pembahasan mendasar pada kinematik lengan robot. Yang pertama adalah Direct atau Forward Kinematics. Dan yang kedua adalah Inverse KinematicsatauArm Solution.
Gambar 2.14. Kinematika pada Lengan Robot
Ada dua pandangan mengenai kinematika. Pada Forward Kinematika perhitungan akan lebih ditekankan kepada sudut-sudut pada sendi robot untuk menentukan dimana letak tangan berada. Berbeda dengan masalah menggunakan Invers kinematika yang lebih real, ketika tangan robot sudah berada pada posisi yang diinginkan, maka kita perlu mencari berapa sudut yang harus diberikan pada semua sendi robot. Hal ini mirip dengan kegiatan manusia dalam menggunakan tangannya. Manusia tidak perlu memikirkan sendi-sendinya ketika mengambil sesuatu, juga tidak perlu memikirkan apa yang seharusnya bahu lakukan, siku lakukan namun hanya perlu bergerak untuk menggapainya, dan akan tercipta sudut-sudut itu sendiri.
Gambar 2.16. Gambar skema lengan robot sederhana
Gambar 2.14 merupakan skema robot sederhana berbaring pada bidang XY. Robot memiliki satu link I panjang dan satu sendi dengan sudut θ. Posisi tangan robot adalah Xhand. Cara menentukan sudut sendi θ adalah sebagai berikut:
Xhand = I cos θ (forward position solution) (2 - 1)
Cos θ = (2 - 2)
θ = cos-1 (2 - 3)
Gambar 2.17. Skema posisi lengan robot dari samping
OD = +
CD = Pz
OC =√ + = ( + ) + = + +
OB =√ + = ( + ) + ( + ) =
+ + ( + )
Berdasarkan gambar 2.15 diatas, maka juga dapat diketahui bahwa:
θ3+ sudut OAB = θ3+ γ = 1800 (2 - 4)
θ3= 1800– γ (2 - 5)
Dengan demikian maka :
Cos θ3= cos (1800– γ) = -cos γ (2 - 6)
Cos γ = . .
=
. . ( ) (2 - 7)Cos θ3=
( )
. . (2 - 8)
dan berdasarkan aturan trigonometri, maka:
sin θ3= 1 − (2 - 9)
dengan demikian, maka nilai sudutjoint2 adalah:
θ3= (2 - 10)
solusi untuk sudutjoint2 ( θ2)
dengan menetapkan nilai sudut joint2 ( θ2) merupakan hasil penjumlahan dari sudut BOD
θ2= sudut BOD + sudut EOB
=(- β1) + (- β2) = - β1 - β2 (2 - 11)
Untuk itu perlu diketahui dahulu besarnya sudut BOD (β1) dan sudut EOB (β2):
Sudut BOD (β1) :
sinβ1 = = ( )
( ) (2 - 12)
cosβ1 = =
( ) (2 - 13)
sehingga :
β1 = (2 - 14)
Sudut DOB (β2) :
sinβ1 = = .
( ) (2 - 15)
cosβ2 = = .
( ) (2 - 16)
sehingga :
β2 = (2 - 17)
Solusi untuk sudutjoint4 (θ4)
Pada tahap akhir perhitungan adalah joint 4. Pada gambar 2.15 terlihat seolah – olah terbentuk bidang segi empat dengan panjang rusuk yang tidak sama panjang. Pada ilmu ukur, sudut total pada bidang segiempat adalah 3600. Dengan demikian maka bilaθ
1
,θ2,danθ3telah diketahui sebelumnya makaθ4dapat dicari, dengan perhitungan:
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 Pengendali utama. b. Perancangan perangkat lunak
 Perangkat lunak pengaturankeypad matrix 3x4.
 Perangkat lunak pengendali motor RCservodenganArduino IDE.
 Perangkat lunak pengendali motor RC servo dengan SPC Servo Motor Controller.
3.1. Perancangan Perangkat Keras (
Hardware
)
Perancangan perangkat keras (Hardware) terdiri dari dua bagian utama yaitu perancangan mekanik lengan robot dan perancangan rangkaian pengendali utama. Penggunaan diagram blok digunakan sebagai perencana konsep keseluruhan dalam pembuatan perangkat keras agar dapat memperlihatkan fungsi dan cara kerja sistem dari perangkat keras tersebut. Dalam perancangan perangkat keras disertakan pula tampilan visual berupa rancangan gambar 3D dari prototype lengan robot, secara sistematis dari pengukuran jangkauan, berat beban dan lengkap secara dimensi panjang lengan dan kemungkinan gerakan melalui sudut-sudut pergerakannya sehingga mampu menjelaskan sesuai dengan aslinya.
Perancangan perangkat keras juga meliputi perancangan rangkaian pengendali utama sebagai sistem pengendali gerakan lengan robot dengan cara mengaktifkan motor RC servo yang berfungsi sebagai penggerak sendi pada setiap lengan untuk melakukan gerakan menjangkau atau memposisikan tempat.
penyusun dari sistem tersebut meliputi input data dari keypad matrix 3x4, komponen pengendali berupa mikrokontrolerAtmega 328 pada papanArduino Mega R3, pengendali motor RC servo (SPC servo motor controller) dan bagian keluaran (output) yaitu motor RCservo.
Bagian kedua dalam perancangan lengan robot adalah pembahasan mengenai rancangan mekanik dan perhitungan kinematika gerakan robot yang menggunakan proses perhitungan secara invers kinematics. Desain mekanik lengan robot secara tampilan gambar dan keterangannya akan menjelaskan secara lengkap komponen penyusun meliputi dimensi dari lengan robot dan motor RC servo yang digunakan.
3.1.1. Perancangan Mekanik Robot.
Gambar 3.1. Blok Diagram Perangkat Keras (Hardware)
Gambar 3.1 merupakan blok diagram sistem. Pada blok diagram tersebut, perangkat keras yang akan dibuat terdiri dari tiga bagian, yaitu keypad matriks 3x4 yang berfungsi sebagai pemberi data masukan, Arduino Mega 2560 R3 dan SPC (Servo Motor Controller) sebagai pengolah data dan pengontrol, Motor RC Servo sebagai pengeksekusi data. Rangkaian kontroler Arduino Mega 2560 R3, Motor RC Servo. Pada prinsipnya akan menerima data yang dikirimkan dari keypad yang telah dihubungkan pada bagian analog input, bagian tersebut sudah memiliki ADC( Analog to Digital Converter ).
Data yang diterima oleh kontroler Arduino Mega 2560 R3 tersebut kemudian akan diolah. Data-data tersebut berupa posisi gerakan dan sinyal-sinyal kepada SPC Servo Controller untuk mengirim input berupa signal pulsa digital kepada motor RC servo sehingga dapat menggerakkan lengan robot. Besar kecilnya sinyal yang didapat oleh motor RC servo akan mempengaruhi gerakan rotasi pada lengan-lengan robot sehingga memungkinkan robot untuk dapat bergerak pada 3 sumbu axis yaitu X, Y dan Z.
3.1.2. Pemodelan Mekanik
Gambar 3.2. merupakan gambar keseluruhan design 3D lengan robot. Lengan robot ini memiliki tiga bagian utama yang digerakkan dengan motor servo. Motor servo yang digunakan sebanyak 5 buah. Motor yang digunakan memiliki tipe yang berbeda, terdapat 3 tipe yang digunakan.
1. Base(bagian dasar) 2. Shoulder(bagian bahu) 3. Elbow(bagian siku) 4. Pitch(bagian pergelangan) 5. Gripper(bagian jari) 6. MotorBase
7. MotorShoulder A
8. Motorshoulder B
9. Motorelbow
10. Motorpitch
Gambar 3.2. Tampilan SeluruhnyaDesignGambar 3D 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 yang memiliki roda gigi dan tersambung dengan roda gigi pada sebuah motor RC servo yang befungsi sebagai penggerak base. Base bergerak secara rotasi dan dapat menyebabkan perubahan posisi secara horizontal pada lengan-lengan penghubung yang lain.
Gambar 3.3. Gambar Posisi Gear Pemutar Base yang diCoupleDengan Motor Servo
1 2 3 4 5
Bagianshouldermemiliki panjang lengan 18cm dan bergerak secara rotasi vertikal dengan 2 buah motor RCservo. Bagianelbowmemiliki panjang lengan 12cm dan bergerak secara rotasi vertikal dengan sebuah motor RC servo. Bagian pitch memiliki panjang lengan 5cm dan bergerak secara rotasi vertikal dengan sebuah motor RC servo. Bagian paling ujung adalahgripperdigunakan untuk memegang benda dalam hal ini beban berupa jari yang berfungsi untuk menekan tuts keyboard.Gerakkan pada setiap jari dihubungkan dengan sebuah motor RC servo. Panjanggrippersampai pada ujung jari memiliki panjang 15cm. Total keseluruhan panjang lengan robot dari pangkal shoulder sampai pada ujung jari adalah 50cm. Besarnya dimensi berupa panjang yang dimiliki oleh keseluruhan penghubung (link) menentukan kemampuan sebagai jangkauan lengan robot ketika melakukan gerakkan.
Bagian yang berperan sebagai penggerak adalah sendi (joint) terhubung langsung dengan motor RC servo. Gerakkan yang terjadi pada joint di setiap bagian pangkal dari
link adalah rotasi. Gerakkan secara rotasi menyebabkan adanya perbedaan besarnya sudut-sudut yang terjadi pada setiap penghubung (link) dari titik acuan awal yaitu pada bagian pangkal dari bahu (shoulder).
Motor RC servo yang digunakan sebanyak 10 buah. Pemilihan motor RC servo
yang digunakan pada setiapjointberdasarkan pada kemampuan yang harus dimiliki setiap
jointuntuk 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. Gripper 180gr 180gr
2. Pitch 120gr 300gr
3. Elbow 200gr 500gr
4. Shoulder 500gr 1000gr
Pada tabel 3.1. untuk perkiraan berat setiap lengan merupakan total berat dari material lengan dan motor RC servoyang menempel pada lengan. Sedangkan pada 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. Pada tabel 3.1. bagian base diasumsikan memiliki berat yang ringan walaupaun terletak paling dasar karena bagian basetidak terbebani oleh berat keseluruhan dari prototype lengan robot karena seluruh lengan robot sudah ditopang oleh empat buah tiang penyangga.Pada perancangan mekanik motor RC servoyang digunakan hanya untuk memutar bagian base yang memiliki torsi yang tidak terlalu besar yaitu diperkirakan sebesar10 kgf.cm.
Gambar 3.4. Gambar Design Tangan Robot dengan 5 Jari
Pada gambar 3.4. menunjukkan bahwa beban yang diangkat pada bagianpitchtidak begitu besar dan cukup ringan sehingga hanya memerlukan motor RCservoyang memiliki torsi kecil. Motor RC servobagian gripper pada perancangan lengan robot ini dirancang memerlukan torsi kecil yaitu hanya berkisar 2 kgf.cm pada setiap jari. Sehingga motor servo yang digunakan berjumlah 5 buah.
Pada bagianpitchbeban yang harus diangkat adalah 300 gram karena bagianpitch
selain mengangkat lengannya sendiri juga harus mengangkat seluruh bagian gripper. Bagian pitch memiliki panjang 5 cm dan bagian gripper sampai ujung jari memiliki panjang 15 cm, sehingga panjang lengan yang harus diangkat adalah 20 cm. Berikut adalah perhitungan untuk merancang torsi pada bagianpitch:
F = m x a = 0,3 kg x 10 m/s2= 3 N = 3 Kgm/s2
3 N x 0,102 = 0,306 Kg
τ
=F
×r
= 0,306 Kg × 20 cm = 6,12 Kg.cmPada bagianelbowbeban yang harus diangkat adalah 500 gram, sedangkan panjang lengan yang harus diangkat motor RC servo adalah 32 cm yang dihitung dari panjang lenganelbow, panjang lenganpitchdan panjanggrippersampai ujung jari. Kebutuhan torsi motor RCservopada perancangan lengan robot :
m = 500gram = 0,5 kg r = 32 cm
F = m x a = 0,5 kg x 10 m/s2= 5 N = 5 Kgm/s2
5 N x 0,102 = 0,51 Kg
τ
=F
×r
= 0,51 Kg × 32 cm = 16,32 Kg.cmPada bagian shoulder beban yang harus diangkat adalah 1000 gram, sedangkan panjang lengan yang harus diangkat motor RC servo adalah 50 cm yang dihitung dari panjang lengan shoulder,panjanglenganelbow, panjang lenganpitchdan panjanggripper
sampai ujung jari. Kebutuhan torsi motor RCservopada perancangan lengan robot : m = 1000 gram = 1,0 kg
r = 50 cm
F = m x a = 1 kg x 10 m/s2= 10 N = 10 Kgm/s2
10 N x 0,102 = 1,02 Kg
τ
=F
×r
= 1,02 Kg × 50 cm = 51 Kg.cmBerdasarkan 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 lebih besar dari 25,5 Kg.cm (51 Kg.cm : 2 = 25,5 Kg.cm) yang akan dipasang pada
shoulder 1danshoulder 2.
Gambar 3.5. Tampilan SeluruhnyaDesignGambar 3D Lengan Robot
Pada 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 setiap lengan penghubung robot. Sudut maksimal yang dapat di jangkau oleh lengan robot sebagai berikut :
Tabel 3.2. Tabel sudut maksimal jangkauan lengan robot
NO. Lengan Penghubung (link) Panjang lengan Sudut maksimal yangdapat dijangkau
1. Gripper/ Jari 15cm 1800
2. Pitch 5cm 1800
3. Elbow 12cm 1800
4. Shoulder 18cm 1800
5. Base( berputar pada poros ) 0cm 900
3.1.3. Perancangan
Inverse Kinematics
merupakan posisi akhir lengan robot untuk menentukan dimana tuts keyboard yang akan ditekan.
Tabel 3.2. Tabel perencanaan gerakkan lengan robot berdasarkan putaran motor RCservo.
No. Link(lengan) Panjang (cm) Total Mak. Min.
1 Base - 2000 1000 -1000
2 Shoulder 18 900 900 00
3 Elbow 12 1800 900 -900
4 Pitch 5 1800 900 -900
5 Gripper 15 2000 2000 00
Dengan desain posisi awal seperti yang pada gambar 3.3, untuk posisi tersebut dengan menggunakan perhitungan invers kinematics sudut-sudut pada setiap link robot dapat ditentukan.
Gambar 3.6. posisi lengan robot dan keyboard saat kondisi awal
Dengan diketahui panjang setiap lengan OA, AB, BC dan jarak OD maka:
OD = 40 cm
CD = 1 (jarak antara jari dan tuts keyboard)
Sudut AOY adalah 46,80maka sudut pada AOX adalah 43.20
OC =√ + = √ 40 + 1 = 40,012
OB =√ + = 19 ,63 + 2 = 20,46
Dengan aturan cosinus maka sudut-sudut pada segitiga OAB adalah :
Cos α = . .
=
. . ,=
0,114α = 83,45O( OAB = 83,45O)
Cos β = . .
=
. ,. ,=
0,485β = 60,98O( ABO = 60,98O)
Cos γ = . .
=
. , .=
0,812γ = 35,7O( BOA = 35,7O)
untuk mencari sudut ABC, digunakan aturan cosinus pada segitiga OBC. Penjumlahan antara sudut ABO dengan sudut OBC tersebut kemudian dikurangi 3600, maka :
cos OBC = 0,966 = 166O
Sudut ABC = 360O- (sudut ABO + sudut OBC)
= 360O– (60,98O+ 166O)
Ditentukan gerakan inisiasi lengan adalah lurus keatas dengan memberikan pulsa 1,5 ms pada motor servo sehingga membentuk sudut sebesar 90O. Kemudian gerakan lengan
untuk menjangkau keyboard dimulai dengan lengan OA membentuk sudut 46,8O pada
sumbu Y dengan memberikan pulsa kurang dari 1,5 ms, kemudian lengan AB membentuk sudut 96,55O terhadap OA, selanjutnya lengan BC membentuk sudut 110,55O terhadap
lengan AB. Setting posisi tersebut akan menempatkan gripper kurang lebih 1cm diatas tuts keyboard. Posisi tersebut diatur secara manual dengan memberikan pulsa pada motor servo untuk bergerak dan diukur ketepatannya dengan busur derajat.
Karena perpindahan lengan robot dalam bermain keyboard hanya membutuhkan gerakan secara horizontal dan posisi awal yang digunakan adalah oktaf ke 3 atau middle yang merupakan batas oktaf untuk tangan kanan pada gambar 3.4. maka perhitungan pada ibu jari yang nantinya akan berpindah dari posisi awal pada nada C kemudian nada F adalah:
Gambar 3.8. posisi lengan robot pada tuts keyboard dilihat dari atas
Gambar 3.9. posisi lengan robot dari atas sederhana
O
Pada gambar 3.9. posisi A merupakan posisi awal lengan robot dan B merupakan perpidahan ibu jari dari nada C ke nada F, dengan kondisi lengan tidak berubah maka besar sudut pada AOB :
Dengan menggunakan aturan Tangensial Mencari sudut OA :
tan θ =
(3 - 1)
= = 0,15 θ = tan-10,15
= 8,5O
Mencari sudut OB :
tan θ =
(3 – 2)
= = 0,05 θ = tan-10,05
= 2,86O
Karena sudut AOB adalah sudut penjumlahan antara sudut AOY dan YOB maka : AOB = 8,5O+ 2,86O
= 11,36O
3.2.
Perancangan Rangkaian pengendali utama
Pada rangkaian pengendali utama terdapat dua buah komponen yang digunakan untuk mengontrol gerakan lengan robot. Pengendali tersebut adalah Arduino Mega 2560 R3 dan Adafruit Servo Controller.
Rangkaian kontroler pada Arduino Mega 2560 R3 akan menerima data yang dikirimkan dari keypad yang telah terhubung dengan analog input, bagian tersebut juga telah memiliki ADC( Analog to Digital Converter)
3.2.1. Perancangan Elektrik
Perancangan elektrik dari sistem lengan robot bermain keyboard menggunakan 5 jari terbagi menjadi tiga bagian penyusun yaitu Perancangan rangkaian keypad (input), perancangan komponen pengendali (controller) yang menggunakan mikrokontroler Arduino mega 2560 danservo motor controller dan Perancangan sistem keluaran (output) berupa motor-motor RC servo yang terdapat pada setiap sendi.
Keypad digunakan sebagai perangkat untuk memberikan sebuah perintah atau data masukan berupa sinyal pulsa yang nantinya akan ditangkap dan diproses oleh Mikrokontrol dan diolah dalam program untuk menghasilkan posisi dan gerakan.
Microcontroller Arduino Mega 2560 dan Servo Controller berfungsi sebagai driver untuk mengendalikan motor servo. Servo Controller tersebut digunakan agar gerakan dari motor servo tersebut dapat bergerak dengan baik dan tidak terjadi noise saat motor bekerja. Arduino Mega 2560 R3 dan Servo Controller saling terhubung mengunakan komunikasi I2C, komunikasi tersebut memanfaatkan pin SDA dan SCL pada Arduino Mega 2560 dan juga padaAdafruit Motor Servo Controller.
3.2.1.1. Perancangan Keypad Matriks 3x4
Gambar 3.10. Rangkaian Komunikasi keypad matriks dengan Arduino Mega 2650
mikrokontroler sebagai angka jika 2 buah pin terkoneksi. Rangkaian keypad ini membutuhkan tegangan normal 5V dan juga terhubung dengan ground.
3.2.1.2. Perancangan Rangkaian Controller
Bagian yang ketiga adalah rangkaian motor servo. Penggerak atau akuator dari lengan robot ini menggunakan motor RC servo. Motor servo tersebut akan digerakkan dengan menggunakan servo controller. Sehingga motor servo tersebut dapat bergerak secara bersamaan maupun secara sekuensial.
Gambar 3.11. Rangkaian Komunikasi I2C
3.2.2. Perancangan Rangkaian Motor Servo
Gambar 3.12. a.Gambar Rangkaian Motor Servo UntukGripperb. Gambar Rangkaian Motor Servo Untuk 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 Servo Controller yang dihubungkan dengan Arduino Mega 2560 R3. Antara Adafruit Servo Controller dengan Arduino Mega 2560 R3 dihubungkan dengan komunikasi I2C. komunikasi I2C tersebut menggunakan port SDA dan SCL. Port tersebut digunakan untuk transfer data serial antara Servo Controller dengan Arduino.
Sehingga pada saat Arduino Mega 2560 memberikan perintah tertentu pada servo controller. Maka servo controller tersebut akan memberikan sinyal-sinyal pulsa yang digunakan untuk menggerakkan motor servo.
3.3. Perancangan Perangkat Lunak ( Software )
Perancangan perangkat lunak (software) merupakan perancangan pemrosesan data yang berjalan didalam program. Saat program mulai dinyalakan maka proses yang terjadi adalah pembacaan data dan pemilihan input data yang muncul untuk segera diproses dan dijadikan output gerakan. Pemrosesan data terjadi ketika robot mulai dinyalakan, dan terdapat input yang memerintahkan program untuk segera mengeksekusi data tersebut
sehingga akan menghasilkan gerakan lengan yang sesuai dengan data yang telah dimasukkan maupun input yang keluar dari kendali.
3.3.1. Perangkat Lunak Program Keseluruhan
Gambar 3.15a. Gambar 3.15b.
Diagram alir proses data dari input angka Diagram Alir Program pemrosesan
Gambar 3.16. Diagram Alir Program pemilihan jari untuk menekan tuts keyboard
Pada gambar 3.14 merupakan diagram alir perangkat lunak berupa program yang dimulai dari pembacaan data awal yang berfungsi sebagai inisiasi dan kalibrasi lengan robot. Data masukan dari keypad akan diproses menjadi dua cara yaitu angka dan kode.
Pada gambar diagram alir 3.15a dan gambar 3.15b menjelaskan bahwa data angka akan memberikan respon kepada robot untuk mengatur posisi dan gerakan lengan sesuai dengan program dan angka yang ditekan secara manual dan satu persatu, sedangkan data kode akan memberikan respon kepada lengan robot untuk memainkan secara langsung beberapa nada secara otomatis sesuai dengan kode yang ditekan dan data yang telah dibuat. Pada data kode akan diberikan 2 pilihan yaitu kode * akan memberikan proses lengan memainkan nada dari nada C (do) hingga nada c’(do’) dengan tempo sedang (andante) dengan ketukan 69-76 per menit atau notasi ¼.
Gambar 3.17. Diagram chart nada yang dimaikan pada kode *
Gambar 3.18. Diagram chart lagu “Ode to Joy” yang dimaikan pada kode #
BAB IV
HASIL DAN PEMBAHASAN
Bab ini menjelaskan dan membahas hasil implementasi alat yang dibagi menjadi dua bagian yaitu hasil perancangan pada perangkat keras dan hasil perancangan pada perangkat lunak.
4.1 Hasil perancangan perangkat keras
Hasil perancangan perngkat keras pada bagian konstruksi dari lengan robot bermain keyboard dengan lima jari ini secara keseluruhan sesuai dengan perancangan. Gambar 4.1 merupakan hasil dari perancangan bagian konstruksi alat ini. Keterangan gambar alat ini ditunjukkan pada tabel 4.1 menunjukkan masing- masing komponen seluruh alat yang dibuat.
Gambar 4.1. Hasil perancangan Konstruksi
1
2 4
5
Tabel 4.1. Keterangan gambar keseluruhan alat
No Keterangan
1. Jari Robot
2. Pitch
3. Elbow
4. Shoulders
5. Base
6. Rangkaian pengontrol
Pada perancangan perangkat keras pada lengan robot bermain keyboard dengan lima jari ini terdapat pula bagian untuk mengkomunikasikan dan memberikan input kepada motor servo yaitu rangkaian microcontrollerdengan servo controller, rangkaian kontroler serta perancangan pada konstruksi alat. Gambar 4.2 merupakan bagian dari
microcontroller dan servo controller yang dipasang secara bertumpuk. Gambar 4.3 merupakan posisi konektor yang berfungsi mengkomunikasikan keypad melalui
microcontroller serta servo controller dengan motor servo. Keterangan dan fungsi dari masing – masing bagian dapat dilihat pada tabel 4.2.
Gambar 4.3. Posisi konektor pada microcontroller
Tabel 4.2. Bagian dari Perangkat Keras Elektrik dan Fungsi dari Rangkaian
No Nama Rangkaian Fungsi
1 Komunikasi padaKeypad Untuk mengaktifkan perintah yang
diinginkan
2 Komunikasi Servo controller Untuk mengontrol gerakan servo sesuai
dengan pin out pada board adafruit
3 Komunikasi Microcontroler Untuk mengontrol gerakan servo jari
sesuai dengan pin out pada board arduino
Pada gambar 4.1 diperlihatkan saat board servo controller digabungkan dengan Microcontrol ATMega 2560, bagian yang ditandai dengan nomor 2 adalah pin out pada
board servo controller yang berfungsi untuk memberikan kondisi setiap lengan robot. Sedangkan bagian yang ditandai dengan nomor 3 merupakan pin out pada board Microcontroller yang berfungsi untuk mengaktifkan pin yang dipilih ketika data input dieksekusi menggunakankeypad.
4.2 Hasil Pengujian
Pengujian perangkat keras pada alat ini meliputi beberapa bagian rangkaian yang diuji. Pengujiannya meliputi pembacaan keypad terhadap serial monitor mikrokontroler, besaran sudut pada gerakan lengan dan lama waktu yang dihasilkan dalam proses menekan tuts keyboard oleh jari robot.
4.2.1 Implementasi Komunikasi Keypad dengan Arduino
1
2
Untuk menguji pembacaan keypad digunakan fasilitasserial monitoryang terdapat padasketch Arduino. Sebelum melakukan uji coba, peru dilakukan pengaturan pada sketch Arduino agar keypad dapat terbaca. Gambar 4.4 merupakan kondisi pemasangan keypad pada board arduino. Pada gambar tersebut komunikasi antara keypad dengan Arduino berada pada pin analog in, yang menghubungkan dan mengakses input data dari keypad melalauimicrocontroller.
Gambar 4.4 Pemasangan Keypad pada board Arduino
Gambar 4.5 merupakan hasil pembacaan keypad yang tertampil pada serial monitor. Data yang ditampilkan akan digunakan untuk memilih jari yang akan bergerak sesuai dengan nomor pada keypad yang ditekan. Penulis mengambil tiga contoh penekanan pada keypad. Pada penekanan tombol pertama terbaca kode “1”, kode ini merupakan input yang digunakan sebagai syarat untuk menggerakkan lengan pada posisinya.
Gambar 4.5 Data hasil penekanan tombol pada keypad
4.2.2 Pengujian Pembacaan Keypad
data yang ditampilkan sesuai dengan kondisi tombol, begitu pula tombol yang tidak digunakan dapat tetap terbaca. Pada tabel 4.3 ditunjukkan kode tombol yang digunakan dan satu tombol yang tidak digunakan dan keterangan kode.
Tabel 4.3 Pengujian kondisi pembacaan tombol
No. Kode Keterangan
1. 1A Terbaca kode sebagai 1 (posisi do)
2. 1B Terbaca kode sebagai 2 (posisi re)
3. 1C Terbaca kode sebagai 3 (posisi mi)
4. 2A Terbaca kode