KTI Dhea 216341005 [PDF]

  • 0 0 0
  • Suka dengan makalah ini dan mengunduhnya? Anda bisa menerbitkan file PDF Anda sendiri secara online secara gratis dalam beberapa menit saja! Sign Up
File loading please wait...
Citation preview

RANCANG BANGUN ANTARMUKA ARM ROBOT DOBOT MAGICIAN BERBASIS VISUAL BASIC.NET DENGAN KOMUNIKASI ARDUINO MEGA 2560 Laporan Teknik Proyek Akhir Disusun sebagai salah satu syarat untuk menyelesaikan pendidikan Diploma III



Oleh Dhea Safitri 216341005



JURUSAN TEKNIK OTOMASI MANUFAKTUR DAN MEKATRONIKA POLITEKNIK MANUFAKTUR BANDUNG 2019



i



LEMBAR PENGESAHAN



RANCANG BANGUN ANTARMUKA ARM ROBOT DOBOT MAGICIAN BERBASIS VISUAL BASIC.NET DENGAN KOMUNIKASI ARDUINO MEGA 2560 oleh Dhea Safitri 216341005



Program Studi Teknik Mekatronika Politeknik Manufaktur Bandung



Menyetujui, Tim Pembimbing Juni 2019



Pembimbing I,



Pembimbing II,



Hadi Supriyanto, ST. MT.



Ridwan, S.ST., M.Eng.



NIP 196911081993031002



NIP 197806122001121002



ii



ABSTRAK DOBOT Magician Robotic Arm adalah robot multifungsi berbentuk lengan yang mampu melakukan beberapa tugas fisik seperti 3D printing, drawing, dan laser engraving. Lengan robot ini dapat diprogram dengan menggunakan berbagai bahasa pemograman yang telah di sediakan DOBOT Magician dan dapat dipantau melalui berbagai jenis user interface pada PC. Robot ini dapat bekerja secara otomatis maupun manual. Untuk mengoperasikan DOBOT Magician, maka dibutuhkan sebuah perantara antara operator dan hardware yang akan dioperasikan. Oleh karena itu dibangunlah sebuah antarmuka dengan tujuan yaitu memudahkan operator dalam mengoperasikan sebuah lengan robot dan melindungi keselamatan operator dalam pengoperasian. Pada sebuah rancang bangun antarmuka, penulis menggunakan aplikasi Microsoft Visual Studio. Antarmuka yang telah dibuat akan diakses oleh mikrokontroller Arduino Mega 2560 dengan menggunakan komunikasi serial. Pengoperasian DOBOT Magician melalui antarmuka berbasis VB.NET ini memiliki beberapa fitur mendasar, diantaranya pengoperasian secara manual maupun metode teaching robot. Data teaching yang telah dilakukan dapat disimpan dibuka dengan format tertentu. Selain itu, antarmuka yang telah dibangun ini memiliki beberapa fitur yang tidak terdapat pada software orisinil DOBOT Magician. Hasil akhir dari proyek ini adalah sebuah kendali terintegrasi yang bisa mengendalikan lengan robot secara manual maupun otomatis melalui antarmuka. Selain itu dapat menghasilkan sebuah data koordinat X, Y, Z, dan R. Lengan robot dapat menjalankan perintah teaching sesuai dengan masukan yang diberikan. Data koordinat yang dihasilkan tidak hanya ditampilkan pada antarmuka Software, namun dapat pula diakses oleh website berbasis localhost.



Kata Kunci: Arm Robot, Antarmuka, Microsoft Visual Studio, VB. Net, Arduino Mega 2560, Object Oriented Programming, Movement Memorizing Robot.



iii



KATA PENGANTAR Puji dan syukur penulis panjatkan kehadirat Allah SWT, yang telah memberikan rahmat dan karunia-Nya sehingga penulis dapat menyelesaikan Proyek Akhir ini yang berjudul RANCANG BANGUN SISTEM INTERFACE BERBASIS VISUAL BASIC.NET DAN PROGRAM MIKROKONTROLER ARDUINO. Penyusun Proyek Akhir ini merupakan salah satu syarat kelulusan dalam memenuhi kurikulum diploma III di Politeknik Manufaktur Bandung. Proyek Akhir ini dapat selesai disusun dengan adanya bantuan dari pihak pembimbing baik materi maupun teknis. Oleh karena itu, ucapan terimakasih penulis sampaikan kepada : 1. Bapak Hadi dan Bapak Ridwan sebagai pembimbing yang bersedia meluangkan waktu serta pikiran untuk memberikan koreksi dalam penyusunan proyek akhir ini. 2. Para Dosen pengajar yang dengan penuh kesabaran dan perhatian membuka wawasan pemikiran penulis melalui berbagai kajian akademik. 3. Rekan – rekan seangkatan dan semua pihak yang tidak dapat disebutkan satu persatu yang ikut mendukung dan memberi masukan dan bantuan. Penulis berharap semoga Allah memberikan imbalan yang setimpal pada mereka yang telah memberikan bantuan, dan dapat menjadikan semua bantuan ini sebagai ibadah. Sebagaimana suatu karya yang di buat oleh manusia, tak luput dari kekurangan. Oleh karena itu penulis mohon maaf apabila dalam penulisan karya tulis proyek akhir ini terdapat kekeliruan. Penyusun berharap semoga karya tulis ini dapat bermanfaat bagi segala pihak yang membutuhkan umumnya dan bagi penulis khususnya.



Bandung, Mei 2019



Penulis



iv



DAFTAR ISI HALAMAN JUDUL ...................................................................................... i LEMBAR PENGESAHAN ........................................................................... ii ABSTRAK .................................................................................................... iii KATA PENGANTAR .................................................................................. iv DAFTAR ISI ................................................................................................. v DAFTAR GAMBAR ................................................................................... vii DAFTAR TABEL ........................................................................................ ix BAB I ............................................................................................................. 1 1.1



Tujuan ............................................................................................ 1



1.2



Teknologi Yang Digunakan .......................................................... 1



1.2.1 Mikrokontroler ........................................................................... 1 1.2.2 Aktuator ..................................................................................... 2 1.2.3 Perangkat Lunak ........................................................................ 2 1.2.4 Konstruksi Mesin ....................................................................... 3 BAB II ........................................................................................................... 4 2.1



DOBOT Magician ......................................................................... 4



2.2



Desain Interface ............................................................................ 8



2.2.1 Pengertian dan Tujuan Desain Interface .................................... 8 2.2.2 Microsoft Visual Studio 2010 .................................................. 10 2.3



Komunikasi Data ......................................................................... 11



2.3.1 Pengertian Komunikasi Data ................................................... 11 2.3.2 Komunikasi Data Serial ........................................................... 12 2.3.3 Pengolahan Data ...................................................................... 13



v



BAB III ........................................................................................................ 16 3.1



Gambaran Umum Sistem ............................................................ 16



3.2



Diagram Alir Sistem .................................................................... 18



3.2.1 Diagram Alir Rancangan Komunikasi Mode Manual ............. 18 3.3



Tuntutan Kerja Sistem ................................................................. 19



3.4



Gambaran Umum Subsistem ....................................................... 19



3.4.1 Diagram Alir Perancangan....................................................... 19 3.4.2 Proses Pembuatan Antarmuka Lengan Robot ......................... 20 3.4.3 Komunikasi Antarmuka dengan Sistem .................................. 27 BAB IV ........................................................................................................ 29 4.1



Hasil Implementasi Interface ....................................................... 29



4.2



Tampilan Perubahan I/O ............................................................. 30



4.2.1 Pengujian Serial Communication ............................................ 30 4.2.2 Pengujian Mode Manual .......................................................... 33 4.2.3 Pengujian Mode Teaching ....................................................... 36 4.2.4 Pengujian Website .................................................................... 38 BAB V PENUTUP ...................................................................................... 40 5.1



Ketercapaian Tujuan dan Tuntutan ............................................. 40



5.2



Permasalahan ............................................................................... 40



5.3



Solusi ........................................................................................... 40



DAFTAR PUSTAKA .................................................................................. 41



vi



DAFTAR GAMBAR Gambar 2.1 Bagian-Bagian DOBOT Magician [4] ........................................ 4 Gambar 2.2 Tampilan Form (Design) Microsoft Visual Studio 2010......... 11 Gambar 2.3 Tampilan Form (Code) Microsoft Visual Studio 2010 ........... 11 Gambar 2.4 Diagram Komunikasi Data ...................................................... 12 Gambar 3.1 Plant DOBOT Magician .......................................................... 16 Gambar 3.2 Diagram Alir Manual ............................................................... 18 Gambar 3.3 Gambaran Sub Sistem.............................................................. 19 Gambar 3.4 Diagram Alir Perancangan....................................................... 20 Gambar 3.5 Tampilan pengaturan komunikasi serial pada antarmuka........ 21 Gambar 3.6 Program koneksi serial Port .................................................... 22 Gambar 3.7 Tampilan Operating Panel pada antarmuka ............................ 23 Gambar 3.8 Program pengontrolan DOBOT pada operating panel ............ 25 Gambar 3.9 Tampilan mode teaching and playback ................................... 26 Gambar 3.10 Konektor USB tipe A (PC) dan tipe B (Mikrokontroler) [1]... 28 Gambar 4.1 Tampilan Pengaturan Komunikasi........................................... 30 Gambar 4.2 Message Box yang akan muncul apabila Port dan Baudrate tidak ditentukan .................................................................................................... 30 Gambar 4.3 Message Box yang akan muncul apabila Baud Rate belum ditentukan .................................................................................................... 31 Gambar 4.4 Message Box yang akan muncul apabila Port dan Baud Rate telah ditentukan .................................................................................................... 31 Gambar 4.5 Message Box yang akan muncul apabila Port dan Baudrate tidak ditentukan .................................................................................................... 31 Gambar 4.6 Message Box yang akan muncul apabila Port dan Baud Rate telah ditentukan .................................................................................................... 32



vii



Gambar 4.7 Tampilan Komunikasi Sukses Tersambung ............................ 32 Gambar 4.8 Fungsi semua button akan disable apabila interface belum terhubung oleh DOBOT. ............................................................................. 33 Gambar 4.9 Fungsi semua button akan enable apabila antarmuka telah terhubung oleh DOBOT .............................................................................. 33 Gambar 4.10 Interface telah terkoneksi plant DOBOT Magician .............. 34 Gambar 4.11 Tampilan apabila DOBOT melakukan metode teaching ....... 38 Gambar 4.12 Tampilan apabila Pengoperasian DOBOT melewati batas maksimum pergerakan ................................................................................. 38 Gambar 4.13 Tampilan update data pada web dari antarmuka ................... 39



viii



DAFTAR TABEL Tabel 1.1.1 Spesifikasi mikrokontroler Arduino Mega 2560 ........................ 1 Tabel 1.2 Spesifikasi aktuator yang digunakan ............................................. 2 Tabel 1.3 Jenis perangkat lunak..................................................................... 3 Tabel 1.4 Konstruksi axis pada robotic arm.................................................. 3 Tabel 2.1 Spesifikasi Lengan Robot DOBOT Magician [2]........................... 5 Tabel 2.2 Tabel Tipe Data Bilangan Bulat .................................................. 14 Tabel 2.3 Klasifikasi Tipe Data Pecahan ..................................................... 15 Tabel 3.1 Fitur yang terdapat pada Serial Communication Port antarmuka 21 Tabel 3.2 Fitur pada Operating Panel ......................................................... 23 Tabel 3.3 Fitur yang terdapat pada teaching and playback ......................... 26 Tabel 4.1 String yang Dikirim ke Mikrokontroler pada Mode Manual ...... 34 Tabel 4.2 String yang Dikirim ke Mikrokontroler pada Mode Teaching .... 36



ix



BAB I PENDAHULUAN



1.1



Tujuan Tujuan dari Proyek Akhir (PA), yaitu : 1. Membuat sebuah pengembangan antarmuka yang memiliki beberapa kesamaan dan kelebihan dari software sebelumnya. 2. Mengendalikan robotic arm DOBOT Magician dengan menggunakan komunikasi serial. 3. Mampu melakukan teaching robot dengan pergerakan yang dinamis.



1.2



Teknologi Yang Digunakan



1.2.1 Mikrokontroler Pada proyek ini penulis menggunakan satu tipe mikrokontroler, yaitu Arduino Mega. Berikut ini merupakan spesifikasi dari mikrokontroler tersebut. Arduino Mega 2560 adalah board Arduino yang merupakan perbaikan dari board Arduino Mega sebelumnya. Arduino Mega awalnya memakai chip ATmega1280 dan kemudian diganti dengan chip ATmega2560, oleh karena itu namanya diganti menjadi Arduino Mega 2560. Berikut spesifikasi Arduino Mega 2560 R3. Tabel 1.0.1 Spesifikasi mikrokontroler Arduino Mega 2560 Microcontroller



ATmega2560



Operating Voltage



5V



Input



7-12V



Voltage



(recommended) Input Voltage (limits)



6-20V



1



Digital I/O Pins



54 (of which 15 provide PWM output)



Analog Input Pins



16



DC Current per I/O Pin



40 mA



DC Current for 3.3V Pin



50 mA



Flash Memory



256 KB of which 8 KB used by bootloader



SRAM



8 KB



EEPROM



4 KB



Clock Speed



16 MHz



1.2.2 Aktuator Robotic arm ini dikendalikan oleh aktuator yang telah terintegrasi pada plant DOBOT Magician. Berikut ini adalah spesifikasi plant DOBOT Magician : Tabel 0.2 Spesifikasi aktuator yang digunakan Motor Servo



3.3 V



Motor Stepper



Nema17 Bipolar Stepper 200 pulse/rev, 1.3 A, 2 Phasa 3.25 V



1.2.3



Driver Stepper



IC A4988



Encoder



Rotary Encoder



Gryoscope



MP65



Perangkat Lunak Untuk menciptakan suatu rancangan dan pemrograman secara aplikatif, maka dibutuhkan sebuah perangkat lunak yang mampu memaksimalkan performa mikrokontroler.



2



Tabel 0.3 Jenis perangkat lunak Pekerjaan



Platform



Antarmuka



Microsoft Visual Studio 2017 Community Visual Basic.Net



1.2.4



Pemrograman Arduino



Arduino IDE 1.8



Web development



Microsoft Visual Studio Code 2015



Konstruksi Mesin Tabel 0.4 Konstruksi axis pada robotic arm Axis



Range



Max



Speed



workload) Joint 1 base



-90° to + 90°



320° / s



Joint 2 rear arm



0° to +85°



320° / s



Joint 3 forearm



-10° to +95°



320° / s



Joint 4 rotation



+90° to -90°



480° / s



servo



3



(250g



2BAB II LANDASAN TEORI



2.1



DOBOT Magician Berikut adalah gambar bagian-bagian tampak luar dari DOBOT Magician yang diambil bersumberkan internet.



Gambar 2.1 Bagian-Bagian DOBOT Magician [4] DOBOT Magician adalah multifunction robotic arm untuk pendidikan pelatihan praktis. DOBOT Magician dapat mewujudkan fungsi menarik seperti pencetakan 3D, ukiran laser, menulis dan menggambar. Ini mendukung pengembangan sekunder dengan 13 antarmuka yang dapat diperluas dan lebih dari 20 bahasa pemrograman, yang mampu meningkatkan kreativitas dan imajinasi tanpa batasan apa pun. Robot ini dapat bekerja secara otomatis maupun manual. Lengan robot ini memiliki tiga unit motor stepper bipolar 2 fasa untuk menggerakan sumbu X, sumbu Y, dan sumbu Z dan satu motor servo untuk menggerakkan sumbu R. Terdapat satu motor stepper pada base lengan robot yang dipasangkan dengan Encoder dan sensor Gyroscope yang berada pada dua sisi atas lengan DOBOT Magician untuk mengetahui koordinat posisi lengan robot. Berikut merupakan spesifikasi dari lengan robot DOBOT Magician:



4



Tabel 2.1 Spesifikasi Lengan Robot DOBOT Magician [2] Specifications Number of Axis



4



Payload



500g



Max. Reach



320mm



Position Repeatability



0.2mm



(Control) Communication



USB / Wi-Fi / Bluetooth



Power Supply



100 V – 240 V , 50/60 HZ



Power In



12 V / 7A DC



Consumption



60W Max



Working Temperature



-10°C – 60°C



Axis Movement Axis



Range



Max Speed (250g Workload)



Joint 1 (Base)



-90°



320° / s



to + 90° Joint 2 (Rear Arm)



0° to



320° / s



+85° Joint 3 (Forearm)



-10°



320° / s



to +95° Joint 4 (Rotation Servo)



+90°



480° / s



to -90° Physical Net Weight



3.4Kg



Gross Weight (Standard



7.2Kg



Version) Gross Weight (Education



8.0Kg



Version)



5



Base Dimension



158mm × 158mm



(Footprint) Materials



Aluminium Alloy 6061, ABS Engineering Plastic



Controller



DOBOT Integrated Controller



Robot Mounting



Desktop



Packing Size (L × W ×



330mm x 325mm x



H)



410mm



Carton Size for Standard



380mm x 385mm x



Version (L × W × H)



480mm



Carton Size for



380mm x 385mm x



Education Version (L × W ×



480mm



H) Applications Software



DOBOT Studio, RepetierHost, Grbl Controller 3.6, DOBOT Blockly (Visual Programing Editor)



SDK (Software Develop Kit) Extensible Interfaces



Communication Protocol, DOBOT Program Library



I/O



1. I/O × 10 (Configurable as Analog Input or PWM Output) 2. Controllable 12V Power Output × 4 3. Communication Interface (UART, Reset, Stop, 12V, 5V and two I/O included) 4. Stepper × 2



End Effectors



6



3D Printer Kit



Maxi



150 mm



mum Print



×150 mm ×



Size (L × W



150mm (MAX)



× H) 3D



PLA



Printing Material Resol



0.1mm



ution Laser *



Powe



500mw



r Consumpti on Type



405nm (Blue Laser)



Powe r



12V , TTL trigger (With PWM Driver)



Pen Holder



Pen



10mm



Diameter Vacuum Suction Cup



Sucti



20mm



on Cup Diameter Press



-35Kpa



ure Gripper



Rang



27.5mm



e Drive



Pneumatic



Type Force



8N



7



2.2



Desain Interface



2.2.1 Pengertian dan Tujuan Desain Interface Desain antarmuka adalah desain untuk komputer, peralatan, mesin, perangkat komunikasi mobile, aplikasi perangkat lunak, dan situs web yang berfokus pada pengalaman dan interaksi penggunanya. Tujuan dari penggunaan desain interface ini adalah untuk membuat interaksi pengguna sesederhana dan seefisien mungkin. Bagaimana user berinteraksi dengan komputer menggunakan tampilan antarmuka (interface) yang ada pada layar komputer. Cara yang digunakan antarmuka untuk berkomunikasi dengan pengguna adalah: 1. Input, memungkinkan pengguna untuk memanipulasi sistem. 2. Output, memungkinkan sistem untuk menunjukkan efek manipulasi pengguna. Desain interface ini sangat penting karena akan sangat berpengaruh pada user dalam menggunakan atau berkomunikasi dengan komputer. Apabila suatu program sulit untuk digunakan, maka hal ini akan memaksa user untuk melakukan suatu kesalahan saat menggunakan program tersebut. Dari tahun ke tahun teknologi berkembang sangat pesat oleh sebab itu, perkembangan dari Human Computer Interface (HCI) menjadi sangat penting bagi seorang analyst yang merancang atau menciptakan suatu software. Di mana harus memperhatikan kaidah-kaidah atau prinsip prinsip dasar seperti User Friendly dan User Oriented. Sekarang ini banyak berbagai jenis komputer sistem yang ada seperti: desktop, laptop, notebook, PDA, dan yang lainnya. Oleh sebab itu, desain antarmuka ini berperan sangat penting karena, jika berbeda perangkat maka tampilan antarmuka akan berbeda juga. Seperti contoh antarmuka di laptop akan berbeda dengan antarmuka di PDA. Tergantung dari seberapa besar screen dan sistem pendukungnya. User Design Interface ini bukan lagi hanya sebatas pada tampilan. Tapi juga mencakup suara dan gerakan tubuh. Voice Recognition merupakan salah satu desain interface yang melibatkan suara. Aplikasi yang sudah diterapkan 8



adalah dalam translate.google.com sehingga kita tidak perlu untuk mengetik kata-kata yang ingin kita terjemahkan. Contoh lain nya adalah gerakan tubuh yang ada dalam WII. Kalian yang senang main game pasti tahu device ini di mana ada suaatu remote yang dipegang guna mendeteksi setiap gerakan yang pengguna lakukan. Terdapat empat tipe utama interaksi: 1. Direct manipulation, yaitu pengoperasian secara langsung: interaksi langsung dengan objek pada layar. Misalnya delete file dengan memasukkannya ke trash. a. Kelebihan: waktu pembelajaran sangat singkat, feedback langsung diberikan pada tiap aksi sehingga kesalahan terdeteksi dan diperbaiki dengan cepat. b. Kekurangan: interface tipe ini rumit dan memerlukan banyak fasilitas pada sistem computer, cocok untuk penggambaran visual untuk satu operasi atau objek. 2. Menu selection, yaitu pilihan berbentuk menu: memilih perintah dari daftar yang disediakan. Misalnya saat klik kanan dan memilih aksi yang dikehendaki. a. Kelebihan: tidak perlu ingat nama perintah, pengetikan minimal, dan kesalahan rendah. b. Kekurangan: tidak ada logika AND atau OR, perlu ada struktur menu jika banyak pilihan, menu dianggap lambat disbanding command language. 3. Form fill-in, yaitu pengisian form: mengisi area-area pada form. a. Kelebihan: data yang dimasukkan sederhana, mudah dipelajari. b. Kekurangan: memerlukan banyak tempat di layar, harus menyesuaikan dengan form manual. 4. Command language, yaitu perintah tertulis: menuliskan perintah yang sudah ditentukan pada program. a. Kelebihan: perintah diketikan langsung pada sistem, missal UNIX, DOS command, dapat diterapkan pada terminal yang murah, kombinasi perintah dapat dilakukan.



9



b. Kekurangan: perintah harus dipelajari dan diingat cara penggunaannya, kesalahan penggunaan perintah sering terjadi, perlu ada sistem pemulihan kesalahan. [3] 2.2.2 Microsoft Visual Studio 2010 Antarmuka pada sistem ini menggunakan perangkat lunak Microsoft Visual Studio 2010 dengan bahasa Visual Basic .NET. Microsoft Visual Studio ini adalah perangkat lunak lengkap (suite) yang dapat digunakan untuk melakukan pengembangan aplikasi, baik itu aplikasi bisnis, aplikasi personal, ataupun komponen aplikasinya, dalam bentuk aplikasi console, aplikasi Windows, ataupun aplikasi Web. Visual Studio mencakup compiler, SDK, Integrated Development Environment (IDE), dan dokumentasi (umumnya berupa MSDN Library). Kompiler yang dimasukkan ke dalam paket Visual Studio antara lain Visual C++, Visual C#, Visual Basic, Visual Basic .NET, Visual InterDev, Visual J++, Visual J#, Visual FoxPro, dan Visual SourceSafe. Microsoft



Visual



Studio



.NET



adalah



sebuah



alat



untuk



mengembangkan dan membangun aplikasi yang bergerak di atas system .NET Framework, dengan menggunakan bahasa BASIC. Dengan menggunakan alat ini, para programmer dapat membangun aplikasi Windows Forms, aplikasi web berbasis ASP.NET, dan juga aplikasi command-line. Bahasa Visual Basic .NET sendiri menganut paradigma bahasa pemrograman berorientasi objek yang dapat dilihat sebagai pengembangan dari Microsoft Visual Basic versi sebelumnya yang diimplementasikan di atas .NET Framework.



10



Gambar 2.2 Tampilan Form (Design) Microsoft Visual Studio 2010



Gambar 2.3 Tampilan Form (Code) Microsoft Visual Studio 2010 2.3



Komunikasi Data



2.3.1 Pengertian Komunikasi Data Komunikasi



adalah



suatu



cara



untuk



menyampaikan



atau



menyebarkan data, informasi, berita, pikiran, pendapat dalam berbagai hal. Sedangkan data berarti informasi yang disajikan oleh isyarat digital. Komunikasi data adalah proses pengiriman dan penerimaan data/informasi



11



dari dua atau lebih device (alat,seperti komputer/laptop/printer/dan alat komunikasi lain) yang terhubung dalam sebuah jaringan melalui beberapa media. Media tersebut dapat berupa kabel coaksial, fiber optic (serat optik), microware dan sebagainya. Baik lokal maupun yang luas, seperti internet. Komunikasi data merupakan gabungan dari beberapa teknik pengolahan data. Dimana telekomunikasi dapat diartikan segala kegiatan yang berhubungan dengan penyaluran informasi dari satu titik ke titik lain. Sedangkan pengolahan data adalah segala kegiatan yag berhubungan dengan pengolahan data menjadi informasi yang berguna bagi operator. [3]



Gambar 2.4 Diagram Komunikasi Data Adapun tujuan dari komunikasi data adalah sebagai berikut: 1. Memunkinkan pengiriman data dalam jumlah besar yang efisien, tanpa kesalahan dan ekomis dari suatu tempat ketempat yang lain. 2. Memungkinkan penggunaan sistem komputer dan peralatan pendukung dari jarak jauh (remote computer use). 3. Memungkinkan penggunaan komputer secara terpusat maupun secara tersebar sehingga mendukung manajemen dalam hal kontrol, baik desentralisasi ataupu sentralisasi. 4. Mempermudah kemungkinan pengelolaan dan pengaturan data yang ada dalam berbagai mcam sistem komputer. 5. Mengurangi waktu untuk pengelolaan data. 6. Mendapatkan data langsung dari sumbernya. 7. Mempercepat penyebarluasan informasi. 2.3.2 Komunikasi Data Serial Pada sistem ini menggunakan Arduino sebagai mikrokontroler dan PC (VB.NET) sebagai antarmuka maka metode komunikasi data yang 12



digunakan adalah metode komunikasi serial melalui port USB dari laptop. Komunikasi data serial adalah pengiriman data secara serial, yaitu data yang dikirim satu per satu dan berurutan dalam suatu waktu tertentu. Oleh karena itu, komunikasi data serial lebih lambat dari jenis komunikasi data lainnya. Data yang dikirimkan dan diterima berupa pulsa elektrik yang kontinu, disebut bit. Komunikasi data secara serial banyak digunakan karena lebih mudah dan sederhana koneksinya. Koneksi kabel yang dibutuhkan hanya Tx (Transmitter), Rx (Receiver), dan ground. 2.3.3



Pengolahan Data Pengolahan data adalah manipulasi data agar menjadi bentuk yang lebih berguna atau sesuai keinginan pengguna. Pengolahan data ini tidak hanya berupa perhitungan numerik tetapi juga operasi-operasi seperti klarifikasi data dan perpindahan data dari satu tempat ke tempat lain. Secara umum, diasumsikan bahwa operasi-operasi tersebut dilaksanakan oleh beberapa tipe mesin atau computer, meskipun beberapa diantaranya dapat juga dilakukan secara manual. 1. Tipe Data Tipe data adalah jenis data yang mempunyai batasan tempat dan karakteristik sesuai dengan interpretasi data dan dapat diolah oleh computer untuk memenuhi kebutuhan dalam pemrograman komputer. Tipe data pada umumnya termasuk tipe data primitif, yaitu integer, floating point, number, dan character (string). Kumpulan dari tipe data primitif yang sejenis juga dapat disatukan dalam sebuah blok yang disebut array. Setiap variable atau konstanta yang ada dalam kode program, sebaiknya ditentukan terlebih dahulu dengan pasti tipe datanya. Ketepatan pemilihan tipe data pada variable atau konstanta akan sangat menentukan pemakaian sumberdaya computer (terutama memori komputer). Salah satu tugas penting seorang programmer adalah memilih tipe data yang sesuai untuk menghasilkan program yang efisien dan berkinerja tinggi. Di dalam bahasa pemrograman sebenarnya terdapat banyak jenis-jenis tipe data, namun tipe data yang tersedia tergantung dari jenis bahasa



13



pemrograman yang dipakai. Secara umum tipe data di seluruh bahasa pemrograman terbagi menjadi: a. Numerik Numerik adalah tipe data yang digunakan pada variable atau konstan untuk menyimpan nilai dalam bentuk bilangan atau angka baik angka atau bilangan tersebut merupakan bilangan bulat ataupun bilangan real. - Tipe Bilangan Bulat Bilangan bulat adalah tipe bilangan yang hanya dapat menampung data bernilai positif, negatif, dan nol (0). Di dalam tipe bilangan bulat sendiri sebenarnya masih dapat terbagi lagi menjadi beberapa golongan berdasarkan rentang datanya. Misalnya, jika yang digunakan adalah bahasa pemrograman C maka tipe bilangan bulat dibagi menjadi beberapa bagian, seperti tabel 2.2. Tabel 2.2 Tabel Tipe Data Bilangan Bulat Tipe Data



Ukuran



Range



(bit) Byte



8



-128 s.d. 127



Short



16



-32768 s.d. 32767



Int



32



-2147483648 s.d. 2147483647



Long



64



-9223372036854775808 s.d. 223372036854775807



- Tipe Bilangan Pecahan Bilangan pecahan adalah tipe bilangan yang hanya dapat menampung data bernilai positif, negatif, nol, yang bernilai pecahan. Di dalam tipe bilangan pecahan sendiri sebenarnya masih dapat terbagi lagi menjadi beberapa golongan berdasarkan rentang datanya. Misalnya, jika yang digunakan adalah bahasa pemrograman java maka tipe bilangan bulat dibagi menjadi beberapa bagian, seperti pada tabel 2.3. 14



Tabel 2.3 Klasifikasi Tipe Data Pecahan Ukuran Tipe



Presisi Range



(Jumlah



Bytes



Bit



Float



4



32



+/- 3.4 x 1038



6-7



Double



8



64



+/- 1.8 x 1038



15



Digit)



a) String/Karakter String adalah tipe data yang digunakan pada variable atau konstanta untuk menyimpan nilai dalam bentuk karakter (angka, huruf, karakter khusus atau simbol). b) Boolean Boolean adalah tipe data yang digunakan untuk menampung nilai logika yaitu nilai yang hanya memiliki dua buah kemungkinan (benar atau salah). c) Array Array adalah tipe data sejenis yang dapat menampung data secara bertumpuk, jadi satu tipe data tetapi datanya bias lebih dari satu. d) Date Date adalah tipe data yang hanya dapat menampung data dalam format tanggal. e) Time Time adalah tipe data yang hanya dapat menampung data dalam format waktu. f) Char Char adalah tipe data yang hampir sama dengan tipe data string, akan tetapi pada tipe data string panjangnya tidak tetap sedangkan tipe data char panjangnya selalu tetap sesuai dengan inisialisasi awal pemesanan tipe data.



15



3BAB III PROSES PENYELESAIAN PROYEK



3.1



Gambaran Umum Sistem Gambaran umum sistem DOBOT Magician menjelaskan secara umum bagaimana sistem tersebut bekerja dan menjelaskan komponen apa saja yang terdapat pada sistem tersebut secara umum. Gambar 3.1 menunjukan arah sumbu dari DOBOT Magician.



Gambar 3.1 Plant DOBOT Magician DOBOT Magician adalah sebuah lengan robot yang dapat melakukan berbagai fungsi. Mesin ini dapat bergerak pada sumbu X, sumbu Y, dan sumbu Z, dan sumbu R. Seluruh sumbu dapat digerakan secara individu jika di setting untuk bergerak secara per joint, dalam artian jika sumbu di setting agar bergerak per koordinat, maka sumbu satu dapat dikombinasikan dengan sumbu yang lainnya. Lengan robot ini mempunyai empat buah penggerak yaitu, empat buah motor stepper untuk menggerakan sumbu X, sumbu Y, sumbu Z, serta sumbu R. tiga unit motor stepper bipolar 2 fasa untuk menggerakan sumbu X, sumbu Y, dan sumbu Z dan satu motor servo untuk menggerakkan sumbu R. Terdapat satu motor stepper pada base lengan robot yang dipasangkan dengan encoder dan sensor gyroscope yang berada pada dua sisi atas lengan DOBOT Magician untuk mengetahui koordinat posisi



16



lengan robot. Kemudian terdapat suction/vacum yang terpasang pada endeffector lengan robot yang dapat di aktifkan sesuai dengan kebutuhan. Sistem yang dipakai dalam proyek akhir ini adalah penggunaan dan pengolahan protokol yang sudah disediakan oleh DOBOT Magician. Terdapat fungsi untuk menggerakkan lengan robot, mengambil data koordinat posisi, memberhentikan sistem, pengaturan kecepatan dan fungsi lainnya. Salah satu fungsi pengambil posisi yaitu getpose, akan memberikan nilai koordinat yang nantinya dapat digunakan dan disimpan sebagai parameter gerak untuk teaching movement dan dengan data koordinat ini user dapat mengetahui posisi DOBOT pada saat tertentu. Lengan robot DOBOT Magician ini dikendalikan menggunakan minikomputer Arduino Mega 2560. Arduino Mega 2560 menjadi pengendali utama yang bertugas untuk mengkomunikasikan input dari antarmuka pada PC ke sistem mikrokontroler pada lengan robot DOBOT Magician. Selain itu, Arduino Mega 2560 menjadi tempat untuk menyimpan data koordinat dari lengan robot yang akan dipakai untuk teaching and playback.



17



3.2



Diagram Alir Sistem 3.2.1



Diagram Alir Rancangan Komunikasi Mode Manual



Gambar 3.2 Diagram Alir Manual Pada mode manual, pergerakan lengan robot akan sesuai dengan ditekannya button di interface. Selain itu kecepatan pergerakan lengan robot dapat diatur. Pada mode teaching lengan robot mampu dioperasikan dengan memasukkan program kontrol menggunakan angka berbentuk koordinat



18



pada kolom X, Y, Z, dan R untuk mode gerakkan Coordinate dan kolom J1, J2, J3, dan J4 untuk mode gerakkan Joint. 3.3



Tuntutan Kerja Sistem Tuntutan kerja sistem adalah beberapa hal yang harus terpenuhi untuk mencapai target pada pembuatan kendali lengan robot. Tuntutan sistem diantaranya. 1. Mampu melakukan pergerakan melalui kendali secara manual 2. Mampu melakukan teaching and playback



3.4



Gambaran Umum Subsistem Pada penyelesaian proyek akhir ini, penulis fokus terhadap pengerjaan antarmuka. Untuk mengendalikan lengan robot ini, dibutuhkan antarmuka untuk menghubungkan antara operator dengan lengan robot sehingga dapat dioperasikan. Program antarmuka yang dibuat mampu memasukkan perintah ke lengan robot dengan menggunakan koordinat-koordinat mengatur pergerakan lengan robot. Selain menghasilkan pergerakan, mampu menampilkan



Gambar 3.3 Gambaran Sub Sistem 3.4.1 Diagram Alir Perancangan Dalam melakukan perancangan antarmuka lengan robot Dobot Magician ini, perlu dilakukan perancangan terlebih dahulu. Hal ini dibutuhkan supaya dalam melakukan pengerjaan disetiap segment antarmuka untuk kendali lengan robot semakin mudah. Software yang digunakan untuk membuat antarmuka lengan robot ini menggunakan Microsoft Visual Studio 2017 (Visual Basic .NET).



19



Gambar 3.4 Diagram Alir Perancangan 3.4.2 Proses Pembuatan Antarmuka Lengan Robot Untuk membangun sebuah antarmuka, penulis menentukan fungsi utama yang harus dimiliki. Fitur antarmuka DOBOT Magician meliputi koneksi antarmuka dan mikrokontroler, pengoperasian DOBOT secara manual, serta kemampuan DOBOT untuk melakukan metode Teaching and Playback. 3.4.2.1 Serial Communication Port Pada tampilan antarmuka terdapat pengaturan komunikasi antarmuka dengan mikrokontroler. Terdapat pengaturan Port, Baud Rate, Refresh Button, dan Connect Button.



20



Gambar 3.5 Tampilan pengaturan komunikasi serial pada antarmuka Penulis mengelompokkan objek-objek yang akan menjadi fitur pada antarmuka. Berikut adalah fitur-fitur koneksi.



Tabel 3.1 Fitur yang terdapat pada Serial Communication Port antarmuka No



Objek



Keterangan



Fungsi Menghubungkan Koneksi



cbConnect 1



antarmuka dengan mikrokontroler



Combo Box



Menentukan Baud Rate yang cbBaudrate



sesuai dengan pengaturan mikrontroler Mendapatkan



btnRefresh



COM



dari



mikrokontroler yang telah terhubung pada perangkat computer Memiliki



2



Button



btnConn



fungsi



untuk



menghubungkan COM Port yang telah ditentukan. Memiliki



btnDisconn



Disconnect



fungsi



untuk



komunikasi



antara mikrokontroler dan antarmuka.



3



Label



LPort



Menampilkan tulisan “Port”



21



LBaudrate



Menampilkan



tulisan



“Baudrate”



‘---------------------------------PROGRAM SETTING---------------------------------Private Sub btnConn_Click(sender As Object, e As EventArgs) Handles btnConn.Click If cbConnect.Text = "" Then MsgBox("Choose the port first!", MsgBoxStyle.OkCancel) cbConnect.Focus() ElseIf cbBaudrate.Text = "" Then MsgBox("Choose the baudrate", MsgBoxStyle.OkCancel) cbBaudrate.Focus() Else Try With SerialPort1 .PortName = cbConnect.Text .BaudRate = cbBaudrate.Text .Open() btnDisconn.BringToFront() MsgBox("The port has been selected!", MsgBoxStyle.OkCancel) Button() End With Catch ex As Exception MsgBox(ex.ToString) End Try End If End Sub Private Sub btnDisconn_Click(sender As Object, e As EventArgs) Handles btnDisconn.Click btnConn.BringToFront() SerialPort1.Close() End Sub



Gambar 3.6 Program koneksi serial Port 3.4.2.2 Operating Panel Pada operating panel terdapat beberapa fitur yang memiliki fungsi untuk mengoperasikan DOBOT secara manual melalui tombol interface. Selain itu, baik nilai sumbu X, Y, Z, dan R akan tampil pada textbox. Terdapat pula grafik yang mampu mengidentifikasikan pergerakan DOBOT secara visual berdasarkan sumbu X dan Y yang telah diketahui.



22



Gambar 3.7 Tampilan Operating Panel pada antarmuka Pada grafik pergerakan, titik berwarna biru akan berpindah sesuai dengan joint dan sumbu yang digerakkan. Data out menampilkan string yang dikirimi oleh masing masing tombol joint dan cartesian Tabel 3.2 Fitur pada Operating Panel No



Objek



Keterangan



Fungsi btnJ1P btnJ1M btnJ2P btnJ2M btnJ3P btnJ3M



Mengoperasikan pergerakan Joint pada DOBOT



btnJ4P 1



Button



btnJ4M btnXP btnXM btnYP



Mengoperasikan



btnYM



pergerakan mode



btnZP



Cartesian pada DOBOT



btnZM btnRP



23



btnRM 2



Check Box



checkSuction



Mengaktifkan / menonaktifkan Suction Menampilkan angka



tbPoseX



posisi DOBOT pada sumbu X Menampilkan angka



tbPoseY 3



posisi DOBOT pada sumbu Y



Text Box



Menampilkan angka tbPoseZ



posisi DOBOT pada sumbu Z Menampilkan angka



tbPoseR



posisi DOBOT pada sumbu R



4



Track Bar



Menaikkan / trackJOGSpeed menurunkan kecepatan pergerakan DOBOT LSpeed



5



Label



Menampilkan tulisan “Speed” Menampilkan



LbSpeed



penunjukan nilai tingkat kecepatan



24



Private Sub btnXP_MouseDown(sender As Object, e As MouseEventArgs) Handles btnXP.MouseDown dataOut = "A0*1@" & lbJOGspeed.Text & "#" Serial_Send(dataOut) End Sub



Private Sub btnZP_MouseDown(sender As Object, e As MouseEventArgs) Handles btnZP.MouseDown dataOut = "C0*1@" & lbJOGspeed.Text & "#" Serial_Send(dataOut) End Sub



Private Sub btnXP_MouseUp(sender As Object, e As MouseEventArgs) Handles btnXP.MouseUp dataOut = "!IDLE#" Serial_Send(dataOut) End Sub



Private Sub btnZP_MouseUp(sender As Object, e As MouseEventArgs) Handles btnZP.MouseUp dataOut = "!IDLE#" Serial_Send(dataOut) End Sub



Private Sub btnXM_MouseDown(sender As Object, e As MouseEventArgs) Handles btnXM.MouseDown dataOut = "A0*0@" & lbJOGspeed.Text & "#" Serial_Send(dataOut) End Sub



Private Sub btnZM_MouseDown(sender As Object, e As MouseEventArgs) Handles btnZM.MouseDown dataOut = "C0*0@" & lbJOGspeed.Text & "#" Serial_Send(dataOut) End Sub



Private Sub btnXM_MouseUp(sender As Object, e As MouseEventArgs) Handles btnXM.MouseUp dataOut = "!IDLE#" Serial_Send(dataOut) End Sub



Private Sub btnZM_MouseUp(sender As Object, e As MouseEventArgs) Handles btnZM.MouseUp dataOut = "!IDLE#" Serial_Send(dataOut) End Sub



Private Sub btnYP_MouseDown(sender As Object, e As MouseEventArgs) Handles btnYP.MouseDown dataOut = "B0*1@" & lbJOGspeed.Text & "#" Serial_Send(dataOut) End Sub



Private Sub btnRP_MouseDown(sender As Object, e As MouseEventArgs) Handles btnRP.MouseDown dataOut = "D0*1@" & lbJOGspeed.Text & "#" Serial_Send(dataOut) End Sub



Private Sub btnYP_MouseUp(sender As Object, e As MouseEventArgs) Handles btnYP.MouseUp dataOut = "!IDLE#" Serial_Send(dataOut) End Sub



Private Sub btnRP_MouseUp(sender As Object, e As MouseEventArgs) Handles btnRP.MouseUp dataOut = "!IDLE#" Serial_Send(dataOut) End Sub



Private Sub btnYM_MouseDown(sender As Object, e As MouseEventArgs) Handles btnYM.MouseDown dataOut = "B0*0@" & lbJOGspeed.Text & "#" Serial_Send(dataOut) End Sub



