TUGAS AKHIR
KONTROLER LENGAN ROBOT MENGGUNAKAN MOTOR SERVO
DAN MOTOR STEPPER DENGAN MASUKAN 3 AXIS
Diajukan untuk memenuhi salah satu syarat
Memperoleh gelar Sarjana Teknik pada
Program Studi Teknik Elektro
Jurusan Teknik Elektro
Fakultas Sains dan Teknologi Universitas Sanata Dharma
Disusun oleh :
ALEXANDER DENI PRATAMA
145114052
JURUSAN TEKNIK ELEKTRO
FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS SANATA DHARMA
YOGYAKARTA
ii
FINAL PROJECT
CONTROLLER ROBOT ARM USING SERVO MOTOR
AND STEPPER MOTOR WITH INPUT 3 AXIS
Presented as Partial Fullfillment of Requirements
To Obtain the SarjanaTeknik Degree
In Study Program of Electrical Engenering
By:
ALEXANDER DENI PRATAMA
145114052
DEPARTMENT OF ELECTRICAL ENGINEERING
FACULTY OF SCIENCE AND TECHNOLOGY
SANATA DHARMA UNIVERSITY
YOGYAKARTA
v
HALAMAN PERSEMBAHAN DAN MOTTO HIDUP
MOTTO
Keberhasilan adalah sebuah proses. Niat adalah awal keberhasilan. Peluh keringat adalah
penyedap. Tetesan air mata adalah penawarnya. Doaku dan doa orang-orang sekitar
adalah bara api yang mematangkan. Kegagalan disetiap langkah adalah pengawetnya.
Maka dari itu, besabar! Allah selalu menyertai orang yang penuh kesabaran dalam proses
menuju keberhasilan.
“Sesungguhnya ke
sabaran akan membuat mengerti bagaimana cara mensyukuri arti
sebuah keberhasilan
”
Dengan ini kupersembahkan karyaku ini untuk,….
Tuhan Yesus Kristus Pembimbingku yang setia,
Kedua orang tua ku, adek dan saudara-saudaraku yang tercinta,
Teman-teman seperjuanganku,
viii
INTISARI
Robot menjadi pilihan untuk membantu pekerjaan manusia mengatasi masalah kepresisian, keamanan dan fleksibilitas. Lengan robot menjadi salah satu jenis robot yang dapat membantu pekerjaan manusia. Penelitian kontroler lengan robot ini untuk menggerakan motor stepper untuk menggambar bidang 2D. Alat ini dibuat untuk memperagakan gerakan robot yang dikendalikan jarak jauh. Kontroler lengan robot ini menggunakan metode pemograman Gcode untuk pengendalian robotyang diperintah dari PC dan berbasis mikrokontroler Arduino Uno R3 sehingga menarik untuk dipelajari.
Kontroler lengan robot dalam penelitian ini menggunakan Actuator lengan robot adalah motor stepper. Gerakan motor stepper mendapat input dari PC dengan software Visual Basic 6.0. untuk menggerakkan motor stepper dengan digunakan masukan perintah Gcode kontroler menggunakan Arduino Uno R3. Data yang dikirim dari PC ke Arduino Uno R3 berupa perintah Gcode dengan komunikasi serial. Mikrokontroler membaca input data serial dan mengirirm data berupa nilai step ke driver motor stepper untuk menggerakkan motor stepper untuk melakukan proses menggambar bidang 2D.
Hasil akhir dari penelitian kontroler lengan robot yang sudah dicapai yaitu lengan robot ini bisa dikendalikan dengan perintah G00 sebagai metode Gcode untuk mengendalikan 3 motor stepper dengan algoritma bresenham sebagai metode dalam pemograman yang dikendalikan melalu Grafik User Interface (GUI) dengan komunikasi serial.
Kata kunci : Gcode controller, algoritma bresenham, GUI pengiriman data serial, motor stepper.
ix
ABSTRACT
Robot become a choice to help people to do their job to overcome the problem of accuracy, security, and flexibility. Arm Robot is a kind of robot that can help human works. Research arm robot to draw 2D field. This project is controller robot arm to drive the stepper motor to draw a 2D field. The tool is meant to demonstrate the movement of the remote-controlled robot. The robot arm control using G Code programming method for controlling robotyang ruled on the PC and microcontroller-based Arduino Uno R3 so interesting to learn.
Controller robot arm in this study using a robot arm actuator is a stepper motor. Stepper motor movement gets input from a PC with the software Visual Basic 6.0. to drive a stepper motor to be used G Code command input controller using Arduino Uno R3. Data sent from the PC to the Arduino Uno R3 form Gcode command with serial communication. The microcontroller reads the serial data input and send data is a step value to the stepper motor driver to drive the stepper motor to make the process of drawing a 2D field.
The final results of the research arm robot controller that has been achieved is a robotic arm can be controlled by command G00 as Gcode method for controlling 3 stepper motors with Bresenham algorithm as a method of programming that is controlled through the Graphic User Interface (GUI) with serial communication.
xi
DAFTAR ISI
Halaman Sampul (Bahasa Indonesia) ... i
Halaman Sampul (Bahasa Inggris) ... ii
Halaman Persetujuan ... iii
Halaman Pengesahan ... iv
Halaman Persembahan ... v
Lembar Pernyataan Keaslian Karya ... vi
Lembar Pernyataan Persetujuan Publikasi Karya Ilmiah ... vii
Intisari ... viii
Abstract ... ix
Kata Pengantar ... x
Daftar Isi ... xii
Daftar Gambar ... xiv
Daftar Tabel ... xv
Daftar Lampiran ... xvi
BAB I PENDAHULUAN 1.1 Latar Belakang ... 1
1.2 Tujuan dan Manfaat ... 2
1.3 Batasan Masalah ... 2
1.4 Metodologi Penelitian ... 3
BAB II DASAR TEORI 2.1 Mikrokontroler Arduino ... 5
2.2 Software Arduio ... 10
2.3 G-code ... 13
2.4 Motor Stepper ... 15
2.5 Gy-4988 A4988 Stepper Motor Driver Module ... 17
2.6 Motor Servo ... 19
xii BAB III PERANCANGAN SISTEM
3.1 Perancangan kontroler robot ... 23
3.1.1 Perancangan Rangkaian Elektrik Sistem Pengendali... 25
3.2 Perancangan Perangkat Lunak (Software) ... 26
3.2.1 Perancangan Interface G-codesender ... 27
3.2.2 Perangkat Lunak Pengendali dengan Arduino IDE ... 29
3.3 Perancangan step (microstep) driver motor stepper ... 31
BAB IV HASIL DAN PEMBAHASAN 4.1 Hasil Perancangan Perangkat Lunak (Software) ... 36
4.1.1 Pembahasan Program pada software Visual Basic 6.0 ... 36
4.1.2 Pembahasan Program Pada Software Arduino IDE. ... 40
4.2 Hasil Perancangan Komponen Elektrik Sistem Kontroler ... 44
4.3.Pengujian dan Analisa Motor Stepper untuk Axis X dan Y ... 45
4.3.1 Hasil Pengujian dan Analisa Motor Stepper dengan X > Y untuk X 1/2 putaran ... 47
4.3.2 Hasil pengujian dan Analisa Motor Stepper dengan X > Y untuk X 1 putaran. ... 48
4.3.3 Hasil pengujian dan Analisa Motor Stepper dengan Y > X untuk Y 1/2 putaran. ... 49
4.3.4 Hasil pengujian dan Analisa Motor Stepper dengan Y > X untuk Y 1 putaran. ... 50
4.3.4 Hasil pengujian dan Analisa Kecepatan Motor Stepper . ... 52
BAB V KESIMPULAN 5.1 Kesimpulan ... 53
5.2 Saran ... 53
DAFTAR PUSTAKA ... ... 54
xiii
DAFTAR GAMBAR
Halaman
Gambar 2.1 Tampilan Arduino Uno R3 ... 6
Gambar 2.2 Alokasi Penempatan Pin Arduino Uno R3... 7
Gambar 2.3 Tampilan Arduino Software (Arduino IDE) ... 11
Gambar 2.4 Pengukuran absolute dan incremental ... 15
Gambar 2.5 Motor Stepper ... 16
Gambar 2.6 Prinsip kerja motor stepper ... 17
Gambar 2.7 Konfigurasi Aplikasi IC A4988 ... 18
Gambar 2.8 Gy-4988 A4988 Stepper Motor Driver Module ... 19
Gambar 2.9 Motor Servo ... 20
Gambar 2.10 Kontruksi Motor Servo ... 20
Gambar 2.11 Interface Visual Basic 6.0.[ ... 21
Gambar 2.12 Tampilan jendela Compnents ... 22
Gambar 3.1 Sistem Blok Diagram Perancangan Controller ... 23
Gambar 3.2 Rangkaian elektrik sistem pengendali ... 25
Gambar 3.3 Diagram Alir Secara Umum Sistem perangkat Lunak (software) ... 26
Gambar 3.4 Interface Software G-codesender ... 27
Gambar 3.5 Tampilan file g-code pada frame gambar ... 28
Gambar 3.6 Tampilan prorgam Arduino Uno R3... 28
Gambar 3.7 Diagram Alir Sistem Secara Umum Pada Arduino IDE. ... 29
Gambar 3.8 Diagram Alir program “menggambar bidang 2D” pada Arduino IDE 31
Gambar 3.9 Tampilan Gambar Kotak dengan Koordinat X dan Y ... 32
Gambar 3.10 Gelombang Pulsa Motor Stepper ... 35
Gambar 4.1 Tampilan Antarmuka Visual Basic 6.0 ... 36
Gambar 4.2 Tampilan Antarmuka Visual Basic 6.0. pada Pengisian Parameter ... 37
Gambar 4.3 Program Komunikasi Serial pada Software Visual Basic 6.0. ... 38
Gambar 4.4 Program Pengisian Data pada Software Visual Basic 6.0. ... 39
xiv
menggerakan motor stepper pada Software Visual Basic 6.0 ... 39
Gambar 4.6 Tampilan Software Arduino IDE ... 40
Gambar 4.7 Program Inisialisasi pada Software Arduino IDE ... 41
Gambar 4.8 Proses memasukan perintah jumlah step pada setiap koordinat dengan Serial Monitor pada Software Arduino IDE ... 42
Gambar 4.9 Perintah untuk Menentukan Arah Putaran Motor Stepper pada software Arduino IDE ... 42
Gambar 4.10 Program Pembacaan Data Serial dan Visual Basic 6.0. di PC dan Mikrokontroler Arduino Uno R3 (Komunikasi Serial) ... 43
Gambar 4.11 Tampilan Rangakaian Elektrik Sistem Pengendali... 44
Gambar 4.12 Cara Pengujian Gerakan Motor Stepper ... 45
Gambar 4.13 Flowchart Algoritma Pemograman ... 46
xv
DAFTAR TABEL
Halaman
Tabel 2.1 Keterangan Pin pada Gambar 2.2 ... 8
Tabel 2.2 keterangan Tombol pada Tampilan Arduino IDE ... 12
Tabel 2.3 Macam-macam G-code ... 13
Tabel 2.4 Spesifikasi Motor Stepper ... 16
Tabel 2.5 Microstep Resolution ... 19
Tabel 3.1 Resolution Mode Step ... 34
Tabel 3.2 Penerapan Pulsa Motor Stepper... 35
Tabel 4.1 Pengujian Motor Stepper X, Y, dan Z ... 48
Tabel 4.2 Pengujian Motor Stepper dengan X > Y untuk x = 100 step (1/2putaran) ... 49
Tabel 4.2 Pengujian Motor Stepper dengan X > Y untuk x = 200 step (1putaran) ... 50
xvi
DAFTAR LAMPIRAN
Halaman
L1. Listing Program Keseluruhan Pada Software Arduino IDE... L1
L2. Listing Program Keseluruhan Pada Software Visual Basic 6.0... L2
L3. Datasheet Motor Stepper... L3
1
BAB I
PENDAHULUAN
1.1.
Latar Belakang
Seiring perkembangan teknologi yang semakin maju, teknologi robot mengalami suatu
kemajuan yang sangat pesat.Teknologi yang canggih telah menggantikan peralatan-peralatan
manual yang membutuhkan banyak tenaga manusia untuk dioperasikan, salah satunya yaitu
penggunaan robot.Perkembangan teknologi robotika telah membuat kualitas kehidupan
manusia semakin tinggi.Saat ini perkembangan teknologi robotika telah mampu meningkatkan
kualitas maupun kuantitas produksi berbagai industri.Robot merupakan mesin yang dapat
diprogram untuk melaksanakan suatu pekerjaan sesuai dengan program yang telah dimasukkan
kedalam komputer robot [1].
Robot manipulator merupakan salah satu jenis robot yang sudah banyak digunakan oleh
manusia.Manipulator adalah suatu sistem mekanik yang digunakan dalam memanipulasi
pergerakan mengangkat, memindahkan, dan memanipulasi benda kerja untuk meringkankan
kerja manusia.Robot manipulator dirancang menyerupai lengan manusia yang memiliki sifat
fleksibel, sehingga mudah digunakan untuk melakukan pekerjaan yang cepat presisi dan
berulang-ulang.Robot manipulator (lengan robot) dilengkapi dengan aktuator dan memiliki
jumlah derajat kebebasan (degree of freedom/DOF).
Fungsi utama dari robot dalam dunia industri saat ini adalah menggantikan tugas
manusia karena dapat dapat melakukan pekerjaan yang berat, presisi, cepat, aman dan
berulang-ulang.
Dalam perancangan dan pembuatan robot, salah satu hal yang tidak dapat ditinggalkan
adalah sistem pengaturan motor. Tanpa pengaturan motor yang baik robot tidak dapat bekerja
dengan baik, hal ini dikarenakan hampir semua robot menggunakan motor sebagai
penggeraknya. Pada lengan robot, motor akan dituntut untuk gerakan-gerakan seperti putaran
base, gerakan aktuator naik dan turun, gerakan tanagan naik-turun, gerakan gripper memutar
dan gerakan gripper menjepit. Sistem yang demikian memerluhkan suatu pengaturan motor
Maka dari itu, berdasarkan paparan diatas peneliti ingin membuat sebuah program yang
dapat menerjemahkan file G-code kedalam mikrokontroller arduino uno untuk menghasilkan
gerakan menggambar bidang dua dimensi berupa garis, lingkaran, segitiga dan tanda (+). dengan
sebuah manipulator robot berupa lengan robot yang memiliki 4 derajat kebebasan atau degree of
freedom (4-DOF) dimana setiap sendi (joint) memliki gerakan berputar dan dapat melakukan
pergerakan pada sumbu X, Y, Z. Lengan robot ini bergerak menggunakan motor stepper dan motor
RC servo yang akan dikendalikan oleh mikrokontroler berupa Arduino Uno R3.
1.2.
Tujuan dan Manfaat
Tujuan dari tugas akhir ini adalah untuk menghasilkan suatu program yang dapat
menerjemahkan file G-code sebagai input yang kemudian diproses ke dalam mikrokontroller
arduino uno sehingga menghasilkan gerakan untuk menggambar bidang dua dimensi tertentu yaitu
garis, lingkaran, segitiga dan tanda (+) dengan variasi dan ukuran tertentu.
Penelitian ini menghasilkan manfaat yang dapat membantu pekerjaan manusia dalam kegiatan
produksi karena lengan robot dapat melakukan pekerjaan jarak jauh dengan presisi, aman, serta
berulang-ulang.
1.3.
Batasan Masalah
Pembatasan masalah yang dimaksud untuk mempermudah pelaksanaan penelitian maupun
penulisan skripsi sehingga tidak terjadi kesalahan dalam menerjemahkan judul yang dimaksud.
Batasan untuk penelitian ini adalah ;
a. Menggunakan sebuah mikrokontroler yaitu Arduino Uno R3 sebagai kontroler dengan
robot.
b. Lengan robot memiliki gerakan rotasi dan 4 derajat kebebasan atau Degree Of Freedom
(4-DOF).
c. Menggunakan komunikasi serial antara PC dan mikrokontroler.
d. Menghasilkan gerakan lengan robot untuk menggambar bidang 2 dimensi yaitu
lingakaran, kotak, segitiga, dan tanda (plus/+) yang sudah ditentukan pada personal
computer (PC) dengan inputan file G-code untuk diterjemahkan kedalam
3
e. Menggunakan perintah G00, G01, G02, dan G03 pada G-code.
1.4.
Metodologi Penelitian
Metedologi yang digunakan dalam penelitian ini adalah sebagai berikut :
a. Studi pustaka yakni pengumpulan serta mempelajari bahan-bahan referensi berupa
buku-buku dan jurnal-jurnal ilmiah yang berasal dari media internet maupun
media-media lain. Bahan referensi yang dikumpulkan dan dipelajari berkaiatan dengan topik
yang diambil, seperti bahan tentang mikrokontroler khususnya Arduino Uno R3
dengan grbl, motor stepper, motor servo dan lengan robot.
b. Menguji motor stepper. Tahap ini guna lebih memahami prinsip kerja motor stepper
dan mengetahui karakter motor stepper.
c. Metode analisa, tahap ini dilakukan guna menganalisa masalah-masalah yang akan
disajikan dan menggumpulkan data atau informasi dari berbagai sumber.
d. Menguji rangakaian kendali dengan mikrokontroler Arduino R3 grbl dan stepper motor
controller. Tahap ini guna lebih memahami Bahasa yang digunakan mikrokontroler
Arduino R3 dan stepper motor controller lebih memahami cara kerja pengendalian
robot.
e. Perancangan sistem controller dan software. Tahap ini bertujuan untuk mencari dan
menetukan komponen-komponen suatu sistem yang akan dibuat dengan
mempertimbangkan faktor-faktor permasalahan dan kebutuhan yang telah ditentukan.
f. Pembuatan sistem controller dan software. Tahapan ini merupakan penerapan dari
sistem yang telah dirancang sebelumnya dengan merangkai komponen-komponen
mekanik maupun elektrik. Dalam tahap ini pembuatan perangkat lunak (software)
bertujuan untuk memberikan program sebagai kecerdasan buatan yang berguna untuk
mengendalikan gerakan robot sehingga robot dapat bergerak sesuai dengan program
yang diberikan.
g. Proses pengujian dan pengambilan data. Teknik pengujian dan pengambilan data
dilakukan dengan cara menguji keseluruhan sistem berupa gerakan lengan robot yang
telah diberikan. Program pada personal computer (PC) berguna untuk membuat
melalui komunikasi serial pada bagian pengendali berupa mikrokontroler Arduino Uno
R3 dan stepper motor controller untuk diproses sesuai dengan program yang diberikan.
Selanjutnya bagian pengendali berupa pulsa untuk menggerakan setiap motor stepper
yang dipasang pada lengan robot.
h. Analisa dan kesimpulan hasil perancangan. Analisa data dilakukan berdasarkan
kepresisisan dan keakuratan hasil pola gambar bidang dua dimensi yang digambar
dengan gerakan lengan robot. Kesimpulan hasil perancangan dapat dilakukan dengan
membandingkan antara hasil gambar bidang dua dimensi di papan gambar dari gerakan
aktual lengan robot dengan perintah masukan bentuk bidang dua dimensi beserta
5
BAB II
DASAR TEORI
2.1. Mikrokontroler Arduino
Mikrokontroler adalah suatu alat elektronika digital yang mempunyai masukan dan
keluaran serta kendali dengan program yang bisa ditulis dan dihapus dengan cara khusus[2].
Sederhananya, cara kerja mikrokontroler sebenarnya hanya membaca dan menulis data.
Mikrokontroler merupakan komputer didalam chip yang digunakan untuk mengontrol peralatan
elektronik yang menekankan efisiensi dan efektifitas biaya.
Dengan kata lain, mikrokontroler adalah alat yang mengerjakan intruksi-intruksi yang
diberikan. Artinya, bagian terpenting dan utama dari suatu sistem terkomputerisasi adalah
program itu sendiri yang dibuat oleh seorang programer.Program ini mengintruksikan komputer
untuk melakukan tugas yang lebih kompleks sesuai dengan yang diinginkan.
Mikrokontroler digunakan untuk mengolah perintah berupa program yang telah dibuat
sebelumnya dari sebuah masukan (input) menjadi keluaran (output) yang diingkan.
Mikrokontroler saat ini mengalami perkembanagan yang cukup pesat baik dari bentuk, fungsi,
dan kemampuannya sebagai kontroler.Perintah-perintah yang diberikan pada mikrokontroler
untuk mengontrol sebuah sistem ditulis dalam Bahasa pemograman.Bahasa pemograman yang
sering digunakan pada mikrokontroler antara lain Bahasa C, C++, basic, dan
assembly.Penggunaan Bahasa pemograman disesuaikan dengan mikrokontroler yang
digunakan.
Arduino adalah sebuah platform elektronik yang open source.Nama Arduino tidak
hanya digunakan untuk menamai board rangkaian saja, tetapi juga untuk menamai Bahasa dan
software pemogramannya, serta lingkungan pemogramannya atau yang dikenal dengan sebutan
Integrated Development Environment (IDE).Arduino memiliki beberapa keunggulan
dibandingkan dengan platform elektronik lainnya[3]. Beberapa keunggulan tersebut antara lain:
1. Modul Arduino adalah sebuah platform elektronik yang open source yang berbasis pada
dapat mengunduh software dan gambar rangkaian Arduino tanpa harus membayar
kepada pembuat Arduino.
2. Integrated Development Environment (IDE) Arduino merupakan multiplatform yang
dapat dijalankan di berbagai sistem operasi seperti Windows, Macintosh, dan Linux.
3. Modul Arduino mudah digunakan sebagai sebuah platform komputasi fisik yang
sederhana serta menerapkan bahasa pemograman processing.
4. Arduino merupakan platform interraktif karena dapat mengambil masukan dari berbagai
tombola tau sensor, mampu mengendalikan berbagai lampu, motor, dan output fisik
lainnya.
5. Modul Arduino dapat berdiri sendiri, atau dapat melakukan komunikasi dengan software
yang berjalan dikomputer seperti Flash, Processing, dan MaxMSP.
6. Biaya yang dibutuhkan untuk membeli modul Arduino cukup murah, sehingga tidak
terlalu menakutkan untuk membuat kesalahan.
7. Proyek Arduino ini dikembangkan dalam dunia pendidikan, sehingga bagi pemula akan
lebih cepat dan mudah untuk mempelajarinya.
8. Memiliki begitu banyak pengguna dan komunitas di internet yang dapat membantu
setiap kesulitan yang dihadapi.
Dalam penelitian yang dikerjakan oleh penulis, akan digunakan salah satu produk Arduino
yang dikenal dengan nama Arduino Uno R3. Gambar 2.1 merupakan tampilan Arduino Uno R3.
Gambar 2.1 Tampilan Arduino Uno R3
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 /
output pin (dimana 6 pin dapat digunakan sebagai output PWM), 6 inputanalog, 16 MHz
7
USB atau sumber tekanan bias didapat dari adaptor AC – DC atau baterai untuk menngunakannya (Arduino, Inc, 2009)[4]. 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[5]. Spesifikasi Arduino Uno R3 ditunjukan pada alokasi penempatan pin – pin Arduino Uno R3 pada tabel 2.1.
Gambar 2.2 Alokasi Penempatan Pin Arduino Uno R3
Arduino Uno R3 seperti ditunjukan 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 menggunakan 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[5].
Tabel 2.1. Keterangan Pin pada Gambar 2.2
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.
2 Jack USB Untuk komunikasi mikrokontroler dengan PC.
3 Jack Adaptor Masukan komunikasi dengan PC melalui kabel serial USB). power eksternal bila Arduino bekerja mandiri (tanpa
4
Tombol Reset
Tombol reset internal yang digunakan untuk mereset modul Arduino.
5 SDA dan SCL Komunikasi Two Wire Interface (TWI) atau Inter Integrated Circuit (12C) dengan menggunakan Wire library.
6 GND dan AREF
GND = Pin ground dari regulator tegangan board Arduino. AREF = Tegangan Referensi untuk input analog.
7 Pin Digital Pin yang digunakan untuk menerima input digital dan memberi output berbentuk digital (0 dan 1 atau low dan high).
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 sumber daya ekstenal.
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 sebelimnya karena Arduino Uno R3 ini
tidak menggunakan chip driver FTDI USB-to-serial. Melainkan menggunakan fitur dari
ATMega 16U2 yang deprogram sebagai konverter USB-to-serial [6].
9
a. Pin out : menambahkan SDA dan SCL pin yang dekat 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.
Perkembangannya, 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 konventer USB-to-serial.
Board Arduino Uno R3 dapat beroperasi pada pasokan daya dari 6 – 20 volt. Jika diberikan dengan kurang dari 7V, bagaimanapun pin 5V dapat menyuplai kurang dari 5 volt dan
board mungkin tidak stabil. Jika menggunakan lebih dari 12V, regulator bias 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 ATMega 8U2 USB-to-serial
TTL.
b. Eksternal Interupsi : 2 dan 3. Pin ini dapat dikonfigurasi untuk memicu interupsi pada
nilai yang rendah, tepi naik atau jauh, 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 Peripherial 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
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.
Komunikasi
Arduino Uno R3 memiliki sejumlah fasilitas untuk berkomunikasi dengan komputer,
Arduino lain, atau mikrokontroler lainnya.ATmega menyediakan UART TTL (5V) komunikasi
serial, yang tersedia di pin digital 0 (RX) dan pin digital 1 (TX).Sebuah ATmega16U2 pada
board ini komunikasi serial melalui USB dan muncul sebagai com port virtual untuk perangkat
lunak pada computer.Firmware `16U2 menggunakan USB driver standar COM, dan tidak ada
driver eksternal yang diperlukan. Namun, pada Windows, file infdiperlukan. 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 computer (tetapi tidak untuk komunikasi serial pada
pin 0 dan 1). Fungsi ini digunakan untuk melakukan komunikasi interface pada sistem.
ATmega328 juga mendukung komunikasi (TWI) dan SPI [6].
Setiap IC mikrokontroler memiliki EEPROM yang merupakan memori yang nilainya
tersimpan ketika IC mikrokontroler non aktifkan (seperti hard driver kecil).Sistem
penyimpanan ini memungkinkan untuk melakukan pembacaan atau menulis dalam satuan
byte.Setiap IC mikrokontroler memiliki kapasitas EEPROM yang berbeda.Pada IC
mikrokontroler ATmega 328 yang terdapat pada Arduino Uno R3 memiliki EEPROM sebesar
1024 byte [5].
2.2.
Software
Arduino
Menulis program Arduino dilakukan dengan Arduino IDE, yaitu software yang
beroperasi dikomputer. Menurut situs http:/www.arduino.cc perangkat lunak disebut sebagai
Arduino software. Software ini tersedia untuk platformWindows, Mac OS X, dan Linux.Software
ArduinoIDE bermanfaat untuk menuliskan kode untuk mengontrol Arduino Uno dan
11
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 pemogramannya dapat ditulis di
Java, avr-gcc dan perangkat lunak yang berbasis open source lainnya [8].
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 tepasang dan mengatur jalur
komunikasi data melalui perintah Serial Port. Kedua pengaturan tersebut dapat ditemukan pada
pull down menu Tools.Tampilan jendela Arduino IDE ditunjukan pada Gambar 2.3.seperti
berikut ini :
Gambar 2.3 Tampilan Arduino Software (Arduino IDE)
Keterangan mengenai simbol-simbol (icon) yang terdapat pada jendela Arduino IDE
dijelaskan pada Tabel 2.2.sebagai berikut :
No. Tombol Nama Fungsi
1
Verify
Menguji apakah ada kesalahan pada program atau
sketch. Apabila sketch sudah benar, maka sketch tersebut
akan dikompilasi. Kompilasi adalah proses mengubah
kode program ke dalam kode mesin.
2
Upload Mengirimkan kode mesin hasil kompilasi ke board Arduino.
3
New Membuat sketch yang baru.
4 Open Membuka sketch yang sudah ada.
5 Save Menyimpan sketch
6
Serial Monitor Mwnampilkan data yang dikirim dan diterima melalui serial monitor.
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 program dari kode bahasa C (dengan GNU GCC) sedangkan Arduino Software (Arduino IDE)menghasilkan
file hex dari baris kode yang dinamakan sketch [8].
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 R3.
Program hasil kompilasi itu lalu dijalankan oleh bootloader.Semua papan Arduino memiliki
perangkat lunak yang dinamakan bootloader [8].
13
G-Code atau bahasa numerik adalah bahasa kode yang berfungsi sebagai sarana
komunikasi antara mesin dengan pemakainya, yakni memberikan informasi data kepada mesin
yang harus dipahaminya. G-code adalah bahasa kode yang telah distandarisasikan oleh ISO dan
DIN. G-code biasanya disebut cycle codes karena fungsinya yang mengacu pada pergerakkan
sumbu X, Y, dan Z. G-code dikelompokkan kedalam beberapa kelompok seperti kelompok 01
yang mencakup kode G00, G01, G02, G03 yang mempengaruhi pergerakkan dari bidang cetak
dan nozzle. Kelompok 03 yang mencakup absolute programing atau incremental programming.
Kode G00 memposisikan nozzle diatas bidang cetak dari satu titik ke titik yang lain dengan
cepat. Selama proses pergerakkan yang cepat, baik sumbu X atau Y bisa digerakkan secara
terpisah atau bersamaan. Macam-macam bahasa G-code dan kegunaannya dapat dilihat pada
Tabel 2.3, berikut ini:
Tabel 2.3. Macam-macam G-code.
G-code Kegunaan
G0 Perintah pergerakan cepat.
G1 Perintah pergerakan pemakanan lurus.
G2 Perintah pergerakan melingkar searah jarum jam.
G3 Perintah pergerakan melingkar berlawanan arah jarum jam.
G90 Pemrograman absolute.
G91 Pemrograman inkrimental.
Untuk mengetahui lebih jelas lagi fungsi dari dari g-code dapat dilihat di bawah ini:
1. G0, Perintah pergerakan cepat.
G0 berfungsi untuk menempatkan (memposisikan) pahat secara cepat dan tidak menyayat
benda kerja. Semua sumbu bisa bergerak secara simultan sehingga menghasilkan jalur lurus
(lihat gambar di samping). Perintah G0 akan selalu aktif sebelum dibatalkan oleh perintah dari
kelompok yang sama, misalnya G1, G2, atau G3. Format penulisannya sebagai berikut:
N... G0 X40 Z25; gerak cepat aktif menuju koordinat yg ditulis
N...
2. G1, Perintah pergerakan pemakanan lurus..
Fungsi dari perintah G1 adalah menggerakkan pahat dari titik awal menuju titik akhir
dengan gerakan lurus. Kecepatan gerak makan ditentukan dengan F. Semua sumbu dapat
bergerak bersama (lihat gambar di bawah). Perintah G1 tetap aktif sebelum dibatalkan oleh
perintah dari kelompok yang sama (G0, G2, G3). Format penulisannya sebagai berikut:
N... G0 X20 Z-40
N... G1 X30 Z-60 F20 ; berarti pahat bergerak lurus menuju
N... G1 Z-72 ; berarti pahat bergerak lurus menuju
N...
3. G2 dan G3, Perintah pergerakan melingkar searah jarum jam dan berlawanan arah jarum jam.
Perintah G2 atau G3 berfungsi untuk menggerakkan pahat dari titik awal ke titik akhir
mengikuti gerakan melingkar. Arah gerakan ada dua macam yaitu G2 untuk gerakan searah
jarum jam, dan G3 untuk berlawanan arah jarum jam (lihat gambar di bawah). Gerak makan
pahat menurut F yang diprogram pada baris sebelumnya. Format penulisannya sebagai berikut:
N...
N... G2 X... Z... I5 K-1; bergerak melingkar ke (X,Z) dengan titik pusat di (5,-1) dari titik awal
gerak pahat
N... G2 X... Z...CR=10; bergerak melingkar ke (X,Z) dengan radius 10
4. G90 dan G91, Pemrograman absolute dan incremental.
Apabila di awal program CNC ditulis G90, maka pemosisian pahat yang diperintahkan
menggunakan koordinat absolut dari titik nol benda kerja. Titik nol benda kerja adalah sebagai
15
Gambar 2.4. Pengukuran absolute dan incremental[4]
Format penulisannya sebagai berikut:
N.. G90 ; berarti sistem pengukuran absolutdiaktifkan
N...
N... G91 ; berarti sistem kordinat yang digunakan adalah inkrimental.
Kode G91 berarti sistem pengukuran yang digunakan menggunakan koordinat relatif atau
inkrimental. Pergeseran pahat diprogram dari tempat pahat berada ke posisi berikutnya. Titik
nol (0,0,0) berada di ujung sumbu pahat. G91 biasanya digunakan di awal sub rutin (sub
program).
2.4. Motor Stepper
Motor Stepper adalah suatu motor dc yang dikendalikan dengan pulsa-pulsa digital.
Prinsip kerja motor stepper adalah bekerja dengan mengubah pulsa elektronis menjadi gerakan
mekanis diskrit dimana motor stepper bergerak berdasarkan urutan pulsa yang diberikan kepada
motor stepper tersebut [9]. Motor stepper bergerak berdasarkan urutan pulsa yang diberikan
kepada motor. Karena itu, untuk menggerakan motor stepper diperluhkan pengendali motor
stepper yang membangkitkan pulsa-pulsa periodik.
Spesifikasi motor stepper
Tabel 2.4 Spesifikasi Motor Stepper
Model JK42HS40-1704
Phase 2
Step Angle 1.8°
Motor length 40mm
Voltage 12 V
Rated Current 1.7 A
Rated Power 5 W
Holding torque 4.2kg.cm
Temperature Rise 80℃max
Ambient Temperature -20℃~+50℃
Insulation Resistance 100 MΩMin. ,500VDC Dielectric Strength 500VAC for 1minute
Shaft Radial Play 0.02Max. (450g-load)
Shaft Axial Play 0.08Max. (450g-load)
Max. radial force 28N (20mm from the flange)
Max. axial force 10N
Size 4.2 x 4.2 x 4 cm/1.65 x 1.65 x 1.57 inch
㸦L x W x H㸧 Kelebihan Motor Stepper
Kelebihan motor stepper dibandingkan dengan motor DC biasa adalah :
1. Sudut rotasi motor proposional dengan pulsa masukan sehingga lebih mudah diatur.
2. Motor dapat langsung memberikan torsi penuh pada saat mulai bergerak.
3. Posisi dan pergerakan repetisinya dapat ditentukan secara presisi.
4. Memiliki respon yang sangat baik terhadap mulai, stop, dan berbalik (perputaran).
5. Sangat realibel karena tidak adanya sikat yang bersentuhan dengan rotor seperti pada
17
6. Dapat menghasilkan perputaran yang lambat sehingga beban dapat dikopel langsung ke
porosnya.
7. Frekuensi perputaran dapat ditentukan secara bebas dan mudah pada range yang luas.
Prinsip Kerja Motor Stepper
Prinsip kerja motor stepper adalah mengubah pulsa-pulsa input menjadi gerakan mekanis
diskrit. Oleh karena itu untuk menggerkkan motor stepper diperluhkan pengendali motor stepper
yang membangkitkan pulsa-pulsa periodik [9].
Berikut ini adalah ilustrasi struktur motor stepper sederhana dan pulsa yang dibutuhkan untuk
menggerakkannya :
Gambar 2.6 Prinsip kerja motor stepper
Gambar 2.6 merupakan ilustrasi dari pulsa keluaran pengendali motor stepper dan penerapan
pulsa tersebut pada motor stepper untuk menghasilkan arah putaran yang bersesuaian dengan
pulsa kendali [9].
2.5.
Gy-4988 A4988 Stepper Motor Driver Module
Gy-4988 A4988 Stepper Motor Driver Module adalah modul penggerak yang digunakan
untuk mengendalikan motor stepper mulai dari full step, half step,1/4 step, 1/8 step dan 1/16
step dengan mode pengoperasian motor stepper bipolar, kapasitas drive output driver hingga 35
Karena dapat melakukan hingga 1/16 step maka ketelitian setiap step makin bertambah.
Driver ini memiliki internal sircuit protection meliputi thermal shutdown, undervoltage lockout
(UVLO) dan crossover-current protection.Sehingga menambah keamanan pada driver motor
stepper [10]. Gy-4988 A4988 Stepper Motor Driver Module memiliki kemampuan untuk
beroperasi dalam slow atau mixed decay mode seperti yang ditunjukkan pada gambar 2.5.
Gambar 2.7 Konfigurasi Aplikasi IC A4988
Bentuk asli IC A4988 dapat dilihat pada Gambar 2.8. IC A4988memiliki 8 buah kaki yang
terdapat pada sisi kanan dan sisi kirinya.
19
STEP ( mikrostep )
Motor motor biasanya memliki spesifikasi ukuran step (1,80 atau 200 langkah per
revolusi) yang berlaku untuk full-step. Driver motor A4988 menyediakan resolusi yang lebih
tinggi dengan memungkinkan posisi half-step yang dapat dicapai dengan mengaktifkan koil
yang menggunakan arus menengah. Misalnya driver motor untuk mode quarter-step akan
memberikan 200 step per-revolution hingga 800 step per revolution yang menggunakan 4
level yang berbeda[13].
Resolusi (ukuran langkah) terdiri dari 3 input selector (MS1, MS2, dan MS3) yang
menghasilkan lima microstep resolusi sesuai dengan tabel 2.9. MS1 dan MS3 memiliki resistor
internal pull-down 100kΩ dan MS2 memiliki resisitor internal pull-down 50kΩ, sehingga apabila tiga microstep ini tidak terhubung maka menghasilkan mode full-step. Mode microstep
berfungsi dengan baik apabila batas arus diatur cukup rendah sehingga batas arus tersebut dapat
pakai.
Tabel 2.5. Microstep Resolution
2.6. Motor Servo
Motor servo adalah sebuah motor DC yang dilengkapi rangkaian kendali dengan sistem
closed feedback yang terintegrasi dalam motor tersebut. Pada motor servo posisi putaran sumbu
(axis) dari motor akan diinformasikan kembali ke rangkaian control yang ada di dalam motor
Gambar 2.9. Motor Servo
Motor servo disusun dari sebuah motor DC, gearbox, variable resistor (VR) atau potensiometer
dan rangakian control. Potensiometer berfungsi untuk menentukan batas maksimum putaran
sumbu (axis) motor servo. Sedangkan sudut dari sumbu motor servo diatur berdasarkan lebar
pulsa yang pada pin control motor RC servo [11].
Motor servo adalah motor yang mampu bekerja dua arah (CW dan CCW) dimana arah
dan sudut pergerakan rotornya dapat dikendalikan dengan memberikan variasi lebar pulsa (duty
cyle) sinyal PWM pada bagian pin kontrolnya.
Gambar 2.10. Kontruksi Motor Servo
2.7.
Visual Basic 6.0.
Microsoft Visual Basic 6.0, biasa dikenal dengan VB 6.0, merupakan sebuah bahasa
pemrograman berbahsa tingkat tinggi yang disertai visualisasi tampilan Windows didalamnya.
Sesuai dengan namanya, aplikasi ini hanya bekerja didalam system operasi keluaran Microsoft
saja. VB 6.0 mulai dikenal banyak orang karena Bahasa pemograman dan GUI (Graphical User
Interface) yang disediakan cukup memudahkan seorang pemula dalam membuat sebuah
21
Pembuatan program aplikasi menggunakan Visual Basic 6.0. dilakukan dengan membuat
tampilan aplikasi pada form, kemudian diberi script program didalam komponen-komponen
yang diperluhkan. Form disusun oleh komponen-komponen yang berada di Toolbox, dan setiap
komponen yang dipakai harus diatur propertinya lewat jendela Property.
Menu pada dasarnya adalah operasional standar didalam system operasi Windows, seperti
membuat form baru, membuat project baru, membuka project dan menyimpan project.
Disamping 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.13.
Gambar 2.11 Interface Visual Basic 6.0.[12]
Komunikasi serial pada VB 6.0.
Meskipun ruingan dan sederhana, aplikasi perangkat lunak ini sudah cukup mumpuni
untuk digunakan sebagai sebuah antarmuka antara computer dengan perangkat kontrol
elektronik seperti PLC (Program Logic Control). Untuk dapat berkomunikasi dengan dunia
luar, VB 6.0 sudah dilengkapi dengan fasilitas Ms Comm Control 6.0. MS Comm Control ini
peralatan elektronik berprosesor ataupun sebaliknya. Untuk mengaktifkan fungsi Ms Comm
Control pada VB 6.0 pertama kali harus membuat projectnya 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.14 dibawah ini
Gambar 2.12 Tampilan jendela Compnents
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
langkah – langkah sebagai berikut : 1. Membuka serial port.
2. Mengatur serial device.
3. Setting Receive and Transmit Buffer Properties.
23
BAB III
PERANCANGAN SISTEM
Bab ini membahas tentang langkah-langkah perancangan sistem kontroler (software)
untuk mengenerate G-code ke dalam mikrokontroler Arduino Uno R3. lengan robot
penggambar bidang dua dimensi dengan 4 DOF yang dikendalikan oleh mikrokontroler Arduino
Uno R3 berdasarkan masukan dari program G code. Dalam perancangan sistem yang akan
dibahas perangkat lunak sistem kontroler.
Perancangan ini meliputi diagram blok dan perancangan perangkat lunak (software).
Pembahasannya sebagai berikut :
3.1. Perancangan kontroler Robot.
Secara garis besar perancangan kontroler robot untuk menyusun sebuah sistem lengan
robot penggambar dua dimensi berbasis mikrokontroler meliputi beberapa komponen utama
yaitu komponen input, komponen piranti pengendali (controller) dan komponen output.
Komponen utama pada perangkat keras lengan robot penggambar bidang dua dimensi berbasis
mikrokontroler.
Gambar 3.1 Sistem Blok Diagram Perancangan Controller
Gambar 3.1 merupakan sistem blok diagram dari perancangan controller robot.
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 dikirm menuju piranti pengendali dengan sistem komunikasi serial melalui koneksi USB
(Universal Serial Bus). PC memberikan output data serial dari program berupa G-code yang
membuat perintah sebagai acuan kerja prototype lengan robot penggambar dua dimensi untuk
menggambar bidang dua dimensi pada area tulis.
Berdasarkan Gambar 3.1 piranti perancangan sistem pengendali adalah mikrokontroler
dan stepper kontroler. Mikrokontroler digunakan sebagai piranti pengendali pertama yang
mengolah perintah dan data dari output G-code agar dapat dibaca oleh pengendali kedua yaitu
stepper kontroler. Perintah dan data akan diolah mikrokontroler menjadi data-data berupa posisi
gerakan motor stepper yang kemudian dikirim menuju stepper kontroler untuk diolah menjadi
keluaran pulsa-pulsa digital yang digunakan untuk mengendalikan putaran motor stepper.
Mikrokontroler yang digunakan pada sistem lengan robot penggambar bidang dua dimensi
adalah ATmega 328 yang sudah teraplikasikan pada sebuah papan kontroler yaitu Arduino Uno
R3.
Motor steeper dan motor RC servo merupakan keluaran atau output dari sistem lengan
robot penggambar bidang dua dimensi. Motor stepper dan motor servo dapat bergerak setelah
mendapatkan power supply max 15 volt dan masukkan berupa pulsa-pulsa digital yang
merupakan keluaran papan A4988 stepper motor driver. Sebagai salah satu penyusun pada
sistem lengan robot, motor stepper 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 stepper dimanfaatkan sebagai sendi-sendi (joint) yang
menghubungkan lengan satu dengan lengan yang lainnya.
Pada sistem lengan robot berdasarkan Gambar 3.1 piranti pengendali motor stepper
digunakan untuk mengaktifkan 3 buah motor stepper dan 1 motor RC servo. Setiap motor
stepper bertugas untuk menggerakkan sendi (joint) pada bagian dasar (base), bahu (shoulder)
dan siku (elbow). Sedangkan motor servo bertugas untuk mengerakkan pergelangan lengan
25
robot penggambar bidang dua dimensi dapat bergerak dengan 4 derajat kebebasan (4 DOF) yaitu
RRRR (R=Rotation).
3.1.1 Perancangan Rangkaian Elektrik Sistem Pengendali
Perancangan rangkaian elektrik sistem pengendali lengan robot penggambar bidang dua
dimensi berbasis pc dan mikrokontroler seperti pada Gambar 3.3 terdiri dari beberapa bagian
yang menyusun suatu sistem berupa perangkat komponen masukkan (input), komponen
pengendali (controller) dan komponen keluaran (output). Perangkat masukan (input) dalam
rangakian elektrik ini berasal dari personal computer (pc). Komponen pengendali (controller)
yang digunakan berupa mikrokontroler (Arduino Uno R3) dan servo motor controller (A4988
stepper motor driver). Sedangkan komponen keluaran (output) berupa tiga buah motor stepper
dan sebuah motor RC servo yang terdapat pada sendi (joint).
Personal Computer (PC) digunakan untuk membuat, menampilkan dan mengolah
program berupa masukkan dari antarmuka perangkat lunak (software).Mikrontroler digunakan
sebagai komponen pengendali utama dari prototype lengan robot. Pemilihan mikrokontroler
Arduino UNO R3 karena sistem yang akan dibuat tidak memerlukan banyak I/O, menggunakan
komunikasi serial yang memiliki keunggulan open source untuk memudahkan dalam
pengaplikasian pada sistem.
Keterangan Gambar 3.2 :
1. Personal Computer (PC).
2. Mikrontroler (Arduino Uno R3) 3. A4988 stepper motor driver 4. Motor Stepper
5. Motor RC servo
3.2
Perancangan Perangkat Lunak
(Software)
Secara keseluruhan diagram alir sistem perangkat lunak (software) dapat dilihat pada
gambar 3.3. perangkat lunak yang digunakan dalam sistem ini adalah G-codesender untuk
mentransfer file G-code ke arduino dan software Arduino IDE untuk mikrokontroler.
G-codeSender untuk mentrasnfer file G-code yang terhubung dengan software Arduino IDE
dengan komunikasi serial menggunakan USB. Sedangakan dari software Arduino IDE
berhubungan dengan A4988 stepper motor driver. G-codesender digunakan agar Arduino dapat
membaca perintah dalam g-code. Software Arduino IDE digunakan untuk menulis data dari
pembacaan G-codesender dan mengolahnya menjadi pulsa-pulsa digital sebelum dikirim ke
stepper controller untuk menggerakan motor stepper dan motor RC servo.
27
3.2.1 Perancangan Interface G-codesender
Gambar 3.4 Interface Software G-codesender
Gambar 3.4 merupakan perancangan dari interface software G-codesender untuk
meng-generate file G-code ke dalam mikrokontroler Arduino Uno R3. Pada interface software
G-codesender digunakan dua buah tombol yaitu tombol open yang digunakan untuk membuka
file G-code kemudian file G-code yang dibuka akan dikenali setiap deret perintah yang tertulis
pada G-code. Kemudian tombol generate yang akan di generate dan tombol generate yang
digunakan untuk mengubah file g-code agar terbaca oleh mikrokontroler Arduino Uno R3.
Untuk memahami cara kerja sistem perangkat lunak (software) g-codesender untuk
menerjemahkan file gcode ke dalam mikrokontroler Arduino Uno R3. Akan dijelaskan
langkah-langkah dari sistem software g-codesender seperti dibawah ini :
1. Pilih file g-code yang akan digenerate dalam bentuk txt.
2. Setelah itu tombol generate ditekan maka program file gcode akan muncul pada frame.
3. Kemudian file gcode tersebut akan di generate menjadi program arduino. File :
OPEN
Generate File G-code
File :
OPEN
Generate File G-code
Gambar 3.5 Tampilan program file g-code
Gambar 3.5 Tampilan file g-code pada frame gambar.
Selanjutkan akan muncul program Arduino Uno R3 seperti gambar 3.6.
Gambar 3.6 tampilan prorgam Arduino Uno R3
29
Konsep perancangan program menggambar bidang dua dimensi secara umum pada
software Arduino IDE yang dijelaskan dalam bentuk diagram alir seperti Gambar 3.7. Software
Arduino IDE digunakan untuk menulis program pada mikrokontroler Arduino Uno R3. Program
diawali dengan meng-generare file G-code kedalam program Arduino. Setelah mikrokontroler
dalam posisi on maka hal pertama adalah melakukan inisalisasi untuk komunikasi serial.
Gambar 3.7 Diagram Alir Sistem Secara Umum Pada Arduino IDE.
Diagram alir sistem lengan robot penggambar bidang 2 dimensi dengan software
Arduino IDE secara umum ditunjukkan pada Gambar 3.8. Gerakan lengan robot berdasarkan
bidang 2D. Gerakan menuju posisi awal adalah gerakan lengan-lengan robot ketika sistem
pertama kali diaktifkan. Lengan robot akan bergerak ke posisi awalnya (home position/ nesting)
sesuai dengan posisi yang telah ditentukan pada program Arduino IDE. Gerakan menggambar
bidang 2D adalah gerakan lengan-lengan robot untuk melakukan proses menggambar bidang
2D di papan gambar sesuai dengan perintah berupa bentuk gambar bidang 2D yang dibaca dari
softwaregcodesender. Gerakan menggambar bidang 2D diawali dengan gerakan lengan robot
menuju titik referensi yang sudah ditentukan menuju ke papan gambar.
Gerakan menggambar bidang 2D di software Arduino IDE secara lebih jelas
ditunjukkan dengan diagram alir program menggambar bidang 2D pada Gambar 3.8. Program
diawali dengan pembacaan input pulsa. Kemudiann lengan robot akan diperintahkan
mikrokontroler dengan pulsa-pulsa digital menuju titik referensi pada papan gambar.
Selanjutnya mikrokontroler akan mengirimkan output pulsa-pulsa digital ke setiap motor RC
stepper dan motor RC servo berdasaarkan pembacaan data yang dikirimkan dari software
31
Gambar 3.8. Diagram Alir program “menggambar bidang 2D” pada Arduino IDE.
Software Arduino IDE digunakan untuk menulis program pada mikrokontroler Arduino
Uno R3. Program diawali dengan mengaktifkan mikrokontroler terlebih dahulu setelah
mikrokontroler dalam posisi on maka hal pertama adalah melakukan inisialisasi pada papan
3.3. Perancangan step (microstep) driver motor stepper
Gambar 3.9 Tampilan Gambar Kotak dengan Koordinat X dan Y.
Gambar 3.8 merupakan tampilan gambar kotak dengan koordinat X dan Y yang akan
didapat file G-code seperti dibawah ini :
N0 G00 X1 Y1 Z5
N5 G01 X1 Y1 Z0
N10 G01 X1 Y5 Z0
N15 G01 X5 Y5 Z0
N20 G01 X5 Y5 Z0
N25 G01 X5 Y1 Z0
N30 G01 X1 Y1 Z0
N35 G01 X1 Y1 Z5
Untuk menggambar kotak seperti Gambar 3.8 dengan cara menghubungkan setiap
koordinat-koordinat yang ada dan untuk menghubungkan setiap koordinat satu dengan
koordinat yang lain dibutuhkan masukan step pada driver motor untuk menggerakan motor
stepper. Modul penggerak yang digunakan untuk mengendalikan motor stepper mulai dari full
step, half step,1/4 step, 1/8 step dan 1/16 step dengan perhitungan step sebagai berikut : Y
X
(1,5)
(1,1) (5,1)
33
Jarak antar sumbu X dapat dicari dengan :
∆x = 5 – 1
= 4 cm
Jarak antar sumbu Y dapat dicari dengan :
∆y = 5 – 1
= 4 cm
Mode full step pada driver motor stepper untuk membuat gambar kotak didapat perhitungan step yang dibutuhkan sebagai berikut :
Fs = 200 step/mm
1 step =
��� mm
4 cm = 40 mm
40 mm = 40 x 200
= 800 step
Mode Half step pada driver motor stepper untuk membuat gambar kotak didapat perhitungan step yang dibutuhkan sebagai berikut :
½
step = 400 step/mm1 step =
��� mm
4 cm = 40 mm
40 mm = 40 x 400
= 1600 step
Mode
¼
step pada driver motor stepper untuk membuat gambar kotak didapat perhitungan¼
step = 800 step/mm1 step =
8 mm
4 cm = 40 mm
40 mm = 40 x 800
= 32000 step
Mode 1/8 step pada driver motor stepper untuk membuat gambar kotak didapat perhitungan step yang dibutuhkan sebagai berikut :
1/8 step = 1600 step/mm
1 step =
6 mm
4 cm = 40 mm
40 mm = 40 x 1600
= 64000 step
Mode 1/16 step pada driver motor stepper untuk membuat gambar kotak didapat perhitungan step yang dibutuhkan sebagai berikut :
1/16 step = 3200 step/mm
1 step = mm
4 cm = 40 mm
40 mm = 40 x 3200
= 128000 step
Dari perhitungan step diatas dapat diketahui bahwa setiap mode step mengalami
peningkatan step berdasarkan mode step yang akan digunakan. Seperti ditunjukkan pada Tabel
35
Tabel 3.1 Resolution Mode Step
Mode RESOLUSI
FULL STEP 200 step/mm
HALF STEP 400 step/mm
1/4 STEP 800 step/mm
1/8 STEP 1600 step/mm
1/16 STEP 3200 step/mm
Perancangan Pulsa Motor Stepper
Motor stepper bergerak berdasarkan urutan pulsa yang diberikan kepada motor. Dan
mengubah pulsa-pulsa input menjadi gerakan mekanis diskrit. Oleh karena itu untuk
menggerkkan motor stepper diperluhkan pengendali motor stepper yang membangkitkan
pulsa-pulsa periodik untuk mengendalikan motor stepper. Dalam penelitian ini menggunakan dua tipe
pulsa motor dengan kategori cepat dan lambat untuk menggerakkan motor stepper.
Gambar 3.10 Gelombang Pulsa Motor Stepper.
Penerapan pulsa pada motor stepper untuk menghasilkan arah putaran yang
bersesuaian dengan pulsa kendali ditunjukkan pada Tabel 2.6.
Tabel 3.2 Penerapan Pulsa Motor Stepper
G-Code Periode Pulsa
Motor Kategori
G00 50 μs Cepat G01 10 ms Lambat
G02 10 ms Lambat
G03 10 ms Lambat
50 μs
36
BAB IV
HASIL DAN PEMBAHASAN
Bab ini menjelaskan tentang pengamatan implementasi hasil perancangan pada
perangkat lunak dan hasil pengamatan berupa pengujian kesesuaian gambar antara gambar
bidang dua dimensi yang digambar lengan robot secara aktual dengan gambar dua dimensi yang
dikirim menggunakan PC pada visual basic 6.0 dalam alat lengan robot penggambar dua
dimensi menggunakan mikrokontroler Arduino Uno R3.
4.1 Hasil Perancangan Perangkat Lunak (
Software
)
Pada hasil perancangan perangkat lunak akan menjelaskan tentang penggunaan software
Visual Basic 6.0 sebagai GUIyang akan berkomunikasi untuk mengirimkan file G-code ke
software Arduino IDE yang akan digunakan untuk menggerakan motor stepper. Perintah untuk
menggambar bidang 2D dilakukan di software Visual Basic 6.0 sedangkan perintah untuk
menggerrakan lengan robot dilakukan oleh software Arduino IDE. Data yang dikirim dari PC
ke mikrokontroler Arduino Uno R3 berupa file G-code yang akan digunkan untuk
menggerakkan motor stepper.
4.1.1 Pembahasan Program pada software Visual Basic 6.0
37
Gambar 4.1.merupakan tampilan dari antarmuka Visual Basic 6.0 yang digunakan untuk
memberi perintah untuk mengirimkan file G-code pada software Arduino IDE untuk
menggambar bidang 2 dimensi. Pilih port Arduino dan port baud yang sesuai dengan Arduino
uno R3 lalu tekan tombol “connect” untuk menghubungkan visual basic dengan Arduino uno R3. Kemudian isi parameter-parameter motor stepper pada textbox. Penekanan tombol “Go” digunakan untuk eksekusi program, yaitu mengirimkan data-data yang dikirim ke mikrontroler
dengan timing tertentu untuk menggerakan motor stepper menggambar bidang 2D.
Gambar 4.2 Tampilan Antarmuka Visual Basic 6.0.pada Pengisian Parameter.
Gambar 4.2 merupakan formyang menampilkan antarmuka Visual Basic 6.0.untuk
melakuakan pengisisan parameter koordinat x, y, z, kecepatan, dan move. Pengisisan parameter
motor stepper dilakukan dengan mengisikan jumlah step yang dibutuhkan pada setiap koordinat
X, Y, Z , lalu mengisikan kecepatan yang sesuai dengan yang diinginkan kemudian pilih move
perintah motor stepper kemudian tekan tombol “Go” untuk mengirimkan data-data parameter ke mikrokontroler Arduino untuk mengerakkan motor stepper.
Program utama yang ditulis di software visual basic 6.0.seacara garis besar adalah
program untuk mengirimkan data koordinat-koordinat yang akan dieksekusi oleh software
Arduino, namun program utama tersebut memerluhkan program komunikasi serial yang
menutup komunikasi serial untuk pengiriman data ke mikrokontroler. Sedangkan Gambar 4.4.
menunjukan program pengisian data pada setiap koordinat dan pangisian parameter motor
stepper, setelah parameter motor stepper sudah ditulis dan dipilih selanjutnya penekanan tombol
eksekusi (tombol Go) maka parameter yang diisi dan dipilih akan muncul pada textbox dalam
bentuk Gcode, nominal koordinat X,Y,Z, dan kecepatan sekaligus untuk menjalankan program
utama yaitu menggerakan motor stepper. Program utama yang ditunjukkan Gambar
4.5.melakukan running program menggerakkan motor stepper akan bekerja dengan cara
melakukan pengiriman data berupa masukan jumlah step yang dapat dibaca oleh mikrokontroler
dan stepper controller secara serial melalui MSCommport1.output. Penelitian pada tahap ini
mengalami masalah pada pembacaan data yang masih belum bisa membaca data dalam jumlah
yang banyak, sehingga data yang dikirimkan baru bisa satu baris data yang dikirimkan ke
mikrokontroler.
39
Gambar 4.4 Program Pengisian Data pada Software Visual Basic 6.0.
4.1.2 Pembahasan Program Pada
Software Arduino IDE
.
Pada penelitian dengan sistem kontroler lengan robot menggunkan motor servo dan
stepper, software Arduino IDE digunakan untuk menuliskan program, melakukan pembacaan
data G-code dari software Visual Basic 6.0 dan melakukan pengiriman data berupa jumlah
step-step digital ke DRV8825 Stepper Driver untuk menggerakkan motor stepper, namun pada
penelitian ini mendapat kendalan dalam inisialisasi perintah Gcode yaitu G02untuk perintah
pergerakan melingkar searah jarum jam, dan G03 untuk perintah pergerakan melingkar
berlawanan jarum jam.Selain itu peneliti juga mendapat kendala dalam konversi nilasi step
kedalamkoordinat. Program yang ditulis di Arduino IDE juga digunakan untuk mengatur
kecepatan motor stepper. Gambar 4.6 merupakan tampilan umum dari software Arduino IDE
yang digunakan untuk menulis program pada mikrokontroler Arduino Uno R3.
41
Sebelum melakukan penulisan program utama untuk menjalankan sistem, seluruh fungsi
dan variabel yang digunakan dalam proses pengoperasian, program harus didefinisikan /
dideklarasikan terlebih dahulu. Pendefinisian fungsi dan variabel pada sistem lengan robot ini
merupakan program inisialisasi. Inisialisasi pada sistem ini adalah inisialisasi adalah inisialisasi
pada koneksi pin – pin Arduino Uno yang akan digunakan dan deklarasi variabel sebagai data operasiaonal program. Program inisialisasi dan deklarasi variabel yang digunakan pada
Software Arduino IDE ditunjukkan pada Gambar 4.7.
Gambar 4.7. Program Inisialisasi pada Software Arduino IDE.
Proses menggambar bidang 2D dilakukan dengan menggerakkan motor stepper
sesuai dengan posisi-posisi titik koordinat gambar ditentukan berdasarkan jumlah nilai step
memberikan input step pada semua motor stepper secara bersamaan. Gambar 4.8 merupakan
tampilan serial monitor pada software Arduino IDE.
Gambar 4.8 Proses memasukan perintah jumlah step pada setiap koordinat dengan Serial
Monitor pada Software Arduino IDE.
Posisi-posisi lengan robot yang ditentukan menggunakan serial monitor adalah posisi
gerakan lengan robot sesuai dengan jumlah nilai step yang dimasukkan pada setiap koordinat.
Pada program Arduino terdapat perintah untuk mengubah gerakan arah putaran motor stepper
dari searah jarum jam (Clock Wise / CW ) dengan input high atau menjadi kebalikan arah jarum
jam (Counter Clock Wise / CCW) dengan input low pada pindirection ke dalam masing- masing
driver motor stepper. Program tersebut ditunjukan pada Gambar 4.9.
Gambar 4.9 Perintah untuk Menetukan Arah Putaran
43
Gambar 4.10.merupakan program utama pada sistem kontroler lengan robot
menggunakan motor servo dan motor stepper dengan masukkan 3 axis. Program utama ini berisi
tentang pembacaan data serial dari Visual Basic 6.0. (komunikasiserial) sebagai input
mikrokontroler. Pembacaan data serialakan dimasukkan pada register data yang akan dibaca
oleh mikrokontroler Arduino Uno R3 berdasarkan urutan pengiriman data komunikasi serial.
Terdapat 5 register data yang berurutan pada pengiriman data serial yang memiliki nilai bawaan
dari Visual Basic 6.0.selanjutnya nilai tersebut diterjemahkan sebagai data-data untuk
melakukan kalkulasi sebagai masukan output nilai step. Register data yang berurutan tersebut
adalah Gcode, NstepX, NstepY, NstepZ, dan Speed.
Gambar 4.10.Program Pembacaan Data Serial dan Visual Basic 6.0.di PC
4.2 Hasil Perancangan Komponen Elektrik Sistem Kontroler
Gambar 4.11. Tampilan Rangakaian Elektrik Sistem Pengendali
Dalam hasil perancangan komponen elektrik sistem kontroler mengalami perubahan
pada pengerak pitch yang pada perancangan dirancang aktuator pitch menggunakan motor RC
servo sebagai aktuator tetapi pada hasil perancangan mengalami perubahan pada
desainhardware lengan robot yang dalam desainhardware lengan robot yang baru penggerak
pitch yang berupa motor RC servo diganti menggunkan sistem mekanik, sehingga
mempermudah dalam penggerakan pich tanpa harus menngunakan motor RC servo sebagai
penggerak.
Rangkaian elektrik sistem pengendali motor stepper ditunjukkan pada Gambar 4.11.
Rangkaian elektrik sistem pengendali motor stepper terdiri dari :
1. Motor Stepper 1 (sebagai penggerak sumbu X)
2. Motor Stepper 2 (sebagai penggerak sumbu Y)
3. Motor Stepper 3 (sebagai penggerak sumbu Z)
4. Output port ke motor stepper.
5. Board DRV8825 Stepper Driver Module(Stepper Controller)
6. Kabel Power Supply
7. Kabel USB (Komunikasi Serial Mikrokontroler dengan PC)
45
Pada Gambar 4.11 mikrokontroler Arduino Uno R3 melakukan komunikasi serial
dengan PC melalui kabel USB. Selain untuk komunikasi serial, kabel USB juga digunakan
untuk aktifitas upload dan download program. Board DRV8825 Stepper
DriverModuleterhubung dengan board Arduino Uno R3 dengan menggunakan jalur - jalur pada
papan PCB yang kemudian dihubungkan dengan kabel pada port pin ke Arduino Uno R3. Board
DRV8825 Stepper DriverModule mendapatkan power supply eksternal dengan tegangan 12 volt
dengan arus 3 ampere. Motor stepper sebagai penggerak diaktifkan dengan masukan step dari
output port papan DRV8825 Stepper DriverModule. Output port yang digunakan pada
rangkaian elektrik kontroler lengan robot ini sebanyak 12 portyang digunakan untuk
menggerakan motor stepper pada bagian motor stepper X, motor stepper Y, dan motor stepper
Z.
4.3. Pengujian dan analisa Motor Stepper untuk Axis X dan Y
Pada pengujian ini menjelaskan tentang hasil dari pengamatan berupa pegujian kesesuaian
gerakan setiap motor stepper sesuai masukan step yang dimasukkan melaluisoftware Visual
Basic 6.0. selanjutnya hasil dari pengujian gerakan atau putaran motor stepper dianalisa
kesesuainnya dengan parameter motor strpper yang dimasukkan dari software Visual Basic 6.0.
Seluruh hasil gerakan motor stepper berupa posisi putaran motor stepper dalam derajat. Gambar
1.12 merupakan cara pengujian gerakan motor stepper.
Dalam pengujian alat ini menggunakan algoritma bresenham sebagai metode pemograman
dalam software Arduino Uno R3 untuk mengatur gerakan motor stepper x dan motor stepper y
untuk menghasilkan gambar garis yang proposional.Algortima pemograman yang digunakan
yaitu algoritma bresenham.Algoritma garis bresenham adalah algoritma konversi penambahan
nilai integer, seperti ditunjukan pada gambar 4.13.
47
Pada algoritma bresenham terdapat parameter-parameter yang harus dipenuhi diantaranya
adalah nilai pk, A dan B. Algoritma bresenham memiliki aturan sebagai berikut;
1. Jika Pk bernilai positif (+), maka tambahkan hasilnya dengan B dan nilai x dan y
ditambah.
2. Jika Pk bernilai negatif(-), maka tambahkan hasilya dengan A dan nilai x ditambah 1,
sedangan y ditambah 0 (tetap).