ix
ABSTRACT
Robot become a choice to help people to do their job to overcome the problem of
accuracy, security, flexibility and repetitive. Arm Robot is a kind of robot that can help human
works. Research arm robot to draw 2D field. This project is made to demonstrate the
movement of the robot which is controlled remotely. This arm robot is using the human
machine interface (HMI) from the PC and microcontroller-based Arduino Uno R3 so it’s
interesting to learn.
The arm robot in this research consists of joint and link with 4 Degree of Fredom
(4DOF). The actuator of arm robot is RC servo motor. Input from the PC with Visual
Basic6.0. to draw a field of squares, circles and triangles with dimensional parameters. The PC
send data to Arduino Uno R3 in the digital pulses format with serial communication. The
microcontroller reads the serial data input and send data digital pulses. The digital pulses are
sent to the servo motor controller to drive RC servo motors in the process for drawing a 2D
field.
The final result from this research of arm robot using point to point movement is
average success indication from arm robot for repetitive drawing square is 90% and for
drawing triangle is 73%. Average success indication arm robot move to point position of
square is 85%, move to point position of triangle is 86% and move to point position of circle
(some angles) is 21%
TUGAS AKHIR
LENGAN ROBOT PENGGAMBAR BIDANG DUA
DIMENSI BERBASIS MIKROKONTROLER
DENGAN PC
Siajukan Untuk Memenuhi Salah Satu Syarat
Memperoleh Gelar Sarjana Teknik
Program Studi Teknik Elektro
Oleh:
AGUSTINUS WELLY ASI NUGROHO
NIM : 125114004
PROGRAM STUDI TEKNIK ELEKTRO
JURUSAN TEKNIK ELEKTRO
FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS SANATA DHARMA
YOGYAKARTA
FINAL PROJECT
ARM ROBOT DRAFTMAN OF TOO DIMENSIONAT
FIETD BASED MICROCONTROTTER OITD PC
Presented as Partial Fullfillment of Requirements
To Obtain the
Sarjana Teknik
Degree
In Study Program of Electrical Engineering
By:
AGUSTINUS WELLY ADI NUGROHO
NIM : 125114004
ETECTRICAT ENGINEERING STUDY PROGRAM
DEPARTMENT OF ETECTRICAT ENGINEERING
FACUTTY OF SCIENCE AND TECDNOTOGY
SANATA DDARMA UNIVERSITY
vi
HALAMAN PERSEMBAHAN DAN MOTTO HIDUP
MOTTO
The future depends on what we do in the
present. Do the best!
(Study, Pray and Work)
Dengan ini kupersembahkan karyaku ini untuk...
Tuhan Yesus Kristus Pembimbingku yang setia,
Keluargaku dan Saudara-saudaraku yang tercinta,
Teman-teman seperjuanganku,
Dan semua orang yang mengasihiku
viii
INTISARI
Robot menoabi pilihan untuk membantu pekeroaan manusia mengatasi masalah
kepresisian, keamanan, fleksibilitas ban pekeroaan yang berulang-ulang. Lengan robot menoabi
salah satu oenis robot yang bapat membantu pekeroaan manusia. Penelitian lengan robot ini
untuk menggambar bibang 2D. Alat ini bibuat untuk memperagakan gerakan robot yang
bikenbalikan oarak oauh. Lengan robot ini menggunakan
human machine interface
(HMI) bari
PC ban berbasis mikrokontroler
Arduino Uno R3
sehingga menarik untuk bipelaoari.
Lengan robot balam penelitian ini terbiri
bari
joint
ban
link
bengan 4
Degree of
Fredom
(4DOF).
Actuator
lengan robot abalah motor RC servo. Lengan robot menbapat
input
bari PC bengan
software Visual Basic 6.0.
untuk menggambar bibang kotak, lingkaran ban
segitiga bengan parameter bimensi. Data yang bikirim bari PC ke
Arduino Uno R3
berupa
pulsa-pulsa bigital bengan komunikasi
serial
. Mikrokontroler membaca
input
bata
serial
ban
mengirim bata berupa pulsa bigital ke
servo motor controller
untuk menggerakkan motor RC
servo melakukan proses menggambar bibang 2D.
Hasil akhir bari penelitian lengan robot yang bilakukan secara
point to point
menghasilkan tingkat keberhasilan rata-rata lengan robot untuk menggambar bibang 2D secara
berulang untuk menggambar kotak abalah 90% ban untuk menggambar segitiga abalah 73%.
Sebangkan tingkat keberhasilan rata-rata lengan robot menuou ke titik posisi gambar kotak
abalah 85%, titik posisi gambar segitiga 86% ban titik posisi gambar lingkaran (segi banyak)
abalah 21%.
ix
ABSTRACT
Robot become a choice to help people to do their job to overcome the problem of
accuracy, security, flexibility and repetitive. Arm Robot is a kind of robot that can help human
works. Research arm robot to draw 2D field. This project is made to demonstrate the
movement of the robot which is controlled remotely. This arm robot is using the human
machine interface (HMI) from the PC and microcontroller-based Arduino Uno R3 so it’s
interesting to learn.
The arm robot in this research consists of joint and link with 4 Degree of Fredom
(4DOF). The actuator of arm robot is RC servo motor. Input from the PC with Visual
Basic6.0. to draw a field of squares, circles and triangles with dimensional parameters. The PC
send data to Arduino Uno R3 in the digital pulses format with serial communication. The
microcontroller reads the serial data input and send data digital pulses. The digital pulses are
sent to the servo motor controller to drive RC servo motors in the process for drawing a 2D
field.
The final result from this research of arm robot using point to point movement is
average success indication from arm robot for repetitive drawing square is 90% and for
drawing triangle is 73%. Average success indication arm robot move to point position of
square is 85%, move to point position of triangle is 86% and move to point position of circle
(some angles) is 21%
xi
DAFTAR ISI
TALAMAN JUDUL ... i
TALAMAN PERSETUJUAN ... iii
TALAMAN PENGESATAN ... iv
PERNYATAAN KEASLIAN KARYA ... v
TALAMAN PERSEMBATAN DAN MOTTO TIDUP ... vi
LEMBAR PERNYATAAN PERSETUJAN KARYA ILMIAT
UNTUK KEPENTINGAN AKADEMIS ... vii
INTISARI ... viii
ABSTRACT ... ix
KATA PENGANTAR ... x
DAFTAR ISI ... xi
DAFTAR GAMBAR ... xiv
DAFTAR TABEL ... xvii
DAFTAR PERSAMAAN ... xviii
DAFTAR LAMPIRAN ... xix
BAB I PENDATULUAN
1.1.
Latar Belekang ... 1
1.2.
Tujuan Penelitian ... 3
1.3.
Batasan Masalah ... 3
1.4.
Metodogi Penelitian ... 4
BAB II DASAR TEORI
2.1.
Mikrokontroler ... 6
2.1.1. Arduino Uno R3 ... 7
2.2.
Software
Arduinio ... 11
2.3.
Visual Basic 6.0.
... 12
2.4.
Motor Servo (RC Servo) ... 14
xii
2.6.
Adafruit 16-Channel 12-Bit PWM / Servo Shield – I2C Interface
... 18
2.7.
Komunikasi I
2C ... 18
2.8.
Kinematika ... 21
BAB III PERANCANGAN
3.1.
Perancangan Perangkat Keras (
Hardware
) ... 27
3.1.1. Perancangan Mekanik Robot... 28
3.1.1.1. Pemodelan Mekanik ... 31
3.1.1.2. Pemodelan
Inverse Kinematik
... 37
3.1.2. Perancangan Rangkaian Elektrik Sistem Pengendali ... 47
3.2.
Perancangan Perangkat Lunak (
Software
) ... 48
3.2.1.
Perangkat Lunak Sebagai Masukan Perintah dari
Visual Basic 6.0
... 49
3.2.2.
Perangkat Lunak Pengendali Motor RC Servo dengan Arduino IDE ... 52
BAB IV TASIL DAN PEMBATASAN
4.1.
Hasil Perancangan Perangkat Keras ... 55
4.1.1
Bentuk Mekanik Sistem Lengan Robot ... 55
4.1.2
Komponen Elektrik Sistem Lengan Robot ... 58
4.1.3
Pengujian Gerakan Mekanik Lengan Robot ... 59
4.2.
Hasil Perancangan Perangkat Lunak (
Software
) ... 65
4.2.1 Pembahasan Program pada
Software Visual Basic 6.0.
... 66
4.2.2 Pembahasan Program pada
Software Arduino IDE
. ... 70
4.3.
Hasil Pengujian Gambar Bidang Dua Dimensi ... 74
4.3.1 Analisa Hasil Gambar Kotak ... 75
4.3.2 Analisa Hasil Gambar Segitiga ... 76
4.3.3 Analisa Hasil Gambar Lingkaran... 78
xiii
BAB V KESIMPULAN DAN SARAN
5.1.
Kesimpulan ... 83
5.2.
Saran ... 84
DAFTAR PUSTAKA ... 85
xiv
DAFTAR GAMBAR
Gambar 1.1. Blok diagram lengan robot penggambar bidang dua dimensi berbasis
mikrokontroler dengan PC. ... 4
Gambar 2.1. Tampilan Arduino Uno R3 ... 7
Gambar 2.2. Alokasi Penempatan Pin Arduino Uno R3 ... 9
Gambar 2.3. Tampilan Arduino Software (Arduino IDE) ... 11
Gambar 2.4.
Interface Visual Basic 6.0 ... 13
Gambar 2.5. Tampilan jendela Components ... 14
Gambar 2.6. Motor Servo (RC Servo) ... 15
Gambar 2.7. Konstruksi Motor Servo ... 15
Gambar 2.8. Pulsa Kendali Motor RC Servo... 16
Gambar 2.9.
Adafruit 16-Channel 12-Bit PWM / Servo Shield – I
2C Interface ... 18
Gambar 2.10
Sudut
Joino
1
... 22
Gambar 2.11. Konfigurasi Lengan Robot Satu Sendi ... 23
Gambar 2.12. Konfigurasi Lengan Robot Dua Sendi ... 24
Gambar 2.13. Konfigurasi Lengan Robot Tiga Sendi ... 26
Gambar 3.1. Sistem Blok Diagram Perangkat Keras (hardware) ... 29
Gambar 3.2. Sistem Blok Diagram Perangkat Keras (Hardware) dengan Sendi
(Joint) Motor RC servo ... 31
Gambar 3.3. Tampilan Keseluruhan Design 3D Lengan Robot ... 32
Gambar 3.4. Tampilan Posisi Motor RC Servo pada Design Gambar 3D Lengan
Robot ... 33
Gambar 3.5. Tampilan End Effector Berupa Pointer dengan Spidol ... 34
Gambar 3.6. Tampilan 3 Sumbu Axis (X,Y,Z) dan Jarak Pangkal Lengan Robot
(Shoulder) Menuju Papan Gambar ... 36
Gambar 3.7. Papan Gambar ... 37
Gambar 3.8. Ilustrasi Batasan Pergerakkan Lengan Robot (link) dengan
Jangkauan Maksimal (Work space) yang Ditentukan ... 38
xv
Gambar 3.10.
Prototype Lengan Robot Penggambar Bidang 2 Dimensi Tampak
dari Atas ... 39
Gambar 3.11. Penyederhanaan Prototype Lengan Robot dengan Analisa Geometri
untuk Mencari θ
1, Tampak dari Atas (Sumbu X dan Sumbu Y) ... 39
Gambar 3.12.
Prototype Lengan Robot Penggambar Bidang Dua Dimensi Tampak
dari Samping pada Sumbu (X
,
Z) ... 41
Gambar 3.13. Penyederhanaan Prototype Lengan Robot Penggambar Bidang Dua
Dimensi Tampak dari Samping pada Sumbu X, Y, Z untuk Analisa
Geometri ... 41
Gambar 3.14. Analisa Geometri Prototype Lengan Robot Penggambar Bidang Dua
Dimensi untuk Mencari θ
2dan θ
3... 42
Gambar 3.15. Analisa Geometri Prototype Lengan Robot Penggambar Bidang Dua
Dimensi untuk Mencari θ
4. ... 44
Gambar 3.16. Posisi Titik Referensi Sebagai Titik Awal Posisi Lengan Robot
Sebelum Menggambar Kotak, Lingkaran dan Segitiga ... 45
Gambar 3.17. Rangkaian Elektrik Sistem Pengendali ... 47
Gambar 3.18. Diagram Alir Secara Umum Sistem Perangkat Lunak (Software) ... 48
Gambar 3.19. Diagram Alir Sistem Secara Umum pada Visual Basic 6.0. ... 49
Gambar 3.20. Tampilan Rencana Antarmuka Program Menggambar Bidang 2D
pada Software Visual Basic 6.0. di PC. ... 50
Gambar 3.21. Diagram Alir Program “Menggambar Bidang 2D atau Clear” pada
Visual Basic 6.0. ... 51
Gambar 3.22. Diagram Alir Sistem Secara Umum pada Arduino IDE. ... 52
Gambar 3.23. Diagram Alir Program “menggambar bidang 2D” pada Arduino
IDE. ... 54
Gambar 4.1.
Bentuk Mekanik Lengan Robot Penggambar Bidang Dua Dimensi ... 55
Gambar 4.2.
Bentuk Mekanik Lengan (Link) ... 56
Gambar 4.3.
Posisi Motor RC Servo sebagai Persendian Lengan Robot (Joint) ... 57
Gambar 4.4.
Posisi Sudut-Sudut Lengan Robot ... 58
Gambar 4.5.
Tampilan Rangkaian Elektrik Sistem Pengendali... 58
Gambar 4.6.
Cara Pengukuran Sudut Joint Menggunakan Busur Derajat ... 60
xvi
Gambar 4.8.
Tampilan Antarmuka Visual Basic 6.0. pada Pengisian Dimensi ... 66
Gambar 4.9.
Program Inisialisasi Variable dan Inisialisasi Kominukasi Serial
pada Software Visual Basic 6.0. ... 68
Gambar 4.10.
Program Pemilihan Gambar Bidang 2D pada Software Visual Basic
6.0... 69
Gambar 4.11.
Eksekusi Program Utama Menggambar Bidang 2D pada Software
Visual Basic 6.0. ... 69
Gambar 4.12.
Running Program Utama ketika Menggambar Bidang 2D pada
Software Visual Basic 6.0. ... 70
Gambar 4.13.
Tampilan Software Arduino IDE ... 70
Gambar 4.14.
Program Inisialisasi pada Software Arduino IDE ... 71
Gambar 4.15.
Proses Menentukan Titik Koordinat Gambar dengan Serial Monitor
pada Software Arduino IDE ... 72
Gambar 4.16.
Program Setting Posisi Awal pada Software Arduino IDE ... 72
Gambar 4.17.
Program Pembacaan Data Serial dari Visual Basic 6.0. di PC dan
Mikrokontroler Arduino Uno R3 (Komunikasi Serial) ... 73
Gambar 4.18.
Program Pengaturan Kecepatan Motor RC Servo secara Increment/
Decrement dan Pengiriman Pulsa Digital ... 74
Gambar 4.19.
Program Konfigurasi Register Data ... 74
Gambar 4.20.
Gambar Kotak dari Gerakan Lengan Robot ... 75
Gambar 4.21.
Gambar Segitiga dari Gerakan Lengan Robot ... 77
xvii
DAFTAR TABEL
Tabel 2.1.
Keterangan Alokasi Penempatan Pin
Arduino Uno R3
...
7
Tabel 2.2.
Keterangan Tombol pada Tampilan
Arduino IDE
... 12
Tabel 3.1.
Keterangan Lengan Penghubung (
link
) ... 33
Tabel 3.2.
Tabel Rencana Batasan Gerakkan Lengan Robot untuk Menentukan (
Work
space
) Berdasarkan Putaran Motor Servo ... 38
Tabel 3.3.
Tabel Hasil Perhitungan
Inverse Kinematics
pada Beberapa Posisi yang Sudah
Ditentukan Sebelumnya ... 46
Tabel 4.1. Spesifikasi Lengan Aktual pada Mekanik Lengan Robot (
link
) ... 56
Tabel 4.2. Perhitungan
Inverse Kinematics
dengan Metode Geometri pada Titik Referensi
Bidang 2 Dimensi ... 60
Tabel 4.3. Hasil Pengujian Sudut-Sudut
Joint
Titik Referensi Gambar Bidang 2 Dimensi
... 61
Tabel 4.4. Pengujian Kepresisian Gerakan Lengan Robot secara Horisontal ... 62
Tabel 4.5. Pengujian Kepresisian Gerakan Lengan Robot secara Vertikal ... 62
Tabel 4.6. Sudut-Sudut yang Ditentukan pada Titik Referensi Gambar Bidang 2 Dimensi
dengan
Forward Kinematics
... 63
Tabel 4.7. Hasil Pengujian Resolusi Gerakan Motor RC Servo di Setiap
Joint
dengan
Mapping
Pulsa ... 64
Tabel 4.8. Analisa Gambar Kotak ... 76
Tabel 4.9. Analisa Gambar Segitiga ... 77
Tabel 4.10. Analisa Gambar Segi Banyak ... 79
Tabel 4.11. Hasil Uji Tingkat Keberhasilan Lengan Robot Menggambar Bidang 2D secara
Berulang ... 81
Tabel 4.12. Hasil Analisa Tingkat Keberhasilan Gerakan Lengan Robot Menuju Posisi Titik
Gambar Bidang 2D ... 82
xviii
DAFTAR PERSAMAAN
Persamaan 2.1 ... 17
Persamaan 2.2 ... 17
Persamaan 2.3 ... 17
Persamaan 2.4 ... 17
Persamaan 2.5 ... 22
Persamaan 2.6 ... 22
Persamaan 2.7 ... 22
Persamaan 2.8 ... 23
Persamaan 2.9 ... 24
Persamaan 2.10 ... 24
Persamaan 2.11 ... 24
Persamaan 2.12 ... 24
Persamaan 2.13 ... 24
Persamaan 2.14 ... 24
Persamaan 2.15 ... 24
Persamaan 2.16 ... 25
Persamaan 2.17 ... 25
Persamaan 2.18 ... 25
Persamaan 2.19 ... 25
Persamaan 2.20 ... 25
Persamaan 2.21 ... 25
Persamaan 2.22 ... 26
Persamaan 2.23 ... 26
xix
DAFTAR LAMPIRAN
1
BABB1B
PENDAHULUANB
1.1
LatarBBelakangB
Seiring dengan perkembangan teknologi yang semakin pesat, saat ini dunia
robotika juga mengalami perkembangan yang sangat pesat dalam berbagai bidang baik itu
industri, seni, pendidikan, militer, medis dan lain sebagainya. Berbagai macam riset
tentang robotika terus-menerus dikembangkan untuk menyempurnakan fungsi robot dalam
membantu pekerjaan manusia.
Definisi Robot sendiri adalah sebuah alat mekanik yang
dapat melakukan tugas fisik, baik menggunakan pengawasan dan kontrol manusia, ataupun
menggunakan program yang telah didefinisikan terlebih dulu (kecerdasan buatan)
[1],
sehingga berdasarkan definisi robot tersebut maka robot merupakan sebuah hasil sinergi
antara beberapa disiplin ilmu yaitu mesin (
mechanic),
elektronika (
electric
)
dan
informatika (
informatic
)
.
Salah satu jenis robot yang sudah banyak digunakan oleh manusia adalah robot
manipulator. Manipulator merupakan bagian mekanik yang dapat difungsikan untuk
memindah, mengangkat dan memanipulasi benda kerja. Secara umum struktur robot
manipulator dapat dibedakan menurut sumbu koordinat yang digunakan yaitu
cartesian,
cylindrical, spherical, SCARA
,
articulated
[2]. Robot manipulator dibuat menyerupai
lengan manusia memiliki sifat fleksibel sehingga mudah digunakan untuk melakukan
pekerjaan yang cepat, berat dan presisi. Robot manipulator (lengan robot) memiliki jumlah
derajat kebebasan (
degree of freedom
/ DOF) tertentu untuk bergerak.
melakukan pekerjaan berulang-ulang. Lengan robot juga dapat dikendalikan dari sebuah
ruang pengendalian (
control room
) dengan memberikan perintah program. Lengan robot
dapat bekerja secara otomatis setelah menerima perintah program, sehingga lengan robot
dapat melakukan pekerjaan karyawan sehingga lengan robot dapat menjadi asisten
produksi bagi karyawan di industri dan dapat menambah keuntungan bagi perusahaan.
BB
Berdasarkan paparan di atas mengenai lengan robot di industri penulis tertarik
untuk membuat sebuah sistem otomasi yang dapat digunakan sebagai asisten karyawan
dalam melakukan pekerjaan yang presisi, fleksibel, aman serta dapat melakukan pekerjaan
yang berulang-ulang yaitu berupa sebuah
prototype
robot untuk menggambar bidang dua
dimensi. Peneliti yang sudah pernah membuat
prototype
robot ini adalah Welly Anggoro
dengan judul penelitian
“Robot Penggambar Dua Dimensi”
. Pada penelitian yang
dilakukan sebelumnya,
prototype
robot yang dibuat adalah robot kartesian. Lengan robot
ini memiliki 4 derajat kebebasan atau
degree of freedom
(4-DOF) yang terdiri dari 3
gerakan translasi dan 2 gerakan rotasi dan hanya dirancang untuk membuat sebuah gambar
lingkaran dengan variasi ukuran [3].
Kofigurasi kartesian memiliki pergerakan pada sumbu
X, Y dan Z. Robot kartesian memiliki bentuk perhitungan kinematik yang paling sederhana
karena hanya konfigurasi linear [4].
1.2
TujuanBPenelitianB
Tujuan dari penelitian ini secara umum adalah untuk menghasilkan suatu
prototype
berupa lengan robot dengan penggerak motor RC servo dan berbasis
mikrokontroler yang dapat dikendalikan dengan tampilan program dari
Personal Computer
(PC). Secara khusus penelitian ini bertujuan untuk memperagakan gerakan robot secara
fleksibel, presisi, aman dan dapat melakukan pekerjaan secara berulang karena sudah
diberi perintah melalui komputer dengan tampilan perangkat lunak yaitu
human machine
interface
(HMI) untuk membuat gambar bidang dua dimensi tertentu yaitu kotak, lingkaran
dan segitiga
dengan variasi ukuran tertentu.
Penelitian ini menghasilkan manfaat yang dapat membantu pekerjaan manusia pada
kegiatan produksi karena lengan robot dapat melakukan pekerjaan jarak jauh yang
fleksibel, presisi, aman, berulang-ulang serta memiliki pola tertentu seperti pada proses
pengelasan, pengecatan, pemindah barang dan kegiatan otomasi industri yang lain.
1.3
BatasanBMasalahB
Pembatasan masalah dimaksudkan untuk mempermudah pelaksanaan penelitian
maupun penulisan skripsi sehingga tidak terjadi kesalahan dalam menerjemahkan judul
yang dimaksud. Batasan untuk penelitian ini adalah:
a.
Gambar bidang 2 dimensi yaitu hanya kotak, lingkaran dan segitiga sama sisi
yang sudah ditentukan sebelumnya pada
personal computer
(PC) dengan
menggunakan program perangkat lunak
visual basic
(VB) sebagai tampilan
pemberi perintah.
b.
Manggunakan sebuah mikrokontroler yaitu Arduino Uno R3 sebagai kontroler
lengan robot yang dikendalikan melalui PC.
c.
Mengunakan motor servo sebagai aktuator pada setiap
joint
(sendi) dan
gripper
(penjepit) sebagai
end effector
.
d.
Lengan robot dapat bergerak pada sumbu X, Y, dan Z.
e.
Lengan robot memiliki gerakan rotasi dan 4 derajat kebebasan atau
Degree of
Freedom
(4-DOF).
1.4
MetodologiBPenelitianBB
Metodologi yang dignakan dalam penelitian ini adalah sebagai berikut:
a.
Studi literatur dan referensi, yaitu mempelajari buku-buku dan makalah-makalah
dari pustaka yang berhubungan dengan mikrokontroler khususnya Arduino Uno
R3, motor servo,
software visual basic
dan lengan robot.
b.
Studi kasus terhadap alat yang sudah pernah dibuat sebelumnya. Tahap ini
dilakukan guna memahami prinsip kerja dari lengan robot.
c.
Menguji motor servo. Tahap ini dilakukan guna memahami prinsip kerja motor
servo dan mengetahui karakter motor servo.
d.
Menguji rangkaian kendali dengan mikrokontroler Arduino Uno R3 dan
servo
motor controller
. Tahap ini guna lebih memahami bahasa yang digunakan
mikrokontroler Arduino Uno R3 dan
servo motor
controller
agar lebih memahami
cara kerja pengendalian lengan robot.
e.
Perancangan sistem
hardware
dan
software
. Tahap ini bertujuan untuk
menentukan model yang optimal dan menentukan komponen-komponen suatu
sistem yang akan dibuat dengan mempertimbangkan faktor-faktor permasalahan
dan kebutuhan yang telah ditentukan.
Gambar 1.1. Blok diagram lengan robot penggambar bidang dua dimensi berbasis
mikrokontroler dengan PC.
B
sehingga robot dapat bergerak sesuai dengan program yang telah diberikan.
Berdasarkan Gambar 1.1,
software
visual basic
(VB) pada
personal computer
(PC) berguna untuk membuat masukan berupa perintah-perintah tombol dan
dimensi yang dikehendaki kemudian dikirim dengan komunikasi serial pada
bagian pengendali berupa mikrokontroler Arduino Uno R3 dan
servo motor
controller
untuk diproses sesuai program yang telah diberikan. Selanjutnya bagian
pengendali akan memberi perintah berupa pulsa untuk menggerakkan setiap
motor RC servo yang dipasang pada lengan robot.
g.
Proses pengujian dan pengambilan data. Teknik pengujian dan pengambilan data
dilakukan dengan cara menguji keseluruhan sistem berupa gerakan lengan robot
yang telah diberi perintah melalui program yang dibuat pada
visual basic
(VB).
Teknik pengujian dilakukan dengan menjalankan lengan robot yaitu menekan
tombol berupa pilihan bentuk bidang dua dimensi yang akan digambar beserta
dimensi yang diinginkan melalui program
visual basic
di PC. Program dari PC
selanjutnya dikomunikasikan dengan bagian pengendali untuk diproses sesuai
kecerdasan buatan yang telah ditanamkan sebelumnya untuk menggerakan motor
servo pada lengan robot. Pengujian dilakukan untuk mengetahui kesesuaian antara
gerakan robot dengan pilihan gambar pada program di PC. Teknik pengambilan
data dilakukan untuk melihat bentuk bidang dua dimensi dan dimensi aktual yang
berhasil digambar oleh lengan robot. Besarnya perbedaan dimensi antara dimensi
yang dimasukkan pada PC dengan dimensi aktual hasil penggambaran oleh lengan
robot ditulis dalam persentase
error
.
h.
Analisa dan kesimpulan hasil perancangan.
Analisa data dilakukan berdasarkan
kepresisian dan keakuratan hasil pola gambar bidang 2 dimensi yang digambar
dengan gerakan lengan robot. Teknik analisis data dilakukan dengan
membandingkan antara hasil gambar bidang 2 dimensi di papan gambar dari
gerakan aktual lengan robot dengan perintah masukan bentuk bidang dua dimensi
beserta variasi dimensinya yang ditentukan di PC. Berdasarkan hasil analisa data
yang sudah diperoleh dapat dilakukan penarikan kesimpulan.
6
BABBIIB
DASARBTEORIB
2.1
MikrokontrolerB
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 masukan yang
diterima dan program yang dikerjakan.
Seperti umumnya komputer, mikrokontroler adalah alat yang mengerjakan
instruksi-instruksi yang diberikan. Artinya, bagian terpenting dan utama dari suatu sistem
terkomputerisasi adalah program itu sendiri yang dibuat oleh seorang programer. Program
ini menginstruksikan komputer untuk melakukan jalinan yang panjang dari aksi-aksi
sederhana untuk melakukan tugas yang lebih kompleks yang diinginkan oleh
programer[5].
2.1.1.BArduinoBUnoBR3BB
B
Gambar 2.1. Tampilan
Arduino Uno R3 [1]
Arduino Uno R3 seperti Gambar 2.1. adalah
board
berbasis mikrokontroler pada
ATMega 328.
Board
Arduino Uno R3 seperti yang ditunjukkan Gambar 2.2. memiliki 14
digital
input / ouput
pin (dimana 6 pin dapat digunakan sebagai
ouput
PWM), 6
input
analog
, 16 MHz osilator kristal, koneksi USB,
jack
listrik dan tombol
reset
. Pin – pin ini
berisi semua yang diperlukan untuk mendukung mikrokontroler, hanya terhubung ke
komputer dengan kabel USB atau sumber tekanan bisa didapat dari
adaptor
AC – DC atau
baterai untuk menggunakannya (
Arduino, Inc., 2009
) [7]. Setiap
digital pin
pada
board
Arduino Uno R3 beroperasi pada tegangan 5
volt
. Pin-pin digital tersebut juga
memungkinkan dapat mengeluarkan atau menerima arus maksimal sebesar 40 mA dan
memiliki
internal pull-up resistor
(yang terputus secara
default
) antara 20 – 50 Kohm [8].
Spesifikasi Arduino Uno R3 ditunjukkan pada alokasi penempatan pin-pin Arduino Uno
R3 pada Tabel 2.1.
Tabel 2.1. Keterangan Alokasi Penempatan Pin
Arduino Uno R3
No.B
ParameterB
KeteranganB
1
ATmega 328
IC mikrokontroler yang digunakan pada
Arduino Uno R3
.
IC
ATmega 328
memiliki
flash memory
32 KB (dengan 0.5 KB
digunakan untuk
bootloader
).
ATmega 328
juga memiliki 2 KB
SRAM dan 1 KB EEPROM yang dapat ditulis dan dibaca
dengan EEPROM
library
[8].
2
Jack
USB
Untuk komunikasi mikrokontroler dengan PC
Arduino.
5
SDA
dan
SCL
Komunikasi
Circuit
(I2C) dengan menggunakan
Two Wire Interface
(TWI) atau
Wire library.
Inter Integrated
6
GND
dan
AREF
GND = Pin
AREF = Tegangan Referensi untuk
ground
dari regulator tegangan
input analog
board
.
Arduino.
7
Pin
Digital
Pin yang digunakan untuk menerima
output
berbentuk digital (0 dan 1 atau
input digital
low
dan
high
dan memberi
)
8
Pin
Serial
Digunakan untuk menerima dan mengirimkan data serial TTL
(
Receiver
(Rx),
Transmitter
(Tx)). Pin 0 dan 1 sudah terhubung
kepada pin serial USB
to
TTL sesuai dengan pin ATmega.
9
Pin
Power
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
board
Arduino. Arus maksimal pada pin ini adalah
50 mA.
GND = Pin
ground
dari regulator tegangan
board
Arduino.
IOREF = Tegangan Referensi.
10 Pin
Analog In
Menerima
input
dari perangkat
analog
lainnya.
Arduino Uno R3 berbeda dengan semua
board
sebelumnya karena Arduino Uno
R3 ini tidak menggunakan
chip driver
FTDI USB-
to-serial
. Melainkan menggunakan fitur
dari ATMega 16U2 yang diprogram sebagai konverter USB-
to-serial
[7].
Board
Arduino Uno memiliki fitur – fitur baru seperti pada Tabel 2.1., yaitu:
a.
Pin
out
: menambahkan SDA dan SCL pin yang deket ke pin AREF dan dua pin
baru lainnya ditempatkan dekat ke pin
RESET
, dengan I/O REF yang
memungkinkan sebagai
buffer
untuk beradaptasi dengan tegangan yang disediakan
dari
board
sistem. Pengembangannya, sistem akan lebih kompatibel dengan
prosesor yang menggunakan AVR, yang beroperasi dengan 5V dan dengan
Arduino karena beroperasi dengan 3,3V. Yang kedua adalah pin yang tidak
terhubung, yang disediakan untuk tujuan pengembangannya.
b.
Sirkuit
reset.
c.
ATMega 16U2 ganti 8U yang digunakan sebagai konverter USB-
to-serial
.
volt
dan
board
mungkin tidak stabil. Jika menggunakan lebih dari 12V, regulator bisa
panas dan merusak
board
. Rentang yang dianjurkan adalah 7V – 12V. Selain itu, beberapa
pin memiliki fungsi khusus :
a.
Serial
: 0 (RX) dan 1 (TX). Digunakan untuk menerima (RX) dan mengirim (TX)
data TTL serial. Pin ini terhubung ke pin yang sesuai dari
chip
ATMega8U2
USB-to-Serial
TTL.
b.
Eksternal
Interupsi : 2 dan 3. Pin ini dapat dapat dikonfigurasi untuk memicu
interupsi pada nilai yang rendah, tepi naik atau jatuh, atau perubahan nilai. Lihat
attchInterrupt()
fungsi untuk rincian.
c.
PWM : 3,5,6,9,10, dan 11. Menyediakan 8-bit
output
PWM dengan fungsi
analogWrite()
.
d.
SPI : 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK). Pin ini mendukung komunikasi
SPI menggunakan
library
SPI. SPI (
Serial Peripheral Interface
) adalah sebuah
sinkronisasi
serial data protocol
yang digunakan oleh mikrokontroler untuk
melakukan komunikasi dengan satu atau lebih peripheral device secara cepat
berjarak pendek. SPI dapat juga digunakan untuk melakukan komunikasi antara
dua mikrokontroler.
e.
LED : 13. Ada
built-in
LED terhubung ke pin digital 13. Ketika pin adalah nilai
TINGGI, LED menyala, ketika pin adalah RENDAH, LED
off
.
Arduino Uno R3 seperti ditunjukkan Gambar 2.2. memiliki 6
input
analog diberi
label A0 sampai A5, masing – masing menyediakan 10-bit resolusi (yaitu 1024 nilai yang
berbeda). Secara
default
sistem mengukur dari
ground
sampai 5
volt
, meskipun mungkin
untuk mengubah ujung atas rentang mengunakan pin AREF dan fungsi
analogReference()
.
Selain itu, beberapa pin memiliki fungsi khusus :
a.
TWI : A4 atau SDA pin dan A5 atau SCL pin. Mendukung komunikasi TWI
menggunakan
wire library.
b.
AREF : Referensi tegangan untuk
input
analog. Digunakan dengan
analogReference() .
c.
RESET : memberikan logika LOW untuk mereset mikrokontroler [8].
KomunikasiB
Arduino Uno R3 memiliki sejumlah fasilitas untuk berkomunikasi dengan
komputer, arduino lain, atau mikrokontroler lainnya. ATmega328 menyediakan UART
TTL (5V) komunikasi
serial
, yang tersedia di pin digital 0 (RX) dan 1 (TX). Sebuah
ATmega16U2 pada
board
ini komunikasi
serial
melalui USB dan muncul sebagai
com
port virtual
untuk perangkat lunak pada komputer.
Firmware
'16U2 menggunakan USB
driver
standar COM, dan tidak ada
driver eksternal
yang diperlukan. Namun, pada
Windows,
file. Inf
diperlukan. Perangkat lunak Arduino termasuk
monitor serial
yang
memungkinkan data sederhana yang akan dikirim ke
board
Arduino. RX dan TX di board
LED akan berkedip ketika data sedang dikirim melalui chip USB-
to-serial
dan koneksi
USB ke komputer (tetapi tidak untuk komunikasi serial pada pin 0 dan 1). Fungsi ini
digunakan untuk melakukan komunikasi
interface
pada sistem. ATmega328 juga
mendukung komunikasi I
2C (TWI) dan SPI [7].
2.2
Software
BArduinoB
Menulis program di Arduino dilakukan dengan
Arduino IDE
, yaitu
software
yang
beroperasi di komputer. Menurut situs
http://www.arduino.cc
perangkat lunak disebut
sebagai
Arduino Software
[9].
Software
ini tersedia untuk
platform Windows, Mac OS X,
dan
Linux.
Software Arduino IDE
bermanfaat untuk menuliskan kode untuk mengontrol
Arduino Uno dan mengirimkan hasil kompilasi ke papan Arduino Uno [10].
Lingkungan Arduino yang
open source
memungkinkan untuk menulis (
write
) dan
mengunggah (
upload
) program pada Arduino. Arduino dapat diprogram pada sistem
operasi komputer berbasis
Windows, Mac OS X,
dan
Linux
. Bahasa pemrogramannya dapat
ditulis di
Java, avr-gcc
dan perangakat lunak yang berbasis
open source
lainnya [9].
[image:31.595.86.524.260.682.2]IDE Arduino membutuhkan beberapa pengaturan yang digunakan untuk
mendeteksi
board
Arduino yang sudah dihubungkan ke komputer. Beberapa pengaturan
tersebut adalah mengatur jenis
board
yang digunakan sesuai dengan
board
yang terpasang
dan mengatur jalur komunikasi data melalui perintah
Serial Port
. Kedua pengaturan
tersebut dapat ditemukan pada
pull down menu Tools
[9]. Tampilan jendela
Arduino IDE
ditunjukkan pada Gambar 2.3. seperti berikut ini:
Gambar 2.3. Tampilan
Arduino Software
(
Arduino IDE
)
Tabel 2.2. Keterangan Tombol pada Tampilan
Arduino IDE
No.B TombolB
NamaB
FungsiB
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
Arduino
board
3
New
Membuat
sketch
yang baru
4
Open
Membuka
sketch
yang sudah ada
5
Save
Menyimpan
sketch
6
Serial
Monitor
Menampilkan data yang dikirim dan diterima melalui
komunikasi serial.
Tugas dari
Arduino Software
adalah menghasilkan sebuah
file
berformat
hex
yang
akan di-
download
pada papan Arduino atau papan sistem mikrokontroler lainnya. Ini
mirip dengan
Microsoft 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) sedangkan
Arduino 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 umumnya
sketch
yang dibuat di
Arduino Software
di-
compile
dengan
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 dinamakan
bootloader
[9].
2.3
Visual Basic 6.0.
BB
keluaran
Microsoft
saja. VB6.0 mulai dikenal banyak orang karena bahasa pemrograman
dan GUI (
Graphical User Interface
) yang disediakan cukup memudahkan seorang pemula
dalam membuat sebuah program berbasis
Windows
.
Pembuatan program aplikasi menggunakan
Visual Basic 6.0.
dilakukan dengan
membuat tampilan aplikasi pada
form
, kemudian diberi
script
program di dalam
komponen-komponen yang diperlukan.
Form
disusun oleh komponen-komponen yang
berada di
Toolbox
, dan setiap komponen yang dipakai harus diatur propertinya lewat
jendela
Property
.
[image:33.595.85.514.280.644.2]Menu pada dasarnya adalah operasional standar di dalam sistem operasi
Windows
,
seperti membuat
form
baru, membuat
project
baru, membuka
project
dan menyimpan
project
. Di samping itu terdapat fasilitas-fasilitas pemakaian
visual basic
pada menu.
Untuk lebih jelasnya
Visual Basic
menyediakan bantuan yang sangat lengkap dan detail
dalam MSDN.
Interface
(antar muka)
Visual Basic 6.0
, berisi
menu, toolbar, toolbox, form,
project explorer
dan
property
seperti terlihat pada Gambar 2.4. [11]:
Gambar 2.4.
Interface Visual Basic 6.0
[3]
KomunikasiBserialBpadaBVB6.0.B
B
kontrol elektronik seperti PLC. Untuk dapat berkomunikasi dengan dunia luar, VB6.0
sudah dilengkapi dengan fasilitas
MS Comm Control 6.0
.
MS Comm Control
ini berfungsi
untuk mengakomodir jalanya komunikasi dan
transfer
data dari komputer ke peralatan
elektronik berprosesor ataupun sebaliknya. Untuk mengaktifkan fungsi
Ms Comm Control
pada VB6.0 pertama kali harus membuat
project
nya dahulu dengan cara masuk ke
File >>
“New Project”
. Kemudian pergi ke
Menu “Project” >> “Components”.
Sesaat setelah itu
seharusnya ada menemui layar seperti ditunjukkan Gambar 2.5. dibawah ini [12].
[image:34.595.94.502.218.571.2]B
Gambar 2.5. Tampilan jendela
Components
[4]
B
Microsoft Comm Control 6.0
ini berfungsi untuk :
1.
Mengadakan hubungan dengan
serial port
PC.
2.
Berhubungan dengan alat komunikasi lain (contoh : modem).
3.
Melakukan pertukaran data.
4.
Memonitor dan merespon
event
dan
error
yang terjadi pada hubungan serial.
Sambungan komunikasi serial antara 2 peralatan (PC-IED atau PC-PC), harus
dilakukan dengan langkah – langkah sebagai berikut:
1.
Membuka
serial port
.
2.
Mengatur
serial device.
2.4
MotorBServoB(RCBServo)B
[image:35.595.88.524.346.656.2]Motor RC servo adalah sebuah motor DC yang dilengkapi rangkaian kendali
dengan sistem
closed feedback
yang terintegrasi dalam motor tersebut. Pada Gambar 2.6
menunjukkan bentuk dari motor RC servo. Pada motor RC servo posisi putaran sumbu
(
axis
) dari motor akan diinformasikan kembali ke rangkaian kontrol yang ada di dalam
motor RC servo [13].
B
Gambar 2.6. Motor Servo (RC Servo) [5]
Motor RC servo disusun dari sebuah motor DC,
gearbox
,
variabel resistor
(VR)
atau
potensiometer
dan rangkaian kontrol seperti ditunjukkan Gambar 2.7.
Potensiometer
berfungsi untuk menentukan batas maksimum putaran sumbu (
axis
) motor RC servo.
Sedangkan sudut dari sumbu motor RC servo diatur berdasarkan lebar pulsa yang pada pin
kontrol motor RC servo [13].
Gambar 2.7. Konstruksi Motor Servo [6]
Jenis-jenis motor servo:
1.
Motor Servo Standar
Motor servo jenis ini hanya mampu bergerak dua arah (CW dan CCW) dengan
defleksi masing-masing sudut mencapai 90° sehingga total defleksi sudut dari
kanan – tengah – kiri adalah 180°.
2.
Motor Servo
Continuous
Motor servo jenis ini mampu bergerak dua arah (CW dan CCW) tanpa batasan
defleksi sudut putar (dapat berputar secara kontinyu).
[image:36.595.85.523.275.614.2]PulsaBKontrolBMotorBRC
ServoB
Gambar 2.8. menunjukkan operasional motor RC servo berdasarkan lebar pulsa.
Operasional motor RC servo dikendalikan oleh sebuah pulsa selebar ± 20 ms, dimana lebar
pulsa antara 0,5 ms dan 2 ms menyatakan akhir dari range sudut maksimum. Apabila
motor RC 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° [13].
Gambar 2.8. Pulsa Kendali Motor RC Servo [7]
Pada saat Ton
duty cycle
dari sinyal yang diberikan kurang dari 1,5
ms
, maka rotor
akan berputar ke berlawanan arah jarum jam (
Counter Clock Wise
atau CCW) dengan
membentuk sudut yang besarnya
linier
terhadap besarnya Ton
duty cycle
, dan akan
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
atau CW)
dengan membentuk sudut yang linier pula terhadap besarnya Ton
duty cycle
, dan bertahan
diposisi tersebut [13].
2.5
TorsiBB
Perhitungan torsi tergantung pada panjang
link
dari lengan robot dan berat suatu
benda. Torsi didefinisikan sebagai mengubah atau memutar kekuatan dan dihitung
menggunakan hubungan berikut [14]:
Torsi (τ) = Gaya (F)
x
Panjang lengan (L)
=
(2 - 1)
Dimana
F
merupakan gaya berat (
W
),
=
(2 - 2)
=
(2 - 3)
Sehingga,
=
(2 - 4)
B
Kecepatan motor tergantung pada model motor servo. Semakin besar daya yang
akan digunakan mampu mengangkat beban dengan cepat. Model yang berbeda dari motor
servo memiliki torsi yang berbeda dan kemampuan untuk mengangkat beban berat
tergantung dari model motor servo tersebut. Hasil dari perhitungan torsi akan membantu
dalam pemilihan motor servo yang cocok digunakan untuk mengangkat beban yang
spesifik [14].
2.6
Adafruit 16-Channel 12-Bit PWM / Servo Shield – I2C Interface
Gambar 2.9.
Adafruit 16-Channel 12-Bit PWM / Servo Shield – I
2C Interface
[8]
Adafruit 16-Channel 12-Bit PWM / Servo Shield – I
2C Interface
seperti ditunjukkan
pada Gambar 2.9, merupakan modul pengendali motor servo yang dapat mengendalikan
hingga 16 motor servo pada setiap
board shield
.
Servo shield
ini memiliki 6 alamat yang
berbeda untuk mengontrol gerakan motor servo sehingga dapat di
cascade
hingga 62
board
dan dapat mengendalikan 992 motor servo secara bersamaan. Selain itu
servo shield
ini
menggunakan antar muka komunikasi I
2C untuk mengkontrol gerakan motor servo.
Komunikasi I
2C menggunakan 2 buah
port
komunikasi yaitu SDA (
Serial Data
)
dan SCL (
Serial Clock Line
). Untuk mengantur
clock
pengiriman data menggunakan
TLC5940 sehingga tidak perlu mengaktifkan
clock
secara terus menerus saat pengiriman
data.
Power 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.
Serta terdapat pengaman pada konektor untuk power supply motor servo apabila terjadi
kesalahan pada saat menyambungkan sehingga polaritasnya terbalik [15].
2.7
KomunikasiBI
2CBB
pengembang untuk memperhatikan
timing
dari seluruh komponen yang terlibat, agar tidak
terjadi kesalahan dalam transaksi data [16].
Bus
yang cukup sering digunakan adalah
bus
bersifat paralel. Transaksi data yang
dilakukan secara paralel menjadi pilihan karena
transaksi data dapat lebih cepat. Jika
sistem relatif tidak membutuhkan transaksi yang cepat, maka penggunaan
serial bus
menjadi pilihan. Salah satu pilihan sistem data
serial bus
yang sering digunakan adalah
I
2C (
Inter Integrated Circuit
). I
2C merupakan serial bus dengan orientasi data 8
bit
(
byte
).
Sistem
bus
I
2C pertama kali diperkenalkan oleh Firma Philips pada tahun 1979.
Karakter I
2C :
1.
Serial bus
data dikirim
serial
secara per-
bit
.
2.
Menggunakan 2 penghantar koneksi dengan
ground
bersama I
2C terdiri dari dua
penghantar :
SCL (
Serial Clock Line
) untuk menghantarkan sinyal
clock
.
SDA (
Serial Data
) untuk mentransaksikan data
3.
Jumlah peserta
bus
maximal 127 peserta dialamatkan melalui 7-
bit
-alamat. Alamat
ditetapkan kebanyakan secara
hardware
dan hanya sebagian kecil dapat dirubah.
4.
Pengirim dan penerima setiap transaksi data terjadi antara pengirim (
Transmitter
) dan
penerima (
Receiver
). Pengirim dan penerima adalah peserta
bus
.
5.
Master
dan
slave device
yang mengendalikan operasi transfer disebut
master
, sementara
device
yang di kendalikan oleh
master
di sebut
slave
.
Aturan Komunikasi I
2C :
1.
I
2C adalah
protokol transfer data serial. Device
atau komponen yang mengirim data
disebut
transmitter
, sedangkan
device
yang menerimanya disebut
receiver
.
3.
Master device
harus menghasilkan
serial clock
melalui pin SCL, mengendalikan akses
ke
bus serial
dan menghasilkan sinyal kendali
START
dan
STOP
.
Definisi-definisi kondisi
bus
:
1.
Bus not busy
:
Pada saat ini Bus tidak sibuk, SCL dan SDA dua-duanya dalam keadaan
HIGH
.
2.
Start data transfer
:
Ditandai dengan perubahan kondisi SDA dari
HIGH
ke
LOW
ketika SCL
HIGH
.
3.
Stop data transfer
:
Ditandai dengan perubahan kondisi SDA dari
LOW
ke
HIGH
ketika SCL
HIGH
.
4.
Data valid
:
Data yang dikirim
bit
demi
bit
dianggap
valid
jika setelah
START
, kondisi SDA
tidak berubah selama SCL
HIGH,
baik SDA
HIGH
maupun SDA
LOW
tergantung dari
bit
yang ingin ditransfer. Setiap siklus
HIGH
SCL baru menandakan pengiriman
bit
baru.
Duty cycle
untuk SCL tidak mesti 50%, tetapi frekuensi kemunculannya hanya
ada 2 macam, yaitu mode standar 100kHz dan
fast mode
atau mode cepat 400kHz.
Setelah SCL mengirimkan sinyal
HIGH
yang kedelapan, arah transfer SDA berubah,
sinyal kesembilan pada SDA ini dianggap sebagai
acknowledge
dari
receiver
ke
transmitter
.
5.
Acknowledge
:
Mode pengoperasian transfer data (tergantung kondisi bit R/W, 2 jenis transfer
dimungkinkan), yaitu :
1.
Pengiriman data dari
master transmitter
ke
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.
2.
Pengiriman data dari
slave transmitter
ke
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
[16].
B
2.8
KinematikaB
Fu, K. S., R. C. Gonzales,C. S. G. Lee (1987).
Robotics: Control, Sensing, Vision,
and Intelligence
,
1
stedition
mengatakan bahwa, “Kinematika adalah ilmu tentang gerak
Salah satu metode pendekatan untuk menyelesaikan permasalahan
inverse
kinematics
yaitu pendekatan
geometri
. Penyelesaian dengan pendekatan
geometri
dicari
dengan menerapkan ilmu
geometri
dan hukum
trigonometri
. Contoh mencari sudut pada
joint
1 seperti pada Gambar 2.10:
Gambar 2.10. Sudut
Joint
1 [9]
Untuk mencari
θi
bisa menggunakan ilmu
geometri
, sehingga didapatkan :
sin θ =
P
P + P + P
(2 - 5)
cos θ =
P + P
P + P + P
(2 - 6)
θ = tan (
cos θ )
sin θ
(2 - 7)
Menurut referensi dari buku Endra Pitowarno, (2006
), Robotika Desain, Kontrol
dan Kecerdasan Buatan
juga mengatakan bahwa “analisis persamaan kinematik dapat
diselesaikan dengan cara yang paling dasar yaitu menggunakan persamaan
trigonometri
.
Setiap komponen dalam koordinat (X,Y,Z) dinyatakan sebagai transformasi dari tiap-tiap
komponen ruang sendi (
r
,
θ
). Jari-jari
r
dalam persamaan sering ditulis sebagai panjang
lengan atau
link
(
l
)” [2].
Pendekatan yang digunakan Endra Pitowarno dalam menganalisis permasalahan
inverse kinematics
pada persamaan kinematik lengan robot juga menggunakan metode
geometri
yang ditulis berdasarkan hukum
trigonometri
. Penyelesaian masalah
inverse
kinematics
berdasarkan pendekatan
geometri
dapat digunakan untuk analisis lengan robot
satu sendi hingga tiga sendi.
KinematikBRobotBTanganBSatuBSendi.
Gambar 2.11. Konfigurasi Lengan Robot Satu Sendi [10]
Persamaan
inverse kinematics
dari lengan robot satu sendi pada Gambar 2.11.
diselesaikan dengan menentukan kedudukan ujung lengan P(x, y) terlebih dahulu sehingga
besarnya sudut
θ
dapat dihitung dengan cara [2]:
=
(2 - 8)
KinematikBRobotBTanganBDuaBSendi.
Gambar 2.12. Konfigurasi Lengan Robot Dua Sendi [11]
Inverse kinematics
lengan robot dua sendi pada Gambar 2.12. dapat dijabarkan
menggunakan hukum identitas
trigonometri
secara
forward kinematcs
[2]:
= cos + cos ( + )
(2 - 9)
=
+ sin ( + )
(2 - 10)
Identitas
trigonometri
:
cos( + ) = cos( ) cos( ) − sin( ) sin ( )
(2 - 11)
sin( + ) = sin( ) cos( ) + sin( ) cos ( )
(2 - 12)
Persamaan (2 - 11) dan (2 - 12) dapat ditulis kembali,
= cos( ) + cos( ) cos( ) − sin( ) sin ( )
(2 - 13)
= sin( ) + sin( ) cos( ) + cos( ) sin ( )
(2 - 14)
Dari dua persamaan terakhir dapat dicari
θ2
dengan terlebih dahulu dengan
mengeluarkan cos
θ2
dari kedua persamaan. Dengan operasi pangkat dua pada keduanya
dan dikombinasikan sehingga didapat [2]:
Sehingga,
= cos
(2 - 16)
Sedangkan sudut
θ1
dapat dicari melalui,
tan =
dan
tan =
(2 - 17)
sedangakan
= −
(2 - 18)
Dengan menggunakan identitas
trigonometri
,
tan( − ) =
( )( ) ( )( )(2 - 19)
didapatkan,
tan
=
(( ) . ) .(2 - 20)
Sehingga
θ1
dapat dihitung,
= tan
(( ) . ) .(2 - 21)
Dengan penjabaran trigonometri maka persamaan (2- 16) dan (2- 21) merupakan
persamaan dari
inverse kinematics
lengan robot dua sendi.
B
B
B
B
KinematikBRobotBTanganBTigaBSendi.
Gambar 2.13. Konfigurasi Lengan Robot Tiga Sendi [12]
Koordinat akhir ujung lengan ketiga pada Gambar 2.13. ditulis P(
X
T,
Y
T) dengan
sudut
ψ
yang merupakan sudut arah hadap lengan ketiga terhadap sumbu
X
. Besarnya
sudut
ψ
adalah:
= ( +
+ )
(2 - 22)
Inverse kinematics
lengan robot tiga sendi posisi P(
X
T,
Y
T) dan P(
x
,
y
) sudah
diketahui atau ditentukan sebelumnya maka
θ1
dan
θ2
dapat dicari dengan menggunakan
persamaan (2- 16) dan (2- 21). Dengan diketahui besarnya (
X
T,
Y
T) dan (
x
,
y
) maka
ψ
dapat
dicari untuk menentukan besarnya sudut
θ3
.
= − cos
(2 - 23)
27
BABBIIIB
PERANCANGANBSISTEMB
Bab ini menjelaskan mengenai perancangan
prototype
lengan robot penggambar
bidang dua dimensi dengan 4 DOF yang dikendalikan oleh mikrokontroler Arduino Uno
R3 berdasarkan masukkan dari program
visual basic
. Perancangan sistem yang akan
dibahas pada bab ini terdiri dari dua bagian, yaitu perangkat keras (
hariware
) dan
perangkat lunak (
software
). Perancangan sistem yang dibahas dalam bab ini terbagi dalam
dua bagian besar, yaitu:
1.
Perancangan Perangkat Keras (
Hariware
)
-
Perancangan Mekanik Robot.
-
Perancangan Rangkaian Elektrik Sistem Pengendali
2.
Perancangan Perangkat Lunak (
Software
)
-
Perangkat lunak sebagai masukkan perintah dari
visual basic 6.0
.
-
Perangkat lunak pengendali motor RC
servo
dengan
Ariuino IDE
.
3.1.B PerancanganBPerangkatBKerasB(
Hardware
)B
Pada bagian pertama tentang sistem blok diagram perangkat keras membahas fungsi
dan cara kerja dari setiap komponen yang membentuk sistem lengan robot. Sistem blok
diagram pada lengan robot penggambar bidang dua dimensi yang akan dibuat meliputi
beberapa komponen. Komponen-komponen penyusunnya yaitu bagian masukkan atau
input
dari
personal computer
(
PC
), komponen pengendali berupa mikrokontroler
Atmega
328
pada papan
Ariuino Uno R3
, pengendali motor RC
servo
(
Aiafruit servo controller
)
dan bagian keluaran (
output
) yaitu motor RC
servo
.
Pada bagian kedua tentang perancangan lengan robot membahas tentang desain
mekanik dan perhitungan kinematika gerakan lengan robot melalui perhitungan secara
inverse kinematics
. Desain mekanik lengan robot secara lebih lengkap membahas
komponen-komponen penyusun sistem lengan robot yaitu dimensi dari lengan robot dan
motor RC
servo
yang digunakan.
Pada bagian ketiga tentang perancangan sistem elektrik membahas tentang
perancangan desain rangkaian elektrik yang akan digunakan. Perancangan rangkaian
elektrik sebagai pengendali prototipe lengan robot terdiri dari kontroler berupa
mikrokontroler
Ariuino Uno R3
, pengendali motor RC
servo
(
Aiafruit servo controller
)
dan
output
yang berupa motor RC
servo
.
3.1.1.B PerancanganBMekanikBRobot.B
Gambar 3.1. Sistem Blok Diagram Perangkat Keras (
hariware
)
Gambar 3.1. merupakan sistem blok diagram dari perangkat keras (
hariware
).
Berdasarkan perancangan sistem pada Gambar 3.1,
personal computer
(PC) memiliki
peranan sebagai perangakat keras yang berfungsi sebagai pemberi masukan atau
input
pada
sistem. Bagian
input
memberi keluaran atau
output
dari PC ke perangkat pengendali
(
controller
).
Output
yang dikeluarkan PC berupa data
serial
yang dikirim menuju piranti
pengendali dengan sistem komunikasi
serial
melalui koneksi USB (
Universal Serial Bus
).
PC memberikan
output
data
serial
dari program perangkat lunak berupa
software visual
basic 6.0
.
Software visual basic 6.0
membuat perintah tampilan antarmuka (
interface
)
berupa tombol dan parameter sebagai acuan kerja
prototype
lengan robot penggambar
bidang dua dimensi untuk menggambar bidang dua dimensi pada papan tulis.
memungkinkan untuk melakukan komunikasi dengan papan kontroler yang lain dengan
sistem I
2C (
Inter Integratei Circuit
) karena memiliki pin TWI (
Two Wire Interface
) yaitu
pin SDA dan SCL. Sedangkan servo kontroler yang digunakan
Aiafruit servo controller
(Aiafruit 16-Channel 12-Bit PWM / Servo Shieli – I
2C Interface)
yang memiliki fasilitas
untuk melakukan komunikasi dengan sistem I
2C yang juga terdapat pada pin SDA dan
SCL yang terkoneksi secara
stackable
dengan papan Arduino Uno R3. Kemampuan lain
dari
Aiafruit servo controller
yaitu terdapat fasilitas mapping dimana fungsi dari mapping
ini dapat dimanfaatkan untuk melakukan konversi sudut menjadi pulsa untuk
menggerakkan motor RC servo. Penggunaan
Aiafruit
servo kontroler juga menjaga arus
agar tidak
irop
ketika motor RC servo melakukan gerakan secara bersamaan. Arus yang
tidak
irop
dapat menjaga motor RC servo berputar menuju sudut yang diperintahkan
sesuai dengan pulsa-pulsa digital yang diterima.
Motor RC servo merupakan bagian keluaran atau
output
dari sistem lengan robot
penggambar bidang dua dimensi. Motor RC servo dapat bergerak setelah mendapatkan
power supply
5
volt
dan masukkan berupa pulsa-pulsa digital yang merupakan keluaran
papan
Aiafruit servo controller
. Sebagai salah satu penyusun pada sistem lengan robot,
motor RC servo berperan sebagai penggerak (
actuator
) dengan gerakan rotasi pada
sudut-sudut tertentu sesuai dengan besarnya pulsa digital yang diterima sehingga gerakan rotasi
ini memungkinkan lengan robot dapat bergerak pada 3 sumbu axis yaitu X, Y dan Z. Sifat
gerakan putaran sudut motor RC servo dimanfaatkan sebagai sendi-sendi (
joint
) yang
menghubungkan lengan satu dengan lengan yang lainnya.
Pada sistem
lengan robot berdasarkan Gambar 3.2. piranti pengendali motor RC
Gambar 3.2. Sistem Blok Diagram Perangkat Keras (
Hariware
) dengan
Sendi (
Joint
) Motor RC servo
3.1.1.1.B PemodelanBMekanikB
Gambar 3.3. merupakan gambar keseluruhan
iesign
3D lengan robot penggambar
bidang dua dimensi berbasis mikrokontroler. Lengan robot penggambar bidang dua
dimensi 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 gerakan motor
RC servo disebut sebagai
joint
.
Gambar 3.3. menampilkan keseluruhan desain perancangan mekanik 3D lengan
robot penggambar bidang dua dimensi beserta lima bagian utama pada robot yang berperan
sebagai penghubung (
link
), yang meliputi :
1.
Base
(bagian dasar)
2.
Shoulier
(bagian bahu)
3.
Elbow
(bagian siku)
4.
Pitch
(bagian pergelangan)
B
Gambar 3.3. Tampilan Keseluruhan
Design
3D Lengan Robot
Bagian dasar (
base
) berbentuk lingkaran yang berdiameter 25 cm.
Base
terhubung
dengan sebuah as yang memanjang ke bawah dan mempunyai roda gigi. Roda gigi pada as
berhubungan dengan roda gigi pada sebuah motor RC servo yang digunakan sebagai
penggerak
base
.
Base
bergerak secara rotasi dan dapat menyebabkan perubahan posisi
pada lengan-lengan penghubung yang lain. Bagian
shoulier
memiliki panjang lengan 18
cm dan bergerak secara rotasi dengan 2 buah motor RC servo. Bagian
elbow
memiliki
panjang lengan 12 cm dan bergerak secara rotasi dengan sebuah motor RC servo. Bagian
pitch
memiliki panjang lengan 5 cm dan bergerak secara rotasi dengan sebuah motor RC
servo. Bagian paling ujung adalah
pointer
yang digunakan untuk meletakkan spidol yang
merupakan
eni effector
dari
prototype
lengan robot
.
Pointer
memiliki panjang 8 cm. Total
keseluruhan panjang lengan robot penggambar bidang dua dimensi dari pangkal
shoulier
sampai pada ujung spidol adalah 43 cm. Besarnya dimensi berupa panjang yang dimiliki
oleh keseluruhan penghubung (
link
) menentukan kemampuan sebagai jangkauan lengan
robot ketika melakukan gerakkan menggambar di papan gambar.
Bagian yang berperan sebagai penggerak adalah sendi (
joint
) terhubung langsung
dengan motor RC servo. Gerakan yang terjadi pada
joint
di setiap bagian pangkal dari
link
Gambar 3.4. Tampilan Posisi Motor RC Servo pada
Design
Gambar 3D
Lengan Robot
Pada Gambar 3.4 menampilkan posisi motor RC servo pada perancangan lengan
robot penggambar bidang dua dimensi, yaitu:
1.
Base
2.
Shoulier 1
3.
Shoulier 2
4.
Elbow
5.
Pitch
Pada perancangan lengan robot penggambar bidang dua dimensi, motor RC servo
yang akan digunakan sebanyak 5 buah. Pemilihan motor RC servo yang digunakan pada
setiap
joint
berdasarkan pada kemampuan yang harus dimiliki setiap
joint
untuk
mengangkat beban. Beban dapat berupa lengan (
link
) dan benda yang diangkat.
Kemampuan motor untuk berputar dengan suatu beban merupakan gaya putar yang disebut
torsi (
torque
). Perkiraan berat lengan penghubung (
link
) pada perancangan lengan robot
penggambar bidang dua dimensi dapat dilihat pada keterangan lengan penghubung (
link
)
seperti pada Tabel 3.1:
Tabel 3.1. Keterangan Lengan Penghubung (
link
).
No.
Penghubung
Lengan
(
link
)
Panjang Lengan
Perkiraan
Berat Lengan
Beban Diangkat
Setiap Lengan
1
Base
25