Prototipe robot penjinak bom berbasis raspberry pi dengan kontrol aplikasi IOS jarak jauh melalui jaringan internet

(1)

i

TUGAS AKHIR

PROTOTIPE ROBOT PENJINAK BOM BERBASIS

RASPBERRY PI DENGAN KONTROL APLIKASI

IOS JARAK JAUH MELALUI JARINGAN

INTERNET

Diajukan untuk memenuhi salah satu syarat

memperoleh gelar Sarjana Teknik pada

Program Studi Teknik Elektro

Jurusan Teknik Elektro

Fakultas Sains dan Teknologi Universitas Sanata Dharma

disusun oleh :

EMANUEL TEGAR YUDHA PRASIDHA

NIM : 135114008

JURUSAN TEKNIK ELEKTRO

FAKULTAS SAINS DAN TEKNOLOGI

UNIVERSITAS SANATA DHARMA

YOGYAKARTA


(2)

ii

FINAL PROJECT

THE PROTOTYPE OF BOMB DISPOSAL ROBOT

BASED ON RASPBERRY PI CONTROLLED BY iOS

APPLICATION DISTANCES THROUGH INTERNET

NETWORK

In a partial fulfilment of the requirements

for the degree of

Sarjana Teknik

Department of Electrical Engineering

Faculty of Science and Technology, Sanata Dharma University

by :

EMANUEL TEGAR YUDHA PRASIDHA

NIM : 135114008

DEPARTMENT OF ELECTRICAL ENGINEERING

FACULTY OF SCIENCE AND TECHNOLOGY

SANATA DHARMA UNIVERSITY

YOGYAKARTA


(3)

(4)

(5)

(6)

vi

HALAMAN PERSEMBAHAN DAN MOTTO HIDUP

MOTTO:

Berserahlah Hanya Pada Tuhan, Sebab Dia Yang Selalu

Memberikan Hal Dan Pengalaman Terbaik

Emanuel Tegar Yudha Prasidha

Karya ini kupersembahkan untuk….

Tuhan Yesus Kristus, penuntun dan penyelenggara hidupku

Ibu dan bapakku

Teman-teman

dan seluruh pihak yang telah terlibat dalam penulisan karya ini

dan juga Meysi Pramita yang terkasih


(7)

(8)

viii

INTISARI

Robot penjinak bom yang ada di Indonesia memerlukan pengendali dalam bentuk komputer fisik yang kurang praktis untuk digunakan. Pada saat ini dengan basis Internet of Things (IoT) dari Raspberry Pi robot penjinak bom dapat dikendalikan menggunakan aplikasi iOS melalui jaringan internet.

Prototipe robot penjinak bom berbasis Raspberry Pi dirancang memiliki lengan dengan 3 derajat kebebasan (DOF) dan end of effector (EoE) berupa gripper yang terintegrasi dengan cutter. Untuk dapat menggerakkan lengan maka diperlukan aktuator berupa servo. Prototipe robot penjinak bom memiliki dua penggerak yaitu motor DC yang mampu membuat robot berjalan maju, mundur, berbelok ke kiri, dan berbelok ke kanan. Pada bagian atas EoE juga terdapat webcam, webcam mampu membantu pengelihatan operator robot untuk mengendalikan prototipe robot penjinak bom. Untuk dapat mengendalikan prototipe robot penjinak bom diperlukan aplikasi iOS. Di dalam aplikasi iOS terdapat slider dan tombol untuk mengatur sudut lengan, kecepatan roda, juga terdapat tampilan video dari webcam. Supaya data kendali juga tampilan video dapat saling dikirimkan dari prototipe robot penjinak bom dengan aplikasi iOS maka diperlukan jaringan internet 4G yang terhubung dengan VPN-PPTP sehingga prototipe robot penjinak bom memiliki alamat IP yang tetap.

Hasil akhir dari penulisan ini adalah dihasilkan suatu prototipe robot penjinak bom yang dapat dikendalikan dengan aplikasi iOS jarak jauh melalui jaringan internet. Prototipe robot penjinak bom dapat menjinakkan bom dengan cara memotong kabel dan juga bergerak (maju, mundur, belok kiri, belok kanan) sehingga model bom dapat dipindahkan.


(9)

ix

ABSTRACT

The bomb disposal robot which exist in Indonesia require controllers in the form of physical computers that are less practical to use. At this time with the technology based on Internet of Things (IoT) of Raspberry Pi bomb disposal robot can be controlled using iOS application via internet network.

The prototype of bomb disposal robot based on Raspberry Pi has robotic arm with 3 degrees of freedom (DOF) and end of effector (EoE) gripper that integrated with cutter. The actuator of the robotic arm using servos. The prototype of bomb disposal robot has two DC motors that make the prototype of bomb disposal robot can move forward, backward, turn left, and turn right. In the upper side of EoE there is a webcam that helps the robot’s operator to have vision when controlling the robot. In order to control the prototype of bomb disposal robot require iOS application. iOS application has slider and button that can control the degree of the servo and the speed of robot, and also have the vision from webcam. Data control and webcam vision transferred from or to robot and iOS application uses 4G internet network that connected to VPN-PPTP so the robot has static IP address.

The final result of this writing is to produce a prototype of bomb disposal robot that can be controlled with iOS application remotely through internet network. The prototype of bomb disposal robot can do bomb disposal by cutting wire and lift the bomb model so the bomb model can be moved.

Keywords: Raspberry Pi, VPN-PPTP, iOS, controlling the prototype of bomb disposal robot.


(10)

(11)

xi

DAFTAR ISI

Halaman Sampul (Bahasa Indonesia)….………i

Halaman Sampul (Bahasa Inggris)………ii

Halaman Persetujuan…….………iii

Halaman Pengesahan…………..………iv

Halaman Pernyataan Keaslian Karya ..……….v

Halaman Persembahan dan Motto Hidup ………...………vi

Halaman Pernyataan Persetujuan Publikasi Karya Ilmiah untuk Kepentingan Akademis …………..……….. .vii

Intisari ………...………. .viii

Abstract……….………ix

Kata Pengantar………....………..x

BAB I ... 1

1.1. Judul ... 1

1.2. Latar Belakang ... 1

1.3. Tujuan dan Manfaat ... 3

1.4. Batasan Masalah ... 3

1.5. Metodologi Penelitian ... 4

BAB II ... 5

2.1. Robot ... 5

2.2. Raspberry Pi ... 5

2.2.1. Bahasa Pemrograman Python ... 6

2.2.2. PWM (Pulse Width Modulation) ... 6

2.2.3. Motion ... 7

2.3. iOS ... 7

2.3.1. Bahasa Pemrograman Objective-C ... 8

2.4. UDP (User Datagram Protocol) ... 8

2.5. Port Forwarding ... 8

2.6. Motor DC ... 9

2.6.1. Modul Driver Motor Monster Moto Shield VNH2SP30 ... 11

2.7. Servo ... 11

2.7.1. Torsi ... 12

2.8. Modem 4G ZTE MF90 ... 13

2.9. WebCam ... 14

2.10. Logic Level Converter ... 15

2.11. Lengan Robot ... 15

BAB III ... 16


(12)

xii

3.1.1. Perancangan Lengan Robot ... 17

3.1.2. Desain Prototipe ... 19

3.1.3. Skematik Hardware ... 21

3.2. Perancangan Software ... 23

3.2.1. Program MotorPi ... 24

3.2.2. Program Remote pada iOS ... 26

3.2.3. Penggunaan Motion ... 28

3.2.4. Pengiriman IP Publik ... 29

BAB IV HASIL DAN PEMBAHASAN ... 30

4.1. Hasil Implementasi ... 30

4.2. Hasil Perancangan Hardware ... 32

4.3. Hasil Perancangan Software ... 35

4.4. Pengujian Hardware dan Software ... 36

4.4.1. Penggunaan Aplikasi heyGar untuk Mengendalikan MotorPi ... 36

4.4.2. Pengujian Motor DC ... 39

4.4.3. Pengujian Servo ... 40

4.4.4. Pengujian Pemotongan Kabel dan Pengangkatan Model Bom Gabus ... 44

4.4.5. Pengujian Aplikasi heyGar ... 45

4.4.6. Penggunaan Motion pada Raspberry Pi ... 50

4.4.7. Penggunaan VPN-PPTP ... 51

4.4.8. Pengiriman Data ... 54

4.4.9. Pembatalan Penggunaan Logic Level Converter (LLC) ... 60

BAB V ... 62

5.1. Kesimpulan ... 62

5.2. Saran ... 62

DAFTAR PUSTAKA ... 64


(13)

xiii

DAFTAR GAMBAR

Gambar 2.1. Robot Penjinak Bom milik Royal Logistics Corps[8] …...………. 5

Gambar 2.2. Raspberry Pi 2 Model B………... 5

Gambar 2.3. iPhone 6 dengan sistem operasi iOS 9 [14]………...……. 7

Gambar 2.4. Port Forwarding pada Router…………..………... 8

Gambar 2.5. Motor DC [19]……… 9

Gambar 2.6. Aturan Tangan Kiri………. 9

Gambar 2.7. Prinsip Kerja Motor DC……….. 10

Gambar 2.8. Modul Driver Motor Monster Moto Shield VNH2SP30 11………….. 11

Gambar 2.9. Variasi Lebar Pulsa PWM………... 11

Gambar 2.10. Servo Feetech FT5316M………... 12

Gambar 2.11. Lengan dan Torsi yang dibutuhkan [26]………... 13

Gambar 2.12. Modem 4G ZTE MF90………. 13

Gambar 2.13 WebCam dengan Penerangan 6 LED [31]……… 14

Gambar 2.14. Modul Logic Level Converter [34]……….. 15

Gambar 2.15. Sistem Kontrol Terbuka……… 15

Gambar 3.1. Pemodelan Sistem………... 16

Gambar 3.2. Skema Lengan Robot……….. 17

Gambar 3.3. Torsi pada Setiap Servo……….. 17

Gambar 3.4. Skema EOE………. 19

Gambar 3.4. Desain Prototipe Tampak Samping Kanan………. 19

Gambar 3.6. Desain Prototipe Tampak Samping Kiri………. 20

Gambar 3.7. Desain Prototipe Tampak Depan……… 20

Gambar 3.8. Desain Prototipe Tampak Atas……… 20

Gambar 3.9. Skematik Pemasangan Kabel Motor DC………. 22

Gambar 3.10. Skematik Pemasangan Kabel Servo……….. 23

Gambar 3.11. Diagram Alir Program secara Umum………... 24

Gambar 3.12. Diagram Alir MotorPi……….. 25

Gambar 3.13. Diagram Alir Sub-Routine Mode Bergerak……….. 25

Gambar 3.14. Diagram Alir Sub-Routine Mode Lengan ……… 26

Gambar 3.15. Diagram Alir heyGar……… 26

Gambar 3.16. Tampilan Aplikasi………. 27

Gambar 3.17. Tampilan Settings………...……… 27

Gambar 3.18. Tampilan Mode Lengan……… 28

Gambar 3.19. Diagram Alir Pengiriman IP Publik……….. 29

Gambar 4.1. Foto MotorPi saat Mode Bergerak (kiri) dan saat Mode Lengan (kanan)………. 30

Gambar 4.2. Tampilan Antarmuka Aplikasi heyGar saat Mode Bergerak (atas) dan saat Mode Lengan (bawah)……….. 31

Gambar 4.3. Wiring modul VNH2SP30 dengan Raspberry Pi……… 32

Gambar 4.4. Wiring Servo dengan Raspberry Pi………. 33

Gambar 4.5. Pemasangan USB Modem 4G dan WebCam……….. 34

Gambar 4.6. Pemasangan Servo pada Lengan Robot……….. 34

Gambar 4.7. Penggunaan Tali untuk Menggerakkan Lengan Robot………... 35

Gambar 4.8. EoE pemotong kabel posisi terbuka (kiri) dan posisi menutup (kanan). 35 Gambar 4.9 Tangkapan Layar Data yang Diterima oleh MotorPi………... 35 Gambar 4.10. Tampilan Antarmuka heyGar sebelum dihubungkan dengan MotorPi Gambar 4.11. Tampilan Setting heyGar………..

36 37


(14)

xiv

Gambar 4.12. Tampilan Mode Lengan………... 39

Gambar 4.13. Sinyal PWM Pengoperasian Motor DC……… 39

Gambar 4.14. Sinyal PWM Pengoperasian servo S1 pada Sudut Sekitar 135°……... 40

Gambar 4.15. Sinyal PWM yang kurang baik 41 Gambar 4.16. Selisih sudut servo S1 yang diatur 180°... Gambar 4.17. Selisih sudut servo S2 yang diatur 45°... Gambar 4.18. Sudut servo S3 pada pengaturan 90°... 42 42 43 Gambar 4.19. File program pada aplikai heyGar………. 45

Gambar 4.20. Penyimpanan data dari UITextField………. 46

Gambar 4.21. Data IP dan port yang digunakan saat program heyGar dibuka……... 46

Gambar 4.22. Listing Program heyGar untuk mengakses gambar bergerak dari MotorPi……… 47

Gambar 4.23. Pengiriman data nilai slider……….. 47

Gambar 4.24. Pengiriman data servo dan mode……….. 47

Gambar 4.25. Pengiriman data servo dan mode (lanjutan)……….. 48

Gambar 4.26. Pembatasan gerak servo……… 48

Gambar 4.27. Listening ke Port UDP 2695………. 48

Gambar 4.28. Pemisahan data yang diterima MotorPi……… 49

Gambar 4.29. Fungsi pembangkitan PWM untuk mengatur motor DC……….. 49

Gambar 4.30. Fungsi pembangkitan PWM untuk mengatur sudut servo S1……….. 49

Gambar 4.31. Video Motion 51 Gambar 4.32. File hasil konfigurasi VPN-PPTP………. 52

Gambar 4.33. Respon VPN-PPTP………... 52

Gambar 4.34. Diagram Alir Pengecekan IP Lokal dan IP Publik MotorPi…………. 53


(15)

xv

DAFTAR TABEL

Tabel 1.1. Spesifikasi Morolipi V1[5]………. 1

Tabel 2.1. Spesifikasi Raspberry Pi 2 Model B [9]……….. 5

Tabel 2.2. Spesifikasi Rover 5 [21]……….. 10

Tabel 2.3. Spesifikasi Servo Feetech FT5316M [24]……….. 12

Tabel 2.4. Spesifikasi Modem 4G ZTE MF90 [28]………. 13

Tabel 2.5. Spesifikasi WebCam M-Tech Box 6-LED [32]………. 14

Tabel 3.1. Rancangan Perhitungan Torsi Minimum……… 18

Tabel 3.2. Kekuatan Servo……….. 18

Tabel 3.3. Servo Tiap Sendi dan pada EoE………. 19

Tabel 3.4. Spesifikasi Prototipe Robot Penjinak Bom………. 21

Tabel 3.5. Pemasangan Kabel Motor DC………. 21

Tabel 3.6. Pemasangan Kabel Servo……… 22

Tabel 4.1. Keterangan untuk Wiring Driver Motor VNH2SP30………. 32

Tabel 4.2. Kondisi Enable untuk Mengatur Putaran Motor……… 33

Tabel 4.3. Keterangan untuk Wiring Servo………. 33

Tabel 4.4. Keterangan untuk WIring Servo (lanjutan)………. 34

Tabel 4.5. Data String Perintah heyGar ke MotorPi……… 36

Tabel 4.6. Data Mode pada heyGar………. 36

Tabel 4.7. Pengujian kecepatan maksimal MotorPi……… 37

Tabel 4.8. Interval waktu pemotongan kabel……….. 38

Tabel 4.9. Konfigurasi Motion pada Raspberry Pi………. 44

Tabel 4.10. Pengiriman Data dengan Interval 5 Detik……… 46

Tabel 4.11. Pengiriman Data dengan Interval 10 Detik……….. 46

Tabel 4.12. Pengiriman Data dengan Interval 30 Detik……….. 48 Tabel 4.13. Berat masing-masing bagian lengan (termasuk kabel dan webcam) 53


(16)

1

BAB I

PENDAHULUAN

1.1.

Judul

Prototipe Robot Penjinak Bom Berbasis Raspberry Pi dengan Kontrol Aplikasi iOS Jarak Jauh Melalui Jaringan Internet.

1.2.

Latar Belakang

Berbagai kebutuhan serta keperluan masyarakat saat ini dapat dijumpai dengan mudah di berbagai pusat perbelanjaan. Pusat perbelanjaan mulai dari pasar tradisional hingga pasar modern menyediakan apa yang masyarakat butuhkan. Mall-mall sudah menjamur di berbagai kota yang ada di Indonesia. Ratusan mall yang tersebar di Pulau Jawa menawarkan fitur menarik sehingga banyak masyarakat yang datang untuk menjajakan uangnya demi kebutuhan yang dimiliki. Mall menjadi pusat keramaian masyarakat, sehingga dimana ada mall disana pula keramaian terjadi.

Keramaian masyarakat yang berkumpul terkadang menjadi keuntungan bagi sekelompok atau seorang oknum untuk memberi teror. Teror yang dilakukan sangat kejam yaitu dengan adanya peledakan-peledakan bom di mall-mall. Saat ini terjadi pergeseran sasaran peledakan bom yang sebelumnya adalah pos-pos keamanan, kini tempat keramaian masyarakat yang menjadi tujuan utama peledakan bom[1]. Bom yang diledakkan biasanya merupakan bom rakitan yang dirakit sendiri oleh oknum. Bom rakitan dengan bahan peledak Triacepton Triperoxide (TATP) memiliki kecepatan membakar 5.400 meter per detik, sehingga dapat dengan cepat memberikan kerusakan di area sekitar bom[2].

Indonesia memiliki satuan tim penjinak bom yang mampu menemukan dan menjinakkan bom. Satuan Gegana merupakan bagian dari Polri yang tergabung dalam Brigade Mobil (Brimob) yang memiliki kemampuan khusus seperti anti teror, penjinakan bom, intelijen, anti anarkis, dan penanganan KBR (Kimia, Biologi, Radio aktif)[3]. Seorang penjinak bom dengan menggunakan baju anti bom akan mendekat kemudian memeriksa bom yang ada di suatu lokasi. Bahaya senantiasa mengintai karena bom dapat meledak sewaktu-waktu. mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm


(17)

Meledaknya bom dapat dicegah dengan adanya proses penjinakan bom. Penjinakan bom adalah tindakan yang dilakukan supaya bom tidak berfungsi dan aman. Penjinakan bom dilakukan dengan sistem remote, semi remote, atau manual. Penjinakan dengan sistem remote merupakan proses penjinakan bom menggunakan robot[4].

Robot penjinak bom mampu dikendalikan dari jarak jauh sehingga risiko terjadinya kecelakaan saat menjinakkan bom, yaitu saat bom meledak tiba-tiba dapat dihindari. Penjinakan bom oleh operator paling aman dilakukan sejauh mungkin dari bom yang akan dijinakkan. Robot penjinak bom dikendalikan dengan perangkat remote yang terdiri dari komputer, joystick, potensiometer, serta layar yang mampu menampilkan gambar yang dikirim oleh robot penjinak bom. Robot penjinak bom dari Lembaga Ilmu Pengetahuan Indonesia (LIPI) yaitu Morolipi dikendalikan dengan komputer menggunakan tampilan antarmuka Visual Basic. Tabel 1.1. berikut ini adalah tabel spesifikasi Morolipi V1

Tabel 1.1. Spesifikasi Morolipi V1[5].

Spesifikasi Satuan

PxLxT 1050x920x1200 mm

Berat Kotor 190 kg

Daya Angkut 100 kg

Daya Angkat 5 kg

Sistem Penggerak 4 – roda 2-track / FIX Ketinggian Maksimum Manipulator 1500 mm

Manipulator 5 DOF

End Effector Wire Cutter

Kecepatan Maksimum 2 km/h

Penggunaan komputer beserta perlengkapan pendukung pada remote memerlukan ruang tersendiri untuk meletakkan alat, sehingga diperlukan waktu untuk mempersiapkan remote agar dapat digunakan. Selain itu, remote yang akan digunakan menjadi lebih mahal karena menggunakan PC.

Raspberry Pi mampu meningkatkan kemudahan dalam pengoperasian robot penjinak bom. Robot penjinak bom dapat bekerja dengan cara dikendalikan menggunakan perangkat yang sudah ada dan lebih praktis yaitu perangkat smartphone. Dengan aplikasi

remote maka gambar yang dikirimkan oleh robot penjinak bom dapat dilihat, selain itu, joystick, serta tombol pengaturan robot juga dapat dioperasikan secara langsung dari


(18)

smartphone. Semua fungsi dari remote konvensional dapat digantikan dengan kemudahan menggunakan smartphone.

Dengan adanya jaringan internet di setiap mall yang ada di Indonesia maka robot penjinak bom dapat dikendalikan menggunakan aplikasi smartphone dari jarak berapa saja selama masih tercakup oleh jaringan internet. Pengendalian robot menggunakan smartphone juga meningkatkan tingkat kerahasiaan anggota penjinak bom karena seorang penjinak bom akan terlihat seperti memainkan smartphone seperti sedang bermain game.

1.3.

Tujuan dan Manfaat

Penulisan ini memiliki tujuan untuk menghasilkan prototipe robot penjinak bom berbasis Raspberry Pi yang mampu dikendalikan pada jarak jauh menggunakan aplikasi smartphone dengan sistem operasi iOS.

Manfaat dari penulisan ini adalah:

1. Mengetahui cara kerja dari prototipe yang dibuat.

2. Menjadi acuan untuk pembuatan robot penjinak bom berbasis Raspberry Pi dengan fitur yang lebih banyak.

3. Menjadi bahan pertimbangan untuk pengembangan robot penjinak bom berbasis Raspberry Pi.

1.4.

Batasan Masalah

Pada penulisan ini, penulis memberikan batasan sebagai berikut:

a. Remote pada robot merupakan aplikasi dengan bahasa pemrograman Objective-C yang berjalan pada sistem operasi iOS.

b. Aplikasi remote mampu menampilkan tampilan video dari prototipe robot penjinak bom, juga mampu mengirim kendali roda robot serta lengan robot yang memiliki tiga derajat kebebasan (3DOF).

c. Tampilan video dari prototipe robot dihasilkan oleh WebCam dengan kualitas 640x480 piksel.

d. Prototipe robot dikendalikan melalui jaringan internet 4G.

e. Prototipe robot merupakan perangkat yang diatur oleh komputer mini Raspberry Pi 2 Model B dengan bahasa pemrograman Python.

f. Prototipe robot mampu mengangkat model bom dari gabus serta mampu memotong kabel berdiameter 1mm.


(19)

1.5.

Metodologi Penelitian

Penelitian ini dilakukan dengan langkah-langkah sebagai berikut:

a. Mencari teori mengenai robot, Raspberry Pi, servo, motor DC, aplikasi iOS, jaringan internet, serta bagaimana komunikasi antara aplikasi iOS dengan Raspberry Pi dapat dilakukan.

b. Merancang prototipe robot penjinak bom serta merancang aplikasi iOS. c. Melakukan pengujian terhadap prototipe yang dibuat.


(20)

5

BAB II

DASAR TEORI

2.1.

Robot

Robot berasal dari bahasa Ceko “robota” yang artinya pekerja [6]. Robot merupakan sistem yang terdiri dari sensor, pengendali, aktuator, power supply, serta program yang mampu digunakan untuk membantu menyelesaikan permasalahan manusia [7]. Robot dapat diprogram untuk melakukan suatu tindakan atau dapat juga diprogram untuk mengikuti suatu perintah. Salah satu contoh robot yaitu robot penjinak bom seperti pada Gambar 2.1.

Gambar 2.1 Robot Penjinak Bom milik Royal Logistics Corps[8].

2.2.

Raspberry Pi

Raspberry Pi merupakan komputer dengan ukuran sebesar kartu kredit yang mampu digunakan untuk proyek elektronik dan untuk berbagai keperluan yang dapat dilakukan oleh desktop PC, seperti pengolah angka, pengolah kata, browsing, bermain game, dan multimedia. Gambar 2.2. merupakan foto dari Raspberry Pi 2 Model B.


(21)

Raspberry Pi menggunakan bahasa pemrograman yang utama yaitu bahasa Python. Tabel 2.1. berikut ini adalah spesifikasi Raspberry Pi 2 Model B.

Tabel 2.1. Spesifikasi Raspberry Pi 2 Model B [9].

Prosesor Broadcom BCM2837 Arm7 Quad Core 900 MHz

RAM 1 GB

Pin 40 pin GPIO

USB 4 USB (2xUSB 2 port)

Kamera CSI camera port

2.2.1.

Bahasa Pemrograman Python

Python adalah bahasa pemrograman tingkat tinggi (high level language). Python sangat cocok digunakan dalam membuat program dengan komputer Raspberry Pi (kompatibel). Python mampu digunakan untuk membuat program standalone [10].

Python dapat pula digunakan untuk berkomunikasi melalui suatu jaringan internet yaitu menggunakan fitur Python Socket Programming. Socket Programming secara sederhana yaitu mampu melakukan komunikasi antara client dan server. Selain client dan server penggunaan Python untuk melakukan pengiriman email (pesan elektronis) dapat dilakukan dengan fitur subprocess, smtplib, dan email. Pada penulisan proposal ini, fungsi email digunakan untuk mengirim alamat IP dari prototipe ke remote.

Penggunaan Socket Programming dapat dilakukan dengan memanggil fasilitas Protocol dari twisted.interternet.protocol dan fasilitas reactor dari twisted.internet. Socket Programming akan membutuhkan port yang akan digunakan sebagai alamat program yang berjalan pada suatu alamat IP.

2.2.2.

PWM (Pulse Width Modulation)

Sejumlah 40 pin GPIO pada Raspberry Pi 2 Model B dapat digunakan untuk membangkitkan sinyal-sinyal PWM. Sinyal PWM yang dihasilkan oleh Raspberry Pi mampu digunakan untuk mengatur sudut rotor dari motor servo serta mampu digunakan untuk mengatur kecepatan putaran motor DC. Kemampuan sinyal PWM untuk mengatur sudut serta kecepatan suatu aktuator dapat dilakukan dengan mengubah Duty Cycle dari PWM yang dihasilkan.

Duty Cycle merupakan persen waktu suatu sinyal untuk berada pada kondisi high atau ON dalam satu periode [11]. PWM pada Raspberry Pi dapat diubah dengan mengganti


(22)

duty cycle dari nilai 0 hingga 100. Apabila duty cycle bernilai 0 maka sinyal PWM akan menghasilkan 0% waktu high atau ON. Apabila duty cycle bernilai 50 maka sinyal PWM akan menghasilkan 50% waktu high atau ON. Jika diinginkan PWM menghasilkan waktu ON selamanya maka duty cycle diatur pada nilai 100.

2.2.3.

Motion

Motion merupakan program yang mampu digunakan untuk melakukan binding WebCam ke suatu alamat IP. Jika suatu WebCam terpasang pada port USB Raspberry Pi, maka WebCam dapat diakses menggunakan alamat IP Raspberry Pi dengan port IP yang telah diatur sebelumnya. Motion mampu memonitor sinyal video dari WebCam yang terpasang pada Raspberry Pi [12].

2.3.

iOS

iOS adalah sistem operasi mobile yang dikembangkan oleh Apple. iOS saat ini berjalan pada iPhone, iPod touch, dan iPad. iOS memiliki beberapa versi yang dikembangkan sejak awal. Pada tahun 2016, Apple telah mengembangkan iOS hingga versi iOS 10.

Seperti sistem operasi desktop modern, iOS menggunakan antarmuka pengguna grafis, atau GUI. Namun, karena merupakan sistem operasi mobile, iOS dirancang untuk input touchscreen, bukan keyboard dan mouse.

Sejak semula, iOS dirancang sangat sederhana dan mudah digunakan, sehingga tidak memiliki beberapa fitur seperti pada sistem operasi lainnya, yaitu tidak dapat mengatur file dan folder seperti pada Mac OS X atau Windows. iOS mampu menjalankan beberapa aplikasi sekaligus (multitasking) [13].

Gambar 2.3 iPhone 6 dengan sistem operasi iOS 9 [14].

Aplikasi yang berjalan pada sistem operasi iOS dapat dibangun menggunakan bahasa pemrograman Objective-C. Salah satu perangkat yang memiliki sistem operasi iOS adalah iPhone 6 seperti pada Gambar 2.3.


(23)

2.3.1.

Bahasa Pemrograman Objective-C

Objective-C adalah bahasa pemrograman utama yang digunakan saat menulis perangkat lunak untuk OS X dan iOS. Objective-C adalah superset dari bahasa pemrograman C dan menyediakan kemampuan berorientasi objek. Objective-C mewarisi sintak, tipe primitif, dan flow Objective-C dan menambahkan sintak untuk mendefinisikan kelas dan metode [15].

Untuk membuat aplikasi Objective-C diperlukan perangkat lunak X-Code yang dapat diunduh secara gratis melalui App Store.

2.4.

UDP (User Datagram Protocol)

Raspberry Pi dapat berkomunikasi dengan iOS menggunakan suatu protokol jaringan User Datagram Protocol. User Datagram Protocol (UDP) merupakan protokol internet yang mengutamakan kecepatan data. Protokol ini biasanya digunakan untuk streaming video ataupun fasilitas real-time yang lain. Oleh karena itu pada UDP tidak memerlukan adanya setup koneksi terlebih dahulu karena hal tersebut dapat menyebabkan adanya tambahan delay [16].

2.5.

Port Forwarding

Port forwarding adalah metode yang digunakan oleh komputer pada jaringan agar dapat diakses oleh komputer melalui internet (diluar jaringan lokal). Biasanya digunakan untung hosting game servers, pengunduhan peer to peer, dan aplikasi VoIP atau video call.

Gambar 2.4 Port Forwarding pada Router.

Port forwarding dapat dilakukan dengan cara mengatur suatu modem atau router pada bagian menu port forward, kemudian isi kolom port tujuan dengan port yang akan bekerja[17]. Suatu alat yang telah diatur untuk melakukan port forwarding dapat diakses


(24)

melalui internet dengan menggunakan alamat IP yang dapat diakses oleh semua orang atau IP Publik. Gambar 2.4. merupakan gambaran mengenai port (80 dan 8080) yang mengalami proses port forwarding melalui jaringan internet ke perangkat komputer.

2.6.

Motor DC

Motor DC merupakan motor yang ditenagai oleh arus listrik searah (DC), Gambar 2.5. merupakan salah satu contoh motor DC. Kelebihan motor DC adalah dapat diatur kecepatan putarannya dengan cara mengubah tegangan masukan. Semakin besar tegangan masukan maka semakin cepat pula putaran motor DC [18].

Gambar 2.5 Motor DC [19].

Rotor pada motor DC dapat berputar karena adanya medan magnet. Medan magnet dapat terjadi akibat adanya magnet tetap atau arus listrik yang mengalir pada suatu konduktor, misalnya kawat tembaga. Arus listrik pada kawat tembaga yang memotong secara tegak lurus suatu medan magnet akan menghasilkan suatu gaya gerak. Prinsip medan magnet dijelaskan oleh Fleming menggunakan aturan tangan kiri.

Gambar 2.6 Aturan Tangan Kiri.

Gambar 2.6. menjelaskan bagaimana suatu gaya gerak dapat terjadi pada motor DC. Arah arus digambarkan sebagai jari tengah, arah medan magnet digambarkan dengan jari telunjuk, dan arah gaya gerak digambarkan dengan ibu jari.


(25)

Gambar 2.7 Prinsip Kerja Motor DC

Sesuai dengan Gambar 2.7 torsi yang dihasilkan oleh motor DC berbanding lurus dengan arus yang diberikan[20], untuk lebih jelasnya lagi tentang nilai torsi yang dihasilkan dapat dilihat pada Persamaan 2.1.

! = #. %. &. '()* (2.1)

dengan: ! = torsi

B = medan magnet I = arus listrik

L = panjang kawat yang terpapar medan magnet

ɑ = Sudut yang terbentuk antara arah medan magnet dengan kawat

Salah satu contoh motor DC adalah TFK280SC-21138-45 yang terpasang pada casis robot Rover 5. Tabel 2.2. berikut adalah spesifikasi dari Rover 5:

Tabel 2.2 Spesifikasi Rover 5 [21].

Parameter Spesifikasi

Rated Voltage 7.2 volt DC Arus maksimal 2.5 A Torsi maksimum 10 kgf.cm Kecepatan linear 1 km/jam

Pengoperasian motor DC dapat dilakukan menggunakan Raspberry Pi, namun diperlukan perangkat tambahan supaya motor DC memperoleh arus listrik yang cukup, yaitu dengan menggunakan driver motor.


(26)

2.6.1.

Modul Driver Motor Monster Moto Shield VNH2SP30

Gambar 2.8 Modul Driver Motor Monster Moto Shield VNH2SP30.

Modul Driver Monster Moto Shield VNH2SP30 (Gambar 2.8) mampu mengendalikan motor DC dengan total arus maksimum hingga 30A. Modul Driver Monster Moto Shield VNH2SP30 dapat digunakan untuk mengendalikan 2 motor DC sekaligus. Modul menggunakan IC VNH2SP30 yang merupakan driver motor full-bridge. Modul Driver Monster Moto Shield VNH2SP30 mampu menangani tegangan DC hingga 16 volt [22].

2.7.

Servo

Servo merupakan motor DC yang mampu mengetahui posisi rotor saat sedang beroperasi, hal ini dapat terjadi karena adanya potensiometer yang menjadi sensor umpan balik dari servo. Servo memiliki rangkaian elektronik yang dapat bekerja mengatur sudut rotor berdasarkan sinyal (PWM) yang diberikan.

Keunggulan servo adalah:

1. Tidak bergetar dan tidak berresonansi saat beroperasi.

2. Daya yang dihasilkan sebanding dengan ukuran dan berat motor. 3. Penggunaan arus listrik sebanding dengan beban yang diberikan.

Supaya dapat beroperasi, servo membutuhkan sumber tegangan dan PWM. Sumber tegangan yang dibutuhkan servo bergantung pada spesifikasi servo, sedangkan untuk mengatur sudut rotor dibutuhkan PWM dengan frekuensi 50 Hz atau periode 20ms dan dengan duty cycle yang bervariasi.


(27)

Untuk lebih jelasnya dalam mengatur sudut rotor servo dapat diberikan PWM seperti pada Gambar 2.9 Agar rotor berputar 90° diperlukan lebar pulsa dengan ton duty cycle 1.5ms, agar rotor berputar 180° diperlukan lebar pulsa dengan tonduty cycle 2ms, sedangkan untuk sudut putar 0° diperlukan lebar pulsa dengan ton duty cycle 1ms [23].

Gambar 2.10 Servo Feetech FT5316M

Salah satu contoh servo adalah Servo Feetech FT5316M (Gambar 2.10). Servo yang digunakan harus sesuai dengan torsi yang dibutuhkan. Torsi yang dihasilkan suatu servo akan bermacam-macam sesuai dengan tipe servo. Servo Feetech FT5316M memiliki spesifikasi seperti pada Tabel 2.3.

Tabel 2.3. Spesifikasi Servo Feetech FT5316M [24].

Dimensi (PxLxT) 40.5x20.2x38 mm

Bobot 56 gram

Kecepatan rotasi 0.16 detik/60 derajat

Torsi 15.5 kgf.cm

Tegangan kerja 4.8-6 volt

Sudut kerja 180°

Periode PWM 500-2500 µs

2.7.1.

Torsi

Motor servo memiliki batasan torsi yang dapat ditangani. Torsi atau momen gaya merupakan besaran vektor yang merupakan hasil perkalian antara gaya (F) dengan panjang lengan (r). Untuk menghitung torsi dapat dengan cara berikut:

! = +. , (2.2) Apabila terbentuk suatu sudut antara r dan F maka perhitungan torsi adalah:

! = +. ,. sin (2) (2.3) Dari persamaan 2.3, apabila gaya yang diberikan membentuk sudut 2 = 90°, maka torsi yang diberikan akan maksimal [25].


(28)

dari hasil nilai persamaan 2.3. Pada Gambar 2.11 berikut dapat terlihat besarnya torsi yang diperlukan dalam suatu lengan.

Gambar 2.11 Lengan dan Torsi yang dibutuhkan [26]

Dari Gambar 2.11 dapat dilihat bahwa pada lengan yang sama dengan jarak kerja 1m dihasilkan torsi 20N sedangkan pada jarak kerja lengan 2m dihasilkan torsi 10N. Nilai torsi akan semakin mengecil seiring dengan bertambahnya jarak kerja lengan.

2.8.

Modem 4G ZTE MF90

