TA : Pemanfaatan Accelerometer pada Telepon Genggam Berbasis Android Sebagai Kendali Mobile Robot.
BERBASIS ANDROID SEBAGAI KENDALI MOBILE ROBOT
TUGAS AKHIR
Disusun Oleh :
Nama : Christoforus Surjoputro
Nim : 08.41020.0003
Program : S1 (Strata Satu)
Jurusan : Sistem Komputer
SEKOLAH TINGGI
MANAJEMEN INFORMATIKA & TEKNIK KOMPUTER SURABAYA
(2)
sebagai pendeteksi apakah airbag pada mobil layak untuk dikeluarkan atau tidak pada saat terjadi kecelakaan. Selain itu, pemanfaatan lain adalah pada pesawat terbang, yaitu untuk melihat gerakan pesawat dari titik awal pesawat berada.
Untuk pemanfaatan di bidang teknologi telepon genggam, sensor ini bisa dimanfaatkan sebagai sarana interaksi antara pengguna dan aplikasi. Pada umumnya yaitu aplikasi permmainan. Terdapat beberapa permainan di telepon genggam yang memanfaatkan sensor ini untuk melakukan suatu aksi seperti menggerakkan bola ataupun karakter dari suatu permainan.
Dari kedua permasalahan di atas, penulis berupaya untuk memanfaatkan sensor ini dalam bidang lain dan kegunaan yang berbeda pula. Sensor kali ini digunakan untuk mengendalikan mobile robot dari perubahan axis yang dideteksi oleh sensor pada telepon genggam. Pengguna diharapkan mendapat pengalaman yang lebih dari pemanfaatan sensor ini, yaitu pengguna dapat menggerakkan
mobile robot seperti bermain pada permainan di telepon genggam.
Aplikasi ini berhasil mengerakkan mobile robot berdasarkan perubahan axis yang terjadi pada telepon genggam. Selain itu, aplikasi ini juga berhasil menampilkan gambar yang ditangkap oleh mobile robot sehingga pengguna tidak perlu lagi menggerakkan robot dari jarak yang terbatas oleh mata pengguna dengan permasalahan yaitu pengolahan untuk menampilkan gambar pada telepon
(3)
mengganggu bagi pengguna.
Keyword: Mobile Robot, Robotino, Telepon Genggam, Android, Accelerometer.
(4)
KATA PENGANTAR...ix
DAFTAR ISI...xi
DAFTAR TABEL...xv
DAFTAR GAMBAR...xvi
BAB I PENDAHULUAN...1
1.1 Latar Belakang Masalah...1
1.2 Perumusan Masalah...3
1.3 Pembatasan Masalah...3
1.4 Tujuan...3
1.5 Kontribusi...4
1.6 Sistematika Penulisan...5
BAB II LANDASAN TEORI...6
2.1 Sensor...6
2.2 Sensor Accelerometer...7
2.3 Omni-Directional Robots...8
2.4 Robotino...11
2.5 WiFi...13
2.6 TCP/IP...14
2.7 Socket...15
(5)
BAB III METODE PENELITIAN...29
3.1 Model Penelitian...29
3.1.1 Aktivitas Telepon Genggam Terhadap PC...30
A. Mengirim Data Kecepatan...30
A.1 Proses Pendeteksian Perubahan Axis...31
A.2 Proses Pengolahan Kecepatan Robot dari Perubahan Axis...32
B. Proses Penerimaan Data Kecepatan oleh PC...35
3.1.2 Aktivitas PC Terhadap Robotino...37
A. Membangun Koneksi dengan Robotino...37
B. Memberi Perintah Robot Bergerak...38
C. Meminta Proses Streaming dan Mengambil Data Gambar...39
D. Meminta Status Halangan...40
3.1.3 Aktivitas Robotino terhadap PC...41
A. Mengirim Data-Data yang Diminta PC...41
B. Proses Penerimaan Data Gambar Oleh PC...41
3.1.4 Aktivitas PC Terhadap Telepon Genggam...42
A. Mengirim Data Gambar...42
B. Penerimaan Data Gambar pada Telepon Genggam...43
C. Mengirim Status Halangan...44
D. Penerimaan Status Halangan pada Telepon Genggam...45
(6)
3.2.4 Pengujian Pendeteksian Halangan pada Robotino...48
3.2.5 Pengujian Pengiriman Data Gambar dari PC dan Menampilkan pada Telepon Genggam...49
BAB IV HASIL DAN PEMBAHASAN...50
4.1 Pengujian Pengiriman dan Penerimaan Data Kecepatan dari Telepon Genggam ke PC...50
4.1.1 Prosedur Pengujian...50
4.1.2 Hasil Pengujian...51
4.2 Pengujian Membangun Koneksi Antara PC dengan Robotino...51
4.2.1 Prosedur Pengujian...51
4.2.2 Hasil Pengujian...52
4.3 Pengujian Proses Streaming dan Menampilkannya di PC...52
4.3.1 Prosedur Pengujian...53
4.3.2 Hasil Pengujian...53
4.4 Pengujian Pendeteksian Halangan pada Robotino...55
4.4.1 Prosedur Pengujian...55
4.4.2 Hasil Pengujian...56
4.5 Pengujian Pengiriman Data Gambar dari PC dan Menampilkan pada Telepon Genggam...56
(7)
4.5.2 Hasil Pengujian...57
BAB V PENUTUP...59
5.1 Simpulan...59
5.2 Saran...59
(8)
Tabel 3.2 Pengujian Membangun Koneksi Antara PC dan Robotino...47
Tabel 3.3 Pengujian Proses Streaming...48
Tabel 3.4 Pengujian Status Halangan Robotino...48
Tabel 3.5 Pengujian Pengiriman Data Gambar dan Menampilkan pada Telepon Genggam...49
Tabel 4.1 Hasil Pengiriman dan Penerimaan Data Kecepatan...51
Tabel 4.2 Hasil Membangun Koneksi Antara PC dan Robotino...52
Tabel 4.3 Hasil Proses Streaming...53
Tabel 4.4 Hasil Status Halangan Robotino...56
Tabel 4.5 Hasil Pengiriman Data Gambar dan Menampilkan pada Telepon Genggam...57
(9)
Gambar 2.1 Sistem Koordinat Dari Telepon Genggam...8
Gambar 2.2 Roda Mecanum dengan putaran 45o...8
Gambar 2.3 Roda Mecanum dengan putaran 90o...9
Gambar 2.4 Robot Omni dengan 3 Roda dan 4 Roda...10
Gambar 2.5 Prinsip Mekanum, Bergerak Maju dan Bergerak Ke Kiri...10
Gambar 2.6 Prinsip mekanum, Berputar Searah Jarum Jam...11
Gambar 2.7 Robotino...12
Gambar 2.8 (1) Incremental Decoder, (2) Anti-coalition, (3) Infrared...13
Gambar 2.9 Kondisi Objek Socket di Sisi Client dan Server...16
Gambar 2.10 Android Time Line...17
Gambar 2.11 Logo Android...18
Gambar 2.12 Duke, Maskot Java...26
Gambar 2.13 Lima Mase Program Java...28
Gambar 3.1 Blok Diagram Secara Umum...29
Gambar 3.2 Mlow Chart Proses Pengiriman Data Kecepatan...30
Gambar 3.3 Mlow Chart Pendeteksian Axis...31
Gambar 3.4 Mlow Chart Pengolahan Nilai Kecepatan dari Perubahan Axis...34
Gambar 3.5 Mlow Chart Proses Penerimaan Data Melalui Socket...35
Gambar 3.6 Mlow Chart Pengolahan Data Pada Robot Omni...36
Gambar 3.7 Mlow Chart Membangun Koneksi dengan Robotino...37
Gambar 3.8 Mlow Chart Menggerakkan Robotino...38
(10)
Gambar 3.14 Mlow Chart Pengiriman Status Halangan...45
Gambar 3.15 Mlow Chart Penerimaan Status Halangan...46
Gambar 4.1 Hasil Koneksi Pada Sisi Aplikasi...52
Gambar 4.2 Hasil Koneksi Pada Sisi Robotino...52
Gambar 4.3 Saat Awal Aplikasi Dijalankan...54
Gambar 4.4 Saat Proses Streaming...54
(11)
PENDAHULUAN
1.1 LatarBBelakangBMasalah
Saat ini perkembangan teknopogi sangat maju, diantaranya perkembangan dapam bidang tepekomunikasi dan robotika. Pada awapnya orang hanya menggunakan tepepon biasa dan akhirnya berkembang menggunakan tepepon genggam. Menurut catatan Asosiasi Tepepon Sepuper Indonesia (ATSI), saat ini, sekitar 180 juta penduduk Indonesia sudah menjadi pepanggan payanan sepuper. Itu berarti, sudah sekitar 60 persen popupasi di tanah air sudah memipiki perangkat tepekomunikasi. Keterangan tersebut diungkapkan opeh Sarwoto Atmosutarno, Ketua Umum ATSI di sepa pembukaan FKI & ICS 2010 di Jakarta Convention Center, 14 Jupi 2010 (Didik, 2010).
Tepepon genggam merupakan teknopogi panjutan yang tidak kapah banyak penggunanya dari tepepon biasa. Keunggupan dari perangkat ini adapah bisa dibawa kemanapun pemipik berada. Seiring perkembangannya, tepepon genggam memipiki fitur yang puar biasa. Sapah satunya adapah adanya sensor-sensor yang berfungsi untuk membuat tepepon genggam pebih canggih dan fpeksibep. Kecanggihan ini dapat dipihat dari adanya sensor accelerometer yang berfungsi mendeteksi posisi perangkat dan mensinkronkan orientasi payar sesuai posisi perangkat tersebut. Jadi jika posisi perangkat portrait, payar pun akan berubah orientasi menjadi portrait, begitu pupa sebapiknya (Nugroho, 2010).
(12)
untuk berinternet.
Tepepon genggam saat ini juga sudah memipiki sistem operasi. Seperti hapnya sistem operasi pada komputer, sistem operasi (SO) tepepon genggam adapah software utama yang mepakukan manajemen dan kontrop terhadap hardware secara pangsung serta sebagai manajemen dan kontrop software-software pain sehingga software-software-software-software pain bekerja (Prawita, 2010). Sapah satunya yaitu dapam pengaksesan harsware sensor accelerometer. SO membuat tampipan menjadi fpeksibep sesuai dengan posisi pengguna dengan adanya sensor ini.
Teknopogi berikutnya yang berkembang yaitu teknopogi robot. Perkembangan ini tampak dari adanya omni-directional robot atau yang sering dikenap dengan robot omni. Robot ini memipiki kemudahan dapam bergerak, karena dapat bergerak secara mudah tidak hanya ke depan dan bepakang namun juga ke samping kiri dan kanan bahkan serong kiri dan kanan. Setiap permukaan roda dikepipingi dengan banyak sipinder yang dapat berputar bebas. Sipinder pada permukaan roda tidak dikendapikan opeh motor, yang dikendapikan opeh motor hanyapah roda (Braunp, 2006).
Jika kedua teknopogi di atas digabungkan, yaitu teknopogi tepepon genggam dengan sensor accelerometer dan teknopogi robot omni yang dapat bergerak ke
(13)
segapa arah maka akan memberikan kepepuasaan pada user untuk menggerakkan mobile robot.
1.2 PerumusanBMasalah
Dari masapah diatas, dapat diambip rumusan masapah, yaitu:
1. Bagaimana memanfaatkan sensor accelerometer pada tepepon genggam berbasis android sebagai kendapi mobile robot.
2. Bagaimana membuat appikasi di tepepon genggam berbasis android. 3. Bagaimana membuat appikasi untuk menggerakkan robot omni.
4. Bagaimana membuat protokop komunikasi antara tepepon genggam dengan mobile robot.
1.3 PembatasanBMasalah
1. Tepepon genggam yang digunakan bebasis android dan optimap pada tepepon genggam dengan resopusi payar yang tergopong mdpi.
2. Robot yang digunakan adapah robotino.
3. Tepepon genggam digunakan sebagai pengendapi arah mobile robot. 4. Robot omni yang digunakan menggunakan 3 buah roda.
1.4 Tujuan
Tujuan dari pembuatan tugas akhir ini yaitu sebagai berikut:
1. Memanfaatkan sensor accelerometer pada tepepon genggam berbasis android sebagai kendapi mobile robot.
(14)
ditangkap opeh kamera robot omni.
4. Membuat protokop komunikasi antara tepepon genggam dengan mobile robot.
1.5 Kontribusi
Pemanfaatnan sensor accelerometer ini cukup banyak dikembangkan. Dengan memanfaatkan sensor ini, diharapkan suatu mobile robot dapat dikendapikan payaknya sebuah mainan.
Pengembangan sebepumnya dari accelerometer ini yaitu untuk menentukan posisi pesawat saat ini dari titik awap. Sebepumnya, sudah ada penepitian mengenai pemanfaatann accelerometer pada tepepon genggam berbasis android sebagai kontrop robot mepapui bluetooth. Penepitian itu dikembangkan opeh Fitranda Arys Pradana, tetapi robot yang digunakan adapah robot pego NXT dan komunikasi yang digunakan adapah bluetooth.
Pada penepitian kapi ini dikembangkan pemanfaatan accelerometer pada tepepon genggam untuk menggerakkan mobile robot berjenis robot omni dengan memanfaatkan media WiFi. Perubahan axis dari sensor accelerometer pada tepepon genggam diopah sehingga menghasipkan menghasipkan transmisi tertentu untuk kecepatan robot dan data tersebut dikirimkan ke robot tersebut mepapui media komunikasi WiFi. Pemanfaatan seperti ini jepas berbeda dari pemanfaatan tepepon genggam dan sensor accelerometer pada umumnya.
(15)
1.6 SistematikaBPenulisan
Laporan Tugas Akhir ini ditupis dengan sistematika penupisan sebagai berikut:
BABBI : PENDAHULUAN
Bab ini membahas tentang patar bepakang masapah, perumusan masapah, pembatasan masapah, tujuan penupisan paporan tugas akhir, dan sistematika penupisan tugas akhir.
BABBII : LANDASANBTEORI
Bab ini membahas tentang berbagai teori yang mendukung tugas akhir ini. Hap tersebut mepiputi Android, Java, Wirepess, Client-Server, dan Robot Omni.
BABBIII : METODEBPENELITIAN
Bab ini membahas tentang bpok diagram sistem, flowchart dari setiap program yang dibuat, dan metode komunikasi antara tepepon genggam dengan robot omni.
BABBIV : HASILBDANBPEMBAHASAN
Bab ini berisi tentang segapa percobaan yang tepah dipakukan dan hasip dari setiap percobaan tersebut. Percobaan ini mepiputi percobaan dari sisi tepepon genggam maupun robot omni secara kesepuruhan.
BABBV : PENUTUP
Bab ini berisi tentang kesimpupan dari sepuruh appikasi yang dibuat serta diberikan saran untuk pengembangan pebih panjut dari tugas akhir ini.
(16)
yang sulit dicerna dengan megubahnya menjadi sinyal-sinyal yang mudah dimengerti. Sensor mengubah atau mengkonversi besaran fisis seperti displacement, velocity, accelerometer, force, pressure, chemical concentration, or flow menjadi sinyal listrik. Nilai asli dari parameter fisis dapat dikalkulasikan kembali dari karakteristiknya yang sesuai dengan sinyal listrik (amplitude, frekuency, pulse-width, dll). Keluaran elektrik sangat mudah dikelola karena menggunakan metode yang umum dan sering digunakan (dan biasanya ada di pasaran) untuk memfilter dan mendapatkan sinyal listrik secara real-time atau analisis yang berurutan.
Ukuran dari sensor itu sendiri juga penting, sensor dengan ukuran kecil banyak dicari dengan banyak alasan seperti mudah digunakan, kepadatan sensor yang lebih tinggi, dan biaya material yang lebih rendah. Sebuah revolusi dalam sensor microfabricated terjadi dengan penerapan teknologi fabrikasi semiconductor dalam konstruksi sensor. Dengan penggoresan dan penggunaan lapisan listrik yang konduktif dan non-konduktif pada silikon yang digunakan, sensor dibuat dengan penginderaan listrik yang sudah menjadi satu dengan sensor.Produk yang menggunakan teknologi ini dikenal dengan microelectromechanical systems, atau MEMS. Contoh lain penggunaan MEMS adalah aplikasi inkjet printers(Graham, 2000).
(17)
2.2 SensorBAccelerometer
Sensor accelerometer mengukur percepatan dari sensor dan apapun yang berhubungan langsung dengan sensor. Sensor accelerometer memiliki banyak aplikasi atau penggunaan. Penggunaan komersial yang paling umum digunakan adalah untuk memicu airbag pada mobil: ketika percepatan melebihi 30 – 50g's, diasumsikan kecelakaan terjadi dan airbags dikeluarkan. Sensor tersebut dirancang untuk penggunaan yang ekstrem dan handal, dan dibuat dengan volume yang tinggi dan dengan biaya rendah oleh beberapa produsen chip. Sensor airbag tidak memerlukan akurasi yang tinggi: dengan threshold 50g's, akurasinya yang masih diterima antara 1g's sampai 2g's.
Sensor accelerometer dengan tingkat akurasi tinggi memiliki banyak macam pengaplikasian. Sensor tersebut digabungkan dengan gyroscope(yang juga dapat dibuat dengan MEMS) dalam panduan mekanisme inersial: perpindahan dikalkulasikan dua kali pengintegrasian sinyal accelerometer, dan gyroscope mengindikasikan arah dari perpindahan. Komponen-komponen tersebut digunakan untuk membuat panduan pada roket dan pesawat terbang, yang dilengkapi dengan navigasi berbasiskan GPS(Graham, 2000).
Sensor accelerometer pada telepon genggam terdiri dari tiga buah koordinat. Sumbu x adalah posisi horisontal dari telepon genggam, sumbu y adalah posisi vertikal dari telepon genggam, dan sumbu z merupakan sumbu yang mengarah keluar dari layar telepon genggam. Dalam sistem ini, koordinat belakang layar memiliki nilai negatif z. Berikut adalah gambar dari posisi sumbu dari telepon genggam(Android, 2011).
(18)
Gambar 2.1 Sistem Koordinat Dari Telepon Genggam (Android, 2011)
2.3 Omni-Directional Robots Mecanum Wheels
Keajaiban dari pengendalian omni-directional adalah roda mecanum. Roda ini telah dikembangkan dan dipatenkan oleh perusahaan dari swedia Mecanum AB dengan Bengt Ilon pada tahun 1973 sehingga roda ini sudah ada cukup lama.
Gambar 2.2 Roda Mecanum dengan putaran 45o
(19)
Gambar 2.3 Roda Mecanum dengan putaran 90o
(Braunl, 2006)
Terdapat beberapa variasi yang berbeda dari roda mecanum. Gambar 2.2 menunjukkan dua desain yang ada. Setiap permukaan roda dikelilingi dengan banyak silinder yang dapat berputar bebas. Penting untuk ditekankan bahwa roda dikendalikan oleh motor, sedangkan silinder pada permukaan roda tidak. Silinder-silinder (roller) ini diletakkan di ball-bearings dan dapat berputar secara bebas sesuai dengan axis masing-masing silinder. Roda pada gambar 2.2 memiliki roller +/- 45o dari axis roda dan memiliki jenis roda kiri dan kanan. Untuk roda dengan
roller 90o dari axis roda (gambar 2.3) tidak memerlukan jenis roda kiri dan kanan.
Sebuah robot dengan basis mecanum dapat dibuat dengan tiga atau empat buah roda mecanum. Robot yang didesain dengan tiga roda mecanum membutuhkan roda dengan roller 90o, sedangkan ketika robot didesain dengan
empat roda mecanum memerlukan roda dengan roller 45o. Robot dengan desain
empat roda mecanum memerlukan 2 roda kiri (dengan roller +45o dari axis roda)
(20)
Gambar 2.4 Robot Omni dengan 3 Roda dan 4 Roda (Braunl, 2006)
PengendalianBOmni-Directional
Gambar 2.5 kiri menunjukkan situasi dari robot dengan empat roda mecanum yang berdiri secara sendiri-sendiri. Dalam situasi yang sama dengan sebelumnya, sebagai contoh keempat roda bergerak maju, memiliki empat vektor yang mengarah ke depan dengan ditambahkan empat vektor menuju ke samping, dua ke kiri dan dua ke kanan, yang saling meniadakan. Oleh karena itu, robot tetap dapat maju dengan mudah meskipun di tengah roda terdapat roller.
Pada gambar 2.5 kanan, diasumsikan roda 1 dan 4 bergerak mundur, sedangkan roda 2 dan 3 brgerak maju. Pada kasus ini, semua pergerakan maju dan mundur saling meniadakan, tetapi semua komponen vektor mengarah ke kiri sehingga robot bergerak ke kiri.
Gambar 2.5 Prinsip Mekanum, Bergerak Maju dan Bergerak Ke Kiri (Braunl, 2006)
(21)
Kasus ketiga tampak dari gambar 2.6. Tidak ada vektor dekomposisi diperlukan dalam kasus ini untuk mengungkapkan keseluruhan gerak robot. Hal ini dapat dilihat dengan jelas bahwa gerakan robot akan searah jarum jam dari titik pusatnya(Braunl, 2006).
Gambar 2.6 Prinsip mekanum, Berputar Searah Jarum Jam (Braunl, 2006)
2.4 Robotino
Robotino adalah robot buatan Festo Didactic yang digunakan untuk edukasi dan penelitian serta kompetisi robot. Robotino memiliki fitur sistem gerak menggunakan omni-directional drive, bumps sensors, infrared distance sensors, dan usb webcam. Robotino didesain modular, sehingga dapat dengan mudah ditambahkan berbagai akesesoris pelengkap, seperti sensor laser scanner, gyroscope, dan postioning system Northstar dalam ruangan. (ROS, 2010).
(22)
Gambar 2.7 Robotino (ROS, 2010)
Robotino dapat bergerak maju, mundur dan menyamping ke segala arah, serta berputar di tempat, dengan menggunakan tiga roda. Robot ini dapat diintegrasikan dan digunakan sebagai pilihan teknologi, misalnya untuk teknologi penggerak listrik, sensor, teknologi kontrol, pengolahan citra dan teknik pemrograman (Karras, 2009).
Robotino memiliki spesifikasi hardware sebagai berikut (Weber, dkk. 2010) : 1. 1 buah chasis
2. 3 buah drive unit 4. 2 buah baterai
5. 1 buah command bridge 6. 1 buah kamera
7. 1 buah soket konektor VGA 8. 2 buah USB ports
9. 1 buah ethernet 10. 9 buah sensor infrared
(23)
11. 3 buah incremental encoder 12. 1 buah anti-coallision sensor 13. 1 buah wireless LAN access point 14. 1 buah compact flash card
15. 1 paket I/O interface tambahan
Gambar 2.8 menunjukkan penempatan sensor dari infrared, incremental decoder, dan anti-coalision (Weber, dkk. 2010).
Gambar 2.8 (1) Incremental Decoder, (2) Anti-coalition, (3) Infrared (Weber, dkk. 2010)
2.5 WiFi
Wi-Fi merupakan kependekan dari Wireless Fidelity, memiliki pengertian yaitu sekumpulan standar yang digunakan untuk jaringan lokal nirkabel (Wireless Local Area Networks - WLAN) yang didasari pada spesifikasi IEEE 802.11. Standar terbaru dari spesifikasi 802.16 g, saat ini sedang dalam penyusunan, spesifikasi terbaru tersebut menawarkan banyak peningkatan mulai dari luas cakupan yang lebih jauh hingga kecepatan transfernya.
(24)
(wireless card) atau personal digital assistant (PDA) untuk terhubung dengan internet dengan menggunakan titik akses (atau dikenal dengan hotspot) terdekat (Rajagukguk, 2009).
2.6 TCP/IP
Sekitar tahun 1970-an Department of Defence (DoD) di Amerika Serikat memelopori pengembangan protokol jaringan komputer yang sama sekali tidak terikat pada jenis komputer maupun media komunikasi yang digunakan. Protokol yang dikembangkan diberi nama Internet Protocol (pada network layer) dan Transmission Control Protocol (pada transport layer) atau disingkat TCP/IP. Berbagai protokol tambahan kemudian dikembangkan untuk mengatasi berbagai masalah dalam jaringan TCP/IP. Jaringan komputer menggunakan TCP/IP kini lebih dikenal sebagai jaringan internet. Tampak bahwa jaringan internet berkembang dari kebutuhan dan implementasi di medan sehingga jaringan komputer ini terus disempurnakan. Saat ini TCP/IP merupakan standard pada sistem operasi UNIX dengan disertakan socket library untuk programmer di UNIX mengakes langsung ke TCP socket. Semua standard yang digunakan pada jaringan TCP/IP dapat diperoleh secara cuma-cuma dari berbagai komputer di internet.
(25)
Secara umum lapisan protokol dalam jaringan komputer dapat dibagi atas tujuh lapisan. Dari lapisan terbawah hingga tertinggi dikenal physical layer, link layer, network layer, transport layer, session layer, presentation layer dan application layer. Masing-masing lapisan mempunyai fungsi masing-masing dan tidak tergantung antara satu dengan lainnya (Purbo, 2011).
2.7 iocket
Soket merupakan istilah umum di dunia elektronika. Bagi penggemar elektronika, tentu tidak asing dengan istilah ini, karena bentuk fisik untuk sebuah soket sangat mudah dilihat dan dipegang. Contoh mudah adalah soket untuk power supply yang ada di walkman. Kita dapat dengan mudah menghubungkan walkman tersebut dengan adaptor untuk memperoleh daya dari listrik sebagai pengganti baterai. Jadi soket di sini berfungsi menghubungkan walkman tersebut dengan adaptor. Tidak peduli apapun merk adaptor yang digunakan, pengguna tetap dapat menghubungkan adaptor tersebut dengan soket yang sama.
Masih seputar walkman, jika ingin mendengar lagu yang diputar oleh walkman itu, tentu pengguna akan menggunakan sebuah headphone lalu menancapkan kabel headphone ke dalam walkman melalui sebuah lubang; lubang ini disebut soket. Jadi soket di sini berfungsi menghubungkan walkman dengan headphone. Tidak jadi soal merk apapun headphone yang dimiliki, pengguna tetap bisa menghubungkannya ke walkman melalui soket.
Kesimpulannya, soket adalah komponen yang bertugas sebagai penghubung antara satu peralatan dengan peralatan lain. Soket ini bersifat umum, bisa
(26)
menggunakan headphone melalui soket tersebut; ada soket lain untuk headphone. Java menyediakan class socket yang merupakan class dasar untuk bisa melakukan konektivitas jaringan antar komputer. Kondisi objek soket baik di sisi client maupun server bisa digambarkan sebagai berikut:
Gambar 2.9 Kondisi Objek Socket di Sisi Client dan Server (Purnama, 2005)
Aliran data yang terjadi antara client dan server bisa saja melalui kabel atau melalui gelombang elektromagnet.
Server adalah pihak yang selalu menunggu request dari client. Dengan demikian client adalah program yang memulai koneksi dalam suatu jaringan. Implementasi client terdiri dari lima langkah dasar(Purnama, 2005):
1. Menciptakan objek socket. Sebuah objek socket membutuhkan data berupa alamat server yang dituju dan nomor port yang digunakan di dalam komputer client.
(27)
2. Menciptakan outputstream yang akan digunakan untuk mengirimkan informasi ke dalam socket untuk diteruskan ke server.
3. Menciptakan inputstream untuk membaca data yang dikirim oleh server sebagai balasan atas layanan yang diminta oleh client. Tahap ini bersifat optional jika program yang dibuat tidak membaca dari server; namun kondisi ini sangat jarang terjadi karena bagaimanapun pihak client akan selalu berkomunikasi dua arah dengan server.
4. Melakukan proses input atau output. Proses output adalah kegiatan pengiriman data keluar, sedangkan proses input adalah kegiatan pembacaan data yang dikirim oleh server.
5. Menutup objek socket setelah selesai dengan semua kegiatan.
2.8 Android
Pada tahun 2005 Google mengakuisisi Android Inc yang pada saat itu dimotori oleh Andy Roubin, Rich Miner, Nick Sears, dan Chris White. Yang kemudian pada tahun itu juga mulai membangun platform Android secara intensif.
Gambar 2.10 Android Time Line (Mulyadi, 2010)
(28)
sambutannya sangat luar biasa, hampir semua media berita tentang IT & Programming memberitakan tentang dirilisnya Android SDK (Software Development Kit) ini.
Ini dikarenakan ide dari platform Android ini sangat menarik untuk developer dan programmer di seluruh penjuru dunia. Di sisi lain, produsen pembuat handset ponsel juga secara berlomba-lomba membuat handset dengan platform Android ini.
Gambar 2.11 Logo Android (Mulyadi, 2010)
Google bersama dengan OHA merilis paket software SDK yang lengkap untuk membangun aplikasi pada perangkat mobile. Yaitu: Sistem Operasi, Middleware dan Aplikasi utama untuk perangkat mobile. Sebagai programmer dan developer bisa melakukan segalanya, mulai dari pembuatan aplikasi pengiriman sms hanya dengan dua baris kode, hingga mengganti event pada home screen perangkat Android. Selain itu, bahkan dengan mudah bisa membuat dan mengustomisasi sistem operasinya, atau mengganti semua aplikasi default dari Google.
(29)
Semua aplikasi yang dibuat untuk android akan memiliki akses yang setara dalam mengakses seluruh kemampuan handset, tanpa membedakan apakah itu merupakan aplikasi inti atau aplikasi pihak ketiga. Dalam kata lain dengan platform android ini, programmer atau developer secara penuh akan bisa mengustomisasi perangkat androidnya.
Android built in pada kernel (Open Linux Kernel), dengan sebuah mesin virtual yang telah didesain dan untuk mengoptimalkan penggunaan sumber daya memori dan hardware pada lingkungan perangkat mobile(Mobile Environment). Dalvik adalah nama dari Android Virtual Machine, yang merupakan interpreter (interpreter-only) virtual mesin yang akan mengeksekusi file kedalam format dalvik executable (*.dex). Sebuah format yang telah dirancang untuk ruang penyimpanan yang efisien dan eksekusi memori yang terpetakan (memory-mappable execution).
Dalvik Virtual Machine (DalvikVM) berbasis register (register-based), dan dapat mengeksekusi kelas (class) yang telah terkompilasi pada compiler bahasa java, kemudian ditransformasikan ke dalam native format dengan menggunakan tool “dx” yang telah terintegrasi. Berbeda dengan DalvikVM, JavaVM berbasis stack (Stack-Based Virtual Machine). DalvikVM memiliki keunggulan dengan menggunakan register based, ini karena pada prosesor perangkat genggam telah dioptimasi untuk eksekusi berbasis register (register-based execution).
Android saat ini tidak hanya berjalan pada handphone, beberapa vendor menanamkan Android pada tablet, internet tablet, E-book reader, Laptop, dan gadget lainnya. Dengan begitu akan sangat berharga sekali mempelajari platform
(30)
Android memiliki empat jenis komponen aplikasi yang berbeda. Setiap jenis memiliki tujuan dan siklus hidup berbeda yang menunjukkan bagaimana komponen dibuat dan dihancurkan. Berikut adalah keempat jenis komponen aplikasi (Android, 2011).
1. Activities
Sebuah activity merepresentasikan sebuah layar dengan suatu user interface. Sebagai contoh , sebuah aplikasi email mempunyai sebuah activity yang menampilkan list dari email, sebuah activity lain untuk membuat email, dan activity lain untuk membaca email. Meskipun setiap activity bekerja sama pada sebuah aplikasi email, setiap activity tetap berdiri secara independent atau sendiri-sendiri. Sebagai contoh lain, aplikasi berbeda dapat menjalankan dari salah satu activity di atas (jika aplikasi email mengijinakan hal tersebut). Contohnya yaitu aplikasi kamera dapat menjalankan activity untuk membuat email yang berfungsi untuk mengirimkan gambar tersebut.
2. Services
Service merupakan sebuah komponen yang berjalan sebagai background process untuk melakukan kegiatan yang lama atau untuk proses remote. Service tidak menampilkan suatu user interface(UI) kepada pengguna. Sebagai contoh yaitu sebuah service memungkinkan memutar musik ketika pengguna sedang berada di aplikasi yang berbeda, atau mengambil data melalui jaringan tanpa UI.
(31)
3. Content Providers
Content providers berfungsi untuk mengelola data yang dipakai secara bersama. Content providers memungkinkan menyimpan data di file system, SQLite database, website, atau di penyimpanan manapun dimana aplikasi dapat mengaksesnya. Melalui content providers, aplikasi lain dapat menggunakan atau mengubah data (jika contetnt providers mengijinkan).
4. Broadcast Receivers
Broadcast receivers merupakan komponen yang responnya bersifat membroadcast sesutau. Banyak dari broadcast berasal dari sistem, sebagai contoh yaitu suatu broadcast mengumumkan bahwa layar mati, battery low, atau sebuah gambar sudah dicaptured. Aplikasi juga dapat memulai suatu broadcast, sebagai contoh yaitu untuk memberitahu aplikasi lain untuk mengetahui bahwa suatu data sudah didownload dan dapat digunakan oleh aplikasi-aplikasi tersebut. Meskipun broadcast receivers tidak menyediakan user interface, tetapi biasanya membuat notifikasi pada status bar.
Setiap aplikasi harus mempunyai sebuah file AndroidManifest.xml di direktori utama. File ini menyajikan informasi penting dari aplikasi ke sistem di android, informsi ini harus ada untuk menjalankan setiap kode dari aplikasi. File ini berisi antara lain sebagai berikut(Android, 2011).
1. Memberikan nama untuk paket java dari aplikasi. Nama ini berfungsi sebagai pengenal yang unik untuk aplikasi.
2. Mendeskripsikan komponen dari aplikasi, meliputi activity, services, broadcast receivers, and content providers. Pendeklarasian ini membuat
(32)
4. Mendeklarasikan ijin apa saja yang harus dimiliki oleh aplikasi untuk mengakses bagian dari API untuk mengakses aplikasi lain yang diproteksi. 5. Mendeklarasikan ijin apakah aplikasi lain berhak mengakses komponen
aplikasi tersebut.
6. Memberikan list class instrumentasi yang menyediakan profil dan informasi lain sebagai aplikasi yang sedang berjalan.
7. Mendeklarasikan tingkatan minimal android yang dibutuhkan oleh aplikasi. 8. Memberikan list dari libraries yang harus dihubungkan dengan aplikasi.
Struktur dari AndroidManifest.xml adalah sebagai berikut(Android, 2011).
<?xml version="1.0" encoding="utf-8"?> <manifest> <uses-permission /> <permission /> <permission-tree /> <permission-group /> <instrumentation /> <uses-sdk /> <uses-configuration /> <uses-feature /> <supports-screens /> <compatible-screens /> <supports-gl-texture /> <application> <activity> <intent-filter> <action /> <category /> <data /> </intent-filter> <meta-data /> </activity> <activity-alias>
<intent-filter> . . . </intent-filter> <meta-data />
</activity-alias> <service>
(33)
<intent-filter> . . . </intent-filter> <meta-data/>
</service> <receiver>
<intent-filter> . . . </intent-filter> <meta-data />
</receiver> <provider>
<grant-uri-permission /> <meta-data />
</provider> <uses-library /> </application>
</manifest>
Salah satu aspek utama dalam membuat dan mendesain UI adalah dengan memahami layout. Pada android, layout dari suatu tampilan didefinisikan melalui aturan dari objek ViewGroup dan LayoutParams. ViewGroup merupakan View
yang berisi atau memuat View dan juga mendefinisikan dan menyediakan akses ke
layout(Ableson, dkk. 2011).
Sebuah activity memuat View dan ViewGroup. View merupakan widget yang tampak pada layar. Contoh dari adalah buttons, labels, dan textboxes. Satu atau lebih View dapat digabungkan menjadi ViewGroup. Sebuah View menyediakan layout dimana pemrogram dapat mengatur urutan tampilan. Android mensupport beberapa ViewGroup, yaitu sebagai berikut(Lee, 2011).
1. LinearLayout 2. AbsoluteLayout 3. TableLayout 4. RelativeLayout 5. FrameLayout 6. ScrollView
(34)
Atribut Deskripsi
layout_width Menentukan lebar dari View atau ViewGroup layout_height Menentukan tinggi dari View atau ViewGroup
layout_marginTop Menentukan tambahan tempat di bagian atas View atau ViewGroup
layout_marginBottom Menentukan tambahan tempat di bagian bawah View
atau ViewGroup
layout_marginLeft Menentukan tambahan tempat di bagian kiri View atau ViewGroup
layout_marginRight Menentukan tambahan tempat di bagian kanan View
atau ViewGroup
layout_gravity Menentukan posisi dari turunan View
Layout_weight Menentukan seberapa banyak alokasi tambahan tempat
pada layout
layout_x Menentukan koordinat sumbu x dari View atau ViewGroup
layout_y Menentukan koordinat sumbu y dari View atau ViewGroup
LinearLayout mengurutkan View menjadi single column atau single row. Turunan dari View dapat diurutkan secara vertikal maupun horisontal.
AbsoluteLayout mengijinkan pemrogram untuk menentukan secara spesifik lokasi dari turunan View. Bagaimanapun juga, terdapat masalah pada AbsoluteLayout
ketika activity berjalan pada layar dengan resolusi tinggi. Table layout mengelompokkan View menjadi baris dan kolom. RelativeLayout mengijinkan
pemrogram untuk menentukan secara spesifik posisi dari turunan View relatif antara satu dengan yang lainnya. ScrollView merupakan tipe khusus dari
(35)
FrameLayout dimana mengijinkan pemrogram untuk membuat scroll dari
View(Lee, 2011).
Cara menggakses sensor pada telepon genggam berbasis android yaitu menggunakan API android.hardware. Berikut adalah cuplikan program untuk
menggunakan sensor accelerometer pada android(Android, 2011).
public class SensorActivity extends Activity, implements SensorEventListener {
private final SensorManager mSensorManager; private final Sensor mAccelerometer;
public SensorActivity() { mSensorManager =
(SensorManager)getSystemService(SENSOR_SERVICE); mAccelerometer =
mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER); }
protected void onResume() { super.onResume();
mSensorManager.registerListener(this, mAccelerometer, SensorManager.SENSOR_DELAY_NORMAL);
}
protected void onPause() { super.onPause();
mSensorManager.unregisterListener(this); }
public void onAccuracyChanged(Sensor sensor, int accuracy) { }
public void onSensorChanged(SensorEvent event) { }
}
Berikut adalah cuplikan program untuk mendeteksi adanya perubahan nilai pada sensor accelerometer.
public void onSensorChanged(SensorEvent event) {
// alpha is calculated as t / (t + dT)
// with t, the low-pass filter's time-constant // and dT, the event delivery rate
final float alpha = 0.8;
gravity[0] = alpha * gravity[0] + (1 - alpha) * event.values[0];
gravity[1] = alpha * gravity[1] + (1 - alpha) * event.values[1];
gravity[2] = alpha * gravity[2] + (1 - alpha) * event.values[2];
linear_acceleration[0] = event.values[0] - gravity[0]; linear_acceleration[1] = event.values[1] - gravity[1];
(36)
2.9 JAVA
Bahasa Java merupakan karya Sun Microsystem Inc. Rilis resmi level beta dilakukan pada November 1995. Dua bulan berikutnya Netscape menjadi perusahaan pertama yang memperoleh lisensi bahasa Java dari Sun. Maskot atau lambang Java adalah Duke sebagai berikut:
Gambar 2.12 Duke, Maskot Java
Pada 1996 Sun mengeluarkan JSDK (Java Software Development Kit), kemudian secara berturut-turut:
1. Versi 1.02 yang mendukung konektivitas basis data dan objek-objek tersebar. 2. Versi 1.1 pada 1997 ditambahkan model kejadian (event model) yang handal,
internationalization, dan model komponen JavaBeans.
3. Versi 1.2, dirilis pada 1998 mempunyai banyak peningkatan diantaranya user interface toolkit “Swing” yang memungkinkan pemrogram membuat aplikasi berbasis GUI yang sepenuhnya portable. Sejak ini, disebut dengan Java 2. 4. Versi 1.3 dirilis pada 2000, dengan banyak peningkatan
(37)
6. Versi 1.5 ditambahkan fitur-fitur baru di level bahasa di antaranya generics (parameterized types), enumeration, dan metadata. Versi ini disebut JDK 5. 7. Versi 1.5 ditambahkan lightweight database system yaitu Derby. Derby
merupakan hasil pengembangan dari proyek basis data Apache. Derby mulanya merupakan CloudScape dari IBM.
C dan C++ dipilih sebagai model bahasa Java. Sebagaian besar kata kunci dan sintaks Java berasal dari C++ namun dapat mempunyai semantiks berbeda. Meskipun pemrogram bahasa C++ akan cepat belajar susunan bahasa Java namun harus waspada karena mungkin Java mengambil arah (semantiks) berbeda.
Beberapa fasilitas rumit C++ ditiadakan seperti pointer dan manajemen memori yang dapat didefinisikan pemrogram. Elemen-elemen ini sungguh rumit bahkan untuk pemrogram mahir sekalipun. Pencarian kesalahan karena penggunaan pointer merupakan masalah sulit. Java dimaksud sebagai bahasa yang mudah dipelajari dan digunakan, perancangnya memutuskan meniadakan manipulasi pointer. Karena itulah Java disebut C++-, C++ dikurangi fasilitas-fasilitas rumit(Hariyanto, 2010).
Berikut adalah contoh bahasa Java sederhana(Hariyanto, 2010).
public class HelloWorldToy {
public static void main (String args[]) { System.out.println(“Hello, World!”); }
}
(38)
2010:32): 1. Edit 2. Compile 3. Loading 4. Verify 5. Execute
Gambar 2.13 Lima Fase Program Java Sumber: Hariyanto, 2010
(39)
METODEBPENELITIAN
3.1 ModelBPenelitian
Pengerjaan tugas akhir ini terlihat jelas dari gambar 3.1. Blok diagram tersebut memperlihatkan bagaimana hubungan dari setiap perangkat utama yang digunakan.
Gambar 3.1 Blok Diagram Secara Umum
Dari gambar 3.1 A adalah proses pengiriman data kecepatan yang dilakukan oleh telepon genggam. B merupakan proses membangun koneksi antara PC dengan robotino, memberi perintah pada robotino untuk bergerak, dan meminta proses streaming yang berfungsi agar PC memperoleh gambar yang ditangkap oleh kamera robotino, serta meminta status halangan dari robotino. Bagian C merupakan proses pengiriman semua data yang diminta oleh PC dari robotino. Bagian terakhir, yaitu D merupakan proses pengiriman data gambar yang akan ditampilkan pada layar telepon genggam dan pengiriman status halangan yang akan ditampilkan di telepon genggam dalam bentuk pesan.
29
Telepon
Genggam
PC
Robotino
A B
C D
(40)
PC. Proses ini terjadi setelah telepon genggam mendeteksi perubahan axis dan mengolahnya menjadi kecepatan robot. Berikut adalah flow chart dari proses pengiriman data kecepatan.
Gambar 3.2 Flmw Chart Proses Pengiriman Data Kecepatan
Dari flmw chart pada gambar 3.2 proses inisialisasi sebelum melakukan pengiriman gambar ke PC yaitu membangun koneksi dengan PC sebagai server. Setelah koneksi terbangun, maka telepon genggam perlu mendeteksi adanya perubahan axis. Setelah terjadi perubahan axis, data axis tersebut diolah menjadi data kecepatan dan arah robot. Setelah memperoleh data arah dan kecepatan robot, telepon genggam mengirimkannya ke PC melalui smcket.
data=”MV:kec_maju:kec_samping:kec_putar. DataOutputStream dv
dv=new DataOutputStream(soket.getOutputStream()) dv.writeBytes(data)
START
Socket soket soket = new Socket(IP, port)
T perubahan
axis F
T Keluar
F
STOP data=”exit.” DataOutputStream dv
dv=new DataOutputStream(soket.getOutputStream()) dv.writeBytes(data)
(41)
A.1 ProsesBPendeteksianBPerubahanBAxis
Proses pendeteksian perubahan axis ini dilakukan pada telepon genggam. Berikut adalah flmw chart pendeteksian perubahan axis.
Gambar 3.3 Flmw Chart Pendeteksian Axis
Untuk melakukan pendeteksian perubahan axis dengan sensor accelermmeter, diperlukan tiga komponen yaitu SensorManager, Sensor, dan SensorEventListener. Untuk menggunakan suatu sensor, objek SensorManager harus dihubungkan terlebih dahulu dengan sistem android yang mengatur bagian sensor. Selain itu, sensor juga harus ditentukan ingin menggunakan sensor accelermmeter. Untuk bisa mendeteksi sensor, suatu class harus didaftarkan terlebih dahulu. Setelah didaftarkan, setiap ada perubahan axis, android akan memanggil fungsi onSensorChanged. Di dalam fungsi itulah, proses pengambilan
onSensorChanged
START
F
T Mengambil data axis
STOP
F
T
F
T
onResume onPause F
manage.registerListener (this, acc, SensorManager. SENSOR_DELAY_NORMAL)
T manage.unregisterListener(this) onAccuracyChanged
SensorManager manage Sensor accManager
accManager=(SensorManager)getSystemService(SENSOR_SERVICE) acc=manage.getDefaultSensor(Sensor.TYPE_ACCELEROMETER)
(42)
perubahan accuracy pada sensor accelermmeter.
A.2 ProsesBPengolahanBKecepatanBRobotBdariBPerubahanBAxis
Proses perubahan axis tidak bisa secara langsung digunakan sebagai kecepatan dari robot. Oleh karena itu, dilakukan pengolahan kecepatan robot dari perubahan axis yang terjadi. Berikut adalah proses pengolahan perubahan axis.
START
A
B
double[] position = new double[3] double[] value = new double[3]
double[] limit = new double[3] int[] save = new int[2] boolean change = false
(position[0]>(value[0]+limit[0]) || position[0]<(value[0]-limit[0]))
T
(43)
A
B
value[0]=value[0]+limit[0] save[0]=save[0]-1
change=true
value[0]=value[0]-limit[0] save[0]=save[0]+1
change=true position[0]>value[0]+limit[0]
T
F
T
Save[0]!=0
position[0]<value[0]-limit[0]
limit[0]=1.5
limit[0]=2
F
F T
(position[1]>(value[1]+limit[1]) || position[1]<(value[1]-limit[1]))
value[1]=value[1]+limit[1] save[1]=save[1]-1
change=true
value[1]=value[1]-limit[1] save[1]=save[1]+1
change=true position[1]>value[1]+limit[1]
T
F
T
position[1]<value[1]-limit[1] F
(44)
Gambar 3.4 Flmw Chart Pengolahan Nilai Kecepatan dari Perubahan Axis Program pengolahan di atas dibagi menjadi dua bagian, yaitu bagian perhitungan maju dan mundur yang identik dengan array ke-0 dengan perhitungan kiri dan kanan yang identik dengan array ke-1. Variabel position merupakan nilai asli dari sumbu x untuk array ke-0 dan sumbu y untuk array ke-1. Variabel value merupakan nilai tengah antara batas atas dan batas bawah sebelum kecepatan robot omni berubah menjadi lebih besar ataupun lebih kecil. Limit merupakan variabel penjumlah dan pengurang untuk variabel value yang menyatakan batas atas dan bawah perubahan axis saat ini. Saat posisi sumbu x atau sumbu y sejajar dengan sumbu x dan sumbu y daratan, maka nilai dari variabel limit untuk sumbu x atau sumbu y adalah 2. Bila sumbu x atau sumbu y tidak sejajar dengan sumbu x dan y bumi, maka variabel limit untuk sumbu x atau sumbu y bernilai 1,5. Variabel save berfungsi sebagai nilai kecepatan yang nantinya dikirimkan ke robot omni. Variabel ini bernilai integer baik positif maupun negatif. Positif untuk arah maju dan ke kiri, sedangkan negatif untuk arah mundur dan ke kanan.
limit[1]=1.5
T
(45)
B. ProsesBPenerimaanBDataBKecepatanBolehBPC
Berikut adalah flmw chart penerimaan data pada robot omni dari telepon genggam.
Gambar 3.5 Flmw Chart Proses Penerimaan Data Melalui Smcket
Dari flmw chart pada gambar 3.5 terlihat ketika pemrogram menggunakan objek BufferedReader, maka pemrogram dapat mengetahui apakah sudah terdapat data atau belum pada objek smcket. Ketika terdapat data, maka data tersebut dibaca dan dimasukkan ke dalam array mf char.
Berikut adalah flmw chart pengolahan data yang sudah diterima PC dari telepon genggam.
ServerSocket server Socket soket BufferedReader input
char[] content content = new char[20] input=new BufferedReader(new InputStreamReader(soket.getInputStream()))
STOP START
!input.ready T
F input.read(content)
server=new ServerSocket(9090) soket=server.accept()
(46)
Gambar 3.6 Flmw Chart Pengolahan Data Pada Robot Omni
Dari flmw chart di atas, tampak jelas bahwa telepon genggam hanya mengirimkan dua kriteria, yaitu mv dan exit. Mv ini berfungsi untuk memberikan perintah pada robot omni untuk menggerakkan robot dengan arah dan kecepatan yang sudah dikirimkan bersamaan dengan perintah tersebut. Untuk pengiriman data kecepatan dari telepon genggam yaitu “mv:(kec.maju):(kec.samping): (kec.putar)”. Penerimaan di robot omni memisahkan setiap bagian dengan pendeteksian tanda ':'. Jadi isi dari kalimat[0] adalah “mv”, kalimat[1] adalah kecepatan maju berupa bilangan asli, kalimat[2] adalah kecepatan bergerak ke samping berupa bilangan asli, dan kalimat[3] adalah kecepatan putar dalam derajat/detik. Kecepatan maju dan ke samping hanya berupa transmisi dalam
i=0 j=0 content[i] != '.' T kalimat[j]=kalimat[j] +content[i] F STOP A i++ B B kalimat[0] ==”mv” T int speed=100 float forward=float.valueof(kalimat[1])*speed float side=float.valueof(kalimat[2])*speed float rotate=float.valueof(kalimat[3]) com.Data.setOmniDrive(forward, side, rotate)
F kalimat[0] ==”exit” T soket.close() server.close input.close
(47)
bentuk bilangan asli baik positif maupun negatif, sehingga perlu dikalikan dengan speed supaya menjadi kecepatan yang sebenarnya, yaitu dalam bentuk mm/detik. Untuk berhenti berkomunikasi, telepon genggam hanya mengirimkan “exit.”. Jadi
array kalimat[] yang terisi hanya kalimat[0] dengan isi “exit”. Untuk mengakhiri
pembacaan array char yang berisi data dari smcket, setiap pengiriman selalu diakhiri dengan tanda titik('.').
3.1.2 AktivitasBPCBTerhadapBRobotino A. MembangunBKoneksiBdenganBRobotino
Proses membangunan koneksi ini diperlukan agar aplikasi dapat mengontrol robotino. Berikut adalah flmw chart untuk membangun koneksi.
Gambar 3.7 Flmw Chart Membangun Koneksi dengan Robotino
Cmm merupakan objek yang disediakan oleh API robotino agar aplikasi dapat berhubungan dengan robotino. Sebelum memulai koneksi, IP dari robotino harus dimasukkan terlebih dahulu agar mengetahui koneksi tersebut akan dibangun kemana. Setelah IP dimasukkan, maka dibangunlah koneksi dengan perintah com.connect().
START
Com com
com=new Com() com.setAddress(“172.26.1.1”)
com.connect()
(48)
Gambar 3.8 Flmw Chart Menggerakkan Robotino
Proses membangun koneksi sama seperti metode sebelumnya. Setelah koneksi terbangun, aplikasi dapat mengontrol pergerakan dari robotino dengan objek OmniDrive. Untuk memerintah robotino bergerak dengan fungsi setVelmcity dari objek OmniDrive. Terdapat tiga buah parameter dari fungsi setVelmcity, yaitu vx, vy, dan omega. Vx berfungsi untuk menentukan arah dan kecepatan maju dan mundur robotino. Vy berfungsi untuk menentukan arah dan kecepatan robotino bergerak ke kiri dan ke kanan. Omega merupakan kecepatan putar dari robotino. Jika vx diberi nilai -100 maka robotino akan bergerak mundur dengan kecepatan 100mm/s, jika vx diberi nilai 300 maka robotino akan bergerak maju dengan kecepatan 300 mm/s. Ketika Vy diberi nilai 100 maka robotino akan bergerak ke kiri dengan kecepatan 100 mm/s, sedangkan jika vy diberi nilai -500 maka robotino akan bergerak ke kanan dengan kecepatan 500 mm/s. Omega merupakan
START
Membangun Koneksi OmniDrive move
move=new OmniDrive() move.setVelocity(-100, 100, 20)
(49)
kecepatan putar robotino dengan satuan derajat/detik. Jika omega diberi nilai 20 maka robot akan berputar berlawanan jarum jam dengan kecepatan 20o/s, begitu
pula sebaliknya.
C. MemintaBProsesBStreaming danBMengambilBDataBGambar
Meminta proses streaming ini diperlukan agar PC memperoleh gambar yang ditangkap oleh kamera robotino. Berikut adalah flmw chart untuk meminta proses streaming.
Gambar 3.9 Flmw Chart Meminta Data Gambar
Untuk mengakses kamera, dilakukan pembangunan koneksi terlebih dahulu. Untuk melakukan permintaan gambar dari kamera robotino, menggunakan objek
Camera dari API robotino. Untuk dapat mengambil gambar dari kamera robotino,
perlu menyalakan fitur terlebih dahulu, yaitu dengan menggunakan fungsi setStreaming() dan di set bernilai true.
START
Membangun Koneksi Camera cam
cam=new Camera() cam.setStreaming(true)
(50)
sekitar dan pada robotino. Berikut adalah flmw chart dari meminta status halangan oleh PC.
Gambar 3.10 Flmw Chart Permintaan Status Halangan
Terdapat dua buah objek yang digunakan dari gambar 3.10 yaitu
DistanceSensmr untuk menggunakan sensor infrared dan Bumper untuk
menggunakan sensor anti-cmalitimn. Untuk mengetahui apakah terjadi benturan dengan robotino yaitu dengan perintah bumper.value() yang akan memberikan nilai balik berupa true ketika ada benturan atau false ketika tidak terjadi benturan. Untuk mendeteksi apakah terdapat halangan di sekitar robotino, menggunakan perintah distance[i].vmltage() yang akan memberikan nilai balik berupa tegangan antara 0.29 hingga 2.5. Maka dari itu perlu diberi batasan sendiri pada tegangan berapa robotino menganggap adanya halangan di sekitar robot.
START
Membangun Koneksi DistanceSensor[] distance
Bumper bumper
distance=new DistanceSensor[9] bumper=new Bumper
bumper.value() int i =0
i<9
distance[i]=new DistanceSensor() distance[i].setSensorNumber(i)
distance[i].voltage() i++
T
(51)
3.1.3 AktivitasBRobotinoBterhadapBPC
A. MengirimBData-DataByangBDimintaBPC
Pengiriman data gambar oleh robotino ke PC ini tidak dapat dituliskan ke dalam bentuk flmw chart karena menggunakan API yang sudah disediakan. Oleh karena menggunakan API yang sudah disediakan, tidak diketahui bagaimana alur kerja dari suatu aktivitas program. Pengiriman ini berlangsung hanya ketika PC meminta proses streaming terhadap robotino yang sudah dilakukan pada bagian sebelumnya.
B. ProsesBPenerimaanBDataBGambarBOlehBPC
Berikut adalah flmw chart penerimaan data gambar dari robotino oleh PC.
Gambar 3.11 Flmw Chart Penerimaan Data Gambar Oleh PC dari Robotino Proses pengambilan data gambar tersebut sebenarnya memiliki fungsi tersendiri. Fungsi tersebut adalah imageReceivedEvent(). Berikut adalah potongan program untuk menggunakan fungsi tersebut.
START
Membangun Koneksi Meminta Proses Streaming
Image gambar streaming
isImage
isDestroy F
F
F
gambar=img STOP
T
T
(52)
private class Mycam extends Camera {
@Override
public void imageReceivedEvent(Image img, long width, long height, long numChannels, long bitsPerChannel, long step)
{
image = img; }
}
Agar bisa menerima data dari fungsi imageReceivedEvent() tersebut, fungsi tersebut harus dibuat terlebih dahulu dari objek utama yaitu Camera. Setiap ada frame atau gambar baru yang ditangkap oleh kamera robotino, maka fungsi tersebut akan dijalankan dan pemrogram bisa mengambil data dari beberapa parameter yang ada dari fungsi imageReceivedEvent(). Dari program di atas, setiap ada gambar baru maka data gambar yang sudah berupa objek Image, akan di simpan ke variabel image.
3.1.4 AktivitasBPCBTerhadapBTeleponBGenggam A. MengirimBDataBGambar
(53)
Gambar 3.12 Flmw Chart Pengiriman Data Gambar
Init koneksi sama dengan pembangunan koneksi pada penerimaan data kecepatan pada telepon genggam. Pengiriman data dilakukan dua kali, yaitu pengiriman panjang byte yang akan dikirim dan pengiriman data gambar. Sebelum data gambar dikirimkan, gambar yang berupa objek Image dirubah terlebih dahulu ke dalam objek ByteArrayOutputStream agar dapat dikirim berupa array mf byte.
B. PenerimaanBDataBGambarBpadaBTeleponBGenggam
Berikut adalah flmw chart penerimaan data gambar yang dilakukan oleh telepon genggam.
START
ServerSocket server Socket soket DataOutputStream a
a=new DataOutputStream(soket.getOutputStream) ByteArrayOutputStream simpan
simpan=new ByteArrayOutputStream() ImageIO.write((BufferedImage)image, “PNG”, simpan)
a.writeInt((simpan.toByteArray()).length) a.write(simpan.toByteArray())
(54)
Gambar 3.13 Flmw Chart Penerimaan Gambar pada Telepon Genggam Init koneksi pada gambar 3.13 sama dengan pembangunan koneksi pada saat telepon genggam melakukan pengiriman data kecepatan ke PC. Penerimaan data ini dilakukan dua kali, yaitu penerimaan panjang byte yang akan diterima dan penerimaan data gambar. Setelah gambar diterima berupa array mf byte, maka data tersebut dirubah ke objek bitmap sehingga nantinya dapat ditampilkan pada layar telepon genggam.
C. MengirimBStatusBHalangan
Pengiriman ini dilakukan ketika di sekitar robotino terdapat halangan yang terdeteksi melalui sensor infrared dan ketika terjadi benturan pada robotino yang terdeteksi pada anti-cmalitimn sensmr. Berikut adalah flmw chart dari pengiriman status halangan ke telepon genggam.
DataInputStream input=new DataInputStream(soket.getInputStream()) int length
length=input.readInt() Byte[] gambar=new Byte[length]
input.readFully(gambar)
Bitmap bm=BitmapFactory.decodeByteArray(gambar, 0, gambar.length)
(55)
Gambar 3.14 Flmw Chart Pengiriman Status Halangan
Pengiriman di sini sama dengan pengiriman data kecepatan oleh telepon genggam. Data disini berisi “DS.” ketika terjadi pendeteksian ada halangan di sekitar robotino dan “BP.” ketika terjadi benturan pada robotino. Untuk init koneksi sama dengan pembangunan koneksi pada saat penerimaan data kecepatan oleh PC berlangsung.
D. PenerimaanBStatusBHalanganBpadaBTeleponBGenggam
Berikut adalah flmw chart untuk menerima status halangan. START
Init Koneksi
DataOutputStream dv
dv=new DataOutputStream(soket.getOutputStream) dv.writeBytes(data)
(56)
Gambar 3.15 Flmw Chart Penerimaan Status Halangan
Penerimaan data status halangan ini sama dengan penerimaan data kecepatan pada PC. Untuk pengolahan datanya juga sama seperti pada pengolahan data keccepatan pada PC, bedanya yaitu yang diterima terdapat dua macam kriteria yaitu “BP.” untuk penanda adanya benturan pada robotino dan “DS.” untuk pendeteksian adanya halangan di sekitar robotino. Ketika terdeteksi adanya benturan, maka telepon genggam akan bergetar selama 500ms dan menampilkan pesan bahwa telah terjadi benturan pada robotino. Ketika terdeteksi adanya halangan di sekitar robotino, maka telepon genggam akan menampilkan pesan adanya halangan di sekitar robotino.
char[] content
Content = new char[10] Receive=new BufferedReader(new InputStreamReader(soket.getInputStream()))
!receive.ready()
T
receive.read(content)
START
(57)
3.2 PerancanganBPengujian
Perancangan pengujian ini berfungsi untuk merancang pengujian yang akan dilakukan untuk mencapai hasil yang diinginkan. Pengujian yang akan dilakukan yaitu pengujian dari setiap bagian yang ada pada sub bab model penelitian.
3.2.1 PengujianBPengirimanBdanBPenerimaanBDataBKecepatanBdariBTeleponB GenggamBkeBPC
Pengujian dilakukan dengan menggerakkan posisi telepon genggam dan melihat yang terjadi pada jendela cmnsmle pada aplikasi di PC.
Tabel 3.1 Pengujian Pengiriman dan Penerimaan Data Kecepatan
TestB Case
Tujuan AlatBdanBBahan Input OutputByangB Diharapkan
1 Mengirimkan
data kecepatan dari perubahan axis
a. Telepon Genggam b. PC c. Robotino Gerkan telepon genggam Robotino
bergerak sesuai dengan
kemiringan telepon genggam
3.2.2 PengujianBMembangunBKoneksiBAntaraBPCBdenganBRobotino
Pengujian dilakukan dengan membangun koneksi dengan robotino melalui API yang sudah disediakan oleh robotino.
Tabel 3.2 Pengujian Membangun Koneksi Antara PC dan Robotino
TestB Case
Tujuan AlatBdanBBahan Input OutputByangB Diharapkan
1 Membangun
koneksi antara PC dan robotino
a. PC b. Robotino
Request koneksi dari PC
Munculnya
tulisan connected pada lcd robotino
(58)
Tabel 3.3 Pengujian Proses Streaming
TestB Case
Tujuan AlatBdanBBahan Input OutputByangB Diharapkan
1 Memberi nilai
true pada objek camera
a. PC b. Robotino
Memberikan inputan “y” pada jendela cmnsmle
Aplikasi menampilkan
gambar yang
ditangkap oleh kamera
2 Memberi nilai
false pada objek camera
a. PC b. Robotino
Memberikan inputan “n” pada jendela cmnsmle
Aplikasi berhenti menampilkan
gambar yang
ditangkap oleh kamera
3.2.4 PengujianBPendeteksianBHalanganBpadaBRobotino
Pengujian dilakukan dengan memberikan benda di sekitar robotino dan memberikan benturan atau tekanan pada sensor anti-cmalitimn.
Tabel 3.4 Pengujian Status Halangan Robotino
TestB Case
Tujuan AlatBdanBBahan Input OutputByangB Diharapkan 1 Mendeteksi adanya halangan di sekitar robotino a. PC b. Robotino
c. Telepon genggam
Benda yang diletakkan di sekitar robotino Telepon Genggam menampilkan pesan ketika terdapat halangan 2 Mendeteksi
adanya benturan atau tekanan pada robotino
a. PC b. Robotino
c. Telepon Genggam
Memberikan tekanan pada sensor
anti-cmalitimn
Telepon Genggam menampilkan
pesan dan
bergetar selama
500ms ketika
terjadi benturan atau tekanan
(59)
3.2.5 PengujianBPengirimanBDataBGambarBdariBPCBdanBMenampilkanBpadaB Telepon Genggam
Pengujian dilakukan dengan Mengirimkan data yang diterima PC dari robotino dan mengirimkannya ke telpon genggam dan ditampilkan pada layar telepon genggam.
Tabel 3.5 Pengujian Pengiriman Data Gambar dan Menampilkan pada Telepon Genggam
TestB Case
Tujuan AlatBdanBBahan Input OutputByangB Diharapkan
1 Mengirimkan
gambar ke
telepon
genggam dan ditampilkan
pada layar
telepon genggam
a. PC b. Robotino
c. Telepon genggam
Inputan gambar dari kamera robotino
Gambar yang
dikirim oleh PC ditampilkan pada
layar telepon
(60)
GenggamBkeBPC
Pengujian ini dilakukan untuk mengetahui apakah telepon genggam bisa mengirim data kecepatan yang didapat dari perubahan axis dan apakah PC bisa menerima data kecepatan dengan baik.
4.1.1 ProsedurBPengujian
1. Menyalakan Robotino
2. Koneksikan PC ke access point robotino 3. Menyalakan program eclipse pada PC 4. Buka file project coba robot
5. Klik package pada hirarki package explorer 6. Jalankan program (ctrl+F11)
7. Koneksikan WiFi telepon genggam ke access point robotino
8. Jalankan aplikasi Robotino yang sudah terinstal pada telepon genggam 9. Masukkan IP dari robotino
10. Masukkan port dengan 9090
11. Posisikan telepon genggam sejajr dengan daratan sebagai proses pointing 12. Tunggu hingga tiga hitungan mundur yang dilakukan oleh aplikasi 13. Menggerakkan robotino dengan menggerakkan telepon genggam
(61)
4.1.2 HasilBPengujian
Tabel 4.1 Hasil Pengiriman dan Penerimaan Data Kecepatan
TestB Case
Tujuan AlatBdanBBahan Input OutputByangB
Diharapkan Hasil 1 Mengirimkan data kecepatan dari perubahan axis
a. Telepon Genggam b. PC c. Robotino Gerkan telepon genggam Robotino bergerak sesuai dengan kemiringan telepon genggam
SUKSES
Pengujian pengiriman dan penerimaan data kecepatan dari telepon genggam ke PC berjalan dengan baik. Hal ini terbukti dari geraknya robotino sesuai dengan kemiringan telepon genggam.
4.2 PengujianBMembangunBKoneksiBAntaraBPCBdenganBRobotino
Pengujian ini dilakukan untuk mengetahui apakah PC bisa terhubung dengan robotino dengan menggunakan API yang sudah disediakan oleh robotino.
4.2.1 ProsedurBPengujian
1. Menyalakan Robotino
2. Koneksikan PC ke access point robotino 3. Menyalakan program eclipse pada PC 4. Buka file project coba robot
5. Klik package pada hirarki package explorer 6. Jalankan program (ctrl+F11)
(62)
koneksi antara PC dan robotino
b. Robotino koneksi dari PC
tulisan connected pada lcd robotino dan pada console
SUKSES
Pengujian koneksi antara PC dengan robotino berjalan dengan baik. Hal ini terbukti dari tampilnya tulisan “Connected” pada sisi aplikasi dan robotino yang tampak pada layar.
Gambar 4.1 Hasil Koneksi Pada Sisi Aplikasi
Gambar 4.2 Hasil Koneksi Pada Sisi Robotino
4.3 PengujianBProsesBStreaming danBMenampilkannyaBdiBPC
Pengujian ini dilakukan untuk mengetahui apakah PC bisa melakukan streaming dari kamera robotino.
(63)
4.3.1 ProsedurBPengujian
1. Menyalakan Robotino
2. Koneksikan PC ke access point robotino 3. Menyalakan program eclipse pada PC 4. Buka file project coba streaming
5. Klik package pada hirarki package explorer 6. Jalankan program (ctrl+F11)
7. Masukkan y pada console untuk melakukan streaming 8. Perhatikan yang terjadi pada aplikasi
9. Masukkan n pada console untuk menghentikan streaming 10. Perhatikan yang terjadi pada aplikasi
4.3.2 HasilBPengujian
Tabel 4.3 Hasil Proses Streaming
TestB Case
Tujuan AlatBdanBBahan Input OutputByangB
Diharapkan
Hasil
1 Memberi nilai true pada objek camera
a. PC b. Robotino
Memberikan inputan “y” pada jendela console
Aplikasi menampilkan gambar yang ditangkap oleh kamera
SUKSES
2 Memberi nilai false pada objek camera
a. PC b. Robotino
Memberikan inputan “n” pada jendela console
Aplikasi berhenti menampilkan gambar yang ditangkap oleh kamera
SUKSES
Pengujian proses streaming dari kamera robotino pada aplikasi di PC berhasil dengan baik. PC dapat menerima gambar secara langsung ketika
(64)
Gambar 4.3 Saat Awal Aplikasi Dijalankan
Gambar 4.4 Saat Proses Streaming
(65)
4.4 PengujianBPendeteksianBHalanganBpadaBRobotino
Pengujian ini dilakukan untuk mengetahui apakah sensor infrared dan anti-coalition pada robotino bisa dimanfaatkan sebagai pemberi tanda kepada user bahwa terdapat halangan pada robotino.
4.4.1 ProsedurBPengujian
1. Menyalakan Robotino
2. Koneksikan PC ke access point robotino 3. Menyalakan program eclipse pada PC 4. Buka file project coba robot
5. Klik package pada hirarki package explorer 6. Jalankan program (ctrl+F11)
7. Koneksikan WiFi telepon genggam ke access point robotino
8. Jalankan aplikasi Robotino yang sudah terinstal pada telepon genggam 9. Masukkan IP dari robotino
10. Masukkan port dengan 9090
11. Posisikan telepon genggam sejajr dengan daratan sebagai proses pointing 12. Tunggu hingga tiga hitungan mundur yang dilakukan oleh aplikasi 13. Memberikan benda atau halangan di sekitar robotino
14. Perhatikan pesan yang muncul pada layar telepon genggam 15. Memberikan tekanan pada sensor anti-coalition
(66)
adanya halangan di sekitar robotino
b. Robotino
c. Telepon genggam
diletakkan di sekitar
robotino
Genggam menampilkan pesan ketika terdapat halangan SUKSES 2 Mendeteksi adanya benturan atau tekanan pada robotino a. PC b. Robotino
c. Telepon genggam
Memberikan tekanan pada sensor anti-coalition
Telepon Genggam menampilkan pesan dan bergetar selama
500ms ketika terjadi
benturan atau tekanan
SUKSES
Pengujian pendeteksian halangan pada robotino ini berjalan dengan baik. Telepon genggam dapat menampilkan setiap pesan pada layar telepon genggam ketika terdapat halangan. Telepon genggam juga bergetar ketika terjadi benturan pada robotino yang terdeteksi dari sensor anti-coalition.
4.5 PengujianBPengirimanBDataBGambarBdariBPCBdanBMenampilkanBpadaB
Telepon Genggam
Pengujian ini dilakukan untuk mengetahui apakah telepon genggam dapat menerima data gambar yang dikirim dari PC dan menampilkannya pada layar telepon genggam.
(67)
4.5.1 ProsedurBPengujian
1. Menyalakan Robotino
2. Koneksikan PC ke access point robotino 3. Menyalakan program eclipse pada PC 4. Buka file project coba robot
5. Klik package pada hirarki package explorer 6. Jalankan program (ctrl+F11)
7. Koneksikan WiFi telepon genggam ke access point robotino
8. Jalankan aplikasi Robotino yang sudah terinstal pada telepon genggam 9. Masukkan IP dari robotino
10. Masukkan port dengan 9090
11. Posisikan telepon genggam sejajr dengan daratan sebagai proses pointing 12. Tunggu hingga tiga hitungan mundur yang dilakukan oleh aplikasi 13. Perhatikan layar telepon genggam
4.5.2 HasilBPengujian
Tabel 4.5 Hasil Pengiriman Data Gambar dan Menampilkan pada Telepon Genggam
TestB Case
Tujuan AlatBdanBBahan Input OutputByangB
Diharapkan
Hasil
1 Mengirimkan gambar ke telepon genggam dan ditampilkan pada layar telepon genggam
a. PC b. Robotino
c. Telepon genggam
Inputan gambar dari kamera robotino
Gambar yang dikirim oleh PC ditampilkan pada layar telepon
genggam
(68)
yang cukup lama untuk menampilkan gambar pada layar. Hal ini menyebabkan adanya delay yang mengganggu bagi user untuk melihat sesuatu di depan robotino.
(69)
PENUVUP
5.1 Simpulan
1. Pemanfaatan sensor accelerometer pada telepon genggam berbasis android sebagai kendali mobile robot sudah berhasil diimplementasikan dengan adanya kendala. Kendala tersebut adalah pembacaan sensor yang kurang akurat dari telepon genggam. Hal tersebut diatasi dengan memberikan batasan nilai sebelum kecepatan robot omni berubah.
2. Aplikasi di telepon genggam berbasis android untuk menggerakkan robot omni sudah berhasil dibuat.
3. Aplikasi di robot omni untuk mengirimkan gambar yang diterima oleh kamera robot omni berhasil dibuat dengan adanya kendala di sisi penerimaan, yaitu lamanya telepon genggam untuk memproses penampilan gambar di layar yang mengakibatkan adanya delay.
4. Protokol komunikasi antara telepon genggam dengan mobile robot sudah dibuat dan diimplementasikan.
5.2 Saran
Sebagai pengembangan dari penelitian yang telah dilakukan, berikut adalah saran dari penulis:
1. Metode ini dapat dikembangkan untuk menggerakkan mobil. Jadi nantinya dapat mengendalikan mobil dari jarak jauh seperti pada film James Bond.
(70)
2. Metode ini dapat diimplementasikan dalam bidang militer, yaitu mnggerakkan suatu mobile robot untuk masuk dan melihat apa saja yang berada di dalam suatu ruangan sebelum proses eksekusi selanjutnya. Bisa diimplementasikan baik melalui WiFi maupun jaringan telekomunikasi.
3. Metode ini juga dapat digunakan untuk mengendalikan senjata tempur dari jarak jauh layaknya memainkan suatu permainan melalui jaringan yang disediakan oleh telekomunikasi.
(71)
Ableson, W. Frank and Sen, Robi and King, Chris. 2011. Abdroid In Action Second Edition. Stamford: Mannings Publications Co.
Android. 2011. Sensor Event. (online).
(http://developer.android.com/reference/android/hardware/SensorEvent.html , diakses tanggal 26 Agustus 2011).
Android. 2011. Application Fundamentals. (online).
(http://developer.android.com/guide/topics/fundamentals.html, diakses
tanggal 6 Januari 2012).
Andoid. 2011. The Andoroid Manifest. (online).
(http://developer.android.com/guide/topics/manifest/manifest-intro.html, diakses tanggal 6 Januari 2012).
Braunl, Thomas. 2006. Embedded Robotics. Germany: Springer.
Didik. 2010. Jumlah Pemakai Handphone di Indonesia. (online).
(http://www.harianberita.com/jumlah-pemakai-handphone-di-indonesia.html, diakses tanggal 26 Agustus 2011).
Graham, Brian Barkley. 2000. Using an Accelerometer Sensor To Measure Human Hand Motion. Department of Electrical Engineering and Computer Science . Massachusetts Institute of Technology . Massachusetts.
Hariyanto, Bambang. 2010. Esensi-esensi Bahasa Pemrograman Java. Bandung: Informatika Bandung.
Karras, Ulrich. 2011. Robotino – An Open Learning Mobile Robot System for Robocup. (online). (http://www.festo-didactic.com/ov3/media/customers/ 1100/festo_robocup.pdf, diakses tanggal 25 Januari 2012).
Lee, Wei-Meng. 2011. Beginning Android Application Development. Indianapolis: Wiley Publishing, Inc.
Mulyadi. 2010. Membuat Aplikasi Untuk Android. Yogyakarta: Multimedia Center Publishing.
Nugroho, Wisnu. 2010. Review Samsung Galaxy Tab – Desain. (online).
(http://www.infokomputer.com/lainnya/review-samsung-galaxy-tab/halaman-2, diakses tanggal 26 Agustus 2011).
(72)
menggunakan-protokol-tcpip-01-1992.rtf, diakses tanggal 16 Agustus 2011). Canada.
Purnama, Rangsang. 2005. Tuntunan Pemrograman Java, Jilid 3. Jakarta: Prestasi Pustaka
Rajagukguk, Agatha Rebecca. 2009. Inovasidan Kreatifitas Layanan Penelusuran, Penggunaan Internet dan Jurnal Online pada Perpustakaan Universitas Sumatera Utara. (Online). (http://repository.usu.ac.id/bitstream/ 123456789/13596/1/09E02383.pdf, diakses tanggal 25 Januari 2012).
Weber, Ralph Cristoph and Bellenberg, Markus and Schwarzenberger, Doris.
2010. Festo Robotino Manual. (online).
(http://www.festo-didactic.com/ov3/media/customers/1100/544305_robotino_deen.pdf, diakses tanggal 25 Januari 2012).
(1)
4.5.1 ProsedurBPengujian 1. Menyalakan Robotino
2. Koneksikan PC ke access point robotino 3. Menyalakan program eclipse pada PC 4. Buka file project coba robot
5. Klik package pada hirarki package explorer 6. Jalankan program (ctrl+F11)
7. Koneksikan WiFi telepon genggam ke access point robotino
8. Jalankan aplikasi Robotino yang sudah terinstal pada telepon genggam 9. Masukkan IP dari robotino
10. Masukkan port dengan 9090
11. Posisikan telepon genggam sejajr dengan daratan sebagai proses pointing 12. Tunggu hingga tiga hitungan mundur yang dilakukan oleh aplikasi 13. Perhatikan layar telepon genggam
4.5.2 HasilBPengujian
Tabel 4.5 Hasil Pengiriman Data Gambar dan Menampilkan pada Telepon Genggam
TestB Case
Tujuan AlatBdanBBahan Input OutputByangB Diharapkan
Hasil 1 Mengirimkan
gambar ke telepon genggam dan ditampilkan pada layar telepon genggam
a. PC b. Robotino
c. Telepon genggam
Inputan gambar dari kamera robotino
Gambar yang dikirim oleh PC ditampilkan pada layar telepon
genggam
(2)
58 Pengujian pengiriman data gambar dan menampilkan pada layar telepon genggam terdapat masalah. Masalah ini terjadi ketika telepon genggam ingin menampilkan gambar yang diterima dari PC. Telepon genggam memakan proses yang cukup lama untuk menampilkan gambar pada layar. Hal ini menyebabkan adanya delay yang mengganggu bagi user untuk melihat sesuatu di depan robotino.
(3)
PENUVUP
5.1 Simpulan
1. Pemanfaatan sensor accelerometer pada telepon genggam berbasis android sebagai kendali mobile robot sudah berhasil diimplementasikan dengan adanya kendala. Kendala tersebut adalah pembacaan sensor yang kurang akurat dari telepon genggam. Hal tersebut diatasi dengan memberikan batasan nilai sebelum kecepatan robot omni berubah.
2. Aplikasi di telepon genggam berbasis android untuk menggerakkan robot omni sudah berhasil dibuat.
3. Aplikasi di robot omni untuk mengirimkan gambar yang diterima oleh kamera robot omni berhasil dibuat dengan adanya kendala di sisi penerimaan, yaitu lamanya telepon genggam untuk memproses penampilan gambar di layar yang mengakibatkan adanya delay.
4. Protokol komunikasi antara telepon genggam dengan mobile robot sudah dibuat dan diimplementasikan.
5.2 Saran
Sebagai pengembangan dari penelitian yang telah dilakukan, berikut adalah saran dari penulis:
1. Metode ini dapat dikembangkan untuk menggerakkan mobil. Jadi nantinya dapat mengendalikan mobil dari jarak jauh seperti pada film James Bond.
(4)
60 Untuk mengimplementasikan metode ini, jelas menggunakan jaringan telekomunikasi, tetapi metode yang digunakan tetap sama persis, yaitu berbasis TCP/IP.
2. Metode ini dapat diimplementasikan dalam bidang militer, yaitu mnggerakkan suatu mobile robot untuk masuk dan melihat apa saja yang berada di dalam suatu ruangan sebelum proses eksekusi selanjutnya. Bisa diimplementasikan baik melalui WiFi maupun jaringan telekomunikasi.
3. Metode ini juga dapat digunakan untuk mengendalikan senjata tempur dari jarak jauh layaknya memainkan suatu permainan melalui jaringan yang disediakan oleh telekomunikasi.
(5)
Ableson, W. Frank and Sen, Robi and King, Chris. 2011. Abdroid In Action Second Edition. Stamford: Mannings Publications Co.
Android. 2011. Sensor Event. (online). (http://developer.android.com/reference/android/hardware/SensorEvent.html , diakses tanggal 26 Agustus 2011).
Android. 2011. Application Fundamentals. (online). (http://developer.android.com/guide/topics/fundamentals.html, diakses tanggal 6 Januari 2012).
Andoid. 2011. The Andoroid Manifest. (online). (http://developer.android.com/guide/topics/manifest/manifest-intro.html, diakses tanggal 6 Januari 2012).
Braunl, Thomas. 2006. Embedded Robotics. Germany: Springer.
Didik. 2010. Jumlah Pemakai Handphone di Indonesia. (online).
(http://www.harianberita.com/jumlah-pemakai-handphone-di-indonesia.html, diakses tanggal 26 Agustus 2011).
Graham, Brian Barkley. 2000. Using an Accelerometer Sensor To Measure Human Hand Motion. Department of Electrical Engineering and Computer Science . Massachusetts Institute of Technology . Massachusetts.
Hariyanto, Bambang. 2010. Esensi-esensi Bahasa Pemrograman Java. Bandung: Informatika Bandung.
Karras, Ulrich. 2011. Robotino – An Open Learning Mobile Robot System for Robocup. (online). (http://www.festo-didactic.com/ov3/media/customers/ 1100/festo_robocup.pdf, diakses tanggal 25 Januari 2012).
Lee, Wei-Meng. 2011. Beginning Android Application Development. Indianapolis: Wiley Publishing, Inc.
Mulyadi. 2010. Membuat Aplikasi Untuk Android. Yogyakarta: Multimedia Center Publishing.
Nugroho, Wisnu. 2010. Review Samsung Galaxy Tab – Desain. (online).
(http://www.infokomputer.com/lainnya/review-samsung-galaxy-tab/halaman-2, diakses tanggal 26 Agustus 2011).
(6)
62 Prawita, Ida Bagus Dony. 2010. Jenis-Jenis Sistem Operasi. (online).
(http://www.docstoc.com/docs/62675496/JENIS—JENIS-SISTEM-OPERASI, diakses tanggal 26 Agustus 2011).
Purbo, Onno W. 2011. Jaringan Komputer Menggunakan Protokol TCP / IP. (Online). (http://onno.vlsm.org/v09/onno-ind-1/network/jaringan-komputer-menggunakan-protokol-tcpip-01-1992.rtf, diakses tanggal 16 Agustus 2011). Canada.
Purnama, Rangsang. 2005. Tuntunan Pemrograman Java, Jilid 3. Jakarta: Prestasi Pustaka
Rajagukguk, Agatha Rebecca. 2009. Inovasidan Kreatifitas Layanan Penelusuran, Penggunaan Internet dan Jurnal Online pada Perpustakaan Universitas Sumatera Utara. (Online). (http://repository.usu.ac.id/bitstream/ 123456789/13596/1/09E02383.pdf, diakses tanggal 25 Januari 2012).
Weber, Ralph Cristoph and Bellenberg, Markus and Schwarzenberger, Doris. 2010. Festo Robotino Manual. (online). (http://www.festo-didactic.com/ov3/media/customers/1100/544305_robotino_deen.pdf,