Private Sub btnRM_MouseDown(sender As Object, e As MouseEventArgs) Handles btnRM.MouseDown dataOut = "D0*0@" & lbJOGspeed.Text & "#" Serial_Send(dataOut) End Sub



Private Sub btnYM_MouseUp(sender As Object, e As MouseEventArgs) Handles btnYM.MouseUp dataOut = "!IDLE#" Serial_Send(dataOut) End Sub



Private Sub btnRM_MouseUp(sender As Object, e As MouseEventArgs) Handles btnRM.MouseUp dataOut = "!IDLE#" Serial_Send(dataOut) End Sub



Gambar 3.8 Program pengontrolan DOBOT pada operating panel



25



3.4.2.3 Teaching and Playback Mode ini memiliki beberapa fitur yang dapat memenuhi fungsi teaching and playback seperti pada aplikasi orisinil DOBOT Magician.



Gambar 3.9 Tampilan mode teaching and playback Beberapa fitur yang terdapat pada gambar menggunakan objek-objek yang tersedia pada Microsoft Visual Studio dengan bahasa VB.NET. Tabel 3.3 Fitur yang terdapat pada teaching and playback No



Objek



Keterangan



Fungsi Membuka file dengan



BtnOpen



format (.dbt) yang telah disimpan sebelumnya Menyimpan susunan



BtnSave 1



pergerakan dengan format (.dbt)



Button



Menjalankan setiap BtnPlay



pergerakan yang telah ditambahkan pada table Menghentikan pergerakan



BtnStop



ketika proses pengoperasian berjalan



26



Menambahkan BtnAdd



pergerakan – pergerakan untuk melakukan teaching and playback



BtnDelete



Menghapus daftar pergerakan pada table Mengatur kecepatan



2



NumericUpDown



numericPTPSpeed



pergerakan DOBOT ketika mode teaching and playback



3



Text Box



tbLoop



Menentukan pengulangan pergerakan Menampilkan setiap data



4



DataGrid View



DGVPlayback



pergerakan teaching and playback



3.4.3 Komunikasi Antarmuka dengan Sistem Komunikasi yang digunakan antara interface dengan sistem (mikrokontroler) pada dasarnya menggunakan komunikasi serial. Visual Basic .NET meyediakan sebuah class Serial (COM) Port berbasis komunikasi serial yang dapat dipanggil dengan perintah Imports System.IO.Ports atau dengan menggunakan komponen yang telah dikemas dalam sebuah Object “SerialPort”. Sedangkan mikrokontroler sendiri menyediakan sebuah port serial yang dapat digunakan secara langsung untuk komunikasi serial, yang dapat dihubungkan dengan kabel USB maupun piranti komunikasi serial lainnya. Disini digunakan kabel USB sebagai komponen komunikasi serial. Universal Serial Bus atau USB adalah port yang sangat diandalkan saat ini dengan bentuknya yang kecil dan kecepatan datanya yang tinggi. Anda dapat menghubungkan hingga 127 produk USB dalam 1 komputer. USB versi 1.0 mendukung 2 kecepatan yaitu mode kecepatan penuh 12Mbits/s



27



dan kecepatan rendah 1.5Mbits/s. USB 2.0 mempunyai kecepatan 480Mbits/s yang dikenal sebagai mode kecepatan tinggi. USB 3.0 mempunyai kecepatan 5Gbits/s yang dikenal sebagai mode kecepatan super. Saat ini transfer data menggunakan port USB sudah semakin marak, termasuk digunakan untuk menghubungkan PC dengan mikrokontroler Arduino Mega 2560, yaitu kabel USB 2.0 tipe A/B. Pada gambar berikut merupakan



visualisasi



dari



kabel



USB



yang



digunakan



untuk



menghubungkan PC dengan Arduino Mega 2560. Adapun gambar dari konektor USB dan pengkabelannya pada gambar 3.xx



Gambar 3.10 Konektor USB tipe A (PC) dan tipe B (Mikrokontroler) [1]



28



4



BAB IV



HASIL IMPLEMENTASI Setelah menyelesaikan perancangan dan pembuatan program untuk antarmuka, maka dilakukan pengujian pengimplementasian program antarmuka pada lengan robot dengan berbagai jenis metode. Pada dasarnya program antarmuka dibagi menjadi dua bagian, yaitu mode operating panel dan Teaching. Berikut hasil dari perancangan dan pembuatan antarmuka lengan robot DOBOT Magician. 4.1



Hasil Implementasi Interface Setelah menyelesaikan perancangan dan pembuatan program untuk antarmuka, maka dilakukan pengujian pengimplementasian program antarmuka pada lengan robot dengan berbagai jenis metode.



Pada dasarnya program antarmuka dibagi menjadi dua bagian, yaitu mode operating panel dan Teaching. Berikut hasil dari perancangan dan pembuatan antarmuka lengan robot DOBOT Magician.



29



4.2 4.2.1



Tampilan Perubahan I/O Pengujian Serial Communication Komunikasi yang digunakan adalah komunikasi serial. Adapun komponen yang digunakan agar antarmuka dapat berkomunikasi secara serial adalah SerialPort. Agar antarmuka dan mikrokontroler dapat berkomunikasi, terdapat suatu parameter yang harus diatur terlebih dahulu yaitu baud rate. Sebagai contoh, jika baud rate yang digunakan adalah 9600 , berarti untuk stiap byte data yang dikirim sebenarnya terdiri dari 10 bit data, yaitu bit awal, 8 bit data, dan bit stop. Jadi, pada 9600 bps berarti data yang dikirim memiliki kecepatan 9600 bits per second atau 960 bytes per second , yang diperoleh dari 9600/10 bit yaitu 960 bytes per second. Untuk baud rate yang default pada SerialPort1 di VB .NET adalah 9600. Akan tetapi pada proyek akhir ini, baud rate yang digunakan yaitu 115200. Untuk mengatur komunikasi pada tampilan antarmuka, pilih Refresh. Pada comboBox akan terdeteksi port yang tersedia. Pilih Port, lalu tekan tombol Connect.



Gambar 4.1 Tampilan Pengaturan Komunikasi Jika COM Port dan Baud Rate tidak diatur maka akan muncul pesan seperti gambar dibawah



Gambar 4.2 Message Box yang akan muncul apabila Port dan Baudrate tidak ditentukan 30



Jika Baud Rate belum diatur maka akan muncul pesan seperti gambar dibawah



Gambar 4.3 Message Box yang akan muncul apabila Baud Rate belum ditentukan



Jika Port dan Baud Rate sudah diatur, maka akan muncul notifikasi seperti gambar dibawah



Gambar 4.4 Message Box yang akan muncul apabila Port dan Baud Rate telah ditentukan Tombol Connect saat belum terjadi adanya komunikasi maka akan seperti gambar dibawah ini.



Gambar 4.5 Message Box yang akan muncul apabila Port dan Baudrate tidak ditentukan



31



Namun ketika komunikasi berhasil terjadi, maka tombol tersebut akan berubah seperti gambar dibawah ini



Gambar 4.6 Message Box yang akan muncul apabila Port dan Baud Rate telah ditentukan Saat tombol connect belum digunakan, seluruh tombol komunikasi, serial monitor, serta tabel sejarah koordinat di tampilan antarmuka tidak akan aktif atau tidak dapat digunakan.



Gambar 4.7 Tampilan Komunikasi Sukses Tersambung Selain fitur komunikasi, terdapat beberapa fitur lain yang bertujuan untuk mengatur pengulangan dan kecepatan dari pergerakan lengan robot. Apabila koneksi pada antarmuka tidak terhubung, maka semua button input tidak dapat dijalankan. Sehingga tampilan pada antarmuka yaitu sebagai berikut.



32



Gambar 4.8 Fungsi semua button akan disable apabila interface belum terhubung oleh DOBOT. Apabila operator telah menghubungkan DOBOT dengan koneksi pada antarmuka, maka akan seperti gambar berikut



Gambar 4.9 Fungsi semua button akan enable apabila antarmuka telah terhubung oleh DOBOT 4.2.2



Pengujian Mode Manual Pergerakan dari masing-masing sumbu untuk koordinat dan joint dikendalikan oleh tombol-tombol yang telah ditentukan. Untuk menggerakan



33



sumbu X, Y, Z, dan R pada mode koordinat dan joint J1, J2, J3, dan J4 pada mode joint, atur mode. Kemudian atur speed sesuai dengan kebutuhan operator. Setiap pergerakan yang dikendalikan oleh koordinat maupun joint akan terlihat pada textbox masing-masing X, Y, Z, dan Z. Selain itu pergerakan tiap sumbu X dan Y akan terlihat pada grafik koordinat cartesian dan trackbar Z sebagai indikator pergerakan sumbu Z.