Modem adalah perangkat keras yang mampu menghubungkan suatu komputer dengan jaringan broadband. Adanya modem mengakibatkan suatu komputer dapat mengirim dan menerima data melalui jaringan internet[27]. ZTE MF90 (Gambar 2.12.) merupakan modem 4G yang memiliki spesifikasi sebagai berikut:

Tabel 2.4 Spesifikasi Modem 4G ZTE MF90 [28]. Kompatibilitas Jaringan LTE-FDD 800/1800/2600 MHz

GSM/GPRS/EDGE 900/1800 MHz

Kecepatan Transfer Data LTE-FDD: DL/UL 100/50Mbps (Category3) LTE-TDD:DL/UL 68/17Mbps (Category3) DC-HSPA+: DL/UL 42/5.76Mbps


(29)

Modem 4G ZTE MF90 kompatibel dengan Raspberry Pi, sehingga dapat memberikan koneksi internet untuk melakukan komunikasi dengan aplikasi iOS (remote).

Modem 4G ZTE MF90 memerlukan kabel USB micro to USB supaya dapat terhubung melalui port USB yang ada pada Raspberry Pi.

2.9.

WebCam

WebCam merupakan singkatan dari Web Camera yang merupakan suatu kamera digital yang terhubung dengan komputer. WebCam mampu mengirimkan gambar gerak atau video langsung dari satu lokasi ke lokasi lain menggunakan jaringan internet [29].

Tidak seperti kamera digital pada umumnya, suatu WebCam tidak memiliki media penyimpanan internal, komputer yang terhubung WebCam akan menjadi media

penyimpanan. Apabila WebCam terhubung dengan internet, maka setiap orang dibelahan dunia manapun dapat melihat tampilan yang dihasilkan oleh WebCam dan dapat menyimpan tampilan dalam format gambar ataupun video [30].

Gambar 2.13 WebCam dengan Penerangan 6 LED[31].

Salah satu contoh dari WebCam adalah WebCam M-Tech Box 6-LED (Gambar 2.12). WebCam M-Tech Box 6-LED memiliki spesifikasi seperti pada Tabel 2.5.

Tabel 2.5 Spesifikasi WebCam M-Tech Box 6-LED[32]. Komunikasi dengan PC USB 2.0

Tipe sensor CMOS, VGA (640x480 pixels)

Frame rate 15 fps

Pengaturan Gambar Otomatis (warna dan kecerahan)

Dimensi 32(p)x76.8(l)x59(t) mm


(30)

2.10.

Logic Level Converter

Logic Level Converter (LLC) adalah perangkat kecil yang menyediakan antarmuka dua arah antara dua perangkat dengan perbedaan tegangan kerja[33]. LLC mampu

melakukan step-up dan step-down tegangan pada waktu yang bersamaan, misalnya mengubah 3.3 volt menjadi 5 volt, dan mengubah 5 volt menjadi 3.3 volt. Gambar 2.14. berikut ini adalah gambar dari LLC.

Gambar 2.14 Modul Logic Level Converter[34].

2.11.

Lengan Robot

Lengan robot merupakan suatu lengan buatan yang dapat digunakan untuk menggantikan fungsi lengan manusia. Lengan robot umumnya terdiri dari link, joint (sendi), dan end of effector (bisa dalam bentuk penjepit, pemotong, atau pengebor). Untuk menggerakkan tiap link diperlukan pengubahan sudut sendi[35]. Pada Gambar 2.1 yang merupakan robot penjinak bom, terdapat lengan robot dengan end of effector berjenis gripper.

Gambar 2.15 Sistem Kontrol Terbuka

Sendi pada lengan robot dapat menggunakan servo. Pengaturan servo dapat dilakukan menggunakan sistem kontrol terbuka (open loop system). Sistem kontrol terbuka merupakan suatu sistem yang tidak dipengaruhi oleh hasil keluaran sistem[36]. Servo yang berada dipasaran seperti Feetech FT5316M merupakan servo dengan sistem kontrol tertutup, sehingga apabila diberikan sinyal untuk suatu sudut tertentu maka rotor pada servo akan bergerak mempertahankan sudut yang diberikan. Penggunaan Feetech FT5316M pada lengan robot akan memudahkan pengendalian lengan robot dengan sistem kontrol terbuka. Gambar 2.15. merupakan skema sistem kontrol terbuka.


(31)

16

BAB III

RANCANGAN PENELITIAN

3.1.

Perancangan Hardware

Gambar 3.1. Pemodelan Sistem.

Berdasarkan Gambar 3.1. sistematika kerja secara keseluruhan adalah sebagai berikut. Pada saat Prototipe dihidupkan maka beberapa detik kemudian akan segera tersambung dengan internet menggunakan Modem 4G. Secara otomatis Prototipe akan mengaktifkan port yang berfungsi untuk pengendalian gerak serta pengendalian lengan robot, port pengendalian menggunakan port 2695. Selain pengendalian, prototipe juga akan mengaktifkan WebCam yang kemudian akan ditampilkan pada port yang telah disediakan yaitu pada port 2570. Setelah port tersedia maka Prototipe siap menerima kendali dan mengirim tampilan video dari dan ke aplikasi iOS. Aplikasi iOS akan bekerja menampilkan tampilan video yang


(32)

diambil dari port 2570 serta menampilkan tuas pengaturan untuk pengendalian gerak serta pengendalian lengan robot.

3.1.1.

Perancangan Lengan Robot

Gambar 3.2 Skema Lengan Robot.

Berdasarkan Gambar 3.2, maka Prototipe Robot Penjinak Bom akan memiliki 3 derajat kebebasan dengan masing-masing sendi memiliki kemampuan bergerak sebesar 180°.

Gambar 3.3 Torsi pada Setiap Servo.

Berdasarkan Gambar 3.3 dan Persamaan 2.2 maka besaran torsi minimal yang diperlukan agar torsi dapat menggerakkan robot adalah sebagai berikut. Servo 1 (S1) membutuhkan torsi minimal:

!&123 = :&1 + :&2 + :&3 ×(&1 + &2 + &3) (3.1) !:=2 = :=2×>1 (3.2) !:=3 = :=3×&1 (3.3) !:?@?, &123 = :?@?×(&3 + &2 + &1) (3.4)

Menggunakan persamaan (3.1), (3.2), (3.3), dan (3.4) maka !1 dapat dihitung dengan:

!1 = !&123 + !:=2 + !:=3 + !:?@?, &123 (3.5) Selanjutnya servo 2 (S2) membutuhkan torsi minimal:

!&23 = (:&2 + :&3)×(&2 + &3) (3.6) EOE


(33)

!:?@?, &23 = :?@?×(&2 + &3) (3.7) Menggunakan persamaan (3.6) dan (3.7) maka !2 dapat dihitung dengan:

!2 = !&23 + !:?@?, &23 (3.8) Selanjutnya servo 3 (S3) membutuhkan torsi minimal:

!&3 = :&3×&3 (3.9) !:?@?, &3 = :?@?×&3 (3.10)

Menggunakan persamaan (3.9) dan (3.10) maka !3 dapat dihitung dengan:

!3 = !&3 + !:?@?, &3 (3.11) Tabel 3.1 merupakan hasil rancangan perhitungan torsi minimum yang diperlukan oleh tiap-tiap servo pada lengan robot Prototipe Robot Penjinak Bom.

Tabel 3.1 Rancangan Perhitungan Torsi Minimum.

Satuan kg cm kg.cm

x Servo mL1 mL2 mL3 mS2 mS3 mEOE L1 L2 L3 l1 !L !mS2 !mS3 !mEOE,Lx !x 1 S1 0.02 0.01 0.015 0.056 0.056 0.121 12.7 6 10.8 3.9 1.3 0.2 0.7 3.6 5.8

2 S2 0.01 0.015 0.121 6 10.8 0.4 2.0 2.5

3 S3 0.015 0.121 10.8 0.2 1.3 1.5

Berdasarkan perhitungan pada Tabel 3.1 servo Feetech FT5316M memiliki cukup torsi yaitu 15kgf.cm yang mampu digunakan untuk menggerakkan Lengan Robot. Apabila menggunakan servo Feetech FT5316M maka tiap sendi pada lengan robot akan memiliki kekuatan angkat seperti pada Tabel 3.2.

Tabel 3.2 Kekuatan Servo

Servo Torsi(kgf.cm) Jumlah Servo Panjang Lengan(cm) Kekuatan Angkat (kg)

S1 15 2 29.5 1.0

S2 15 1 16.8 0.9

S3 15 1 10.8 1.4

EoE 15 1 6.9 2.2

Pada Lengan Robot diperlukan suatu end of effector (EoE) yang mampu bertindak mencengkeram dan memotong kabel. EoE merupakan sebuah grip pencengkeram yang terdiri dari dua buah logam dengan pemotong pada bagian ujungnya, ide seperti ini mirip dengan bagian mulut semut.


(34)

Berikut ini adalah pemodelan EOE yang akan digunakan pada Lengan Robot. Dengan ukuran panjang L1 sama dengan L2 maka nilai F yang diberikan oleh setiap bilah

EOE akan dibagi dua dari nilai torsi yang diberikan oleh servo. Berdasarkan persamaan 2.2 saat L1 sejajar dengan L2 maka dapat diperoleh:

, =B

C (3.12)

Gambar 3.4 Skema EOE.

Apabila panjang L1 dan L2 adalah 8cm, torsi servo yang diberikan sebesar 15kgf.cm, maka melihat pada Gambar 3.4, nilai F1 dan F2 adalah sebesar F, yaitu

, = 15 2×8 , = 0.94 GHf

Servo yang dibutuhkan pada tiap bagian lengan robot dapat dilihat pada Tabel 3.3 berikut ini.

Tabel 3.3 Servo Tiap Sendi dan pada EoE

No Servo Jumlah Servo Torsi Jenis Servo 1. S1 2 2x15kgf.cm Feetech FT5316M 2. S2 1 1x15kgf.cm Feetech FT5316M 3. S3 1 1x15kgf.cm Feetech FT5316M 4. EOE 1 1x15kgf.cm Feetech FT5316M

3.1.2.

Desain Prototipe

Gambar 3.5. berikut ini adalah desain prototipe robot penjinak bom yang selanjutnya disebut MotorPi.


(35)

Gambar 3.6 Desain MotorPi Tampak Samping Kiri.

Gambar 3.7 Desain MotorPi Tampak Depan.


(36)

MotorPi memiliki spesifikasi seperti pada Tabel 3.4. Tabel 3.4 Spesifikasi MotorPi.

Spesifikasi Satuan

PxLxT 533x225x161 mm

Berat 1.5 kg

Daya Angkut Maksimum 1.8 kg Daya Angkat Maksimum 0.7 kg

Sistem Penggerak 4 – roda 2-track / FIX Ketinggian Maksimum Manipulator 496 mm

Manipulator 3 DOF

End Effector Gripper, Wire Cutter

Kecepatan Maksimum 1 km/h

3.1.3.

Skematik Hardware

Penggerak roda pada MotorPi menggunakan motor DC yang terhubung dengan driver VNH2SP30, namun supaya motor DC dapat dikendalikan dengan efektif maka perlu menggunakan logic level converter yang menghubungkan driver dengan Raspberry Pi. Skema pemasangan kabel motor DC dapat dilihat pada Tabel 3.5.

Tabel 3.5 Pemasangan Kabel Motor DC.

No Raspberry Pi(Board) LLC(x) VNH2SP30 Keterangan

1 GPIO3 LV2-HV2(1) 2 En(A) Kiri

2 GPIO10 LV3-HV3(1) 3 En(B) Kiri

3 GPIO12 LV2-HV2(2) 8 PWM Kiri

4 GPIO5 LV1-HV1(1) 4 En(A) Kanan

5 GPIO8 LV4-HV4(1) 5 En(B) Kanan

6 GPIO16 LV3-HV3(2) 9 PWM Kanan

Huruf x pada bagian LLC(x) menandakan nomor LLC yang digunakan, yaitu untuk menggerakkan dua motor DC diperlukan dua modul LLC. LV yaitu singkatan dari low voltage atau tegangan yang lebih kecil (3.3v) pada GPIO Raspberry Pi, sedangkan HV yaitu singkatan dari high voltage yaitu tegangan yang lebih tinggi (5v) pada modul driver motor.


(37)

Gambar 3.9. berikut ini adalah skematik pemasangan kabel motor DC. Skema terdiri dari Raspberry Pi, dua modul LLC, serta driver VNH2SP30 dan dua motor DC.

