Pengujian Servo Pengujian Hardware dan Software 1. Penggunaan Aplikasi heyGar untuk Mengendalikan MotorPi

Tabel 4.9. Berat masing-masing bagian lengan termasuk kabel dan webcamlanjutan 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 kg f .cm x 2, maka S1 akan memiliki torsi total 30 kg f .cm. Jika torsi minimum adalah 16.6 kg f .cm, maka torsi yang tersisa yaitu 30 – 16.6 = 13.4 kg f .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. PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 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. PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 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. PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 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. 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+1110. Sedangkan untuk mengubah 12 hingga 21 menjadi 0 hingga 100 PWM dapat dilakukan dengan perhitungan sebagai berikut: data-1110. Gambar 4.30. Fungsi pembangkitan PWM untuk mengatur sudut servo S1 PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI