PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI TUGAS AKHIR
SELECTIVE COMPLIENT ARTICULATED ROBOT ARM (SCARA) BERBASIS ARDUINO DAN VISUAL BASIC 6.0 DALAM SISTEM PICK AND PLACE BENDA KERJA
Oleh YOHANES BERCHMAN ADYAPAKA APATYA NIM : 10 5114 026
PROGRAM STUDI TEKNIK ELEKTRO FAKULTAS SAINS DAN TEKNOLOGI UNIVERSITAS SANATA DHARMA YOGYAKARTA 2013
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI TUGAS AKHIR
SELECTIVE COMPLIENT ARTICULATED ROBOT ARM (SCARA) BERBASIS ARDUINO DAN VISUAL BASIC 6.0 DALAM SISTEM PICK AND PLACE BENDA KERJA
Oleh YOHANES BERCHMAN ADYAPAKA APATYA NIM : 10 5114 026
PROGRAM STUDI TEKNIK ELEKTRO FAKULTAS SAINS DAN TEKNOLOGI UNIVERSITAS SANATA DHARMA YOGYAKARTA 2013
i
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI FINAL PROJECT
SELECTIVE COMPLIENT ARTICULATED ROBOT ARM (SCARA) BASE ON ARDUINO AND VISUAL BASIC 6.0 IN SYSTEM PICK AND PLACE OBJECT WORK
Author YOHANES BERCHMAN ADYAPAKA APATYA NIM : 10 5114 026
ELECTRICAL ENGINEERING PROGRAM STUDY SAINS AND TECHNOLOGY FACULTY SANATA DHARMA UNIVERSITY YOGYAKARTA 2013 ii
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI HALAMAN PBRSETUJUAII TUGAS AKHIR
SELECTIVE COMPLIANT ARTICULATED ROBOT ARM
(scARA) BERBASTS ARDUTNO DAN VTSUAL BASrC 6.0
DALAM SISTEM PICK AI\D PLACE BENDA KERJA
Oleh
:
Yohanes B erchman Ad]rapaka Apat-va NIM : 105114026
telah disetujui oleh
:
Pembimbing
Tanggal
Martanto, S.T., M.T.
l1l
:
2t- oz- Lo 6
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
HALAMAN PENGESAHAN TUGAS AKHIR
SELECTIVE COMPLIANT ARTICULATED ROBOT ARM (SCARA) BEREBASIS ARDUINO DAN VISUAL BASIC 6.0 DALAM SISTEM PICK AND PLACE BBNDA KERJA Oleh:
Yohanes Berchman Adlzapaka Apatya NIM: 105114026
Telah dipertahankan di depan Panitia Penguji Pada tanggal 12 Februari2073 Dan dinyatakan memenuhi syarat
Susunan Panitia Penguji
Nama Lengkap
Ketua
Ir. Tjendro, M.Kom.
Anggota
Martanto, S.T., M.T.
Anggota
Ir. Th. Prima Ari Setiyani, M.T.
Yogyakarta, 2 I Februari 2013 Fakultas Sains dan Teknologi
Universitas Sanata Dharma
Heruningsih Prima Rosa, S.Si., M.Sc.
tv
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI PERI\-YATAAi\ KEASLIAN KARYA
Saya menyatakan dengan sesungguhnya bahwa tugas akhir yang saya tulis
ini tidak
memuat karya atau bagian karya orang 1ai4 kecuali yang telah disebutkan dalam kutipan dan daftar pustak4 sebagaimana layaknya karya ilmiah.
Yogyakarta"I I Februari 20 13
Y,B. Adyapaka Apatya
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
Halaman Persembahan dan Motto :
Hidup ini sekarang,,,, Satu detik yang lalu sudah bukan menjadi milikmu,,,, Satu detik yang akan datang belum menjadi milikmu,,,,
Dengan ini kupersembahkan karyaku ini untuk..... Tuhan Yesus Pembimbingku yang setia, Keluargaku tercinta, Teman-teman seperjuanganku, Dan semua orang yang mengasihiku, Terima Kasih untuk semuanya.......
vi
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
HALAMAN PERNYATAAN PBRSETUJUAN PUBLIKASI KARYA ILMIAH UNTUK KEPENTINGAN AKADEMIS Yang bertanda tangan di bawah ini, saya mahasiswa Universitas Sanata Dharma
Nama
: Yohanes Berchman
:
Adyapaka Apatya
Nomor Mahasiswa : 105114026
Demi pengembangan ilmu pengetahuan, saya memberikan kepada Perpustakaan Universitas Sanata Dharma karya ilmiah saya yang berjudul
:
SELECTIVE COMPLIANT ARTICULATED ROBOT ARM (SCARA) BERBASIS ARDUINO DAN VISUAL BASIC 6.0 DA AM SISTEM PICK AND PLACE BENDA KERJA beserta perangkat yang diperlukan (bila ada). Dengan demikian saya memberikan kepada Perpustakaan Universitas Sanata Dharma hak untuk menyimpan, mengalihkan dalam bentuk
media lain, mengelolanya dalam bentuk pangkalan data, mendistribusikan secara terbatas, dan mempublikasikannya
di internet atau media lain untuk
kepentingan akademis tanpa perlu
meminta ijin dari saya maupun memberikan royalty kepada saya selama tetap mencantumkan nama saya sebagai penulis.
Demikian pernyataan ini yang saya buat dengan sebenarnya.
Yogyakarta,ll Februari
20 13
Y.B.Adyapaka Apatya
vll
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI INTISARI Manusia adalah makhluk paling berharga di dunia ini. Manusia menjadi sangat berharga jika dikaitkan dengan pekerjaan manusia yang memperhitungkan segi kesehatan, keamanan, dan tekanan kerja. Tak seharusnya manusia bekerja dalam lingkungan yang kotor. Perkembangangan teknologi saat ini mulai diarahkan ke arah memanusiakan manusia. Selective Compliant Articulated Robot Arm(SCARA) berbasis Arduino dan Visual Basic 6.0 dalam sistem Pick and Place benda kerja diharapkan mampu menjawab arah dasar teknologi untuk memanusiakan manusia. Pada penelitian ini, Selective Compliant Articulated Robot Arm(SCARA) berbasis Arduino dan Visual Basic 6.0 dalam sistem Pick and Place benda kerja menggunakan Arduino sebagai pengontrol kerja dan menggunakan Visual Basic 6.0 sebagai user interfacenya. Aktuator untuk menggerakkan SCARA berupa motor stepper dan silinder pneumatik. End effector yang dipakai dalam sistem ini berupa sucker untuk mengambil benda kerja. Limit Switch dipakai untuk mendeteksi referensi gerakan awal SCARA. SCARA akan bekerja jika ada masukan posisi dan perintah-perintah lainnya yang dimasukkan oleh user melalui GUI. Selanjutnya masukan yang berasal dari user akan dikirimkan ke Arduino oleh GUI. Arduino akan mengeksekusi masukan menjadi keluaran yang berupa gerakan SCARA untuk mengambil dan menaruh benda kerja sesuai dengan masukan yang diterima Arduino. Selective Compliant Articulated Robot Arm(SCARA) berbasis Arduino dan Visual Basic 6.0 dalam sistem Pick and Place benda kerja telah dibuat. Akan tetapi, unjuk kerja SCARA masih belum dapat bekerja karena hardware lengan tidak mampu digerakkan oleh aktuator. Walaupun demikian, secara sub sistem sudah dapat bekerja dengan baik. Kata kunci : SCARA, Arduino, Visual Basic 6.0, Graphical User Interface, Motor Stepper, Limit switch, Sistem Pneumatik, Pick and Place.
viii
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI ABSTRACT Human being is most valuable creature in this world. Human being become very valuable if related to work of human being reckoning health facet, security, and job pressure. Do not human being ought to work in dirty environment. Technology in this time start to be pointed at direction humanize human being. Selective Compliant Articulated Rrobot Arm (SCARA) Base on Arduino and Visual Basic 6.0 in System Pick and Place Object Work can answer elementary direction of technology to humanize human being. At this research, Selective Compliant Articulated Robot of Arm(SCARA) being based on Arduino and is Visual Basic 6.0 in system of Pick Place work object and use Arduino as controller work and use Visually Basic 6.0 as user interface. Actuatorr to move SCARA in the form of motor of stepper cylinder and of pneumatik. Effector End weared in this system in the form of sucker to take work object. Limit Switch weared to detect movement reference early SCARA. SCARA will work if there is position input and other comands which included by user through GUI. Hereinafter input coming from user will be delivered to Arduino by GUI. Arduino will execute input become output which in the form of movement of SCARA to take and put object work as according to accepted by input Arduino. Selective Compliant Articulated Robot of Arm(Scara) being based on Arduino and is Visual Basic 6.0 in system of Pick Place Object Work have been made. However, work of SCARA still not yet earned to work because arm hardware unable to be moved by aktuator. Even though, subly system have earned to work better. Keyword : SCARA, Arduino, Visual Basic 6.0, Graphical User Interface, Motor of Stepper, Limit Switch, System of Pneumatik, Pick And Place.
ix
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI KATA PENGANTAR Puji syukur penulis panjatkan kepada Tuhan Yesus Kristus atas karunia
dan
anugerah-Nya serta dampingan-Nyu, sehingga tugas akhir yang berjudul "Selective Compliant Articulated Robot Arm (SCARA) berbasis Arduino dan Visual Basic 6.0 untuk
Pick and Place Benda Kerja" dapat diselesaikan. Penulis mengucapkan terimakasih kepada segenap pihak yang telah memberikan doa, dorongan, bantuan, dan bimbingan dalam menyelesaikan tugas akhir ini.
1.
Dekan Fakultas Sains dan Teknologi Universitas Sanata Dharma Yogyakarta.
2. 3.
Ketua Program Studi Teknik Elektro Universitas Sanata Dharma Yogyakarta.
Bapak Martanto, S.T., M.T., selaku dosen pembimbing dan dosen pendamping akademik yang senantiasa memberikan bimbingan,
kritik, saran serta
dorongan
bagi penulis.
, 4.
Ibu Ir. Th. Prima Ari Setiyani, M.T. dan Bapak Ir. ljendro, M.Kom. selaku dosen penguji tugas akhir yang banyak membuka pemikiran saya.
5. Bapak Ibu dosen serta laboran
Teknik Elektro yang telah mendampingi penulis
selama menimba ilmu.
6. Segenap Staf Sekretariat Fakultas Sains dan Teknologi 7. Kedua orang tua penulis, khususnya Bapak Edy Suyanta Macarius
yang dengan
sabar memberikan inspirasi hidup untuk penulis.
8. Adikku yang selalu hadir mewamai kehidupan penulis. 9. Kekasihku atas dukungan, doa, cinta, perhatian, dan kasih sayang. 10. Teman-teman Teknik Elektro angkatan 2007-2011 yang menemani penulis selama
belajar di Teknik Elektro.
ll.Nugroho Budi Wicaksono S.T, teman sekaligus guru yang telah membantu
dan
membimbing penulis dalam menyelesaiakan tugas akhir. 12. Semua pihak yang tidak dapat disebutkan satu persatu,
Penulis menyadari bahwa dalam penyusunan laporan akhir
ini
masih banyak
kekurangannya. Oleh karena itu, penulis mengharapkan masukan, kritik dan saran yang membangun agar skripsi ini menjadi lebih baik sehingga dapat bermanfaat bagi kita. Penulis
Y.B. Adyapaka Apatya
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
DAFTAR ISI HALAMAN JUDUL ............................................................................................................ i TITLE PAGE ....................................................................................................................... ii HALAMAN PERSETUJUAN ........................................................................................... iii HALAMAN PENGESAHAN ........................................................................................... iv PERNYATAAN KEASLIAN KARYA ............................................................................. v HALAMAN PERSEMBAHAN DAN MOTTO ............................................................... vi LEMBAR PERNYATAAN PERSETUJUAN PUBLIKASI KARYA ILMIAH UNTUK KEPENTINGAN AKADEMIS ........................................................................ vii INTISARI ......................................................................................................................... viii ABSTRACT ........................................................................................................................ ix KATA PENGANTAR ........................................................................................................ x DAFTAR ISI ...................................................................................................................... xi DAFTAR GAMBAR ........................................................................................................ xiv DAFTAR TABEL ........................................................................................................... xvii DAFTAR LAMPIRAN ................................................................................................. xviii BAB I PENDAHULUAN ................................................................................................... 1 1.1 Latar Belakang ............................................................................................................. 2 1.2 Tujuan dan Manfaat .................................................................................................... 2 1.3 Batasan Masalah ......................................................................................................... 2 1.4 Metodologi Penelitian ................................................................................................. 2 BAB II DASAR TEORI ...................................................................................................... 5 2.1 Manipulator Robot ....................................................................................................... 5 2.2 Mikrokontroler ATmega 328 ...................................................................................... 8 2.3 Arduino Uno ............................................................................................................... 9 2.4 Visual Basic .............................................................................................................. 12 2.5 Kinematika Lengan Robot ........................................................................................ 14 2.6 Motor Stepper ............................................................................................................ 16 2.7 Driver Motor Stepper ................................................................................................ 19 2.8 MOSFET ................................................................................................................... 19 xi
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 2.9 Optocoupler ............................................................................................................... 19 2.10 Limit Switch ........................................................................................................... 20 2.11 Pengendalian Untai Terbuka ................................................................................... 20 2.12 Sistem Pneumatik .................................................................................................... 21 BAB III RANCANGAN PENELITIAN ......................................................................... 26 3.1 Diagram Block Sistem ............................................................................................... 26 3.2 Perancangan Hardware ............................................................................................. 27 3.2.1 Hardware Mekanik ............................................................................................. 27 3.2.2 Hardware Elektrik .............................................................................................. 29 3.2.2.1 Minimum Sistem ATmega 328 .................................................................... 30 3.2.2.2 Driver Motor Stepper .................................................................................. 30 3.2.2.3 Limit Switch ................................................................................................. 32 3.2.2.4 Elektropneumatik ........................................................................................ 32 3.3 Perancangan Perangkat Lunak .................................................................................. 35 3.3.1 Perancangan Tampilan Program Visual Basic ................................................... 35 3.3.2 Diagram Alir Program Visual Basic .................................................................. 37 3.3.3 Diagram Alir Arduino ........................................................................................ 39 3.3.3 Subrutin Limit Switch ......................................................................................... 39 BAB IV HASIL DAN PEMBAHASAN .......................................................................... 43 4.1 Hardware Mekanik ................................................................................................... 43 4.1.1
Bentuk Meja ................................................................................................. 43
4.1.2
Bentuk Hardware SCARA ............................................................................ 44
4.1.3
Bentuk Grid Koordinat Posisi ...................................................................... 44
4.1.4
Assembly Hardware ..................................................................................... 45
4.2 Hardware Elektrik .................................................................................................... 45 4.2.1
Hardware Aktuator ...................................................................................... 45
4.2.1.1 Pengamatan dan Pembahasan Motor Stepper .......................................... 46 4.2.1.2 Pengamatan dan Pembahasan Pneumatik ................................................. 47 4.2.2
Hardware Rangkaian Elektrik ...................................................................... 48
4.2.2.1 Rangkaian Driver Motor Stepper ............................................................. 48 4.2.2.2 Rangkaian Driver Solenoide ................................................................... 49 4.2.2.3 Regulator Tegangan .................................................................................. 50 4.2.2.4 Rangkaian Limit Switch ............................................................................ 52
xii
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 4.3 Software .................................................................................................................... 53 4.3.1
Program User Interface Menggunakan Visual Basic 6.0 (GUI SCARA) ..... 53
4.3.1.1 Program Simulasi .................................................................................... 55 4.3.1.2 Program Kalkulasi ................................................................................... 59 4.3.1.3 Program Komunikasi .............................................................................. 62 4.3.2
Program Arduino sebagai Kontroler SCARA ............................................. 66
4.4 Pengujian Tingkat Keberhasilan ............................................................................... 68 4.4.1
Pengujian sub sistem Arduino .................................................................... 68
4.4.2
Pengujian sistem SCARA berbasis GUI dan Arduino ..................................... 70
BAB V KESIMPULAN DAN SARAN ........................................................................... 71 DAFTAR PUSTAKA ................................................................................................................ 72 LAMPIRAN ................................................................................................................................ 73
xiii
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI DAFTAR GAMBAR Gambar 1.1 Bagan sistem SCARA ....................................................................................... 3 Gambar 2.1 Konfigurasi Cartesian ....................................................................................... 6 Gambar 2.2 Konfigurasi Cylindrical .................................................................................... 6 Gambar 2.3 Konfigurasi Polar .............................................................................................. 7 Gambar 2.4 Konfigurasi Articulated .................................................................................... 7 Gambar 2.5 Konfigurasi SCARA .......................................................................................... 8 Gambar 2.6 Modul Arduino Uno ....................................................................................... 10 Gambar 2.7 Konfigurasi pin ATmega328 pada Arduino Uno ........................................... 10 Gambar 2.8 Tampilan Pemrograman Arduino ................................................................... 11 Gambar 2.9 Jendela Visual Basic 6.0 ................................................................................. 13 Gambar 2.10 Konfigurasi Robot Tangan Planar 2 Sendi ................................................... 14 Gambar 2.11 Cara Kerja Motor Stepper ............................................................................. 17 Gambar 2.12 Mode Fullstep ............................................................................................... 18 Gambar 2.13 Mode Halfstep .............................................................................................. 18 Gambar 2.14 Gambar Limit Switch ................................................................................... 20 Gambar 2.15 Model pengendalian untai terbuka ............................................................... 21 Gambar 2.16 Diagram Alir Sistem Pneumatik ................................................................... 21 Gambar 2.17 Gambar Silinder Aksi Tunggal ..................................................................... 22 Gambar 2.18 Gambar Silinder Aksi Ganda ........................................................................ 22 Gambar 2.19 Cara Menggambar dan Membaca Katub Pneumatik .................................... 23 Gambar 2.20 Ringkasan Katup Penyearah dari Macam-macam Katup Pneumatik ................................................................................................................ 24 Gambar 2.21 Jenis Kontrol Katup Secara Manual ............................................................. 24 Gambar 2.22 Jenis Kontrol Katup Secara Mekanik ........................................................... 25 Gambar 2.23 Jenis Kontrol Katup Secara Pneumatik ........................................................ 25 Gambar 2.24 Jenis Kontrol Katup Secara Elektrik ............................................................. 25 Gambar 3.1 Diagram Block Sistem ..................................................................................... 26 Gambar 3.2 Rancang Bangun Lengan Robot ...................................................................... 27 Gambar 3.3 Gambar 3.3 Gambar meja untuk SCARA ...................................................... 28 Gambar 3.4 Rancangan Milimeter Block untuk Penentuan Posisi ..................................... 28 Gambar 3.5 Rancangan Area Kerja serta Penentuan Zero Point Lengan Robot ................ 29 xiv
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI Gambar 3.6 Minimum system ATmega328 ........................................................................ 30 Gambar 3.7 Rangkaian driver motor stepper ..................................................................... 31 Gambar 3.8 Driver untuk solenoide silinder ...................................................................... 33 Gambar 3.9 Driver solenoide untuk vacum generator ....................................................... 33 Gambar 3.10 Diagram sistem pneumatik ........................................................................... 34 Gambar 3.11 Tampilan Visual Basic 6.0 ............................................................................ 35 Gambar 3.12 Diagram alir GUI (Graphical User Interface) .............................................. 37 Gambar 3.13 Diagram alir simulasi .................................................................................... 39 Gambar 3.14 Diagram alir Arduino posisi 1 ...................................................................... 40 Gambar 3.14 Diagram alir Arduino posisi 2(lanjutan) ....................................................... 40 Gambar 3.15 Gambar diagram alir limit switch ................................................................. 41 Gambar 4.1 Gambar meja tempat plant SCARA diletakkan. .............................................. 43 Gambar 4.2 Gambar hardware SCARA .............................................................................. 44 Gambar 4.3 Gambar grid koordinat posisi ......................................................................... 44 Gambar 4.4 Hardware mekanik SCARA ............................................................................ 45 Gambar 4.5 Gambar motor stepper 1 dan motor stepper 2 ................................................. 46 Gambar 4.6 Gambar solenoide elektrik dan vacuum generator ......................................... 47 Gambar 4.7 Gambar indikator solenoide menyala ............................................................. 48 Gambar 4.8 Driver motor stepper tampak depan ............................................................... 49 Gambar 4.9 Driver motor stepper tampak atas ................................................................... 49 Gambar 4.10 Driver solenoide ........................................................................................... 50 Gambar 4.11 Gambar schematik regulator tegangan ......................................................... 51 Gambar 4.12 Gambar rangkaian regulator tegangan .......................................................... 51 Gambar 4.13 Gambar schematik rangkaian limit switch .................................................... 52 Gambar 4.14 Gambar rangkaian limit switch SCARA ....................................................... 53 Gambar 4.15 Tampilan awal GUI SCARA ......................................................................... 54 Gambar 4.16 Tampilan utama GUI SCARA ....................................................................... 54 Gambar 4.17 Gambar tampilan simulasi ............................................................................ 55 Gambar 4.18 Gambar koding area kerja SCARA pada GUI ............................................... 56 Gambar 4.19 Gambar hasil area kerja GUI SCARA ........................................................... 56 Gambar 4.20 Gambar listing program penentuan peletakan titik pada simulasi posisi pertama .............................................................................................. 57 Gambar 4.21 Gambar listing program Visual Basic 6.0 untuk menampilkan
xv
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI posisi kedua pada simulasi ................................................................................................. 58 Gambar 4.22 Gambar tampilan masukan koordinat oleh user ............................................ 59 Gambar 4.23 Koding Visual Basic 6.0 deklarasi variabel perhitungan jumlah pulsa untuk posisi satu dan posisi dua ................................................................... 60 Gambar 4.24 Koding perhitungan jumlah pulsa untuk posisi satu dan posisi dua ............. 60 Gambar 4.25 Koding perhitungan jumlah pulsa untuk posisi satu dan posisi dua ............. 61 Gambar 4.26 Gambar tampilan hasil kalkulasi .................................................................. 61 Gambar 4.27 Gambar tombol GUI SCARA mode tidak sedang komunikasi dengan Arduino .................................................................................................................. 62 Gambar 4.28 Gambar tombol komunikasi mode komunikasi antar GUI SCARA dengan Arduino ................................................................................................................. 62 Gambar 4.29 Gambar koding Visual Basic 6.0 untuk membuka komunikasi dengan Arduino .................................................................................................................. 63 Gambar 4.30 Koding Visual Basic 6.0 tombol disconect .................................................... 63 Gambar 4.31 Koding Visual Basic 6.0 untuk memberikan perintah nesting ke Arduino .. 63 Gambar 4.32 Koding Visual Basic 6.0 untuk perintah nesting .......................................... 64 Gambar 4.33 Koding deklarasi variabel komunikasi data .................................................. 64 Gambar 4.34 Koding komunikasi data dari Visual Basic 6.0 ke Arduino ......................... 64 Gambar 4.35 Penulisan pulsa di GUI SCARA .................................................................... 65 Gambar 4.36 Koding menampilkan pulsa berupa 3 digit angka di GUI ............................ 65 Gambar 4.37 Koding pengiriman data dari Visual Basic 6.0 ke Arduino .......................... 66 Gambar 4.38 Gambar grafik pengujian Arduino untuk motor stepper 1 ............................ 68 Gambar 4.39 Gambar grafik pengujian Arduino untuk motor stepper 2 ............................ 69
xvi
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI DAFTAR TABEL Tabel 2.1 Konfigurasi dan deskripsi pin ATmega328 .......................................................... 9 Tabel 3.1 Alokasi pin ATmega328 dengan L293 ............................................................... 31 Tabel 3.2 Alokasi pin ATmega328 dengan limit switch .................................................... 32 Tabel 3.3 Alokasi pin Arduino untuk aktuator pneumatik (solenoide) ............................... 32 Tabel 3.4 Objek pada tampilan GUI ................................................................................... 36 Tabel 4.1 Hasil pengamatan motor stepper 1 dan motor stepper 2 ..................................... 46 Tabel 4.2 Tabel pengujian driver motor stepper ................................................................ 49 Tabel 4.3 Tabel pengujian rangkaian driver solenoide ...................................................... 50 Tabel 4.4 Tabel pengujian rangkaian regulator tegangan ................................................... 51 Tabel 4.5 Tabel pengujian limit switch ............................................................................... 52 Tabel 4.6 Tabel perbandingan output Arduino .................................................................... 67
xvii
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI DAFTAR LAMPIRAN L1.
Halaman Hasil Pengujian Sub Sistem Arduino .................................................................... L1
L3.
Listing Program Arduino ....................................................................................... L3
L4.
Listing Program Visual Basic 6.0 .......................................................................... L15
L6.
Hasil Perancangan Hardware Mekanik ................................................................ L27
L11. Rangkaian Elektrik Output .................................................................................... L35 L12. Name Plate Motor Stepper .................................................................................... L36 L13. Name Plate Solenoide ........................................................................................... L37
xviii
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
1
BAB I PENDAHULUAN 1.1 Latar Belakang Palletizing adalah suatu operasi mengambil dan meletakkan barang/produk dari suatu pallet/tempat lain ke pallet yang lain dengan urutan dan berjajar teratur[1]. Palletizing juga sering disebut dengan istilah pick and place. Dalam dunia industri, proses ini dikategorikan sebagai proses non produktif, namun mempunyai peranan yang sangat penting serta berpengaruh terhadap hasil produksi yang dapat dicapai. Bisa dibayangkan jika dalam suatu proses produksi terjadi keterlambatan serta ketidaktepatan bahan, hal tersebut tentu akan mengurangi jumlah pencapaian hasil produksi. Pada kebanyakan pabrik, palletizing masih dikerjakan oleh manusia. Manusia sebenarnya tidak cocok dalam pekerjaan ini karena kondisi fisik dari manusia yang terbatas. Manusia tidak dapat bekerja secara stabil terlebih menyangkut pekerjaan yang menuntut kecepatan dan ketepatan. Masalah lain yang muncul ketika memekerjakan manusia adalah resiko kecelakaan kerja yang ada dalam setiap proses produksi. Hal tersebut menambah alasan tidak memekerjakan manusia untuk berinteraksi secara langsung dalam proses produksi, terlebih dalam palletizing. Robot arm atau lengan robot diharapkan dapat menjadi salah satu solusi untuk membantu peranan manusia agar manusia tidak berhubungan langsung dengan halhal yang tidak seharusnya dilakukan manusia. Ada beberapa konfigurasi dari lengan robot yang dikenal. Konfigurasi adalah cara untuk mengklasifikasikan di dalam robot-robot industri. Konfigurasi merujuk pada bentuk geometri dari manipulator robot, yaitu bagaimana cara hubungan dari manipulator pada setiap joint. Robotic Industries Association (RIA) mendefenisikan robot sebagai manipulator yang didesain untuk memindahkan material, benda, alat atau peralatan tertentu lewat pergerakan yang terprogram untuk melakukan berbagai macam tugas. Salah satunya yang dipakai yaitu konfigurasi Selective Complient Articulated Robot Arm (SCARA). Konfigurasi ini adalah gabungan antara konfigurasi lengan artikulasi dan konfigurasi lengan silindris[2]. Konfigurasi SCARA merupakan konfigurasi yang terbaru, yang dikembangkan oleh Professor Hiroshi Makino dari Universitas Yamanashi, Jepang. Seperti namanya, konfigurasi ini telah dirancang untuk memberikan pergerakan pada arah
1
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
2
horizontal[2]. Pemilihan menggunakan konfigurasi SCARA, dikarenakan konfigurasi robot ini memiliki derajat yang tinggi akan pengulangan posisi[3]. Pada penelitian ini, penulis akan membuat robot arm dengan konfigurasi SCARA yang mempunyai 3 Degree of Freedom (DOF) , yang terdiri dari 2 lengan yang bergerak secara rotasi (revoluted) dan 1 lengan yang bergerak secara linier (prysmatic). Gerakan robot dikendalikan melalui komputer dengan menggunakan perangkat lunak Visual Basic. Data dari komputer kemudian akan dikirim ke mikrokontroler ATmega 328 yang bertindak sebagai kontroler robot arm. Mikrokontroler ini terletak pada sebuah board yang dikenal dengan Arduino. Mikrokontroler akan mengolah data yang diterima dan menggubahnya menjadi bentuk gerakan lengan robot berdasarkan data yang diberikan. Lengan robot akan bergerak secara terus menerus sesuai dengan posisi yang diberikan kepadanya. Sucker dipakai sebagai end effector, yaitu device untuk mengambil/membawa benda kerja.
1.2 Tujuan dan Manfaat Tujuan penelitian ini adalah untuk membuat robot arm dengan konfigurasi SCARA berbasis Arduino dan Visual Basic 6.0 yang diaplikasikan dalam sistem pick and place untuk mengambil benda kerja. Manfaat dari penelitian ini adalah sebagai salah satu solusi menjawab kebutuhan industri, yaitu dalam hal palletizing atau pick and place. Selain itu, robot arm ini dapat dipakai sebagai modul pembelajaran, khususnya untuk bidang pengajaran robotika, mikrokontroler, dan aktuator.
1.3 Batasan Masalah a. Lengan robot dengan 3 Degree of Freedom (DoF), yakni 2 Revoluted (2R) dan 1 Prysmatic (1P) serta end effector berupa sucker. b. Area kerja untuk gerakan rotasi sebesar 180° dan untuk gerakan liniernya sebesar 25 cm secara vertikal. c. Kontroler yang dipakai adalah Arduino Uno. d. Aplikasi lengan robot sebatas memindahkan barang dari satu posisi ke posisi lainnya. e. Benda kerja berupa tabung pipih (dalam prototype ini benda kerja menggunakan koin karambol). f. Aspek dinamika benda rigid tidak diperhitungkan dalam penelitian ini.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
3
1.4 Metodologi Penelitian Metodologi penelitian yang dipakai dalam penelitian ini adalah : a. Pengumpulan referensi-referensi dari berbagai buku, jurnal serta sumber-sumber yang relevan dari internet. b. Perancangan sub sistem baik meliputi sub sistem hardware (elektrik dan mekanik) maupun sub sistem software (user interface). Perancangan ini bertujuan untuk mencari bentuk sistem, sehinga nantinya didapatkan bentuk sistem yang mampu bekerja secara optimal. Tentunya dengan catatan bahwa komponen penyusun sistem mudah didapat di pasaran.
Gambar 1.1 Bagan sistem SCARA c. Pembuatan subsistem hadware dan software meliputi sistem mekanik, sistem elektrik serta programming. Pada Gambar 1.1 dapat dilihat sub-sistem yang akan dibangun untuk membentuk sistem kerja SCARA. Bagian pertama adalah antar muka pengguna yang berbasis PC(Personal Computer) menggunakan software Visual Basic 6.0. Masukan berupa posisi awal benda kerja dan posisi yang akan dituju oleh benda kerja dari pengguna akan dikirimkan oleh komputer untuk diproses oleh kontroler. Kontroler yang dipakai menggunakan ATmega 328 yang terdapat dalam board Arduino Uno. Masukan tersebut akan diolah oleh kontroler dan dikeluarkan dalam bentuk gerakan aktuator. Terdapat empat buah aktuator dalam lengan robot ini, yang terdiri dari dua buah motor stepper dan dua buah solenoide. Lengan 1 dan 2 yang bergerak secara revoluted menggunakan motor stepper. Lengan 3 yang bergerak secara prismatic menggunakan aktuator berupa pneumatic system yang berupa solenoide dan silinder. Sucker digunakan sebagai end effector lengan robot. Sucker digerakan menggunakan
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
4
aktuator solenoide, vacum generator, dan PE Converter (Pneumatic to Elektrik Converter). d. Assembling ketiga sub sistem menjadi suatu sistem besar yaitu SCARA. e. Pengujian dan pengambilan data. Pengujian dan pengambilan data penelitian dilakukan dengan membandingkan data (posisi) yang terdapat pada Visual Basic 6.0 dengan kesesuaian data yang terdapat pada plant. f. Analisa data dan penyimpulan hasil penelitian. Analisa data didasarkan pada kesesuaian data yang dimasukkan ke dalam komputer (input) dengan data dari plant (output). Penyimpulan akhir dilakukan dengan melihat besarnya error antara data dari komputer dan juga data dari plant. Indikator keberhasilan terletak pada keakuratan data yang diberikan dari komputer dan data realtime pada plant.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI BAB II DASAR TEORI Bab
ini
menjelaskan
mengenai
teori-teori
mengenai
komponen-komponen
pendukung, perhitungan serta teknik yang dipakai pada penelitian ini. Komponenkomponen yang dipakai pada penelitian ini antara lain Motor Stepper Unipolar, Arduino Uno, Mikrokontroler ATmega 328, software Visual Basic 6.0 dan rangkaian elektronika yang dibutuhkan untuk penelitian ini. Rangkaian elektronika terdiri rangkaian driver motor stepper dan rangkaian driver untuk solenoide. Perhitungan posisi lengan robot menggunakan perhitungan kinematika, yaitu kinematika mundur (Invers Kinematics). Pengendalian sistem yang dipakai sistem untai terbuka (open loop) karena aktuatornya menggunakan motor stepper. 2.1
Manipulator Robot Manipulator adalah suatu peralatan yang menyerupai lengan manusia dan dapat
memindahkan benda dari suatu tempat ke tempat lainnya dalam ruang tiga dimensi[4]. Suatu benda dapat disebut manipulator jika mempunyai link dan joint. Link adalah benda rigid yang menyerupai tulang lengan manusia. Joint adalah sambungan yang dibentuk oleh dua dua buah link yang saling bersinggungan. Dengan adanya link dan joint akan menghasilkan gerakan atau suatu mobilitas dari manipulator, baik gerakan prismatik maupun gerakan rotasi. Gerakan prismatik adalah gerakan lurus, dapat berupa gerakan lurus secara vertikal maupun gerakan lurus secara horizontal. Rotasi adalah gerakan berputar. Mobilitas atau gerakan tersebut dikenal dengan istilah derajat kebebasan (degree of freedom). Setiap manipulator yang mempunyai satu link dan satu joint mempunyai mempunyai satu DoF (degree of freedom)[5]. Manipulator dibuat sesuai dengan pekerjaan yang akan dilakukan atau dikehendaki untuk dilakukan manipulator. Berbagai macam pekerjaan yang diperlukan memunculkan berbagai macam konfigurasi manipulator. Macam-macam konfigurasi manipulator berpengaruh terhadap ruang kerja bagi gerakan manipulator. Gerakan manipulator dapat berupa dua gerakan dasar, yaitu gerakan linear dan gerakan rotasi. Ada lima macam konfigurasi manipulator yang saat ini dipakai. Penglasifikasian konfigurasi manipulator didasarkan pada gerakan yang dapat dihasilkan oleh manipulator. Kelima konfigurasi manipulator yaitu :
5
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
6
a. Konfigurasi cartesian
Gambar 2.1. Konfigurasi cartesian[6] Gambar 2.1 menggambarkan bentuk dari manipulator konfigurasi cartesian. Konfigurasi ini terdiri dari satu atau lebih joint prismatik dan akan menghasilkan gerakan linear yang dapat bergerak dalam bidang horizontal dan bidang vertikal. Area kerja (woekspace) yang dapat dibentuk oleh manipulator konfigurasi cartesian menyerupai bentuk balok. Work volume adalah lebar bidang dari area kerja dan work envelope adalah kedalaman/permukaan dari area kerja [6]. b. Konfigurasi cylindrical
Gambar 2.2. Konfigurasi cylindrical[6] Gambar 2.2 di atas adalah gambar dari konfigurasi manipulator cylindrical. Konfigurasi ini biasanya terbentuk dari gabungan antara joint prismatik dan revolute. Perbedaan konfigurasi cylindrical dengan konfigurasi cartesian pada gerakan yang
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
7
dihasilkan dapat berupa gerakan rotasi. Area kerja yang dibentuk oleh konfigurasi ini menyerupai bentuk tabung. c. Konfigurasi polar
Gambar 2.3. Konfigurasi polar[6] Gambar 2.3 adalah gambar yang menunjukan konfigurasi manipulator polar (spherical). Gambar 2.3 menunjukkan pada konfigurasi ini merupakan gabungan dari tiga macam joint, yaitu joint untuk gerakan rotasi secara vertikal, gerakan rotasi secara horisontal, dan joint untuk gerakan prismatik. Area kerja yang dihasilkan oleh konfigurasi ini menyerupai setengah bola. d. Konfigurasi articulated
Gambar 2.4 Konfigurasi articulated[6] Gambar 2.4 menggambarkan konfigurasi ariculated. Konfigurasi ini adalah konfigurasi yang konfigurasi yang paling mirip dengan lengan manusia[6]. Konfigurasi articulated pada Gambar 2.4 terdiri dari gabungan tiga gerakan rotasi. Area kerja yang dibentuk oleh konfigurasi ini hampir sama dengan konfigurasi polar yaitu membentuk
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
8
ruang menyerupai setengah bola. Perbedaan dari kedua konfigurasi tersebut terletak padavariasi gerakan uang lebih banyak untuk konfigurasi articulated. Hal ini dikarenakan konfigurasi articulated terdiri dari gerakan rotasi untuk semua link. e. Konfigurasi SCARA
Gambar 2.5 Konfigurasi SCARA[6] Gambar 2.5 adalah gambar konfigurasi SCARA. Konfigurasi ini adalah konfigurasi yang paling baru. konfigurasi SCARA merupakan gabungan dari gerakan linear dan gerakan rotasi. Gerakan linear memberikan keleluasaan untuk bidang vertikal. Gerakan rotasi memberikan keleluasaan untuk bidang horizontal. Perpaduan dari dua gerakan tersebut menghasilakan area kerja menyerupai tabung.
2.2
Mikrokontroler ATmega 328 Mikrokontroler adalah
suatu chip atau IC (Integrated Circuit) yang dapat
ditanamkan program menggunakan komputer sehingga dapat digunakan untuk menerima masukan kemudian memprosesnya sehingga menghasilkan keluaran yang sesuai dengan yang keluaran yang diinginkan. Dalam penelitian ini digunakan mikrokontroler ATmega328 karena kompatibilitasnya dengan Arduino dan fiturnya cukup lengkap. ATmega328 memiliki fitur 32 kByte downloadable flash memory, 1 kByte Electrically Erasable Programmable Read-Only Memory (EEPROM), 2 kByte internal Static RandomAccess Memory (SRAM), 2 Timer/Counter 8 bit dan 1 Timer/Counter 16 bit, 6 kanal PWM, Serial USART yang dapat diprogram, dan frekuensi kerja sampai dengan 20 MHz[7].
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
9
ATmega 328 memiliki bebrapa mode komunikasi. Salah satu di antaranya adalah USART. Universal Synchronous dan Asynchronous serial Receiver and Transmitter (USART) adalah salah satu mode pengiriman dan penerimaan data secara serial. USART dapat dipakai untuk transfer data antarmikrokontroler dan komputer yang memiliki fitur UART (Universal Asynchronus serial Receiver anf Transmitte). Untuk komunikasi dua arah (bi-directional), USART memiliki tiga sambungan, yaitu Rx (Receiver), Tx (Tramsmitter), dan GND (Ground). Tabel 2.1 Konfigurasi dan deskripsi pin ATmega328[8]
No Pin 7 8,22 14,15,16,17, 18,19,9,10
23,24,25,26, 27,28,1
2.3
Nama Pin Keterangan VCC Sumber tegangan GND Ground Masing-masing pin pada port B memiliki resistor pullup internal dan dapat digunakan sebagai 8 bit I/O digital. Port B pin PB6 dan pin PB7 terhubung dengan kristal 16 MHz, (PB7:0) tidak digunakan sebagai I/O. Pin PB1 - pin PB3 dapat digunakan sebagai output PWM. Masing-masing pin pada port C memiliki resistor pullPort C up internal dan dapat digunakan sebagai 7 bit I/O analog. (PC6:0) Pin PC6 digunakan sebagai input reset , tidak digunakan sebagai I/O.
2,3,4,5,6,11, 12,13
Port D (PD7:0)
20 21
AVcc Aref
Masing-masing pin pada port D memiliki resistor pullup internal dan dapat digunakan sebagai 8 bit I/O digital. Pin PD3 dapat digunakan sebagai output PWM. Konfigurasi alternatif port D dapat dilihat pada Tabel 2.2 Sumber tegangan untuk konversi analog ke digital Tegangan referensi untuk konversi analog ke digital
Arduino Uno Arduino adalah sebuah kit elektronik open source yang dirancang khusus untuk
memudahkan setiap orang dalam belajar membuat robot atau mengembangkan perangkat elektronik yang dapat berinteraksi dengan bermacam-macam sensor dan pengendali[9].
Arduino Uno adalah suatu perangkat keras dimana di dalamnya sudah terdapat mikrokontroler beserta sistem minimumnya. Perangkat ini menggunakan mikrokontroler ATMega 328. Arduino Uno adalah penerus dari Arduino Duemilanove[10]. Perangkat ini memiliki 14 pin input/output digital (6 pin di antaranya dapat dipakai sebagai output pulse
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
10
width modulation(PWM)) dan 6 pin input analog, koneksi USB (Universal Serial Bus), dan osilator 16 MHz. Pin input analog dapat dipakai sebagai pin input digital.
Gambar 2.6 Modul Arduino Uno[11] Pada gambar di bawah ini dapat dilihat konfigurasi pin dari mikrokontroler ATmega 328. Fungsi masing-masing port Arduino pada Gambar 2.7 dapat dilihat pada Tabel 2.1.
Gambar 2.7 Konfigurasi pin ATmega328 pada Arduino Uno[12] Spesifikasi board Arduino Uno dapat dilihat sebagai berikut : Mikrokontroler
: ATmega 328
Operating voltage
: 5 Volt
Input Voltage (recommended)
: 7-12V
Input Voltage (limits)
: 6-20V
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
11
Digital I/O
: 14 Pin (6 output PWM)
Analog Input
: 6 Pin
DC Current per I/O Pin
: 40 mA
DC Current for 3.3V Pin
: 50 mA
Flash Memory
: 32KB(0,5KB digunakan oleh bootloader)
SRAM
: 2 KB
EEPROM
: 1 KB
Clock Speed
: 16 MHz
Gambar 2.8 Tampilan pemrograman Arduino Gambar 2.8 di atas memberikan gambaran mengenai jendela pemrograman Arduino. Bahasa pemrograman yang dipakai dalam Arduino bukan menggunakan bahasa assembler yang relatif lebih sulit, akan tetapi pemrograman arduino menggunakan bahasa C yang disederhanakan dengan bantuan library-library Arduino.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 2.4
12
Visual Basic Visual basic merupakan suatu bahasa pemrograman yang dikembangkan dari bahasa
pemrograman BASIC (Beginners All-Purpose Symbolic Instruction Code) . Perbedaan antara Visual Basic dengan bahasa BASIC adalah pemrograman BASIC masih berorientasi pada text dan program dijalankan secara berurutan. Untuk itu bahasa BASIC disebut sebagai Interpreter. Sedangkan dalam Visual Basic dengan lingkungan grafiknya, pemrograman berorientasi obyek dan sudah merupakan compiler. Karena alasan inilah, banyak programmer baik yang sudah mahir maupun yang baru belajar bahasa pemrograman lebih senang menggunakannya. Kelebihan lain dari Visual Basic adalah kemampuannyan untuk mengkompilasi program dalam bentuk Native Code, yaitu optimasi pada saat prosesor mengkompilasi dan menjalankan program tersebut. Keuntungan yang didapat dari Native Code adalah kecepatannya dalam mengakses program, dimana hal ini hanya dapat ditemui pada aplikasi-aplikasi yang di-kompilasi dengan bahasa pemrograman C++[13]. Dalam segi komunikasi, terdapat dua cara yang disediakan Visual Basic. Komunikasi dapat dilakukan dengan menggunakan fitur langsung yang diberikan oleh Visual Basic (MSComm 6.0) dan juga dapat dilakukan dengan USART (menggunakan IC USART). Pada Gambar 2.9 memberikan gambaran mengenai jendela Visual Basic 6.0. Tampilan di atas akan ditemui ketika bekerja menggunakan Visual Basic 6.0. Ada beberapa pengertian dasar yang harus dimengerti ketika akan bekerja menggunakan Visual Basic [13], yaitu : a. Control, yaitu objek yang akan digunakan dalam pemrograman antarmuka. Kontrol yang digunakan adalah kontrol yang terdapat pada toolbox. b. Event, adalah aksi yang diberikan pada suatu kontrol, misalnya click pada kontrol tombol. c. Methods, adalah metode yang digunakan sebelum suatu objek diberi aksi, misalnya hide, visible,load, dan seterusnya. d. Object, disebut dengan objek jika suatu kontrol diberikan suatu aksi, karakteristik dan metode tertentu. e. Procedure, adalah sekumpulan perintah, fungsi urut-urutan bagaimana suatu program dijalankan. f. Properties, yaitu karakteristik yang melekat pada suatu objek. Misalnya karakteristik huruf, warna, bentuk, dan seterusnya.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
13
Gambar 2.9 Jendela Visual Basic 6.0 Keterangan : 1. Menu IDE (Integrated Development Environment) Visual Basic 2. Toolbar 3. Project Window 4. Properties Window 5. Form Designer 6. Code Window 7. Toolbox
2.5
Kinematika dan Dinamika Kinematika dan Dinamika sebenarnya adalah dua cabang ilmu mekanika yang
kaitannya tidak bisa ditinggalkan dalam pembuatan robot. Kinematika diartikan sebagai cabang ilmu yang membahas gerakan akan tetapi tanpa mempersoalkan gaya penyebab
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
14
suatu benda bergerak. ak. Sedangkan dinamika adalah suatu cabang ilmu mekanika yang mempelajari tentang gaya yang menyebabkan pergerakan suatu benda. Jika kita hanya menggambarkan gerak suatu benda, maka kita membatasi diri pada kinematika; sedangkan jika kita ingin menghubungkan menghubungk gerak suatu benda terhadap gaya-gaya gaya penyebabnya dan juga sifat / karakteristik benda yang bergerak tersebut, maka kita menghadapi m permasalahan dinamika[14]. ]. Hubungan yang sering dipakai dalam konteks kinematika adalah perpindahan, kecepatan serta percepatan. epatan. Dalam pembuatan lengan robot ini, konsep kinematika yang akan dipergunakan adalah tentang perpindahan. Kaitan perpindahan suatu benda dari suatu posisi ke posisi lainnya yaitu pergerakan. Pergerakan dibagi menjadi dua, pergerakan linear dan pergerakan rakan rotasi Sebagai contohnya ketika motor digerakkan untuk menggerakkan lengan robot, akan terjadi perpindahan sudut dari posisi satu ke posisi lainnya. Pergerakan motor tersebut termasuk dalam pergerakan rotasi. Inverse Kinematic adalah analisa kinematikk untuk mendapatkan besar sudut dari masing – masing joint jika kita mempunyaii data koordinat posisi (x,y,z)[15]. (x,y,z)
Gambar 2.10 Konfigurasi robot tangan planar 2 sendi (2 DOF)[16] DOF Gambar 2.10 menjelaskan mengenai perhitungan kinematika mundur untuk 2 DOF ( gerakan rotasi dari lengan 1 dan lengan 2). Jika kedudukan lengan lengan suatu titik yaitu titik P yang terletak pada koordinat (x,y) ( dinyatakan sebagai P(x,y)[16], ], maka :
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI , , ................................................................
15
(2.2)
Jika titik P adalah vektor penjumlahan lengan 1( , ) dan lengan 2( , ), maka : cos , sin .................................................... cos , sin ........................... cos cos ....................................... sin sin .......................................
(2.3) (2.4) (2.5) (2.6)
Dengan menggunakan rumus identitas trigonometri pada persamaan 2.7 dan Persamaan 2.8 maka didapatkan besarnya nilai x dan y: cos cos cos sin sin ............................. sin sin cos sin cos .............................. cos cos cos sin sin ............. sin sin cos cos sin ............
(2.7) (2.8) (2.9) (2.10)
Dengan menggunakan rumus trigonometri dan persamaan 2.9 serta 2.10, besarnya yaitu : cos
arccos #
........................................................
$ .................................................
(2.12)
............................................
(2.13)
&'( ) . (+, ) &'( ) . (+, )
tan
(2.11)
&'( ) . (+, ) $ &'( ) . (+, )
arctan #
...................................
(2.14)
Misal : Titik P (x,y) : (100,50) dengan l1 = 150 mm dan l2 = 100 mm, maka besarnya nilai dan yaitu : 100 50 150 100 arccos 2 2.150.100 arccos 0) 131,8°
50150 100 cos 131,8 100.100 sin 131,8 arctan 2 100150 100 cos 131,8 100.100 sin 131,8
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
16
4167,34 7454,76 arctan 6 : 4167,34 7454,76 4167,34 7454,76 arctan 6 : 4167,34 7454,76 3287,42 arctan 6 : 11621,76 arctan0,28 29,7° 2.6
Motor Stepper Motor stepper adalah salah satu jenis aktuator untuk rotary motion. Perbedaan
mendasar antara motor stepper dan motor DC magnet permanen adalah bila motor DC magnet permanent menggunakan gaya lawan untuk menolak kutub magnet, motor stepper justru menggunakan gaya tarik untuk menarik kutub magnet yang berlawanan sedekat mungkin ke posisi kutub magnet yang dihasilkan oleh kumparan[16]. Motor stepper bekerja dalam bentuk digital[17]. Motor stepper mengubah pulsapulsa listrik yang diberikan dan menjadikannya gerakan-gerakan diskrit rotor yang kemudian kita sebut dengan langkah (step)[18]. Karena pergerakannya berupa langkahlangkah (step) inilah maka motor ini dinamakan stepper. Motor akan berputar sesuai dari banyaknya
pulsa
yang
diberikan.
Dengan
kata
lain,
banyaknya
pulsa
akan
merepresentasikan berapa banyaknya putaran motor stepper. ;<=>
?@A°
BCDE FGHD
...........................................................
(2.1)
Dari persamaan 2.1 di atas[30], nilai step (pulsa) adalah jumlah pulsa yang digunakan untuk menggerakan motor stepper sebanyak satu putaran penuh dengan step angle tertentu. Step angle adalah sudut yang dapat digerakkan motor stepper setiap pemberian satu pulsa. Nilai 360° adalah sudut satu putaran penuh. Misal : Jika S = 0,9° , motor stepper digerakkan untuk sudut 30°, maka jumlah pulsa yang diberikan sebanyak : ;<=>
360° 0,9°/>KL
;<=> 400 pulsa
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
17
Motor stepper akan berputar satu putaran penuh jika diberi pulsa sebesar 400 pulsa. Jika motor stepper akan digerakkan sebesar 30° saja, maka jumlah pulsa yang diberikan : Pulsa = (30°/360°) x 400 = 33,33 pulsa Motor stepper sering digunakan sebagai aktuator terlebih dalam kaitannya dengan sistem yang membutuhkan pengendalian posisi. Motor stepper banyak digunakan pada sistem yang mempunyai kendali open loop[19]. Kelemahan dari motor ini adalah torsinya lebih rendah dibandingkan dengan motor DC serta tidak dapat dipakai untuk beban berlebih.
Gambar 2.11 Cara kerja motor stepper[20] Gambar 2.11 menjelaskan pergerakan stator terhadap rotor. Ketika lilitan 1A diberi pulsa, maka antara rotor dan kutub nomor 1A akan terjadi gaya tolak. Selanjutnya lilitan 2B, kemudian lilitan 1B diberi pulsa, akan terjadi gaya tolakan juga antara rotor dan kutub 2B. Jika pemberian pulsa diberikan secara terus menerus, maka rotor akan berputar terus menerus sesuai dengan pulsa yang diberikan ke lilitan 1 (1A,1B) dan lilitan 2 (2A,2B). Dalam penggunaan motor stepper, dikenal beberapa mode pergerakan stator terhadap rotor, di antaranya mode Fullstep dan mode Halfstep. Yang dimaksud mode full adalah pergerakan maksimum antara rotor terhadap stator[21]. Mode half adalah setengah dari pergerakan maksimum antara rotor dan stator. Mode full memiliki kecepatan maksimum yang dapat dilakukan oleh motor, namun besarnya torsi yang dihasilkan lebih rendah dibanding mode half. Gambar 2.12 dan Gambar 2.13 menjelaskan pemberian step motor untuk mode fullstep (Gambar 2.12) dan halfstep (Gambar 2.13).
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
Gambar 2.12 Mode fullstep[22]
Gambar 2.13 Mode halfstep[22]
18
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 2.7
19
Driver Motor Stepper Rangkaian driver adalah interface (antarmuka) antar rangkaian satu dengan
rangkaian yang lainnya. Rangkaian driver dibutuhkan untuk menjembatani keluaran dari satu rangkaian ke rangkaian yang mempunyai beda impedansi. Driver motor stepper adalah rangkaian yang digunakan untuk menjembatani antara rangkaian pengendali motor stepper dan motor stepper (rangkaian penggerak motor stepper). Ada banyak macam driver motor stepper, di antaranya menggunakan IC L293. L293 adalah IC untuk pengendalian motor (DC ataupun stepper). IC L293 merupakan sebuah IC Half Bridge. L293 dapat dipakai untuk menggerakkan dua buah motor DC atau satu buah motor stepper. Untuk karakteristik lain L293 dapat dilihat pada datasheet.
2.8
MOSFET MOSFET(Metal Oxide Semiconductor Field Effect Transistor) adalah piranti
elektronika yang dikendalikan oleh tegangan dan hanya membutuhkan arus masukan yang kecil untuk dapat aktif. MOSFET hampir sama dengan transistor bipolar lainnya, yang mempunyai tiga buah kaki. Jika di dalam transistor bipolar dikenal kaki Basis(B), Collector(C), dan Emitter(E), MOSFET mempunyai kaki Gate(G), Source(S), dan Drain(D). MOSFET menggunakan tegangan pada Gate(=Basis) untuk mengontrol arus antara terminal Source(=Emittor) dan Drain(=Collector). Prinsip dasar cara kerja MOSFET sama dengan transistor bipolar. Arus yang mengalir dari Drain ke Source dikendalikan oleh tegangan antara Gate dan Source(MNB ). 2.9
Optocoupler Optocoupler atau Optoisolator adalah komponen elektronika yang dipakai untuk
isolasi listrik (electrical isolation) antara rangkaian input dan output[23]. Optocoupler terdiri dari penggabungan sebuah sumber cahaya dan foto transistor[24]. Dioda cahaya sebagai sumber cahaya langsung ke sumber tegangan. Optocoupler bekerja berdasarkan sumber cahaya dari dioda cahaya ke fotodioda atau fototransistor. 2.10 Limit switch Limit switch atau sering juga disebut saklar batas adalah saklar yang dapat dioperasikan secara manual maupun otomatis. Fungsi dan cara kerja dari limit switch sama dengan saklar-saklar yang lain. Limit switch mempunyai kontak NO (Normally Open) dan NC (Normally Closed). Roller yang terdapat pada limit switch, bila ditekan akan membuat
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
20
kontak yang tadinya NC menjadi NO, begitu juga sebaliknya. Ketika roller dilepas, maka Limit switch akan kembali ke keadaan awal. Bentuk fisik limit switch bermacam-macam. Salah satu bentuk dari limit switch dapat dilihat pada Gambar 2.14.
Gambar 2.14 Gambar limit switch[25] 2.11 Pengendalian Sistem Untai Terbuka Konsep dasar dalam pengendalian suatu sistem berasal dari adanya masukan, yang kemudian dari masukan tersebut diolah melalui suatu proses pengendalian dan hasilnya nanti akan menghasilkan suatu keluaran. Pengendalian dibedakan menjadi dua, ada pengendalian untai terbuka (open loop) dan pengendalian untai tertutup (closed loop). Perbedaan dari kedua jenis pengendalian tersebut terletak pada ada atau tidaknya umpan balik (feedback) dari keluarannya. Feedback terdapat pada sistem untai tertutup. Sedangkan sistem pengendalian untai terbuka tidak terdapat feedback, sehingga ketepatan suatu sistem tergantung pada proses kalibrasi[26]. Sistem untai terbuka diartikan suatu kontrol yang tidak dipengaruhi oleh outputnya[27]. Model dari sistem pengendalian untai terbuka dapat dilihat dari Gambar 2.15 :
Gambar 2.15 Model pengendalian untai terbuka 2.12 Sistem Pneumatik Pneumatik berasal dari bahasa Yunani yang berarti udara/angin. Sistem pneumatik sendiri diartikan sebagai suatu sistem yang menggunakan udara/angin sebagai penggerak dan transmisi, baik secara linear maupun juga secara rotational[28]. Sistem ini masih
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
21
sering digunakan dalam dunia industri, dikarenakan dari segi harga terhitung lebih murah dibandingkan dengan menggunakan sistem hidrolik (fluida). Ringkasnya, cara kerja sistem pneumatik adalah dengan memampatkan udara dan kemudian akan menghasilkan tekanan yang dapat dipakai sebagai media penggerak maupun media transmisi. Komponenkomponen yang erat hubungannya dengan sistem ini seperti piston atau cylinder, preasure gauge, air filter regulator, solenoide valve, dll. Runtutan (sequence) cara kerja sistem pneumatik dapat dilihat pada Gambar 2.16.
Gambar 2.16 Diagram alir sistem pneumatik[29] a. Piston (Cylinder) Silinder atau juga sering disebut piston merupakan bagian aktuator akhir dari output sebuah sistem pneumatik. Silinder pada sistem pneumatik dibedakan menjadi dua, yaitu silinder aksi tunggal (Single Acting Cylinder) dan silinder aksi ganda (Double Acting Cylinder). Perbedaan antara silinder aksi tunggal dan silinder aksi ganda adalah jika pada silinder aksi tunggal setengah pergerakan silinder menggunakan pegas, sedangkan pada silinder aksi ganda menggunakan pneumatik. Gambar 2.17 dan Gambar 2.18 menggambarkan komponen silinder aksi tunggal dan silinder aksi ganda.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
22
Gambar 2.17 Gambar silinder aksi tunggal[29]
Gambar 2.18 Gambar silinder aksi ganda[29] b. Katup (Valve) Dalam sistem kerja pneumatik, komponen ini dapat dikatakan sebagai salah satu komponen utama. Katub atau valve pneumatik adalah komponen pengontrol ataupun pengatur, baik untuk memulai (start), menghentikan (stop), dan arah angin[30]. Dalam penggunaanya, katub dibedakan menjadi beberapa macam, yaitu : 1.)
Katup Pengarah (Directional Control Valve)
2.)
Katub Searah (Non-Return Valve)
3.)
Katup Pengatur Aliran (Flow Control Valve)
4.)
Katub Pengatur Tekanan (Preasure Valve)
5.)
Katub Penutup (Shut-Off Valve)
6.)
Katub Kombinasi (Combination Valve) Dari keenam jenis katub di atas, bagian yang paling sering dipakai oleh konsumen
adalah katub penyearah (Directional Control Valve). Katub pengarah adalah perlengkapan yang menggunakan lubang-lubang saluran kecil yang akan dileawati oleh aliran angin, terutama untuk memulai, menghentikan serta mengarahkan aliran angin tersebut. Katub penyearah juga diartikan sebagai alat atau instrumentasi pneumatik yang berfungsi sebagai saklar aliran angin [30]. Dalam rangkaian listrik, simbol-simbol dibuat untuk memudahkan pengenalan komponen pada rangkaian. Hal yang sama juga terdapat pada katub penyearah. Dalam katub penyearah dibuat simbol-simbol untuk memudahkan dalam membuat maupun
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
23
mengenali rangkaian. Simbol-simbol yang terdapat pada katub penyearah dapat dilihat pada Gambar 2.19 dan Gambar 2.20.
Gambar 2.19 Cara menggambar dan membaca katub pneumatik[29]
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
24
Gambar 2.20 Ringkasan katup penyearah dari macam-macam katup pneumatik[29] Sebagai fungsi memulai, menghentikan dan, mengarahkan aliran, katub memerlukan sebuah penggerak kontrol. Penggerak kontrol katub penyearah
dibedakan menjadi
beberapa macam. Macam-macam pengontrolan katub penyearah Gambar 2.21, Gambar 2.22, Gambar 2.23, dan Gambar 2.24. 1. Dikontrol secara manual
Gambar 2.21 Jenis kontrol katup secara manual[29]
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
25
2. Dikontrol secara mekanik
Gambar 2.22 Jenis kontrol katup secara mekanik[29] 3. Dikontrol oleh tekanan angin
Gambar 2.23 Jenis kontrol katup secara pneumatik[29] 4. Dikontrol secara elektrik (elektropneumatik)
Gambar 2.24 Jenis kontrol katup secara elektrik[29] c. Sucker Sucker adalah salah satu macam end effector yang sering dipakai ketika benda kerja yang digunakan berupa benda kerja yang mempunyai permukaan yang datar. Sucker bekerja dengan cara menyedot benda kerja tersebut dan menahannya sampai pada suatu tempat yang telah ditentukan dan kemudian melepaskannya. Untuk dapat bekerja, sucker membutuhkan vacuum generator. Fungsi vacuum generator tersebut untuk mengatur kondisi dari sucker, kondisi saat sucker menyedot atau melepaskan benda kerja. Media yang dipakai dalam proses ini menggunakan udara (pneumatik).
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI BAB III RANCANGAN PENELITIAN Pada bab ini akan dijelaskan mengenai perancangan pembuatan “SCARA dalam sistem Pick and Place benda kerja” mulai dari diagram alir sistem, perancangan hardware baik dari segi mekanik maupun elektriknya, dan juga perancangan perangkat lunak. 3.1 Diagram Block Sistem Perancangan diagram blok sistem “SCARA berbasis Arduino dan Visual Basic 6.0 dalam sistem pick and place benda kerja” ditunjukkan pada Gambar 3.1 :
Gambar 3.1 Diagram block sistem Diagram block penelitian pada Gambar 3.1 menunjukkan runtutan cara kerja sistem SCARA. Sistem terdiri dari empat bagian utama, yaitu input (Visual Basic 6.0 dan limit switch), kendali (mikrokontroler), dan ouput (aktuator dan rangkaian driver aktuator). Input dari Visual Basic 6.0 adalah input posisi yang diberikan oleh pengguna. Sedangkan input yang berasal dari limit switch adalah input untuk memberikan batas maksimal pergerakan lengan. Pada bagian output, motor stepper satu adalah aktuator untuk lengan pertama dan motor stepper dua adalah aktuator lengan kedua. Sedangkan pneumatik satu adalah aktuator lengan ketiga dan pneumatik dua adalah aktuator untuk end effector lengan robot. Kendali utama sistem berada di Mikrokontroler ATmega328. Visual Basic 6.0 digunakan sebagai user interface SCARA. Data yang dimasukkan oleh user melalui user 26
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
27
interface akan diolah menjadi perubahan gerakan motor dalam satuan derajat oleh Visual Basic. Perhitungan posisi dari Cartesian (x dan y) diubah menjadi sudut dilakukan di Visual Basic agar tidak membebani kerja dari Mikrokontroler. Komunikasi antara board Arduino dan Visual Basic 6.0 menggunakan port USB yang terdapat pada ATmega328. Setelah menerima data berupa sudut, mikrokontroler akan mengendalikan gerakan motor yaitu arah putaran motor, banyaknya pulsa, dan kecepatan putaran motor. Untuk aktuator pneumatik ( silinder dan sucker), keduanya akan dijalankan menggunakan fungsi timer. Setelah target posisi tercapai, selang dua detik sistem pneumatik akan dijalankan. Setelah mencapai posisi maksimal silinder, maka sucker akan diaktifkan selang dua detik kemudian. 3.2 Perancangan Hardware Hardware menjadi salah satu bagian paling penting untuk membangun suatu sistem lengan robot sehingga sistem dapat berjalan dengan baik. Pada penelitian ini, hardware dibagi dalam dua kategori, yaitu : 3.2.1 Hardware Mekanik Hardware mekanik berisi komponen-komponen mekanik yang disusun membentuk suatu sistem mekanik yang berupa lengan robot. Komponen penyusun lengan robot pada sistem SCARA terlihat seperti pada Gambar 3.2, Gambar 3.3, Gambar 3.4, dan 3.5.
Gambar 3.2 Rancang bangun lengan robot
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
28
Gambar 3.3 Gambar meja untuk SCARA Gambar 3.3 adalah meja tempat meletakan robot. Seluruh komponen sistem akan diletakkan pada meja ini, termasuk rangkaian-rangkaian elektronika yang dibutuhkan oleh sistem.
Gambar 3.4 Rancangan milimeter block untuk penentuan posisi
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
29
Gambar 3.4 adalah gambar rancangan milimeter block.. Milimeter block tersebut digunakan untuk melihat posisi secara real di dalam plant.. Milimeter block terdiri dari kotak-kotak kotak yang mengintepretasikan satuan yang dipakai sebagai sebagai koordinat lengan robot. Setiap kotak pada millimeter block memiliki dimensi 5 cm x 5 cm, cm yang dibagi lagi menjadi beberapa block lagi dengan dimensi 10 mm x 10 mm. Milimeter block diletakkan di atas meja dasar dengan dilapisi oleh akrilik sebagai pelindung pelindung kertas millimeter block.
Gambar 3.5 Rancangan area kerja serta penentuan zero point lengan robot Gambar 3.5 memberikan gambaran awal mengenai area kerja yang dapat dilakukan oleh robot.Area Area kerja robot besarnya adalah selisih dari luas setengah lingkaran besar dikurangi luas dari setengah lingkaran kecil. Dari dimensi panjang lengan satu dan dua yang sebesar 150 mm dan 100 mm,, maka didapatkan luas area kerjanya seluas ± 193,35 mm2. Di dalam lam Gambar 3.5 juga memberikan gambaran mengenai letak dari koordinat titik nol untuk masing-masing masing lengan. 3.2.2 Hardware Elektronika Perancangan Hardware elektronikaa diperlukan dalam penyusun sistem SCARA dikarenakan hardware elektronika merupakan salah satu pembangun penting sistem ini
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
30
agar sistem dapat dikendalikan dan digerakkan. Komponen penyusun hardware elektronika meliputi rangkaian pengendali, rangkaian penggerak (driver), dan rangkaian sensor. Hardware elektronika yang menyusun sistem SCARA meliputi rangkaian-rangkaian elektronika yaitu : 3.2.2.1 Minimum System ATmega328
Gambar 3.6 Minimum system ATmega328 Gambar 3.6 menjelaskan mengenai minimum system ATmega 328. Penjelasan tersebut meliputi pin input/output dari ATmega 328 yang terhubung ke input/output sistem. Output berupa aktuator yaitu dua buah motor stepper dan dua buah penggerak sistem pneumatik. Input berupa limit switch yang dipakai sebagai sensor yang akan memberikan batasan gerakan lengan robot terhadap area kerja maksimal yang dapat dijalankan oleh lengan robot.
3.2.2.2 Driver Motor Stepper Rangkaian driver motor stepper diperlukan sebagai driver antara pin output Arduino dengan motor stepper. Rangkaian driver motor stepper dipakai sebagai interface antara keluaran Arduino dengan motor stepper. Driver motor stepper pada penelitian ini menggunakan IC L293. Pemilihan IC L293 dikarenakan IC L293 dapat dipakai untuk menggerakan motor yang mempunyai arus kerja cukup tinggi.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
31
Tabel 3.1 mengidentifikasikan wiring antara port Arduino dan port IC L293. Pada Tabel 3.1 dapat dilihat bahwa pada intinya koneksi antara pengendali dan driver yaitu port output Arduino terhubung dengan deng kaki-kaki input dari IC L293. Untuk lebih memperjelas penyambungan antara keluaran port Arduino dan L293 serta kaki-kaki kaki kaki motor stepper dapat dilihat pada Gambar 3.7. Tabel 3.1 Alokasi pin ATmega328 dengan L293
Gambar 3.7 Rangkaian driver motor stepper
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
32
3.2.2.3 Limit switch Limit switch dipakai sebagai sensor untuk membatasi gerak maksimal yang dapat dilakukan oleh lengan robot. Bila roller pada limit switch tertekan, maka kontak NO yang terhubung ke Arduino akan menjadi NC dan akan memberikan inputan ke Arduino. Keluaran limit switch terhubung langsung dengan inputan port masukan Arduino. Pengalokasian port Arduino dengan limit switch dapat dilihat pada Tabel 3.2. Tabel 3.2 Alokasi Pin ATmega328 dengan L293
3.2.2.4 Elektropneumatik Rangkaian driver elektropneumatik pada penelitian ini ada dua rangkaian. Rangkaian dapat dilihat pada Gambar 3.8 dan Gambar 3.9 .Gambar 3.8 adalah rangkaian driver solenoide untuk silinder pneumatik. Gambar 3.9 adalah gambar rangkaian solenoide untuk vacumm generator yang akan menggerakkan sucker. Tabel 3.3 menunjukkan pengalokasian pin output Arduino dengan solenoide satu dan dua. Tabel 3.3 Alokasi pin Arduino untuk aktuator pneumatik (solenoide)
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
Gambar 3.8 Driver untuk solenoide silinder[14] Komponen Elektronika : 1.
IRFZ44N
:1
2.
4N27
:1
3.
Dioda 1N4148
:1
4.
Resistor 330 Ω
:1
5.
Resistor 1KΩ
:1
6.
Resistor 3K9 Ω
:1
Gambar 3.9 Driver solenoide untuk vacum generator[14]
33
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
34
Komponen Elektronika : 1.
IRFZ44N
:1
2.
4N27
:1
3.
Dioda 1N4148
:1
4.
Resistor 330 Ω
:1
5.
Resistor 1KΩ
:1
6.
Resistor 3K9 Ω
:1
Gambar 3.10 Diagram sistem pneumatik Gambar 3.10 menjelaskan mengenai wiring serta diagram pneumatik dari sistem SCARA. Pengendalian komponen-komponen pneumatik menggunakan komponenkomponen elektropneumatik. Komponen-komponen elektropneumatik akan menerima masukan yang berasal dari driver pneumatik. Berikut disajikan kebutuhan-kebutuhan komponen pneumatik dan elektropneumatik dari sistem SCARA : 1. 3/2 Way Single Acting Solenoide
:2
2. Single Acting Sylinder
:1
3. PE Coverter
:1
4. Vacuum Generator
:1
5. Sucker
:1
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 6. Fitting
:1
7. Selang pneumatik
: secukupnya
35
3.3 Perancangan Perangkat Lunak Perancangan perangkat lunak dimaksudkan sebagai user interface SCARA dengan operator. Perangkat lunak yang dipakai menggunakan Visual Basic 6.0. Komunikasi antara User Interface dengan robot menggunakan komunikasi serial melalui port USB (Universal Serial Bus). Board Arduino Uno dilengkapi dengan port komunikasi serial sehingga tidak diperlukan lagi rangkaian tambahan untuk menggomunikasikan keduanya. Perancangan perangkat lunak difungsikan untuk memudahkan pemrograman Visual Basic 6.0 dan Arduino. Perancangan perangkat lunak terdiri dari perancangan tampilan program Visual Basic 6.0 dan diagram alir program.
3.3.1. Perancangan Tampilan Program Visual Basic
Gambar 3.11 Tampilan Visual Basic 6.0 Gambar 3.11 menjelaskan mengenai tampilan Graphical User Interface (GUI) menggunakan Visual Basic 6.0. Tampilan digunakan sebagai pemberian masukan oleh pengguna untuk menggerakkan lengan robot. Masukan yang diberikan pengguna berupa
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
36
data posisi baik itu posisi awal benda kerja dan posisi akhir benda kerja yang akan dilakukan oleh SCARA, kecepatan SCARA, dan jumlah pengulangan posisi. Selain itu, dari GUI, pengguna dapat menyimulasikan terlebih dahulu atas masukan perintah (posisi) yang telah dimasukkan oleh pengguna. Simulasi merupakan gambaran awal gerakan SCARA sebelum masukan dari pengguna dikirim dan dijalankan pengendali. Tabel 3.4. Objek pada tampilan GUI
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 3.3.2. Diagram Alir Program Visual Basic
Gambar 3.12 Diagram alir GUI (Graphical User Interface)
Gambar 3.12 Diagram alir GUI (Graphical User Interface)(lanjutan)
37
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
38
Gambar 3.12 menjelaskan mengenai diagram alir user interface yang berupa aplikasi VB. Runtutan diagram alir tersebut yaitu pada saat aplikasi VB ini dijalankan, VB akan mengecek ada atau tidaknya penekanan tombol Exit. Jika tombol tersebut ditekan, maka jendela aplikasi ini akan ditutup. Jika tombol ini tidak ditekan, lalu VB akan menunggu masukan berupa koordinat yang diberikan user pada frame Input posisi 2R. Jika tombol Save Posisi ditekan, maka data yang diberikan oleh user akan disimpan dan ditampilkan pada frame Data Posisi. Data posisi yang ditampilkan berupa koordinat masukan x dan y. Jika tombol Save Posisi tidak ditekan, maka program akan melakukan pengecekan kembali penekanan tombol Exit. Terdapat tombol Tambah Posisi untuk menambahkan posisi yang akan dituju oleh lengan robot. Jika tombol ini ditekan maka program akan membaca masukan inputan posisi kembali. Jika tombol ini tidak ditekan, maka program akan
menunggu user
memberikan kecepatan motor pada frame Kecepatan Motor. TextBox Kecepatan Motor akan menampilkan kecepatan motor yang diberikan oleh user melalui SchorlBar Kecepatan Motor. Selanjutnya, pada
frame gerakan 1P dilakukan pengecekan ada atau tidaknya
penekanan tombol gerakan aktuator pneumatik. Jika tombol tersebut tidak ditekan, maka program akan membaca kembali ada tidaknya penekanan tombol pada On frame Gerakan 1P. Jika tombol On ditekan, maka program akan dilanjutkan dengan membaca ada atau tidaknya penekanan tombol Simulasi On pada frame Simulasi. Jika tidak ada penekanan, maka program akan terus membaca ada atau tidaknya penekanan. Jika ada penekanan tombol tersebut, maka program melanjutkan pengecekan tombol Simulasi Off. Jika tombol Simulasi Off tidak ditekan, maka program akan terus menjalankan simulasi sesuai data yang diberikan atau tertampil pada frame Data Posisi. Jika tombol Simulasi Off ditekan, maka program akan melakukan pengecekan kondisi ada atau tidaknya penekanan tombol Kirim Data ke Mikrokontroler pada frame Kirim Data. Jika tidak ada penekanan, maka program terus melakukan pengecekan penekanan tombol Kirim Data ke Mikrokontroler. Jika penekanan tombol dilakukan, maka program akan mengirim data ke mikrokontroler. Data yang dikirimkan berupa jumlah pulsa yang diperlukan oleh motor stepper. Perhitungan konversi posisi dari koordinat cartessian ke bentuk sudut kemudian ke bentuk pulsa yang dibutuhkan untuk menggerakkan motor stepper dilakukan di dalam program VB. Sehingga, data yang dikirimkan ke Arduino nantinya hanya berupa banyaknya jumlah pulsa. Nilai dari pulsa akan dibulatkan ke atas jika hasil perhitungannya menghasilkan nilai bukan bilangan bulat. Contoh pembulatan dapat dilihat pada contoh halaman empat belas
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
39
(14). Persamaan yang dipakai untuk mengubah koordinat dari cartessian ke degree menggunakan Persamaan 2.12 dan 2.14 . Persamaan yang dipakai untuk mengubah nilai sudut ke jumlah pulsa menggunakan Persamaan 2.1.
Gambar 3.13 Diagram alir simulasi Gambar 3.13 memberikan gambaran mengenai diagram alir atau flowchart untuk simulasi GUI. Pada prinsipnya, simulasi ini dibuat sedemikian hingga akan memberikan gambaran awal unjuk kerja dari plant. Plant yang dimaksud di sini adalah SCARA. Simulasi akan memberikan gambaran mengenai titik-titik yang akan dituju oleh robot. 3.3.3. Program Arduino Dari Gambar 3.14 dapat dilihat program Arduino. Subrutin ini terdiri dari subrutin posisi pertama dan subrutin posisi kedua.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
40
Gambar 3.14 Program Arduino Gambar 3.15 akan menjelaskan rincian dari sub rutin program arduino pertama, Arduino akan melakukan initialisasinya. Arduino menerima data dari Visual Basic 6.0 berupa pulsa. Arduino dalam penelitian ini dipakai sebagai pengendali I/O. Seperti sudah dikatakan pada halaman sebelumnya, perhitungan-perhitungan yang dibutuhkan untuk menggerakan SCARA dilakukan di dalam Visual Basic 6.0.
Gambar 3.15 Diagram alir Arduino posisi 1
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
Gambar 3.15 (lanjutan) Diagram alir Arduino posisi 2 3.3.4. Subrutin Limit switch
Gambar 3.16 Gambar diagram alir limit switch
41
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
42
Gambar 3.16 menjelaskan mengenai diagram alir subrutin limit switch. Seperti yang sudah dikatakan di awal bahwa limit switch dipakai sebagai indikator bila posisi yang diberikan pengguna melebihi area kerja dari lengan robot. Oleh karena itu, ketika limit switch memberikan input pada Arduino, maka Arduino akan memerintahkan motor untuk berhenti dan pada GUI akan muncul Message Box yang menjelaskan bahwa posisi yang dimasukkan melebihi area kerja dari SCARA. Ketika tombol “OK” pada Message Box ditekan, maka sistem akan reset posisi kembali ke posisi awal (posisi awal lengan robot pada titik (0,0)).
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
BAB IV HASIL DAN PEMBAHASAN Bab ini berisi hasil pengamatan dan pembahasan dari Selective Compliant Articulated Robot Arm (SCARA SCARA) berbasis Arduino dan Visual Basic 6.0 untuk pick and place benda kerja. Pengamatan dan pembahasan meliputi bentuk hardware secara mekanik, hardware secara elektrik, software, dan tingkat keberhasilan.
4.1. Hardware Mekanik Pengamatan dan pembahasan hardware mekanik Selective Compliant Articulated Robot Arm (SCARA) berbasis Arduino dan Visual Basic 6.0 untuk pick and place benda kerja terdiri dari bentuk meja, bentuk hardware SCARA, bentuk grid koordinat posisi dan assembly seluruh bagian mekanik.
4.1.1 Bentuk Meja Gambar 4.1 menunjukkan gambar plant dari SCARA.. Material yang dipakai untuk membuat meja ini yaitu kayu. Meja tersebut berfungsi selain sebagai tempat untuk meletakkan plant SCARA,, digunakan juga untuk mempermudah mobilitas plant sebagai modul sehingga dapat dipindah-pindah. dipindah Meja ini secara konsep sama dengan gambaran saat perancangan. Yang membedakan meja tersebut tersebut dengan perancangan adalah ukuran meja lebih besar, yaitu : 60 cm x 60 cm x 100 cm. Perbedaan ukuran dikarenakan adanya kesalahan dalam pembuatan.
Gambar 4.1 Gambar meja tempat plant SCARA diletakkan. 43
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
44
4.1.2 Bentuk Hardware SCARA
Gambar 4.2 Gambar hardware SCARA Gambar 4.2 menunjukkan hardware SCARA secara keseluruhan mulai dari meja modul, SCARA,, komponen pneumatik, dan hardware elektrik.
4.1.3 Bentuk Grid Koordinat Posisi P Gambar 4.3 menunjukan gambar bentuk grid posisi untuk menentukan koordinat benda kerja. Luas total dari grid posisi ini 10000 cm² yang terdiri dari kotak-kotak kotak lebih kecil. Masing-masing masing kotak kecil mempunyai luasan 25 cm². Di dalam kotak kecil tersebut terdiri dari garis vertikal dan garis horizontal hori yang mempunyai jarak antara garis yang satu dengan garis yang lainnya sebesar 1 cm.
Gambar 4.3 Gambar grid koordinat posisi
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
45
4.1.4 Assembly Hardware
Gambar 4.4 Hardware mekanik SCARA Gambar 4.4 Menunjukkan gambar assembly hardware mekanik SCARA. panjang lengan pertama 10 cm dan panjang lengan kedua 15cm. Bahan yang dipakai dalam pembuatan lengan dari alumunium. Aktuator menggerakan lengan menggunakan as dari alumunium. Spesifikasi hardware secara detail etail dapat dilihat di lampiran hardware mekanik.
4.2.Hardware Elektrik Pengamatan dan pembahasan hardware elektrik Selective Compliant Articulated Robot Arm (SCARA) berbasis Arduino dan Visual Basic 6.0 untuk pick and place benda kerja terdiri dari hardware aktuator dan hardware rangkaian elektrik.
4.2.1Hardware Aktuator Pengamatan dan pembahasan hardware aktuator meliputi pengamatan dan pembahasan motor stepper dan sistem pneumatik.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 4.2.1.1
46
Pengamatan dan Pembahasan Motor Stepper
Gambar 4.5 Gambar motor stepper 1 dan motor stepper tepper 2 Tabel 4.1 Hasil pengamatan motor stepper 1 dan motor stepper tepper 2
Gambar 4.5 menunjukkan motor stepper yang dipakai dalam peneletian ini. Tabel 4.1 menunjukkan hasil pengamatan dari motor stepper yang dipakai dalam penelitian ini. Spesifikasi motor stepper lebih jelas dapat dap dilihat di Name Plate Motor Stepper pada halaman lampiran aktuator. aktuator. dari hasil pengamatan motor stepper terdapat beberapa hal yang berbeda dengan teori. Pada pengukuran hambatan secara teoritis, besarnya hambatan antara Common(Hitam,Putih) dengan masing-masing masing masing lilitan seharusnya ½ hambatan antara
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
47
kabel yang satu dengan yang lainnya. Hal ini dikarenakan motor stepper yang dipakai adalah motor stepper bekas pakai, sehingga kondisinya tidak sama dengan motor stepper baru. 4.2.1.2 Pengamatan dan Pembahasan Pneumatik
Gambar 4.6 Gambar solenoide elektrik dan vacuum generator Keterangan : 1. Solenoide pengontrol silinder 2. Solenoide pengontrol vacuum generator 3. Vacuum generator Gambar 4.6 menunjukkan gambar ga hardware solenoide dan vacuum generator. generator Solenoide pertama digunakan untuk mengontrol silinder. Solenoide kedua digunakan untuk mengontrol vacuum generator. generator Vacuum generator digunakan untuk mengontrol kerja sucker. Pada pengujian sistem pneumatik, belum dapat dilihat kerja sistem pneumatik. Hal Ha ini dikarenakan tidak adanya prasarana yang mendukung dalam pengujian. Prasarana yang dimaksud adalah sambungan antara Air Supply Regulator dengan katub tidak tersedia di laboratorium. Pengujian sistem pneumatik kemudian diamati dengan melihat secara elektrik, yaitu melihat output dari solenoide. Secara elektropneumatik, sistem sudah dapat bekerja dengan baik. Gambar 4.7 4. menunjukkan indikator solenoide yang menyala.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
48
Gambar 4.7 4. Gambar indikator solenoide menyala
4.2.2Hardware Rangkaian Elektrik Pengamatan dan pembahasan rangkaian elektrik meliputi rangkaian driver motor stepper , rangkaian driver solenoide, rangkaian regulator tegangan kipas pendingin driver motor stepper, dan rangkaian limit switch. 4.2.3.1 Rangkaian Driver Motor Stepper Driver motor stepper yang digunakan dalam hardware SCARA berbeda dengan pada saat perancangan. Di dalam perancangan, driver motor stepper menggunakan Integrated Circuit(IC) L293.. Perubahan penggunaan driver motor dikarenakan dalam trial menggunakan rangkaian an L293 tidak mampu menahan panas yang yang dihasilkan untuk mengontrol motor stepper. Perlu penambahan heatsink untuk menstabilakn panas yang dihasilkan. Akan tetapi, ketersediaan heatsink untuk L293 sangat sulit di pasaran. Oleh karena hal tersebut, maka dilakukan penggantian rangkaian driver menggunakan driver motor stepper menggunakan transistor sebagai switching. Gambar 4.8 dan Gambar 4.9 4. menunjukkan gambar rangkaian driver motor stepper satu dan dua. Rangkaian driver memanfaatkan transistor sebagai switching itching tiap-tiap lilitan motor stepper. Pengendalian switching transistor dilakukan oleh port Arduino.
Gambar 4.8 4. Driver motor stepper tampak depan
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
49
Gambar 4.9 4. Driver motor stepper tampak atas Tabel 4.2 4. Tabel pengujian driver motor stepper
Tabel 4.2 menunjukan data pengukuran tegangan dan arus rangkaian driver motor stepper. Dari Tabel 4.2 dapat dilihat tegangan yang berasal dari catu daya 12 V turun menjadi ± 8,9 V. Turunnya tegangan disebabkan oleh besarnya arus untuk menggerakkan dua buah motor stepper dengan catu daya yang sama. Penambahan kipas dilakukan untuk mendinginkan temperatur transistor yang disebabkan besarnya arus yang mengalir ke motor. Penggunaan heatsink tsink saja belum cukup untuk menjaga kestabilan temperatur transistor. Temperatur yang tinggi akan menyebabkan kerusakan pada komponen transistor. Temperatur maksimal transistor yang masih diperbolehkan dapat dilihat pada datasheet. Besarnya arus yang mengalir meng dapat dilihat di Tabel 4.2. 4.2.3.2 Rangkaian Driver Solenoide Gambar 4.10 menunjukkan gambar rangkaian driver solenoide. Ada dua buah driver solenoide untuk mengontrol dua buah 5/2 Way Double Solenoide Valve. Solenoide satu digunakan untuk mengontrol silinder (Y1) dan solenoide kedua untuk mengontrol vacuum generator (Y2) sebagai penggerak sucker. Dari hasil pengamatan unjuk kerja, kedua driver dapat bekerja dengan baik.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
50
Gambar 4.10 Driver solenoide Tabel 4.3 Tabel pengujian rangkaian driver solenoide olenoide
Tabel 4.3 menunjukkan hasil pengujian rangkaian solenoide berdasarkan nilai tegangan masuk, tegangan keluaran serta arus keluaran rangkaian. Hasil pengujian pada Tabel 4.3 dikatakan berhasil karena besarnya tegangan dan arus keluaran memenuhi kriteria solenoide sesuai dengan name plate yang tertera pada solenoide. solenoide Name plate solenoide dapat dilihat di lampiran. 4.2.3.3 Regulator Tegangan Rangkaian regulator tegangan digunakan untuk memberi catu daya kipas pendingin driver motor stepper. Terdapat dua buah regulator tegangan, yaitu 7812 dan 7805. Integrated Circuit (IC) regulator tegangan 7812 digunakan karena catu daya yang dibutuhkan kipas sebesar 12 Volt.. Rangkaian regulator tegangan tidak terdapat pada perancangan dikarenakan pada perancangan perancang driver motor stepper belum dipertimbangkan panas yang akan dihasilkan oleh oleh besarnya arus yang mengalir pada motor stepper. Gambar 4.11 menunjukkan rangkaian schematik dari rangkaian regulator tegangan. tegangan
Gambar 4.11 Gambar schematik regulator tegangan
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
51
Gambar 4.12 4.1 Gambar rangkaian regulator tegangan Gambar 4.12 adalah gambar rangkaian regulator tegangan yang dipakai pada SCARA.. Tegangan masukan rangkaian regulator tegangan berasal dari catu daya 24 V yang dipakai untuk catu daya solenoide. Tabel 4.5 menunjukkan pengujian rangkaian regulator tegangan 7812 dan 7805. Tabel 4.4 Tabel pengujian rangkaian regulator tegangan egangan Keterangan
Tegangan
Tegangan
Masukan
Keluaran
7805
24 Volt
5,11Volt
7812
24 Volt
11,91 Volt
Pengujian dilakukan dengan mengukur tegangan masukan dan keluaran rangkaian menggunakan multimeter. Pada kondisi ideal, keluaran regulator tegangan 7812 dan 7805 adalah sebesar 12 V dan 5 V. Pada pengukuran regulator tegangan 12 Volt seharusnya 12 Volt. Akan tetapi, pada pengukuran terukur 11,91 Volt. Besarnya penyimpangan antara kondisi ideal dan kondisi terukur sebesar : 12
12 11,91 100% 12
0,75 % Pada pengukuran regulator gulator tegangan 5 Volt seharusnya 5 Volt. Akan tetapi, pada pengukuran terukur 5,11 Volt. Volt Besarnya penyimpangan antara kondisi ideal dan kondisi terukur sebesar : 5
5,11 5 100% 5
2,2 %
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
52
Dengan melihat besarnya penyimpangan yang terhitung kecil maka dapat disimpulkan rangkaian regulator tegangan 12 Volt dan regulator tegangan 5 Volt dapat bekerja dengan baik. 4.2.3.4 Rangkaian Limit Switch Rangkaian Limit Switch digunakan untuk memberikan masukan kepada Arduino. Masukan tersebut akan diterima Arduino sebagai masukan yang menandakan batas maksimal kerja SCARA. Selain itu, limit switch dipakai sebagai referensi awal kerja robot. Referensi diperlukan karena tidak dipakainya sensor pendeteksi posisi yang akan dituju oleh SCARA. Gambar 4.13 adalah gambar schematik rangkaian limit switch. Terdapat empat buah masukan yang berasal dari empat buah limit switch yang terdapat pada lengan SCARA. Masing-masing lengan terdapat dua buah limit switch, yaitu untuk membatasi gerakan maksimal putaran searah jarum jam(CW) dan gerakan berlawanan arah jarum jam(CCW).
Gambar 4.13 Gambar schematik rangkaian limit switch Gambar 4.13 menunjukkan rangkaian ini adalah rangkaian masukan aktif high. Pada saat limit switch tertekan, maka akan memberikan logika high ke Arduino. Resistor LS1, resistor RLS2, resitor RLS3, dan RLS4 disebut sebagai resistor pulldown karena akan menarik tegangan positif ke tegangan 0 V pada saat limit switch tertekan. Tabel 4.6 menunjukkan hasil pengujian rangkaian ini. Tabel 4.5. Tabel Pengujian Limit Switch Komponen Pengujian
Kondisi Limit Switch Tertekan
Tidak Tertekan
Limit Switch 1
3,6 V
0,5 V
Limit Switch 2
3,6 V
0,5 V
Limit Switch 3
3,6 V
0,5 V
Limit Switch 4
3,6 V
0,5 V
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
53
Gambar 4.14 4.1 Gambar rangkaian limit switch SCARA Gambar 4.14 adalah gambar rangkaian limit switch yang digunakan di dalam sistem SCARA. Dari Tabel 4.6 dapat dilihat unjuk kerja rangkaian sudah dapat dapat bekerja dengan baik. Saat limit switch tertekan, logika high akan menjadi masukan bagi Arduino dengan membaca level tegangan seperti pada Tabel 4.6. Saat limit switch tidak tertekan, maka Arduino akan membaca logika low sesuai pada Tabel 4.6.
4.3.Software Pengamatan dan pembahasan
software meliputi
program user interface
menggunakan Visual Basic 6.0 6 (GUI SCARA)) dan program Arduino sebagai pengendali SCARA.
4.3.1 Program User Interface Menggunakan Visual Basic 6.0 6. (GUI SCARA) Sub-Bab Bab ini akan membicarakan mengenai program Visual Basic 6.0 6. yang digunakan untuk membuat User Interface. Sub-bab ab ini membahas mengenai program simulasi, program kalkulasi, dan program komunikasi. Gambar 4.155 dan Gambar 4.16 menunjukkan tampilan dari GUI SCARA. Gambar 4.15 adalah gambar tampilan awal ketika aplikasi dijalankan. Gambar 4.16 4. menunjukkan tampilan utama GUI SCARA. Di dalam tampilan utama tersebut user dapat berinteraksi dengan SCARA.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
Gambar 4.15 4. Tampilan awal GUI SCARA
Gambar 4.16 4. Tampilan utama GUI SCARA Keterangan : 1. Status user. 2. Tampilan simulasi posisi 3. Tombol simulasi 4. Input simulasi
54
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
55
5. Output simulasi 6. Tombol keluar aplikasi 4.3.1.1 Program Simulasi
Gambar 4.17. Gambar tampilan simulasi Keterangan : 1. Simulasi koordinat posisi. 2. Guide status 3. Tombol simulasi. 4. Koordinat masukan dari user. Gambar 4.17 menggambarkan komponen-komponen yang diperlukan oleh user agar dapat mensimulasikan terlebih dahulu posisi yang akan dituju oleh SCARA. Ada empat komponen pendukung simulasi. Pertama, tampilan area kerja (grid) tempat menampilkan posisi yang diisikan oleh user.. Jarak antara garis satu dengan yang lainnya dalam tampilan area kerja mewakili kondisi jarak antar garis secara real, yaitu sebesar 5 cm. Jarak tersebut berlaku untuk garis vertikal maupun garis horizontal. Koordinat x sama dengan nol dan y sama dengan nol diwakili oleh lingkaran berwarna hijau. Koordinat posisi pertama berupa kotak warna biru. Dan koordinat posisi kedua berupa kotak warna kuning. Kedua, tombol yang diperlukan untuk melihat simulasi. Terdapat dua buah tombol untuk simulasi, yaitu tombol SIMULASI ON untuk menghidupkan simulasi dan tombol SIMULASI OFF untuk mematikan simulasi. Ketiga, yaitu masukan koordinat. Masukan koordinat digunakan untuk memasukan nilai koordinat x dan y posisi satu dan posisi dua. Untuk keterangan nomor tiga, masukan posisi satu dan dua berbeda dengan yang ada pada perancangan. Pada perancangan, hanya ada satu masukan koordinat posisi dan untuk posisi yang dimasukan akan disimpan dan ditambahkan dalam database, serta ditampilkan
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
56
dalam obyek data grid.. Sedangkan pada hasil pada gambar 4.17, 4.1 , simulasi hanya bisa dimungkinkan untuk dua ua posisi karena hanya ada dua masukan posisi dan tidak disimpan dalam database.. Perubahan ini dikarenakan kesulitan dalam membaca dan menampilkan kembali nilai data yang disimpan dalam database.. Pada percobaan sesuai dengan perancangan, yang dapat dibaca hanyalah posisi terakhir yang disimpan. Sedangkan posisi yang lainnya belum sempat terbaca.
Gambar 4.18. 4.1 Gambar coding area kerja SCARA pada GUI Gambar 4.18 menunjukkan listing program untuk membuat area kerja (grid) GUI SCARA.. perintah yang dipakai menggunakan perintah line (ujung garis 1) - (ujung garis 2), warna garis.
Event yang dipakai untuk menampilkan area kerja pada GUI
menggunakan timer yang diaktifkan oleh event klik tombol SIMULASI ON. Jika tombol ditekan, maka event klik akan mengaktifkan obyek Timer.. Hasil tampilan dari area kerja (grid) GUI sama dengan tampilan yang diinginkan diinginkan pada saat perancangan.
Gambar 4.19. 4. Gambar hasil area kerja GUI SCARA
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
57
Gambar 4.20 Listing program rogram penentuan peletakan titik pada simulasi posisi pertama Gambar 4.19 adalah tampilan area kerja simulasi GUI SCARA.. di dalam area kerja tersebut simulasi posisi akan ditampilkan. Gambar 4.20 menunjukkan listing program menentukan letak titik posisi pertama pada simulasi. Perhitungan yang dipakai dalam penentuan peletakan posisi agar sesuai dengan kondisi real dapat dilihat pada Gambar listing program 4.20 atau pada lampiran L1. Ada sebuah nilai yang dibandingkan, yaitu nilai yang ada di obyek TextBox tiga. Jika nilai nilainya lebih kecil dari nol maka proses pertama, Visual Basic 6.0 akan membaca nilai posisi x pada obyek TextBox T tiga. Kedua, nilai yang dibaca pada TextBox tiga akan dikurangi satu. Pengurangan satu itu dikarenakan panjang dan lebar titik tit koordinat posisi pada simulasi ini sebesar dua pixel.. Oleh karena itu, agar mendapatkan kondisi tepat di tengah – tengahnya didapatlah nilai satu. Ketiga, setelah dikurangi dengan satu maka akan dikalikan dengan enam puluh. Nilai enam puluh didapatkan dari dari jarak yang mewakili satu centimeter. Seperti yang sudah dibahas sebelumnya, bahwa jarak antara garis satu dengan yang lainnya mewakili lima centimeter.. Di dalam simulasi yang dibuat, jarak lima centimeter itu didapatkan dari selisih nilai properti left garis yang satu dengan yang lainnya (vertikal) atau property top garis yang satu dengan yang lainnya (horizontal). Selisih dari garis yang satu dengan yang lainnya di dalam simulasi sebesar 300. Maka, untuk mendapatkan nilai yang mewakili satu centimeter didapatkan nilai 60. Selanjutnya, hasil dari perhitungan di atas (C) akan dibuat bernilai positif (D) dengan menggunakan perintah Abs (Absolute). (Absolute) Perintah Abs harus dipakai dikarenakan suatu masukan obyek TextBox tiga (masukan koordinat x)) berupa bilangan negatif.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
58
Setelah didapatkan nilai positifnya (D), maka nilai tersebut (D) digunakan untuk mengurangi angka 2000.. Nilai 2000 adalah properti left koordinat (0,0) pada simulasi. Pengurangan itu akan menghasilkan properti left titik (titikk koordinat menggunakan obyek shape dengan properti nama bendakerja1) pada simulasi (A). Selanjutnya, selain mencari nilai properti left,, VB harus mencari nilai properti top agar titik (simulasi koordinat posisi) sesuai dengan yang dimasukkan oleh user. Untuk mencari nilai properti top (B), langkah awal dengan cara mengambil masukan dari user pada obyek TextBox empat. Setelah didapatkan nilainya, maka akan ditambahkan dengan satu. Seperti pada perhitungan di atas, nilai satu didapatkan dari penyesuaian peletakkan obyek shape benda kerja1. Nilai yang didapatkan kemudian dikalikan dengan 60. Hasil perkalian tersebut ut digunakan untuk mengurangi bilangan 3400.. Bilangan 3400 yaitu nilai dari properti top koordinat (0,0). Untuk menampilkan objek shape bendakerja1 dengan merubah properti visible menjadi bernilai TRUE (pengaturan awal properti visible shape bendakerja1 adalah ad FALSE)) dan memasukkan properti left serta top sesuai nilai yang didapatkan dalam perhitungan (A untuk left dan B untuk top).
Gambar 4.21 Listing program Visual Basic 6.0 untuk menampilkan posisi kedua pada simulasi Gambar 4.21 adalah gambar listing program untuk menampilkan letak posisi kedua pada simulasi. Perhitungan untuk menentukan letak posisi kedua agar sama dengan keadaan sebenarnya menggunakan cara yang sama seperti cara yang digunakan untuk menampilkan posisi pertama pada simulasi. Gambar 4.22 menunjukkan contoh hasil
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
59
tampilan koordinat posisi yang dimasukkan oleh user. Tampilan berupa titik warna biru dan kuning. Warna kuning mewakili koordinat pertama dan warna biru mewakili koordinat yang kedua.
Gambar 4.22 Gambar tampilan masukan koordinat oleh user 4.3.1.2 Program Kalkulasi Gambar 4.23, Gambar 4.24, dan Gambar 4.25 menunjukkan coding perhitungan di Visual Basic 6.0. Perhitungan digunakan untuk menghitung jumlah pulsa yang dibutuhkan motor stepper untuk menngerakkan lengan satu dan lengan dua menuju koordinat masukan yang diberikan oleh user. Perhitungan berasal dari masukan koordinat dan masukkan panjang lengan. Dari perhitungan tersebut didapatkan jumlah pulsa yang dibutuhkan untuk mengkonversi masukan koordinat menjadi gerakan lengan menuju koordinat masukannya. Perhitungan menggunakan rumus Invers Kinematics. Rumus yang dipakai dapat dilihat pada bab sebelumnya.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
60
Gambar 4.23 Coding Visual Basic 6.0 deklarasi variabel perhitungan jumlah pulsa untuk posisi satu dan posisi dua
Gambar 4.24 Coding perhitungan jumlah pulsa untuk posisi satu dan posisi dua d
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
61
Gambar 4.25 Coding perhitungan jumlah pulsa untuk posisi satu dan posisi dua d Gambar 4.23 adalah coding untuk mendeklarasikan variabel yang dibutuhkan selama proses perhitungan gan di Visual Basic 6.0. Gambar 4.24 adalah coding untuk mengkonversi masukan berupa koordinat titik pertama menjadi gerakan lengan menuju koordinat masukan. Gambar 4.25 4. adalah coding untuk masukan koordinat kedua untuk dikonversi menjadi gerakan lengan menuju koordinat masukan yang kedua.
Gambar 4.26. 4.2 Gambar tampilan hasil kalkulasi
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
62
Gambar 4.26 adalah tampilan GUI SCARA setelah dilakukan kalkulasi dan simulasi posisi. Tampilan kalkulasi jumlah pulsa motor stepper satu dan motor stepper dua yang akan dikirimkan ke Arduino. 4.3.1.3 Program Komunikasi Gambar 4.27 adalah gambar tampilan GUI SCARA pada saat tidak
sedang
berkomunikasi dengan Arduino atau pada saat komunikasi diputuskan. Tombol Nesting dan Send To Arduino akan dimatikan. Hal ini dibuat agar interface antara user dan SCARA lebih aman dan meminimalisir penekanan tombol yang belum diperlukan (user friendly).
Gambar 4.27 Gambar tombol GUI SCARA mode tidak sedang komunikasi dengan Arduino
Gambar 4.28 Gambar tombol komunikasi mode komunikasi antar GUI SCARA dengan Arduino Gambar 4.28 adalah tampilan GUI SCARA pada saat terjadi komunikasi dengan Arduino. Mode komunikasi diaktifkan dengan cara menekan tombol Connect pada GUI SCARA. Pada saat tombol komunikasi diaktifkan, user tidak memungkinkan lagi merubah masukan, melakukan perhitungan dan melakukan simulasi karena tombol Kalkulasi dan Simulasi akan dimatikan. Tujuan dari mematikan tombol-tombol tersebut agar pada saat komunikasi, tidak ada data yang dapat diubah. Data terakhir adalah data
yang akan
dikirimkan ke Arduino. Gambar 4.29 menampilkan coding Visual Basic 6.0 untuk membuka komunikasi antara Visual Basic 6.0 dan Arduino.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
63
Gambar 4.29 Coding Visual Basic 6.0 untuk membuka komunikasi dengan Arduino Tombol disconectt digunakan untuk mematikan komunikasi antara Visual Basic 6.0 dan Arduino. Selain digunakan untuk mematikan me komunikasi, tombol ini dipakai juga untuk menghidupkan tombol simulasi sim dan kalkulasi. Gambar 4.30 adalah gambar tampilan coding Visual Basic 6.0 untuk tombol disconect.
Gambar 4.30. 4. Coding Visual Basic 6.0 tombol disconect isconect Tombol nesting digunakan untuk memerintahkan SCARA bergerak menuju home potition. Home potition adalah referensi posisi awal dari SCARA.. Pergerakan SCARA dimulai dari titik ini. Gambar 4.31. 4. adalah coding Visual Basic 6.0 pada saat Tombol Nasting ditekan. Visual Basic 6.0 akan mengirimkan data (MsComm1.Output) “a” ke Arduino.
Gambar 4.31 Coding Visual Basic 6.0 untuk memberikan perintah nesting esting ke Arduino Gambar 4.32 adalah coding Arduino rduino untuk menerima perintah nesting. Jika yang diterima Arduino adalah karakter “a”, maka program akan mengeksekusi program selanjutnya. Jika karakter yang diterima selain karakter “a”, maka program akan membaca data sampai karakter yang diterima sama dengan karakter “a”.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
64
Gambar 4.322 Coding Visual Basic 6.0 untuk perintah nesting esting
Gambar 4.33 4. Coding deklarasi variabel komunikasi data ata
Gambar 4.34 Coding komunikasi data dari Visual Basic 6.0 ke Arduino Tombol SEND TO ARDUINO digunakan untuk mengirimkan data jumlah pulsa motor stepper dari Visual Basic 6.0 (hasil perhitungan) ke Arduino. Coding pengiriman data dari Visual Basic 6.0 ke Arduino dapat dilihat pada Gambar 4.34 4. Untuk dapat menjalankan
coding
pada
Gambar
4.3 4.34
diperlukan
deklarasi
variabel
yang
mendeklarasikan variabel untuk menyimpan sementara nilai nilai data yang dterima. Gambar
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
65
4.33 menampilkan coding deklarasi variabel yang diperlukan untuk menjalankan coding komunikasi data.Data Data jumlah pulsa motor stepper 1 dan motor stepper dua untuk posisi satu dan posisi dua dikirimkan secara serial melalui USB (Universal Universal Serial Bus). Bus) Yang harus diperhatikan dalam pengiriman data yaitu masing-masing masing masing data yang dikirimkan dari Visual Basic 6.0 ke Arduino harus berupa tiga digit bilangan. Misalnya yang akan dikirim angka 7, maka yang harus dikirimkan yaitu “007”. Untuk membuat agar bilangan yang dikirimkan ke Arduino selalu berupa tiga digit bilangan, maka di Visual Basic 6.0 penulisan hasil perhitungan jumlah pulsa untuk motor stepper satu dan motor stepper dua selalu dibuat dalam tiga buah bilangan. Gambar 4.35 4.3 menunjukkan contoh hasil penulisan pulsa.
Gambar 4.35 4.3 Penulisan pulsa di GUI SCARA
Gambar 4.36 Coding menampilkan pulsa berupa 3 digit angka di GUI Cara yang digunakan dalam penelitian ini untuk membuat semua nilai hasil perhitungan jumlah pulsa yang akan dikirimkan ke Arduino berupa tiga digit angka dapat dilihat pada Gambar 4.36. Gambar 4.36 menunjukkan coding Visual Basic 6.0 agar dapat membuat tampilan pulsa dalam bilangan yang terdiri dari tiga buah digit angka.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
66
Gambar 4.37 Coding pengiriman data dari Visual Basic 6.0 ke Arduino Gambar 4.37 menunjukkan coding Arduino untuk membaca data pada saat Tombol SEND TO ARDUINO pada GUI SCARA ditekan. Program Arduino membaca karakter “,” untuk mengetahui urutan data serial yang dikirimkan dari GUI SCARA sehingga sesuai dengan data yang dimaksudkan untuk diterima Arduino. Variabel “nilaia” adalah data pertama yang terdiri dari tiga buah digit. Variabel “nilaib” adalah data kedua yang berisi beris tiga digit angka dan seterusnya.
4.3.2 Program Arduino Sebagai S Kontroler SCARA Listing program utama SCARA dapat dilihat pada lampiran Arduino. Program akan dieksekusi pada saat Arduino menerima data berupa jumlah pulsa dan perintah nesting (karakter “a”) dari GUI SCARA. SCARA Pin 2,3,4,5 akan aktif dan menggerakkan menggerak motor stepper satu berlawanan arah jarum jam(CCW). jam Pin 2,3,4,5 akan aktif sampai pada akhirnya mati ketika lengan menyentuh limit switch 1. Output sensor (A0) memberikan logika high ke Arduino. Selanjutnya, pin in 6,7,8,9 akan aktif dan menggerakkan motor stepper dua berlawanann arah jarum jam (CCW) sampai output sensor limit switch dua akan memberikan logika high.. Logika high yang diberikan output sensor akan mematikan motor stepper dua. Motor stepper dua akan berhenti selama satu detik dan bergerak 90° searah jarum jam. Pergerakan rakan motor stepper pada Arduino menggunakan library yang sudah tersedia secara open source. source Library yang digunakan untuk menggerakkan motor stepper yaitu Accel Library Stepper[31], Stepper Lab3[32],, dan Stepper Motor Control one revolution[33]. Setelah SCARA pada posisi referensi awal (nesting), ( program selanjutnya menggerakkan motor stepper satu dan dua sesuai jumlah pulsa yang dikirimkan oleh GUI
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
67
SCARA untuk posisi pertama (‘nilaia” dan “nilai b”). Pin 10 Arduino aktif dan menggerakan solenoide silinder ketika perintah pick ( karakter ‘c” diterima Arduino). Lima detik kemudian pin 11 Arduino aktif dan menyalakan solenoide sucker untuk mengambil benda kerja. Pin 11 aktif selama 2 detik. Setelah dua detik tersebut, pin 10 akan mati dan pin 11 tetap menyala untuk membawa benda kerja ke posisi selanjutnya. Program dilanjutkan dengan menggerakkan motor stepper satu dan dua ke posisi referensi awal kemudian mengeksekusi data pulsa untuk posisi kedua (“nilaic” dan “nilaid”). Setelah menuju ke posisi dua, Arduino akan menunggu input dari GUI SCARA untuk menaruh benda kerja( karakter”d”). Pada saat karakter “d” diterima oleh Arduino, pin 10 akan aktif. Silinder akan maju dan menaruh benda kerja di posisi kedua. Selanjutnya pin 11 akan mati, disusul kemudian oleh pin 10 (silinder mundur). Program akan menunggu kembali data pulsa dan perintah nesting dari GUI SCARA. Tabel 4.6 Tabel perbandingan output Arduino Pin Arduino PinA0 PinA0 PinA1 PinA1 PinA2 PinA2 PinA3 PinA3 Pin2 Pin2 Pin3 Pin3 Pin4 Pin4 Pin5 Pin5 Pin6 Pin6 Pin7 Pin7 Pin8 Pin8 Pin9 Pin9 Pin10 Pin10 Pin11 Pin11
Kondisi Program 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
Hasil Pengukuran (Volt) 0 4,81 0 4,81 0 4,81 0 4,81 0 4,81 0 4,81 0 4,81 0 4,81 0 4,81 0 4,81 0 4,81 0 4,81 0 4,81 0 4,81
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
68
Berdasarkan Tabel 4.6, hasil pengukuran pin Arduino pada saat logika high dan logika low menunjukkan pin yang digunakan sudah sesuai dengan listing program. Jika pin pada program diberi logika high, maka nilai pada pin akan berlogika high. Sebaliknya, jika pin di dalam program diberi logika low, maka nilai pada pin akan berlogika low. Kondisi high dan low diwakili oleh level tegangan yang berbeda. Logika high ditunjukkan dengan tegangan 4,81 V, sedangkan logika low ditunjukkan dengan tegangan 0 V.
4.4.Pengujian Tingkat Keberhasilan Pengamatan dan pembahasan tingkat keberhasilan berisi pengambilan posisi antara masukan dari GUI SCARA dan SCARA.
4.4.1. Pengujian Sub sistem Arduino Pengujian ini dilakukan dengan cara menjalankan sub sistem Arduino dengan aplikasi Serial Monitor yang terdapat di dalam Arduino. Pulsa untuk masing-masing motor dan tingkat kecepatan kerja Arduino dikirimkan melalui Serial Monitor. Pengukuran keluaran masing-masing motor berupa sudut putar motor. Pengukuran sudut putar motor menggunakan busur derajat. Hasil pengujian dapat dilihat pada Lampiran L1 dan L2.
Gambat 4.38 Gambar grafik pengujian Arduino untuk motor stepper 1
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
69
Gambat 4.39 Gambar grafik pengujian Arduino untuk motor stepper 2 Gambar 4.38 dan gambar 4.39 adalah gambar grafik pengukuran antara masukan dari serial monitor dan keluaran berupa sudut putar motor. Gambar 4.38 adalah grafik untuk motor stepper satu. Gambar 4.39 adalah grafik untuk motor stepper dua. Berdasarkan grafik dan tabel di atas dapat disimpulkan bahwa masukan dan keluaran linear dengan tingkat prosentase keberhasilan sebesar: !" #$1 1 100 2,11% = 97,89% !" #$2 1 100 1,25% = 98,75% !" #$1 2 100 2,21% = 97,79 % !" #$1 2 100 1,58% = 98,42 !" #$1 97,89 ' 98,75/2% = 98,32 % !" #$2 98,75 ' 98,42/2% = 98,58 %
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
70
Dari hasil perhitungan prosentase nilai kegagalan di atas, tingkat keberhasilan pengujian pergerakan motor stepper stepper satu dan motor stepper dua untuk posisi satu dan dua sudah baik. Hal ini dikarenakan nilai keberhasilan rata-rata motor stepper satu dan motor stepper dua masing-masing sebesar 98,32 % dan 95,58 %.
4.4.2. Sistem SCARA berbasis GUI dan Arduino Pengujian untuk uji kerja sistem SCARA berbasis GUI dan Arduino belum dapat dilakukan. Hal ini dikarenakan lengan satu dan dua SCARA terlalu berat untuk digerakkan oleh motor stepper satu dan motor stepper dua. Dari uji sistem Arduino, didapatkan hasil tingkat keberhasilan rata-rata mencapai ± 98%. Tingkat keberhasilan dilihat dari selisih antara sudut keluaran dan sudut hitung sudut putar motor stepper dibandingkan dengan sudut hitung. Akan tetapi, keberhasilan keluaran sudut putar motor berbanding terbalik dengan kemampuan daya putar (torsi) dari motor stepper. Kekurangan tersebut terjadi dikarenakan segi hardware mekanik SCARA. Desain hardware yang tidak mempertimbangkan kemampuan aktuator lengan robot menyebabkan kegagalan unjuk kerja SCARA. Kekurangan yang lainnya dari uji kerja sistem adalah kurang tersedianya prasarana penunjang sub sistem pneumatik. Hal ini menyebabkan sub sistem pneumatik tidak dapat berjalan sama sekali. Indikator pneumatik hanya dapat dilihat dari aktif atau tidaknya solenoide.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI BAB V KESIMPULAN DAN SARAN Bab ini menjelaskan kesimpulan yang dapat ditarik dari implementasi Selective Compliant Articulated Robot Arm (SCARA) Berbasis Arduino dan Visual Basic 6.0 Dalam Sistem Pick and Place Benda Kerja dan saran-saran yang dapat dipergunakan untuk pengembangan lebih lanjut. 5.1 Kesimpulan Dari hasil pengujian sistem Selective Compliant Articulated Robot Arm( SCARA) berbasis Arduino dan Visual Basic 6.0 dalam sistem pick and place benda kerja dapat disimpulkan bahwa : a. Dengan menggunakan uji coba sistem, motor stepper dapat digunakan sebagai aktuator pengendalian posisi dengan nilai keberhasilan ± 98% b. Dengan menggunakan uji coba sistem, komunikasi antara Arduino dan GUI SCARA dapat bekerja dengan baik. c. Dengan menggunakan uji coba sistem, sistem Selective Compliant Articulated Robot Arm (SCARA) berbasis Arduino dan Visual Basic 6.0 dalam sistem pick and place benda kerja belum dapat bekerja dikarenakan aktuator tidak kuat menggerakkan lengan. 5.2 Saran Dari hasil pengujian sistem Selective Compliant Articulated Robot Arm( SCARA) berbasis Arduino dan Visual Basic 6.0 dalam sistem pick and place benda kerja terdapat beberapa hal yang dapat dikembangkan untuk penelitian lebih lanjut, yaitu : a. Pembuatan hardware mekanik lebih diperhitungkan, baik secara desain maupun cara kerjanya agar sistem dapat berjalan dengan baik. b. Memperhitungkan torsi motor stepper agar sesuai dengan beban yang akan digerakkan.
71
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI DAFTAR PUSTAKA
[1] [2] [3]
[4] [5]
[6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] [21] [22] [23] [24]
Harjanto, Greg, dkk.2002. Industrial Robot for Manufacturing Industry, Yogyakarta : Percetakan Fakultas Teknik Universitas Sanata Dharma. SCARA Robot, http://engineershandbook.com/Components/robclassscara.htm , diakses pada Desember 2011. Adi Rokhiyat, Rahmat. Konfigurasi Robot, http://adielits.blogspot.com/2009/05/konfigurasi-robot.html diakses pada Desember 2011. http://repository.ipb.ac.id/bitstream/handle/123456789/53068/BAB%20II%2 0Tinjauan%20Pustaka.pdf?sequence=3 diakses pada 2 April 2012. Wahyu p, Temon,dkk.Optimasi Lintasan Model Lengan Robot PUMA560 Menggunakan Algoritma Genetik. Jurusan Teknik Elektro Universitas Diponegoro. Mittal RK, Nagrath IJ. 2003.Robotics and Control. New Delhi:Tata McGrawHill Publishing Company Limited. D------. 2009.Datasheet ATmega48PA/88PA/168PA/328P.Atmel. Budi Wicaksono, Nugroho. 2011.Sinkronisasi Jam Digital Nirkabel. Universitas Sanata Dharma. http://www.indorobotika.com/arduino/arduino-duemilanove diakses 14 Maret 2012. http://www.indorobotika.com/arduino-uno diakses pada 14 Maret 2012. http://blog.kedairobot.com/2011/07/02/arduino-uno/ diakses pada 2 Maret 2012. http://arduino.cc/en/Hacking/PinMapping168 diakses pada 14 Maret 2012. ------,2009.Pengembangan Sistem Pakar Menggunakan Visual Basic. Yogyakarta :Andi Offset. http://www.unhas.ac.id/~mkufisika/bab2/md2toc.html diakses pada 2 Maret 2012. Prakoso, Ian Agung. Rancang Bangun Robot Permainan Catur Berbasis Kamera. Jurusan Teknik Elektro. Institut Sepuluh November Surabaya. Pitowarno, Endra. 2006. Robotika: Desain, Kontrol, dan Kecerdasan Buatan. Yogyakarta:Penerbit Andi. C Braga, Newton.2002. Robotics, Mechatronics, and Artificial Intelligence. Brittany:Newnes. http://cybercosmic.blogspot.com/2011/01/motor-stepper.html diakses pada Januari 2012. Morris, Brian, S. 1995.Automated Manufacturing Systems: Actuators,Controls, Sensors, and Robotics. Singapore:McGraw-Hill Book Co.. Douglas W. Jones “Control of stepping motor. Tutorial” http://www.cs.uiowa.edu/~jones/step/types.html diakses pada 2 Maret 2012. Pengendalian Motor Stepper, http://hendawan.wordpress.com/2008/10/23/ pengendalian-motor-stepper, diakses pada 7 Juni 2012 http://www.nmbtc.com/step-motors/engineering/images/full-halfmicrostepping.png diakses pada Desember 2011. Barmawi, Malvino.1985.Prinsip-prinsip Elektronika Edisi Ketiga. Jakarta: Erlangga http://elektronikatea.blogspot.com/2010/12/prinsip-kerja-optocoupler.html
72
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI diakses pada 13 Februari 2012. [25] http://www.scribd.com/doc/54912333/15/A-4-3-Limit-Switch diakses pada 15 April 2012. [26] Bab 1 Konsep Otomasi Sistem Produksi, http://k12008.widyagama.ac.id/osp/diktatpdf/BabI_Konsep_Otomasi_Siste m_produksi.pdf diakses pada 13 februari 2012. [27] Hedwig, Rinda. Diktat Kuliah Teori Sistem. Universitas Bina Nusantara, http://thesis.binus.ac.id/eColls/eThesisdoc/Bab2/2009-2-00425SK%20Bab%202.pdf diakses 2 Maret 2012. [28] BAB 4 Pneumatik dan Elektropneumatik, http://www.reocities.com/al_dodi/kerja/kp4a.pdf diakses pada 2 Maret 2012. [29] Prisciandaro, John,dkk, Introduction to Pneumatics and Pneumatic Circuit Problems for FPEF Trainer. Fluide Power Education Foundation. Milwaukee. [30] Jajakustija,Mekatronika Mekatronika Modul 12, http://file.upi.edu/Direktori/FPTK/JUR.PEND.TEKNIKELEKTRO/1959123 11985031-JAJAKUSTIJA/MEKATRONIKAMODUL12.pdf diakses pada 2 April 2012. [31] McCauley, Mike, Accel Stepper Library, 2009. [32] Academy of Media Arts Cologne, stepper library StepperLab3,2010. [33] Igoe, Tom, Stepper Motor Control - one revolution, Arduino Reference.
73
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
L1
Hasil Pengujian Sub-Sistem Arduino Tabel L1 dan Tabel L2 merupakan hasil pengujian sub sistem Arduino dengan data yang dikirimkan melalui Serial Monitor Arduino. Tabel L1 merupakan hasil penggujian posisi pertama. Tabel L2 merupakan hasil pengujian posisi kedua. Tabel L1. Tabel Pengujian Sudut Putar Motor Stepper untuk Posisi Satu Posisi 1 Motor Stepper 2
Motor Stepper 1 No
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
Data Pulsa
0 5 10 15 20 25 30 35 40 45 50 55 60 65 70 75 80 85 90 95 100
Sudut Sudut Hitung(°) Ke luaran (°)
Data Pulsa
0 0 0 9 7 5 18 19 10 27 25 15 36 36 20 45 45 25 54 54 30 63 63 35 72 72 40 81 80 45 90 90 50 99 100 55 108 105 60 117 115 65 126 126 70 135 135 75 144 144 80 153 150 85 162 162 90 171 170 95 180 180 100 Rata-rata kesalahan
Prosentase kegagalan MS1(%) = Prosentase kegagalan MS2(%) =
Prosentase Prosentase Sudut Sudut kegagalan kegagalan Hitung(°) Ke luaran (°) MS1(% ) MS2(% )
0 9 18 27 36 45 54 63 72 81 90 99 108 117 126 135 144 153 162 171 180
0 9 20 27 35 45 54 60 70 80 90 100 108 117 125 135 142 153 162 170 180
100 100
0 22,22222 5,555556 7,407407 0 0 0 0 0 1,234568 0 1,010101 2,777778 1,709402 0 0 0 1,960784 0 0,584795 0 2,11
0 0 11,11111 0 2,777778 0 0 4,761905 2,777778 1,234568 0 1,010101 0 0 0,793651 0 1,388889 0 0 0,584795 0 1,25
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
L2
Tabel L2. Tabel Pengujian Sudut Putar Motor Stepper untuk Posisi Dua
Motor Stepper 1 No
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
Data Pulsa
100 95 90 85 80 75 70 65 60 55 50 45 40 35 30 25 20 15 10 5 0
Posisi 2 Motor Stepper 2
Sudut Sudut Sudut Data Pulsa Hitung(°) Ke luaran (°) Hitung(°)
180 171 162 153 144 135 126 117 108 99 90 81 72 63 54 45 36 27 18 9 0
180 100 172 95 162 90 150 85 140 80 135 75 125 70 119 65 108 60 99 55 90 50 83 45 73 40 62 35 54 30 45 25 36 20 27 15 18 10 6 5 0 0 Rata-rata
Prosentase kegagalan MS1(%) = Prosentase kegagalan MS2(%) =
Sudut Ke luaran (°)
180 171 162 153 144 135 126 117 108 99 90 81 72 63 54 45 36 27 18 9 0
180 168 160 153 145 135 120 117 110 99 90 79 72 60 55 45 35 27 18 8 0
100 100
Prose ntase ke gagalan MS1(%)
0 0,01 0 0,03 0,04 0 0,01 0,02 0 0 0 0,02 0,01 0,01 0 0 0 0 0 0,03 0 0,00857
Prosentase kegagalan MS2(% )
0 0,03 0,02 0 0,01 0 0,06 0 0,02 0 0 0,02 0 0,03 0,01 0 0,01 0 0 0,01 0 0,0105
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
L3
Listing Program Arduino L3. Listing Program Arduino //====================================================== //Author:Y.B.Adyapaka Apatya //ProgramName: plant_SCARA //Board: Arduino Uno/Duemilanove //NameProject:Selective Compliant Articulated Robot Arm (SCARA) Berbasis Arduino dan Visual BAsic 6.0 //====================================================== //thanks to : //AccelStepper Library // Copyright (C) 2009 Mike McCauley // $Id: MultiStepper.pde,v 1.1 2011/01/05 01:51:01 mikem Exp mikem $ //Stepper library StepperLab3 //KHM Lab3 2010 //Kunsthochschule fuer Medien Koeln //Academy of Media Arts Cologne // http://interface.khm.de //Stepper Motor Control - one revolution //Created 11 Mar. 2007 //Modified 30 Nov. 2009 //by Tom Igoe //=======================================================#include
<Stepper.h> //library stepper const int stepsPerRevolution = 200;
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI int motorSpeed=50; //deklarasi pin arduino untuk motor stepper 1 Stepper myStepper1(stepsPerRevolution, 2,3,4,5); //deklarasi pin arduino untuk motor stepper 2 Stepper myStepper2(stepsPerRevolution, 6,7,8,9); int stepCount = 1; //library stepper #include
//deklarasi pin arduino untuk motor stepper 1 AccelStepper stepper1; // Defaults to AccelStepper::FULL4WIRE (4 pins) on 2, 3, 4, 5 //deklarasi pin arduino untuk motor stepper 2 AccelStepper stepper2(AccelStepper::FULL4WIRE, 6, 7, 8, 9);
//input output const int ls_1=14; const int ls_2=15; const int ls_3=16; const int ls_4=17; const int silinder=10; const int sucker=11; //deklarasi variabel pembacaan limit switch int bacals1=0; int bacals2=0;
L4
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI int bacals3=0; int bacals4=0; //deklarasi variabel komunikasi data int nilaia,nilaib,nilaic,nilaid,nilaie; int convert(char a) { if(a=='1') return 1; if(a=='2') return 2; if(a=='3') return 3; if(a=='4') return 4; if(a=='5') return 5; if(a=='6') return 6; if(a=='7') return 7; if(a=='8') return 8; if(a=='9')
L5
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI return 9; if(a=='0') return 0; }
void setup(){ //deklarasi variabel sebagai input pinMode(ls_1,INPUT); pinMode(ls_2,INPUT); pinMode(ls_3,INPUT); pinMode(ls_4,INPUT); //deklarasi variabel sebagai output pinMode(silinder,OUTPUT); pinMode(sucker,OUTPUT); //komunikasi data Serial.begin(9600); char buffer[19] = { //data yang akan dibaca sebanyak 19 karakter ' ',' ',' ',' ',' ',' ',' ' }; // Receive up to 7 bytes while (!Serial.available()); //menunggu jika ada data serial diterima Serial.readBytesUntil('\n', buffer, 19);//konversi data serial nilaia=convert(buffer[0])*100+convert(buffer[1])*10+convert(buffer[2])*1; nilaib=convert(buffer[4])*100+convert(buffer[5])*10+convert(buffer[6])*1; nilaic=convert(buffer[8])*100+convert(buffer[9])*10+convert(buffer[10])*1;
L6
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI nilaid=convert(buffer[12])*100+convert(buffer[13])*10+convert(buffer[14])*1; nilaie=convert(buffer[16])*100+convert(buffer[17])*10+convert(buffer[18])*1; //setting awal motor stepper 1 dan motor stepper 2 stepper1.setMaxSpeed(200.0); stepper1.setAcceleration(100.0); stepper2.setMaxSpeed(300.0); stepper2.setAcceleration(100.0); }
void loop(){ nesting(); }
void nesting(){ // menunggu inputan dari Visual Basic (nasting) if(Serial.available()){ int terimadata=Serial.read(); if (terimadata=='a'){ nesting1(); } } myStepper1.setSpeed(0); myStepper1.setSpeed(0);
L7
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI }
void nesting1(){ //memutar motor stepper sampai menyentuh limit switch 1 bacals1=digitalRead(ls_1); if(bacals1==HIGH){ stopnesting1();//loncat ke sub program stopnesting1 } else { Serial.println("start"); myStepper1.setSpeed(50); myStepper1.step(-stepsPerRevolution/100);//putar motor CCW nesting1(); } }
void stopnesting1(){ //menghentikan motor ketika limit switch telah tersentuh myStepper1.setSpeed(0); delay(2000/nilaie);//nilai e adala data setting kecepatan nesting2(); }
L8
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI void nesting2(){ //menggerakkan motor stepper kedua sampai lengan menyentuh limit switch bacals2=digitalRead(ls_2); if(bacals2==HIGH){ Serial.println("ls2"); stopnesting2(); } else { delay(50); myStepper2.setSpeed(50); myStepper2.step(-stepsPerRevolution/100); //putar motor stepper 2 CCW nesting2(); } }
void stopnesting2(){ //menghentikan motor stepper 2 dan menggerakkan sebesar 90 derajat untuk menuju posisi awal myStepper2.setSpeed(0); delay(2000/nilaie); myStepper2.setSpeed(50); myStepper2.step(50); delay(3000);
L9
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI delay(3000/nilaie); //myStepper2.step(0); jalandonk(); }
void jalandonk(){ //menunggu sampai ada perintah pick dari GUI //menggerakan motor stepper menuju posisi sesuai jumlah pulsa yang dikirim if(Serial.available()) { char next=Serial.read(); if(next=='c') { lanjut(); } } delay(50); stepper1.moveTo(nilaia);//stepper 1 menuju posisi yang pertama stepper1.run(); stepper2.moveTo(nilaib);//stepper 2 menuju posisi yang pertama stepper2.run(); jalandonk(); }
L10
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
void lanjut() { //jika sudah menerima perintah pick, SCARA ambil benda Serial.print("lanjut"); delay(500/nilaie); digitalWrite(silinder,HIGH);//silinder maju delay(2000); digitalWrite(sucker,HIGH);//sucker nyala delay(500); digitalWrite(silinder,LOW);//silinder mundur delay(2000/nilaie); home1(); }
void home1(){ //menggerakkan lengan 1 ke posisi awal 1 //jika limit switch tersentuh maka lanjut ke motor stepper 2 bacals1=digitalRead(ls_1); if(bacals1==HIGH){ stophome1(); } else {
L11
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI myStepper1.setSpeed(50); myStepper1.step(-stepsPerRevolution/100); home1(); } }
void stophome1(){ //menghentikan motor stepper 1 myStepper1.setSpeed(0); delay(2000/nilaie); home2(); }
void home2(){ //menggerakkan lengan 2 sampai menyentuh limit switch bacals2=digitalRead(ls_2); if(bacals2==HIGH){ stophome2(); } else { Serial.println("nesting2"); myStepper2.setSpeed(50); myStepper2.step(-stepsPerRevolution/100); //nesting
L12
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI home2(); } }
void stophome2(){ //menggerakkan motor stepper ke myStepper2.setSpeed(0); delay(1000/nilaie); // seting kecepatan sesuai inputan dari VB myStepper2.setSpeed(50); myStepper2.step(50); delay(3000/nilaie); jalandonk1(); }
void jalandonk1(){ // menggerakkan lengan ke posisi kedua //sambil menunggu perintah untuk place benda kerja delay(50); myStepper1.setSpeed(50); myStepper1.step(nilaic);//stepper 1 menuju posisi yang kedua myStepper2.setSpeed(50);//stepper 2 menuju posisi yang kedua myStepper2.step(nilaid); tunggu();
L13
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI } void tunggu(){ //menunggu tombol place pada GUI ditekan if(Serial.available()) { char next=Serial.read(); if(next=='d') { lanjut2(); } } delay(100); tunggu(); } void lanjut2() { // program place benda kerja delay(1000/nilaie); digitalWrite(silinder,HIGH);//silinder maju delay(2000); digitalWrite(sucker,LOW);//sucker mati delay(500); digitalWrite(silinder,LOW);//silinder mundur
L14
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI delay(1000/nilaie); berhenti(); }
void berhenti(){ //selesai Serial.println("berhenti"); berhenti(); }
L15
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI L4.Tampilan Awal
Dim flash As Integer Private Sub cmd_entry_Click() Unload Me Form2.Show End Sub Private Sub cmd_exit_Click() End End Sub Private Sub Form_Load() Timer1.Enabled = True End Sub Private Sub Timer1_Timer() flash = flash + 1 If flash = 1 Then Label1.BackColor = vbRed Label1.ForeColor = vbBlack Label2.Left = 0 Label2.BackColor = vbBlue End If If flash = 2 Then Label1.ForeColor = vbBlue Label2.Left = 500 Label2.BackColor = vbGreen End If If flash = 3 Then Label1.ForeColor = vbBlue Label1.BackColor = vbBlack
L15
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI Label2.Left = 1000 Label2.BackColor = vbRed End If If flash = 4 Then Label1.ForeColor = vbYellow Label2.Left = 2000 Label2.BackColor = vbWhite End If If flash = 5 Then Label1.ForeColor = vbRed Label2.Left = 3000 Label2.BackColor = vbGreen End If If flash = 6 Then Label1.BackColor = vbBlue Label1.ForeColor = vbRed Label2.Left = 4000 Label2.BackColor = vbRed End If If flash = 7 Then Label1.ForeColor = vbGreen Label2.Left = 6000 Label2.BackColor = vbBlue End If If flash = 8 Then Label1.ForeColor = vbBlack Label2.Left = 8000 Label2.BackColor = vbYellow End If
L16
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI If flash > 9 Then flash = 0 End Sub
L5.Tampilan Utama 'deklarasi variabel Dim sped As Integer Dim x As Integer Dim y As Integer Dim l1 As Integer Dim l2 As Integer 'deklarasi variabel posisi 1 Dim sudut2 As Double Dim sudut1 As Double Dim sudut2jadi As Double Dim sudut1jadi As Double Dim sudut2hasil As Double Dim sudut1hasil As Double Dim pulsa1 As Integer Dim pulsa2 As Integer 'deklarasi variabel posisi 2 Dim sudut4 As Double Dim sudut3 As Double Dim sudut4jadi As Double Dim sudut3jadi As Double Dim sudut4hasil As Double Dim sudut3hasil As Double Dim pulsa3 As Integer Dim pulsa4 As Integer Dim pulsa1_1 As Integer
L17
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
L18
Dim pulsa1_2 As Integer Dim pulsa2_2 As Integer Dim pulsa2_1 As Integer Public Function arccos(A As Double) As Double arccos = Atn(-A / Sqr(-A * A + 1)) + 2 * Atn(1) End Function Private Sub cmd_kal_Click() 'perhitungan posisi 1 '================================================================ X1 = Val(txt_x1.Text) Y1 = Val(txt_y1.Text) l1 = Val(txt_l1.Text) l2 = Val(txt_l2.Text) sudut2 = (X1 ^ 2 + Y1 ^ 2 - l1 ^ 2 - l2 ^ 2) / (2 * l1 * l2) sudut2jadi = arccos(sudut2) sudut2hasil = sudut2jadi * 180 / (22 / 7) sudut1 = (Y1 * (l1 + l2 * Cos(sudut2jadi)) - (X1 * l2 * Sin(sudut2jadi))) / (X1 * (l1 + l2 * Cos(sudut2jadi)) + (Y1 * l2 * Sin(sudut2jadi))) sudut1jadi = Atn(sudut1) sudut1hasil = sudut1jadi * 180 / (22 / 7) txt_sudut1_1.Text = sudut1hasil txt_sudut1_2.Text = sudut2hasil pulsa1 = sudut1hasil / 1.8 pulsa2 = sudut2hasil / 1.8 txt_pulsa1_1.Text = Abs(pulsa1) txt_pulsa1_2.Text = Abs(pulsa2) 'perhitungan posisi 2 '================================================================ X2 = Val(txt_x2.Text) Y2 = Val(txt_y2.Text)
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
L19
l1 = Val(txt_l1.Text) l2 = Val(txt_l2.Text) sudut4 = (X2 ^ 2 + Y2 ^ 2 - l1 ^ 2 - l2 ^ 2) / (2 * l1 * l2) sudut4jadi = arccos(sudut4) sudut4hasil = sudut4jadi * 180 / (22 / 7) sudut3 = (Y2 * (l1 + l2 * Cos(sudut4jadi)) - (X2 * l2 * Sin(sudut4jadi))) / (X2 * (l1 + l2 * Cos(sudut2jadi)) + (Y2 * l2 * Sin(sudut4jadi))) sudut3jadi = Atn(sudut3) sudut3hasil = sudut3jadi * 180 / (22 / 7) txt_sudut2_1.Text = sudut3hasil txt_sudut2_2.Text = sudut4hasil pulsa3 = sudut3hasil / 1.8 pulsa4 = sudut4hasil / 1.8 txt_pulsa2_1.Text = Abs(pulsa3) txt_pulsa2_2.Text = Abs(pulsa4) 'tampil kirim '================================================================ === If Len(txt_pulsa1_1.Text) = 1 Then txt_pulsa1_1.Text = "00" & txt_pulsa1_1.Text If Len(txt_pulsa1_1.Text) = 2 Then txt_pulsa1_1.Text = "0" & txt_pulsa1_1.Text If Len(txt_pulsa1_1.Text) = 3 Then txt_pulsa1_1.Text = txt_pulsa1_1.Text If Len(txt_pulsa1_2.Text) = 1 Then txt_pulsa1_2.Text = "00" & txt_pulsa1_2.Text If Len(txt_pulsa1_2.Text) = 2 Then txt_pulsa1_2.Text = "0" & txt_pulsa1_2.Text If Len(txt_pulsa1_2.Text) = 3 Then txt_pulsa1_2.Text = txt_pulsa1_2.Text If Len(txt_pulsa2_1.Text) = 1 Then txt_pulsa2_1.Text = "00" & txt_pulsa2_1.Text If Len(txt_pulsa2_1.Text) = 2 Then txt_pulsa2_1.Text = "0" & txt_pulsa2_1.Text If Len(txt_pulsa2_1.Text) = 3 Then txt_pulsa2_1.Text = txt_pulsa2_1.Text If Len(txt_pulsa2_2.Text) = 1 Then txt_pulsa2_2.Text = "00" & txt_pulsa2_2.Text If Len(txt_pulsa2_2.Text) = 2 Then txt_pulsa2_2.Text = "0" & txt_pulsa2_2.Text If Len(txt_pulsa2_2.Text) = 3 Then txt_pulsa2_2.Text = txt_pulsa2_2.Text
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
L20
End Sub Private Sub cmd_nst_Click() cmd_pick.Enabled = True cmd_nst.Enabled = False MSComm1.Output = "a" End Sub Private Sub cmd_pick_Click() cmd_place.Enabled = True cmd_pick.Enabled = False MSComm1.Output = "c" End Sub Private Sub cmd_place_Click() cmd_place.Enabled = False MSComm1.Output = "d" End Sub Private Sub cmd_send_Click() cmd_nst.Enabled = True cmd_send.Enabled = False '================================================================ = 'kirim data pulsa ke Arduino 'data yang dikirim berupa 3 digit angka '================================================================ === 'kirim data MSComm1.Output = txt_pulsa1_1.Text MSComm1.Output = "," MSComm1.Output = txt_pulsa1_2.Text MSComm1.Output = "," MSComm1.Output = txt_pulsa2_1.Text
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
L21
MSComm1.Output = "," MSComm1.Output = txt_pulsa2_2.Text MSComm1.Output = "," MSComm1.Output = txt_sped.Text MSComm1.Output = Chr(13) Text1.Text = txt_pulsa1_1.Text And txt_pulsa1_2.Text And txt_pulsa2_1.Text And txt_pulsa2_2.Text End Sub Private Sub cmd_simon_Click() 'menyalakan timer simulasi If txt_y1 < 0 Or txt_y2 < 0 Then MsgBox "Posisi yang dimasukkan tidak diperbolehkan!", vbExclamation txt_x1 = "0" txt_y1 = "0" txt_x2 = "0" txt_y2 = "0" Else tim_sim.Enabled = True '==================================== 'cara membuat garis miring 'A = 2000 + (Val(txt_x1.Text) * 60) 'B = 3700 - (Val(txt_y1.Text) * 60) 'Text16.Text = A 'Text17.Text = B 'Line (A, B)-(2000, 3700), vbRed '==================================== End If End Sub Private Sub cmd_simoff_Click() 'mematikan timer simulasi
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI tim_sim.Enabled = False 'mematikan benda kerja 1 dan 2 di simulasi bendakerja1.Visible = False bendakerja2.Visible = False End Sub Private Sub cmd_exit_Click() End End Sub Private Sub cmd_connect_Click() MSComm1.PortOpen = True cmd_send.Enabled = True cmd_kal.Enabled = False cmd_simon.Enabled = False cmd_simoff.Enabled = False cmd_disconect.Enabled = True cmd_connect.Enabled = False End Sub Private Sub cmd_disconect_Click() MSComm1.PortOpen = False cmd_place.Enabled = False cmd_kal.Enabled = True cmd_simon.Enabled = True cmd_simoff.Enabled = True cmd_nst.Enabled = False cmd_send.Enabled = False cmd_pick.Enabled = False cmd_place.Enabled = False cmd_connect.Enabled = True cmd_disconect.Enabled = False
L22
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI End Sub Private Sub Form_Load() 'default awal txt_sped.Text = "00" & 1 txt_l1.Text = 10 txt_l2.Text = 15 txt_x1.Text = 0 txt_y1.Text = 0 txt_x2.Text = 0 txt_y2.Text = 0 txt_pulsa1_1.Text = 0 txt_pulsa1_2.Text = 0 txt_pulsa2_1.Text = 0 txt_pulsa2_2.Text = 0 txt_sudut2_1.Text = 0 txt_sudut1_1.Text = 0 txt_sudut1_2.Text = 0 txt_sudut2_2.Text = 0 'mengaktifkan timer grid posisi tim_area.Enabled = True End Sub Private Sub hs_sped_Change() 'masukan nilai kecepatan sped = Val(hs_sped.Value) txt_sped = "00" & sped End Sub Private Sub tim_area_Timer() 'horizontal Line (500, 700)-(500, 3700), vbRed
L23
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI Line (800, 700)-(800, 3700), vbRed Line (1100, 700)-(1100, 3700), vbRed Line (1400, 700)-(1400, 3700), vbRed Line (1700, 700)-(1700, 3700), vbRed Line (2000, 700)-(2000, 3700), vbRed Line (2300, 700)-(2300, 3700), vbRed Line (2600, 700)-(2600, 3700), vbRed Line (2900, 700)-(2900, 3700), vbRed Line (3200, 700)-(3200, 3700), vbRed Line (3500, 700)-(3500, 3700), vbRed 'vertikal Line (500, 700)-(3500, 700), vbRed Line (500, 1000)-(3500, 1000), vbRed Line (500, 1300)-(3500, 1300), vbRed Line (500, 1600)-(3500, 1600), vbRed Line (500, 1900)-(3500, 1900), vbRed Line (500, 2200)-(3500, 2200), vbRed Line (500, 2500)-(3500, 2500), vbRed Line (500, 2800)-(3500, 2800), vbRed Line (500, 3100)-(3500, 3100), vbRed Line (500, 3400)-(3500, 3400), vbRed Line (500, 3700)-(3500, 3700), vbRed Circle (2000, 3400), 75, vbGreen End Sub Private Sub tim_sim_Timer() 'posisi 1 '============================================= If Val(txt_x1.Text) < 0 Then C = ((Val(txt_x1.Text) - 1) * 60)
L24
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI D = Abs(C) A = 2000 - D B = 3400 - ((Val(txt_y1.Text) + 1) * 60) bendakerja1.Visible = True bendakerja1.Left = A bendakerja1.Top = B End If If Val(txt_x1.Text) > 0 Then A = 2000 + ((Val(txt_x1.Text) - 1) * 60) B = 3400 - ((Val(txt_y1.Text) + 1) * 60) bendakerja1.Visible = True bendakerja1.Left = A bendakerja1.Top = B End If 'posisi 2 '========================================== If Val(txt_x2.Text) < 0 Then H = ((Val(txt_x2.Text) - 1) * 60) G = Abs(H) E = 2000 - G f = 3400 - ((Val(txt_y2.Text) + 1) * 60) bendakerja2.Visible = True bendakerja2.Left = E bendakerja2.Top = f End If If Val(txt_x2.Text) > 0 Then E = 2000 + ((Val(txt_x2.Text) - 1) * 60) f = 3400 - ((Val(txt_y2.Text) + 1) * 60) bendakerja2.Visible = True
L25
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI bendakerja2.Left = E bendakerja2.Top = f End If End Sub Private Sub tim_status1_Timer() lbl_status = "Please insert your potition, arm lenght, and speed" End Sub
L26
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI Hasil Perancangan Hardware Mekanik L6. Hardware Mekanik Lengan 1
L27
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI L7. Hardware Mekanik Lengan 2
L28
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI L8. Hardware Mekanik As Lengan 1
L29
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI L9. Hardware Mekanik As Lengan 2
L30
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI L10. Hardware Mekanik Base Lengan
L31
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI L11. Hardware Mekanik Meja Base
L32
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI L12. Hardware Mekanik Part End Effector
L33
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI L13. Assembly Hardware Mekanik
L34
PLAGIAT MERUPAKAN MERUPAKAN TINDAKAN TINDAKAN TIDAK TIDAK TERPUJI TERPUJI PLAGIAT L8. Rangkaian Elektrik SCARA
L35
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI L12. Name Plate Motor Stepper
L36
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI L13. Name Plate Solenoide
L37