Gambar 4.10 Interface telah terkoneksi plant DOBOT Magician Setiap tombol memilik string yang akan dikirim jika salah satau tombol tersebut ditekan. Saat operator menekan salah satu tombol pada mode ini, string yang terdapat di dalam program tombol akan dikirimkan ke mikrokontroler seperti tabel di bawah ini. Kemudian mikrokontroler akan memproses data tersebut sehingga menghasilkan suatu pergerakan yang sesuai dengan tombol yang ditekan. Tabel 4.1 String yang Dikirim ke Mikrokontroler pada Mode Manual



Tombol X+



Nama Tombol



String yang Dikirim A1*1@’Speed’#



34



Y+



Z+



B1*1@’Speed’#



C1*1@’Speed’#



R+



D1*1@’Speed’#



J1+



A0*1@’Speed’#



J2+



B0*1@’Speed’#



J3+



C0*1@’Speed’#



J4+



D0*1@’Speed’#



X-



A1*0@’Speed’#



Y-



B1*0@’Speed’#



Z-



C1*0@’Speed’#



R-



D1*0@’Speed’#



35



J1-



A0*0@’Speed’#



J2-



AB*0@’Speed’#



J3-



C0*0@’Speed’#



J4-



D0*0@’Speed’#



Set Home



HOME



Suction Cup



VAC_OFF



Suction Cup



VAC_OFF



Joystick



Pada mode manual, arm robot mampu dioperasikan baik dengan button pada interface maupun dengan menggunakan joystick.



4.2.3



Pengujian Mode Teaching Pengujian ini meliputi tombol yang mampu memberi komunikasi atau perintah antara microcontroller dengan interface visual basic.NET Tabel 4.2 String yang Dikirim ke Mikrokontroler pada Mode Teaching Nama Tombol Open



Tombol



String yang Dikirim Data



36



Delete



Clear



Save



.dbt



Start



!START#



Stop



!STOP#



Add



Add



Untuk menjalankan mode teaching, operator dapat mengoperasikan pergerakan dengan button yang telah tersedia pada interface maupun dengan menggunakan joystick. Kemudian pergerakan tersebut akan disimpan pada table dengan menggunakan button add. Setelah itu, maka jalankan mode teaching dengan menggunakan button play.



37



Gambar 4.11 Tampilan apabila DOBOT melakukan metode teaching Apabila range posisi DOBOT mencapai batas maksimum dan minimum, maka akan muncul pada layer notifikasi seperti gambar di bawah ini.



Gambar 4.12 Tampilan apabila Pengoperasian DOBOT melewati batas maksimum pergerakan



4.2.4



Pengujian Website Tujuan adanya web yaitu untuk melakukan monitoring pergerakan DOBOT



Magician tanpa perlu memiliki aplikasi DOBOT. Penulis menggunakan PHPMyAdmin dan pemrograman web menggunakan Visual Studio Code. Nilai posisi DOBOT yang terdapat pada interface akan sama dengan yang ada di website.



38



Gambar 4.13 Tampilan update data pada web dari antarmuka



39



5 BAB V PENUTUP



5.1



Ketercapaian Tujuan dan Tuntutan Berdasarkan hasil implementasi yang telah dilakukan, dicapai beberapa



tujuan dan tuntutan subsistem dari interface. a. Membuat sistem antarmuka yang mudah dipahami user untuk kemudahan pengoperasian. b. Menampilkan grafik realtime pergerakan plant DOBOT Magician pada sumbu x, sumbu y serta pergerakann sumbu Z. c. Menampilkan variabel koordinat sumbu X, Y, dan Z. 5.2



Permasalahan Selama penyelesaian proyek akhir ini, penulis menemukan beberapa



permasalahan, diantaranya: a. Informasi mengenai kejelasan sistem proyek akhir sedikit terlambat. b. Tipe sensor dan sifat mekanisme hardware robotic arm DOBOT Magician sudah saling terintegrasi sehingga agak sulit untuk diidentifikasi tipe-nya. c. Program memerlukan koneksi yang stabil antara antarmuka dan mikrokontroler karena akan menyebabkan hilangnya kendali jika koneksi terganggu secara fisik. d. Pembagian tugas kelompok tidak sesuai dugaan perencanaan mahasiswa.



5.3



Solusi a. Lebih intensive berkomunikasi dengan panitia. b. Untuk kedepannya pembuatan robotic arm ini benar-benar dibuat dari awal oleh mahasiswa agar mahasiswa dapat memahami sistem mekanik sebenarnya pada robotic arm. Selain itu dapat memudahkan mahasiswa untuk mengintegrasikan software dan hardware. c. Membuat program keamanan dan menampilkan informasi pada antarmuka ketika koneksi tidak normal terjadi. d. Mahasiswa membutuhakan effort yang lebih besar untuk mengerjakannya 40



6



DAFTAR PUSTAKA



[1]



Anonim. (2019). Gambar Konektor USB Tipe A dan Tipe B. [Online]. Tersedia di: https://www.moddiy.com/product_images/uploaded_images/patillajeconector-usb.jpg [14 Juni 2019] [2]



Magician, Dobot. (2019). Dobot Magician: Product Overview. [Online]. Tersedia di: https://www.dobot.cc/dobot-magician/product-overview.html [1 Juni 2019] [3]



Martalia, A.M. 2017. Perancangan dan Pembuatan Program Antarmuka Mesin Grafir 2,5D Berbasis Arduino Mega 2560 dan Visual Studio (VB .NET). Bandung: Teknik Otomasi Manufaktur dan Mekatronika. [4]



Technologies, In-Position (2017) Dobot Magician: User Manual. [Online]. Tersedia di: http://iptech1.com/pdf/Dobot-Magician-User-Manual.pdf [14 Juni 2019]



41



7



LAMPIRAN Program



1. Serial Port Open Private Sub btnConn_Click(sender As Object, e As EventArgs) Handles btnConn.Click If cbConnect.Text = "" Then MsgBox("Choose the port first!", MsgBoxStyle.OkCancel) cbConnect.Focus() ElseIf cbBaudrate.Text = "" Then MsgBox("Choose the baudrate", MsgBoxStyle.OkCancel) cbBaudrate.Focus() Else Try With SerialPort1 .PortName = cbConnect.Text .BaudRate = cbBaudrate.Text .Open() btnDisconn.BringToFront() MsgBox("The port has been selected!", MsgBoxStyle.OkCancel) Button() End With Catch ex As Exception MsgBox(ex.ToString) End Try End If End Sub



2. Serial Port Close Private Sub btnDisconn_Click(sender As Object, e As EventArgs) Handles btnDisconn.Click btnDisconn.Enabled = False btnDisconn.SendToBack() SerialPort1.Close() btnConn.Enabled = True btnConn.BringToFront() End Sub



3. Joints Controller (J1, J2, J3 J4) Private Sub btnJ1M_MouseDown(sender As Object, e As MouseEventArgs) Handles btnJ1M.MouseDown dataOut = "A1*0@" & lbJOGspeed.Text & "#" Serial_Send(dataOut) End Sub Private Sub btnJ1M_MouseUp(sender As Object, e As MouseEventArgs) Handles btnJ1M.MouseUp dataOut = "!IDLE#" Serial_Send(dataOut) End Sub



1



Private Sub btnJ2M_MouseDown(sender As Object, e As MouseEventArgs) Handles btnJ2M.MouseDown dataOut = "B1*0@" & lbJOGspeed.Text & "#" Serial_Send(dataOut) End Sub Private Sub btnJ2M_MouseUp(sender As Object, e As MouseEventArgs) Handles btnJ2M.MouseUp dataOut = "!IDLE#" Serial_Send(dataOut) End Sub Private Sub btnJ2P_MouseDown(sender As Object, e As MouseEventArgs) Handles btnJ2P.MouseDown dataOut = "B1*1@" & lbJOGspeed.Text & "#" Serial_Send(dataOut) End Sub Private Sub btnJ2P_MouseUp(sender As Object, e As MouseEventArgs) Handles btnJ2P.MouseUp dataOut = "!IDLE#" Serial_Send(dataOut) End Sub Private Sub btnJ3M_MouseDown(sender As Object, e As MouseEventArgs) Handles btnJ3M.MouseDown dataOut = "C1*0@" & lbJOGspeed.Text & "#" Serial_Send(dataOut) End Sub Private Sub btnJ3M_MouseUp(sender As Object, e As MouseEventArgs) Handles btnJ3M.MouseUp dataOut = "!IDLE#" Serial_Send(dataOut) End Sub Private Sub btnJ3P_MouseDown(sender As Object, e As MouseEventArgs) Handles btnJ3P.MouseDown dataOut = "C1*1@" & lbJOGspeed.Text & "#" Serial_Send(dataOut) End Sub Private Sub btnJ3P_MouseUp(sender As Object, e As MouseEventArgs) Handles btnJ3P.MouseUp dataOut = "!IDLE#" Serial_Send(dataOut) End Sub



2



Private Sub btnJ4M_MouseDown(sender As Object, e As MouseEventArgs) Handles btnJ4M.MouseDown dataOut = "D1*0@" & lbJOGspeed.Text & "#" Serial_Send(dataOut) End Sub Private Sub btnJ4M_MouseUp(sender As Object, e As MouseEventArgs) Handles btnJ2M.MouseUp dataOut = "!IDLE#" Serial_Send(dataOut) End Sub Private Sub btnJ4P_MouseDown(sender As Object, e As MouseEventArgs) Handles btnJ4P.MouseDown dataOut = "D1*1@" & lbJOGspeed.Text & "#" Serial_Send(dataOut) End Sub Private Sub btnJ4P_MouseUp(sender As Object, e As MouseEventArgs) Handles btnJ4P.MouseUp dataOut = "!IDLE#" Serial_Send(dataOut) End Sub



4. Cartesian Controller (X, Y, Z, R) Private Sub btnXM_MouseDown(sender As Object, e As MouseEventArgs) Handles btnXM.MouseDown dataOut = "A0*0@" & lbJOGspeed.Text & "#" Serial_Send(dataOut) End Sub Private Sub btnXM_MouseUp(sender As Object, e As MouseEventArgs) Handles btnXM.MouseUp dataOut = "!IDLE#" Serial_Send(dataOut) End Sub Private Sub btnYP_MouseDown(sender As Object, e As MouseEventArgs) Handles btnYP.MouseDown dataOut = "B0*1@" & lbJOGspeed.Text & "#" Serial_Send(dataOut) End Sub Private Sub btnYP_MouseUp(sender As Object, e As MouseEventArgs) Handles btnYP.MouseUp dataOut = "!IDLE#" Serial_Send(dataOut) End Sub



3



Private Sub btnYM_MouseDown(sender As Object, e As MouseEventArgs) Handles btnYM.MouseDown dataOut = "B0*0@" & lbJOGspeed.Text & "#" Serial_Send(dataOut) End Sub Private Sub btnYM_MouseUp(sender As Object, e As MouseEventArgs) Handles btnYM.MouseUp dataOut = "!IDLE#" Serial_Send(dataOut) End Sub Private Sub btnZP_MouseDown(sender As Object, e As MouseEventArgs) Handles btnZP.MouseDown dataOut = "C0*1@" & lbJOGspeed.Text & "#" Serial_Send(dataOut) End Sub Private Sub btnZP_MouseUp(sender As Object, e As MouseEventArgs) Handles btnZP.MouseUp dataOut = "!IDLE#" Serial_Send(dataOut) End Sub Private Sub btnZM_MouseDown(sender As Object, e As MouseEventArgs) Handles btnZM.MouseDown dataOut = "C0*0@" & lbJOGspeed.Text & "#" Serial_Send(dataOut) End Sub Private Sub btnZM_MouseUp(sender As Object, e As MouseEventArgs) Handles btnZM.MouseUp dataOut = "!IDLE#" Serial_Send(dataOut) End Sub Private Sub btnRP_MouseDown(sender As Object, e As MouseEventArgs) Handles btnRP.MouseDown dataOut = "D0*1@" & lbJOGspeed.Text & "#" Serial_Send(dataOut) End Sub Private Sub btnRP_MouseUp(sender As Object, e As MouseEventArgs) Handles btnRP.MouseUp dataOut = "!IDLE#" Serial_Send(dataOut) End Sub Private Sub btnRM_MouseDown(sender As Object, e As MouseEventArgs) Handles btnRM.MouseDown dataOut = "D0*0@" & lbJOGspeed.Text & "#" Serial_Send(dataOut) End Sub Private Sub btnRM_MouseUp(sender As Object, e As MouseEventArgs) Handles btnRM.MouseUp dataOut = "!IDLE#" Serial_Send(dataOut) End Sub



4



5. Suction Cup/Vacuum Private Sub checkSuction_CheckedChanged(sender As Object, e As EventArgs) Handles checkSuction.CheckedChanged If checkSuction.Checked Then dataOut = "!VAC_ON#" Else dataOut = "!VAC_OFF#" End If Serial_Send(dataOut) UpdatePose() End Sub



6. Home Private Sub HomPos_Click(sender As Object, e As EventArgs) Handles HomPos.Click dataOut = "!HOME#" Serial_Send(dataOut) End Sub



7. Emergency Private Sub btnEMG_Click(sender As Object, e As EventArgs) Handles btnEMG.Click stepCount = DGVPlayback.Rows.Count nLoop = Val(tbLoop.Text) dataOut = "!STOP#" Serial_Send(dataOut) End Sub



8. Joystick Mode Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click If enjs = False Then dataOut = "" enjs = True Else dataOut = "" enjs = False End If Serial_Send(dataOut) End Sub



5



9. Open Private Sub btnOpen_Click(sender As Object, e As EventArgs) Handles btnOpen.Click Dim ResultLoad As DialogResult Dim lengthRow As Integer OFD1.InitialDirectory = "D:\" OFD1.Filter = "dbt files (*.dbt)|*.dbt" OFD1.Title = "Open file" ResultLoad = OFD1.ShowDialog If ResultLoad = DialogResult.OK Then DGVPlayback.Rows.Clear() For Each ThisLine In My.Computer.FileSystem.ReadAllText(OFD1.FileName).Split(Environment.NewLin e) DGVPlayback.Rows.Add(Split(ThisLine, " ")) Next lengthRow = DGVPlayback.Rows.Count.ToString Dim data As String() = DataGridViewRowsToStringArray(DGVPlayback) End If End Sub



10. Save Private Sub btnSave_Click(sender As Object, e As EventArgs) Handles btnSave.Click Dim ResultSave As DialogResult DGVPlayback.MultiSelect = True SFD1.InitialDirectory = "D:\" SFD1.Filter = "dbt files (*.dbt) | *.dbt" SFD1.Title = "Save As" ResultSave = SFD1.ShowDialog If ResultSave = DialogResult.OK Then DGVPlayback.ClipboardCopyMode = DataGridViewClipboardCopyMode.EnableWithoutHeaderText DGVPlayback.SelectAll() IO.File.WriteAllText(SFD1.FileName, DGVPlayback.GetClipboardContent().GetText.TrimEnd) DGVPlayback.ClearSelection() DGVPlayback.MultiSelect = False End If End Sub



6



11. Start Private Sub btnPlay_Click(sender As Object, e As EventArgs) Handles btnPlay.Click stepCount = 0 nLoop = 1 playback = True dataOut = "!START#" Serial_Send(dataOut) Start_Playback() End Sub



12. Stop Private Sub btnStop_Click(sender As Object, e As EventArgs) Handles btnStop.Click stepCount = DGVPlayback.Rows.Count nLoop = Val(tbLoop.Text) dataOut = "!STOP#" Serial_Send(dataOut) End Sub



13. Add Private Sub btnAdd_Click(sender As Object, e As EventArgs) Handles btnAdd.Click Dim suckState As String If checkSuction.Checked Then suckState = "SuctionOn" Else suckState = "SuctionOff" End If If Val(tbPoseX.Text) > 300 Or Val(tbPoseY.Text) > 300 Or Val(tbPoseY.Text) < -300 Or Val(tbPoseZ.Text) > 150 Then MsgBox("The position was out from range area!", MsgBoxStyle.OkCancel) Else DGVPlayback.Rows.Add(tbPoseX.Text, tbPoseY.Text, tbPoseZ.Text, tbPoseR.Text, numericPTPspeed.Value, suckState) End If End Sub



14. Delete Private Sub btnDel_Click(sender As Object, e As EventArgs) Handles btnDel.Click DGVPlayback.Rows.Clear() End Sub



7



15. Teaching and Playback Tabs Private Sub Fill_Columns() DGVPlayback.Columns.Add("pointX", "X") DGVPlayback.Columns.Add("pointY", "Y") DGVPlayback.Columns.Add("pointZ", "Z") DGVPlayback.Columns.Add("pointR", "R") DGVPlayback.Columns.Add("ptpSpeed", "Speed") For i = 0 To 4 DGVPlayback.Columns(i).FillWeight = 60 Next suckCol.HeaderText = "Suction Cup" suckCol.Items.Add("SuctionOff") suckCol.Items.Add("SuctionOn") DGVPlayback.Columns.Add(suckCol) End Sub



8



Tampilan Antarmuka keseluruhan :



9