Page 1
i
Halaman Judul (Bahasa Indonesia)
TUGAS AKHIR
ROBOT PENGGAMBAR DENGAN MEKANISME
PANTOGRAF MENGGUNAKAN MOTOR STEPPER
BERBASIS ARDUINO
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 :
I KOMANG MAHARDIKA
NIM : 155114024
PROGRAM STUDI TEKNIK ELEKTRO
JURUSAN TEKNIK ELEKTRO
FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS SANATA DHARMA
YOGYAKARTA
2020
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 2
ii
Halaman Judul (Bahasa Inggris)
FINAL PROJECT
ROBOT PLOTTER WITH PANTOGRAPH
MECHANISM USING STEPPER MOTOR BASED ON
ARDUINO
In a partial fulfilment of requirements
For the degree of Sarjana Teknik
Department of Electrical Engineering
Faculty of Science and Technology, Sanata Dharma University
I KOMANG MAHARDIKA
NIM : 155114024
DEPARTMENT OF ELECTRICAL ENGINEERING
FACULTY OF SCIENCE AND TECHNOLOGY
SANATA DHARMA UNIVERSITY
YOGYAKARTA
2020
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 3
vi
HALAMAN PERSEMBAHAN DAN MOTTO HIDUP
MOTTO:
Belajar dari kegagalan adalah hal yang bijak…
Skripsi ini kupersembahkan untuk….
Tuhan Yang Maha Esa
Orangtuaku tercinta Bapak I NYOMAN ARA S.E., dan
Ibu NI MADE ARWATI
Program Studi Teknik Elektro Universitas Sanata Dharma
Sahabat dan Teman-teman Seperjuangan
Yogyakarta
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 4
viii
INTISARI
Proses pemesinan otomatis atau CNC (Computer Numerical Controll) adalah proses
pembuatan produk berdasarkan gambar yang sudah diterjemahkan dalam bentuk g-code.
Penerjemahan dari gambar menjadi g-code dilakukan secara manual dengan memasukkan
fungsi-fungsi yang tersedia pada perintah-perintah g-code atau dengan menggunakan
software open source. Penelitian ini menggunakan open source untuk mengubah gambar
vektor menjadi g-code. Program ini untuk mensimulasikan proses penerjemahan tersebut.
Robot menjadi pilihan untuk membantu pekerjaan manusia mengatasi masalah
kepresisian, keamanan, fleksibilitas, dan pekerjaan yang berulang-ulang. Lengan robot
menjadi salah satu jenis robot yang dapat membantu pekerjaan manusia. Penelitian lengan
robot ini dibuat untuk menggambar bidang 2 dimensi. Lengan robot ini menggunakan basis
mikrokontroler Arduino Mega2560.
Lengan robot dalam penelitian ini mekanik berupa pantograf yang terdiri dari 4 link (4
ruas). Aktuator lengan robot adalah motor stepper. Lengan robot mendapatkan input dari PC
(Personal Computer) dengan software dan open processing 3 untuk menggerakkan lengan
robot. Data yang dikirim berupa pulsa digital dan komunikasi serial. Input berupa referensi
bidang kotak, segitiga, dan lingkaran dengan parameter yang ditentukan.
Hasil dari penelitian yang telah dilakukan menggunakan plotter robot drawing
menghasilkan tingkat keberhasilan robot untuk menggambar 2 dimensi secara berulang
adalah 100% untuk referensi gambar kotak, segitiga, dan lingkaran. Maka dapat dikatakan
percobaan plotter robot drawing ini berhasil sesuai dengan perancangan.
Kata Kunci: Pantograf, Arduino Mega2560, Komunikasi Serial, Lengan Robot, Processing
3.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 5
ix
ABSTRACT
The automatic machining process or CNC (Computer Numerical Controll) is the
process of making products based on images that have been translated in the form of g-code.
Translation of images into g-code is done manually by entering functions available in g-code
commands or by using open source software. This research uses open source to convert
vector images into g-code. This program is to simulate the translation process.
Robots are the choice to help human work overcome the problems of precision,
security, flexibility, and repetitive work. Robot arms become one type of robot that can help
human work. This robot arm research was made to draw 2-dimensional fields. This robot
arm uses a base Arduino Mega2560 microcontroller.
The robot arm in this study was a mechanical pantograph consisting of 4 links (4
segments). The robot arm actuator is a stepper motor. Robot arms get input from PC
(Personal Computer) with software and open processing 3 to move the robot arm. Data sent
in the form of digital pulses and serial communication. Inputs are in the form of boxes,
triangles and circles with the specified parameters.
The results of research that has been done using a robot drawing plotter produces a
success rate of robots for drawing 2 dimensions repeatedly is 100% for reference to drawings
of squares, triangles and circles. Then it can be said that this robot drawing plotter
experiment was successful in accordance with the design.
Keywords: Pantograph, Arduino Mega2560, Serial Communication, Robot Arm, Processing
3.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 6
xii
DAFTAR ISI
Halaman Judul (Bahasa Indonesia) ........................................................................................ i
Halaman Judul (Bahasa Inggris)............................................................................................ ii
LEMBAR PERSETUJUAN ................................................................................................. iii
LEMBAR PENGESAHAN .................................................................................................. iv
PERNYATAAN KEASLIAN KARYA ................................................................................ v
HALAMAN PERSEMBAHAN DAN MOTTO HIDUP ..................................................... vi
LEMBAR PERNYATAAN PERSETUJUAN PUBLIKASI KARYA ............................... vii
INTISARI ........................................................................................................................... viii
ABSTRACT ......................................................................................................................... ix
KATA PENGANTAR ........................................................................................................... x
DAFTAR ISI ....................................................................................................................... xii
DAFTAR GAMBAR .......................................................................................................... xiv
DAFTAR TABEL .............................................................................................................. xvi
BAB I PENDAHULUAN .................................................................................................... 1
1.1 Latar Belakang ........................................................................................................ 1
1.2 Tujuan ..................................................................................................................... 2
1.3 Manfaat ................................................................................................................... 3
1.4 Batasan Masalah ..................................................................................................... 3
1.5 Metode Penelitian ................................................................................................... 3
BAB II DASAR TEORI ....................................................................................................... 5
2.1 Mikrokontroler ........................................................................................................ 5
2.2 Arduino Mega 2560 ................................................................................................ 5
2.3 Gambar Bitmap ....................................................................................................... 8
2.4 Gambar Vektor ....................................................................................................... 8
2.5 Program mesin CNC ............................................................................................... 9
2.6 Inkscape ................................................................................................................ 12
2.7 CAMotics .............................................................................................................. 13
2.8 Motor Stepper ....................................................................................................... 13
2.9 Driver Motor ......................................................................................................... 17
2.10 Motor Servo .......................................................................................................... 17
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 7
xiii
2.11 Kinematika ............................................................................................................ 19
2.12 Invers Kinematika ................................................................................................. 19
2.12.1 Trigonometri .................................................................................................. 20
2.12.2 Pitagoras ........................................................................................................ 20
BAB III RANCANGAN PENELITIAN ............................................................................ 22
3.1 Blok Diagram ........................................................................................................ 22
3.2 Perancangan Perangkat Lunak (Software) ............................................................ 23
3.3 Pantograf ............................................................................................................... 24
3.4 Perancangan Perangkat Keras (Hardware) ........................................................... 25
3.4.1 Perancangan Mekanik Robot ......................................................................... 25
BAB IV HASIL DAN PEMBAHASAN ............................................................................ 29
4.1 Perancangan Perangkat Keras ............................................................................... 29
4.1.1 Bentuk Mekanik Sistem Lengan Robot ......................................................... 29
4.1.2 Komponen Elektrik Sistem Lengan Robot .................................................... 31
4.1.3 Pengujian Gerakan Mekanik Lengan Robot .................................................. 32
4.2 Analisa Dan Pembahasan Perangkat Lunak ......................................................... 34
4.2.1. Pembahasan Program Pada Software Arduino Mega2560 ................................ 34
4.2.2. Pembahasan Pada Software Processing 3 .......................................................... 36
4.3 Analisa Hasil Pengujian Gambar Bidang Dua Dimensi ....................................... 38
4.3.1 Analisa Hasil Gambar Kotak ......................................................................... 39
4.3.2 Analisa Hasil Gambar Segitiga ..................................................................... 40
4.3.3 Analisa Hasil Gambar Lingkaran .................................................................. 42
4.3.4 Hasil Pengujian Tingkat Keberhasilan .......................................................... 45
4.3.5 Hasil Pengujian Repeatability ....................................................................... 45
BAB V KESIMPULAN DAN SARAN ............................................................................. 46
5.1 Kesimpulan ........................................................................................................... 46
5.2 Saran ..................................................................................................................... 46
DAFTAR PUSTAKA .......................................................................................................... 47
LAMPIRAN ........................................................................................................................ 49
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 8
xiv
DAFTAR GAMBAR
Gambar 1. 1. Blok diagram Robot Drawing Pantograf ......................................................... 4
Gambar 2. 1. Arduino Mega 2560 ........................................................................................ 5
Gambar 2. 2. Contoh Gambar Bitmap .................................................................................. 8
Gambar 2. 3. Contoh Gambat Vektor ................................................................................... 9
Gambar 2. 4. Pengukuran Absolute dan incremental .......................................................... 11
Gambar 2. 5. Intruksi G-code .............................................................................................. 11
Gambar 2. 6. Inkscape ......................................................................................................... 12
Gambar 2. 7. CAMotics ....................................................................................................... 13
Gambar 2. 8. Motor Stepper ................................................................................................ 14
Gambar 2. 9. Penampang melintang dari motor stepper tipe variable reluctance (VR) ...... 14
Gambar 2. 10. Ilustrasi sederhana dari motor stepper tipe permanent magnet (PM) .......... 15
Gambar 2. 11. Penampang melintang dari motor stepper tipe hybrid ................................. 15
Gambar 2. 12. Motor stepper dengan lilitan unipolar.......................................................... 16
Gambar 2. 13. Motor stepper dengan lilitan bipolar............................................................ 16
Gambar 2. 14. Motor driver stepper .................................................................................... 17
Gambar 2. 15. Prinsip kerja motor servo ............................................................................. 18
Gambar 2. 16. Motor Servo ................................................................................................. 19
Gambar 2. 17. Kinematika Pantograf .................................................................................. 20
Gambar 2. 18. Segitiga Siku-siku ........................................................................................ 20
Gambar 3. 1. Diagram Blok Keseluruhan Sistem ............................................................... 22
Gambar 3. 2. Diagram alir secara umum perangkat lunak (software) ................................. 23
Gambar 3. 3. Diagram alir pada mikrokontroler ................................................................. 24
Gambar 3. 4. Tampilan Keseluruhan Desain 3D Mekanik Pantograf ................................. 25
Gambar 3. 5. Desain 3D Mekanik Pantograf Tampak Atas ................................................ 26
Gambar 3. 6. Desain 3D Mekanik Pantograf Tampak Bawah ............................................ 26
Gambar 3. 7. Sudut β1 Gambar 3. 8. Sudut β5 ................................................................ 26
Gambar 3. 9. Tampilan koordinat sumbu axis (X,Y) dan Jarak Daerah Kerja Lengan Robot
Pantograf .............................................................................................................................. 28
Gambar 4. 1. Mekanik Plotter Robot Drawing .................................................................... 29
Gambar 4. 2. Posisi Motor Stepper ..................................................................................... 30
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 9
xv
Gambar 4. 3. Posisi Motor Servo ........................................................................................ 31
Gambar 4. 4. Mekanik Plotter Robot Drawing .................................................................... 31
Gambar 4. 5. Cara Pengukuran Sudut Menggunakan Busur Derajat .................................. 33
Gambar 4. 6. Tampilan Software Arduino Mega2560 ........................................................ 34
Gambar 4. 7. Program Inisialisasi Motor Stepper Dan Motor Servo .................................. 35
Gambar 4. 8. Program Perintah G-code .............................................................................. 35
Gambar 4. 9. Program Skala Untuk Mengatur Ukuran Gambar ......................................... 36
Gambar 4. 10. Tampilan Pada Processing 3 ........................................................................ 37
Gambar 4. 11. Tampilan simulasi CAMotics ...................................................................... 37
Gambar 4. 12. Instruksi G-code........................................................................................... 38
Gambar 4. 13. Tampilan pada software paint ...................................................................... 38
Gambar 4. 14. Hasil Pengujian Gambar Kotak ................................................................... 39
Gambar 4. 15. Hasil Pengujian Gambar Kotak ................................................................... 40
Gambar 4. 16. Hasil Pengujian Gambar segitiga................................................................. 41
Gambar 4. 17. Hasil Pengujian Gambar Segitiga ................................................................ 41
Gambar 4. 18. Hasil Pengujian Gambar Lingkaran............................................................. 43
Gambar 4. 19. Hasil Pengujian Gambar Lingkaran............................................................. 43
Gambar 4. 20. Pengujian Garis Lurus Horizontal ............................................................... 46
Gambar 4. 21. Pengujian Garis Lurus Vertikal ................................................................... 47
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 10
xvi
DAFTAR TABEL
Tabel 2. 1. Spesifikasi Arduino Mega2560 ........................................................................... 6
Tabel 2. 2.Macam-macam G-code ..................................................................................... 10
Tabel 2. 3.Tegangan pulsa full step ................................................................................... 107
Tabel 2. 4.Tegangan pulsa half step .................................................................................... 17
Tabel 4. 1. perhitungan inverse kinematik dengan metode geometri pada titik referensi ... 32
Tabel 4. 2. Hasil Sudut Pengujian Dan Perhitungan Pada Gambar Bidang 2 Dimensi....... 33
Tabel 4. 3. Pengujian Gambar Kotak .................................................................................. 40
Tabel 4. 4. Pengujian Gambar segitiga ................................................................................ 42
Tabel 4. 5. Pungijian Gambar Lingkaran Scale 100% ........................................................ 43
Tabel 4. 6. Pengujian Gambar Lingkaran Scale 50% .......................................................... 44
Tabel 4. 7. Pengujian Gambar Kotak, Segitiga, Dan Lingkaran ......................................... 45
Tabel 4. 8. Pengujian Garis Lurus Horizontal ..................................................................... 46
Tabel 4. 9. Pengujian Garis Lurus Vertikal ......................................................................... 46
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 11
1
BAB I
PENDAHULUAN
1.1 Latar Belakang
Dengan semakin pesatnya perkembangan IPTEK dalam bidang manufaktur
(Pembuatan produk), proses pemesinan manual sudah mulai tergantikan oleh proses
pemesinan otomatis. Meskipun di Indonesia proses pemesinan manual lebih sering
digunakan dibanding otomatis, karena biaya yang tidak mencukupi. Pemesinan otomatis
lebih banyak digunakan oleh industri-industri besar yang menuntut kecepatan dalam
produksi dan kepresisian hasil produksi.
Robot drawing adalah robot yang nantinya dapat melakukan proses menulis ataupun
menggambar layaknya manusia. Permasalahan di negeri kita seperti pejabat tinggi yang
harus menandatangani sejumlah sertifikat ataupun surat-surat penting yang akan ditanda
tangani dengan manual. Maka diharapkan robot drawing akan mempermudah seseorang
dalam pekerjaannya.
Dalam dunia industri sudah banyak yang menggunakan robot untuk pembuatan
produk, tetapi sangat jarang digunakan untuk seorang pejabat-pejabat besar dalam
mempermudah pekerajaannya sehari-hari.
Di akhir-akhir ini banyak yang telah membuat sebuah lengan robot yang dapat
difungsikan untuk beraktivitas layaknya tangan manusia. Dalam pembuatan tangan robot ini
membutuhkan biaya yang besar dibanding dengan robot drawing dua dimensi yang bergerak
x, y, dan z.
Robot ini nantinya akan bergerak dengan sumbu x, y, dan z jarak kerja dari robot ini
seluas A4. Robot drawing ini bergerak dengan sebuah motor stepper untuk gerakan x, y, dan
z, robot ini dikendalikan dengan mikrokontroler berbasis Arduino.
Dalam perkembangan robot drawing di dunia, robot drawing mengalami banyak
perubahan dari yang berupa lengan robot yang bisa menggambar, robot drawing dengan
sumbu x, y, dan z.
Sistem robot lengan pada umumnya merupakan batang kaku yang terbuat dari logam,
plastik, maupun bahan lain yang sering disebut dengan link. Antara link satu dengan link
lainnya dihubungkan oleh persendian yang disebut joint. Umumnya prismatic joint dan flat
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 12
2
joint dapat menghasilkan pergeseran. Sedangkan shperis join dan revolute joint dapat
menghasilkan degree of freedom (DOF) atau derajat kebebasan. Degree of freedom (DOF)
atau derajat kebebasan adalah jumlah arah yang independen dimana actuator dari sebuah
robot dapat bergerak dan menghasilkan gerakan berputar. DOF dapat dihitung tiap sendi dan
tidak termasuk end effector .Sedangkan end effector adalah piranti yang terpasang pada
lengan robot untuk melaksanakan fungsi-fungsi tertentu. End effector terbagi menjadi dua
yaitu gripper dan tool. End effector dan keseluruhan bagian robot lengan bekerja pada
workspace tertentu, tergantung kemampuan robot yang digunakan [1].
Pemrograman mesin cnc adalah masukan data ke komputer mesin cnc dengan bahasa
yang dapat dipahami dan dimengerti oleh mesin. Bahasa yang dipakai berupa bahasa
numerik yaitu bahasa gabungan huruf dan angka. Untuk melaksanakan perintah jalannya
gerakan robot drawing guna mencapai tujuan yang diinginkan, diperlukan bahasa
pemrograman berupa kode-kode dalam bentuk huruf dan angka serta metode pemrograman
[2].
Untuk mengendalikan mesin menggunakan perangkat elektronik dalam hal ini era
modern. Dengan otomatisasi dibidang mikrokontroler yang mudah digunakan dan
ekonomis, memberikan kontrol penuh pada peralatan dengan fleksibilitas untuk mengubah
program kapan dibutuhkan dan memahami umpan balik dari sensor untuk presisi dan akurasi
membantu menghemat waktu dan tenaga yang juga menghabiskan lebih sedikit daya,
membuat daya peralatan efisien. Tujuan dari pekerjaan ini adalah untuk membangun plotter
murah yang dapat digunakan untuk tujuan pendidikan. Para penulis juga menemukan bahwa
ada banyak ruang lingkup perbaikan dalam pekerjaan ini yang dapat digunakan untuk
mengajarkan konsep lanjutan kepada siswa. Plotter umumnya digunakan untuk membuat
plot 2D, dikontrol secara digital. Karya ini menambahkan dimensi ekstra dimana pena dapat
diangkat sepanjang Sumbu Z.
Robot murah melayani banyak tujuan dalam pendidikan. Desain, kerja, antarmuka
perangkat lunak dan perangkat keras dan biaya-biaya rendah plotter akan menjadi detail di
bagian selanjutnya.
1.2 Tujuan
Tujuan dari penelitian ini secara umum adalah untuk menghasilkan suatu prototype
plotter robot drawing dengan penggerak motor stepper sebagai penggerak mekanik
pantograf dan berbasis mikrokontroler yang dapat dikendalikan dengan tampilan program
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 13
3
dari personal computer (PC). Secara khusus dari penelitian ini bertujuan untuk
menerjemahkan beberapa gambar vektor bidang 2 dimensi kedalam bentuk g-code. G-code
akan diimplementasikan pada software CNC.
Penelitian ini memiliki manfaat yang dapat membantu pekerjaan manusia dalam
design 2 dimensi sebagai masukan/input untuk melakukan kegiatan industri karena mesin
CNC dapat melakukan pekerjaan secara presisi, aman dan dapat melakukan perkerjaan
secara berulang dengan mengikuti pola tertentu seperti pemotongan sebuah gabus,
pengecatan dan kegiatan otomasi industri lainnya.
1.3 Manfaat
1. Bagi Pendidikan
Diharapkan robot drawing ini dapat membantu dalam pengetahuan kita bahwa
membantu pemahaman anak dalam belajar subjek sains, teknologi, teknik.
2. Bagi Masyarakat
Diharapkan robot drawing ini akan dapat membantu masyarakat dalam
perkerjaannya.
1.4 Batasan Masalah
Pembatasan masalah dimaksudkan untuk mempermudah pelaksanaan penelitian
maupun penulisan skripsi sehingga tidak terjadi kesalahan dalam menerjemahkan judul yang
dimaksud. Batasan masalah untuk penelitian ini adalah:
a. Daerah kerja ukuran A4.
b. Metode menggambar dua dimensi (gambar vektor) pada personal komputer.
c. Pada gambar 2 dimensi pada sumbu X Y Z.
d. Mikrokontroler arduino.
e. Inkscape mengubah gambar vektor menjadi file g-code.
f. CAMotics membaca dan mensimulasikan file g-code.
g. Processing 3 memproses program file g-code.
1.5 Metode Penelitian
1) Mempelajari buku-buku dan makalah dari pustaka yang berhubungan dengan
pembuatan Huruf atau gambar dua dimensi Inkscape dan pemrograman g-code.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 14
4
2) Pembuatan file g-code pada software inkscape.
3) Proses pengujian penelitian data. Dengan cara menguji file g-code yang dibuat
dengan software inksape untuk menerjemahkan gambar vektor menjadi bentuk g-
code.
4) Munguji motor stepper dan servo.
5) Desain gambar robot drawing dengan menggunakan software Sketchup .
6) Pembacaan file g-code dengan menggunakan CAMotics untuk diimplementasikan
pada robot drawing.
7) Perancangan sistem hardware, 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 Robot Drawing Pantograf
Arduino 2560
(Bagian Pengendali)
Personal Computer
(PC)
Inkscape
CAMotics
Motor
(Motor Stepper &
Motor Servo)
Pantograf
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 15
5
BAB II
DASAR TEORI
2.1 Mikrokontroler
Mikrokontroler adalah salah satu dari bagian dasar dari suatu sistem komputer.
Meskipun mempunyai bentuk yang jauh lebih kecil dari suatu komputer pribadi dan
komputer mainframe, mikrokontroler dibangun dari elemen-elemen dasar yang sama. Secara
sederhana, komputer akan menghasilkan output spesifik berdasarkan inputan yang diterima
dan program yang dikerjakan.
Seperti umumnya komputer, mikrokontroler adalah alat yang mengerjakan instruksi-
instruksi yang diberikan kepadanya. Artinya, bagian terpenting dan utama dari suatu sistem
terkomputerisasi adalah program itu sendiri yang dibuat oleh seorang programmer. Program
ini menginstruksikan komputer untuk melakukan jalinan yang panjang dari aksi-aksi
sederhana untuk melakukan tugas yang lebih kompleks yang diinginkan oleh programmer.
2.2 Arduino Mega 2560
Gambar 2. 1. Arduino Mega 2560 [3]
Arduino Mega2560 adalah papan mikrokontroler berbasiskan ATmega2560 (datasheet
ATmega2560). Arduino Mega2560 memiliki 54 pin digital input/output, dimana 15 pin
dapat digunakan sebagai output PWM, 16 pin sebagai input analog, dan 4 pin sebagai UART
(port serial hardware), 16 MHz kristal osilator, koneksi USB, jack power, header ICSP, dan
tombol reset. Ini semua yang diperlukan untuk mendukung mikrokontroler. Cukup dengan
menghubungkannya ke komputer melalui kabel USB atau power dihubungkan dengan
adaptor AC-DC atau baterai untuk mulai mengaktifkannya [3].
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 16
6
Arduino Mega2560 kompatibel dengan sebagian besar shield yang dirancang untuk
Arduino Duemilanove atau Arduino Diecimila. Arduino Mega2560 adalah versi terbaru
yang menggantikan versi Arduino Mega.
Dibawah ini adalah spesifikasi sederhana dari Arduino Mega2560:
Tabel 2. 1. Spesifikasi Arduino Mega2560
Mikrokontroler ATmega2560
Tegangan Operasi 5V
Input Voltage (disarankan) 7-12V
Input Voltage (limit) 6-20V
Pin Digital I/O 54 (yang 15 pin digunakan sebagai output PWM)
Pins Input Analog 16
Arus DC per pin I/O 40 mA
Arus DC untuk pin 3.3V 50 mA
Flash Memory 256 KB (8 KB digunakan untuk bootloader)
SRAM 8 KB
EEPROM 4 KB
Clock Speed 16 MHz
Arduino Mega2560 memiliki fitur-fitur baru berikut:
a. 10 pinout. Ditambahkan pin SDA dan pin SCL yang dekat dengan pin AREF dan dua
pin baru lainnya ditempatkan dekat dengan pin RESET, IOREF memungkinkan shield
untuk beradaptasi dengan tegangan yang tersedia pada papan. Di masa depan, shield
akan kompatibel baik dengan papan yang menggunakan AVR yang beroperasi dengan
5 Volt dan dengan Arduino Due yang beroperasi dengan tegangan 3.3 Volt. Dan ada
dua pin yang tidak terhubung, yang disediakan untuk tujuan masa depan.
b. Sirkuit RESET.
c. Chip ATmega16U2 menggantikan chip ATmega8U2.
Papan Arduino ATmega2560 dapat beroperasi dengan pasokan daya eksternal 6 Volt
sampai 20 Volt. Jika diberi tegangan kurang dari 7 Volt, maka, pin 5 Volt mungkin akan
menghasilkan tegangan kurang dari 5 Volt dan ini akan membuat papan menjadi tidak stabil.
Jika sumber tegangan menggunakan lebih dari 12 Volt, regulator tegangan akan mengalami
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 17
7
panas berlebihan dan bisa merusak papan. Rentang sumber tegangan yang dianjurkan adalah
7 Volt sampai 12 Volt. Selain itu, beberapa pin memiliki fungsi khusus :
a. Serial : 0 (RX) dan 1 (TX); Serial 1 : 19 (RX) dan 18 (TX); Serial 2 : 17 (RX) dan
16 (TX); Serial 3 : 15 (RX) dan 14 (TX). Digunakan untuk menerima (RX) dan
mengirimkan (TX) data serial TTL. Pin 0 dan 1 juga terhubung ke pin chip
ATmega16U2 Serial USB-to-TTL.
b. Eksternal Interupsi : Pin 2 (interrupt 0), pin 3 (interrupt 1), pin 18 (interrupt 5), pin
19 (interrupt 4), pin 20 (interrupt 3), dan pin 21 (interrupt 2). Pin ini dapat
dikonfigurasi untuk memicu sebuah interupsi pada nilai yang rendah, meningkat
atau menurun, atau perubah nilai.
c. SPI : Pin 50 (MISO), pin 51 (MOSI), pin 52 (SCK), pin 53 (SS). Pin ini mendukung
komunikasi SPI menggunakan perpustakaan SPI. Pin SPI juga terhubung dengan
header ICSP, yang secara fisik kompatibel dengan Arduino Uno, Arduino
Duemilanove dan Arduino Diecimila.
d. LED : Pin 13. Tersedia secara built-in pada papan Arduino ATmega2560. LED
terhubung ke pin digital 13. Ketika pin diset bernilai HIGH, maka LED menyala
(ON), dan ketika pin diset bernilai LOW, maka LED padam (OFF).
e. TWI : Pin 20 (SDA) dan pin 21 (SCL). Yang mendukung komunikasi TWI
menggunakan perpustakaan Wire. Perhatikan bahwa pin ini tidak di lokasi yang
sama dengan pin TWI pada Arduino Duemilanove atau Arduino Diecimila.
Arduino Mega2560 memiliki 16 pin sebagai analog input, yang masing-masing pin
menyediakan resolusi 10 bit (yaitu 1024 nilai yang berbeda). Secara default pin ini dapat
diukur/diatur dari Ground sampai dengan 5 Volt, juga memungkinkan untuk mengubah titik
jangkauan tertinggi atau terendah menggunakan pin AREF dan fungsi analogReference. Ada
beberapa pin lainnya yang tersedia, antara lain:
a. AREF : Referensi tegangan untuk input analog. Digunakan dengan fungsi analog
Reference.
b. RESET : Jalur LOW ini digunakan untuk me-reset (menghidupkan ulang)
mikrokontroler. Jalur ini biasanya digunakan untuk menambahkan tombol reset
pada shield yang menghalangi papan utama Arduino.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 18
8
2.3 Gambar Bitmap
Gambar bitmap merupakan duplikat atau tiruan persis dari gambar asli dalam bentuk
gambar digital. Gambar jenis ini tersusun dari sejumlah titik pixel (picture
element)/dot/point/titik koordinat yang ditempatkan pada lokasi-lokasi tertentu dengan nilai
warna tersendiri sehingga membentuk pola tertentu di layar komputer. Pola yang terbentuk
itulah yang menghasilkan atau menimbulkan kesan gambar. Pixel merupakan elemen
terkecil citra digital yang dapat dilihat mata. Semakin banyak jumlah pixel, berarti semakin
tinggi tingkat kerapatannya dan semakin halus gambar yang terbentuk. Akibatnya, semakin
besar pula ukuran file gambar tersebut. Banyaknya titik dalam 1 inchi dikenal dengan dpi
(dot per inchi). Anda dapat mengenali gambar bitmap dari file komputer yang berekstensi
.bmp, .jpg, .tfi, .gif, .png, .pix, .pcx, dan sebagainya. Berikut adalah contoh gambar Bitmap
pada gambar 2.2 [4].
Gambar 2. 2. Contoh Gambar Bitmap [4]
2.4 Gambar Vektor
Gambar Vektor adalah gambar yang tersusun oleh sekumpulan garis, kurva, dan
bidang tertentu dengan menggunakan serangkaian instruksi yang masing-masing
didefinisikan secara matematis. Setiap garis, kurva, dan bidang tertentu tersebut mempunyai
vektor atau atribut masing-masing berupa fill, stroke, dan node. Gambar vektor tidak
dipengaruhi oleh resolusi gambar atau titik pixel (dpi) seperti pada gambar bitmap [4].
Keluaran file dari jenis gambar vektor biasanya menyesuaikan dari jenis program yang
digunakan:
1. Corel Draw output filenya .cdr
2. Freehand output filenya .fh11
3. Illustrator output filenya .ai
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 19
9
Gambar 2. 3. Contoh Gambat Vektor [4]
2.5 Program mesin CNC
Pemrograman dengan mesin CNC, dapat dilakukan dengan 2 macam cara, yaitu:
a Pemrograman manual
Pemrograman dengan cara manual adalah pemrograman dengan cara memasukan data
ke-mesin dengan mengetik tombol-tombol masukan data melalui keyboard yang
terdapat pada pengendali mesin.
b Pemrograman otomatis
Pemrograman otomatis adalah pemrograman dengan memasukan data ke mesin
melalui perangkat lunak (disket, kaset, dan flashdisk, serta interface232) melalui
kontak layanan kaset yang tersedia pada panel pengendali mesin [2].
Secara umum, program NC memiliki konstruksi tertentu, yaitu kode atau perintah
pendahuluan dan perintah pembantu. Perintah pendahuluan umumnya menggunakan kode
G, sedangkan perintah pembantu menggunakan fungsi M. Program NC, selain kode G dan
M, di dalamnya terdiri dari sejumlah kode-kode perintah yang tersusun dalam bentuk
kombinasi huruf-huruf tertentu dan angka. Kode berupa huruf, misalnya N, T, S, F, H, I, J,
K, R, D, X, Y, Z, dan angka 0 sampai 9 disebut addres. Suatu kode huruf yang di
belakangnya diikuti angka (kombinasi huruf dan angka) disebut ”kata” (word). Gabungan
dari beberapa kata disebut ”blok”.
”Blok” merupakan gabungan dari beberapa kata yang membentuk satu tahapan
perintah, misalnya deretan melintang bergerak lurus sejauh 4 mm mendekati sumbu dengan
kecepatan 80 mm/menit. Di dalam sebuah program CNC, satu tahapan perintah ditulis dalam
satu baris, berarti ”blok” adalah gabungan beberapa kata yang ditulis dalam satu baris
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 20
10
program. Komputer (unit kontrol) mesin membaca dan menjalankan program per satu blok
bukan per kata.
Kode G ( “G-code” ) terbagi dalam 2 tipe:
1. Tipe “One-Shot G-code”
G-code akan aktif hanya dalam 1 blok saja (aktif hanya sekali). Jika masih
digunakan untuk Blok berikutnya, maka harus dipanggil lagi
2. Tipe “Modal G-code”
G-code akan aktif digunakan terus pada Blok-blok berikutnya sampai ada G-code
lain yang sama dalam satu grup dipanggil.
Model G-code antara lain:
G00, G01, (G02), (G03), G17, G18, G19, G20, G21, G40, G41, G42, G80, G81, G82,
G83, G90, G91
Berikut merupakan tabel macam-macam G-code:
Tabel 2. 2.Macam-macam G-code [6]
G-code Kegunaan
G00 Gerakan Lurus Cepat (tanpa pemakanan)
G01 Gerak Interpolasi Lurus (dengan pemakanan)
G02 Gerak Interpolasi Melingkar searah jarum jam
G03 Gerak Interpolasi Melingkar berlawanan arah jarum jam
G90 Perintah Absolut
G91 Perintah Inkremental
Untuk mengetahui lebih jelas fungsi dari G-code dapat dilihat dibawah ini:
1) G00, Perintah gerakan lurus cepat
G00 berfungsi untuk menempatkan (memposisikan) pahat secara cepat dan tidak
menyayat benda kerja. Semua sumbu bisa bergerak secara simultan sehingga
menghasilkan jalur lurus.
2) G01, Perintah gerakan interpolasi lurus
G01 berfungsi untuk menggerakkan pahat dari titik awal menuju titik akhir dengan
gerakan lurus.
3) G02 dan G03, Perintah gerakan interpolasi melingkar searah jarum jam dan
berlawanan jarum jam.
G02 dan G03 berfungsi untuk menggerakkan pahat dari titik awal ke titik akhir
mengikuti gerakan melingkar.
4) G90 dan G91, Perintah gerakan absolut dan gerakan incremental
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 21
11
Apabila di awal program CNC ditulis G90, maka pemosisian pahat yang diperintahkan
menggunakan kordinat absolut dari titik nol benda kerja. Titik nol benda kerja adalah
sebagai titik nol absolut atau (0,0,0). Berikut untuk memahami hal tersebut dapat
dilihat pada gambar dibawah:
Gambar 2. 4. Pengukuran Absolute dan incremental
G91 berarti sistem pengukuran yang digunakan menggunakan koordinat relative atau
incremental. 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 rutin (sub program).
Contoh Intruksi G-code pada gambar 2.5:
G1 X0 Y0 Z0 (Posisi Awal)
G1 X-26,12 Y74,09
M30 (Pena Turun)
G4 P150 (Delay 150ms)
G1 X-26,12 Y91,17
G1 X1,68 Y91,17
G1 X29,48 Y91,17
G1 X29,48 Y74,09
G1 X29,48 Y57,02
G1 X1,68 Y57,02
G1 X-26,12 Y57,02 Gambar 2. 5. Intruksi G-code
G1 X-26,12 Y74,09
M300 S50 (Pen Up)
G4 P150
G1 X0 Y0 (Posisi Awal)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 22
12
2.6 Inkscape
Inkscape adalah sebuah perangkat lunak editor gambar vektor yang bersifat bebas
terbuka dibawah lisensi GNU GPL. Tujuan utama dari Inkscape adalah membuat perangkat
grafik mutakhir yang memenuhi standar XML, SVG, dan CSS.
Inkscape tersedia untuk sistem operasi Windows, Macintosh, dan Linux. Program dan
kode sumber (source kode) Inkscape tersedia untuk umum pada situs resmi Inkscape
sehingga siapapun dapat mempelajari dan mengembangkannya [6].
Inkscape dapat digunakan untuk membuat gambar vektor untuk berbagai kebutuhan,
misalnya untuk membuat gambar ilustrasi pada web, ikon untuk smartphone, gambar kartun
atau animasi, membuat garis sederhana, kaligrafi, logo, brosur, dan masih banyak lagi.
Format gambar yang dibuat menggunakan Inkscape sangat handal dan dapat
disebarkan melalui internet dengan mudah karena ukurannya lebih kecil dibandingkan
dengan format yang dibuat menggunakan aplikasi lain yang sejenis. Dukungan untuk
berbagai format telah ditambahkan termasuk untuk berbagai browser dan smartphone masa
kini.
Inkscape mendukung gambar dengan bentuk biasa (misal; persegi panjang dan
lingkaran), garis, dan teks. Setiap object dapat dimodifikasi dan diberi warna sendiri.
Hiperlink dapat ditambahkan sehingga gambar dapat digunakan dalam web browser karena
program Inkscape tujuannya untuk membuat gambar dengan format XML, SVG, dan
kampatible dengan script CSS. Saat ini Inkscape masih terus dikembangkan, hal ini dapat
dilihat dengan adanya penambahan fitur dan antarmuka baru secara rutin pada setiap rilis
versi baru.
Gambar 2. 6. Inkscape
Masukkan pada alat penelitian ini berupa gambar digital. Gambar yang dihasilkan
harus memiliki kemiripan dengan gambar digital. Software yang akan digunakan untuk
mendesain gambar adalah inkscape. Inkscape adalah sebuah perangkat lunak editor gambar
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 23
13
vektor yang bersifat Open-Source. Gambar digital yang akan digunakan sebagai masukkan
harus terlebih dahulu di konversi menjadi g-code. G-code adalah kode posisi untuk alat agar
alat bergerak ke posisi yang seharusnya. Untuk mengkonversi gambar menjadi g-code
dibutuhkan sebuah software. Untuk mengubah gambar menjadi g-code, inkscape
membutuhkan plugin tambahan bernama gcodetools. Dengan plugin tersebut gambar yang
telah didesain menggunakan inkscape dapat dibuah menjadi g-code. CAMotics adalah
software yang diperlukan untuk mengirim g-code ke mikrokontroler.
2.7 CAMotics
CAMotics dapat digunakan untuk mensimulasikan program 3-axis G-code untuk CNC
dan memvisualisasikan hasilnya dalam 3D. CAMOTOS berjalan di Linux, OS-X atau
Windows. CAMotics bertujuan untuk menjadi platform simulasi CNC yang berguna untuk
komunitas DIY dan sumber terbuka. CAMOTIC memfasilitasi tugas simulasi spesifik
seperti ukiran dan pemotongan papan PCB serta teknik simulasi yang lebih canggih dan
antarmuka pemrograman. CAMOTIC digunakan untuk menulis kode CNC dan
memvisualisasikan gerakan yang dihasilkan dari alat dan/atau benda kerja [7].
Gambar 2. 7. CAMotics
2.8 Motor Stepper
Motor Stepper merupakan salah satu jenis motor yang banyak digunakan saat ini
sebagai aktuator, misalnya sebagai penggerak head baca/tulis pada disk drive yang akan
menetapkan posisi head baca/tulis di atas permukaan piringan disket, penggerak head pada
printer dan line feed control, dan yang lebih populer saat ini adalah aplikasi dalam bidang
robotik. Dengan bantuan mikroprosesor atau mikrokontroler perputaran motor dapat
dikontrol dengan tepat dan terprogram [8].
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 24
14
Gambar 2. 8. Motor Stepper
Motor stepper memiliki 3 jenis yaitu tipe Variable reluctance (VR), tipe permanent
magnet (PM), dan tipe hybrid (HB).
1. Motor stepper tipe Variable reluctance (VR)
Motor stepper jenis ini telah lama ada dan merupakan jenis motor yang secara
struktural paling mudah untuk dipahami. Motor ini terdiri atas sebuah rotor besi lunak
dengan beberapa gerigi dan sebuah lilitan stator. Ketika lilitan stator diberi energi
dengan arus DC, kutub-kutubnya menjadi termagnetasi. Perputaran terjadi ketika gigi-
gigi rotor tertarik oleh kutub-kutub stator. Berikut ini adalah penampang melintang
dari motor stepper tipe variable reluctance (VR) yang ditunjukkan pada gambar 2.8:
Gambar 2. 9. Penampang Melintang Dari Motor Stepper Tipe Variable Reluctance (VR)
2. Motor stepper tipe Permanent Magnet (PM)
Motor stepper jenis ini memiliki rotor yang berbentuk seperti kaleng bundar (tin can)
yang terdiri atas lapisan magnet permanen yang diselang-seling dengan kutub yang
berlawanan (perhatikan gambar 2.9). Dengan adanya magnet permanen, maka
intensitas fluks magnet dalam motor ini akan meningkat sehingga dapat menghasilkan
torsi yang lebih besar. Motor jenis ini biasanya memiliki resolusi langkah (step) yang
rendah yaitu antara 7,50 hingga 150 per langkah atau 48 hingga 24 langkah setiap
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 25
15
putarannya. Berikut ini adalah ilustrasi sederhana dari motor stepper tipe permanent
magnet:
Gambar 2. 10. Ilustrasi Sederhana Dari Motor Stepper Tipe Permanent Magnet (PM)
3. Motor stepper tipe Hybrid (HB)
Motor stepper tipe hibrid memiliki struktur yang merupakan kombinasi dari kedua tipe
motor stepper sebelumnya. Motor stepper tipe hibrid memiliki gigi-gigi seperti pada
motor tipe VR dan juga memiliki magnet permanen yang tersusun secara aksial pada
batang porosnya seperti motor tipe PM. Motor tipe ini paling banyak digunkan dalam
berbagai aplikasi karena kinerja lebih baik. Motor tipe hibrid dapat menghasilkan
resolusi langkah yang tinggi yaitu antara 3,60 hingga 0,90 per langkah atau 100-400
langkah setiap putarannya. Berikut ini adalah penampang melintang dari motor stepper
tipe hibrid:
Gambar 2. 11. Penampang Melintang Dari Motor Stepper Tipe Hybrid
Berdasarkan metode perancangan rangkain pengendalinya, motor stepper dapat dibagi
menjadi jenis unipolar dan bipolar. Rangkaian pengendali motor stepper unipolar lebih
mudah dirancang karena hanya memerlukan satu switch / transistor setiap lilitannya. Untuk
menjalankan dan menghentikan motor ini cukup dengan menerapkan pulsa digital yang
hanya terdiri atas tegangan positif dan nol (ground) pada salah satu terminal lilitan (wound)
motor sementara terminal lainnya dicatu dengan tegangan positif konstan (VM) pada bagian
tengah (center tap) dari lilitan (perhatikan gambar 2.11)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 26
16
.
Gambar 2. 12. Motor Stepper Dengan Lilitan Unipolar
Untuk motor stepper dengan lilitan bipolar, diperlukan sinyal pulsa yang berubah-
ubah dari positif ke negatif dan sebaliknya. Jadi pada setiap terminal lilitan (A & B)
harus dihubungkan dengan sinyal yang mengayun dari positif ke negatif dan
sebaliknya (perhatikan gambar 2.12). Karena itu dibutuhkan rangkaian pengendali
yang agak lebih kompleks daripada rangkaian pengendali untuk motor unipolar. Motor
stepper bipolar memiliki keunggulan dibandingkan dengan motor stepper unipolar
dalam hal torsi yang lebih besar untuk ukuran yang sama.
Gambar 2. 13. Motor Stepper Dengan Lilitan Bipolar
Motor stepper yang digunakan adalah tipe nema 17-2 phase hybrid stepper motor.
Motor stepper ini memiliki spesifikasi sebagai berikut. Memiliki step angel sebesar 1,8
derajat dengan voltase 2,8 V dan arus 1,7 A memiliki holding torque sebesar 40 N.cm dengan
berat 0,28 Kg. Pada dasarnya motor stepper bergerak karena adanya pulsa masukkan dari
driver motor stepper.
Motor stepper umumnya mempunyai mode pergerakan full step dan half step. Tabel
2.3 merupakan tabel tegangan pulsa masukan untuk mode full step dan tabel 2.4 merupakan
tabel tegangan pulsa masukan mode half step. Pada mode full step suatu titik pada sebuah
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 27
17
kutub magnet rotor akan mendapat tarikan medan magnet stator pada lilitan yang sama
setelah step ke-4. Sedangkan mode half step suatu titik pada sebuah kutub magnet rotor akan
mendapat tarikan medan magnet stator pada lilitan yang sama setelah step ke-8.
Tabel 2. 3.Tegangan pulsa full step Tabel 2. 4.Tegangan pulsa half step
2.9 Driver Motor
Gambar 2. 14. Motor Driver Stepper
DRV8825 stepper motor driver seperti yang ditunujukan gambar 2.8. adalah modul
penggerak yang digunakan untuk mengendalikan motor stepper mulai dari full step sampai
1/32 step. Kapasitas output driver dari 8,2 Volt sampai 45 Volt dan arus mencapai 1,5 A.
2.10 Motor Servo
Motor servo adalah sebuah motor dengan sistem closed feedback di mana posisi dari
motor akan diinformasikan kembali ke rangkaian kontrol yang ada di dalam motor servo.
Motor ini terdiri dari sebuah motor, serangkaian gear, potensiometer dan rangkaian kontrol.
Potensiometer berfungsi untuk menentukan batas sudut dari putaran servo. Sedangkan sudut
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 28
18
dari sumbu motor servo diatur berdasarkan lebar pulsa yang dikirim melalui kaki sinyal dari
kabel motor.
Motor servo biasa digunakan dalam aplikasi-aplikasi di industri, selain itu juga
digunakan dalam berbagai aplikasi lain seperti pada mobil mainan radio kontrol, robot,
pesawat, dan lain sebagainya.
Ada dua jenis motor servo, yaitu motor servo AC dan DC. Motor servo AC lebih dapat
menangani arus yang tinggi atau beban berat, sehingga sering diaplikasikan pada mesin-
mesin industri. Sedangkan motor servo DC biasanya lebih cocok untuk digunakan pada
aplikasi-aplikasi yang lebih kecil. Dan bila dibedakan menurut rotasinya, umumnya terdapat
dua jenis motor servo yang dan terdapat di pasaran, yaitu motor servo rotation 180⁰ dan
servo rotation continuous:
1) Motor servo standard (servo rotation 180⁰) adalah jenis yang paling umum dari
motor servo, dimana putaran poros outputnya terbatas hanya 90⁰ kearah kanan dan
90⁰ kearah kiri. Dengan kata lain total putarannya hanya setengah lingkaran atau
180⁰.
2) Motor servo rotation continuous merupakan jenis motor servo yang sebenarnya
sama dengan jenis servo standard, hanya saja perputaran porosnya tanpa batasan
atau dengan kata lain dapat berputar terus, baik ke arah kanan maupun kiri.
Gambar 2. 15. Prinsip kerja motor servo
Prinsip kerja motor servo, Motor servo dikendalikan dengan memberikan sinyal
modulasi lebar pulsa (Pulse Wide Modulation / PWM) melalui kabel kontrol. Lebar pulsa
sinyal kontrol yang diberikan akan menentukan posisi sudut putaran dari poros motor servo.
Sebagai contoh, lebar pulsa dengan waktu 1,5 ms (mili detik) akan memutar poros motor
servo ke posisi sudut 90⁰. Bila pulsa lebih pendek dari 1,5 ms maka akan berputar ke arah
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 29
19
posisi 0⁰ atau ke kiri (berlawanan dengan arah jarum jam), sedangkan bila pulsa yang
diberikan lebih lama dari 1,5 ms maka poros motor servo akan berputar ke arah posisi 180⁰
atau ke kanan (searah jarum jam).
Gambar 2. 16. Motor Servo
2.11 Kinematika
Kinematika adalah ilmu tentang gerak tanpa memperhatikan penyebabnya salah
satunya adalah gaya yang mempengaruhinya, berhubungan dengan geometri dari gerakan.
Dalam mengkaji kinematik perlu dilakukan deskripsi analisis dari penempatan posisi secara
spasial dari lengan robot sebagai sebuah fungsi waktu. Secara garis besar, kinematika ini
membahas tentang hubungan antara derajat kebebasan maisng-masing joint, posisi serta
orientasi dari end-effector pada lengan robot [9].
2.12 Invers Kinematika
Invers kinematika adalah bagaimana end-effector mencapai posisi objek dengan baik
berdasarkan peletakan referensi koordinat frame yang sudah ditentukan [9].
L13 = √(𝑥32 + 𝑦32); (2-1)
L53 = √((𝑥3 + 𝐿5)2 + 𝑦32) (2-2)
α1 = (𝐶𝑜𝑠−1 (𝐿12+𝐿132−𝐿22)
(2∗𝐿1∗𝐿13)) (2-3)
β1 = 𝑡𝑎𝑛−1(𝑦3, −𝑥3); (2-4)
θ1 = ρ - α1 - β1; (2-5)
α5 = 𝑡𝑎𝑛−1(𝑦3, 𝑥3 + 𝐿5); (2-6)
β5 = 𝐶𝑜𝑠−1 ((𝐿532+𝐿42−𝐿32)
(2∗𝐿53∗𝐿4)) ; (2-7)
θ5 = α5 + β5; (2-8)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 30
20
Gambar 2. 17. Kinematika Pantograf
2.12.1 Trigonometri
Trigonometri matematika mempunyai tiga fungsi yang pertama ialah sinus yang
merupakan perbandingan sisi segitiga (segitiga siku – siku atau salah satu sudut segitiga itu
90°) yang ada di depan sudut dengan sisi miring, lalu fungsi trigonometri kedua ialah kosinus
atau cosinus yang merupakan perbandingan sisi segitiga yang terletak disudut dengan sisi
miring dan fungsi dasar trigonometri matematika yang ketiga ialah tangen yang merupakan
perbandingan sisi segitiga yang ada di depan sudut dengan sisi segitiga yang terletak disudut.
𝑠𝑖𝑛𝐴 =𝑎
𝑏
𝑐𝑜𝑠𝐴 =𝑐
𝑏
𝑡𝑎𝑛𝐴 =𝑠𝑖𝑛𝐴
𝑐𝑜𝑠𝐴=
𝑎
𝑐
𝑐𝑜𝑠𝛼 =𝑏2+𝑐2−𝑎2
2𝑏𝑐
2.12.2 Pitagoras
Gambar 2. 18. Segitiga Siku-siku
L1=L12
L2=L23 L3=L34
L4=L45
L5=L15
L13 L53
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 31
21
Segitiga di atas merupakan segitiga siku-siku yang memiliki satu sisi tegak (BC), satu
sisi mendatar (AB), dan satu sisi miring (AC). Dalil pythagoras atau rumus pythagoras
berfungsi untuk mencari salah satu sisi dengan kedua sisi diketahui.
𝑎 = √𝑏2 − 𝑐2
𝑏 = √𝑎2 + 𝑐2
𝑐 = √𝑏2 − 𝑎2
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 32
22
BAB III
RANCANGAN PENELITIAN
Bab ini akan menjelaskan perancangan pembuatan perangkat lunak (software) untuk
masukan (input) gerakan lengan robot. Masukan (input) untuk gerakan lengan robot yaitu
berupa gambar vektor bidang 2D yang diubah menjadi file g-code. Perangkat lunak
(software) yang digunakan untuk mengubah gambar vektor menjadi g-code adalah inkscape.
3.1 Blok Diagram
Sistem ini terbagi menjadi 3 bagian utama yang akan dikerjakan blok diagram
keseluruhan sistem dapat dilihat pada gambar 3.1 dibawah ini:
Gambar 3. 1. Diagram Blok Keseluruhan Sistem
Dalam blok diagram ini terdapat 3 bagian utama sistem yang memiliki peran masing-
masing. Pada bagian pertama yaitu input meliputi proses pembuatan desain (gambar vektor),
g-code generator, hingga menjadi g-code. Pada pengolahan gambar vektor menjadi g-code
menggunakan software inkscape. Kemudian gambar dari olahan inkscape dibaca nilai g-
code nya menggunakan software CAMotics. Bagian kedua yaitu controller meliputi proses
pengolahan data g-code dikirim ke driver motor untuk menggerakkan motor stepper. Motor
servo digunakan untuk mengangkat pena saat perpindahan titik. Dan yang terakhir output
meliputi desain rangka dan kinematika 2 lengan robot.
PC
Input
Arduino
Driver Motor
Servo
Stepper
Kontroler
Pantograf
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 33
23
3.2 Perancangan Perangkat Lunak (Software)
Perangkat yang digunakan untuk mengubah gambar vektor menjadi file g-code adalah
inkscape (software). Secara umum diagram alir dari perangkat lunak (software) inkscape
dapat dilihat pada gambar 3.2 berikut ini.
Gambar 3. 2. Diagram alir secara umum perangkat lunak (software)
Untuk pengolahan file g-code harus menentukan gambar vektor terlebih dahulu yang
nantinya akan didesain. Gambar tersebut dimasukkan ke dalam software inkscape untuk
diolah menjadi file g-code. Pengolahan tersebut dilakukan dengan cara meng-scan gambar.
Tujuan dari inkscape adalah menjadi perangkat grafik yang memiliki standar XML, SVG,
dan CSS. Format grafis vektor utama inkscape adalah SVG (Scalable Vector Graphics).
Kemudian file g-code tersebut diolah lagi menggunakan software CAMotics untuk membaca
nilai g-code nya. Dengan CAMotics dapat melihat jalur pergerakan alat dengan mensimulasi
Selesai
Mulai
Ambil
Gambar
Vektor
Inkscape
CAMotics
Mikrokonroller
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 34
24
program g-code 3-axis dan memvisualisasikan hasil kedalam 3D. hasil dari CAMotics di
transfer ke mikrokontroller untuk di program nilai g-code nya dikirim ke driver motor
sehingga dapat menggerakan motor stepper.
Gambar 3.4 merupakan diagram alir perancangan perangkat lunak pada
mikrokontroler.
Gambar 3. 3. Diagram alir pada mikrokontroler
Diagram alir menggambarkan cara kerja program plotter robot drawing yang dibuat.
Program diawali dengan inisialisasi. File g-code digunakan untuk mengatur motor stepper
supaya dapat menggerakkan lengan robot sesuai desain yang diinginkan. Motor stepper
diprogram terlebih dahulu untuk mengendalikan gerakan dengan memberikan pulsa
masukan tujuannya untuk kalibrasi posisi motor stepper.
3.3 Pantograf
Pantograf adalah instrumen geometri yang digunakan untuk mereproduksi gambar
geometrik yang diberikan atau bidang dari berbagai bentuk, pada skala yang diperbesar atau
diperkecil.
Pantograf dapat mengubah ukuran gambar sesuai dengan ukuran yang diinginkan.
Pada dasarnya, kerja pantograf berdasarkan jajaran genjang. Tiga dari empat sisi jajaran
Mulai
Inisialisasi
Baca G-code
Gerakan Stepper
Selesai
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 35
25
genjang a, b dan c mempunyai skala faktor yang sama. Skala pada ketiga sisi tersebut dapat
diubah ubah sesuai kebutuhan, yaitu memperbesar atau memperkecil peta.
3.4 Perancangan Perangkat Keras (Hardware)
Secara garis besar perancangan perangkat keras (hardware) terdiri dari perancangan
mekanik robot. Yang pertama adalah merancang lengan robot secara matematis. Tujuannya
adalah agar pergerakan mekanik lengan robot dapat terukur dengan baik. yang kedua
perancangan lengan robot menggunakan perhitungan invers kinematika. Kemudian desain
mekanik lengan robot menggunakan motor stepper dan motor servo secara lengkap.
3.4.1 Perancangan Mekanik Robot
Secara garis besar perancangan perangkat keras (hardware) untuk menyusun sebuah
sistem pada perancangan mekanik pantograf digerakkan oleh dua buah motor stepper dan
satu buah servo untuk mengangkat pen. Desain mekanik lengan robot dapat dilihat pada
gambar 3.4. panjang lengan masing-masing adalah 30 cm. Gambar 3.5. dan 3.6. merupakan
gambar tampak atas dan tambak bawah.
Bagian-bagian mekanik pada robot drawing:
1. Motor stepper 1
2. Motor stepper 2
3. Lengan 1
4. Lengan 2
5. Lengan 3
6. Lengan 4
7. Pena
8. Motor servo
Gambar 3. 4. Tampilan Keseluruhan Desain 3D Mekanik Pantograf
7
1 2
3
4 5
6
8
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 36
26
Gambar 3. 5. Desain 3D Mekanik Pantograf Tampak Atas
Gambar 3. 6. Desain 3D Mekanik Pantograf Tampak Bawah
Pada gambar 3.7. dan 3.8. merupakan penjelasan rumus yang akan digunakan untuk
mengetahui sudut, memperlihatkan sudut β1dan β5 yang merupakan perubahan sudut yang
terjadi untuk mencapai koordinat yang dituju:
Gambar 3. 7. Sudut β1 Gambar 3. 8. Sudut β5
Nilai β1 didapat dari 𝛽1 = 𝑡𝑎𝑛−1 (𝑦3
−𝑥3)
Nilai β5 dapat dicari dengan menggunakan hukum cosinus yaitu;
𝑐𝑜𝑠𝛼 =𝑏2+𝑐2−𝑎2
2𝑏𝑐 ; jadi 𝑐𝑜𝑠𝛽5 =
𝑃=𝐿352+𝐿452−𝐿342
2×𝐿35×𝐿45
P1
β1
L1
P2
P3
L2
L13
β5 L4
P5
L3
P3
P4
L35
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 37
27
Sehingga β5 dapat dijabarkan sebagai berikut:
𝛽5 = cos−1 ((𝐿532+𝐿42−𝐿32)
(2∗𝐿53∗𝐿4))
Berikut merupakan contoh perhitungan desain gambar kotak untuk mengetahui sudut,
dengan menggunakan rumus invers kinematika. Nilai x dan y diperoleh dari file g-code :
𝐿13 = √𝑥2 + 𝑦2
= √1,682 + 57,022
𝐿13 = 57,04 𝑐𝑚
𝐿53 = √((𝑥3 + 𝐿5)2 + 𝑦32)
= √((1,68 + 10)2 + 57,022)
𝐿53 = 58,20 𝑐𝑚
𝛼1 = (cos−1 (𝐿12+𝐿132−𝐿22)
(2∗𝐿1∗𝐿13))
= (cos−1 (302+57,042−302)
(2∗30∗57,04))
𝛼1 = 18,07°
𝛽1 = tan−1 (𝑦3
−𝑥3)
= tan−1 (57,04
−1,68)
𝛽1 = −88,31°
𝜃1 = 𝜋 − 𝛼1 − 𝛽1
= 𝜋 − 18,07 − (−88,31)
𝜃1 = 79,3°
𝛼5 = tan−1 (𝑦3
𝑥3+𝐿5)
= tan−1 (57,02
1,68+10)
𝛼5 = 60,94°
𝛽5 = cos−1 ((𝐿532+𝐿42−𝐿32)
(2∗𝐿53∗𝐿4))
= cos−1 ((58,202+302−302)
(2∗11,56∗30))
𝛽5 = 14,07°
𝜃5 = 𝛼5 + 𝛽5
= 60,94 + 14,07
𝜃5 = 75,01°
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 38
28
Gambar 3. 9. Tampilan koordinat sumbu axis (X,Y) dan Jarak Daerah Kerja Lengan Robot
Pantograf
Pada Gambar 3.9 menunjukkan tampilan sumbu koordinat prototype lengan robot
pantograf penggambar dua dimensi untuk melakukan gerakkan rotasi, yaitu rotasi terhadap
sumbu x, y. Gambar 3.9 juga menampilkan jarak antara pangkal lengan robot yang diukur
dari motor stepper hingga menuju pen holder yaitu sejauh 55 cm. jarak tersebut digunakan
untuk menentukan posisi titik referensi sebagai acuan lengan robot untuk menggambar
bidang dua dimensi di kertas A3.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 39
29
BAB IV
HASIL DAN PEMBAHASAN
Bab ini menjelaskan tentang hasil keseluruhan sistem pada blok diagram seperti pada
bab 3 dan pengamatan dari software pengubah gambar vektor menjadi perintah gerakan
robot dalam bentuk g-code. Hasil pengamatan ini akan di bagi menjadi perancangan
perangkat keras, perangkat lunak dan hasil pengamatan.
4.1 Perancangan Perangkat Keras
Pada hasil perancangan perangkat keras akan menjelaskan tentang bentuk mekanik
sistem lengan robot, komponen elektrik sistem lengan robot dan pengujian gerakkan
mekanik lengan robot. Bentuk mekanik meliputi tampilan keseluruhan lengan robot plotter
robot drawing. Pada komponen elektrik menunjukkan komponen-komponen pengendali
motor.
4.1.1 Bentuk Mekanik Sistem Lengan Robot
Tampilan keseluruhan lengan robot plotter robot drawing ditunjukkan pada gambar
4.1.
Gambar 4. 1. Mekanik Plotter Robot Drawing
Mekanik plotter robot drawing yang terdiri dari base, pantograf, power supply dan
area kerja. Media gambar menggunakan kertas ukuran A4. Bagian ruas lengan terbuat dari
bahan akrilik bening dengan ketebalan 5 mm dan panjang masing-masing 30cm.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 40
30
Bagian paling ujung adalah penholder yang digunakan untuk meletakkan bolpoin yang
merupakan end effector dari plotter robot drawing. Ukuran lubang pada penholder dapat di
atur sesuai dengan ukuran bolpoin yang digunakan.
Pada bagian pengolahan program terdapat driver motor yang berfungsi sebagai
pengendali motor stepper dengan masukan dari arduino dan output menggerakkan motor
stepper. Modul driver stepper menggunakan jenis DRV8825 dengan tegangan 8,2V-45V
dan arus mencapai 1,5A. Menggunakan power supply dikarenakan sumber tegangan pada
arduino tidak cukup untuk menggerakkan motor stepper. Power supply digunakan untuk
memberikan catu daya pada motor stepper dengan tegangan 0-12V dan arus 30A.
Gambar 4. 2. Posisi Motor Stepper
Posisi motor stepper secara mekanik ditampilkan pada gambar 4.2. Motor stepper diletakkan
dibawah base untuk menggerakkan link (pantograf) dan pully belt berfungsi untuk
meminimalisir pergerakan lengan. Pada penelitian ini menggunakan dua motor stepper
nema17 (17HS4401). Pemilihan motor stepper nema17 dikarenakan ukuran stepper yang
umum digunakan dalam 3D print, cnc dan x,y plotter, selain itu juga motor stepper mampu
bergerak sesuai posisi yang diinginkan. Motor stepper akan menggerakkan link (pantograf)
terhadap sumbu x,dan sumbu y.
Motor servo secara mekanik dapat dilihat pada gambar 4.3. Motor servo yang
diletakkan dibawah lengan bertujuan untuk mengangkat bolpoin. Hal ini bertujuan untuk
pergeseran titik atau bergerak terhadap sumbu z. motor servo yang digunakkan pada
penelitian ini motor servo Tower Pro MG90S dan sudah disesuaikan dengan ketersediaan di
pasaran dan tipe gear metal yang memiliki kemampuan mengangkat lengan robot dan
gearboxnya lebih awet sehingga aman digunakkan berulang-ulang.
Stepper
1
Stepper
2
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 41
31
Gambar 4. 3. Posisi Motor Servo
4.1.2 Komponen Elektrik Sistem Lengan Robot
Rangkaian elektrik sistem pengendali lengann robot ditunjukkan pada gambar 4.2
Gambar 4. 4. Mekanik Plotter Robot Drawing
Rangkaian elektrik sistem pengendali plotter robot drawing terdiri dari:
1. Board arduino mega 2560 (Mikrokontroler)
2. Ramps 1.6 (cnc shields)
3. Driver DRV8825 (Stepper kontroler)
4. Kabel USB (Komunikasi serial mikrokontroler dengan pc)
5. Output port ke motor stepper
6. Output port ke motor servo
7. Terminal port dari power supply
Mikrokontroler arduino mega 2560 melakukan komunikasi serial dengan pc melalui
kabel usb. Selain untuk komunikasi serial, kabel usb juga digunakan untuk aktivitas upload
dan download program. Ramps 1.6 terhubung dengan board arduino mega 2560 dengan cara
5
1
7
3 2
6
4
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 42
32
stackkabel/kaki-kaki ramps ditancapkan ke port arduino mega 2560, sebagai koneksi untuk
output port ke motor stepper dan motor servo. Ramps 1.6 mendapatkan power supply
eksternal dengan tegangan 12 volt dan arus 30 ampere untuk menggerakkan motor stepper.
Motor stepper memerlukan stepper kontroler atau driver untuk memberikan daya pada
tiap fase dalam waktu atau urutan yang tepat untuk membuat motor berputar. Motor stepper
tidak bisa bekerja sesuai fungsinya dengan cara memberikan power supply langsung.
Mikrokontroler arduino sebagai sumber pulsa listrik untuk driver, driver bekerja sebagai
perangkat yang mengatur short power fase/lilitan dimotor stepper sekaligus sumber listrik
dengan volt dan ampere yang cukup untuk motor. Driver yang digunakan adalah driver
DRV8825 yang dihubungkan ke pin stepper motor driver pada ramps 1.6. output port yang
digunakan pada rangkaian elektrik sistem pengendali lengan robot sebanyak dua port untuk
menggerakkan motor stepper dan satu port untuk menggerakkan motor servo.
4.1.3 Pengujian Gerakan Mekanik Lengan Robot
Pengujian gerakan mekanik lengan robot bertujuan untuk mengetahui besarnya sudut
pergerakan motor stepper untuk mencapai suatu titik pada koordinat tertentu. Metode yang
digunakan dalam pengujian ini adalah membandingkan hasil perhitungan sudut secara
matematis dengan hasil gerakan motor stepper. Pengujian gerakan mekanik lengan robot
secara matematis menggunakan metode perhitungan invers knimatika yang mengacu pada
persamaan (2-1) sampai persamaan (2-8). Pengujian ini dilakukan dengan beberapa titik
referensi untuk gambar kotak, segitiga, dan lingkaran. Tabel 4.1 menunjukkan hasil
perhitungan inverse kinematics menggunakan metode geometri pada titik referensi kotak,
segitiga, dan lingkaran. Nilai titik koordinat dapat dilihat pada lampiran L8,L9, dan L10.
Tabel 4. 1. perhitungan inverse kinematik dengan metode geometri pada titik referensi
Sudut aktual (pengujian) diperoleh dari hasil gerakkan motor stepper pada pantograf
dengan melakukan pengukuran besar sudut menggunakan busur derajat. Besar sudut
Titik referensi koordinat
Sudut pergerakan
lengan (o)
x y z Stepper 1 Stepper 2
Kotak 34,2 39,7 0,1 200 50
Segitiga 25,8 23 0,1 167 77
lingkaran 49,4 17 0,1 134 31
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 43
33
pengujian yang dihasilkan menggunakan busur derajat seperti pada gambar 4.5 dan hasil
yang diperoleh ditunjukkan pada tabel 4.2 dan lampiran L1, L2, dan L3.
Gambar 4. 5. Cara Pengukuran Sudut Menggunakan Busur Derajat
Data yang diperoleh dari perhitungan matematis (inverse kinematics) dan hasil
pengamatan sudut menggunakan busur derajat dihitung nilai % Errornya untuk
mengetahui besarnya perbedaan yang terjadi. Secara perhitungan dan pengujian nilai %
Error diperoleh dengan cara sebagai berikut:
% 𝐸𝑟𝑟𝑜𝑟 = 𝑠𝑢𝑑𝑢𝑡 𝑝𝑒𝑟ℎ𝑖𝑡𝑢𝑛𝑔𝑎𝑛 − 𝑠𝑢𝑑𝑢𝑡 𝑝𝑒𝑛𝑔𝑢𝑗𝑖𝑎𝑛
𝑠𝑢𝑑𝑢𝑡 𝑝𝑒𝑟ℎ𝑖𝑡𝑢𝑛𝑔𝑎𝑛× 100%
Tabel 4. 2. Hasil Sudut Pengujian Dan Perhitungan Pada Gambar Bidang 2 Dimensi
Dari hasil pengamatan pada tabel 4.2 dapat dilihat % Error pada pengujian gambar
kotak, segitiga, dan lingkaran memiliki % Error yang bervariasi. Hal ini disebabkan karena
dalam proses pembuatan gambar yang belum sempurna dan mekanik pada lengan robot yang
masih belum presisi dan peletakan busur derajat untuk mengukur sudut aktual pada stepper
Gambar
Bidang 2D
Sudut Perhitungan Sudut Pengujian Delta
Stepper 1 Stepper 2 Stepper 1 Stepper 2 Stepper 1 Stepper 2
Kotak 200 50 170 66 30 16
Segitiga 167 77 168 61 1 16
Lingkaran 134 31 160 68 26 37
% Error kotak Segitiga Lingkaran
Stepper 1 15% 0.5% 19,4%
Stepper 2 32% 20,8% 54%
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 44
34
1 dan stepper 2. Dalam perbedaan sudut pengujian dan perhitungan selain kurang kepresisian
mekanik disebabkan juga dalam pembulatan sudut pada perhitungan.
4.2 Analisa Dan Pembahasan Perangkat Lunak
Perancangan perangkat lunak terdiri dari pengolahan di dalam processing 3 dan
arduino IDE yang berkomunikasi secara serial menggunakan kabel usb. Perintah untuk
menggambar dilakukan di software arduino Mega2560 untuk pembacaan g-code yang
nantinya perintah-perintah tersebut untuk menggerakkan lengan robot dilakukan di software
processing 3. Data serial yang dikirim berupa pulsa-pulsa yang dapat menggerakkan motor
stepper.
4.2.1. Pembahasan Program Pada Software Arduino Mega2560
Pada penelitian dengan sistem lengan robot pantograf penggambar bidang 2 dimensi
software Arduino Mega2560 digunakan untuk menulis program, melakukan pembacaan data
serial. Dan melakukan pengiriman data berupa pulsa-pulsa digital ke modul ramps 1.6 untuk
menggerakkan stepper. Program yang ditulis di arduino Mega2560 selain pembacaan dan
pengiriman data.
Gambar 4. 6. Tampilan Software Arduino Mega2560
Sebelum melakukan penulisan program utama untuk menjalankan sistem, seluruh
fungsi dan variable yang digunakan dalam proses pengoperasian program harus
didefinisikan/ dideklarasikan terlebih dahulu. Pendeklarasian fungsi dan variable pada
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 45
35
sistem lengan robot ini merupakan program inisialisasi. Inisialisasi pada sistem ini adalah
inisialisasi library driver motor stepper dan inisialisasi motor servo yang digunakan.
Gambar 4. 7. Program Inisialisasi Motor Stepper Dan Motor Servo
Pada gambar 4.7 merupakan program inisialisasi motor stepper dan motor servo untuk
menggerakkan lengan robot pantograf untuk menggambar bidang 2 dimensi. Motor stepper
berputar satu putaran penuh sebanyak 200 stepp dengan radius tiap step adalah 1,8° pada
titik pusatnya sehingga konfigurasi yang digunakan adalah fullstep.
Gambar 4. 8. Program Perintah G-code
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 46
36
Pada gambar 4.8 merupakan program perintah g-code G00 untuk menempatkan
bolpoin secara cepat dan tidak menurunkan bolpoin ke papan gambar. Semua sumbu bisa
bergerak secara simultan sehingga menghasilkan jalur lurus. Selain perintah g-code G00
terdapat perintah lainya seperti G01, perintah gerakan interpolasi lurus dengan menempatkan
bolpoin ke permukaan papan gambar dan bergerak lurus dari titik awal menuju titik akhir,
dan perintah lainya yaitu G02 dan G03. Dengan mengikuti gerakkan melingkar clock wise
dan counter clock wise dari titik awal hingga titik akhir dengan posisi menempatkan bolpoin
pada papan gambar. Perintah-perintah diatas merupakan perintah yang biasa digunakan
untuk menggambar bidang 2 dimensi.
Gambar 4. 9. Program Skala Untuk Mengatur Ukuran Gambar
Pada gambar 4.9 merupakan program skala untuk mengatur ukuran gambar dalam
skala berapa persen. Dalam pengujian lengan robot menggunakan program ini untuk
mengatur skala 100% dan 50% untuk diuji angka keberhasilannya.
4.2.2. Pembahasan Pada Software Processing 3
Pada gambar 4.10 yang digunakan untuk memberikan perintah pada sistem lengan
robot pantograf penggambar bidang 2 dimensi. Perintah dituliskan dengan bahasa
pemrograman cnc (computer numerical control) untuk menggerakkan pantograf. Selain
perintah yang dapat dituliskan juga dapat memasukan file berupa g-code yang dapat di
eksekusi program untuk menggerakkan pantograf.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 47
37
Gambar 4. 10. Tampilan Pada Processing 3
Proccessing 3 merupakan perangkat lunak yang fleksibel dan bahasa untuk
mempelajari cara membuat kode dalam konteks seni visual dan literasi visual dalam
teknologi [11].
CAMotics digunakan untuk menulis kode cnc dan memvisualisasikan gerakan yang
dihasilkan dari alat dan/atau benda kerja. Kode tersebut berisikan file g-code yang nantinya
digunakan sebagai data untuk pengolahan di mikrokontroler sehingga dapat menggerakkan
motor stepper.
Gambar 4. 11. Tampilan simulasi CAMotics
Gambar 4.11 merupakan hasil dari simulasi CAMotics yang berisikan instruksi g-code.
Nilai x,y sebagai data input untuk menentukan posisi titik koordinat.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 48
38
Gambar 4. 12. Instruksi G-code
4.3 Analisa Hasil Pengujian Gambar Bidang Dua Dimensi
Pada pengujian gambar bidang dua dimensi akan menjelaskan tentang hasil dari
pengamatan berupa pengujian kesesuaian gambar antara gambar bidang 2D aktual (yang
digambar lengan pantograf pada papan gambar) dengan gambar 2D yang dibuat atau
diambil dari PC untuk kesesuaiannya. Pada pengujian gambar bidang 2D disini membuat
gambar dengan menggunakan software paint berikut gambar software paint yang
digunakan pada penelitian pada gambar 4.4.
Gambar 4. 13. Tampilan pada software paint
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 49
39
Secara keseluruhan penelitian lengan robot pantograf penggambar bidang 2 dimensi
ini belum dapat membentuk garis yang benar-benar lurus . Hal tersebut terjadi karena kurang
kepresisian dalam pembuatan mekanik. dalam
4.3.1 Analisa Hasil Gambar Kotak
Hasil gambar kotak yang dilakukan sistem lengan robot ini sudah sesuai dengan
perancangannya namun belum dapat dikatakan sempurna. Cara menggambar dengan lengan
robot sudah seperti pada perancangan yaitu menggambar titik-titik yang mendekati bidang
kotak, namun tidak bisa membuat garis yang benar-benar lurus membentuk kotak dan bagian
ujung belum bisa saling berpotongan. Sehingga algoritma yang digunakan dalam membuat
garis lurus pada bidang datar pada lengan robot masih perlu disempurnakan.
Referensi gambar yang sudah digambar oleh lengan robot selanjutnya diukur
menggunakan penggaris sehingga didapatkan ukuran sisi-sisi kotak kemudian dibandingkan
dengan parameter ukuran yang ditentukan menggunakan inkscape seperti yang ditunjukkan
pada gambar 4.15.
Gambar 4.14 merupakan hasil pengujian gambar kotak dengan perbandingan
drawing scale 50% dan 100%. Pengubahan scale tidak berpengaruh pada keluaran gambar
(bentuk gambar sama).
Gambar 4. 14. Hasil Pengujian Gambar Kotak
Parameter ukuran dimensi pada bidang kotak adalah nilai dari sisi. Tabel 4.3
Merupakan sisi yang ditentukan pada sistem lengan robot pantograf untuk melakukan analisa
berdasarkan parameter dimensi pada gambar kotak. Bidang yang dapat digambar lengan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 50
40
robot ukurannya diukur menggunakan inkscape. Hasil gambar kotak aktual diperoleh
berdasarkan keempat sisi yang berhasil digambar lengan robot.
Gambar 4. 15. Hasil Pengujian Gambar Kotak
Tabel 4. 3. Pengujian Gambar Kotak
Scale
%
Input Aktual
Delta %error S1
(cm)
S2
(cm)
S3
(cm)
S4
(cm)
Rata-
rata
S1
(cm)
S2
(cm)
S3
(cm)
S4
(cm)
Rata-
rata
100 4,7 4,6 4,7 4,6 4,65 5,5 4,8 5,5 4,8 5,15 0,5 10,75%
50 2,35 2,3 2,35 2,3 2,325 2,8 2,1 2,8 2,4 2,525 0,2 8,6%
Berdasarkan tabel 4.3 dapat dilihat bahwa hasil dari gambar aktual dan input nilainya
bervariasi sehingga untuk mengetahui kepresisiannya perlu membuat nilai rata-rata dari sisi
aktual dan input gambar kotak kemudian dapat dihitung nilai error nya. Gambar kotak
dengan scale 100% memiliki nilai error yang besar dibandingkan dengan gambar kotak
dengan scale 50% yaitu 10,75%. Terjadinnya nilai error pada sistem lengan robot terjadi
karena kurangnya kepresisian dalam pembuatan mekanik pantograf. Berdasarkan hasil
pengamatan pada gambar kotak bahwa sistem lengan robot mampu menggambarkan gambar
2D dengan bervariasi ukuran dengan cara mengubah scale pada open processing 3, sehingga
tidak menyulitkan untuk menggambar lagi dengan ukuran yang berbeda.
4.3.2 Analisa Hasil Gambar Segitiga
Hasil gambar segitiga yang dilakukan sistem lengan robot ini sudah sesuai dengan
perancangannya namun belum dapat dikatakan sempurna. Cara menggambar dengan lengan
robot sudah seperti pada perancangan yaitu menggambar titik-titik yang mendekati bidang
segitiga, namun tidak bisa membuat garis yang benar-benar lurus dan miring membentuk
S2=4,6 cm
S3=4,7 cm
S4=4,6 cm
S1=4,7 cm
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 51
41
segitiga dan bagian ujung belum bisa saling berpotongan. Sehingga algoritma yang
digunakan dalam membuat garis lurus pada bidang datar pada lengan robot masih perlu
disempurnakan.
Referensi gambar yang sudah digambar oleh lengan robot selanjutnya diukur
menggunakan penggaris sehingga didapatkan ukuran sisi-sisi segitiga kemudian
dibandingkan dengan parameter ukuran yang ditentukan menggunakan inkscape seperti
yang ditunjukkan pada gambar 4.17.
Gambar 4. 16. Hasil Pengujian Gambar segitiga
Gambar 4.16 merupakan hasil pengujian gambar kotak dengan perbandingan
drawing scale 50% dan 100%. Pengubahan scale tidak berpengaruh pada keluaran gambar
(bentuk gambar sama).
Gambar 4. 17. Hasil Pengujian Gambar Segitiga
Parameter ukuran dimensi pada bidang segitiga adalah nilai dari sisi-sisi segitiga.
Tabel 4.4. merupakan sisi yang ditentukan pada sistem lengan robot pantograf untuk
S1= 4,4cm
S3= 5,1cm
S2= 4,4cm
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 52
42
melakukan analisa berdasarkan parameter dimensi pada gambar segitiga. Hasil gambar
segitiga aktual diperoleh berdasarkan ketiga sisi yang berhasil digambar lengan robot.
Tabel 4. 4. Pengujian Gambar segitiga
Scale
%
Input Aktual
Delta %Error S1
(cm)
S2
(cm)
S3
(cm)
Rata-
rata
S1
(cm)
S2
(cm)
S3
(cm)
Rata
-rata
100 4,4 4,4 5,1 4,63 5 5,6 4,6 5,06
7 0,437 9,44%
50 2,2 2,2 2,55 2,317 2,5 3 2,3 2,6 0,283 12%
Berdasarkan tabel 4.4 dapat dilihat bahwa hasil dari gambar aktual dan input nilainya
bervariasi sehingga untuk mengetahui kepresisiannya perlu membuat nilai rata-rata dari sisi
aktual dan input gambar segitiga kemudian dapat dihitung nilai error nya. Gambar segitiga
dengan scale 100% memiliki nilai error yang kecil dibandingkan dengan gambar segitiga
dengan scale 50% yaitu 9,44%. Terjadinnya nilai error pada sistem lengan robot terjadi
karena kurangnya kepresisian dalam pembuatan mekanik pantograf dan pembacaan g-code
kurang teliti. Berdasarkan hasil pengamatan pada gambar segitiga bahwa sistem lengan robot
mampu menggambarkan gambar 2D dengan bervariasi ukuran dengan cara mengubah scale
pada open processing 3, sehingga tidak menyulitkan untuk menggambar lagi dengan ukuran
yang berbeda.
4.3.3 Analisa Hasil Gambar Lingkaran
Hasil gambar lingkaran yang dilakukan sistem lengan robot ini sudah sesuai dengan
perancangannya namun belum dapat dikatakan sempurna. Dan bagian ujung masih saling
berpotongan. Cara menggambar dengan lengan robot sudah seperti pada perancangan yaitu
menggambar titik-titik yang mendekati bidang lingkaran, namun tidak bisa membuat garis
yang benar-benar lingkaran dan membentuk lingkaran yang lonjong/tidak bulat . Sehingga
algoritma yang digunakan dalam membuat garis lurus pada bidang datar pada lengan robot
masih perlu disempurnakan.
Referensi gambar yang sudah digambar oleh lengan robot selanjutnya diukur
menggunakan penggaris sehingga didapatkan ukuran jari-jari lingkaran kemudian
dibandingkan dengan parameter ukuran yang ditentukan menggunakan inkscape seperti
yang ditunjukkan pada gambar 4.19.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 53
43
Gambar 4.18 merupakan hasil pengujian gambar kotak dengan perbandingan drawing
dengan scale 50% dan 100%. Pengubahan scale tidak berpengaruh pada keluaran gambar.
Gambar 4. 18. Hasil Pengujian Gambar Lingkaran
Gambar 4. 19. Hasil Pengujian Gambar Lingkaran
Tabel 4. 5. Pungijian Gambar Lingkaran Scale 100%
Ketterangan
(Scale
100%)
Input Jari-Jari
Aktual Delta
r1 (cm) 2,4 2,9 0,5
r2 (cm) 2,5 2,5 0
r3 (cm) 2,4 3,1 0,7
r4 (cm) 2,4 3,2 0,8
r5 (cm) 2,3 2,8 0,5
r6 (cm) 2,4 2,5 0,1
r7 (cm) 2,3 2,6 0,3
r8 (cm) 2,3 3,2 0,9
Rata-rata 2,375 2,85 0,475
%Error 20%
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 54
44
Parameter ukuran dimensi pada bidang segitiga adalah nilai dari jari-jari lingkaran.
Menentukan jari-jari lingkaran yaitu dengan cara membagi lingkaran menjadi 8 titik, dimana
titik-titik tersebut merupakan hasil penarikan garis dari ujung hingga titik tengah dan
pergeseran 45°. Tabel 4.5 dan tabel 4.6 merupakan jari-jari yang ditentukan pada sistem
lengan robot pantograf untuk melakukan analisa berdasarkan parameter dimensi pada
gambar lingkaran. Hasil gambar lingkaran aktual diperoleh berdasarkan jari-jari yang
berhasil digambar lengan robot.
Tabel 4. 6. Pengujian Gambar Lingkaran Scale 50%
Berdasarkan tabel 4.5 dan tabel 4.6 dapat dilihat bahwa hasil dari gambar aktual dan
input nilainya bervariasi sehingga untuk mengetahui kepresisiannya perlu membuat nilai
rata-rata dari jari-jari aktual dan input gambar lingkaran kemudian dapat dihitung nilai error
nya. Gambar lingkaran dengan scale 100% memiliki nilai error yang lebih besar
dibandingkan dengan gambar lingkaran dengan scale 50% yaitu 20%. Terjadinnya nilai
error pada sistem lengan robot terjadi karena dalam menentukan titik-titiknya secara
manual, kurangnya kepresisian dalam pembuatan mekanik pantograf dan pembacaan g-code
kurang teliti. Berdasarkan hasil pengamatan pada gambar lingkaran bahwa sistem lengan
robot mampu menggambarkan gambar 2D dengan bervariasi ukuran dengan cara mengubah
scale pada open processing 3, sehingga tidak menyulitkan untuk menggambar lagi dengan
ukuran yang berbeda.
Ketterangan
(Scale
50%)
Input Jari-Jari
Aktual Delta
r1 (cm) 1,2 1,5 0,3
r2 (cm) 1,3 1,3 0
r3 (cm) 1,2 1,6 0,4
r4 (cm) 1,2 1,6 0,4
r5 (cm) 1,2 1,4 0,2
r6 (cm) 1,2 1,3 0,1
r7 (cm) 1,2 1,3 0,1
r8 (cm) 1,2 1,6 0,4
Rata-rata 1,363 1,45 0,238
%Error 6,4%
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 55
45
4.3.4 Hasil Pengujian Tingkat Keberhasilan
Pengujian tingkat keberhasilan pada penelitian ini yaitu kemampuan lengan robot
untuk menggambar secara berulang-ulang. Pengujian tingkat keberhasilan digunakan
sebagai data indicator tingkat keberhasilan dari penelitian yang telah dilakukan
mengguankan plotter robot drawing.
Pengujian tingkat keberhasilan difokuskan pada kemampuan lengan robot ketika
diperintahkan menggambar sebuah gambar sesuai referensi bidang 2D. pengujian dilakukan
sebnayak 10x dengan 5x menggunakan scale 100% dan 5x menggunakan scale 50%.
Jika lengan robot berhasil membuat bentuk gambar sesuai referensi bidang 2 dimensi
maka tingkat keberhasilan 100%. Contoh gambar yang diuji seperti yang ditunjukkan pada
gambar 4.14, gambar 4.16, dan gambar 4.18. berdasarkan data hasil uji tingkar keberhasilan
pada tabel 4.7 ditunjukkan bahwa tingkat keberhasilan plotter robot drawing adalah 100%,
namun gambar masih belum sempurna. Keberhasilan bentuk gambar yang digambar oleh
plotter robot drawing dapat dilihat pada lampiran L1,L2, dan L3.
Tabel 4. 7. Pengujian Gambar Kotak, Segitiga, Dan Lingkaran
No Kotak Segitiga Lingkaran
Scale 100% Scale 50% Scale 100% Scale 50% Scale 100% Scale 50%
1 √ √ √ √ √ √
2 √ √ √ √ √ √
3 √ √ √ √ √ √
4 √ √ √ √ √ √
5 √ √ √ √ √ √
4.3.5 Hasil Pengujian Repeatability
Pengujian kepresisian garis lurus gerakkan lengan robot dilakukan secara berulang-
ulang sebanyak 5x pada papan gambar baik secara horizontal (Tabel 4.8) ataupun vertikal
(Tabel 4.9). Gerakkan dilakukan berdasarkan input nilai koordinat yang telah ditentukan.
Gerakkan horizontal dilakukan oleh lengan robot dengan masukkan nilai koordinat X
yaitu dari X50, X60, X70, X80, X90, X100, dengan nilai koordinat Y tetap yaitu Y50.
Gerakkan vertikal dilakukan oleh lengan robot dengan memberikan masukan nilai koordinat
Y yaitu dari Y50, Y60, Y70, Y80, Y90, Y100, dengan nilai koordinat X tetap yaitu 50.
Pada pengujian garis horizontal diperoleh selisih panjang garis atau error sebesar 0,1
cm. berdasarkan tabel 4.8 dapat dihitung repeatability untuk sumbu X yaitu 0,02 yang artinya
terjadi rerata error sebesar 0,02 cm untuk setiap perintah.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 56
46
Tabel 4. 8. Pengujian Garis Lurus Horizontal
Pada pengujian garis vertikal diperoleh selisih panjang garis atau error sebesar 0,7 cm.
berdasarkan tabel 4.9 dapat dihitung repeatability untuk sumbu Y yaitu 0,14 yang artinya
terjadi rerata error sebesar 0,14 cm untuk setiap perintah.
Tabel 4. 9. Pengujian Garis Lurus Vertikal Vertikal
Pengujian Panjang
(cm)
Error
(cm) Rerata Error
1 5,8
0,7 0,14
2 5,1
3 5,1
4 5,1
5 5,1
Perbedaan panjang garis yang terjadi pada hasil pengujian ditampilkan dalam bentuk
error yang menandakan adanya kurang kepresisian yang terjadi pada bentuk mekanik lengan
robot.
Gambar 4. 20. Pengujian Garis Lurus Horizontal
Horizontal
Pengujian
Panjang
(cm)
Error
(cm) Rerata Error
1 4,4
0,1 0,02
2 4,3
3 4,3
4 4,3
5 4,3
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 57
47
Pada gambar 4.20 menunjukkan panjang garis lurus horizontal yang di gambar
lengan robot pantograf dengan panjang 4,4 cm pada pengujian pertama, dan kemudain
disusul dengan pengujian kedua, ketiga, keempat, dan kelima dengan panjang 4,3 cm.
Gambar 4. 21. Pengujian Garis Lurus Vertikal
Pada gambar 4.21 menunjukkan panjang garis lurus vertikal yang di gambar lengan
robot pantograf dengan panjang 5,8 cm pada pengujian pertama, dan kemudain disusul
dengan pengujian kedua, ketiga, keempat, dan kelima dengan panjang 5,1 cm.
Pengukuran pada garis lurus horizontal maupun garis vertikal diukur menggunakan
penggaris, setiap pengujian dilakukan pengukuran sehingga dapat mengetahui perbedaan
panjang pada pengujian pertama, kedua, ketiga, keempat, dan kelima.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 58
46
BAB V
KESIMPULAN DAN SARAN
5.1 Kesimpulan
Setelah melakukan perancangan, pembuatan, dan pengujian dari plotter robot drawing
penggambar 2 dimensi maka didapatkan kesimpulan sebagai berikut:
1. Software inkscape mampu mengkonversi ke dalam bentuk g-code, akan tetapi g-code
yang dihasilkan tidak begitu sempurna.
2. File g-code dapat diimplementasikan pada software open processing 3.
3. Mampu menggambar kotak, segitiga, lingkaran dengan skala 100% dan 50% dan
dapat di ulang-ulang.
5.2 Saran
Berdasarkan hasil implementasi yang diperoleh, untuk pengembangan penelitian lebih
lanjut ada beberapa saran agar alat ini dapat bekerja lebih baik, yaitu :
1. Perancangan ulang pada mekanik sistem lengan robot pantograf dengan berdasarkan
area kerja harus lebih tepat atau presisi sesuai dengan fungsi dan kegunaan.
2. Penentuan titik nol yang tepat dan tidak berubah-ubah agar dalam pengambilan data
tidak mengalami salah kepresisian.
3. Pemilihan software dalam menggerakkan suatu robot akan mempengaruhi proses
penggerakkan lengan robot.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 59
47
DAFTAR PUSTAKA
[1] Dina. Caysar, "PENGATURAN PERGERAKAN ROBOT LENGAN SMART ARM
ROBOTIC AX-12A MELALUI PENDEKATAN GEOMETRY BASED
KINEMATIC MENGGUNAKAN ARDUINO," 2014.
[2] Hans. G. Frommer, practical CNC-Training for Planning and Shop (part2 : Example
and exercise), Germany: Hanser , 1985.
[3] RobotShop, "Arduino Mega 2560 Datasheet," [Online]. Available:
https://www.robotshop.com/media/files/PDF/ArduinoMega2560Datasheet.pdf.
[Accessed 5 februari 2019].
[4] Budi. Wiro, "Desain Manufaktur Kode dan Format Program CNC," 29 September
2015. [Online]. Available:
http://desainmanufaktur.bayuwiro.net/index.php/2015/09/29/kode-format-program-
cnc/. [Accessed 25 Oktober 2018].
[5] Leonardus. Dwi. Niandityo, "PENGUBAH GAMBAR VEKTOR MENJADI
PERINTAH GERAKAN ROBOT DALAM G-CODE," Skripsi, pp. 5-6, 2017.
[6] "INKSCAPE," [Online]. Available: https://inkscape.org/doc/basic/tutorial-
basic.id.html. [Accessed 09 November 2018].
[7] CAMotics. [Online]. Available: https://camotics.org/.html. [Accessed 10 September
2019].
[8] Syahrul. "BIDANG REKAYASA," Motor STEPPER: TEKNOLOGI, METODA DAN
RANGKAIAN KONTROL, vol. 6, p. 187.
[9] Agustinus. Welly. Adi. Nugroho, "LENGAN ROBOT PENGGAMBAR BIDANG
DUA DIMENSI BERBASIS MIKROKONTROLER DENGAN PC," Skripsi, pp. 21-
22, 2015.
[10] processing. "processing," [Online]. Available: https://processing.org/reference/.
[Accessed 4 oktober 2019].
[11] "Universitas Narotama sistem komputer," Mikrokontroler, Februari 2013. [Online].
Available: http://sistemkomputer.narotama.ac.id/2013/02/konsep-mikrokontroler/.
[Accessed 25 Oktober 2018].
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 60
48
[12] "Design and Control of a Pantograph Robot," [Online]. [Accessed 5 Februari 2019].
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 61
49
LAMPIRAN
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 62
L-1
Hasil Pengujian Gambar Kotak, Segitiga, Lingkaran 10x gambar dengan
5x skala 100% dan 50%
L1. Hasil Pengujian Gambar Kotak
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 63
L-2
L2. Hasil Pengujian Gambar Segitiga
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 64
L-3
L3. Hasil Pengujian Gambar Lingkaran
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 65
L-4
L4. Motor Servo Tower pro MG90S
Specifications :
1. Weigh : 13.4 g
2. Dimension : 22.5 x 12 x 35.5 mm
3. Stall torque : 1.8 kg/cm (4.8V)
4. Operating speed: 0.1s/60° (4.8V)
5. Operating Voltage: 4.8V to 6V
6. Max Stall Torque: 2.2 kg/cm (6V)
7. Gear Type: Metal
8. Rotation : 0°-180°
L5. Motor Stepper 17HS4401
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 66
L-5
L6. Timing pulley 2GT-15T 15 teeth
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 67
L-6
L7. Power Supply 12V 30 A
SPESIFIKASI
* Model : 12V-30A
* Input : 220 volt AC
* Output : 12 volt DC
* Kapasitas : 30 ampere
* Ukuran : 215mmx115mmx50mm
* Berat bersih : 750g
Cara Pemakaiannya :
- kabel listrik di hubungkan ke lambang L & N
- lambang COM di hubungkan 12 V - ( min )
- lambang +V dihubungkan 12 V + ( plus )
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 68
L-7
L8. CNC Shield Ramps 1.6
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 69
L-8
L9. Perintah G-Code Pada Pengujian Gambar Kotak
%
(Header)
(Generated by gcodetools from Inkscape.)
(Using default header. To add your own header create file "header" in the output dir.)
M3
(Header end.)
G21 (All units in mm)
(Start cutting path id: path16879)
(Change tool to Default tool)
G00 Z5.000000
G00 X34.201464 Y39.688380
G01 Z-0.125000 F100.0(Penetrate)
G01 X34.201464 Y62.701760 Z-0.125000 F400.000000
G01 X57.705574 Y62.701760 Z-0.125000
G01 X81.209702 Y62.701760 Z-0.125000
G01 X81.209702 Y39.688380 Z-0.125000
G01 X81.209702 Y16.674960 Z-0.125000
G01 X57.705574 Y16.674960 Z-0.125000
G01 X34.201464 Y16.674960 Z-0.125000
G01 X34.201464 Y39.688380 Z-0.125000
G00 Z5.000000
(End cutting path id: path16879)
(Start cutting path id: path16879)
(Change tool to Default tool)
G00 Z5.000000
(End cutting path id: path16879)
(Footer)
M5
G00 X0.0000 Y0.0000
M2
(Using default footer. To add your own footer create file "footer" in the output dir.)
(end)%
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 70
L-9
L10. Perintah G-Code Pada Pengujian Gambar segitiga
%
(Header)
(Generated by gcodetools from Inkscape.)
(Using default header. To add your own header create file "header" in the output dir.)
M3
(Header end.)
G21 (All units in mm)
(Start cutting path id: path6489)
(Change tool to Default tool)
G00 Z5.000000
G00 X51.199114 Y59.622900
G01 Z-0.125000 F100.0(Penetrate)
G02 X51.158608 Y59.280813 Z-0.125000 I-0.345390 J-0.132544 F400.000000
G02 X38.576875 Y41.117899 Z-0.125000 I-2474.754731 J1700.861787
G02 X25.861959 Y23.048195 Z-0.125000 I-2462.522396 J1719.268641
G02 X25.551654 Y22.887840 Z-0.125000 I-0.310305 J0.220060
G02 X25.239434 Y23.049991 Z-0.125000 I0.000000 J0.381663
G02 X12.640020 Y41.113519 Z-0.125000 I2413.460056 J1696.828090
G02 X0.175762 Y59.270660 Z-0.125000 I2425.907148 J1678.659160
G02 X0.135381 Y59.618070 Z-0.125000 I0.311733 J0.212286
G02 X0.472195 Y59.851918 Z-0.125000 I0.340229 J-0.130553
G02 X25.667251 Y59.971180 Z-0.125000 I25.456662 J-2716.540072
G02 X50.862398 Y59.856771 Z-0.125000 I0.261608 J-2716.686517
G02 X51.199114 Y59.623070 Z-0.125000 I-0.003343 J-0.364237
G01 X51.199114 Y59.622900 Z-0.125000
G00 Z5.000000
(End cutting path id: path6489)
(Start cutting path id: path6489)
(Change tool to Default tool)
G00 Z5.000000
G00 X1.749841 Y58.753860
G00 Z5.000000
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 71
L-10
(End cutting path id: path6489)
(Footer)
M5
G00 X0.0000 Y0.0000
M2
(Using default footer. To add your own footer create file "footer" in the output dir.)
(end)
%
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 72
L-11
L11. Perintah G-Code Pada Pengujian Gambar lingakaran
%
(Header)
(Generated by gcodetools from Inkscape.)
(Using default header. To add your own header create file "header" in the output dir.)
M3
(Header end.)
G21 (All units in mm)
(Start cutting path id: path21986)
(Change tool to Default tool)
G00 Z5.000000
G00 X52.115384 Y16.227550
G01 Z-0.125000 F100.0(Penetrate)
G02 X49.378585 Y16.974042 Z-0.125000 I4.470887 J21.781334 F400.000000
G02 X45.930405 Y18.346840 Z-0.125000 I12.338735 J36.009244
G02 X42.725454 Y20.172052 Z-0.125000 I8.506959 J18.664105
G02 X39.135549 Y23.072860 Z-0.125000 I18.339984 J26.368460
G02 X34.775994 Y28.283062 Z-0.125000 I18.976061 J20.306918
G02 X31.901200 Y34.255290 Z-0.125000 I22.213159 J14.370554
G02 X30.725536 Y41.702047 Z-0.125000 I21.575368 J7.222416
G02 X32.048621 Y49.205430 Z-0.125000 I23.237315 J-0.229136
G02 X34.944609 Y55.010635 Z-0.125000 I24.827997 J-8.760758
G02 X39.307233 Y60.134710 Z-0.125000 I23.599822 J-15.673628
G02 X53.426550 Y66.919530 Z-0.125000 I18.085464 J-19.552465
G02 X69.473245 Y64.677430 Z-0.125000 I4.243090 J-28.176331
G02 X76.345911 Y60.168593 Z-0.125000 I-11.134724 J-24.464584
G02 X81.119575 Y54.168130 Z-0.125000 I-15.669596 J-17.365009
G02 X83.602822 Y47.984519 Z-0.125000 I-23.264635 J-12.933156
G02 X84.436919 Y41.513250 Z-0.125000 I-24.686327 J-6.471269
G02 X83.609122 Y35.067626 Z-0.125000 I-25.508255 J-0.000000
G02 X81.131923 Y28.858350 Z-0.125000 I-26.118180 J6.821104
G02 X76.621104 Y23.019750 Z-0.125000 I-21.055544 J11.605416
G02 X70.470830 Y18.746870 Z-0.125000 I-17.045161 J17.971653
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 73
L-12
G02 X61.220460 Y15.926711 Z-0.125000 I-13.389659 J27.338168
G02 X52.115384 Y16.227550 Z-0.125000 I-3.673244 J26.762782
G01 X52.115384 Y16.227550 Z-0.125000
G00 Z5.000000
(End cutting path id: path21986)
(Start cutting path id: path21986)
(Change tool to Default tool)
G00 Z5.000000
(End cutting path id: path21986)
(Footer)
M5
G00 X0.0000 Y0.0000
M2
(Using default footer. To add your own footer create file "footer" in the output dir.)
(end)
%
L12. Listing Program Arduino Mega2560
#include <Arduino.h>
#include "BasicStepperDriver.h"
#include "MultiDriver.h"
#include "SyncDriver.h"
//----------------motor----------------------------------------------------------
// Motor steps per revolution. Most steppers are 200 steps or 1.8 degrees/step
#define MOTOR_STEPS 800 //200*4 (360* = 200 step. diguakan reduksi 1:4 15t:60t
jadi satu putaran = 200X4=800pulsa per putaran<360*>)
#define MICROSTEPS 32
#define STEPS_PER_DEG MOTOR_STEPS*MICROSTEPS
// Target RPM for X axis motor
#define MOTOR_X_RPM 0.5 // mengatur kecepatan x
// Target RPM for Y axis motor
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 74
L-13
#define MOTOR_Y_RPM 0.5 // mengatur kecepatan y
// X motor pin
#define DIR_X 28
#define STEP_X 26
// Y motor pin
#define DIR_Y 34
#define STEP_Y 36
BasicStepperDriver stepperX(MOTOR_STEPS, DIR_X, STEP_X);
BasicStepperDriver stepperY(MOTOR_STEPS, DIR_Y, STEP_Y);
SyncDriver controller(stepperX, stepperY);
//#define CW 1 //motor directions
//#define CCW -1
//--------------------------------------------------------------------------------------
//--------------//servo//---------------------------------
#include <Servo.h>
Servo myservo;
int pos = 0;
//--------------------------------------------------------
// ----- constants----------------------------------------
#define PI 3.1415926535897932384626433832795
#define HALF_PI 1.5707963267948966192313216916398
#define TWO_PI 6.283185307179586476925286766559
#define DEG_TO_RAD 0.017453292519943295769236907684886
#define RAD_TO_DEG 57.295779513082320876798154814105
//---------------------------------------------------------
long
PULSE_WIDTH = 5, //easydriver step pulse-width (uS)
DELAY_MIN = 20000, //minimum inter-step delay (uS) between motor steps
(controls speed)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 75
L-14
DELAY1=0, //inter-step delay for motor1 (uS)
DELAY2=0, //inter-step delay for motor2 (uS)
STEPS1 = 0, //motor1 steps from 12 o'clock to reach an XY co-ordinate
STEPS2 = 0; //motor2 steps from 12 o'clock to reach an XY co-ordinate
double
angleX,
angleY;
// ----- plotter definitions
#define BAUD 9600
#define XOFF 0x13 //pause transmission (19 decimal)
#define XON 0x11 //resume transmission (17 decimal)
#define PEN 4
float
OFFSET1 = 155, //motor1 offset along x_axis
OFFSET2 = 255, //motor2 offset along x_axis
YAXIS = 570, //motor heights above (0,0)
LENGTH = 320, //length of each arm-segment
SCALE_FACTOR = 1, //drawing scale (1 = 100%)
ARC_MAX = 2; //maximum arc-length (controls smoothness)
int
/*
XY plotters only deal in integer steps.
*/
THIS_X = 0, //this X co-ordinate (rounded)
THIS_Y = 0, //this Y co-ordinate (rounded)
LAST_X = 0, //last X co-ordinate (rounded)
LAST_Y = 0; //last Y co-ordinate (rounded)
// ----- gcode definitions
#define STRING_SIZE 256 //string size
char
BUFFER[STRING_SIZE + 1],
INPUT_CHAR;
String
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 76
L-15
INPUT_STRING,
SUB_STRING;
int
INDEX = 0, //buffer index
START, //used for sub_string extraction
FINISH;
//deltaX=0;
//deltaY=0;
float
X, //gcode float values held here
Y,
I,
J;
void setup() {
// put your setup code here, to run once:
// stepper.enable();
stepperX.begin(MOTOR_X_RPM, MICROSTEPS);
stepperY.begin(MOTOR_Y_RPM, MICROSTEPS);
pinMode(30, OUTPUT);
pinMode(24, OUTPUT);
digitalWrite(30, LOW); // pin enable motor x
digitalWrite(24, LOW); // pin enable motor y
// ----- initialise STEPS1, STEPS2 for co-ordinate (0,0)
calculate_steps(0, 0);
myservo.attach(PEN);
// ----- plotter setup
memset(BUFFER, '\0', sizeof(BUFFER)); //fill with string terminators
INPUT_STRING.reserve(STRING_SIZE);
INPUT_STRING = "";
// ----- establish serial link
Serial.begin(BAUD);
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 77
L-16
// ----- flush the buffers
Serial.flush(); //clear TX buffer
while (Serial.available()) Serial.read(); //clear RX buffer
// ----- display commands
menu();
}
//--------------------------------------------------------------------------
// MAIN LOOP
//--------------------------------------------------------------------------
void loop() {
// put your main code here, to run repeatedly:
// -------------------------
// get the next instruction
// -------------------------
while (Serial.available()) {
INPUT_CHAR = (char)Serial.read(); //read character
Serial.write(INPUT_CHAR); //echo character to the screen
BUFFER[INDEX++] = INPUT_CHAR; //add char to buffer
if (INPUT_CHAR == '\n') { //check for line feed
Serial.flush(); //clear TX buffer
Serial.write(XOFF); //pause transmission
INPUT_STRING = BUFFER; //convert to string
process(); //interpret string and perform task
memset(BUFFER, '\0', sizeof(BUFFER)); //fill buffer with string terminators
INDEX = 0; //point to buffer start
INPUT_STRING = ""; //empty string
Serial.flush(); //clear TX buffer
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 78
L-17
Serial.write(XON); //resume transmission
}
}
}
void menu() {
Serial.println(F(""));
Serial.println(F(" ------------------------------------------------------"));
Serial.println(F(" MENU"));
Serial.println(F(" ------------------------------------------------------"));
Serial.println(F(" MENU ............... menu"));
Serial.println(F(" G00 X## Y## ........ goto XY (pen-up)"));
Serial.println(F(" G01 X## Y## ........ goto XY (pen-down)"));
Serial.println(F(" T1 ................. move pen to 0,0"));
Serial.println(F(" T2 S##.## .......... set drawing Scale (1=100%)"));
Serial.println(F(" ------------------------------------------------------"));
}
void process() {
// ----- convert string to upper case
INPUT_STRING.toUpperCase();
// ----------------------------------
// G00 linear move with pen_up
// ----------------------------------
if (INPUT_STRING.startsWith("G00")) {
// ----- extract X
START = INPUT_STRING.indexOf('X');
if (!(START < 0)) {
FINISH = START + 8;
SUB_STRING = INPUT_STRING.substring(START + 1, FINISH + 1);
X = SUB_STRING.toFloat();
}
// ----- extract Y
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 79
L-18
START = INPUT_STRING.indexOf('Y');
if (!(START < 0)) {
FINISH = START + 8;
SUB_STRING = INPUT_STRING.substring(START + 1, FINISH + 1);
Y = SUB_STRING.toFloat();
}
Serial.println(F(""));
Serial.print(X);
Serial.print("<-X Y->");
Serial.println(Y);
pen_up();
move_to(X, Y);
}
// ----------------------------------
// G01 linear move with pen_down
// ----------------------------------
if (INPUT_STRING.startsWith("G01")) {
// ----- extract X
START = INPUT_STRING.indexOf('X');
if (!(START < 0)) {
FINISH = START + 8;
SUB_STRING = INPUT_STRING.substring(START + 1, FINISH + 1);
X = SUB_STRING.toFloat();
}
// ----- extract Y
START = INPUT_STRING.indexOf('Y');
if (!(START < 0)) {
FINISH = START + 8;
SUB_STRING = INPUT_STRING.substring(START + 1, FINISH + 1);
Y = SUB_STRING.toFloat();
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 80
L-19
}
Serial.println(F(""));
Serial.print(X);
Serial.print("<-X Y->");
Serial.println(Y);
pen_down();
move_to(X, Y);
}
// ----------------------------------
// G02 clockwise arc with pen_down
// ----------------------------------
if (INPUT_STRING.startsWith("G02")) {
// ----- extract X
START = INPUT_STRING.indexOf('X');
if (!(START < 0)) {
FINISH = INPUT_STRING.indexOf('.', INPUT_STRING.indexOf('X'));
SUB_STRING = INPUT_STRING.substring(START + 1, FINISH + 7);
X = SUB_STRING.toFloat();
}
// ----- extract Y
START = INPUT_STRING.indexOf('Y');
if (!(START < 0)) {
FINISH = INPUT_STRING.indexOf('.', INPUT_STRING.indexOf('Y'));
SUB_STRING = INPUT_STRING.substring(START + 1, FINISH + 7);
Y = SUB_STRING.toFloat();
}
// ----- extract I
START = INPUT_STRING.indexOf('I');
if (!(START < 0)) {
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 81
L-20
FINISH = INPUT_STRING.indexOf('.', INPUT_STRING.indexOf('I'));
SUB_STRING = INPUT_STRING.substring(START + 1, FINISH + 7);
I = SUB_STRING.toFloat();
}
// ----- extract J
START = INPUT_STRING.indexOf('J');
if (!(START < 0)) {
FINISH = INPUT_STRING.indexOf('.', INPUT_STRING.indexOf('J'));
SUB_STRING = INPUT_STRING.substring(START + 1, FINISH + 7);
J = SUB_STRING.toFloat();
}
Serial.println(F(""));
Serial.print(X);
Serial.print("<-X Y->");
Serial.println(Y);
pen_down();
draw_arc_cw(X, Y, I, J);
}
// ------------------------------------------
// G03 counter-clockwise arc with pen_down
// ------------------------------------------
if (INPUT_STRING.startsWith("G03")) {
// ----- extract X
START = INPUT_STRING.indexOf('X');
if (!(START < 0)) {
FINISH = INPUT_STRING.indexOf('.', INPUT_STRING.indexOf('X'));
SUB_STRING = INPUT_STRING.substring(START + 1, FINISH + 7);
X = SUB_STRING.toFloat();
}
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 82
L-21
// ----- extract Y
START = INPUT_STRING.indexOf('Y');
if (!(START < 0)) {
FINISH = INPUT_STRING.indexOf('.', INPUT_STRING.indexOf('Y'));
SUB_STRING = INPUT_STRING.substring(START + 1, FINISH + 7);
Y = SUB_STRING.toFloat();
}
// ----- extract I
START = INPUT_STRING.indexOf('I');
if (!(START < 0)) {
FINISH = INPUT_STRING.indexOf('.', INPUT_STRING.indexOf('I'));
SUB_STRING = INPUT_STRING.substring(START + 1, FINISH + 7);
I = SUB_STRING.toFloat();
}
// ----- extract J
START = INPUT_STRING.indexOf('J');
if (!(START < 0)) {
FINISH = INPUT_STRING.indexOf('.', INPUT_STRING.indexOf('J'));
SUB_STRING = INPUT_STRING.substring(START + 1, FINISH + 7);
J = SUB_STRING.toFloat();
}
Serial.println(F(""));
Serial.print(X);
Serial.print("<-X Y->");
Serial.println(Y);
pen_down();
draw_arc_ccw(X, Y, I, J);
}
// ----------------------------------
// MENU
// ----------------------------------
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 83
L-22
if (INPUT_STRING.startsWith("MENU")) {
menu();
}
// ----------------------------------
// T1 position the pen over 0,0
// ----------------------------------
if (INPUT_STRING.startsWith("T1")) {
// ----- variables
int step; //loop counter
int steps = MOTOR_STEPS; //steps motor is to rotate
// ----- instructions
Serial.println(F(""));
Serial.println(F(" ----------------------------------------------"));
Serial.println(F(" Position the pen over the 0,0 co-ordinate:"));
Serial.println(F(" ----------------------------------------------"));
Serial.println(F(" X-axis: Y-axis:"));
Serial.println(F(" 'A' 'S' 'K' 'L'"));
Serial.println(F(" <- -> <- ->"));
Serial.println(F(" Exit = 'E'"));
// ----- flush the buffer
while (Serial.available() > 0) Serial.read();
// ----- control motors with 'A', 'S', 'K', and 'L' keys
char keystroke = ' ';
while (keystroke != 'E') { //press 'E' key to exit
// ----- check for keypress
if (Serial.available() > 0) {
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 84
L-23
keystroke = (char) Serial.read();
}
// ----- select task
switch (keystroke) {
case 'a':
case 'A': {
// ----- rotate motor1 CW
Serial.println(F(" "));
Serial.println(F(" ----- rotate motor1 CW "));
// for (step = 0; step < steps; step++) {
// step1_cw();
// }
for (step = 0; step < 2; step++) {
step1_cw();
}
keystroke = ' '; //otherwise motor will continue to rotate
break;
}
case 's':
case 'S': {
// ------ rotate motor1 CCW
Serial.println(F(" "));
Serial.println(F(" ----- rotate motor1 CCW "));
// for (step = 0; step < steps; step++) {
// step1_ccw();
// }
for (step = 0; step < 2; step++) {
step1_ccw();
}
keystroke = ' ';
break;
}
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 85
L-24
case 'k':
case 'K': {
// ----- rotate motor2 CW
Serial.println(F(" "));
Serial.println(F(" ----- rotate motor2 CW "));
// for (step = 0; step < steps; step++) {
// step2_cw();
// }
for (step = 0; step < 2; step++) {
step2_cw();
}
keystroke = ' ';
break;
}
case 'l':
case 'L': {
// ----- rotate motor2 CCW
Serial.println(F(" "));
Serial.println(F(" ----- rotate motor2 CCW "));
// for (step = 0; step < steps; step++) {
// step2_ccw();
// }
for (step = 0; step < 2; step++) {
step2_ccw();
}
keystroke = ' ';
break;
}
case 'e':
case 'E': {
// ----- exit
Serial.println(F(" "));
Serial.println(F(" Calibration complete ..."));
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 86
L-25
keystroke = 'E';
break;
}
// ----- default for keystroke
default: {
break;
}
}
}
// ----- initialise counters for co-ordinate (0,0)
calculate_steps(0, 0); //initialise STEPS1, STEPS2
THIS_X = 0; //current X co-ordinate
THIS_Y = 0; //current Y co-ordinate
LAST_X = 0; //previous X co-ordinate
LAST_Y = 0; //previous Y-co-ordinate
}
// ----------------------------------
// T2 set scale factor
// ----------------------------------
if (INPUT_STRING.startsWith("T2")) {
Serial.println("T2");
START = INPUT_STRING.indexOf('S');
if (!(START < 0)) {
FINISH = START + 6;
SUB_STRING = INPUT_STRING.substring(START + 1, FINISH);
SCALE_FACTOR = SUB_STRING.toFloat();
Serial.print(F("Drawing now ")); Serial.print(SCALE_FACTOR * 100);
Serial.println(F("%"));
}
else {
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 87
L-26
Serial.println(F("Invalid scale factor ... try again. (1 = 100%)"));
}
}
void calculate_steps(float x, float y) {
// ----- locals
float
distance1, //pen distance to motor1
distance2, //pen distance to motor2
angle1, //motor1 angle
angle2; //motor2 angle
// ----- calculate distances
distance1 = sqrt((OFFSET1 - x) * (OFFSET1 - x) + (YAXIS - y) * (YAXIS - y));
distance2 = sqrt((OFFSET2 - x) * (OFFSET2 - x) + (YAXIS - y) * (YAXIS - y));
// ----- calculate motor1 angle when pen at (x,y)
if (x > OFFSET1) {
angle1 = PI + acos(distance1 / (2 * LENGTH)) - atan((x - OFFSET1) / (YAXIS - y));
//radians
} else {
angle1 = PI + acos(distance1 / (2 * LENGTH)) + atan((OFFSET1 - x) / (YAXIS - y));
//radians
}
// ----- calculate motor2 angle when pen at start position (0,0)
if (x > OFFSET2) {
angle2 = PI - acos(distance2 / (2 * LENGTH)) - atan((x - OFFSET2) / (YAXIS - y));
//radians
} else {
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 88
L-27
angle2 = PI - acos(distance2 / (2 * LENGTH)) + atan((OFFSET2 - x) / (YAXIS - y));
//radians
}
angleX = (angle1*RAD_TO_DEG);
angleY = (angle2*RAD_TO_DEG);
}
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI