PLAGIATPLAGIAT MERUPAKAN MERUPAKAN TINDAKAN TINDAKAN TIDAK TIDAK TERPUJI TERPUJI

TUGAS AKHIR

KONTROLER LENGAN ROBOT BERBASIS ANDROID

Diajukan untuk memenuhi salah satu syarat memperoleh gelar Sarjana Teknik pada Program Studi Teknik Elektro Fakultas Sains dan Teknologi

disusun oleh : YOEL ANGGUN WIRATAMA PUTRA NIM : 115114046

PROGRAM STUDI TEKNIK ELEKTRO JURUSAN TEKNIK ELEKTRO FAKULTAS SAINS DAN TEKNOLOGI UNIVERSITAS SANATA DHARMA YOGYAKARTA 2015

PLAGIATPLAGIAT MERUPAKAN MERUPAKAN TINDAKAN TINDAKAN TIDAK TIDAK TERPUJI TERPUJI

TUGAS AKHIR

KONTROLER LENGAN ROBOT BERBASIS SMARTPHONE ANDROID

Diajukan untuk memenuhi salah satu syarat memperoleh gelar Sarjana Teknik pada Program Studi Teknik Elektro Fakultas Sains dan Teknologi

disusun oleh : YOEL ANGGUN WIRATAMA PUTRA NIM : 115114046

PROGRAM STUDI TEKNIK ELEKTRO JURUSAN TEKNIK ELEKTRO FAKULTAS SAINS DAN TEKNOLOGI UNIVERSITAS SANATA DHARMA YOGYAKARTA 2015 i

PLAGIATPLAGIAT MERUPAKAN MERUPAKAN TINDAKAN TINDAKAN TIDAK TIDAK TERPUJI TERPUJI

FINAL PROJECT

ARM ROBOT CONTROLLER USING ANDROID SMARTPHONE

In partial fulfilment of the requirements for the degree of Sarjana Teknik Electrical Engineering Study Program Faculty of Science and Technology

YOEL ANGGUN WIRATAMA PUTRA NIM : 115114046

ELECTRICAL ENGINEERING STUDY PROGRAM ELECTRICAL ENGINEERING DEPARTMENT FACULTY OF SCIENCE AND TECHNOLOGY SANATA DHARMA UNIVERSITY YOGYAKARTA 2015

ii

PLAGIATPLAGIAT MERUPAKAN MERUPAKAN TINDAKAN TINDAKAN TIDAK TIDAK TERPUJI TERPUJI

HALAMAN PERSETUJUAN

TUGAS AKHIR

KONTROLER LENGAN ROBOT BERBASIS SMARTPHONE ANDROID

disusun Oleh :

YOEL ANGGUN WIRATAMA PUTRA NIM : 115114046

Telah disetujui oleh :

Pembimbing

Djoko Untoro, S.Si, M.T Tanggal : ______

iii

PLAGIATPLAGIAT MERUPAKAN MERUPAKAN TINDAKAN TINDAKAN TIDAK TIDAK TERPUJI TERPUJI

HALAMAN PENGESAHAN

TUGAS AKHIR

KONTROLER LENGAN ROBOT BERBASIS SMARTPHONE ANDROID

disusun Oleh : YOEL ANGGUN WIRATAMA PUTRA NIM : 115114046

Telah dipertahankan di depan panitia penguji pada tanggal 27 November 2015 dan dinyatakan memenuhi syarat

Susunan Panitia Penguji :

Nama Lengkap Tanda Tangan

Ketua : Ir. Tjendro, M.Kom

Anggota : Djoko Untoro, S.Si, M.T

Anggota : Petrus Setyo Prabowo, S.T., M.T.

Yogyakarta, ...... Fakultas Sains dan Teknologi Universitas Sanata Dharma Dekan,

Paulina Heruningsih Prima Rosa, S.Si., M.Sc. iv

PLAGIATPLAGIAT MERUPAKAN MERUPAKAN TINDAKAN TINDAKAN TIDAK TIDAK TERPUJI TERPUJI

PERNYATAAN KEASLIAN KARYA

“Saya menyatakan dengan sesungguhnya bahwa tugas akhir ini tidak memuat karya atau bagian karya orang lain, kecuali yang telah disebutkan dalam kutipan dan daftar pustaka sebagaimana layaknya karya ilmiah”

Yogyakarta, ......

Yoel Anggun Wiratama Putra

v

PLAGIATPLAGIAT MERUPAKAN MERUPAKAN TINDAKAN TINDAKAN TIDAK TIDAK TERPUJI TERPUJI

HALAMAN PERSEMBAHAN DAN MOTTO HIDUP

“Aku adalah orang yang bodoh, keras kepala, tidak menghargai hidup, tidak bersyukur dan egois ketika aku tidak mencari, menyiakan bahkan tidak menggunakan kesempatan yang ada.”

Yoel Anggun Wiratama Putra

Karya ini kupersembahkan untuk...... Tuhan Yesus Kristus, Pembimbing dan Penyemangatku, Keluarga tercinta, Teman-teman seperjuangan TE 2011, Dan semua pihak yang telah terlibat dalam proses penelitian ini

vi

PLAGIATPLAGIAT MERUPAKAN MERUPAKAN TINDAKAN TINDAKAN TIDAK TIDAK TERPUJI TERPUJI

HALAMAN PERNYATAAN PERSETUJUAN PUBLIKASI KARYA ILMIAH UNTUK KEPENTINGAN AKADEMIS

Yang bertanda tangan di bawah ini, saya mahasiswa Universitas Sanata Dharma : Nama : YOEL ANGGUN WIRATAMA PUTRA Nomor Mahasiswa : 115114046 Demi pengembangan ilmu pengetahuan, saya memberikan kepada Perpustakaan Universitas Sanata Dharma karya ilmiah saya yang berjudul :

KONTROLER LENGAN ROBOT BERBASIS SMARTPHONE ANDROID

Beserta perangkat yang diperlukan (bila ada). Dengan demikian, saya telah 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 kepentiingan akademis tanpa perlu meminta ijin dari saya meupun memberikan royalti kepada saya selama tetap mencantumkan nama saya sebagai penulis.

Demikian pernyataan ini saya buat dengan sebenarnya.

Yogyakarta,......

YOEL ANGGUN WIRATAMA PUTRA

vii

PLAGIATPLAGIAT MERUPAKAN MERUPAKAN TINDAKAN TINDAKAN TIDAK TIDAK TERPUJI TERPUJI

INTISARI Hastobot adalah miniatur lengan robot industri yang dikembangkan oleh Program Studi Teknik Elektro Universitas Sanata Dharma. Hastobot terbuat dari akrilik dan digerakkan dengan 4 buah motor servo. Hastobot memiliki 4 derajat kebebasan. Penelitian ini difokuskan terhadap pembuatan kontroler untuk lengan robot Hastobot menggunakan Arduino dan Android dengan komunikasi Bluetooth. Arduino terhubung dengan modul Bluetooth HC-05 sebagai slave untuk menerima data dari aplikasi Android. Aplikasi Android dibuat dengan IDE( Integrated Development Environment ). Motor servo digerakkan melalui mode geser touch screen pada aplikasi Android. Format data yang dikirimkan aplikasi Android menggunakan header data untuk mengidentifikasi pergerakan masing-masing motor servo. Aplikasi Android dirancang mampu menggerakkan lengan robot sesuai dengan daerah kerja lengan robot. Aplikasi yang dihasilkan mampu menggerakkan lengan robot dengan baik. Aplikasi juga memiliki sistem pengaman lengan robot dari kerusakan akibat pergerakan motor servo yang tidak sesuai dengan daerah kerja lengan robot. Komunikasi data yang diterima Arduino mampu ditrasmisikan dengan baik dalam radius 15 meter.

Kata Kunci: lengan robot Hastobot, Bluetooth, aplikasi Android, Arduino, Eclipse.

viii

PLAGIATPLAGIAT MERUPAKAN MERUPAKAN TINDAKAN TINDAKAN TIDAK TIDAK TERPUJI TERPUJI

ABSTRACT

Hastobot is an arm robot miniature developed by Electrical Engineering Sanata Dharma University. Hastobot made of acrylic and driven by 4 servo motors. Hastobot has 4 degree of freedom. This research was focused on Hastobot controller using Arduino and Android via Bluetooth communication. Arduino is connected to Bluetooth HC-05 as a slave to receive data from Android Application. Android application was made from Eclipse IDE. Servo motors is driven by seekbar interface on Android application. Data format that has been sent from Android application has a data header to identificate which servo is desired to move. This application was design to make the robot moves as its workspaces. Application was able to work well. The application has a damaging prevention from servo moves that‟s not equal to workspaces. Android application can only communicate within 15 meters of radius.

Keyword: arm robot Hastobot, Bluetooth HC-05, Android Application, Arduino, Eclipse.

ix

PLAGIATPLAGIAT MERUPAKAN MERUPAKAN TINDAKAN TINDAKAN TIDAK TIDAK TERPUJI TERPUJI

KATA PENGANTAR

Puji dan syukur kepada Tuhan Yang Maha Esa yang telah memberikan kenikmatan berupa kesehatan jasmani dan rohani sehingga penulis dapat menyelesaikan tugas akhir dengan lancar dari awal hingga diakhiri dengan munculnya laporan akhir dengan judul “KONTROLER LENGAN ROBOT BERBASIS SMARTPHONE ANDROID”. Dalam pembuatan laporan akhir dari awal hingga akhir tentunya ada bantuan dari beberapa pihak sehingga laporan akhir yang disusun oleh penulis sesuai dengan ketentuan yang ada. Dengan adanya bantuan dari beberapa pihak, penulis dapat menyelesaikan laporan akhir tersebut dan hendak mengucapkan terima kasih kepada beberapa pihak diantaranya adalah sebagai berikut : 1. Tuhan Yang Maha Esa yang telah memberikan kenikmatan berupa kesehatan jasmani dan rohani. 2. Kedua orang tua dan saudara penulis yang telah mendukung dan memberikan doa restu. 3. Bapak Petrus Setyo Prabowo, S.T., M.T., sebagai Ka. Prodi Teknik Elektro Universitas Sanata Dharma Yogyakarta 4. Bapak Djoko Untoro, S.Si,M.T., sebagai Dosen Pembimbing Tugas Akhir yang dengan penuh pengertian dan kesabaran telah meluangkan waktu untuk memberikan bimbingan, masukan, dan motivasi dalam penulisan laporan akhir ini. 5. Bapak Ir. Tjendro, M.Kom., dan Bapak Petrus Setyo Prabowo, S.T., M.T., sebagai dosen penguji yang telah memberikan bimbingan dan masukan dalam merevisi laporan akhir ini. 6. Teman-teman Teknik Elektro angkatan 2011 yang telah banyak membantu baik lahir maupun batin. 7. Semua pihak yang telah memberikan bantuan dalam penyusunan laporan akhir ini.

Dalam penyusunan laporan akhir ini tentunya terdapat kekurangan dan kelemahan serta jauh dari kata sempuna. Karena kesempurnaan hanya milik Tuhan semata. Oleh Karena itu penulis menerima masukan berupa kritik dan saran dengan harapan menjadikan penulis lebih baik lagi.

x

PLAGIATPLAGIAT MERUPAKAN MERUPAKAN TINDAKAN TINDAKAN TIDAK TIDAK TERPUJI TERPUJI

Semoga laporan akhir ini dapat diterima dengan baik oleh semua pihak. Dan semua kekurangan yang ada dapat dimaklumi. Semoga laporan akhir ini dapat memberikan manfaat kepada penulis dan pembaca.

Yogyakarta, ......

Yoel Anggun Wiratama Putra

xi

PLAGIATPLAGIAT MERUPAKAN MERUPAKAN TINDAKAN TINDAKAN TIDAK TIDAK TERPUJI TERPUJI

DAFTAR ISI

HALAMAN JUDUL ...... i HALAMAN PERSETUJUAN ...... iii HALAMAN PENGESAHAN ...... iv PERNYATAAN KEASLIAN KARYA ...... v HALAMAN PERSEMBAHAN DAN MOTTO HIDUP ...... vi LEMBAR PERNYATAAN PERSETUJUAN PUBLIKASI KARYA ILMIAH UNTUK KEPENTINGAN AKADEMIS ...... vii INTISARI ...... viii ABSTRACT ...... ix KATA PENGANTAR ...... x DAFTAR ISI ...... xii DAFTAR GAMBAR ...... xv DAFTAR TABEL ...... xvii

BAB I PENDAHULUAN 1.1 Latar Belakang ...... 1 1.2 Tujuan ...... 2 1.3 Manfaat ...... 2 1.4 Batasan Masalah ...... 3 1.5 Metodologi Penelitian ...... 3

BAB II DASAR TEORI 2.1 Sistem Operasi Android 2.1.1 Sejarah dan Perkembangan ...... 4 2.1.2 Android Software Stack ...... 7 2.1.3 Pengembangan Android ...... 8 2.2 Bluetooth 2.2.1 Sejarah dan Pengertian ...... 10 2.2.2 Bluetooth Protocol ...... 10 2.2.3 Piconet dan Scatternet ...... 12

xii

PLAGIATPLAGIAT MERUPAKAN MERUPAKAN TINDAKAN TINDAKAN TIDAK TIDAK TERPUJI TERPUJI

2.2.4 Jangkauan Bluetooth ...... 14 2.2.5 Keamanan Bluetooth ...... 14 2.2.6 Bluetooth Android ...... 15 2.2.7 Modul Bluetooth HC-05 ...... 16 2.3 Arduino Board ...... 17 2.4 Mikrokontroler ATmega 2.4.1 Fitur dan Arsitektur ...... 20 2.4.2 Konfigurasi Pin ATmega 328 ...... 22 2.5 Robot 2.5.1 Lengan robot ...... 24 2.5.2 Kinematika Robot ...... 25 2.5.3 Analisa Kinematika Dengan Persamaan Trigonometri ...... 26 2.6 Motor Servo 2.6.1 Pengertian ...... 27 2.6.2 Pengendalian Motor Servo ...... 29 2.6.3 Spesifikasi Motor Servo ...... 30

BAB III PERANCANGAN 3.1 Pemodelan Sistem ...... 31 3.2 Perancangan dan Konfigurasi Modul Bluetooth 3.2.1 Pengkabelan Modul Bluetooth dengan Arduino Uno ...... 32 3.2.2 Konfigurasi Modul Bluetooth HC-05 ...... 32 3.3 Desain Lengan Robot ...... 36 3.4 Perancangan pada Android ...... 42 3.5 Format Pengiriman Data ...... 44 3.6 Perancangan Diagram Alir 3.6.1 Diagram Alir Aplikasi Android Kontroler Lengan Robot ...... 46 3.6.2 Diagram Alir Arduino Uno ...... 47

BAB IV HASIL DAN PEMBAHASAN 4.1 Lengan Robot 4.1.1 Bentuk Fisik dan Dimensi Lengan Robot ...... 48 xiii

PLAGIATPLAGIAT MERUPAKAN MERUPAKAN TINDAKAN TINDAKAN TIDAK TIDAK TERPUJI TERPUJI

4.1.2 Kalibrasi dan Daerah Kerja Lengan Robot ...... 51 4.1.3 Analisa Matematis Lengan Robot ...... 57 4.2 Aplikasi Kontroler Lengan Robot 4.2.1 Antarmuka Aplikasi Kontroler Lengan Robot ...... 64 4.2.2 Cara Penggunaan Aplikasi Kontroler Lengan Robot ...... 68 4.2.3 Pembahasan Program Komunikasi Bluetooth ...... 68 4.2.4 Hasil Komunikasi Aplikasi Kontroler Lengan Robot ...... 72 KESIMPULAN DAN SARAN 5.1 Kesimpulan ...... 77 5.1 Saran ...... 77 DAFTAR PUSTAKA ...... 78 LAMPIRAN

xiv

PLAGIATPLAGIAT MERUPAKAN MERUPAKAN TINDAKAN TINDAKAN TIDAK TIDAK TERPUJI TERPUJI

DAFTAR GAMBAR

Gambar 2.1 Android Software Stack ...... 7 Gambar 2.2 Bluetooth Stack Protocol ...... 10 Gambar 2.3 Jaringan Piconet ...... 12 Gambar 2.4 Jaringan Scatternet ...... 12 Gambar 2.5 Proses Pairing ...... 14 Gambar 2.6 Modul Bluetooth HC-05 ...... 15 Gambar 2.7 Diagram Blok Sederhana Arduino Uno ...... 16 Gambar 2.8 Bagian-Bagian Arduino ...... 17 Gambar 2.9 Arsitektur Mikrokontroler ATmega 328 ...... 20 Gambar 2.10 Konfigurasi Pin ATmega 328 ...... 20 Gambar 2.11 Bagian umum lengan robot ...... 23 Gambar 2.12 Relasi Kinematika Maju dan balik ...... 23 Gambar 2.13 Robot Lengan 1 DOF ...... 24 Gambar 2.14 Robot Lengan 2 DOF ...... 24 Gambar 2.15 Motor Servo ...... 26 Gambar 2.16 Gerak Motor Servo ...... 27 Gambar 2.17 Motor Servo FITECH 5654 MG ...... 28 Gambar 2.18 Perhitungan torsi lengan robot ...... 29 Gambar 2.19 Perhitungan torsi lengan robot elbow ...... 30 Gambar 3.1 Diagram Blok Sistem ...... 31 Gambar 3.2 Pengkabelan Modul Bluetooth HC-05 ...... 32 Gambar 3.3 Listing Program setting Bluetooth HC-05 ...... 33 Gambar 3.4 Status Mode AT Command HC-05 ...... 34 Gambar 3.5 Setting Nama Bluetooth HC-05 ...... 34 Gambar 3.6 Setting Password Bluetooth HC-05 ...... 34 Gambar 3.7 Setting Role Bluetooth HC-05 ...... 35 Gambar 3.8 Setting baud rate, stop bit, parity Bluetooth HC-05 ...... 35 Gambar 3.9 Alamat Bluetooth HC-05 ...... 36 Gambar 3.10 Desain Gripper Me Arm v3 ...... 36

xv

PLAGIATPLAGIAT MERUPAKAN MERUPAKAN TINDAKAN TINDAKAN TIDAK TIDAK TERPUJI TERPUJI

Gambar 3.11 Desain Roda Gigi Gripper Me Arm v3 ...... 37 Gambar 3.12 Desain Link dan Joint(1)...... 37 Gambar 3.13 Desain Link dan Joint(2)...... 38 Gambar 3.14 Susunan Motor Lengan Robot Me Arm v3(1) ...... 38 Gambar 3.15 Susunan Motor Lengan Robot Me Arm v3(2) ...... 39 Gambar 3.16 Acuan Sudut Pergerakan Lengan Shoulder ...... 39 Gambar 3.17 Acuan Sudut Pergerakan Lengan Elbow ...... 40 Gambar 3.18 Acuan Posisi End Effector ...... 40 Gambar 3.19 Acuan Lebar Cengkraman Gripper ...... 41 Gambar 3.20 Desain Antarmuka Aplikasi Kontroler Lengan Robot ...... 42 Gambar 3.21 Desain Masukan dengan Seekbar ...... 43 Gambar 3.22 Format Frame USART ...... 44 Gambar 3.23 Diagram Alir Aplikasi Kontroler Lengan Robot ...... 46 Gambar 3.24 Diagram Alir Aplikasi Arduino Uno ...... 47 Gambar 4.1 Lengan Robot Tampak Samping(Elbow) ...... 48 Gambar 4.2 Lengan Robot Tampak Samping(Shoulder) ...... 50 Gambar 4.3 Keyboard Masukan Kalibrasi ...... 52 Gambar 4.4 Hasil Kalibrasi Lengan Robot Elbow ...... 53 Gambar 4.5 Hasil Kalibrasi Lengan Robot Shoulder ...... 54 Gambar 4.6 Daerah Kerja Lengan Robot Tampak Atas...... 56 Gambar 4.7 Daerah Kerja Lengan Robot Tampkak Samping ...... 56 Gambar 4.8 Analisa Grafis Lengan Robot Posisi 1 ...... 57 Gambar 4.9 Analisa Grafis Lengan Robot Posisi 2 ...... 58 Gambar 4.10 Proses Pengambilan Data x dan y...... 59 Gambar 4.11 Proses Pengambilan Data Sudut Lengan Elbow dan Base ...... 59 Gambar 4.12 Proses Pengambilan Sudut Motor Base...... 60 Gambar 4.13 Sudut Nyata x=13cm dan y=10.51cm ...... 63 Gambar 4.14 Sudut Nyata x=16cm dan y=9cm ...... 63 Gambar 4.15 Analisa Grafis Lengan Robot Posisi 3 ...... 64 Gambar 4.16 Splash Activity ...... 65 Gambar 4.17 Main Activity...... 67 xvi

PLAGIATPLAGIAT MERUPAKAN MERUPAKAN TINDAKAN TINDAKAN TIDAK TIDAK TERPUJI TERPUJI

Gambar 4.18 Tampilan Data Melalui Serial Monitor ...... 75 Gambar 4.19 Tampilan Kesalahan Sudut pada Serial Monitor ...... 75

DAFTAR TABEL

Tabel 2.1 Spesifikasi Motor Servo FITECH 5645 MG ...... 30 Tabel 3.1 Format Data Aplikasi Kontroler Lengan Robot ...... 46 Tabel 3.2 Contoh Kode ASCII untuk Pengiriman a90 ...... 44 Tabel 3.3 Format Frame karakter a ...... 45 Tabel 3.4 Format Frame karakter 9 ...... 45 Tabel 3.5 Format Frame karakter 0 ...... 45 Tabel 4.1 Hasil Daerah Kerja 1 ...... 55 Tabel 4.2 Hasil Daerah Kerja 2 ...... 55 Tabel 4.3 Perbandingan Data Terukur dan Data Sebenarnya Posisi x dan y Lengan Robot ...... 60 Tabel 4.4 Nilai Offset Elbow dan Shoulder yang dihasilkan berdasarkan tabel 4.3 ...... 61 Tabel 4.5 Pengiriman dan Penerimaan Data ...... 74 Tabel 4.6 Jarak Jangkau Bluetooth HC-05 ...... 76

xvii

PLAGIATPLAGIAT MERUPAKAN MERUPAKAN TINDAKAN TINDAKAN TIDAK TIDAK TERPUJI TERPUJI

BAB I

PENDAHULUAN

1.1 Latar Belakang Robot adalah sebuah alat mekanik yang dapat melakukan tugas fisik baik menggunakan pengawasan dan kontrol manusia, ataupun program yang sudah tertanam dalam sebuah prosesor. Istilah robot berasal dari bahasa Cheko “robota” yang berarti kuli atau pekerja yang tidak mengenal lelah dan bosan [1]. Robot merupakan teknologi yang saat ini dipakai dalam banyak hal terutama untuk membantu pekerjaan manusia. Robotika berkembang seiring dengan perubahan kebutuhan hidup dalam kehidupan manusia. Robot dinilai berguna karena dapat mengurangi kesalahan-kesalahan pekerjaan yang umumnya dilakukan oleh manusia. Robot diaplikasikan dalam berbagai hal misalnya, bidang industri, pendidikan dan kesehatan. Robot industri dan kesehatan umumnya dirancang untuk melakukan perkerjaan yang membutuhkan tingkat akurasi dan tingkat presisi yang tinggi dengan desain yang rumit. Berbeda dengan hal tersebut, robot pendidikan dirancang dengan desain yang sederhana dan mudah digunakan. Salah satu jenis robot adalah lengan robot. Lengan robot dapat digerakkan secara otomatis dan manual. Menggerakkan lengan robot secara otomatis diperlukan kontroler. Kontroler adalah alat yang dipakai untuk mengatur gerakan robot secara otomatis. Dewasa ini, Kontroler dikembangkan dalam berbagai variasi. Istilah pengendali sering diterjemahkan dengan kata controlling. Kedua istilah ini acapkali penggunaannya dipertukarkan terutama di dalam dunia teknologi. Istilah pengendali didefinisikan sebagai seluruh proses kegiatan penilaian terhadap obyek kontrol dan atau kegiatan tertentu dengn tujuan untuk memastikan apakah pelaksanaan tugas dan fungsi obyek kontrol tersebut telah sesuai dengan yang ditetapkan. Salah satu kontroler yang dapat digunakan adalah smartphone berbasis Android. Smartphone Android digunakan karena kemudahan dalam pengembangan. Karena sistem operasi Android dapat diunduh dan dikembangkan secara gratis, produsen smartphone banyak yang memakai sistem operasi tersebut.

1

PLAGIATPLAGIAT MERUPAKAN MERUPAKAN TINDAKAN TINDAKAN TIDAK TIDAK TERPUJI TERPUJI 2

Dengan adanya website pendukung, para pengembang aplikasi disediakan tempat untuk belajar dan bertukar pikiran secara online. Smartphone digunakan sebagai kontroler karena fasilitas lengkap yang telah disediakan. Banyaknya sensor dan koneksi nirkabel menjadi standar fasilitas smartphone. Fasilitas smartphone yang sering digunakan sebagai kontroler robot adalah sensor posisi dan koneksi Bluetooth. Bluetooth digunakan karena sudah dapat dikembangankan menggunakan kelas-kelas yang disediakan oleh Android versi 2.0. Teknologi yang digunakan untuk menghubungkan Arduino dengan smartphone Android disebut AOA (Android Open Accessories). AOA memungkinkan para pengembang memaksimalkan fungsi smartphone sebagai sebuah pengendali. Berdasarkan teknologi AOA, maka dibuatlah sebuah lengan robot yang dapat dikendalikan dengan smartphone berbasis Android. [2]

1.2 Tujuan Tujuan dari penelitian ini adalah 1. Menghasilkan lengan robot untuk media pembelajaran. 2. Mengembangkan sebuah kontroler lengan robot menggunakan smartphone Android. 3. Mengimplementasikan teknologi komunikasi RF (Radio Frequency) menggunakan Bluetooth untuk mengendalikan lengan robot.

1.3 Manfaat Manfaat dari penelitian ini adalah 1. Sebagai sarana pembelajaran lengan robot dengan 4 DOF (Degree of Freedom). 2. Sebagai sarana pembelajaran tentang sistem operasi Android dengan teknologi AOA (Android Open Accessories) yang berhubungan dengan robotika. 3. Sebagai sarana pembelajaran komunikasi menggunakan Bluetooth. 4. Menghasilkan dokumentasi tentang robotika dan Android.

1.4 Batasan Masalah Batasan masalah penelitian ini adalah 1. Desain lengan robot menggunakan desain open source. 2. Menggunakan mikrokontroler Atmega328P berbasis Arduino Uno.

PLAGIATPLAGIAT MERUPAKAN MERUPAKAN TINDAKAN TINDAKAN TIDAK TIDAK TERPUJI TERPUJI 3

3. Menggunakan motor servo sebagai penggerak 4 axis lengan robot. 4. Kontroler menggunakan smartphone berbasis Android dengan bahasa pemrograman Java. 5. Menggunakan Bluetooth sebagai media komunikasi.

1.5 Metodologi Penelitian Metode penelitian yang digunakan dalam penyusunan tugas akhir ini adalah : 1. Studi Pustaka Studi pustaka yang didapatkan dari buku cetak maupun elektronik, video pembelajaran , website pengembang dan jurnal penelitian terkait. 2. Penentuan Hardware Penentuan hardware Bluetooth modul dan smartphone Android yang dapat digunakan sebagai sebuah pengendali. Tidak semua perangkat Android memiliki fasilitas debugging, maka dilakukan penelitian untuk menentukan smartphone yang dapat digunakan sebagai pengendali. 3. Perancangan Software Perancangan software difokuskan untuk melakukan pengiriman data melalui koneksi Bluetooth agar lengan robot dapat bergerak sesuai perintah. 4. Pengamatan dan Pengambilan Data Pengamatan dan pengambilan data dilakukan terhadap kesesuian pergerakan lengan robot dengan masukan dari smartphone Android. Menggunakan proses normalisasi pergerakan lengan robot terhadap masukan dari smartphone Android.

PLAGIATPLAGIAT MERUPAKAN MERUPAKAN TINDAKAN TINDAKAN TIDAK TIDAK TERPUJI TERPUJI

BAB 2 DASAR TEORI

2.1 Sistem Operasi Android 2.1.1 Sejarah dan Perkembangan Android adalah sistem operasi yang berbasis Linux untuk telepon seluler seperti telepon pintar dan komputer tablet [1]. Android bersifat open source. Android menyediakan platform terbuka bagi para pengembang untuk menciptakan aplikasi sesuai keinginan mereka sendiri yang digunakan untuk berbagai macam piranti bergerak. Awalnya, Inc. membeli Android Inc., pendatang baru yang membuat peranti lunak untuk ponsel. Kemudian untuk mengembangkan Android, dibentuklah , konsorsium dari 34 perusahaan peranti keras, peranti lunak, dan telekomunikasi, termasuk Google, HTC, Intel, Motorola, Qualcomm, T-Mobile, dan Nvidia. Perangkat mobile yang menggunakan Android setidaknya telah terinstal aplikasi [3] : 1. Email pengguna. 2. Pengaturan SMS. 3. Personal Information Management yang terintegrasi dengan kalender dan daftar kontak. 4. Browser. 5. Galeri gambar dan pemutar musik. 6. Kamera dan video recording. 7. Kalkulator. 8. Alarm. Perkembangan dan kelebihan masing-masing versi Android adalah sebagai berikut [4] : 1. Android versi 1.1 Pada 9 Maret 2009, Google merilis Android versi 1.1. Android versi ini dilengkapi dengan pembaruan UI (User Interface) pada aplikasi, jam alarm, voice search, pengiriman pesan dengan , dan pemberitahuan email.

4

PLAGIATPLAGIAT MERUPAKAN MERUPAKAN TINDAKAN TINDAKAN TIDAK TIDAK TERPUJI TERPUJI 5

2. Android Versi 1.5 (Cupcake) Pada pertengahan Mei 2009, Google kembali merilis telepon seluler dengan menggunakan Android dan SDK (Software Development Kit) dengan versi 1.5 (Cupcake). Terdapat beberapa pembaruan termasuk juga penambahan beberapa fitur dalam seluler versi ini yakni kemampuan merekam dan menonton video dengan modus kamera, mengunggah video ke Youtube dan gambar ke langsung dari telepon, dukungan Bluetooth A2DP, kemampuan terhubung secara otomatis ke headset Bluetooth, animasi layar, dan keyboard pada layar yang dapat disesuaikan dengan sistem. 3. Android Versi 1.6 (Donut) Donut dirilis pada September dengan menampilkan proses pencarian yang lebih baik dibanding sebelumnya, penggunaan baterai indikator dan kontrol applet VPN. Fitur lainnya adalah galeri yang memungkinkan pengguna untuk memilih foto yang akan dihapus, kamera, camcorder dan galeri yang dintegrasikan, CDMA / EVDO, 802.1x, VPN, gestures, teknologi text to change speech. 4. Android Versi 2.1 (Eclair) Pada 3 Desember 2009 kembali diluncurkan ponsel Android dengan versi 2.0/2.1 (Eclair), perubahan yang dilakukan adalah pengoptimalan hardware, peningkatan 3.1.2, perubahan UI (User Interface) dengan browser baru dan dukungan HTML5, daftar kontak yang baru, dukungan flash untuk kamera 3,2 MP, digital Zoom, dan Bluetooth 2.1. 5. Android Versi 2.2 (Froyo: Frozen Yogurt) Pada 20 Mei 2010, Android versi 2.2 (Froyo) diluncurkan. Perubahan-perubahan umumnya terhadap versi-versi sebelumnya antara lain dukungan Adobe Flash 10.1, kecepatan kinerja dan aplikasi 2 sampai 5 kali lebih cepat, intergrasi V8 JavaScript yang dipakai yang mempercepat kemampuan rendering pada browser, pemasangan aplikasi dalam SD Card, kemampuan WiFi Hotspot portabel, dan kemampuan pembaruan otomatis dalam aplikasi Android Market. 6. Android Versi 2.3 (Gingerbread) Pada 6 Desember 2010, Android versi 2.3 (Gingerbread) diluncurkan. Perubahan- perubahan umum yang didapat dari Android versi ini antara lain peningkatan kemampuan permainan, peningkatan fungsi copy paste, user interface didesain ulang, dukungan format video VP8 dan WebM, efek audio baru (reverb, equalization,

PLAGIATPLAGIAT MERUPAKAN MERUPAKAN TINDAKAN TINDAKAN TIDAK TIDAK TERPUJI TERPUJI 6 headphone virtualization, dan bass boost), dukungan kemampuan NFC ( Near Field Communication ), dan dukungan jumlah kamera yang lebih dari satu. 7. Android Versi 3.0 (Honeycomb) Android Honeycomb dirancang khusus untuk tablet. Android versi ini mendukung ukuran layar yang lebih besar. User Interface pada Honeycomb juga berbeda karena sudah didesain untuk tablet. Honeycomb juga mendukung multi prosesor dan juga akselerasi perangkat keras untuk grafis. 8. Android Versi 4.0 (Ice Cream Sandwich) Ice Cream Sandwich didesain untuk baik itu telepon ataupun tablet. Android ICS menawarkan banyak peningkatan dari apa yang sudah ada di Gingerbread dan Honeycomb dengan pada saat yang sama memberikan inovasi-inovasi baru. Beberapa peningkatan itu antara lain kemampuan copy paste yang lebih baik, data logging dan warnings, dan kemampuan untuk mengambil screenshot dengan menekan power dan volume bersamaan. Selain itu keyboard dan kamus juga mendapat perbaikan. Inovasi- inovasi baru di ICS antara lain penggunaan font “” di Android 4.0 Ice Cream Sandwich System Bar dan Action Bar. adanya Android 4.0 Ice Cream Sandwich voice control yang memungkinkan kita mendikte teks yang ingin kita ketik. Selain itu Face Unlock merupakan salah satu hal yang menonjol di Android versi baru ini. Juga ada NFC based app yang disebut Android Bump, yang memungkinkan pengguna untuk bertukar informasi atau data hanya dengan menyentuhkan gadget. 9. Android Versi 4.1 (Jelly Bean) yang diluncurkan pada acara Google I/O membawa sejumlah keunggulan dan fitur baru. Penambahan baru diantaranya meningkatkan input keyboard, desain baru fitur pencarian, UI yang baru dan pencarian melalui voice search yang lebih cepat. juga menjadi bagian yang diperbarui. Google Now memberikan informasi yang tepat pada waktu yang tepat pula. Salah satu kemampuan Google Now adalah dapat mengetahui informasi cuaca, lalu-lintas, ataupun hasil pertandingan olahraga. Sistem operasi Android Jelly Bean 4.1 muncul pertama kali dalam produk tablet Asus, yakni Google .

PLAGIATPLAGIAT MERUPAKAN MERUPAKAN TINDAKAN TINDAKAN TIDAK TIDAK TERPUJI TERPUJI 7

2.1.2 Android Software Stack [3] Android software stack dapat dilihat pada gambar 2.1

Gambar 2.1. Android software stack [3]. Dalam Android software stack terdapat beberapa hal penting antara lain :

1. Merupakan sebuah perangkat lunak yang menjadi bagian utama dari sebuah sistem operasi. Di dalam Linux Kernel terdapat hardware driver, power management, keamanan dan jaringan. 2. Virtual Machine (DVM) Salah satu elemen kunci dari Android adalah DVM. Android berjalan dalam DVM bukan di Java Virtual Machine. DVM berjalan di dalam Kernel untuk menangani fungsional tingkat rendah. 3. Application Framework Application Framework menyediakan berbagai kelas yang digunakan untuk membuat aplikasi dan mengatur user interface.

PLAGIATPLAGIAT MERUPAKAN MERUPAKAN TINDAKAN TINDAKAN TIDAK TIDAK TERPUJI TERPUJI 8

4. Application Layer Lapisan ini terdapat fungsi dasar smartphone seperti menelepon, menjalankan browser, mengirim pesan singkat dan mengakses daftar kontak.

2.1.3 Pengembangan Android [5] Untuk keperluan pengembangan Android diperlukan alat yang bernama SDK (Software Development Kit). SDK merupakan alat bantu dan API (Application Programming Interface) dalam mengembangkan aplikasi pada platform Android menggunakan bahasa pemrograman Java. Di dalam sebuah SDK akan terdapat :

1. Android Application Programming Interface (API) Inti dari sebuah SDK adalah pustaka dari Android API yang menyediakan akses para pengembang ke Android stack. Pustaka tersebut adalah pustaka yang sama digunakan oleh Google ketika membuat aplikasi. 2. Development tools Di dalam SDK terdapat berbagai development tool yang akan meng-compile dan melakukan debugging terhadap aplikasi yang dibuat sehingga aplikasi tersebut dapat dijalankan. 3. Android Virtual Device (AVD) Manager dan Emulator Android Emulator adalah aplikasi yang dapat digunakan untuk menjalankan aplikasi Android di Personal Computer. Aplikasi tersebut menyediakan beberapa model smartphone yang dapat disimulasikan mirip dengan tampilan aslinya. Dengan menggunakan emulator, dapat diketahui bagaimana aplikasi yang dibuat dapat berjalan dalam sebuah smartphone. 4. Dokumentasi SDK menyediakan referensi tentang isi masing-masing paket dari sebuah kelas dan cara menggunakannya. 5. Contoh koding Di dalam SDK terdapat beberapa contoh koding dan cara penggunaan fitur API.

PLAGIATPLAGIAT MERUPAKAN MERUPAKAN TINDAKAN TINDAKAN TIDAK TIDAK TERPUJI TERPUJI 9

6. Dukungan Online SDK menghubungkan para pengembang untuk saling bertukar ide informasi, pengembangan dan penyelesaian masalah seputar Android di http://developer.android.com/resources/community-groups.html. 2.2 Bluetooth 2.2.1 Sejarah dan Pengertian Bluetooth berasal dari nama seorang Raja, Harald Blatand. Harald adalah anak dari Raja Gorm yang menguasai Jultland semenanjung Denmark. Blatand dalam bahasa Denmark berarti gigi biru. Raja Blatand telah berhasil mempersatukan Denmark dengan sebagian wilayah Norwegia. Ericsson memilih nama Bluetooth karena harapan terhadap teknologi tersebut. Bluetooth diharapkan dapat menjadi sambungan komunikasi perangkat mobile di seluruh dunia. Bluetooth adalah sebuah teknologi komunikasi wireless (tanpa kabel) yang beroperasi dalam pita frekuensi 2,4 GHz unlicensed ISM (Industrial, Scientific and Medical) dengan menggunakan sebuah frequency hopping tranceiver yang mampu menyediakan layanan komunikasi data dan suara secara real time antara host-host Bluetooth dengan jarak jangkauan layanan yang terbatas [6]. Bluetooth adalah teknologi jaringan RF (Radio Frequency) yang terdapat radio frekuensi transceiver dan full set protocol jaringan dalam sebuah chip kecil yang cukup untuk dimasukkan dalam sebuah perangkat mobile. Bluetooth adalah salah satu standar jaringan RF yang digunakan untuk membuat jaringan Personal Area Network ad-hoc dalam jangkauan tidak lebih dari 10 meter [7].

2.2.2 Bluetooth Protocol [7] Protocol adalah sebuah aturan ataupun standar yang mengatur atau mengijinkan terjadinya hubungan, komunikasi, dan perpindahan data antara dua atau lebih titik komputer. Protocol dapat diterapkan pada perangkat keras maupun perangkat lunak. Protocol dalam umumnya dikenal dengan spesifikasi dari sebuah perangkat keras. Bluetooth memiliki beberapa protocol yang harus dipenuhi sesuai dengan standar Institute for Electrical and Electronic Engineers (IEEE) 802.15.1 mengenai komunikasi wireless Personal Area Network (PAN). PAN memungkinkan adanya sebuah komunikasi dengan jarak 1 meter sampai 10 meter.

PLAGIATPLAGIAT MERUPAKAN MERUPAKAN TINDAKAN TINDAKAN TIDAK TIDAK TERPUJI TERPUJI 10

Protokol-protokol Bluetooth dikelompokkan berdasarkan prioritas dan penggunaan. Protokol-protokol tersebut membentuk sebuah susunan yang biasa disebut Bluetooth Stack Protocol.`Gambar 2.2 di bawah ini adalah gambar Bluetooth Stack Protocol.

Gambar 2.2. Bluetooth stack protocol [7].

1. Bluetooth Radio Layer Merupakan lapisan paling bawah dalam spesifikasi Bluetooth. Lapisan ini menentukan operasi dan sistem minimum dalam komunikasi Bluetooth termasuk perangkat penerima, pengiriman dan penerimaan data dan sinyal RF dalam ISM (Industrial, Scientific and Medical) band. 2. Baseband Baseband adalah sebuah physical layer protocol Bluetooth yang terletak diatas Bluetooth Radio Layer dalam Bluetooth stack protocol. Baseband mengatur physical channel dan menyediakan sambungan dari dan ke sebuah komunikasi termasuk pengecekan kesalahan, hop selection dan keamanan jaringan. 3. Link Manager Protocol Link Manager Protocol mengatur sambungan, konfigurasi dan memberikan izin komunikasi Bluetooth. Setelah Link Manager sebuah perangkat Bluetooth mendeteksi adanya perangkat Bluetooth lain, maka Link Manager Protocol akan membuat sebuah sambungan untuk berkomunikasi dengan Link Manager Bluetooth terdeteksi.

PLAGIATPLAGIAT MERUPAKAN MERUPAKAN TINDAKAN TINDAKAN TIDAK TIDAK TERPUJI TERPUJI 11

4. Logical Link Control and Adaptation Protocol (L2CAP) L2CAP merupakan data-link layer dalam pemodelan Open System Interconnection (OSI). LC2AP memungkinkan layer di atasnya dapat menerima dan mengirim paket data sampai 64kb. 5. RFCOMM RFCOMM merupakan cable replacement protocol dalam Bluetooth stack. RFCOMM menciptakan sebuah serial port virtual yang dapat digunakan sesuai dengan standar EIA (Electronics Industry Association) 232. Dengan adanya RFCOMM berbagai adapted protocol dengan dasar serial dapat berkomunikasi dengan Bluetooth. 6. AT Command AT Command adalah berbagai set instruksi untuk memberikan perintah dalam komunikasi port serial.

2.2.3 Piconet dan Scatternet [7] Komunikasi antar peralatan Bluetooth akan menghasilkan sebuah jaringan Bluetooth yang dinamakan dengan Piconet . Sebuah Piconet paling sederhana terdiri atas dua buah peralatan Bluetooth dimana salah satu modul yang menginisiasi koneksi disebut sebagai master sedangkan peralatan lain yang menerima tawaran inisiasi dinamakan sebagai slave. Jika hanya dua peralatan yang berkomunikasi ,maka koneksinya dikatakan sebagai point to point. Satu master dapat memiliki lebih dari satu koneksi secara simultan dengan beberapa slave pada saat bersamaan . Koneksi ini dinamakan dengan koneksi point to multipoint. Kedua tipe koneksi tersebut masih merupakan bagian dari Piconet. Piconet-piconet dapat saling berkomunikasi untuk membentuk sebuah jaringan baru yang dinamakan Scatternet. Gambar 2.3 dan 2.4 di bawah ini adalah gambar jaringan Scatternet dan Piconet.

PLAGIATPLAGIAT MERUPAKAN MERUPAKAN TINDAKAN TINDAKAN TIDAK TIDAK TERPUJI TERPUJI 12

Gambar 2.3. Jaringan Piconet [7].

Gambar 2.4. Jaringan Scatternet [7].

PLAGIATPLAGIAT MERUPAKAN MERUPAKAN TINDAKAN TINDAKAN TIDAK TIDAK TERPUJI TERPUJI 13

2.2.4 Jangkauan Bluetooth [7] Umumnya peralatan-peralatan Bluetooth dapat saling berkomunikasi dalam jarak yang sedang antara 1 hingga 100 m. Jarak maksimal ini dapat dihasilkan tergantung dari daya output yang digunakan dalam modul Bluetooth. Modul Bluetooth biasanya berupa satu IC (Integrated Circuit) chip komunikasi khusus yang telah mengimplementasikan protocol Bluetooth. Setidaknya terdapat tiga kelas Bluetooth berdasarkan daya output dari jarak jangkauannya yaitu :

a. Daya kelas 1 yang beroperasi pada daya antara 1mW hingga 100mW dan didesain untuk peralatan Bluetooth dengan jangkauan hingga 100 meter. b. Daya kelas 2 beroperasi antara 0.25mW hingga 2.5mW dan didesain untuk jarak jangkauan hingga sekitar 20m. . Daya kelas 3 memiliki daya maksimal hingga 1mW dan bekerja untuk peralatan dengan jarak sekitar 10cm.

2.2.5 Keamanan Bluetooth [7] Bluetooth mencegah perangkat asing untuk mengakses atau terhubung dengan sebuah perangkat secara ilegal. Standar pilihan keamanan pada Bluetooth dapat ditambahkan dalam perangkat Bluetooth. Keamanan yang biasa digunakan pada beberapa perangkat Bluetooth adalah dengan meminta PIN (Personal Idetification Number) yang dibuat dalam perangkat master ketika membuka jaringan yang akan terhubung dengan perangkat slave. Metode lain untuk menghubungkan 2 buah perangkat Bluetooth adalah pairing. Pairing menggunakan PIN yang ditentukan sendiri oleh user. Pertukaran dan verifikasi terjadi antara kedua perangkat Bluetooth ketika pairing. Sebagian besar Bluetooth mobile tidak memiliki built-in PIN sehingga harus memasukkan kode kedalam handphone ketika pairing dengan perangkat lain. Penyusupan terhadap jaringan Bluetooth disebut Bluejacking. Bluejacking dapat terjadi karena proses koneksi antar perangkat Bluetooth tidak memakai pairing sehingga ilegal user dapat langsung terkoneksi dan melakukan aktivitas komunikasi. Gambar 2.5 berikut ini merupakan ilustrasi proses pairing.

PLAGIATPLAGIAT MERUPAKAN MERUPAKAN TINDAKAN TINDAKAN TIDAK TIDAK TERPUJI TERPUJI 14

Gambar 2.5. Proses Pairing [7].

2.2.6 Bluetooth Android [3] Android menyediakan fasilitas bagi pengembang untuk melakukan komunikasi secara wireless menggunakan teknologi Bluetooth. API (Application Programming Interface) pada Android menyediakan fasilitas untuk mengatur dan memonitoring perangkat Bluetooth. Dengan menginisiasikan sebuah komunikasi menggunakan Bluetooth Socket , sebuah perangkat dapat mengirim dan menerima stream data dalam sebuah aplikasi. Pustaka Bluetooth telah ada dalam Android versi 2.0 (SDK API level 5). Sejak Android 2.1, hanya data yang terhubung melalui proses pairing saja yang dapat dikoneksikan. Namun perlu diketahui tidak setiap mobile Android mempunyai koneksi Bluetooth. Android menyediakan kelas untuk perangkat dan jaringan Bluetooth dalam Android packages sebagai berikut :

a. BluetoothAdapter Digunakan untuk mengidentifikasi koneksi Bluetooth dalam Android. b. BluetoothDevice Setiap perangkat yang akan terhubung direpresentasikan dalam BluetoothDevice. c. BluetoothSocket Sebagai jalur pengiriman dan penerimaaan stream data. d. BluetoothServerSocket Mendeteksi permintaan koneksi yang terdapat dalam Bluetooth Socket.

PLAGIATPLAGIAT MERUPAKAN MERUPAKAN TINDAKAN TINDAKAN TIDAK TIDAK TERPUJI TERPUJI 15

2.2.7 Modul Bluetooth HC-05 [9] Modul Bluetooth lebih dikenal dengan nama modul BT. Modul ini digunakan untuk mengirimkan data serial TTL (Transistor Transistor Logic) melalui Bluetooth. Modul Bluetooth memiliki dua tipe yakni, tipe master dan slave. Tipe modul BT dapat diketahui dari nomer seri yang berasal dari pabrik pembuat. Modul BT dengan nomer ganjil dapat digunakan sebagai master dan slave. Tipe tersebut tidak dapat diubah oleh pengguna. Jadi modul BT master tidak bisa berubah menjadi slave kecuali untuk modul seri tertentu yang memungkinkan untuk diubah menggunakan AT Command yang ada.

Gambar 2.6. Modul BT HC-05 [9].

Modul BT HC-05 merupakan tipe modul BT yang dapat diubah dari master ke slave maupun sebaliknya. Modul BT dapat digunakan ketika perangkat master telah melakukan pairing dengan perangkat slave. Komunikasi tidak akan terjadi ketika semua perangkat adalah master atau semua perangkat adalah slave. Komunikasi yang terjadi antara modul BT master dan modul BT slave menyerupai komunikasi serial biasa dengan adanya TXD dan RXD. Untuk dapat mengkonfigurasi perangkat modul BT, digunakan AT Command. AT Command memungkinkan pengguna untuk memberikan password, user name, baud rate, parity dan parameter lainnya yang digunakan untuk komunikasi.

2.3 Arduino Board [8] Arduino dikatakan sebagai sebuah platform dari physical computing yang bersifat open source. Arduino tidak hanya sekedar sebuah alat pengembangan, tetapi kombinasi dari hardware, bahasa pemrograman dan IDE (Integrated Development

PLAGIATPLAGIAT MERUPAKAN MERUPAKAN TINDAKAN TINDAKAN TIDAK TIDAK TERPUJI TERPUJI 16

Environment) yang canggih. IDE adalah sebuah software yang sangat berperan untuk menulis program, meng-compile menjadi kode biner dan meng-upload ke dalam memori mikrokontroler. Komponen utama didalam papan Arduino adalah sebuah mikrokontroler 8 bit dengan merk ATmega yang dibuat oleh Atmel Corporation. Berbagai papan Arduino menggunakan tipe Atmega yang berbeda-beda tergantung dari spesifikasinya. Sebagai contoh Arduino Uno menggunakan Atmega328 sedangkan Arduino Mega 2560 yang lebih canggih menggunakan Atmega2560. Pada gambar 2.7 berikut ini diperlihatkan contoh diagram blok sederhana dari mikrokontroler Atmega328 yang dipakai pada Arduino Uno.

Gambar 2.7. Diagram blok sederhana Arduino Uno [8]. Blok-blok pada gambar 2.7 dijelaskan sebagai berikut:

1. Universal Asynchronous Receiver/Transmitter (UART) adalah antar muka yang digunakan untuk komunikasi serial seperti pada RS-232, RS-422 dan RS-485. 2. 2KB RAM pada memori kerja bersifat volatile (hilang saat daya dimatikan), digunakan oleh variabel-variabel di dalam program.

PLAGIATPLAGIAT MERUPAKAN MERUPAKAN TINDAKAN TINDAKAN TIDAK TIDAK TERPUJI TERPUJI 17

3. 32KB RAM flash memori bersifat non-volatile, digunakan untuk menyimpan program yang dimuat dari komputer. Selain program, flash memory juga menyimpan bootloader. 4. Bootloader adalah program inisiasi yang ukurannya kecil, dijalankan oleh CPU saat daya dihidupkan. Setelah bootloader selesai dijalankan, berikutnya program di dalam RAM akan dieksekusi. 5. 1KB EEPROM bersifat non-volatile, digunakan untuk menyimpan data yang tidak boleh hilang saat daya dimatikan. 6. Central Processing Unit (CPU), bagian dari mikrokontroler untuk menjalankan setiap instruksi dari program. 7. Port input/output, pin-pin untuk menerima data (input) digital atau analog, dan mengeluarkan data (output) digital atau analog. Pada gambar 2.8 di bawah ini adalah bagian-bagian Arduino.

Gambar 2.8. Bagian-bagian Arduino [8]. Bagian-bagian komponen dari Arduino Board pada gambar 2.8 dapat dijelaskan sebagai berikut:

1. 14 Pin input/output digital (0-13) Berfungsi sebagai input atau output, dapat diatur oleh program. Khusus untuk 6 buah pin 3, 5, 6, 9, 10 dan 11, dapat juga berfungsi sebagai pin analog output dimana tegangan output-nya dapat diatur. Nilai sebuah pin output analog dapat diprogram antara 0 – 255, dimana hal itu mewakili nilai tegangan 0 – 5V.

PLAGIATPLAGIAT MERUPAKAN MERUPAKAN TINDAKAN TINDAKAN TIDAK TIDAK TERPUJI TERPUJI 18

2. USB (Universal Serial Bus) Berfungsi untuk: 1. Memuat program dari komputer ke dalam papan . 2. Komunikasi serial antara papan dan komputer. 3. Memberi daya listrik kepada papan. 3. Q1 – Kristal (quartzcrystal oscillator) Jika mikrontroler dianggap sebagai sebuah otak, maka kristal adalah jantungnya karena komponen ini menghasilkan detak-detak yang dikirim kepada mikrokontroler agar melakukan sebuah operasi untuk setiap detaknya. Kristal ini memakai 16 juta kali per detik (16MHz). 4. Tombol Reset S1 Untuk me-reset mikrokontroler sehingga program akan mulai lagi dari awal. Perhatikan bahwa tombol reset ini bukan untuk menghapus program atau mengosongkan mikrokontroler. 5. In-Circuit Serial Programming (ICSP) Port ICSP memungkinkan pengguna untuk memprogram mikrokontroler secara langsung, tanpa melalui bootloader. Umumnya pengguna Arduino tidak melakukan cara tersebut, sehingga ICSP tidak sering dipakai walaupun disediakan. 6. IC 1 – Mikrokontroler ATmega Komponen utama dari papan Arduino, di dalamnya terdapat CPU, ROM dan RAM. 7. X1 – sumber daya eksternal Jika hendak disuplai dengan sumber daya eksternal, papan Arduino dapat diberikan tegangan DC antara 9-12V. 8. 6 Pin input analog (0-5) Pin ini sangat berguna untuk membaca tegangan yang dihasilkan oleh sensor analog, seperti sensor suhu. Program dapat membaca nilai sebuah pin input antara 0 – 1023, dimana hal itu mewakili nilai tegangan 0 –5V.

PLAGIATPLAGIAT MERUPAKAN MERUPAKAN TINDAKAN TINDAKAN TIDAK TIDAK TERPUJI TERPUJI 19

2.4 Mikrokontroler ATmega 328 [10] 2.4.1 Fitur dan Arsitektur ATMega328 adalah mikrokontroller keluaran dari atmel yang mempunyai arsitektur RISC (Reduce Instruction Set Computer) di mana setiap proses eksekusi data lebih cepat dari pada arsitektur CISC (Completed Instruction Set Computer). Beberapa fitur yang dimiliki oleh Atmega 328 antara lain :

1. 130 macam instruksi yang hampir semuanya dieksekusi dalam satu siklus clock. 2. 32 x 8-bit register serba guna. 3. Kecepatan mencapai 16 MIPS dengan clock 16 MHz. 4. 32 KB Flash memory dan pada Arduino memiliki bootloader yang menggunakan 2 KB dari flash memory sebagai bootloader. 5. Memiliki EEPROM ( Electrically Erasable Programmable Read Only Memory) sebesar 1KB sebagai tempat penyimpanan data semi permanen karena EEPROM tetap dapat menyimpan data meskipun catu daya dimatikan. 6. Memiliki pin I/O digital sebanyak 14 pin 6 diantaranya PWM ( Pulse Width Modulation) output. 7. Master / Slave SPI Serial interface.

Mikrokontroller ATmega328 memiliki arsitektur Harvard Yaitu memisahkan memori untuk kode program dan memori untuk data sehingga dapat memaksimalkan kerja dan parallelism.Instruksi – instruksi dalam memori program dieksekusi dalam satu alur tunggal, dimana pada saat satuinstruksi dikerjakan instruksi berikutnya sudah diambil dari memori program. Konsep inilah yang memungkinkan instruksi – instruksi dapat dieksekusi dalam setiap satu siklus clock. 32x8-bit register serba guna digunakan untuk mendukung operasi pada ALU (Arithmatic Logic unit) yang dapat dilakukan dalam satu siklus. Dari 6 register serbaguna ini dapat digunakan sebagai 3 buah register pointer 16-bit pada mode pengalamatan tak langsung untuk mengambil data pada ruang memori data. Ketiga register pointer 16-bit ini disebut dengan register X ( gabungan R26 dan R27 ), register Y(gabungan R28 dan R29 ), dan register Z (gabungan R30 dan R31). Hampir semua instruksi AVR memiliki format 16-bit. Setiap alamat memori program terdiri dari instruksi 16-bit atau 32-bit. Selain register serba guna di

PLAGIATPLAGIAT MERUPAKAN MERUPAKAN TINDAKAN TINDAKAN TIDAK TIDAK TERPUJI TERPUJI 20 atas,terdapat register lain yang terpetakan dengan teknik memory mapped I/O selebar 64byte. Beberapa register ini digunakan untuk fungsi khusus antara lain sebagai register kontrol Timer/ Counter, Interupsi, ADC, USART, SPI, EEPROM, dan fungsi I/O lainnya. Register – register ini menempati memori pada alamat 0x20h –0x5Fh. Untuk mengetahui alur hubungan dari arsitektur ATmega328 dapat dilihat pada gambar 2.9 berikut:

Gambar 2.9. Arsitektur mikrokontroler ATmega 328 [10].

2.4.2 Konfigurasi Pin ATmega 328 Gambar 2.10 di bawah ini menunjukkan konfigurasi pin ATmega 328.

Gambar 2.10. Konfigurasi Pin ATmega 328 [10].

PLAGIATPLAGIAT MERUPAKAN MERUPAKAN TINDAKAN TINDAKAN TIDAK TIDAK TERPUJI TERPUJI 21

ATMega 328 memiliki 3 buah PORT utama yaitu PORT B, PORT C, dan PORT D dengan total pin input/output sebanyak 23 pin. PORT tersebut dapat difungsikan sebagai input/output digital atau difungsikan sebagai periperial lainnya. Di bawah ini merupakan penjelasan PORT yang ada di ATMega 328.

1. PORT B PORT B merupakan jalur data 8 bit yang dapat difungsikan sebagai input/output. Selain itu PORT B juga dapat memiliki fungsi alternatif seperti di bawah ini.

1. ICP1 (PB0), berfungsi sebagai Timer/Counter 1 input capture pin. 2. OC1A (PB1), OC1B (PB2) dan OC2 (PB3) dapat difungsikan sebagai keluaran PWM (Pulse Width Modulation). 3. MOSI (PB3), MISO (PB4), SCK (PB5), SS (PB2) merupakan jalur komunikasi SPI.Selain itu pin ini juga berfungsi sebagai jalur pemograman serial (ISP). 4. TOSC1 (PB6) dan TOSC2 (PB7) dapat difungsikan sebagai sumber clock external untuk timer. 5. XTAL1 (PB6) dan XTAL2 (PB7) merupakan sumber clock utama mikrokontroler. 2. PORT C PORT C merupakan jalur data 7 bit yang dapat difungsikan sebagai input/output digital. Fungsi alternatif PORT C antara lain sebagai berikut:

1. ADC6 channel (PC0, PC1, PC2, PC3, PC4, PC5) dengan resolusi sebesar 10 bit. ADC dapat digunakan untuk mengubah input yang berupa tegangan analog menjadi data digital. 2. I2C (SDA dan SDL) merupakan salah satu fitur yang terdapat pada PORTC. I2C digunakan untuk komunikasi dengan sensor atau perangkat lain yang memiliki komunikasi data tipe I2C seperti sensor kompas, accelerometer nunchuck. 3. PORT D ffffffffffffffffffffffffffffff PORT D merupakan jalur data 8 bit yang masing-masing pin-nya juga dapat difungsikan sebagai input/output. Sama seperti PORT B dan PORT C, PORT D juga memiliki fungsi alternatif dibawah ini.

PLAGIATPLAGIAT MERUPAKAN MERUPAKAN TINDAKAN TINDAKAN TIDAK TIDAK TERPUJI TERPUJI 22

1. USART (TXD dan RXD) merupakan jalur data komunikasi serial dengan level sinyal TTL. Pin TXD berfungsi untuk mengirimkan data serial, sedangkan RXD kebalikannya yaitu sebagai pin yang berfungsi untuk menerima data serial. 2. Interrupt (INT0 dan INT1) merupakan pin dengan fungsi khusus sebagai interupsi hardware. Interupsi biasanya digunakan sebagai selaan dari program, misalkan pada saat program berjalan kemudian terjadi interupsi hardware/software maka program utama akan berhenti dan akan menjalankan program interupsi. 3. XCK dapat difungsikan sebagai sumber clock external untuk USART, namun kita juga dapat memanfaatkan clock dari CPU, sehingga tidak perlu membutuhkan external clock. 4. T0 dan T1 berfungsi sebagai masukan counter external untuk timer 1 dan timer 0. 5. AIN0 dan AIN1 keduanya merupakan masukan untuk analog komparator.

2.5 Robot 2.5.1 Lengan Robot[11] Robot Manipulator adalah nama yang popular untuk lengan mekanik atau lengan robot. Manipulator merupakan gabungan dari beberapa segmen dan joint yang secara umum dibagi menjadi 3 bagian yaitu arm, wrist, end effector. RIA (Robotic Industries Association) mendefinisikan robot sebagai manipulator yang didesain untuk memindahkan material, benda, alat atau peralatan tertentu lewat pergerakan yang terprogram untuk melakukan berbagai tugas. Konfigurasi merujuk pada setiap sambungan (link) manipulator terhubung antara satu lengan dengan yang lain pada setiap joint. Setiap sambungan akan terhubung dengan sambungan berikutnya, baik berupa linear joint (prismatik) yang selanjutnya disingkat dengan huruf P, atau berupa hubungan revolute yang dapat disingkat dengan huruf R. Setiap joint minimal terdiri atas 1 Degree of Freedom (DOF). Sebuah robot lengan dengan 3 DOF setidaknya dapat bergerak keatas-bawah, kanan-kiri, depan- belakang. Gambar 2.11 menunjukkan wrist dan end effector pada lengan robot.

PLAGIATPLAGIAT MERUPAKAN MERUPAKAN TINDAKAN TINDAKAN TIDAK TIDAK TERPUJI TERPUJI 23

Gambar 2.11. Bagian umum lengan robot [11]. 2.5.2 Kinematika Robot[11] Kinematika dapat didefinisikan sebagai studi pergerakan robot (motion) tanpa memperhatikan gaya (force) ata factor lainnya yang memengaruhi pergerakan tersebut. Pada sebuah analisa kinematic, posisi, kecepatan dan akselerasi dari seluruh link digitung tanpa memperhatikan gaya yang menyebabkan pergerakan. Kinematika robot, secara umum terbagi menjadi dua, yaitu :

1. Kinematika Maju (Forward Kinematics) Kinematika maju juga disebut dengan kinematika direct, di mana panjang dari setiap link dan sudut dari setiap joint diketahui untuk menghitung posisi robot. 2. Kinematika Balik (Inverse Kinematics) Kinematika balik adalah analisa kinematik yang digunakan untuk menghitung sudut dari masing-masing joint dengan panjang setiap link dan posisi robot telah diketahui.

Gambar 2.12. Relasi kinematika maju dan balik [11].

PLAGIATPLAGIAT MERUPAKAN MERUPAKAN TINDAKAN TINDAKAN TIDAK TIDAK TERPUJI TERPUJI 24

2.5.3 Analisa Kinematik Dengan Persamaan Trigonometri[11]

a. Robot Lengan 1 DOF

Gambar 2.13. Robot lengan 1 DOF [11].

Dengan menggunakan kinematika maju maka kedudukan ujung lengan P(x,y) dapat dinyatakan dengan :

= ...... (2.1)

= ...... (2.2)

Menggunakan kinematika balik, maka didapatkan dengan perhitungan sebagai berikut :

= ...... (2.3)

b. Robot Lengan 2 DOF

Gambar 2.14. Robot lengan 2 DOF [11].

PLAGIATPLAGIAT MERUPAKAN MERUPAKAN TINDAKAN TINDAKAN TIDAK TIDAK TERPUJI TERPUJI 25

Kedudukan ujung lengan dinyatakan sebagai P(x,y) dimana :

...... (2.4)

...... (2.5) Persamaan di atas dapat diperoleh dengan menggunakan analisa kinematika maju dengan hukum identitas trigonometri : ...... (2.6) ...... (2.7) Maka didapatkan :

...... (2.8)

...... (2.9) Dari dua persamaan terakhir dan menggunakan analisa kinematika balik maka akan didapatkan :

{ } ...... (2.10)

Dan sudut dapat dicari melalui Dengan hukum identitas trigonometri :

...... (2.11)

Didapatkan:

...... (2.12)

Sehingga :

= ...... (2.13)

2.6 Motor Servo (Servo motor) [11] 2.6.1 Pengertian Motor servo adalah sebuah motor dengan sistem closed feedback dimana posisi dari motor akan diinformasikan kembali ke rangkaian kontrol yang ada di dalam motor servo. Motor terdiri dari sebuah motor, serangkaian gear, potentiometer dan rangkaian kontrol. Potentiometer berfungsi untuk menentukan batas sudut dari putaran servo. Sedangkan sudut dari sumbu motor servo diatur berdasarkan lebar pulsa yang dikirim melalui kaki sinyal kabel motor. Motor servo biasanya hanya bergerak mencapai sudut tertentu saja dan tidak kontinyu seperti motor DC maupun motor stepper. Walau demikian, untuk beberapa

PLAGIATPLAGIAT MERUPAKAN MERUPAKAN TINDAKAN TINDAKAN TIDAK TIDAK TERPUJI TERPUJI 26 keperluan tertentu, motor servo dapat dimodifikasi agar bergerak kontinyu. Pada robot, motor ini sering digunakan untuk bagian kaki, lengan atau bagian-bagian lain yang mempunyai gerakan terbatas. Motor servo adalah motor yang mampu bekerja dua arah, yaitu searah jarum jam atau clockwise (CW) dan berlawanan arah jarum jam atau counterclockwise (CCW) di mana arah dan sudut pergerakan rotornya dapat dikendalikan hanya dengan memberikan pengaturan duty cycle sinyal Pulse Width Modulation (PWM) pada bagian pin kontrolnya. Motor servo merupakan sebuah motor DC yang memiliki rangkaian kontrol elektronik dan internal gear untuk mengendalikan pergerakan dan sudut angularnya. Sistem mekanik pada motor servo seperti yang ditunjukkan gambar 2.15 terdiri dari : a. 3 jalur kabel : power, ground dan control. b. Internal gear. c. Potentiometer. d. Feedback control.

Gambar 2.15. Motor servo.

2.6.2 Pengendalian Motor Servo [11] Kabel kontrol digunakan untuk mengatur sudut posisi dari batang output. Sudut posisi ditentukan oleh durasi pulsa yang diberikan oleh kabel kontrol. Motor sevo digerakkan dengan menggunakan PWM (Pulse Width Modulation). Motor sevo akan mengecek pulsa setiap 20 milisecond. Panjang pulsa akan menentukan seberapa jauh motor akan berputar. Contohnya, pada pulsa 1,5 milisecond akan membuat motor berputar sejauh 90° (lebih sering disebut posisi netral). Jika pulsa lebih pendek dari 1,5 milisecond, maka motor akan berputar lebih dekat ke 0°. Jika lebih panjang dari 1,5ms,

PLAGIATPLAGIAT MERUPAKAN MERUPAKAN TINDAKAN TINDAKAN TIDAK TIDAK TERPUJI TERPUJI 27 maka akan berputar mendekati 180°. Dari Gambar 2.16 di bawah, durasi pulsa menentukan sudut dari batang output.

Gambar 2.16. Gerak motor servo .

PLAGIATPLAGIAT MERUPAKAN MERUPAKAN TINDAKAN TINDAKAN TIDAK TIDAK TERPUJI TERPUJI 28

2.6.3 Spesifikasi Motor Servo Spesifikasi untuk motor servo yang digunakan ditunjukkan dalam tabel 2.1. di bawah ini.

Gambar 2.17. Motor Servo FITECH 5654 MG.

Tabel 2.1. Spesifikasi Motor Servo FITECH 5645 MG.

Berat 52g/1.84 oz

Dimensi 40.5 x 20 x 42 mm

Torsi saat 6V 14.2 kg/cm

0.17 detik / 600 tanpa Kecepatan saat 6V beban

Tegangan Kerja 4.8 V – 6.0 V

Tipe Gear Metal

Tipe Motor 3 kutub

Modulasi Digital

2.6.4 Torsi Lengan Robot Perhitungan torsi maksimal yang dibutuhkan diambil pada saat lengan robot dalam posisi seperti pada gambar 2.18, karena lengan robot memiliki jarak jangkau terpanjang dari tumpuan lengan. Gambar 2.18 berikut merupakan posisi yang akan menjadi acuan perhitungan torsi maksimal lengan robot.

PLAGIATPLAGIAT MERUPAKAN MERUPAKAN TINDAKAN TINDAKAN TIDAK TIDAK TERPUJI TERPUJI 29

Gambar 2.18. Perhitungan torsi lengan robot. Rumus yang digunakan untuk menghitung torsi adalah sebagai berikut ∑ ...... (2.14) ...... (2.15) ...... (2.16) ...... (2.17) Keterangan : =Torsi (Nm) =Jarak antara titik pusat rotasi dengan titik yang terkena gaya (m). =Gaya (N) =Panjang titik yang terkena gaya terhadap titik pusat rotasi secara tegak lurus (m). =Massa benda. (Kg) =Gaya Gravitasi. (9.8m/s2) Berdasarkan persamaan 217x dengan besar gaya dan arah gaya yang sama, semakin besar jari-jari yang diukur maka semakin besar pula torsi yang dibutuhkan. Oleh karena itu maka pengukuran torsi maksimal dilakukan saat end effector lengan robot berada di titik jangkau terjauh dari base. Torsi yang dihitung adalah torsi untuk lengan elbow dan shoulder. Untuk lengan elbow perhitungannya sebagai berikut. Diketahui :

PLAGIATPLAGIAT MERUPAKAN MERUPAKAN TINDAKAN TINDAKAN TIDAK TIDAK TERPUJI TERPUJI 30

.

. Torsi motor=12kg/cm. . Misal

푟 Gambar 2.19 Perhitungan torsi lengan elbow. ∑ ...... (2.18)

...... (2.19)

...... (2.20)

...... (2.21)

...... (2.22)

Hasil perhitungan pada persamaan 2.22 tidak mempertimbangkan kekuatan bahan serta kekuatan desain lengan robot.

PLAGIATPLAGIAT MERUPAKAN MERUPAKAN TINDAKAN TINDAKAN TIDAK TIDAK TERPUJI TERPUJI

BAB III PERANCANGAN

3.1 Pemodelan Sistem Perancangan sistem dan blok diagram dapat dilihat pada gambar 3.1 di bawah ini.

Servo Base Serial Monitor Servo Shoulder Android Modul Arduino Servo Bluetooth Uno Elbow

Servo Gripper

Gambar 3.1. Diagram blok sistem.

Parameter gambar diatas adalah sebagai berikut: 1. Sistem yang digunakan adalah open loop. 2. Menggunakan smartphone Android sebagai kontroler. 3. Menggunakan papan Arduino Uno sebagai kontroler lengan robot. 4. Menggunakan 4 buah mikro servo sebagai penggerak lengan robot. 5. Menggunakan Bluetooth modul HC-05. 6. Memanfaatkan Serial Monitor untuk mengecek data yang dikirim dari Android ke Arduino Uno. 7. Catu daya Arduino didapatkan dari USB konektor. 8. Susunan motor pada lengan robot dapat dilihat pada gambar 3.14 dan 3.15

31

PLAGIATPLAGIAT MERUPAKAN MERUPAKAN TINDAKAN TINDAKAN TIDAK TIDAK TERPUJI TERPUJI 32

3.2 Perancangan dan Konfigurasi Modul Bluetooth 3.2.1 Pengkabelan Modul Bluetooth dengan Arduino Uno Modul Bluetooth dihubungkan dengan Arduino seperti gambar 3.2 di bawah ini.

Gambar 3.2. Pengkabelan Modul Bluetooth HC-05 [12].

Parameter gambar 3.2 adalah sebagai berikut : 1. Modul Bluetooth pin TX dihubungkan dengan pin 10 pada Arduino Uno. 2. Modul Bluetooth pin RX dihubungkan dengan pin 11 pada Arduno Uno. 3. Modul Bluetooth pin VCC dihubungkan dengan pin VCC pada Arduno Uno. 4. Modul Bluetooth pin GND dihubungkan dengan pin GND pada Arduno Uno. 5. Modul Bluetooth pin KEY dihubungkan dengan pin 9 pada Arduno Uno. Pin 9 Arduino Uno difungsikan sebagai keluaran digital tinggi. Pin KEY pada modul Bluetooth hanya digunakan ketika mengkonfigurasi parameter-parameter pada modul Bluetooth atau untuk memasuki mode AT Command. 6. Catu daya Arduino Uno didapatkan dari USB konektor yang dihubungkan ke Personal Computer. Dengan menggunakan USB konektor sebagai catu daya, komunikasi modul Bluetooth dengan Arduino Uno dapat di-debug melalui serial monitor yang terdapat dalam Arduino IDE. 3.2.2 Konfigurasi Modul Bluetooth HC-05 Dengan menggunakan mode AT Command, modul Bluetooth dikonfigurasi sebagai berikut : 1. Nama perangkat modul Bluetooth adalah USD_115114046. 2. Password untuk dapat melakukan proses pairing adalah 115114046.

PLAGIATPLAGIAT MERUPAKAN MERUPAKAN TINDAKAN TINDAKAN TIDAK TIDAK TERPUJI TERPUJI 33

3. Modul Bluetooth dikonfigurasikan sebagai perangkat slave. 4. Menggunakan baud rate 38400 dengan 0 stop bit dan no parity.

Gambar 3.3. Listing program untuk setting Bluetooth HC-05.

Gambar 3.4 sampai dengan gambar 3.9 merupakan masukan AT Command dari Arduino ke modul Bluetooth HC-05. Proses pengiriman command dilihat melalui serial monitor yang terdapat dalam Arduino IDE.

PLAGIATPLAGIAT MERUPAKAN MERUPAKAN TINDAKAN TINDAKAN TIDAK TIDAK TERPUJI TERPUJI 34

Gambar 3.4. Status mode AT Command HC-05. Gambar 3.4 menunjukkan Arduino mengirimkan command dengan format AT. Respon yang dikembalikan oleh Bluetooth HC-05 adalah OK. Respon tersebut menandakan HC-05 sudah dalam AT Command mode.

Gambar 3.5. Setting nama Bluetooth HC-05. Gambar 3.5 menunjukkan Arduino mengirimkan command dengan format AT+NAME=USD_115114046. Respon yang dikembalikan oleh Bluetooth HC-05 adalah OK. Untuk mengetahui bahwa nama sudah terganti digunakan format AT+NAME dengan respon yang dikembalikan oleh Bluetooth HC-05 adalah OK dan +NAME:USD_115114046.

Gambar 3.6. Setting password Bluetooth HC-05.

PLAGIATPLAGIAT MERUPAKAN MERUPAKAN TINDAKAN TINDAKAN TIDAK TIDAK TERPUJI TERPUJI 35

Gambar 3.6 menunjukkan Arduino mengirimkan command dengan format AT+PSWD=USD_115114046. Respon yang dikembalikan oleh Bluetooth HC-05 adalah OK. Untuk mengetahui bahwa password sudah terganti digunakan format AT+PSWD dengan respon yang dikembalikan oleh Bluetooth HC-05 adalah OK dan +PSWD:115114046.

Gambar 3.7. Setting role Bluetooth HC-05. Gambar 3.7 menunjukkan Arduino mengirimkan command dengan format AT+ROLE=0. Respon yang dikembalikan oleh Bluetooth HC-05 adalah OK. Untuk mengetahui bahwa role sudah terganti menjadi slave digunakan format AT+ROLE dengan respon yang dikembalikan oleh Bluetooth HC-05 adalah OK dan +ROLE:0.

Gambar 3.8. Setting baud rate, stop bit, parity Bluetooth HC-05. Gambar 3.8 menunjukkan Arduino mengirimkan command dengan format AT+UART=38400,0,0. Respon yang dikembalikkan oleh Bluetooth HC-05 adalah OK. Untuk mengetahui bahwa baud rate, stop bit, parity sudah menjadi 38400, no stop bit dan no parity digunakan format AT+UART dengan respon yang dikembalikan oleh Bluetooth HC-05 adalah OK dan +UART:38400,0,0.

PLAGIATPLAGIAT MERUPAKAN MERUPAKAN TINDAKAN TINDAKAN TIDAK TIDAK TERPUJI TERPUJI 36

Gambar 3.9. Alamat Bluetooth HC-05 Gambar 3.9 menunjukkan Arduino mengirimkan command dengan format AT+ADDR. Respon yang dikembalikan oleh Bluetooth HC-05 adalah OK dan +ADDR=2014:11:282428. Command tersebut digunakan untuk mengetahui alamat Bluetooth HC-05.

3.3 Desain Lengan Robot Desain lengan robot yang digunakan merupakan desain lengan robot yang bersifat open source. Desain lengan robot ini bernama Me Arm v3. Desain lengan robot dapat diunduh di situs www.grabcad.com/library/me-arm-v3-0-1. Lengan robot Me Arm v3 dapat digerakkan hanya dengan menggunakan mikro servo. Me Arm v3 terdiri dari 4 buah motor penggerak. Pada end effector terdapat gripper yang dapat digunakan untuk mencapit benda. Berikut gambar-gambar desain lengan robot Me Arm v3.

Gambar 3.10. Desain gripper Me Arm v3.

PLAGIATPLAGIAT MERUPAKAN MERUPAKAN TINDAKAN TINDAKAN TIDAK TIDAK TERPUJI TERPUJI 37

Gripper pada Me Arm v3 digerakkan dengan satu buah motor servo. Untuk dapat membuat kedua penjepit bergerak secara bersamaan, gripper Me Arm v3 dilengkapi konfigurasi roda gigi seperti yang akan ditunjukkan pada gambar 3.11.

Gambar 3.11. Desain roda gigi gripper Me Arm v3. Desain link dan joint lengan robot Me Arm v3 ditunjukkan oleh gambar 3.12 dan 3.13 di bawah ini.

Gambar 3.12 Desain link dan joint (1).

PLAGIATPLAGIAT MERUPAKAN MERUPAKAN TINDAKAN TINDAKAN TIDAK TIDAK TERPUJI TERPUJI 38

Gambar 3.13 Desain link dan joint (2). Gambar 3.14 dan gambar 3.15 di bawah ini merupakan susunan motor pada lengan robot Me Arm v3.

Motor Shoulder

Motor Base

Gambar 3.14 Susunan motor lengan robot Me Arm v3(1) .

PLAGIATPLAGIAT MERUPAKAN MERUPAKAN TINDAKAN TINDAKAN TIDAK TIDAK TERPUJI TERPUJI 39

Motor Gripper

Motor Elbow

Gambar 3.15 Susunan motor lengan robot Me Arm v3(2) . Perkiraan pergerakan untuk masing-masing motor adalah sebagai berikut :

1. Motor base bergerak antara 00 - 1800. 2. Motor shoulder bergerak antara 450 - 1500. 3. Motor elbow bergerak antara 450 - 1500. 4. Motor gripper bergerak antara 300 - 800.

Titik acuan dalam perhitungan sudut pergerakan lengan robot adalah sebagai berikut:

Y

X

Gambar 3.16 Acuan sudut pergerakan lengan shoulder.

PLAGIATPLAGIAT MERUPAKAN MERUPAKAN TINDAKAN TINDAKAN TIDAK TIDAK TERPUJI TERPUJI 40

Y

X

Gambar 3.17 Acuan sudut pergerakan lengan elbow.

Y

X

Gambar 3.18 Acuan posisi end effector.

PLAGIATPLAGIAT MERUPAKAN MERUPAKAN TINDAKAN TINDAKAN TIDAK TIDAK TERPUJI TERPUJI 41

Cm

Gambar 3.19 Acuan lebar cengkraman gripper. Acuan pada gripper berupa lebar pembukaan mulut gripper dengan satuan cm. Motor yang digunakan untuk gripper menggunakan motor servo mikro.

PLAGIATPLAGIAT MERUPAKAN MERUPAKAN TINDAKAN TINDAKAN TIDAK TIDAK TERPUJI TERPUJI 42

3.4 Perancangan User Interface pada Android Desain antarmuka aplikasi Kontroler Lengan Robot dibuat seperti gambar 3.16 dan 3.17. Antarmuka bertujuan untuk memudahkan pengguna dalam menggerakkan lengan robot.

Gambar 3.20. Desain antarmuka aplikasi Kontroler Lengan Robot.. Keterangan desain antarmuka dalam gambar 3.20 adalah sebagai berikut:

1. Enable Ditekan untuk mengaktifkan koneksi Bluetooth pada smartphone Android. Status 1 merupakan textview yang akan menginformasikan apakah Bluetooth sedang menyala atau mati. 2. Paired Ditekan untuk melakukan proses pairing terhadap perangkat Bluetooth yang akan disambungkan. Status 2 merupakan textview yang akan menginformasikan apakah Bluetooth sudah paired atau belum.

PLAGIATPLAGIAT MERUPAKAN MERUPAKAN TINDAKAN TINDAKAN TIDAK TIDAK TERPUJI TERPUJI 43

3. Scan Ditekan untuk melakukan scanning terhadap perangkat Bluetooth yang aktif dan akan melakukan sambungan. Status 3 merupakan textview yang akan menginformasikan apakah ada perangkat Bluetooth lain yang aktif dan akan melakukan sambungan. 4. Connect Ditekan untuk membuka sebuah sambungan terhadap perangkat Bluetooh yang aktif dan sudah ter-paired dengan smartphone Android. Status 4 merupakan textview yang akan menginformasikan apakah Bluetooth sudah tersambung dengan perangkat lain atau belum. Untuk memberikan masukan pada motor servo lengan robot, digunakan seek bar. Seek bar digunakan dengan cara digeser atau di-drag.

Seek Bar

Gambar 3.21. Desain masukan dengan seek bar. Keterangan desain antarmuka dalam gambar 3.21 adalah sebagai berikut : 1. Seek Bar Base Digunakan untuk menggerakkan motor servo base lengan robot. 2. Seek Bar Shoulder Digunakan untuk menggerakkan motor servo shoulder lengan robot. 3. Seek Bar Elbow Digunakan untuk menggerakkan motor servo elbow lengan robot. 4. Seek Bar Gripper Digunakan untuk menggerakkan motor servo gripper lengan robot.

PLAGIATPLAGIAT MERUPAKAN MERUPAKAN TINDAKAN TINDAKAN TIDAK TIDAK TERPUJI TERPUJI 44

3.5 Format Pengiriman Data Data akan dikirim menggunakan serial komunikasi UART dengan baud rate 38400, tanpa parity dan 0 stop bit. Gambar 3.22 di bawah ini merupakan format frame komunikasi UART secara umum.

Gambar 3.22 Format frame USART.

Data dari Aplikasi Kontroler Lengan Robot adalah berupa String yang memuat data header yang akan digunakan sebagai tanda untuk mendeteksi masing-masing motor yang ingin digerakkan dan data sudut pergerakan pada lengan robot yang telah ternormalisasi. Tabel 3.1 di bawah ini menunjukkan format data yang dikirim dari Aplikasi Kontroler Lengan Robot.

Tabel 3.1 Format data Aplikasi Kontroler Lengan Robot. Contoh Hasil

Motor Header Data Akhir (Header+Data)

Sudut pergerakan lengan robot yang Base a a90 telah ternormalisasi (derajat). Sudut pergerakan lengan robot yang Shoulder b b30 telah ternormalisasi (derajat). Sudut pergerakan lengan robot yang Elbow c c45 telah ternormalisasi (derajat).

Gripper d Lebar cengkraman gripper (cm). d2

Jika data yang dikirim adalah a90, maka format data yang dikirim secara UART adalah sebagai berikut :

PLAGIATPLAGIAT MERUPAKAN MERUPAKAN TINDAKAN TINDAKAN TIDAK TIDAK TERPUJI TERPUJI 45

Tabel 3.2 Contoh Kode ASCII untuk pengiriman a90. KODE ASCII

Desimal Biner Karakter

97 01100001 a

57 00111001 9

48 00110000 0

Tabel 3.3 Format frame karakter a. St(1) 0 1 1 0 0 0 0 1 P(no) Sp(0) St(1)

Tabel 3.4 Format frame karakter 9. St(1) 0 0 1 1 0 0 0 1 P(no) Sp(0) St(1)

Tabel 3.5 Format frame karakter 0. St(1) 0 0 1 1 0 0 0 0 P(no) Sp(0) St(1)

Keterangan tabel 3.3, tabel 3.4 dan tabel 3.5 adalah sebagai berikut :  St merupakan start bit untuk mengawali proses pengiriman data.  P merupakan parity, pengiriman data tidak menggunakan parity.  Sp merupakan stop bit untuk menandai bahwa data sudah selesai dikirim. Dalam komunikasi UART, start bit dan stop bit wajib ada karena untuk menandai awal dan akhir proses pengiriman data. Hal ini disebabkan karena pengiriman data dilakukan secara asinkron. Dengan adanya start bit dan stop bit, perangkat penerima dapat mendeteksi adanya data baru yang dikirim sehingga tidak terjadi kesalahan penerimaan data.

PLAGIATPLAGIAT MERUPAKAN MERUPAKAN TINDAKAN TINDAKAN TIDAK TIDAK TERPUJI TERPUJI 46

3.6 Perancangan Diagram Alir 3.6.1 Diagram Alir Aplikasi Android Kontroler Lengan Robot

START 1 3

Menampilkan tampilan utama Memasukkan password Y untuk pairing Ada perubahan nilai pada seekbar? 4

N N Apakah Enable di klik N Password benar? END

Y

Y Mengaktifkan perangkat N Bluetooth Apakah Connect 2 ditekan?

Y

N Apakah Scan di tekan? Proses penyambungan Y Arduino dan Android

Y Melakukan proses scanning

N Ada perubahan 2 Y nilai pada seekbar?

Ada perangkat aktif N Y dengan nama USD_115114046? Mendeteksi perubahan seekbar motor 4 base,elbow,shoulder Y atau gripper

N Apakah Paired ditekan? Kirim data perubahan nilai seekbar ke Arduino

Y

3 1

Gambar 3.23. Diagram alir Aplikasi Kontroler Lengan Robot.

PLAGIATPLAGIAT MERUPAKAN MERUPAKAN TINDAKAN TINDAKAN TIDAK TIDAK TERPUJI TERPUJI 47

3.5.1 Diagram Alir Arduino Uno

Start 2

Y

Inisialisasi Ada data yang 3 variabel dikirim

N

N END Apakah tersedia serial komunikasi?

Y

N Apakah Bluetooth sudah dalam mode Connect ?

Y

N Ada data yang dkirim?

Y 3

Menampilkan data melalui serial monitor

Memisahkan data berdasarkan header

Menggerakkan motor

2

Gambar 3.24. Diagram alir aplikasi Arduino Uno

PLAGIATPLAGIAT MERUPAKAN MERUPAKAN TINDAKAN TINDAKAN TIDAK TIDAK TERPUJI TERPUJI

BAB IV HASIL DAN PEMBAHASAN

Bab ini akan dibahas tentang lengan robot dan aplikasi kontroler lengan robot menggunakan smartphone Android. Hasil pengamatan meliputi ruang gerak dari lengan robot yang akan dikendalikan dan aplikasi kontroler lengan robot menggunakan smarphone Android.

4.1 Lengan Robot 4.1.1 Bentuk Fisik dan Dimensi Lengan Robot Pengukuran dimensi pada lengan robot disesuaikan dengan desain yang telah dicetak. Penjelasan dimensi ditunjukkan oleh gambar 4.1 dan 4.2.

C1 D

B 2

A1

Servo

Elbow

E

Gambar 4.1. Lengan robot tampak samping (elbow).

48

PLAGIATPLAGIAT MERUPAKAN MERUPAKAN TINDAKAN TINDAKAN TIDAK TIDAK TERPUJI TERPUJI 49

Keterangan gambar 4.1. di atas adalah sebagai berikut:

1. A1

Adalah link utama yang tersambung pada motor servo elbow. Link A1 terpasang

secara paralel dengan link A2 yang ada pada gambar 4.1. Panjang dari link tersebut adalah 5 cm dengan tebal 5mm.

2. B2 Adalah link bantuan yang terpasang secara paralel terhadap link utama yang tersambung pada motor servo shoulder. Panjang dari link tersebut adalah 15 cm dengan tebal 5mm.

3. C1

Adalah link bantuan yang tersambung dengan link bantuan D. Link C1 terpasang

secara paralel dengan link C2. Panjang dari link tersebut adalah 20 cm dengan tebal 5mm. 4. D Adalah link bantuan yang terhubung secara langsung oleh link utama motor servo elbow. Panjang dari link tersebut adalah 15 cm dengan tebal 5mm. 5. E Adalah bagian base lengan robot yang berfungsi untuk menopang bagian lengan robot yang ada di atasnya. Panjang dari base adalah 10 cm dengan lebar 10 cm dan dengan tinggi 1 cm.

PLAGIATPLAGIAT MERUPAKAN MERUPAKAN TINDAKAN TINDAKAN TIDAK TIDAK TERPUJI TERPUJI 50

B1

C2

A2

Motor

Shoulder

Gambar 4.2. Lengan robot tampak samping (shoulder).

Keterangan gambar 4.2 di atas adalah sebagai berikut:

1. A2 Adalah link bantuan yang tersambung pada link utama motor servo elbow. Link

A2 terpasang secara parallel dengan link A1. Panjang dari link tersebut adalah 5 cm dengan tebal 5mm.

2. B1

Adalah link utama yang tersambung pada motor servo shoulder. Link B1

terpasang secara parallel terhadap link bantuan B2. Panjang dari link tersebut adalah 15 cm dengan tebal 5mm.

3. C2

Adalah link bantuan yang tersambung dengan link bantuan D. Link C2 terpasang

secara parallel dengan link C1. Panjang dari link tersebut adalah 20 cm dengan tebal 5mm.

PLAGIATPLAGIAT MERUPAKAN MERUPAKAN TINDAKAN TINDAKAN TIDAK TIDAK TERPUJI TERPUJI 51

4.1.2 Kalibrasi dan Daerah Kerja Lengan Robot Kalibrasi lengan robot diperlukan agar pergerakan motor servo dapat bergerak sesuai dengan daerah kerja yang dapat dijangkau oleh lengan robot. Selain itu, kalibrasi dapat mencegah bagian lengan robot agar tidak rusak atau patah karena pergerakan motor servo tidak sesuai dengan daerah kerja lengan robot. Digunakan sebuah program untuk mengkalibrasi dan menentukan daerah kerja lengan robot. Berikut listing program untuk mengkalibrasi dan menentukan daerah kerja lengan robot.

//Listing 1 #include void loop() { if(Serial.available()>0) { input_servo=Serial.read(); if(input_servo==50){//ASCII 2

Serial.print("nilai elbow sekarang = "); Serial.println(elbowx); elbowx+=5; Serial.print("nilai elbow setelah = "); Serial.println(elbowx); } if(input_servo==49){ //ASCII 1 Serial.print("nilai elbow sekarang = ");

Serial.println(elbowx); elbowx+=-5; Serial.print("nilai elbow setelah = "); Serial.println(elbowx); } if(input_servo==52){ //ASCII 4 Serial.print("nilai base sekarang = "); Serial.println(basex); basex+=5; Serial.print("nilai base setelah = "); Serial.println(basex); }

if(input_servo==51){ //ASCII 3 Serial.print("nilai base sekarang = "); Serial.println(basex);

PLAGIATPLAGIAT MERUPAKAN MERUPAKAN TINDAKAN TINDAKAN TIDAK TIDAK TERPUJI TERPUJI 52

//Listing 1 (lanjutan) Serial.println(basex); }

if(input_servo==54){ //ASCII 6 Serial.print("nilai shoulder sekarang = "); Serial.println(shoulderx); shoulderx+=5; Serial.print("nilai shoulder setelah = "); Serial.println(shoulderx); } if(input_servo==53){ //ASCII 5

Serial.print("nilai shoulder sekarang = "); Serial.println(shoulderx); shoulderx+=-5; Serial.print("nilai shoulder setelah = "); Serial.println(shoulderx); }

Program di atas mengambil masukan dari keyboard laptop untuk menambah atau mengurangi sudut gerak motor servo. Gambar 4.3 di bawah ini adalah tampilan keyboard dan kegunaannya sebagai masukan.

Gambar 4.3. Keyboard sebagai masukan kalibrasi.

Keterangan penggunaan tombol keyboard adalah sebagai berikut : 1. Tombol 1 Adalah tombol untuk mengurangi sudut gerak motor servo untuk lengan elbow. Dengan nilai decimal ASCII 49. 2. Tombol 2 Adalah tombol untuk menambah sudut gerak motor servo untuk lengan elbow. Dengan nilai decimal ASCII 50. 3. Tombol 3 Adalah tombol untuk mengurangi sudut gerak motor servo untuk lengan base. Dengan nilai decimal ASCII 51. 4. Tombol 4 Adalah tombol untuk mengurangi sudut gerak motor servo untuk lengan base.

PLAGIATPLAGIAT MERUPAKAN MERUPAKAN TINDAKAN TINDAKAN TIDAK TIDAK TERPUJI TERPUJI 53

Dengan nilai decimal ASCII 52. 5. Tombol 5 Adalah tombol untuk mengurangi sudut gerak motor servo untuk lengan shoulder. Dengan nilai decimal ASCII 53. 6. Tombol 6 Adalah tombol untuk mengurangi sudut gerak motor servo untuk lengan shoulder. Dengan nilai decimal ASCII 54. Hasil dari kalibrasi dan daerah kerja lengan robot ditunjukkan oleh gambar 4.4. dan gambar 4.5. sebagai berikut :

Gambar 4.4. Hasil kalibrasi lengan robot elbow.

PLAGIATPLAGIAT MERUPAKAN MERUPAKAN TINDAKAN TINDAKAN TIDAK TIDAK TERPUJI TERPUJI 54

Gambar 4.5. Hasil kalibrasi lengan shoulder. Hasil dari proses kalibrasi menggunakan masukan keyboard ditunjukkan oleh tabel 4.1. dan 4.2. Dengan data pada tabel 4.1 dan tabel 4.2 dapat dikatakan bahwa untuk lengan elbow dan lengan shoulder memiliki hubungan yang tidak linear. Akurasi yang digunakan dalam pengujian daerah kerja adalah sebesar 50. Hasil dari tabel 4.1 dan tabel 4.2 digunakan untuk menentukan nilai maksimal dan minimal yang akan diproses oleh Aplikasi Kontroler Lengan Robot melalui smartphone Android. Proses kalibrasi pada masing-masing motor servo bertujuan agar motor servo dapat bergerak sesuai dengan daerah kerja yang mampu diraih oleh lengan robot dan dapat mengantisipasi kerusakan motor servo maupun lengan robot karena menahan beban yang berlebihan. Berikut tabel 4.1 dan 4.2 yang menunjukkan hubungan antara gerak lengan shoulder dan lengan elbow. Kalibrasi pada motor shoulder dan elbow hanya digunakan saat pemasangan awal motor servo pada lengan robot. Acuan pengambilan data sudut ditampilkan pada gambar 4.12 dan 4.13.

PLAGIATPLAGIAT MERUPAKAN MERUPAKAN TINDAKAN TINDAKAN TIDAK TIDAK TERPUJI TERPUJI 55

Tabel 4.1. Hasil daerah kerja 1 Tabel 4.2.Hasil daerah kerja 2 0 0 ELBOW SHOULDER ( ) SHOULDER ELBOW ( ) (0) MIN MAX (0) MIN MAX 30 25 165 30 30 90 35 20 160 35 30 100 40 15 160 40 30 110 45 10 160 45 30 165 50 0 150 50 30 165 55 5 150 55 30 160 60 5 145 60 30 150 65 10 140 65 30 150 70 15 140 70 30 140 75 15 135 75 30 135 80 20 130 80 30 130 85 20 130 85 30 125 90 30 120 90 30 125 95 30 115 95 30 120 100 35 110 100 30 110 105 40 115 105 30 110 110 40 100 110 30 100 115 40 100 115 30 95 120 40 95 120 30 90 125 45 90 125 30 80 130 45 85 130 30 80 135 45 80 135 30 70 140 45 75 140 30 60 145 45 70 145 30 55 150 45 65 150 30 55 155 40 60 155 30 55

Berdasarkan tabel 4.1 dan tabel 4.2 maka posisi awal lengan robot adalah pada saat motor servo lengan elbow dan lengan shoulder mendapat masukan 900. Karena pada saat lengan mendapat masukan 900, masing-masing jangkauan minimal lengan memiliki nilai yang sama. Hasil daerah kerja 2 menunjukkan bahwa motor elbow memiliki nilai minimal yang tidak berubah-ubah, hal ini disebabkan keterbatasan mekanik pada lengan robot. Pada motor pada base tidak memerlukan kalibrasi karena perubahan pergerakan sudut sudah sesuai dengan kondisi sebenarnya. Pada motor gripper data yang diambil berupa kondisi ketika gripper membuka penuh dan menutup

PLAGIATPLAGIAT MERUPAKAN MERUPAKAN TINDAKAN TINDAKAN TIDAK TIDAK TERPUJI TERPUJI 56 penuh atau kondisi ON/OFF. Sudut motor servo yang dibutuhkan adalah dari 450-900. Jarak pembukaan gripper tidak dapat diambil secara pasti karena desain mekanik roda gigi gripper tidak sempurna dalam menanggapi perubahan sudut motor servo (hysterysis motion). Daerah kerja lengan robot ditunjukkan oleh gambar 4.6. dan 4.7 berikut ini:

Gambar 4.6. Daerah kerja lengan robot tampak atas.

Gambar 4.7. Daerah kerja lengan robot tampak samping.

PLAGIATPLAGIAT MERUPAKAN MERUPAKAN TINDAKAN TINDAKAN TIDAK TIDAK TERPUJI TERPUJI 57

4.1.3 Analisa Matematis Lengan Robot Pada sub bab 4.1.3 akan dibahas mengenai perhitungan matematis dan pengaruh desain lengan robot terhadap kinematika lengan robot. Pemodelan secara grafis dilakukan untuk menganalisa torsi dan kinematika lengan robot.

Gambar 4.8. Analisa grafis lengan robot posisi 1. Dari analisa menggunakan grafis dapat diketahui persamaan kinematika lengan robot pada saat posisi lengan shoulder 900 terhadap ground. Persamaan kinematika yang dihasilkan adalah sebagai berikut...... (4.1) ...... (4.2) Keterangan gambar 4.8 : 1. h merupakan jarak ground dengan dudukan lengan. 2. L2 merupakan panjang lengan shoulder sebesar 15cm. 3. L3 merupakan panjang lengan elbow sebesar 15cm.

PLAGIATPLAGIAT MERUPAKAN MERUPAKAN TINDAKAN TINDAKAN TIDAK TIDAK TERPUJI TERPUJI 58

Gambar 4.9. Analisa grafis lengan robot posisi 2. Dari analisa menggunakan grafis dapat diketahui persamaan kinematika lengan robot pada saat posisi lengan shoulder kurang dari 900 terhadap ground. Persamaan kinematika yang dihasilkan adalah sebagai berikut...... (4.3) ...... (4.4) Keterangan gambar 4.9: 1. h merupakan jarak ground dengan dudukan lengan. 2. L2 merupakan panjang lengan shoulder sebesar 15cm. 3. L3 merupakan panjang lengan elbow sebesar 15cm.

Pengambilan data untuk posisi koordinat x dan y dilakukan pada saat lengan robot berada dalam posisi 2 seperti yang ditunjukkan oleh gambar 4.8. Dengan pertimbangan bahwa posisi 2 merupakan posisi awal lengan robot dan posisi 2 merupakan posisi lengan robot yang sering dikerjakan lengan robot. Cara pengambilan posisi x dan y ditunjukkan oleh gambar 4.9 di bawah ini.

PLAGIATPLAGIAT MERUPAKAN MERUPAKAN TINDAKAN TINDAKAN TIDAK TIDAK TERPUJI TERPUJI 59

X

Y

Gambar 4.10. Proses pengambilan data x dan y.

Gambar 4.11. Proses pengambilan data sudut lengan robot elbow dan shoulder.

PLAGIATPLAGIAT MERUPAKAN MERUPAKAN TINDAKAN TINDAKAN TIDAK TIDAK TERPUJI TERPUJI 60

Gambar 4.12. Proses pengambilan sudut motor base. Akurasi yang digunakan dalam pengambilan data adalah sebesar 50. Dalam proses pengambilan data busur harus ditempelkan ditempat yang sama untuk menghindari kesalahan pengambilan data karena acuan sudut yang berbeda. Selain itu, diperlukan sebuah garis bantu yang digambar pada lengan robot yang akan menjadi acuan untuk pengambilan masing-masing data. Hasil pengambilan data dan data sebenarnya dari posisi x dan y lengan robot ditunjukkan oleh tabel 4.3 di bawah ini.

Tabel 4.3 Perbandingan data terukur dan data sebenarnya posisi x dan y lengan robot. NO NILAI SUDUT SERVO(0) SUDUT TERUKUR(0) TERUKUR(cm) SUDUT NYATA(0) ELBOW SHOULDER ELBOW SHOULDER X Y beta alfa 1 90 90 60 75 13 10.5 75 53 2 100 90 65 75 12 9 75 58 3 110 90 75 75 10 8 75 66 4 120 90 80 75 7.5 7.5 75 76 5 90 80 60 65 16.5 10 61 53 6 100 80 65 65 14.5 8.5 61 61 7 110 80 75 65 12 7.5 61 71 8 120 80 80 65 10 7 61 79

PLAGIATPLAGIAT MERUPAKAN MERUPAKAN TINDAKAN TINDAKAN TIDAK TIDAK TERPUJI TERPUJI 61

Tabel 4.3 Perbandingan data terukur dan data sebenarnya posisi x dan y lengan robot (lanjutan). NO NILAI SUDUT SERVO(0) SUDUT TERUKUR(0) TERUKUR(cm) SUDUT NYATA(0) ELBOW SHOULDER ELBOW SHOULDER X Y beta alfa 9 90 70 60 55 18.5 9 51 53 10 100 70 70 55 16.5 7.5 51 62 11 110 70 80 55 14 6.5 51 72 12 120 70 80 55 12 6 51 80 13 90 60 60 45 20.5 7.5 40 53 14 100 60 65 45 18.5 6 40 62 15 110 60 80 45 16 5 40 72 16 120 60 80 45 13.5 3.5 40 82

Tabel 4.4. Nilai offset elbow dan shoulder yang dihasilkan berdasarkan tabel 4.3. NO Nilai Offset Elbow(0) Error Elbow(0) Shoulder(0) Error Shoulder(0) 1 30 0 15 0 2 35 0 15 0 3 45 15 15 0 4 40 10 15 0 5 30 0 15 0 6 35 5 15 0 7 45 15 15 0 8 30 10 15 0 9 30 0 15 0 10 30 0 15 0 11 40 10 15 0 12 40 10 15 0 13 30 0 15 0 14 35 5 15 0 15 40 10 15 0 16 40 10 15 0

Keterangan tabel 4.3 adalah sebagai berikut: 1. Sudut servo merupakan nilai sudut yang diberikan kontroler untuk motor servo. 2. Sudut terukur merupakan sudut posisi lengan robot yang diukur secara langsung menggunakan busur.

PLAGIATPLAGIAT MERUPAKAN MERUPAKAN TINDAKAN TINDAKAN TIDAK TIDAK TERPUJI TERPUJI 62

3. Nilai terukur merupakan nilai yang diukur posisi x dan y menggunakan garis seperti yang ditunjukkan pada gambar 4.9. 4. Sudut nyata merupakan sudut sebenarnya yang dibentuk oleh lengan robot. Sudut nyata diambil dari desain grafis lengan robot. Cara pengambilan sudut nyata ditunjukkan oleh gambar 4.13. dan gambar 4.14. 5. Sudut nyata beta merupakan sudut untuk lengan shoulder dan sudut nyata alfa merupakan sudut untuk lengan elbow.

Keterangan tabel 4.4 adalah sebagai berikut: 1. Nilai offset elbow merupakan nilai selisih antara sudut servo shoulder dengan sudut terukur servo elbow pada tabel 4.3. 2. Nilai offset shoulder merupakan nilai selisih antara sudut servo shoulder dengan sudut terukur servo shoulder pada tabel 4.3. 3. Diketahui bahwa terdapat nilai offset sudut pada motor servo elbow yaitu sebesar 300. Nilai offset terjadi karena pemasangan motor servo tidak tegak lurus terhadap posisi awal lengan robot. 4. Diketahui bahwa terdapat nilai offset sudut pada motor servo shoulder yaitu sebesar 150. Nilai offset terjadi karena pemasangan motor servo tidak tegak lurus terhadap posisi awal lengan robot. Proses pengambilan sudut nyata dan posisi x dan y lengan robot ditunjukkan oleh gambar 4.13 dan 4. 14.

PLAGIATPLAGIAT MERUPAKAN MERUPAKAN TINDAKAN TINDAKAN TIDAK TIDAK TERPUJI TERPUJI 63

Gambar 4.13. Sudut nyata x=13cm dan y=10.51cm.

Gambar 4.14. Sudut nyata x=16.50cm dan y=9cm. Dari pengambilan data dapat diketahui bahwa perbedaan antara sudut servo shoulder dan sudut nyata shoulder yang dihasilkan oleh lengan robot adalah sebesar 150. Perbedaan antara sudut servo elbow dan sudut nyata elbow yang dihasilkan oleh

PLAGIATPLAGIAT MERUPAKAN MERUPAKAN TINDAKAN TINDAKAN TIDAK TIDAK TERPUJI TERPUJI 64 lengan robot adalah sebesar 300. Perlu diketahui bahwa proses pengambilan data sudut terukur terpangaruh oleh ketelitian pembacaan sudut pada busur.

. Gambar 4.15. Analisa grafis lengan robot posisi 3. Dari analisa menggunakan grafis dapat diketahui persamaan kinematika lengan robot pada saat posisi lengan 3 atau shoulder lebih dari 900 terhadap ground. Persamaan kinematika yang dihasilkan adalah sebagai berikut...... (4.5) ...... (4.6) Keterangan gambar 4.13 : 1. h merupakan jarak ground dengan dudukan lengan. 2. L2 merupakan panjang lengan shoulder sebesar 15cm. 3. L3 merupakan panjang lengan elbow sebesar 15cm.

4.2 Aplikasi Kontroler Lengan Robot Pada sub bab 4.2 akan dibahas mengenai Aplikasi Kontroler Lengan Robot yang sudah dibuat pada smartphone Android. 4.2.1 Antarmuka Aplikasi Kontroler Lengan Robot Dalam Aplikasi Kontroler Lengan Robot terdapat 2 buah activity. Activity yang pertama adalah splash activity dan yang kedua adalah main activity. Splash activity adalah activity yang berfungsi sebagai start up untuk Aplikasi Kontroler Lengan Robot.

PLAGIATPLAGIAT MERUPAKAN MERUPAKAN TINDAKAN TINDAKAN TIDAK TIDAK TERPUJI TERPUJI 65

Main activity adalah activity yang berfungsi sebagai kontrol utama komunikasi Android dengan Bluetooth HC-05. Splash activity ditunjukkan pada gambar 4.16 dan main activity ditujukkan oleh gambar 4.17 di bawah ini.

Gambar 4.16. Splash activity. Splash activity pada gambar 4.16 di atas tampil selama 5 detik dan setelah itu tampilan akan berganti ke main activity seperti pada gambar 4.17. Splash activity terdiri dari sebuah relative layout yang berisi ImageView dan TextView. Selain itu, terdapat background sound yang akan terdengar bersamaan dengan terbukanya splash activity. Dengan menggunakan fasilitias Thread, background sound dan tampilan dapat berjalan bersamaan. Berikut listing program untuk splash activity.

PLAGIATPLAGIAT MERUPAKAN MERUPAKAN TINDAKAN TINDAKAN TIDAK TIDAK TERPUJI TERPUJI 66

//Listing 2 public class Splash_Activity extends Activity{ MediaPlayer Coc; ImageView robot; TextView judul; TextView bawahjudul; TextView bawahjudul1; TextView bawahjudul2; TextView bawahjudul3; protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Coc=MediaPlayer.create(Splash_Activity.this, R.raw.coc); Coc.start(); setContentView(R.layout.splash);

judul=(TextView)findViewById(R.id.textView3); judul.setTextColor(Color.BLUE); bawahjudul=(TextView)findViewById(R.id.textView1); bawahjudul.setTextColor(Color.BLUE); bawahjudul1=(TextView)findViewById(R.id.textView2); bawahjudul1.setTextColor(Color.BLUE); bawahjudul2=(TextView)findViewById(R.id.textView4); bawahjudul2.setTextColor(Color.BLUE); bawahjudul3=(TextView)findViewById(R.id.textView5); bawahjudul3.setTextColor(Color.BLUE);

Thread th = new Thread(){ public void run(){try { sleep(5000); }catch (Exception e) {}finally { Intent i = newIntent(Splash_Activity.this,MainActivity.class); startActivity(i); } } }; th.start(); }

Pada splash activity warna tulisan tidak diatur dalam program , melainkan diatur menggunakan fasilitas yang terdapat dalam class graphics.color yang sudah ada dalam Eclipse IDE. Dan untuk melakukan pengubahan warna pada tulisan digunakan method .setTextColor yang ada dalam class TextView. Pada pengujian splash activity sudah dapat berjalan dengan baik baik sebagai tampilan awal Aplikasi Kontroler Lengan Robot.

PLAGIATPLAGIAT MERUPAKAN MERUPAKAN TINDAKAN TINDAKAN TIDAK TIDAK TERPUJI TERPUJI 67

Linear Layout

Relative Layout

Seekbar

Gambar 4.17. Main activity Main activity pada gambar 4.17 terdiri dari linear layout yang di dalammnya terdapat relative layout. Main activity merupakan activity utama sebagai pengontrol komunikasi Bluetooth dan memberi masukan nilai ke Arduino. Main activity dilengkapi dengan sistem proteksi terhadap kesalahan penggunaan komunikasi dan masukan nilai. Ketika panel Enable masih menunjukkan OFF maka pengguna tidak akan bisa mengirimkan data ataupun melakukan proses komunikasi atau dengan kata lain aplikasi tidak akan menerima perintah maupun masukan ketika Enable dalam keadaan OFF. Sistem proteksi tersebut dapat mencegah aplikasi tertutup secara paksa karena kesalahan pengguna. Antarmuka yang digunakan untuk memberikan masukan terhadap pergerakan lengan robot adalah menggunakan antarmuka seekbar. Akurasi atau step yang digunakan adalah sebesar 50 untuk setiap pergeseran.

PLAGIATPLAGIAT MERUPAKAN MERUPAKAN TINDAKAN TINDAKAN TIDAK TIDAK TERPUJI TERPUJI 68

4.2.2 Cara Penggunaan Aplikasi Kontroler Lengan Robot Cara untuk menggunakan Aplikasi Kontroler Lengan adalah sebagai berikut: 1. Tekan icon pada Home Screen Android. 2. Tunggu sampai Aplikasi Kontroler Lengan Robot terbuka dan menampilkan splash activity lalu menuju main activity. 3. Setelah main activity terbuka, proses pengaktifan Bluetooth baru bisa dinyalakan. 4. Proses pengaktifan dan penyambungan komunikasi Bluetooth harus dilakukan secara sekuensial sesuai dengan protokol Bluetooth. 5. Tekan Enable >> Scan >> Paired >> Masukan password “115114046” >> Connect. 6. Setelah proses pada nomer 5 di atas berhasil, geser seekbar untuk menggerakkan lengan robot. 4.2.3 Pembahasan Program Komunikasi Bluetooth Aplikasi Kontroler Lengan Robot Dalam membuat aplikasi kontroler lengan robot dalam sistem operasi Android menggunakan komunikasi Bluetooth, berbagai kelas digunakan terutama kelas untuk komunikasi Bluetooth. Dalam sub bab ini akan dibahas mengenai penggunaan kelas Bluetooth yang digunakan. Kelas yang pertama adalah kelas BluetoothAdapter. Kelas ini merupakan kelas yang diinisialisasikan pertama kali. BluetoothAdapter digunakan untuk melakukan pengecekan apakah perangkat smartphone yang akan digunakan telah memiliki komunikasi Bluetooth atau tidak.

//Listing 3 private BluetoothAdapter btAdapter; import android.bluetooth.BluetoothAdapter; if (btAdapter.isEnabled()) { btAdapter.disable(); statusOff(); } else if (!btAdapter.isEnabled()) { Intent openBT = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE); startActivityForResult(openBT,OPEN_BLUETOOTH); } else if (btAdapter == null) { showToast("Tidak support Bluetooth");

Listing 3 program di atas akan mengaktifkan dan mematikan Bluetooth pada smartphone yang memiliki komunikasi Bluetooth yang sesuai dengan kebutuhan

PLAGIATPLAGIAT MERUPAKAN MERUPAKAN TINDAKAN TINDAKAN TIDAK TIDAK TERPUJI TERPUJI 69 aplikasi kontroler lengan robot. Jika smartphone tidak memiliki komunikasi Bluetooth atau versi Bluetooth tidak sesuai yang dibutuhkan aplikasi maka akan muncul peringatan bahwa smartphone tidak didukung dengan komunikasi Bluetooth. BluetoothAdapter juga dapat mendeteksi apakah Bluetooth sedang dalam kondisi aktif atau tidak. Setelah menangani pengaktifan Bluetooth, BluetoothAdapter melakukan proses scanning dan pairing. Listing program untuk proses scanning dan pairing adalah sebagai berikut.

//Listing 5 scanBT.setOnClickListener(new OnClickListener() { public void onClick(View arg0) { btAdapter.startDiscovery(); } pairedBT.setOnClickListener(new OnClickListener() { private String address = "20:14:11:28:24:28"; BluetoothDevice prosesPairing=btAdapter.getRemoteDevice(address); public void onClick(View arg0) { if (prosesPairing.getBondState() == BluetoothDevice.BOND_BONDED){ unpairDevice(prosesPairing); USD_1146 = prosesPairing; } else { pairDevice(prosesPairing); } } });

Bluetooth akan dapat melakukan proses pairing ketika perangkat dengan alamat

"20:14:11:28:24:28" terdeteksi ketika proses scanning. Dalam program ini dibatasi hanya perangkat Bluetooth SPP (Serial Port Profile) dengan alamat

"20:14:11:28:24:28" yang dapat berkomunikasi dengan aplikasi kontroler lengan robot. Alamat tersebut merupakan alamat modul Bluetooth HC-05 yang terhubung dengan Arduino. Kelas yang kedua adalah kelas BluetoothDevice. Kelas ini menampung informasi mengenai nama dan alamat perangkat Bluetooth yang terdeteksi dan yang dapat berkomunikasi dengan smartphone. Selain itu, BluetoothDevice dapat mendeteksi apakah perangkat yang terdeteksi sedang dalam proses pairing, sudah ter-paired atau belum ter-paired. Listing program untuk penggunaan kelas BluetoothDevice adalah sebagai berikut.

PLAGIATPLAGIAT MERUPAKAN MERUPAKAN TINDAKAN TINDAKAN TIDAK TIDAK TERPUJI TERPUJI 70

//Listing 6 if (state == BluetoothDevice.BOND_BONDED && prevState == BluetoothDevice.BOND_BONDING) { showToast("Paired"); statusPaired.setText("to USD_115114046"); pairedBT.setText("Unpair"); connectBT.setEnabled(true); } else if (state == BluetoothDevice.BOND_NONE && prevState == BluetoothDevice.BOND_BONDED) { showToast("Unpaired"); pairedBT.setText("Pair"); statusPaired.setText("Belum paired "); } }}};

Kelas ketiga yang digunakan adalah BluetoothSocket. BluetoothSocket berperan dalam membuka jalur yang akan digunakan untuk melakukan komunikasi antara smartphone dengan perangkat Bluetooth yang sudah ter-paired. Listing program untuk penggunaan kelas BluetoothSocket adalah sebagai berikut.

//Listing 7 private BluetoothSocket mmSocket; void closeBT() throws IOException { UUID uuid = UUID.fromString("00001101-0000-1000-8000-00805f9b34fb"); mmSocket = USD_1146.createRfcommSocketToServiceRecord(uuid); mmSocket.close(); } void openBT() throws IOException { UUID uuid = UUID.fromString("00001101-0000-1000-8000-00805f9b34fb"); mmSocket =USD_1146.createRfcommSocketToServiceRecord(uuid); mmSocket.connect(); mmOutputStream = mmSocket.getOutputStream(); statusConnect.setText("Bluetooth Opened" + "\n"); }

UUID adalah Universally Unique Identifier yaitu merupakan kode standar untuk komunikasi Serial Port Profile (SPP). Jalan komunikasi tidak akan terbuka jika UUID yang digunakan tidak sesuai dengan yang dibutuhkan. BluetoothSocket juga mengatur pengiriman dan penerimaan data. Dalam Aplikasi Kontroler Lengan Robot yang dibuat, aplikasi hanya dapat mengirimkan data saja. Untuk setiap proses pengiriman komunikasi, Android mewajibkan pengembang untuk menggunakan IOException. Berikut listing program pengiriman data Aplikasi Kontroler Lengan Robot.

PLAGIATPLAGIAT MERUPAKAN MERUPAKAN TINDAKAN TINDAKAN TIDAK TIDAK TERPUJI TERPUJI 71

//Listing 8 private OutputStream mmOutputStream; void sendData(String msg0) throws IOException { msg0 += "\n"; mmOutputStream.write(msg0.getBytes()); statusConnect.setText("Data Sent"); } mmOutputStream merupakan objek yang dibentuk untuk dapat mengirimkan data. Semua program yang digunakan untuk membuka, menutup, mengirimkan dan menerima data pasti dijalankan dengan method throws IOException sesuai dengan aturan Android Application Programming Interface yang terdapat di website developer.android.com Kelas terakhir yang digunakan adalah kelas Intent dan BroadcastReceiver. Intent digunakan untuk menyimpan dan melanjutkan nilai dari sebuah activity ke activity yang lain. Untuk menghemat pemrosesan activity, maka digunakan BroadcastReceiver yang akan menginformasikan perangkat ketika ada perubahan data. Berikut listing program penggunaan Intent dan BroadcastReceiver.

IntentFilter filter = new IntentFilter();//Listing 9 filter.addAction(BluetoothAdapter.ACTION_DISCOVERY_STARTED); filter.addAction(BluetoothAdapter.ACTION_DISCOVERY_FINISHED); filter.addAction(BluetoothDevice.ACTION_FOUND); filter.addAction(BluetoothAdapter.ACTION_STATE_CHANGED); filter.addAction(BluetoothDevice.ACTION_BOND_STATE_CHANGED); Intent Filter digunakan untuk membuat daftar kejadian yang akan menjadi fokus utama BroadcastReceiver dalam menangkap perubahan data. Kejadian yang dapat ditangkap dan diinformasikan oleh BroadcastReceiver ke seluruh sistem antara lain : 1. Perubahan kondisi Bluetooth aktif atau non aktif. 2. Ketika terdeteksi perangkat Bluetooth yang aktif. 3. Ketika terjadi perubahan status pairing dalam perangkat Bluetooth. 4. Ketika proses scanning dimulai dan berakhir. Listing program untuk penggunaan kelas BroadcasReceiver adalah sebagai berikut.

PLAGIATPLAGIAT MERUPAKAN MERUPAKAN TINDAKAN TINDAKAN TIDAK TIDAK TERPUJI TERPUJI 72

//Listing 10 private final BroadcastReceiver Receiver = new BroadcastReceiver() public void onReceive(Context context, Intent intent) { String data = intent.getAction(); if (BluetoothAdapter.ACTION_STATE_CHANGED.equals(data)) { final int state = intent.getIntExtra( BluetoothAdapter.EXTRA_STATE, BluetoothAdapter.ERROR); if (state == BluetoothAdapter.STATE_ON) { showToast("Enabled BT"); statusOn(); } else if (state == BluetoothAdapter.STATE_OFF) { showToast("Disabled BT"); statusOff(); } } else if (BluetoothAdapter.ACTION_DISCOVERY_STARTED.equals(data)) { objekProgressDlg.show(); } else if (BluetoothAdapter.ACTION_DISCOVERY_FINISHED.equals(data)) { objekProgressDlg.dismiss(); showToast("Proses Scanning Selesai"); } else if (BluetoothDevice.ACTION_FOUND.equals(data)) { BluetoothDevice device = (BluetoothDevice) intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE); showToast("Found device " + device.getName()); statusScan.setText(device.getName()); deviceList.add(device);

4.2.4 Hasil Komunikasi Aplikasi Kontroler Lengan Robot Pada sub bab ini akan dibahas mengenai data komunikasi antara Arduio sebagai penerima data dan Aplikasi Kontroler Lengan Robot sebagai pengirim data. Proses penerimaan data dari Aplikasi Kontroler Lengan Robot dikerjakan oleh Arduino dengan listing program sebagai berikut.

//Listing 11 baca data void baca_data(){ while (BTSerial.available() > 0) { nilai_sekarang(); int inChar = BTSerial.read(); if (isDigit(inChar)) { data_awal1 += (char)inChar; }

//Listing 11 penggabungan data if ((inChar)) { data_awal2 += (char)inChar; } }

PLAGIATPLAGIAT MERUPAKAN MERUPAKAN TINDAKAN TINDAKAN TIDAK TIDAK TERPUJI TERPUJI 73

Listing program di atas merupakan proses pembacaan data yang diterima oleh Bluetooth HC-05 dari Aplikasi Kontroler Lengan Robot. Fungsi isDigit digunakan untuk mendeteksi data berupa angka dan fungsi inChar digunakan untuk menampung semua data termasuk header data.

// Listing 12 if (inChar=='\n'){ Serial.println(); Serial.print("Nilai Sudut: "); Serial.println(data_awal1.toInt()); Serial.print("Data yang dikirim dari Android: "); Serial.println(data_awal2);

nilai_derajat=data_awal1.toInt(); char header_data=data_awal2.charAt(0); if(header_data=='a'){ Serial.println("Data terdeteksi untuk motor BASE"); nilai_derajat_base=nilai_derajat; } else if(header_data=='b'){ Serial.println("Data terdeteksi untuk motor SHOULDER"); nilai_derajat_shoulder=nilai_derajat; }

else if(header_data=='c'){ Serial.println("Data terdeteksi untuk motor ELBOW"); nilai_derajat_elbow=nilai_derajat; } else if(header_data=='g'){ Serial.println("Data terdeteksi untuk motor GRIPPER"); nilai_derajat_gripper=nilai_derajat; }

} } }

Program di atas akan menerima data melalui BTSerial.read() yang kemudian untuk masing-masing byte data di uraikan berdasarkan header data dan nilai sudut yang dikirim dari Aplikasi Kontroler Lengan Robot. Jika header data berupa karakter „a‟ maka nilai sudut ditujukan untuk motor servo base. Jika header data berupa karakter „b‟ maka nilai sudut ditujukan untuk motor servo shoulder . Jika header data berupa karakter „c‟ maka nilai sudut ditujukan untuk motor servo elbow. Jika header data berupa karakter „g‟ maka nilai sudut ditujukan untuk motor servo gripper .Setelah data diuraikan, dilakukan penggabungan data dan data ditampilkan melalui serial monitor yang terdapat pada IDE Arduino. Program penerimaan data juga dapat mengatasi pemberian masukan yang terlalu cepat terhadap motor servo. Program akan membuat motor servo tidak terinterupsi oleh perintah selanjutnya sebelum motor servo telah

PLAGIATPLAGIAT MERUPAKAN MERUPAKAN TINDAKAN TINDAKAN TIDAK TIDAK TERPUJI TERPUJI 74 sampai pada derajat yang diinginkan sebelumnya. Hasil dari pengiriman dan penerimaan data Aplikasi Kontroler Lengan Robot ditunjukkan oleh tabel 4.5 di bawah ini. Tabel 4.5 Pengiriman dan penerimaan data.

Pengiriman Aplikasi Arduino Lengan yang Nilai sudut ke (Pengirim) (Penerima) digerakkan (derajat)

1 a45 a45 Base 45 2 a115 a115 Base 115 3 a105 a105 Base 105 4 a60 a60 Base 60 5 a90 a90 Base 90 6 b110 b110 Shoulder 110 7 b45 b45 Shoulder 45 8 b75 b75 Shoulder 75 9 b85 b85 Shoulder 85 10 b90 b90 Shoulder 90 11 c80 c80 Elbow 80 12 c110 c110 Elbow 110 13 c60 c60 Elbow 60 14 c115 c115 Elbow 115 15 c90 c90 Elbow 90 16 g80 g80 Gripper 80 17 g70 g70 Gripper 70 18 g40 g40 Gripper 40 19 g60 g60 Gripper 60 20 g90 g90 Gripper 90

PLAGIATPLAGIAT MERUPAKAN MERUPAKAN TINDAKAN TINDAKAN TIDAK TIDAK TERPUJI TERPUJI 75

Data yang diterima oleh Arduino ditampilkan melalui serial monitor yang ditunjukkan oleh gambar 4.18. di bawah ini.

Gambar 4.18. Tampilan data melalui serial monitor. Dari data percobaan, diketahui bahwa sistem pengiriman dan penerimaan data antara Aplikasi Kontroler Lengan Robot dan Arduino berjalan dengan baik dan mempunyai tingkat keberhasilan 100%. Jika terdapat kesalahan pada pemberian nilai sudut motor servo, maka akan ditampilkan peringatan “Sudut tidak valid” pada serial monitor Arduino. Hal tersebut menandakan bahwa terjadi kesalahan pemberian nilai sudut servo yang tidak sesuai daerah kerja lengan robot. Tampilan peringatan pada serial monitor Arduino ditunjukkan oleh gambar 4.19 berikut ini.

Gambar 4.19. Tampilan kesalahan sudut pada serial monitor. Jarak yang mampu dijangkau oleh modul Bluetooth HC-05 adalah sekitar 15 meter. Setelah jarak melebihi 15 meter, maka Aplikasi Kontroler Lengan Robot tidak mampu memberikan perintah kepada Blutooth HC-05.

PLAGIATPLAGIAT MERUPAKAN MERUPAKAN TINDAKAN TINDAKAN TIDAK TIDAK TERPUJI TERPUJI 76

Jarak yang mampu dijangkau oleh Bluetooth HC-05 ditunjukkan oleh tabel 4.5 sebagai berikut. Proses pengukuran dilakukan ketika modul Bluetooth HC-05 tidak terhalang oleh tembok ataupun benda lainnya. Tabel 4.6. Jarak jangkau Bluetooth HC-05.

Hasil NO Jarak (m) Tidak Diterima Diterima 1 1 √ 2 2 √ 3 3 √ 4 4 √ 5 5 √ 6 6 √ 7 7 √ 8 8 √ 9 9 √ 10 10 √ 11 11 √ 12 12 √ 13 13 √ 14 14 √ 15 15 √ 16 16 √ 17 17 √ 18 18 √

PLAGIATPLAGIAT MERUPAKAN MERUPAKAN TINDAKAN TINDAKAN TIDAK TIDAK TERPUJI TERPUJI

BAB V KESIMPULAN DAN SARAN

5.1 Kesimpulan Dari hasil analisa dan pembahasan kontroler lengan robot berbasis smartphone Android dapat disimpulkan bahwa : 1. Lengan robot memiliki nilai offset sebesar 00-150 antara sudut nyata dan sudut yang dibentuk oleh motor servo. Hal ini dikarenakan pemasangan motor servo tidak tegak lurus terhadap lengan robot. 2. Pada bagian gripper terjadi hysterisys motion yang mengakibatkan gripper tidak dapat membuka dan menutup seperti yang seharusnya. Pemberian batas pada daerah kerja lengan robot berhasil membuat lengan robot bergerak tidak melebihi daerah kerja. 3. Aplikasi Kontroler Lengan Robot dapat digunakan dengan baik dan memiliki tingkat keberhasilan 100% dalam hal komunikasi data yang dikirim. Dengan memanfaatkan data daerah kerja yang dapat dijangkau oleh lengan robot, Aplikasi Kontroler Lengan Robot mampu mengendalikan lengan robot dengan baik. 4. Dari hasil pengamatan didapatkan sebuah rumusan perhitungan untuk menghitung koordinat x dan y yang sesuai dengan desain lengan robot. 5.2 Saran Dari hasil analisa dan pembahasan kontroler lengan robot berbasis smartphone Android, saran untuk penelitian selanjutnya adalah : 1. Desain mekanik pada lengan robot disarankan memiliki akurasi dan presisi yang tinggi. Untuk bagian gripper sebaiknya menggunakan bahan yang keras agar tidak terjadi hysterysis motion. Perlu adanya pra penelitian untuk dapat menggunakan gripper dengan baik terkait desain roda gigi yang akan digunakan. 2. User Interface pada Aplikasi Kontroler Lengan Robot lebih baik menggunakan mode increment dan decrement yang menerapkan fungsi hold atau touch pada Android.

77

PLAGIATPLAGIAT MERUPAKAN MERUPAKAN TINDAKAN TINDAKAN TIDAK TIDAK TERPUJI TERPUJI

DAFTAR PUSTAKA

[1] Juliansah Amar, 2014, Perancangan Sistem Kontrol Robot Pemindah Barang Menggunakan Aplikasi Android Berbasis Arduino Uno, Skripsi Jurusan Sistem Komputer Universitas Raharja, Tangerang. [2] Goranssin Andreas dan Ruiz Cuartielles, 2013, Professional Android Open Accessory Programming with Arduino, John Wiley and Son Inc, Indianapolis. [3] Meier Roto, 2010, Professional Android 2 Application, John Wiley and Son Inc, Indianapolis. [4] Wahana, Komputer, 2010, Cara Mudah Membangun Jaringan Komputer & Internet, Media kita, Jakarta. [5] Meier Roto, 2012, Professional Android 4 Application, John Wiley and Son Inc, Indianapolis. [6] Dwi Agus Diartono, 2009, Teknologi Bluetooth untuk Layananan Internet pada Wireless Local Area Network, Jurnal Teknologi Informasi DINAMIK, Semarang Vol. XIV, pp. 70-78. (Januari 2009). [7] Price Ron, 2007, Fundamental of Wireless Networking, McGraw-Hill Companies Inc, New York, Amerika Serikat. [8] Feri Djuandi, 2011, Pengenalan Arduino.E-book. www.tobuku.com. [9] Datasheet modul Bluetooth HC-05, Guangzhou HC Information Technology Co. [10] Datasheet Micocontroller ATMega 328-P, Atmel. [11] Pitowarno Endra, 2006, Desain, Kontrol, dan Kecerdasan Buatan, Andi Offset, Yogyakarta. [12] www.computacaonaescola.ufsc.br diakses pada tanggal 15 februari 2015 jam 18.35 WIB.

78

PLAGIATPLAGIAT MERUPAKAN MERUPAKAN TINDAKAN TINDAKAN TIDAK TIDAK TERPUJI TERPUJI

LAMPIRAN 1

PLAGIATPLAGIAT MERUPAKAN MERUPAKAN TINDAKAN TINDAKAN TIDAK TIDAK TERPUJI TERPUJI L1

Lampiran Program Java Android Yoel Anggun Wiratama Putra ------package com.yowell.kontrolerlenganrobot; import java.io.IOException; import java.io.OutputStream; import java.lang.reflect.Method; import java.util.ArrayList; import java.util.UUID; import android.app.Activity; import android.app.ProgressDialog; import android.bluetooth.BluetoothAdapter; import android.bluetooth.BluetoothDevice; import android.bluetooth.BluetoothSocket; import android.content.BroadcastReceiver; import android.content.Context; import android.content.DialogInterface; import android.content.Intent; import android.content.IntentFilter; import android.graphics.Color; import android.os.Bundle; import android.util.Log; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.SeekBar; import android.widget.TextView; import android.widget.Toast;

public class MainActivity extends Activity { int progress_value_shoulder; int plus_shoulder; int hasil_progress_value_shoulder; int progress_value_elbow; int plus_elbow; int hasil_progress_value_elbow; int penambah_elbow=30; int penambah_shoulder=30; int progress_value_gripper; int plus_gripper; int hasil_progress_value_gripper; // initialisasi objek interface

int OPEN_BLUETOOTH = 0; private Button enableBT; private Button pairedBT; private Button scanBT; private Button connectBT; private TextView statusEnable; private TextView statusPaired; private TextView statusScan; private TextView statusConnect; private TextView teksBase; private TextView teksShoulder; private TextView teksElbow; private TextView teksGripper;

PLAGIATPLAGIAT MERUPAKAN MERUPAKAN TINDAKAN TINDAKAN TIDAK TIDAK TERPUJI TERPUJI L2

private SeekBar seekBarBase; private SeekBar seekBarShoulder; private SeekBar seekBarElbow; private SeekBar seekBarGripper;

private BluetoothAdapter btAdapter; private ProgressDialog objekProgressDlg; private ArrayList deviceList = new ArrayList(); // private BluetoothDevice device; private BluetoothDevice USD_1146;

private BluetoothSocket mmSocket; private OutputStream mmOutputStream; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main);

enableBT=(Button)findViewById(R.id.button1); scanBT=(Button)findViewById(R.id.button3); pairedBT=(Button)findViewById(R.id.button2); connectBT=(Button)findViewById(R.id.button4);

//teks view statusEnable=(TextView)findViewById(R.id.textView1); statusPaired=(TextView)findViewById(R.id.textView2); statusScan=(TextView)findViewById(R.id.textView3); statusConnect=(TextView)findViewById(R.id.textView4);

btAdapter = BluetoothAdapter.getDefaultAdapter();

enableBT.setOnClickListener(new OnClickListener() {

@Override public void onClick(View arg0) { if (btAdapter.isEnabled()) { btAdapter.disable(); statusOff(); } else if (!btAdapter.isEnabled()) { Intent openBT = new Intent( BluetoothAdapter.ACTION_REQUEST_ENABLE); startActivityForResult(openBT, OPEN_BLUETOOTH);

} else if (btAdapter == null) { showToast("Tidak support Bluetooth"); }

}

});

scanBT.setOnClickListener(new OnClickListener() {

@Override public void onClick(View arg0) { // TODO Auto-generated method stub btAdapter.startDiscovery();

PLAGIATPLAGIAT MERUPAKAN MERUPAKAN TINDAKAN TINDAKAN TIDAK TIDAK TERPUJI TERPUJI L3

objekProgressDlg.show();

} });

pairedBT.setOnClickListener(new OnClickListener() { private String address = "20:14:11:28:24:28"; BluetoothDevice prosesPairing = btAdapter.getRemoteDevice(address);

// Set listPairing=btAdapter.getBondedDevices();

@Override public void onClick(View arg0) {

// if (listPairing.contains(prosesPairing)){

// showToast("USD_115114046 sudah terpaired"); // statusPaired.setText("to USD_115114046"); // } if (prosesPairing.getBondState() == BluetoothDevice.BOND_BONDED) { unpairDevice(prosesPairing); USD_1146 = prosesPairing; } else { pairDevice(prosesPairing); }

} });

connectBT.setOnClickListener(new OnClickListener() {

@Override public void onClick(View arg0) {

try {

openBT(); gerakSeekBar(); //ditambahin nilai yang mengirimkan bahwa plus shoulder dan plus elbow nilai default 90

} catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } }

private void gerakSeekBar() { // TODO Auto-generated method stub

seekBarBase(); seekBarShoulder(); seekBarElbow(); seekBarGripper(); }

});

PLAGIATPLAGIAT MERUPAKAN MERUPAKAN TINDAKAN TINDAKAN TIDAK TIDAK TERPUJI TERPUJI L4

// membuat progress dialog objekProgressDlg = new ProgressDialog(this); objekProgressDlg.setMessage("Mencari perangkat aktif..."); objekProgressDlg.setCancelable(false); objekProgressDlg.setButton(DialogInterface.BUTTON_NEGATIVE, "Cancel", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { dialog.dismiss();

btAdapter.cancelDiscovery(); } });

IntentFilter filter = new IntentFilter(); filter.addAction(BluetoothAdapter.ACTION_DISCOVERY_STARTED); filter.addAction(BluetoothAdapter.ACTION_DISCOVERY_FINISHED); filter.addAction(BluetoothDevice.ACTION_FOUND); filter.addAction(BluetoothAdapter.ACTION_STATE_CHANGED); filter.addAction(BluetoothDevice.ACTION_BOND_STATE_CHANGED);

registerReceiver(Receiver, filter);

if (btAdapter.isEnabled()) { statusOn(); } else { statusOff(); } //ini untuk mengecek saja //plus_shoulder=90; // plus_elbow=90; //seekBarElbow(); //seekBarShoulder();

}

private void seekBarElbow() { seekBarElbow = (SeekBar) findViewById(R.id.seekBar3); seekBarElbow.setMax(25); seekBarElbow.setProgress(0); teksElbow = (TextView) findViewById(R.id.textView15); seekBarElbow .setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {

@Override public void onStopTrackingTouch(SeekBar seekBar) { // TODO Auto-generated method stub Toast.makeText(getBaseContext(), "STOP", Toast.LENGTH_LONG).show(); teksElbow.setText("c" + plus_elbow); String hasil_akhir = ("c" + plus_elbow);

PLAGIATPLAGIAT MERUPAKAN MERUPAKAN TINDAKAN TINDAKAN TIDAK TIDAK TERPUJI TERPUJI L5

// MEMBATASI DAERAH KERJA //nilai minimal elbow masih 30 drajat //hasil modifikasi try { sendData(hasil_akhir); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } @Override public void onStartTrackingTouch(SeekBar seekBar) { // TODO Auto-generated method stub Toast.makeText(getBaseContext(), "START", Toast.LENGTH_LONG).show(); } @Override public void onProgressChanged(SeekBar seekBar, int progress, boolean arg2) { // TODO Auto-generated method stub progress_value_elbow = progress;// ELBOW MINIMAL SUDUT // ADALAH 30 derajat hasil_progress_value_elbow = progress_value_elbow * 5;// UNTUK // MEMBUAT // AKURASI // 5 // DRAJAT plus_elbow = 30+hasil_progress_value_elbow;// HASIL // YANG // TERTAMPIL Toast.makeText(getBaseContext(), "progrees", Toast.LENGTH_LONG).show();

} }); } private void seekBarGripper() { // TODO Auto-generated method stub seekBarGripper = (SeekBar) findViewById(R.id.seekBar4); seekBarGripper.setMax(10); seekBarGripper.setProgress(0); teksGripper = (TextView) findViewById(R.id.textView16); seekBarGripper.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { int progress_value; @Override public void onStopTrackingTouch(SeekBar seekBar) { // TODO Auto-generated method stub

Toast.makeText(getBaseContext(), "STOP", Toast.LENGTH_LONG).show(); teksGripper.setText("g" + plus_gripper); String hasil_akhir = ("g" + plus_gripper); try { sendData(hasil_akhir);

PLAGIATPLAGIAT MERUPAKAN MERUPAKAN TINDAKAN TINDAKAN TIDAK TIDAK TERPUJI TERPUJI L6

} catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } @Override public void onStartTrackingTouch(SeekBar seekBar) { // TODO Auto-generated method stub Toast.makeText(getBaseContext(), "START", Toast.LENGTH_LONG).show(); }

@Override public void onProgressChanged(SeekBar seekBar, int progress, boolean arg2) { // TODO Auto-generated method stub progress_value_gripper = progress; hasil_progress_value_gripper = progress_value_gripper * 5; plus_gripper = 40+hasil_progress_value_gripper; Toast.makeText(getBaseContext(), "progrees", Toast.LENGTH_LONG).show(); } }); }

PLAGIATPLAGIAT MERUPAKAN MERUPAKAN TINDAKAN TINDAKAN TIDAK TIDAK TERPUJI TERPUJI

LAMPIRAN 2

PLAGIATPLAGIAT MERUPAKAN MERUPAKAN TINDAKAN TINDAKAN TIDAK TIDAK TERPUJI TERPUJI L7

Lampiran Program Java Splash Activity Android Yoel Anggun Wiratama Putra ------

package com.yowell.kontrolerlenganrobot; import android.app.Activity; import android.content.Intent; import android.graphics.Color; import android.media.MediaPlayer; import android.os.Bundle; import android.widget.ImageView; import android.widget.TextView; public class Splash_Activity extends Activity{ MediaPlayer Coc; ImageView robot; TextView judul; TextView bawahjudul; TextView bawahjudul1; TextView bawahjudul2; TextView bawahjudul3; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Coc=MediaPlayer.create(Splash_Activity.this, R.raw.coc); Coc.start(); setContentView(R.layout.splash); judul=(TextView)findViewById(R.id.textView3); judul.setTextColor(Color.BLUE); bawahjudul=(TextView)findViewById(R.id.textView1); bawahjudul.setTextColor(Color.BLUE); bawahjudul1=(TextView)findViewById(R.id.textView2); bawahjudul1.setTextColor(Color.BLUE); bawahjudul2=(TextView)findViewById(R.id.textView4); bawahjudul2.setTextColor(Color.BLUE); bawahjudul3=(TextView)findViewById(R.id.textView5); bawahjudul3.setTextColor(Color.BLUE); //robot=(ImageView)findViewById(R.id.imageView1);

Thread th = new Thread(){ public void run(){ try { sleep(5000); }catch (Exception e) { // TODO: handle exception }finally { Intent i = new Intent(Splash_Activity.this, MainActivity.class); startActivity(i);

}

PLAGIATPLAGIAT MERUPAKAN MERUPAKAN TINDAKAN TINDAKAN TIDAK TIDAK TERPUJI TERPUJI L8

} }; th.start(); } protected void onPause(){ super.onPause(); finish(); } }

PLAGIATPLAGIAT MERUPAKAN MERUPAKAN TINDAKAN TINDAKAN TIDAK TIDAK TERPUJI TERPUJI

LAMPIRAN 3

PLAGIATPLAGIAT MERUPAKAN MERUPAKAN TINDAKAN TINDAKAN TIDAK TIDAK TERPUJI TERPUJI L9

Lampiran Program Xml GUI Android Yoel Anggun Wiratama Putra ------