Gambar 3.9 Skematik Pemasangan Kabel Motor DC.

Kabel berwarna kuning berfungsi untuk mengatur motor kanan, sedangkan kabel berwarna biru berfungsi untuk mengatur motor kiri. LLC juga harus terhubung dengan sumber tegangan kecil (3.3v) untuk mengaktifkan pin LV serta sumber tegangan lebih besar (5v) untuk mengkatifkan pin HV.

Pemasangan servo pada Raspberry Pi juga membutuhkan LLC agar PWM yang dihasilkan Raspberry Pi dapat diterima dengan efektif oleh tiap servo. Skema pemasangan kabel servo dapat dilihat pada Tabel 3.6.

Tabel 3.6 Pemasangan Kabel Servo.

No Raspberry Pi(Board) LLC(x) Servo(x) Keterangan 1 GPIO37 LV1-HV1(1) 1 Servo Sendi 1 2 GPIO35 LV2-HV2(1) 2 Servo Sendi 1 3 GPIO36 LV3-HV3(1) 3 Servo Sendi 2 4 GPIO38 LV4-HV4(1) 4 Servo Sendi 3 5 GPIO40 LV1-HV1(2) 5 Servo EoE

Gambar 3.10. berikut ini adalah skematik pemasangan kabel servo lengan robot. Skema terdiri dari Raspberry Pi, dua modul LLC, serta lima buah servo.


(38)

Gambar 3.10 Skematik Pemasangan Kabel Servo.

Servo akan terhubung dengan LLC, namun juga harus terhubung dengan sumber tegangan 6v supaya servo dapat beroperasi.

3.2.

Perancangan Software

Program yang digunakan pada MotorPi, akan menjalankan bahasa pemrograman Python. Fitur-fitur yang akan dipakai yaitu factory, reactor, RPi.GPIO, dan os. Selanjutnya MotorPi akan melakukan binding port ke port 2695 yaitu port bebas atau tidak digunakan oleh Raspberry Pi untuk jaringan.

Program pada MotorPi akan terhubung dengan program remote yang selanjutnya disebut heyGar.Aplikasi heyGar menjadi pusat pengendalian robot. Setelah robot terhubung dengan heyGar maka MotorPi dapat berjalan maju, mundur, belok kiri, belok kanan, menggerakkan lengan naik dan turun, serta mengatur sudut grip yang dapat digunakan untuk mencengkeram model bom serta memotong kabel.

MotorPi hanya dapat dikendalikan secara manual, yaitu dengan menggerakkan tiap slider pada aplikasi heyGar. Slider akan mengatur kecepatan roda kiri dan kecepatan roda kanan prototipe, sehingga MotorPi dapat memiliki kecepatan gerak sesuai dengan perintah. Apabila kecepatan roda kanan lebih besar dari kecepatan roda kiri, maka MotorPi akan berbelok ke kiri, sedangkan apabila kecepatan roda kiri lebih besar dari kecepatan roda kanan, maka MotorPi akan berbelok ke kanan. Selain adanya slider, pada aplikasi heyGar juga memiliki button yang fungsinya untuk pengereman serta penggantian mode MotorPi.


(39)

Secara umum program MotorPi akan terhubung dengan program heyGar seperti pada diagram alir berikut ini. mmmmmmmmmmmmmmmmmm

Gambar 3.11 Diagram Alir Program secara Umum.

Dari Gambar 3.11 terdapat garis putus-putus yang menjelaskan bagaimana suatu data dikirim serta diterima melalui jaringan internet antara program MotorPi dengan heyGar.

3.2.1.

Program MotorPi

Raspberry Pi akan melakukan inisialisasi perangkat yang tersambung pada port USB, sehingga modem 4G ZTE MF90 akan terdeteksi dan memberikan koneksi internet bagi Raspberry Pi. Adanya koneksi internet akan membuat MotorPi dapat diakses dari mana saja, menggunakan port 2695. Selanjutnya, port akan masuk dalam kondisi listening, yaitu menunggu komunikasi atau perintah. Gambar 3.12. berikut merupakan diagram alir MotorPi saat menunggu perintah pengendalian.


(40)

Gambar 3.12 Diagram Alir MotorPi.

Saat MotorPi memperoleh perintah, maka akan dilanjutkan untuk menjalankan sub-routin dari MotorPi yaitu Mode Bergerak atau Mode Lengan. Pada sub-routine Mode Bergerak, Raspberry Pi akan mengatur GPIO yang berakibat pada perubahan kecepatan roda. Gambar 3.13. berikut ini adalah diagram alir sub-routine Mode Bergerak.

Gambar 3.13 Diagram Alir Sub-Routine Mode Bergerak

Mode Lengan (Gambar 3.14.) adalah sub-routine MotorPi yang bekerja mengatur sudut servo serta gripper pada lengan robot. Servo yang akan digunakan dalam lengan robot


(41)

ini ada 4 bagian, yaitu pada bagian Servo1 (S1), Servo2 (S2), Servo3 (S3), dan Servo Gripper (pada EoE).

Gambar 3.14 Diagram Alir Sub-Routine Mode Lengan

3.2.2.

Program Remote pada iOS

Program remote pada iOS yang selanjutnya disebut heyGar memerlukan konektivitas internet sebelum dapat digunakan. Setelah konektivitas internet siap maka heyGar akan siap digunakan, namun agar heyGar dapat berkomunikasi dengan MotorPi, user harus memasukkan IP address beserta port yang digunakan oleh MotorPi. Program heyGar dapat dijelaskan melalui Gambar 3.15.


(42)

Gambar 3.16. berikut ini merupakan rancangan tampilan aplikasi pada heyGar.

Gambar 3.16 Tampilan Aplikasi.

Pada Tampilan Aplikasi ini dapat mengendalikan kecepatan serta arah gerak dari MotorPi. Slider dengan tulisan Left dan Right berfungsi untuk mengatur tingkat kecepatan roda kiri dan kanan MotorPi. Tombol bertuliskan BRAKE berfungsi untuk menghentikan laju MotorPi sewaktu-waktu, sedangkan tombol bertuliskan RELEASE berfungsi untuk menonaktifkan fungsi BRAKE. Kotak putih yang ada pada bagian tengah merupakan frame yang akan menampilkan tampilan video dari MotorPi.


(43)

Sebelum dapat berkomunikasi dengan MotorPi, maka perlu dilakukan pengaturan koneksi yaitu dengan menyentuh logo Raspberry Pi pada Tampilan Aplikasi, sehingga muncul antarmuka seperti pada Gambar 3.17. Gambar 3.17. merupakan Tampilan Settings yang berguna untuk menentukan pada alamat IP berapakah MotorPi akan dikendalikan, dan pada port berapakah fungsi MotorPi dapat menyediakan layanan kontrol serta tampilan video. Pada Tampilan Settings, Pengguna juga dapat menonaktifkan MotorPi dengan cara menyentuh tombol Shutdown Raspberry Pi serta dapat menghidupkan ulang (restart) MotorPi dengan menyentuh tombol Restart Raspberry Pi.

Setelah mengisi alamat IP serta port yang digunakan maka pengguna harus menekan tombol Save dan kemudian dapat langsung kembali ke Tampilan Aplikasi dengan menyentuh tombol Back. Pada Tampilan Aplikasi, pengguna harus menyentuh tombol heyGar supaya dapat membuat koneksi ke MotorPi.

Mengubah mode MotorPi dapat dilakukan dengan menyentuh tombol V1.0 sehingga akan muncul tampilan seperti pada Gambar 3.18 berikut ini.

Gambar 3.18 Tampilan Mode Lengan.

3.2.3.

Penggunaan Motion

Motion dapat digunakan untuk melakukan streaming WebCam pada Raspberry Pi, namun diperlukan pengaturan yang bertujuan untuk memperlancar terjadinya streaming melalui jaringan internet.

Dari percobaan yang dilakukan penulis (pra percobaan) dengan mengambil gambar menggunakan WebCam M-Tech Box 6 LED diperoleh gambar dengan ukuran file sebesar


(44)

33KB. WebCam M-Tech Box 6 LED memiliki kecepatan menangkap gambar sebesar 15 fps, sehingga dalam satu detik menghasilkan gambar dengan ukuran files sebesar:

33KB×15 = 495KB

Kecepatan UL minimal agar streaming dapat dilakukan adalah diatas 495KBps, sehingga Motion dapat melakukan upload files untuk streaming. Modem 4G ZTE MF90 memiliki kecepatan UL terendah 5.76 Mbps atau dalam satuan bytes yaitu:

5.76

8 = 0.72M#N)

atau 720KBps sehingga mampu digunakan untuk melakukan streaming.

3.2.4.

Pengiriman IP Publik

Aplikasi heyGar dapat tersambung dengan prototipe robot apabila memiliki IP Publik dari MotorPi, maka dari itu aplikasi heyGar perlu mengetahui IP Publik dari MotorPi. Untuk dapat mengetahui IP Publik, maka MotorPi akan mengirim IP Publik kepada aplikasi heyGar. Pengiriman IP Publik diawali dengan mengetahui IP Publik MotorPi. IP Publik bersifat dinamis atau berubah-ubah pada tiap koneksi internet maka perlu adanya update setiap membuat koneksi internet untuk mencari nilai IP Publik. Gambar 3.19 berikut adalah diagram alir yang merupakan program untuk mengetahui IP Publik MotorPi.

Gambar 3.19 Diagram Alir Pengiriman IP Publik

Pada proses Kirim IP maka MotorPi akan mengirimkan email kepada heyGar yang berisi alamat IP MotorPi.


(45)

30

BAB IV

HASIL DAN PEMBAHASAN

4.1.

Hasil Implementasi

Gambar 4.1. Foto MotorPi saat Mode Bergerak (kiri) dan saat Mode Lengan (kanan) Gambar 4.1. merupakan foto MotorPi yang telah dirancang secara menyeluruh, yaitu terdapat roda penggerak, lengan robot, end of effector, webcam, dan juga modem yang berada dibagian belakang atas. MotorPi akan memiliki bentuk yang berbeda pada saat mode bergerak dengan mode penggunaan lengan. Saat berada pada mode bergerak, lengan MotorPi akan terlipat mendekati badan MotorPi sehingga akan terlihat lebih ringkas. Sedangkan pada mode lengan maka lengan MotorPi akan bergerak menjauhi badan MotorPi sehingga tampilan layar pada aplikasi heyGar akan lebih tinggi.

Lengan MotorPi memiliki 3 derajat kebebasan seperti pada perancangan. EoE pada lengan MotorPi dilengkapi gripper dan cutter yang mampu memotong kabel dengan diameter 1mm, yaitu kabel pelangi atau kabel jumper. Lengan MotorPi juga mampu mengangkat model bom yang terbuat dari sterofoam atau gabus.

Gambar 4.2. merupakan tangkapan layar dari aplikasi heyGar pada mode bergerak dan mode lengan. Terdapat perubahan pada tampilan aplikasi mode lengan yaitu adanya dua slider horizontal disamping logo Raspberry Pi (Gambar 4.2. bawah) yang berfungsi untuk menggerakkan MotorPi ke kiri atau ke kanan pada saat berada dalam mode lengan. Selain itu terdapat logo disket yang berguna untuk menyimpan kondisi servo pada saat itu, sehingga apabila pengguna aplikasi menekan tombol V1.0 untuk masuk ke mode bergerak tidak akan mengubah sudut servo ketika masuk kembali ke mode lengan. Terdapat pula tombol diatas slider EoE, tombol tersebut adalah tombol dengan tulisan “EoE” yang berfungsi untuk memotong kabel hanya dengan sekali sentuhan.


(46)

Gambar 4.2. Tampilan Antarmuka Aplikasi heyGar saat Mode Bergerak (atas) dan saat Mode Lengan (bawah)

Penggunaan Motion mampu menghasilkan web server mini pada MotorPi dengan port sesuai dengan pengaturan. Port yang telah diatur dapat diakses menggunakan IP MotorPi.

Dalam proses pengiriman data dari heyGar ke MotorPi dan juga sebaliknya, MotorPi menggunakan koneksi VPN-PPTP sehingga memperoleh alamat IP yang tetap. Dengan penggunaan VPN-PPTP ini maka pengaturan port forwarding serta pengiriman alamat IP Publik secara berkala menjadi tidak diperlukan.

