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