Bila MotorPi telah terhubung dengan VPN-PPTP maka MotorPi dapat dikendalikan secara manual menggunakan slider dan tombol yang terdapat pada aplikasi heyGar. Pada aplikasi heyGar juga akan menampilkan tampilan video dari webcam MotorPi.


(47)

4.2.

Hasil Perancangan Hardware

Gambar 4.3. Wiring modul VNH2SP30 dengan Raspberry Pi

Pada Gambar 4.3. terdapat huruf yang menjelaskan fungsi kabel yang terhubung antara Raspberry Pi dengan modul driver VNH2SP30. Keterangan lebih lengkap dapat diketahui dari Tabel 4.1. berikut ini.

Tabel 4.1. Keterangan untuk Wiring Driver Motor VNH2SP30

Huruf Pin Keterangan

Raspberry Pi VNH2SP30

a 16 6 PWM motor kanan

b 12 5 PWM motor kiri

c 10 8 Enable B motor kiri

d 8 7 Enable B motor kanan

e 6 gnd Ground

f 4 5v Power 5V DC

g 2 A1 dan A2 Mengaktifkan motor kiri dan kanan

h 11 4 Enable A motor kiri

i 13 9 Enable A motor kanan

r - Motor Kanan Output motor kanan

l - Motor Kiri Output motor kiri

p - Daya Motor Tegangan 7.4V DC dari baterai Untuk dapat menggunakan kedua motor pada driver VNH2SP30 diperlukan adanya kondisi high pada pin A1 dan A2 driver, maka dari itu pin A1 dan A2 saling paralel dan terhubung dengan pin 2 pada Raspberry Pi. Enable A dan Enable B pada tiap motor harus diberikan kondisi yang berbeda supaya motor dapat berputar. Putaran motor dapat terjadi jika terdapat PWM dan juga kondisi Enable A dan Enable B seperti pada Tabel 4.2. berikut.


(48)

Tabel 4.2. Kondisi Enable untuk Mengatur Putaran Motor En A En B Kondisi

Motor kiri Motor kanan low high Maju Mundur high low Mundur Maju

low low Berhenti Berhenti

Gambar 4.4. Wiring Servo dengan Raspberry Pi

MotorPi memiliki lima buah servo yang terhubung dengan Raspberry Pi seperti pada Gambar 4.4. Raspberry pi akan mengirimkan sinyal PWM dengan frekuensi 50Hz atau periode 20ms dengan pengaturan lebar pulsa yang bervariasi dari 0.5ms hingga 2.5ms. Untuk medapatkan lebar pulsa dengan rentang 0.5ms hingga 2.5ms diperlukan pengaturan duty cycle dari 2.5 hingga 12.5. Berikut ini adalah Tabel 4.3. dan Tabel 4.4. yang menjelaskan tentang koneksi kabel antara tiap-tiap servo dengan Raspberry Pi.

Tabel 4.3. Keterangan untuk Wiring Servo Huruf Pin Raspberry Pi Servo

a 37 S1 kiri

b 35 S1 kanan

c 36 S2

d 38 S3


(49)

Tabel 4.3. Keterangan untuk Wiring Servo (lanjutan) Huruf Pin Raspberry Pi Servo

f 39 Ground

p - 6 volt

gnd - Ground

Untuk mempermudah pemasangan servo dengan Raspberry Pi, maka dibutuhkan PCB yang terhubung dengan pin sinyal PWM servo, daya 6 volt servo (p), serta ground (gnd).

Gambar 4.5. Pemasangan USB Modem 4G dan WebCam

Dari Gambar 4.5. terlihat adanya dua konektor USB berwarna putih dan hitam yang tersambung dengan WebCam dan Modem 4G. Penggunaan WebCam dapat dilakukan secara langsung, sehingga apabila Raspberry Pi aktif, maka WebCam dapat langsung digunakan. Sebelum mengaktifkan Raspberry Pi, Modem 4G harus aktif terlebih dahulu, sehingga koneksi internet dapat langsung dilakukan.

Gambar 4.6. Pemasangan Servo pada Lengan MotorPi

Dari Gambar 4.6. bagian kiri terlihat adanya dua servo yang saling berhadapat yaitu servo S1 Kanan dan servo S1 Kiri yang bekerja saling berlawanan. Apabila S1 Kanan mendapat sinyal dengan duty cycle 12.5 maka S1 Kiri akan mendapat sinyal 2.5 begitu pula sebaliknya. Pengurangan nilai duty cycle S1 Kiri akan berbanding dengan penambahan nilai duty cycle S1 Kanan.


(50)

Gambar 4.7. Penggunaan Tali untuk Menggerakkan Lengan MotorPi

Penggunaan servo selain servo S1 dan EoE adalah menerapkan penyaluran torsi melalui tali. Penggunaan tali selain mampu menggeser beban lengan ke pusat lengan, namun juga dapat menghasilkan gerakan lengan yang tidak terhambat, yaitu lengan tetap dapat bergerak dari 0° hingga 180°. Penggunaan tali sebagai penyalur torsi dapat dilihat pada Gambar 4.7. Dari Gambar 4.7 sebelah kiri terlihat bahwa L2 sedang dalam keadaan sudut 90°, begitu pula pada Gambar 4.7 sebelah kanan terlihat bahwa L3 sedang dalam keadaan sudut 90°.

Gambar 4.8. EoE pemotong kabel posisi terbuka (kiri) dan posisi menutup (kanan)

4.3.

Hasil Perancangan Software

Gambar 4.9. Tangkapan Layar Data yang Diterima oleh MotorPi

Aplikasi heyGar akan mengirim data dalam bentuk string ke MotorPi. Data string yang dikirim memiliki nilai yang berbeda yang memuat sudut tiap servo, intensitas PWM motor, serta kode mode yang tiap nilainya dipisahkan oleh huruf “s”. Format nilai string yang dikirim adalah sebagai berikut <sudut S1>s<sudut S2>s<sudut S3>s<suduteoe>s<in


(51)

tensitas M.Kiri>s<intensitas M.Kanan>s<mode>. Dari Gambar 4.9. diperoleh data string 114s92s80s82s5s5s-1 yang artinya dapat dilihat pada Tabel 4.4. berikut.

Tabel 4.4. Data String Perintah heyGar ke MotorPi

Data S1 S2 S3 EoE M.Kiri M.Kanan Mode 114s92s80s82s5s5s-1 114° 92° 80° 82° 60% 60% Lengan

Mode yang akan dimengerti oleh MotorPi dapat dilihat pada Tabel 4.5. berikut ini. Tabel 4.5. Data Mode pada heyGar

Data Perintah

-2 Mengubah posisi lengan untuk mode bergerak -1 Masuk mode lengan dan posisi lengan berubah 188 Masuk mode lengan dan posisi lengan tetap

181 Pengereman

182 Membuka rem

183 Reboot Raspberry Pi

184 Shutdown Raspberry Pi

190 Masuk mode bergerak

0 Clear mode tanpa mengubah mode saat itu

4.4.

Pengujian Hardware dan Software

4.4.1.

Penggunaan Aplikasi heyGar untuk Mengendalikan MotorPi

Sebelum dapat menggunakan aplikasi heyGar, maka aplikasi harus di-install di perangkat iOS. Setelah ter-install maka aplikasi dapat langsung dijalankan dengan menyentuh ikon aplikasi. Akan muncul tampilan seperti pada Gambar 4.10. berikut ini.


(52)

Berdasarkan Gambar 4.10. sebelum dapat melakukan pengendalian terhadap MotorPi, maka pengguna aplikasi heyGar harus menyentuh tombol pengaturan, yaitu tombol dengan logo Raspberry Pi (a) sehingga akan muncul tampilan seperti pada Gambar 4.11. untuk mengatur alamat IP dan juga port sesuai dengan MotorPi, namun bila langkah ini sudah pernah dilakukan maka pengaturan tidak diperlukan. Supaya heyGar dapat menampilkan tampilan video dari MotorPi, maka pengguna aplikasi harus menyentuh tombol heyGar (b) sehingga UIWebView (e) akan menampilkan tampilan video.

Pada Gambar 4.10. terdapat dua buah slider (d) yang berguna untuk mengatur kecepatan putar roda pada MotorPi. Slider Left berguna untuk mengatur kecepatan dan arah putar roda kiri, sedangkan slider Right berguna untuk mengatur kecepatan dan arah putar roda kanan. Indeks atau angka yang berada disebelah slider menandakan intensitas kecepatan putaran roda MotorPi, sehingga, apabila slider Left digeser pada angka 80 atas dan slider Right digeser pada angka kurang dari 80 (misal 10 atas) maka kecepatan roda kiri akan lebih cepat kedepan dibanding kecepatan roda kanan, sehingga MotorPi akan berjalan maju ke kanan. Bila nilai slider Right digeser ke nilai atas yang lebih besar dari slider Left maka MotorPi akan berjalan maju ke kiri. Pengaturan kecepatan juga berlaku untuk menjalankan MotorPi mundur. Perbedaan pengauturan slider akan mengakibatkan MotorPi berbelok. Bila slider Left dan slider Right digeser ke atas dengan nilai angka yang sama maka MotorPi akan maju sedangkan bila slider Left dan slider Right digeser ke bawah dengan nilai angka yang sama maka MotorPi akan mundur. Untuk dapat menghentikan putaran roda MotorPi secara tiba-tiba dapat dilakukan dengan menyentuh tombol BRAKE (c) dan untuk menjalankan roda MotorPi kembali dapat menyentuh tombol RELEASE.


(53)

Apabila pengguna aplikasi heyGar belum pernah melakukan setting alamat IP maka pengguna dapat mengatur nilai IP serta port pada Tampilan Setting. Alamat IP dapat diisi pada kolom Alamat IP, port penggerak dapat diisi pada kolom Port Penggerak dan port video dapat diisi pada kolom Port Video seperti yang ditunjukkan pada Gambar 4.11. Setelah alamat IP dan port diisi maka pengguna harus menyentuh tombol Save dan dapat menekan tombol Back untuk kembali ke Tampilan Antarmuka (Gambar 4.10). Pada tampilan Setting pengguna juga dapat mematikan serta me-restart RaspberryPi.

Untuk mengatur sudut lengan dan end of effector maka pengguna aplikasi harus menyentuh tombol V1.0 (f) pada tampilan Antarmuka sehingga akan muncul tampilan pengaturan lengan MotorPi seperti pada Gambar 4.12. berikut ini.

Gambar 4.12. Tampilan Mode Lengan

Pada tampilan Mode Lengan terdapat slider pengatur sudut lengan MotorPi (a) dan juga slider penggerak roda MotorPi(c). Slider S1 berguna untuk mengatur sudut servo 1 MotorPi, slider S2 berguna untuk mengatur sudut servo 2 MotorPi, slider S3 berguna untuk mengatur sudut servo 3 sedangkan slider EoE berguna untuk mengatur intensitas terbukanya eoe pada lengan MotorPi. Apabila slider telah diatur ke sudut tertentu dan pengguna aplikasi hendak kembali ke tampilan Antarmuka atau mode bergerak maka supaya sudut servo bertahan dan tidak berubah maka pengguna harus menyentuh tombol disket (b) terlebih dahulu. Apabila pada saat mengatur sudut lengan, namun pengguna aplikasi juga ingin menggeser lengan ke kiri maupun ke kanan, maka pengguna aplikasi dapat menggeser slider penggerak roda (c). Terdapat dua slider penggerak roda, namun memiliki fungsi yang sama, adanya dua slider ini memudahkan pengguna aplikasi bila sedang menggunakan jari kiri untuk menggerakkan servo S1 ataupun servo S3 maka


(54)

pengguna dapat menggeser lengan MotorPi ke kiri atau ke kanan menggunakan slider penggerak dibagian kanan, begitu pula jika pengguna aplikasi sedang menggunakan jari kanan untuk menggerakkan servo S2 ataupun EoE maka pengguna dapat menggeser lengan MotorPi ke kiri ataupun ke kanan menggunakan slider penggerak dibagian kiri. Untuk memotong kabel, pengguna dapat menggerakkan slider EoE dengan cepat dari nilai 100 ke 0, atau dapat pula dengan menekan tombol EoE yang terdapat pada bagian atas slider.

Baik pada saat berada pada tampilan mode bergerak ataupun tampilan mode lengan, pengguna aplikasi dapat dengan mudah melipat lengan MotorPi agar menjadi lebih ringkas yaitu dengan mengetuk sebanyak 3 kali pada tampilan video. Jika lengan MotorPi telah terlipat menjadi ringkas, maka bila pengguna aplikasi kembali ke mode bergerak atau kembali ke mode lengan maka posisi sudut servo tidak berubah, karena dengan mengetuk 3 kali pada tampila video akan dilakukan penyimpanan sudut lengan MotorPi pula.

Untuk dapat mengangkat dan memotong kabel model bom maka pengguna harus mengatur slider guna mendekatkan MotorPi ke model bom. Setelah berada pada jarak yang tepat dengan model bom, maka lengan MotorPi harus menempel pada kabel model bom agar kabel dapat terpotong. Kabel harus menempel pada bagian tengan EoE pada saat EoE berada pada kondisi terbuka, selanjutnya pengguna dapat menyentuh tombol EoE.

4.4.2.

Pengujian Motor DC

Gambar 4.13. Sinyal PWM Pengoperasian Motor DC

Dari Gambar 4.13. terdapat dua sinyal yang merupakan sinyal PWM motor kiri (sinyal nomor 1) dan PWM motor kanan (sinyal nomor 2) pada duty cycle masing-masing 79.19% dan 79.99%. Sinyal PWM yang diberikan kepada motor DC menggunakan frekuensi 50Hz dan mampu memutar motor DC pada MotorPi. Walaupun pada program python MotorPi diatur frekuensi 50Hz namun frekuensi yang dihasilkan tidak tetap di 50Hz saja. Terlihat


(55)

pada Gambar 4.13. frekuensi sinyal 1 adalah 49.52Hz dan frekuensi sinyal 2 adalah 50.01Hz.

Apabila PWM diatur pada duty cycle 100% maka motor DC akan berputar dengan maksimal. Putaran maksimal pada motor DC akan menggerakkan MotorPi dengan kecepatan maksimal. Kecepatan maksimal MotorPi dapat dilihat pada Tabel 4.6. berikut ini.

Tabel 4.6. Pengujian kecepatan maksimal MotorPi Pengujian Kecepatan(km/h)

1 1,20

2 1,21

3 1,21

4 1,21

5 1,20

6 1,19

Rata-rata 1,20

Pengujian kecepatan diukur menggunakan LDR dan laser yang menjadi sensor kecepatan Arduino Uno. Terdapat dua pasang sensor yang terpasang sejajar dengan jarak 35,4 cm. Kecepatan MotorPi dapat diukur yaitu dengan mengetahui waktu yang diperlukan oleh MotorPi untuk bergerak memotong sinar laser sensor 1 ke sinar laser sensor 2, sehingga dapat diperoleh kecepatan yaitu (3,6*0,354/waktu bergerak). Perhitungan 3,6 adalah untuk merubah data dari satuan m/s menjadi km/h, sedangkan 0,354 adalah jarak sensor dalam satuan meter (m).

4.4.3.

Pengujian Servo

Gambar 4.14. Sinyal PWM Pengoperasian servo S1 pada Sudut Sekitar 135°

Dari Gambar 4.14. terlihat adanya dua sinyal PWM dengan nilai yang berlawanan 180° karena kedua posisi servo S1 adalah berhadapan. Sudut 0° pada servo S1 kiri akan


(56)

senilai dengan sudut 180° pada servo S1 kanan. Nilai duty cycle tentu akan berbeda yaitu seperti pada Gambar 4.14. dimana duty cycle bernilai 5.01% pada sinyal PWM 1 dan 9.94% pada sinyal PWM 2.

Berdasarkan datasheet Servo Feetech FT5316M diperlukan sinyal PWM dengan periode 20ms yaitu senilai dengan frekuensi 50Hz. Akan tetapi, walaupun pada program MotorPi diatur frekuensi 50Hz, GPIO Rapsberry Pi menghasilkan frekuensi yang berubah-ubah dari 49.20Hz hingga 50.01Hz. Inkonsistensi dari frekuensi yang digunakan untuk mengatur sudut servo berimbas pada terjadinya jitter atau getaran yang tidak diperlukan pada tiap-tiap servo. Dari uji coba penggunaan servo didapat kelemahan dari Raspberry Pi yaitu untuk mengatur servo dihasilkan inkonsistensi frekuensi. Inkonsistensi dari frekuensi juga berimbas pada inkonsistensi dutycycle yaitu terjadi keterlambatan pembangkitan pulsa sehingga dutycycle yang seharusnya muncul menjadi hilang. Adanya keterlambatan pembangkitan pulsa pada sinyal PWM dapat dilihat pada Gambar 4.15. yaitu terlihat suatu sinyal yang kurang baik untuk mengatur servo. Jitter yang terjadi sangat berakibat pada tidak stabilnya gambar video yang ditampilkan di aplikasi heyGar.

Gambar 4.15. Sinyal PWM yang kurang baik

Sinyal PWM yang dihasilkan oleh GPIO Raspberry Pi akan diterima oleh servo sehingga servo mampu bergerak ke sudut sesuai dengan PWM yang diatur, namun servo FT5316 memiliki keterbatasan sehingga tidak dapat mencapai sudut sesuai yang diatur. Selisih sudut yang terjadi pada lengan MotorPi dapat dilihat pada Gambar 4.15. berikut ini.


(57)

Gambar 4.16. Selisih sudut servo S1 yang diatur 180°

Dari Gambar 4.16. pada aplikasi heyGar diatur sudut 180° untuk servo S1, namun pada kenyataannya, lengan MotorPi bergerak menuju sudut sekitar 170°.

Gambar 4.17. Selisih sudut servo S2 yang diatur 45°

Dari Gambar 4.17. terlihat adanya selisih sudut yaitu seharusnya lengan MotorPi diatur pada sudut servo S2 45°, namun servo S2 berada pada sudut 24.53°.

Pada servo S3, pengaturan sudut lengan juga tidak sesuai dengan sinyal PWM yang diatur, yaitu servo S3 diatur pada sudut 90° namun lengan berada pada sudut 79.27°. Sudut servo S3 pada kondisi 90° dapat dilihat pada Gambar 4.18.


(58)

Gambar 4.18. Sudut servo S3 pada pengaturan 90°

Pada Tabel 4.8. terdapat hasil dari pengaturan sudut servo yang diatur menggunakan aplikasi heyGar. Pengaturan sudut servo pada aplikasi heyGar didasarkan pada posisi slider pada tiap poin sudut yaitu 0°, 45°, 90°, 135°, dan 180°.

Tabel 4.7. Sudut servo hasil implementasi

Servo Sudut Pengaturan Sudut yang Terjadi Selisih Sudut

S1 0° 0° 0°

S1 45° 44.80° 0.2°

S1 90° 89.85° 0.15°

S1 135° 137.79° 2.79°

S1 180° 170.01° 9.99°

S2 0° 0° 0°

S2 45° 24.53° 20.47°

S2 90° 73.17° 16.83°

S2 135° 111.69° 23.31°

S2 180° 151.77° 28.23°

S3 0° 8.20° 8.20°

S3 45° 40.98° 4.02°

S3 90° 79.27° 10.73°

S3 135° 118.60° 16.40°

S3 180° 158.09° 21.91°

Berdasarkan Tabel 4.7. terjadinya ketidaksesuaian nilai sudut yang terjadi dengan nilai sudut pengaturan atau sudut yang seharusnya terjadi adalah karena keterbatasan servo, keterbatasan sudut servo yang tidak sesuai dengan datasheet dapat dilihat pada Gambar 4.15. yaitu saat servo digunakan secara langsung tanpa menggunakan tali, sehingga tidak terjadi selisih sudut servo dengan sudut lengan, namun servo tidak mampu mencapai sudut


(59)

maksimal yaitu 180°. Pada servo S2 dan S3 pengaturan sudut lengan tidak sesuai dengan sudut yang seharusnya karena terjadi pembengkokan lengan dan peregangan tali.

4.4.4.

Pengujian Pemotongan Kabel dan Pengangkatan Model Bom

Gabus

Pengujian pemotongan kabel dilakukan dengan memotong kabel pelangi atau kabel jumper, kemudian lengan robot akan memotong kabel apabila menerima perintah pemotongan dari heyGar. Data kecepatan pemotongan kabel oleh MotorPi dapat dilihat pada Tabel 4.8. berikut ini.

Tabel 4.8. Interval waktu pemotongan kabel Pengujian Waktu Mulai

(detik)

Waktu Berhenti (detik)

Durasi (detik)

1 7,80 8,12 0,32

2 9,73 10,21 0,48

3 29,24 29,56 0,32

4 11,32 11,72 0,40

5 9,43 9,81 0,38

Rata-rata 0,38

Waktu mulai dan waktu berhenti pada Tabel 4.7. diperoleh menggunakan stopwatch yang direkam menggunakan kamera dengan kecepatan rekam 120 fps atau 120 gambar tiap satu detik. Stopwatch diletakkan dekat dengan kabel yang akan dipotong, sehingga dapat terlihat waktu terjadinya pergerakan EoE hingga waktu saat kabel telah terpotong. Pengujian pengangkatan model bom dari gabus dapat dilakukan, selain itu, MotorPi juga mampu mengangkat beban hingga 0.2 kg.

Pada pengujian pengangkatan beban, lengan MotorPi hanya mampu mengangkat beban dengan berat maksimal 0.2kg. Beban yang dapat diangkat tidak sesuai dengan perancangan yaitu 0.7kg. Pada saat pembuatan lengan MotorPi, digunakan bahan yaitu mika dengan tebal 3mm, selain itu, adanya tambahan pemotong kabel yaitu gunting pada EoE menambah berat lengan. Berat lengan pada tiap bagian dapat dilihat pada Tabel 4.9. berikut.

Tabel 4.9. Berat masing-masing bagian lengan (termasuk kabel dan webcam) Bagian Perancangan (kg) Hasil Perancangan (kg)

LS2 0.076 0.102


(60)

Tabel 4.9. Berat masing-masing bagian lengan (termasuk kabel dan webcam)(lanjutan) Bagian Perancangan (kg) Hasil Perancangan (kg)

EoE 0.136 0.354

Total = 0.278 0.563

Karena berat lengan 0.563 kg, maka diperlukan torsi minimum untuk dapat menggerakkan lengan yaitu dengan persamaan 2.2:

! = 0.563×29.5 = 16.6 kgf. cm

Apabila S1 memiliki kekuatan torsi sesuai dengan datasheet yaitu 15 kgf.cm x 2, maka S1 akan memiliki torsi total 30 kgf.cm. Jika torsi minimum adalah 16.6 kgf.cm, maka torsi yang tersisa yaitu 30 – 16.6 = 13.4 kgf.cm. Dengan panjang lengan 29.5 cm maka jika jika melihat pada persamaan 3.2. lengan dapat mengangkat beban sebesar:

, =13.4 29.5 = 0.5 kgf

Adanya gesekan pada tiap persambungan bagian lengan juga mengurangi torsi yang dihasilkan oleh servo, maka dari itu beban maksimal yang dapat diangkat oleh lengan robot berkurang menjadi 0.2 kg. Gesekan pada persambungan lengan terjadi karena penggunaan mur dan baut yang harus kencang agar lengan tidak terlalu mengalami pembengkokan. Pembengkokan terjadi akibat regangan tali yang berada hanya pada satu sisi lengan robot saja.

4.4.5.

Pengujian Aplikasi heyGar

Gambar 4.19 File program pada aplikasi heyGar

Dalam membuat program heyGar, diperlukan aplikasi XCode yang akan meng-compile dan melakukan build aplikasi ke handphone. Seperti pada Gambar 4.19. program aplikasi iOS yang dibuat menggunakan XCode memiliki dua program utama yang harus ada yaitu program header dengan format file *.h dan program main dengan format file *.m. Kedua format file tersebut harus saling berkaitan, yaitu dapat dituliskan dengan menulis nama file dibagian atas program.


(61)

Sebelum dapat terhubung dengan MotorPi, maka program heyGar harus memiliki alamat IP dan juga port yang sesuai dengan MotorPi. Selanjutnya, alamat IP beserta port dapat disimpan agar tidak perlu mengisikan data IP dan port apabila aplikasi heyGar tidak sengaja dihentikan (close application). Pengisian alamat IP dan port menggunakan object yaitu UITextField yang dapat dilakukan pada tampilan Setting (Gambar 3.17). Pada program heyGar diperlukan tiga UITextField yaitu untuk HOSTNAME, PORTNUMBER, dan MJPEGPORT. Ketiga UI TextField tersebut akan tersimpan jika tombol Save ditekan.

Gambar 4.20. Penyimpanan data dari UITextField

Ketika tombol Save ditekan maka aplikasi heyGar akan mejalankan program seperti pada Gambar 4.20. Data dari HOSTNAME, PORTNUMBER, dan MJPEGPORT tersebut akan disimpan dengan object com.MotorPi.Host, com.MotorPi.Port, dan com.MotorPi.Mjpeg. Sehingga ketika aplikasi heyGar dibuka maka data HOSTNAME, PORTNUMBER, dan MJPEGPORT dapat langsung digunakan seperti pada Gambar 4.21.

Gambar 4.21. Data IP dan port yang digunakan saat program heyGar dibuka. Jika alamat IP dan port telah diisi, maka tampilan video yang dihasilkan oleh MotorPi dapat ditampilkam diaplikasi heyGar yaitu dengan menyentuh tombol heyGar pada Tampilan Aplikasi seperti pada Gambar 3.16. Apabila tombol heyGar disentuh, maka aplikasi akan menjalankan program seperti pada Gambar 4.22. berikut ini.


(62)

Gambar 4.22. Listing Program heyGar untuk mengakses gambar bergerak dari MotorPi Pengoperasian MotorPi dilakukan dengan menggunakan object UISlider yang memiliki batasan nilai yang telah diatur, yaitu untuk servo S1, S2, dan S3 memiliki nilai 0 hingga 180, untuk servo EoE memiliki nilai 10 hingga 100, untuk penggerak saat mode lengan memiliki nilai 6 hingga 16. UISlider akan melakukan program seperti pada Gambar 4.23 apabila terjadi perubahan nilai, yaitu saat slider digerakkan.

Gambar 4.23. Pengiriman data nilai slider

Saat slider digerakkan maka akan terjadi perubahan nilai a (untuk servo S1). Selanjutnya data akan dikirim apabila a memang mengalami perubahan nilai sehingga menghemat transfer data yang dilakukan melalui internet.

Gambar 4.24. Pengiriman data servo dan mode

Pengiriman data a dilakukan dengan memanggil fungsi initNetwork seperti pada Gambar 4.24 dan Gambar 4.25.


(63)

Gambar 4.25. Pengiriman data servo dan mode (lanjutan)

Servo S2, S3, EoE, dan mode akan dikirim dengan cara yang sama yaitu dengan memanggil fungsi initNetwork. Data a,b,c,d,e,f,g seperti pada Gambar 4.24 berturut-turut adalah nilai S1, S2, S3, EoE, M.Kiri, M.Kanan, mode.

Saat menggerakkan lengan MotorPi, dapat terjadi benturan antara lengan dengan Modem 4G. Supaya tidak terjadi benturan maka data sudut servo yang dikirim harus dibatasi. Pembatasan data servo dilakukan seperti pada Gambar 4.26.

Gambar 4.26. Pembatasan gerak servo

Pengujian Program MotorPi berbeda dengan aplikasi heyGar, program MotorPi dapat dibuat dan dijalankan langsung di Raspberry Pi dengan bantuan aplikasi Python. Program MotorPi akan melakukan listening ke port yang telah diatur. Listening port dapat dilakukan dengan program seperti pada Gambar 4.27.

Gambar 4.27. Listening ke Port UDP 2695

Saat program MotorPi telah melakukan listening, maka program dapat siap menerima data. Apabila terdapat memperoleh data, maka data akan dipsah menjadi beberapa bagian menurut fungsinya yaitu dengan melakukan split data seperti pada Gambar 4.28.


(64)

Data yang dipisah akan merepresentasikan data-data a, b, c, d, e, f, g yang dikirim oleh heyGar, sehingga data dapat digunakan untuk mengatur sudut servo, kecepatan motor, serta mengganti mode.

Gambar 4.28. Pemisahan data yang diterima MotorPi

Untuk mengatur kecepatan motor DC maka dapat menggunakan fungsi pembangkitan PWM seperti pada Gambar 4.29. Fungsi pada Gambar 4.29 digunakan untuk mengatur kecepatan motor DC bagian kanan, yaitu untuk maju (RF():) dan untuk mundur (RB():).

Gambar 4.29. Fungsi pembangkitan PWM untuk mengatur motor DC

Nilai string untuk motor kiri dan motor kanan harus dilakukan penghitungan supaya MotorPi dapat mengatur PWM tiap motor dengan benar yaitu mengubah nilai 1 hingga 21 menjadi 100% hingga 0% PWM maju dan 0% hingga 100% PWM mundur. Slider pada heyGar saat mode bergerak memiliki range nilai yang dikirim dari 1 hingga 21. Sehingga, nilai 1 hingga 11 adalah perintah PWM maju dan 12 hingga 21 adalah perintah PWM mundur. Untuk mengubah nilai 1 hingga11 menjadi 100% hingga 0% PWM dapat dilakukan dengan perhitungan sebagai berikut: (-(data+11)*10). Sedangkan untuk mengubah 12 hingga 21 menjadi 0% hingga 100% PWM dapat dilakukan dengan perhitungan sebagai berikut: ((data-11)*10).


(1)

dataii=90 def ARM():

# datao = 125 # datai = 90 # dataii = 65 # SERVO1() # SERVO2() # SERVO3() x=sx y=sy z=sz

if(datao<=180 and x<125): for i in range (x,125):

dataox = (-(i-180.0)/90.0)+(1.00/2) #0-180 to 2.5-0.5 IS = dataox * 100 / cycles

LSx = (180-((dataox-(1.00/2))*90))/90+(1.00/2) LS = LSx * 100 / cycles

SI.ChangeDutyCycle(IS) SL.ChangeDutyCycle(LS) time.sleep(dly)

if(datao<=180 and x>125): for i in range(125,x): x=x-1

dataox = (-(x-180.0)/90.0)+(1.00/2) #0-180 to 2.5-0.5 IS = dataox * 100 / cycles

LSx = (180-((dataox-(1.00/2))*90))/90+(1.00/2) LS = LSx * 100 / cycles

SI.ChangeDutyCycle(IS)

SL.ChangeDutyCycle(LS) time.sleep(dly)

if(datai<=180 and y<90): for i in range (y,90):

dataix = (-(i-180.0)/90.0)+(1.00/2) #0-180 to 2.5-0$ IIS = dataix * 100.00 / cycles

SII.ChangeDutyCycle(IIS) time.sleep(dly)

print"<",y if(datai<=180 and y>90): for i in range(90,y): y=y-1

dataix = (-(y-180.0)/90.0)+(1.00/2) #0-180 to 2.5-0$ IIS = dataix * 100.00 / cycles

SII.ChangeDutyCycle(IIS) time.sleep(dly)

print"<",y if(dataii<=180 and z<65): for i in range(z,65):


(2)

IIIS = dataiix * 100.00 / cycles SIII.ChangeDutyCycle(IIIS) time.sleep(dly)

print "<",z if(dataii<=180 and z>65): for i in range(65,z): z=z-1

dataiix = (-(z-180.0)/90.0)+(1.00/2) #0-180 to 2.5-0$ IIIS = dataiix * 100.00 / cycles

SIII.ChangeDutyCycle(IIIS) time.sleep(dly)

print ">",z #---

# print datalist def BRAKE():

GPIO.output(11, False) GPIO.output(13, False) GPIO.output(10, False) GPIO.output(8, False) print "BRAKE" def LF():

GPIO.output(10, False) GPIO.output(8, True) def LB():

GPIO.output(10, True) GPIO.output(8, False) def RF():

GPIO.output(11, True) GPIO.output(13, False) def RB():

GPIO.output(11, False) GPIO.output(13, True) def SERVO1():

dataox = (-(datao-180.0)/90.0)+(1.00/2) #0-180 to 2.5-0.5 IS = dataox * 100 / cycles

LSx = (180-((dataox-(1.00/2))*90))/90+(1.00/2) LS = LSx * 100 / cycles

SI.ChangeDutyCycle(IS) SL.ChangeDutyCycle(LS) def SERVO2():

dataix = (-(datai-180.0)/90.0)+(1.00/2) #0-180 to 2.5-0$ IIS = dataix * 100.00 / cycles


(3)

def SERVO3():

dataiix = (-(dataii-180.0)/90.0)+(1.00/2) #0-180 to 2.5-0$ IIIS = dataiix * 100.00 / cycles

SIII.ChangeDutyCycle(IIIS) def SERVOEOE():

dataiiix = (-(dataiii-180.0)/90.0)+(1.00/2) #0-180 to 2.5-0$ EOES = dataiiix * 100.00 / cycles

SEOE.ChangeDutyCycle(EOES)

#datalist = int,int,int,int #duty 1-10 12-21 if(dataii == 181): trigger = 1

print "RELEASE"

if(dataii == 182): #BREAK trigger = 0

BRAKE()

if(datao == -1 and datai == -1 and dataii == -1 and (dataiii == -1 or dataiii == 188)): print "Robotic Arm Command"

trigger = 0 #BREAK mode = 0

if(dataiii == -1): ARM()

if(datao == 185 and datai == 185 and dataii == 185 and dataiii == 185): print "Robotic Move Command"

trigger = 1 #MOVE mode = 1

if(trigger == 1 and (datao>0) and (datao<11)): #LEFT MOTOR SET FORWARD LEFT = (-(datao)+11)*10 #PWM NORMALIZATION

#TO 0-100 LEFTMOTOR.ChangeDutyCycle(LEFT)

LF()

# print LEFT

if(trigger == 1 and (datao>11) and (datao<22)):#LEFT MOTOR SET BACKWARD LEFT = (datao-11)*10 #PWM NORMALIZATION

# TO 0-100 LEFTMOTOR.ChangeDutyCycle(LEFT)

LB()

# print LEFT

if(trigger == 1 and (datai>0) and (datai<11)): #RIGHT MOTOR SET FORWARD RIGHT = (-(datai)+11)*10 #PWM NORMALIZATION

#TO 0-100 RIGHTMOTOR.ChangeDutyCycle(RIGHT)


(4)

# print RIGHT

if(trigger == 1 and (datai>11) and (datai<22)): #RIGHT MOTOR SET BACKWARD RIGHT = (datai-11)*10 #PWM NORMALIZATION

#TO 0-100 RIGHTMOTOR.ChangeDutyCycle(RIGHT)

RB()

# print RIGHT

if(trigger == 0 and mode == 0 and (datao>-1) and (datao<181)): SERVO1()

if(trigger == 0 and mode == 0 and (datai>-1) and (datai<181)): SERVO2()

#print "DC SII", IIS

if(trigger == 0 and mode == 0 and (dataii>-1) and (dataii<181)): SERVO3()

#print "DC SIII", IIIS

if(trigger == 0 and mode == 0 and (dataiii>10) and (dataiii<120)): SERVOEOE()

# print "DC EOE", EOES if(dataii==183):

print "MotorPi Reboot" os.system('sudo reboot') elif(dataii==184):

print "MotorPi Halting" os.system('sudo halt') print datao,datai,dataii,dataiii


(5)

LAMPIRAN


(6)

import urllib import time import socket import os while True:

################################################################# def VPN():

print "Disconnect VPN" os.system('sudo poff -a')

print "Try connecting to VPN-PPTP" os.system('sudo pon ipdedicated updetach')

print "Add ppp0 as default route"

os.system('route add -net "0.0.0.0/0" dev "ppp0"')

################################################################# def publicIP():

url="http://ipecho.net/plain" # URL to get the IP Public ipAddress = urllib.urlopen(url).read()

if(ipAddress == "103.31.20.17"): print "publicIP is: ", ipAddress time.sleep(5)

elif(ipAddress != "103.31.20.17"): print "publicIP is: ", ipAddress print "Connect VPN"

VPN()

################################################################# def repairConnection():

os.system('sudo /usr/local/bin/checknetwork.sh')

################################################################# s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)

s.connect(("8.8.8.8", 80))

##################"192.168.0.103" is local IP#################### if((s.getsockname()[0]) == "192.168.0.103"):

print "local IP is: ", (s.getsockname()[0]) print "Checking the public IP"

publicIP()

if((s.getsockname()[0]) != "192.168.0.103"): if((s.getsockname()[0]) != "103.31.20.17"):

print "Repair connection" repairConnection() time.sleep(5)