ANALISIS DAN PENERAPAN SENSOR JARAK, SENSOR DETEKSI API, DAN SENSOR GARIS PADA FIRE FIGHTING ROBOT
NUR MUHAMMAD SIDIK
DEPARTEMEN ILMU KOMPUTER FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM INSTITUT PERTANIAN BOGOR BOGOR 2013
PERNYATAAN MENGENAI SKRIPSI DAN SUMBER INFORMASI SERTA PELIMPAHAN HAK CIPTA Dengan ini saya menyatakan bahwa skripsi berjudul Analisis dan Penerapan Sensor Jarak, Sensor Deteksi Api, dan Sensor Garis pada Fire Fighting Robot adalah benar karya saya dengan arahan dari komisi pembimbing dan belum diajukan dalam bentuk apa pun kepada perguruan tinggi mana pun. Sumber informasi yang berasal atau dikutip dari karya yang diterbitkan maupun tidak diterbitkan dari penulis lain telah disebutkan dalam teks dan dicantumkan dalam Daftar Pustaka di bagian akhir skripsi ini. Dengan ini saya melimpahkan hak cipta dari karya tulis saya kepada Institut Pertanian Bogor. Bogor, Desember 2013 Nur Muhammad Sidik NIM G64090065
ABSTRAK NUR MUHAMMAD SIDIK. Analisis dan Penerapan Sensor Jarak, Sensor Deteksi Api, dan Sensor Garis pada Fire Fighting Robot. Dibimbing oleh KARLISA PRIANDANA. Sensor merupakan bagian robot untuk mengenali kondisi lingkungan sekitarnya. Salah satu permasalahan dalam pemakaian sensor adalah keakuratan data yang diperoleh. Penelitian ini bertujuan untuk mengembangkan sistem indera pada fire fighting robot dengan menggunakan sensor jarak ultrasonik, sensor api, dan sensor garis. Dalam proses pengambilan data, sensor-sensor ini memerlukan beberapa tahapan agar data yang dibaca sesuai dengan data aktualnya seperti kalibrasi dan data smoothing. Data smoothing yang digunakan adalah moving average dan exponential smoothing. Metode ini digunakan untuk menghaluskan data yang diterima secara real-time oleh sensor khususnya sensor jarak HC-SR04. Hasil penelitian menunjukkan bahwa data smoothing moving average dengan window sebanyak 5 dan exponential smoothing dengan smoothing factor 0.5 adalah metode yang cocok digunakan untuk mengurangi noise akibat kesalahan pembacaan data. Namun pada aplikasinya, kedua metode ini menyebabkan robot sangat lambat dalam mengambil keputusan. Kata kunci: Arduino, exponential smoothing, fire fighting robot, HC-SR04, moving average, sensor
ABSTRACT NUR MUHAMMAD SIDIK. Analysis and Installation of Range Sensors, Fire Detector Sensor, and Line Sensor into Fire Fighting Robot. Supervised by KARLISA PRIANDANA. Sensor is a device in a robot to learn things about its surroundings. One of the problems from using sensor is its accuracy when retrieving data. This study developed a fire fighting robot sensor system using ultrasonic range sensor, fire detector sensor, and line sensor. In the process of retrieving data, these sensors require some pre-processing steps in order to obtain data that is equal to the actual data, such as calibration and data smoothing. Data smoothing methods utilized in this study are moving average and simple exponential smoothing. These methods are used to smooth the received realtime data especially in the range sensor HCSR04 data. The results show that moving average with 5 windows and exponential smoothing with smoothing factor 0.5 can be used to reduce the ripples due to the existence of irregular data. However, both methods may slow down the robot‟s decision making process. Keywords: Arduino, exponential smoothing, fire fighting robot, HC-SR04, moving average, sensors
ANALISIS DAN PENERAPAN SENSOR JARAK, SENSOR DETEKSI API, DAN SENSOR GARIS PADA FIRE FIGHTING ROBOT
NUR MUHAMMAD SIDIK
Skripsi sebagai salah satu syarat untuk memperoleh gelar Sarjana Komputer pada Departemen Ilmu Komputer
DEPARTEMEN ILMU KOMPUTER FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM INSTITUT PERTANIAN BOGOR BOGOR 2013
Penguji: 1 Shelvie Nidya Neyman, SKom MSi 2 Mushthofa, SKom MSc
Judul Skripsi : Analisis dan Penerapan Sensor Jarak, Sensor Deteksi Api, dan Sensor Garis pada Fire Fighting Robot Nama : Nur Muhammad Sidik NIM : G64090065
Disetujui oleh
Karlisa Priandana, ST MEng Pembimbing I
Diketahui oleh
Dr Ir Agus Buono, MSi MKom Ketua Departemen
Tanggal Lulus:
Judul Skripsi: ...\naLis dan Penerapan Sensor Jarak, Sensor Deteksi Api, dan Sens r Garis pada Fire Fighting Robot : Nur ).. uhammad Sidik Nama : G6~ 09006 5 NIM
Disetujui oleh
Karlisa Priandana, ST MEng Pembimbing I
Diketahui oleh
Ketua Departemen
Tanggal Lulus :
1 3 DEC 2GB
PRAKATA Puji dan syukur penulis panjatkan kepada Allah subhanahu wa ta’ala atas segala karunia-Nya sehingga karya ilmiah ini berhasil diselesaikan. Tema yang dipilih dalam penelitian yang dilaksanakan sejak bulan Januari 2013 ini ialah sensor pada fire fighting robot, dengan judul Analisis dan Penerapan Sensor Jarak, Sensor Deteksi Api, dan Sensor Garis pada Fire Fighting Robot. Terima kasih penulis ucapkan kepada ayah, ibu, serta seluruh keluarga atas segala doa dan kasih sayangnya. Ungkapan terima kasih juga disampaikan kepada Ibu Karlisa Priandana, ST MEng selaku pembimbing, serta Ibu Shelvie Nidya Neyman, SKom MSi dan Bapak Mushthofa, SKom MSc yang telah banyak memberi koreksi dan masukan. Di samping itu, penulis juga mengucapkan terima kasih kepada Noer Fitria Putra Setyono, Erwin Musa Yulio, Wulandari, Hollanda Arief Kusuma, dan teman-teman Ilmu Komputer angkatan 46 dan 48 serta teman-teman ITK angkaran 46 dan 47, yang selalu memberi semangat dan dukungannya. Kepada semua pihak yang namanya tidak bisa saya sebutkan satu per satu, terima kasih atas dukungan dan doanya. Semoga karya ilmiah ini bermanfaat.
Bogor, Desember 2013 Nur Muhammad Sidik
DAFTAR ISI DAFTAR TABEL
vi
DAFTAR GAMBAR
vi
DAFTAR LAMPIRAN
vii
PENDAHULUAN
1
Latar Belakang
1
Perumusan Masalah
2
Tujuan Penelitian
2
Manfaat Penelitian
2
Ruang Lingkup Penelitian
2
METODE
3
Studi Literatur
3
Persiapan Alat dan Bahan
3
Analisis Sensor
4
Kalibrasi Sensor
4
Penerapan Data Smoothing
5
Pengujian Sensor
6
Implementasi Sensor Pada Robot
6
HASIL DAN PEMBAHASAN
7
Persiapan Alat dan Bahan
7
Analisis Sensor
8
Kalibrasi Sensor
9
Penerapan Data Smoothing
11
Pengujian Sistem
14
Implementasi Sensor pada Robot
16
SIMPULAN DAN SARAN
17
DAFTAR PUSTAKA
18
LAMPIRAN
19
RIWAYAT HIDUP
47
DAFTAR TABEL 1 2 3 4 5
Nilai pengukuran sensor garis Nilai pengukuran sensor deteksi api Hasil perhitungan menggunakan cara brute force Data sensor jarak pada PING 57 – 63 Hasil pengujian data smoothing moving average dan exponential smoothing pada sensor jarak
9 9 10 12 15
DAFTAR GAMBAR 1 2
Metode penelitian sensor jarak, sensor deteksi api, dan sensor garis (a) sensor jarak ultrasonik HC-SR04, (b) sensor deteksi api YG1006, (c) sensor garis, dan (d) mirokontroler Arduino UNO 3 Rangkaian sederhana (a) sensor jarak ultrasonik dan (b) sensor deteksi api 4 Grafik data jarak dari sensor dengan menggunakan rumus konversi dari datasheet 5 Grafik regresi linear data pengukuran sensor jarak 6 Grafik data sensor jarak dengan jarak aktual setelah kalibrasi 7 Grafik data sensor jarak (―) dengan jarak aktual (••••) dan jarak sensor menggunakan moving average (---) 8 Grafik data sensor jarak (―) dengan jarak aktual (••••) dan jarak sensor menggunakan exponential smoothing dengan bobot 0.2 (---) 9 Grafik data sensor jarak (―) dengan jarak aktual (••••) dan jarak sensor menggunakan exponential smoothing dengan bobot 0.5 (---) 10 Grafik data sensor jarak (―) dengan jarak aktual (••••) dan jarak sensor menggunakan exponential smoothing dengan bobot 0.8 (---) 11 Peletakan sensor jarak ultrasonik pada robot 12 Tampilan akuisisi data semua sensor secara bersamaan
3 7 7 8 10 11 12 13 13 14 16 17
DAFTAR LAMPIRAN 1 2 3
Grafik data sensor jarak sebelum kalibrasi Grafik data sensor jarak setelah kalibrasi Grafik data sensor jarak setelah kalibrasi dan moving average dengan window 5 4 Grafik data sensor jarak setelah kalibrasi dan exponential smoothing dengan bobot 0.2 5 Grafik data sensor jarak setelah kalibrasi dan exponential smoothing dengan bobot 0.5 6 Grafik data sensor jarak setelah kalibrasi dan exponential smoothing dengan bobot 0.8 7 Source code untuk pengambilan data menggunakan sensor ultrasonik, sensor deteksi api, dan sensor garis 8 Source code untuk pengambilan data menggunakan sensor ultrasonik dengan moving average 9 Source code untuk pengambilan data menggunakan sensor ultrasonik dengan exponential smoothing 10 Tabel hasil pengukuran sensor jarak 11 Tabel kalibrasi sensor jarak menggunakan cara brute force
19 21 23 25 27 29 31 34 36 38 43
PENDAHULUAN Latar Belakang Perkembangan teknologi sekarang sangat pesat. Perkembangan teknologi yang pesat ini mengakibatkan munculnya alat-alat yang serba otomatis. Mulai dari mencuci pakaian sampai adanya mesin untuk membersihkan rumah secara otomatis. Robot merupakan sebuah mesin yang memiliki fungsi khusus berdasarkan keperluan manusia. Robot dapat bergerak secara otomatis. Robot juga dapat diprogram untuk menjalankan tugasnya masing-masing. Pada pengaplikasiannya, robot memiliki tiga perangkat utama yaitu „sense‟, „think‟, dan „act‟. Perangkat „act‟ adalah perangkat yang akan mengeksekusi semua perintah yang didapat dari otak robot. Perangkat inilah yang terlihat prosesnya secara nyata dan dapat dirasakan secara langsung oleh pengguna. Perangkat „think‟ memiliki fungsi yang sama dengan otak manusia. Robot perlu mengumpulkan informasi tentang kondisi lingkungan sekitarnya. Kemudian robot harus bisa menentukan bagaimana robot harus beraksi seoptimal mungkin dari data yang didapatkan. Robot dapat diberikan kemampuan untuk berpikir dan memberikan instruksi dengan memberikan program di bagian otaknya (dalam hal ini adalah mikrokontroler). Semua data masukan yang diterima robot akan diolah pada bagian ini lalu robot akan menghasilkan keputusan. Perangkat „sense‟ memiliki fungsi seperti indera manusia. Perangkat ini menggunakan sensor untuk mendeteksi lingkungan di sekitar robot. Perangkat inilah yang akan menjadi masukan untuk perangkat „think‟ lalu diproses. Setelah diproses dan menghasilkan keputusan berupa perintah, perangkat „act‟ akan menjalankan perintah tersebut. Robot membutuhkan sensor sebagai alat „inderanya‟. Sensor yang digunakan pada robot berbeda-beda bergantung tujuan dan kondisi yang harus dicapai. Pada fire fighting robot yang diteliti pada penelitian ini, sensor yang digunakan adalah sensor jarak, sensor deteksi suara, sensor deteksi garis, sensor deteksi nyala api, dan sensor kompas. Sensor pendeteksi jarak dibagi menjadi dua jenis berdasarkan energi yang digunakan yaitu sensor ultrasonik yang menggunakan energi gelombang suara dan sensor inframerah yang menggunakan energi gelombang cahaya inframerah. Dalam aplikasinya pada fire fighting robot, sensor pendeteksi jarak digunakan untuk mendeteksi jarak robot dengan benda atau jarak robot dengan dinding pembatas. Namun, setiap sensor memiliki kekurangan yang dapat ditutup dengan menggunakan bantuan sensor lain. Selain memiliki kekurangan, setiap sensor juga dapat memiliki hambatan dalam pengambilan data, sehingga data yang diperoleh mungkin tidak sempurna, dan membuat robot mengambil keputusan yang salah. Prasetyo (2010) melakukan penelitian mengenai robot beroda dengan beberapa sensor sebagai indera. Sensor jarak ultrasonik yang digunakan adalah Sensor Ultrasonik PING))) 1 . Sensor ini dapat mendeteksi jarak antara 3 cm sampai 3 m dengan cara menghitung waktu perjalanan gelombang ultrasonik mulai dari ditembakkan, dipantulkan oleh target, sampai diterima kembali oleh sensor. Pada penelitian tersebut, data yang diterima sensor jarak hanya mengalami 1
Sensor Ultrasonik PING))): salah satu jenis sensor deteksi jarak menggunakan gelombang ultrasonik.
2
konversi dari data waktu menjadi data jarak. Penelitian tidak melakukan kalibrasi perhitungan karena data yang didapat oleh sensor sangat akurat. Namun, percobaan Prasetyo (2010) menghasilkan rata-rata galat 0.5 cm. Setiap melakukan percobaan, Prasetyo (2010) hanya melakukan satu kali PING 2 ke dinding pada jarak tertentu lalu mencatat jarak yang diterima oleh mikrokontroler. Namun dalam pengaplikasiannya, sensor pada robot harus menerima data secara realtime. Pada penelitian ini akan dilakukan pengembangan dari penelitian Prasetyo (2010) yaitu dengan pengambilan data secara terusmenerus dengan perubahan jarak terhadap target sebesar 10 cm, serta pengambilan data menggunakan sensor garis, sensor deteksi api, dan sensor jarak secara realtime. Perumusan Masalah Masalah yang akan diteliti dalam penelitian ini adalah penggunaan sensor yang tepat untuk fire fighting robot, termasuk pengolahan data sensor yang masih berupa data mentah agar dapat dengan mudah diproses di mikrokontroler. Mengkaji pengambilan data jarak yang berubah-ubah oleh sensor jarak secara realtime. Selain itu penelitian ini juga mengkaji perlakuan khusus yang diperlukan untuk mengurangi kelemahan setiap sensor. Tujuan Penelitian Membuat komunikasi antara mikrokontroler dengan sensor. Merekomendasikan metode penghalusan atau data smoothing yang dapat digunakan untuk mengurangi riak data sensor. Mengimplementasikan sensor pada fire fighting robot. Manfaat Penelitian Penelitian ini diharapkan dapat mendukung perkembangan robotika di lingkungan departemen Ilmu Komputer FMIPA IPB. Selain itu, penelitian diharapkan dapat membantu penggunaan sensor untuk aplikasi lainnya. Ruang Lingkup Penelitian Pada penelitian ini, sensor yang diteliti hanya tiga jenis yaitu sensor jarak yang menggunakan gelombang suara ultrasonik, sensor garis, dan sensor nyala api. Percobaan untuk sensor ultrasonik dilakukan secara kontinu dengan menggerakkan target deteksi (benda dengan permukaan datar) secara manual. Api yang digunakan pada percobaan menggunakan sensor deteksi api adalah api lilin yang berada dalam ruangan yang kurang cahaya.
2
PING: istilah yang digunakan ketika sensor menembakkan gelombang suara dari transmitter sampai menerima pantulan gelombang di receiver.
3
METODE Metode yang digunakan pada penelitian ini meliputi serangkaian tahapan, yaitu: tahap studi literatur, persiapan alat dan bahan, analisis sensor, kalibrasi sensor, dan penerapan data smoothing. Khusus untuk sensor garis dan sensor deteksi api, tidak dilakukan tahapan kalibrasi sensor dan penerapan data smoothing, karena output dari kedua sensor ini hanya berupa logika ada atau tidak ada garis/api. Garis besar dari metode penelitian dapat dilihat dalam bentuk diagram alir seperti pada Gambar 1. Studi Literatur Pada tahapan ini, dilakukan serangkaian studi literatur yang berkaitan dengan penelitian. Studi ini mencakup sensor-sensor yang digunakan pada fire fighting robot, cara penggunaan sensor, serta kelemahan yang mungkin terjadi pada setiap sensor. Persiapan Alat dan Bahan Bahan yang digunakan adalah sensor jarak ultrasonik, sensor deteksi api, dan sensor garis. Sensor jarak ultrasonik yang digunakan adalah HC-SR04. Sensor ultrasonik HC-SR04 ini berbeda dengan Sensor Ultrasonik PING))) yang digunakan oleh Prasetyo (2010), dalam hal keakuratan pengambilan data. HCSR04 kurang akurat dibandingkan dengan Sensor Ultrasonik PING))) karena sensor ini lebih ekonomis. Namun demikian, keakuratan sensor HC-SR04 dapat ditingkatkan dengan pengkalibrasian sehingga akurasinya dapat mendekati Sensor Ultrasonik PING))). Sensor deteksi api yang digunakan adalah sensor YG1006 yang sudah memiliki modul tambahan, sehingga sensor dapat langsung digunakan. Kekurangan sensor YG1006 adalah sensor hanya dapat mendeteksi cahaya dengan spektrum 760 nm sampai 1100 nm (Cytron Technologies 2012).
Gambar 1 Metode penelitian sensor jarak, sensor deteksi api, dan sensor garis
4
Analisis Sensor Setelah dilakukan pengumpulan alat dan bahan serta perangkaian sensor dengan mikrokontroler secara sederhana, dilakukan analisis kemampuan baca tiap sensor secara bergantian. Analisis sensor jarak dilakukan dengan menggunakan rangkaian sederhana untuk mendapatkan nilai pengukuran. Nilai ini dicatat beserta jarak target terhadap sensor. Posisi target dari sensor berubah secara berkala yaitu dari jarak 10 cm sampai 100 cm dengan penambahan jarak sebesar 10 cm. Setiap penambahan jarak, dilakukan PING terhadap target lalu dicatat nilai pengukuran, sehingga akan ada 10 jenis data nilai pengukuran tiap percobaan. PING adalah sebuah istilah untuk sensor jarak menembakan gelombang ultrasonik sampai menerima kembali pantulan gelombang ultrasonik tersebut. Setelah itu, untuk mendapatkan data jarak dari sensor, nilai pengukuran yang didapat akan dihitung dengan menggunakan rumus berdasarkan datasheet dari sensor tersebut. Pengambilan data dilakukan tanpa adanya hambatan yang tertulis pada datasheet sensor sehingga pembacaan jarak target terhadap sensor dianggap ideal. Persamaan 1 adalah persamaan konversi pada datasheet Elec Freaks (2011) sensor HC-SR04. t (1) d= 58.1 Keterangan: d = jarak deteksi (cm) t = lama waktu PING
Selain analisis sensor jarak, dilakukan pula analisis terhadap sensor deteksi api dan sensor garis. Pada tahapan ini, sensor akan dianalisis menggunakan rangkaian sederhana untuk diambil nilai pengukurannya. Untuk sensor deteksi api, perlakuannya sama dengan sensor jarak yaitu sumber api ditempatkan pada 10 jarak berbeda ditambah kondisi tidak ada sumber api. Setelah semua data didapat, akan ditentukan threshold untuk menentukan ada api atau tidak berdasarkan nilai pengukuran yang diperoleh. Untuk sensor garis, hanya dilakukan percobaan terhadap garis hitam dan putih, lalu dicatat nilai pengukurannya terhadap warna tersebut. Berbeda dengan sensor jarak, kedua sensor ini tidak dilanjutkan ke tahapan kalibrasi karena sensor ini hanya menghasilkan nilai boolean „ada‟ atau „tidak ada‟. Kalibrasi Sensor Kalibrasi dilakukan agar data yang didapat oleh sensor dapat sedekat mungkin dengan data aktualnya. Pada tahapan kalibrasi sensor, sensor yang dikalibrasi hanyalah sensor jarak ultrasonik. Pada tahapan ini dilakukan penyesuaian perhitungan jarak yang dibaca oleh sensor terhadap jarak aktual sensor dengan target. Penyesuaian dilakukan dengan brute force dan regresi linear yaitu dengan mencari rumus dasar menggunakan regresi linear dari hubungan linear antara data pengukuran sensor terhadap jarak aktualnya. Metode brute force menggunakan Persamaan 2. Cara ini menggunakan rataan dari pembagian antara data pengukuran dari sensor dengan jarak aktualnya. Setelah didapatkan nilai kontanta masing-masing, ditentukan nilai konstanta yang akan digunakan pada rumus kalibrasi.
5
x= Keterangan: x = konstanta pembagi n = banyaknya PING
ai n i=1 d i
(2)
n
ai = lama waktu PING ke-i di = jarak aktual ke-i
Penerapan Data Smoothing Data yang didapat setelah kalibrasi masih mungkin memiliki riak (ripple) yang tidak dibutuhkan. Riak harus dihilangkan, sehingga dibutuhkan data smoothing untuk mengurangi riak itu. Pada tahapan ini akan dibandingkan 2 metode data smoothing yaitu metode moving average dan metode exponential smoothing. Metode moving average dapat meramalkan data pada masa yang akan datang dengan cara mengambil rata-rata atau nilai tengah dari data untuk periode waktu yang telah ditentukan (Anggraeni dan Alfathoni 2010). Metode ini dimodelkan dengan Persamaan 3 dengan source code untuk Arduino UNO terdapat di Lampiran 8. T
X =
Xi /T
(3)
i=1
Keterangan: X = jarak deteksi MA (cm) Xi = jarak deteksi ke-i (cm) T = banyaknya window/kelompok
Moving average menggunakan layar (window) dalam meramal nilai yang didapat. Semakin besar window yang digunakan dalam aturan moving average, akan membuat ketidakstabilan dalam sistem, bahkan perilaku sistem akan semakin berantakan (Chiarella et al. 2006). Jumlah kelompok (T) yang dipilih pada penelitian ini sebesar 5. Hal ini dilakukan karena setiap kali pengambilan data, lama waktu yang dibutuhkan adalah 200 milidetik, sehingga setiap 1 detik akan didapat hasil jarak yang sesungguhnya. Selain itu, ketika terjadi perubahan jarak yang besar (misal dari 10 menjadi 100) hanya membutuhkan 5 pengambilan data (1 detik) untuk mendapatkan jarak aktual 100. Namun ketika terjadi riak data, data tidak langsung berubah secara signifikan, sehingga dapat meminimalisir terjadinya ripple pada data. Metode yang kedua adalah metode exponential smoothing. Metode exponential smoothing yang digunakan adalah simple exponential smoothing. Metode ini dimodelkan dengan Persamaan 4 dengan source code untuk Arduino UNO terdapat di Lampiran 9. Fi+1 = αXi +(1-α)Fi
(4)
Keterangan: Fi = jarak deteksi ES ke-i (cm) Xi = jarak observasi ke-i (cm) α = bobot ES
Dari Persamaan 4 dapat dilihat bahwa semakin dekat nilai α (bobot) ke 1, maka prediksi akan semakin mendekati data asli observasi (Xi) dan menjauhi data hasil prediksi sebelumnya (Fi). Begitu pula sebaliknya jika nilai bobot mendekati 0 maka nilai hasil prediksi akan mendekati nilai prediksi sebelumnya (Chiang
6
2005). Percobaan ini dilakukan dengan menggunakan bobot sebesar 0.2, 0.5 dan 0.8 dengan 𝐹0 adalah 0. Hal ini dilakukan agar didapat pola untuk bobot mendekati 1 dan 0. Pengujian Sensor Pengujian dilakukan pada data sensor jarak, sensor deteksi api, dan sensor garis. Pengujian untuk data sensor jarak adalah keakuratan kalibrasi dalam memprediksi jarak aktual, dan kemampuan data smoothing dalam menghaluskan data. Pengujian keakuratan menggunakan korelasi dan root mean square error (RMSE). Korelasi digunakan untuk mengetahui kedekatan dari data jarak sensor dengan jarak aktualnya. Semakin bagus hubungannya, nilai korelasi akan mendekati 1 dimana variasi nilai korelasi berkisar antara -1 sampai 1. Rumus korelasi seperti pada Persamaan 5 (Downey 2011). n i=1 xi - x yi - y r= (5) 2 n 2 n i=1 xi - x i=1 yi - y Keterangan: r = korelasi xi = data jarak sensor x = rata-rata jarak sensor
yi = data jarak aktual y = rata-rata jarak aktual n = jumlah PING
RMSE digunakan untuk melihat error yang terjadi pada data uji jarak sensor terhadap jarak aktual. RMSE akan semakin bagus apabila nilainya mendekati 0. Jika nilai korelasi yang didapat mendekati 1 dan nilai RMSE mendekati 0, maka akurasi jarak sensor baik. Rumus RMSE seperti pada Persamaan 6 (Johnson, 1995). RMSE =
n i=1 (Yi
- Y* )
2
(6)
n
Keterangan: Y = data jarak sensor Y∗ = data jarak aktual n = jumlah PING
Jika akurasi jarak dari sensor cukup baik maka kalibrasi sensor dapat diimplementasikan pada robot. Namun, jika akurasinya buruk maka harus dilakukan kalibrasi ulang. Untuk data smoothing, metode yang dapat menghaluskan data dengan baik akan digunakan. Namun, jika pengambilan data menggunakan salah satu metode itu tidak sesuai dengan tujuan mengurangi galat (ripple/riak), maka metode tidak diimplementasikan pada robot. Pengujian untuk data sensor deteksi api adalah keakuratan threshold dalam menentukan ada api atau tidak. Pengujian untuk data sensor garis adalah keakuratan dalam mendeteksi garis putih atau tidak putih. Implementasi Sensor Pada Robot Implementasi sensor pada robot dilakukan dengan menempatkan sensor pada robot. Hal ini dilakukan agar semua sensor dapat digunakan bersama-sama dengan menggunakan sebuah mikrokontroler, serta penempatan posisi sensor pada robot.
7
HASIL DAN PEMBAHASAN Persiapan Alat dan Bahan Bahan-bahan yang digunakan pada penelitian ini adalah: 5 buah sensor jarak ultrasonik HC-SR04 (Gambar 2a). 1 buah sensor deteksi api YG1006 dengan modul (Gambar 2b). 1 buah sensor garis (Gambar 2c). 1 buah mikrokontroler Arduino UNO (Gambar 2d). Kabel dan pin header. Regulator 5V dan baterai 9V. Project board 1 buah. Setelah alat dan bahan terkumpul, dilakukan perangkaian sederhana antara sensor dengan mikrokontroler. Perangkaian dimulai dengan sensor jarak ultrasonik. Pin VCC pada sensor dihubungkan ke slot Vinput 5V pada mikrokontroler, pin ground dihubungkan ke slot “ground” pada papan mikrokontroler. Lalu pin “trigger” dan pin “echo” pada sensor dihubungkan ke pin serial 3 pada Arduino UNO. Rangkaian sederhana ini bisa dilihat pada Gambar 3a. Setelah itu, dibuat rangkaian sederhana untuk sensor deteksi api. Sensor ini menggunakan pin analog 3 untuk mengirimkan datanya ke mikrokontroler. Pin VCC dihubungkan ke Vinput 5V dan pin ground dihubungkan ke pin ground pada papan mikrokontroler. Rangkaian sederhana ini bisa dilihat pada Gambar 3b.
(a)
(b)
(c)
(d)
Gambar 2 (a) sensor jarak ultrasonik HC-SR04, (b) sensor deteksi api YG1006, (c) sensor garis, dan (d) mirokontroler Arduino UNO
(a) (b) Gambar 3 Rangkaian sederhana (a) sensor jarak ultrasonik dan (b) sensor deteksi api
Jarak (cm)
8
100 90 80 70 60 50 40 30 20 10 0
Jarak sensor Jarak aktual
1
21
41
61
81 101 PING ke-
121
141
161
181
Gambar 4 Grafik data jarak dari sensor dengan menggunakan rumus konversi dari datasheet Analisis Sensor Rangkaian sederhana sensor jarak digunakan untuk mengambil nilai pengukuran. Data diambil berdasarkan 10 jarak aktual yang sudah ditentukan yaitu 10 cm, 20 cm, dan seterusnya sampai 100 cm dari sensor. Sensor jarak bekerja dengan cara menembakkan gelombang suara ultrasonik lalu menerima gelombang pantulan dari target. Lama waktu gelombang dipancarkan sampai diterima adalah nilai pengukurannya, sedangkan untuk mendapatkan nilai jarak, nilai tersebut harus dikonversi terlebih dahulu. Berdasarkan datasheet Elec Freaks (2011) untuk sensor HC-SR04, konstanta pembagi yang digunakan adalah 58.1 seperti pada Persamaan 1. Analisis dilakukan menggunakan rumus konversi pada Persamaan 1 untuk mendapatkan data jarak. Percobaan dilakukan dengan 10 jarak yang berbeda. Setiap 10 cm dilakukan beberapa PING terhadap target secara realtime, kemudian nilai jarak dari sensor dicatat. Data jarak dari sensor dibandingkan dengan jarak aktualnya. Namun, hasilnya tidak mendekati jarak aktualnya seperti yang terlihat pada Gambar 4, sehingga dibutuhkan kalibrasi dan penyesuaian untuk rumus konversi dari waktu menjadi jarak. Untuk data jarak sensor yang lainnya dapat dilihat pada Lampiran 1. Grafik pada Gambar 4 menunjukkan data jarak aktual dan jarak yang dideteksi oleh sensor untuk setiap PING yang dilakukan. Sumbu x pada grafik menunjukkan urutan PING yang dilakukan sementara sumbu y menunjukkan jarak dalam cm. Dalam waktu tertentu jarak aktual diubah-ubah dari 10 cm hingga 100 cm dengan rentang 10 cm. Grafik menunjukkan bahwa jarak sensor (garis merah) yang tidak sama dengan jarak aktual (garis titik-titik hitam). Hal ini membuktikan bahwa rumus konversi dari datasheet kurang tepat.
9
Tabel 1 Nilai pengukuran sensor garis Percobaan 1 2 3 4 5 6 7 8 9 10 Tidak Putih 0 0 0 0 0 0 0 0 0 0 Putih 1 1 1 1 1 1 1 1 1 1 Tabel 2 Nilai pengukuran sensor deteksi api Jarak (cm) 10 20 30 40 50 60 70 80 90 100 Tidak ada api
Nilai pengukuran Min Max 126 256 112 159 103 113 103 113 89 96 88 94 76 91 79 88 88 122 75 116 39 50
Untuk sensor deteksi api, sumber api yang dideteksi berada pada jarak 10 cm, 20 cm, sampai 100 cm. Untuk menentukan ada tidaknya api pada jarak 10100 cm, dibutuhkan sebuah threshold. Nilai threshold ditentukan berdasarkan nilai pengukuran minimum pada saat adanya api dan nilai pengukuran maksimum pada saat tidak ada api. Pada Tabel 2, nilai pengukuran minimum pada saat adanya api didapat pada jarak sumber api 100 cm yaitu 75. Sedangkan nilai pengukuran maksimum yang didapat ketika tidak ada api adalah 50. Oleh karena itu, nilai threshold yang digunakan untuk menentukan adanya api atau tidak adalah sebesar 65. Ketika sensor api menghasilkan nilai pengukuran lebih besar dari 65 maka terdeteksi ada api, sedangkan jika nilai pengukurannya kurang dari 65 maka tidak terdeteksi api. Percobaan yang dilakukan pada sensor garis hanyalah membedakan warna putih dan tidak putih. Sensor ini akan menghasilkan nilai pengukuran 1 untuk warna putih dan 0 untuk tidak putih seperti pada Tabel 1, sehingga sensor tidak memerlukan kalibrasi. Kalibrasi Sensor Kalibrasi dilakukan agar data yang didapat oleh sensor dapat sedekat mungkin dengan data aktualnya. Kalibrasi hanya dilakukan pada sensor jarak ultrasonik saja karena sensor ini mendeteksi jarak target yang nilainya berupa bilangan kontinyu. Sensor deteksi api dan sensor garis tidak memerlukan kalibrasi karena hasil yang didapat hanya berupa logika “ada” atau “tidak ada”.
Lama waktu PING (s)
10
7 6 5 4 3 2 1 0
t = 56.91d - 5.006 R² = 0.997
0
20
40 60 Jarak aktual (cm)
80
100
Gambar 5 Grafik regresi linear data pengukuran sensor jarak Untuk sensor jarak, nilai pengukuran didapat dengan menggunakan fungsi regresi linear. Data pengukuran yang didapat dari sensor setiap kali PING pada jarak aktual tertentu, dicatat kemudian dicari hubungan regresi linear data pengukuran terhadap jarak aktual. Grafik regresi linear dapat dilihat pada Gambar 5, dan persamaan yang diperoleh dapat dilihat pada Persamaan 7. t + 5.006 (7) d= 56.91 Keterangan: d = jarak deteksi (cm) t = lama waktu PING
Selain menggunakan regresi linear, digunakan juga cara brute force. Cara ini menggunakan rataan dari pembagian antara data pengukuran dari sensor dengan jarak aktualnya, seperti pada Persamaan 2. Cara ini menghasilkan konstanta baru yaitu 57.34. Tabel hasil perhitungan menggunakan cara brute force dapat dilihat pada Tabel 3, dan data lengkapnya dapat dilihat pada Lampiran 11. Konstanta yang digunakan adalah 57.34 dikarenakan konstanta ini dapat menghindari worst case yang mungkin terjadi. Pada Persamaan 8, terdapat fungsi ceiling yang berfungsi sebagai pengaman agar jarak yang dideteksi oleh sensor dibulatkan keatas sehingga jarak aman robot terhadap target/dinding terjaga. Dalam hal ini, fungsi ceiling menjadi pelindung Tabel 3 Hasil perhitungan menggunakan cara brute force Lama waktu PING Jarak aktual 591 10 591 10 591 10 1151 20 1165 20 . . . . . . 603 10 603 10 591 10 591 10 591 10 Total lama waktu PING/ jarak aktual Rata-rata lama waktu PING/ jarak aktual
Lama waktu PING/jarak aktual 59.1 59.1 59.1 57.6 58.3 . . . 60.3 60.3 59.1 59.1 59.1 9920.2 57.3
11
100
Jarak sensor Jarak aktual
Jarak (cm)
80 60 40 20
5 10 15 20 25 30 35 40 45 50 55 60 65 70 75 80 86 91 96 101 106 111 116 121 126
0 PING ke-
Gambar 6 Grafik data sensor jarak dengan jarak aktual setelah kalibrasi robot dari worst case yang mungkin terjadi. Hasil dari kalibrasi untuk sensor jarak dapat dilihat pada Gambar 6, untuk hasil kalibrasi yang lainnya dapat dilihat pada Lampiran 2. t (8) d= 57.34 Keterangan: d = jarak deteksi (cm) t = lama waktu PING
Grafik pada Gambar 6 menunjukkan data jarak aktual dan jarak yang dideteksi oleh sensor dengan menggunakan rumus konversi Persamaan 7. Sumbu x pada grafik menunjukkan urutan PING yang dilakukan sementara sumbu y menunjukkan jarak dalam cm. Terlihat bahwa data hasil konversi data jarak sensor menggunakan Persamaan 8 (―), mendekati nilai jarak aktualnya (••••). Oleh karena itu, rumus konversi Persamaan 8 dapat digunakan untuk mengkonversi data dari sensor HC-SR04 menggunakan Arduino UNO sebagai mikrokontrolernya. Penerapan Data Smoothing Setelah kalibrasi, tahap berikutnya adalah penerapan metode data smoothing. Metode yang digunakan untuk data smoothing adalah moving average dan exponential smoothing. Setiap metode dilakukan pada sensor jarak dengan kondisi target sama seperti tahap analisis sensor jarak. Moving Average Metode ini dilakukan dengan memasukkan Persamaan 3 ke mikrokontroler dengan kelompok sebesar 5. Lalu percobaan dimulai dengan kondisi sama seperti tahap analisis sensor jarak. Grafik pada Gambar 7 menunjukkan data jarak aktual, data jarak yang dideteksi oleh sensor setelah kalibrasi, dan data deteksi dari sensor dengan data smoothing moving average dengan window 5. Sumbu x pada grafik menunjukkan urutan PING yang dilakukan sementara sumbu y menunjukkan jarak dalam cm. Grafik menunjukkan bahwa jarak sensor dengan moving average dapat mengurangi riak data. Hasil percobaan yang lainnya dapat dilihat pada Lampiran 3. Hasil data smoothing moving average untuk sensor jarak dapat dilihat pada Gambar 7. Dari gambar terlihat bahwa setiap perubahan jarak sebesar 10 cm, dibutuhkan 5 kali PING untuk mendapatkan jarak aktualnya. Hal ini terjadi karena
12
120
Jarak (cm)
100 80 60 40 20 0 1
11
21
31
41
51
Gambar 7 Grafik data sensor jarak (
61
71 81 91 101 111 121 131 141 151 PING ke-
―) dengan jarak aktual (••••) dan jarak
sensor menggunakan moving average (---) untuk setiap perubahan jarak, rata-rata kelompok tidak langsung berubah secara signifikan. Pada data sensor jarak (Gambar 7), terjadi perubahan jarak dari 70 cm menjadi 80 cm pada PING ke 54 sehingga menyebabkan nilai rata-rata kelompok berubah bertahap. Rata-rata kelompok berubah menjadi 80 cm setelah 5 PING dari perubahan jarak di PING 55. Dapat dilihat bahwa pada PING 58 – 64 terjadi riak dari data jarak sensor. Data yang terbaca tidaklah tepat 80, tetapi berfluktuatif dari 79 sampai 82 dikarenakan adanya kesalahan pembacaan data oleh sensor. Namun hal ini tidak mengubah rata-rata kelompok yang nilainya tetap 80, sehingga metode moving average ini dapat menghilangkan riak yang terjadi pada PING 57 – 63, seperti yang dapat dilihat pada Tabel 4. Exponential Smoothing Metode ini dilakukan dengan memasukkan Persamaan 4 ke mikrokontroler dengan bobot 0.2, 0.5, dan 0.8. Lalu, percobaan dimulai dengan kondisi sama seperti tahap analisis sensor jarak. Grafik pada Gambar 8 menunjukkan data jarak aktual, data jarak yang dideteksi oleh sensor setelah kalibrasi, dan data deteksi dari sensor dengan data smoothing exponential smoothing dengan bobot 0.2. Sumbu x pada grafik menunjukkan urutan PING yang dilakukan sementara sumbu y menunjukkan jarak dalam cm. Grafik menunjukkan bahwa jarak sensor dengan exponential smoothing dengan bobot 0.2 membutuhkan waktu yang lama untuk mencapai jarak aktualnya sehingga metode tidak sempat untuk menghilangkan riak data. Hasil percobaan yang lainnya dapat dilihat pada Lampiran 4.
Tabel 4 Data sensor jarak pada PING 57 – 63 PING 57 58 59 60 61 62 63
Aktual 80 80 80 80 80 80 80
Jarak (cm) Kalibrasi 80 81 80 81 81 79 82
MA 76 78 80 80 80 80 80
13
120
Jarak (cm)
100 80 60 40 20
1 6 11 16 21 26 31 36 41 46 51 56 61 66 71 76 81 86 91 96 101 106 111 116
0 PING ke-
Gambar 8 Grafik data sensor jarak (
―) dengan jarak aktual (••••) dan jarak
sensor menggunakan exponential smoothing dengan bobot 0.2 (---) Hasil dari gambar terlihat bahwa metode ini membutuhkan banyak PING untuk mencapai nilai aktual. Hal ini terjadi karena bobot untuk nilai aktual lebih kecil daripada bobot untuk nilai prediksi, sehingga perubahan nilai sangat lambat karena pengaruh nilai prediksi sangat besar. Grafik pada Gambar 9 menunjukkan data jarak aktual, data jarak yang dideteksi oleh sensor setelah kalibrasi, dan data deteksi dari sensor dengan data smoothing exponential smoothing dengan bobot 0.5. Sumbu x pada grafik menunjukkan urutan PING yang dilakukan sementara sumbu y menunjukkan jarak dalam cm. Grafik menunjukkan bahwa jarak sensor dengan exponential smoothing dengan bobot 0.5 membutuhkan waktu lebih sedikit untuk mencapai jarak aktualnya. Metode dapat menghilangkan riak data. Hasil percobaan yang lainnya dapat dilihat pada Lampiran 5. Nilai yang dihasilkan membutuhkan 5 – 6 kali PING untuk mencapai nilai aktual. Perubahan nilai lebih cepat dibandingkan dengan menggunakan bobot 0.2. Hal ini cukup baik karena perubahan tidak terlalu memakan waktu lama tetapi bisa menghilangkan riak yang terjadi pada PING 133 – 137. Grafik pada Gambar 10 menunjukkan data jarak aktual, data jarak yang dideteksi oleh sensor setelah kalibrasi, dan data deteksi dari sensor dengan data smoothing exponential smoothing dengan bobot 0.8. Sumbu x pada grafik menunjukkan urutan PING yang dilakukan sementara sumbu y menunjukkan jarak dalam cm. Grafik menunjukkan bahwa jarak sensor dengan exponential 120
Jarak (cm)
100 80 60 40 20
1 6 11 16 21 26 31 36 41 46 51 56 61 66 71 76 81 86 91 96 101 106 111 116 121 126
0 PING ke-
Gambar 9 Grafik data sensor jarak (
―) dengan jarak aktual (••••) dan jarak
sensor menggunakan exponential smoothing dengan bobot 0.5 (---)
14
100
Jarak (cm)
80 60 40 20 0 1
6
11 16 21 26 31 36 41 46 51 56 61 66 71 76 81 86 91 96 PING ke-
Gambar 10 Grafik data sensor jarak (
―) dengan jarak aktual (••••) dan jarak
sensor menggunakan exponential smoothing dengan bobot 0.8 (---) smoothing dengan bobot 0.8 membutuhkan waktu yang singkat untuk mencapai jarak aktualnya. Namun pada gambar, hasil percobaan tidak dapat menghilangkan riak data. Jarak sensor dengan exponential smoothing dengan bobot 0.8 lebih mengikuti perubahan data jarak sensor setelah kalibrasi. Hasil percobaan yang lainnya dapat dilihat pada Lampiran 6. Nilai yang dihasilkan sangat cepat berubah. Hal ini dikarenakan bobot prediksi yang kecil dan bobot nilai yang didapat sangat besar, sehingga nilai prediksi akan lebih cepat berubah. Hal ini kurang baik karena bobot yang besar akan membuat nilai prediksi mudah berubah mengikuti ripple. Pengujian Sistem Pengujian akurasi data jarak sensor menggunakan toleransi ±10% dari jarak aktualnya. Akurasi dihitung dengan menggunakan Persamaan 8, dimana data jarak sensor dianggap akurat jika nilainya berada pada rentang toleransi ±10% dari jarak aktualnya. Data pengukuran akurasi dapat dilihat pada Lampiran 10, dengan data jarak dari sensor ketika target bergerak dihilangkan. Hal ini dilakukan karena sensor akan membaca jarak yang tidak diketahui jarak aktualnya ketika target bergerak. Akurasi data jarak sensor yang didapatkan sebesar 100%. x=
a ×100% n
(8)
Keterangan: x = akurasi a = banyaknya data yang akurat n = banyaknya data
Korelasi data sensor jarak setelah kalibrasi terhadap jarak aktualnya dihitung dengan Persamaan 5 dan diperoleh hasil sebesar 0.999155. Nilai korelasi mendekati 1 artinya data sensor jarak setelah kalibrasi memiliki hubungan yang dekat dengan jarak aktualnya. Artinya hasil kalibrasi sangat baik dan sangat dekat dengan jarak aktualnya. RMSE untuk data sensor jarak kalibrasi dihitung dengan menggunakan Persamaan 6 dan diperoleh hasil sebesar 1.1319. Nilai RMSE mendekati 0 artinya data sensor jarak kalibrasi menghasilkan sedikit error. Hal ini sangat baik karena error yang dihasilkan sedikit. Pengujian akurasi kalibrasi sensor jarak
15
Tabel 5 Hasil pengujian data smoothing moving average dan exponential smoothing pada sensor jarak Sensor 1 2 3 4 5
Rata-rata banyaknya PING* untuk mencapai nilai aktual MA (window = 5) ES (α = 0.2) ES (α = 0.5) ES (α = 0.8) 5 28 6 3 5 28 6 3 5 29 6 3 5 29 7 3 5 29 6 3
* 1 PING = 200 ms
menghasilkan nilai korelasi dan RMSE yang sangat baik, sehingga akurasi yang didapat sangat baik. Untuk data smoothing, pengujian dilakukan dengan menghitung rata-rata banyaknya PING yang diperlukan sensor untuk mencapai nilai aktualnya. Hasil dari pengujian dapat dilihat pada Tabel 5. Untuk moving average dengan window sebesar 5, dibutuhkan 5 kali PING untuk mencapai nilai aktual. Hal ini menunjukkan bahwa setiap 1 detik, sensor akan mendapatkan nilai aktual dari data yang didapat. Jika dalam rentang 1 detik terdapat data yang menyimpang, nilai yang didapat tidak akan berubah drastis, sehingga pada PING yang berikutnya, nilai aktual akan kembali didapat. Untuk exponential smoothing dengan α (bobot/smoothing factor) 0.2, dibutuhkan rata-rata 29 kali PING untuk mencapai nilai aktual. Hal ini menunjukkan bahwa untuk mencapai nilai aktual, dibutuhkan waktu 6 detik. Dengan kata lain, robot memerlukan waktu tambahan untuk mendeteksi jarak aktualnya dengan target. Namun ketika ada data yang salah, nilai yang didapat berubah sangat sedikit. Untuk exponential smoothing dengan α (bobot/smoothing factor) 0.5, dibutuhkan rata-rata 6 kali PING untuk mencapai nilai aktual. Hal ini cukup bagus karena hanya dibutuhkan 1.2 detik untuk mencapai nilai aktual. Metode ini dapat menghaluskan data yang didapat oleh sensor. Ketika ada data yang menyimpang, nilai yang didapat hanya berubah 50% dari selisih data sebelumnya dengan data yang menyimpang. Ketika terjadi perubahan jarak aktual, tiap PING dari sensor akan mengubah nilai yang didapat sebesar 50% dari selisih nilai sebelumnya dengan nilai baru yang didapat. Untuk exponential smoothing dengan α (bobot/smoothing factor) 0.8, dibutuhkan rata-rata 3 kali PING untuk mencapai nilai aktual. Ketika ada kesalahan pembacaan nilai oleh sensor, data yang didapat akan berubah drastis, sekitar 80% dari selisih data sebelumnya dengan data yang baru. Walaupun untuk mencapai nilai aktual hanya dibutuhkan 600 milidetik, tetapi data yang didapat akan rentan terhadap gangguan. Hal ini dapat membuat robot berjalan secara zigzag karena data yang diterima sangat mudah berubah.
16
Gambar 11 Peletakan sensor jarak ultrasonik pada robot Pengujian selanjutnya dilakukan pada data sensor deteksi api. Pengujian dilakukan dengan meletakkan api pada jarak tertentu di depan sensor. Kemudian digunakan threshold sebesar 65 untuk menentukan ada api atau tidak. Percobaan membuktikan bahwa seluruh nilai pengukuran yang dihasilkan ketika ada api lebih besar dari 65. Dengan kata lain, sensor api dengan threshold 65 memiliki akurasi 100%. Untuk sensor garis, nilai pengukuran yang dihasilkan oleh sensor ketika mendeteksi garis warna tidak putih bernilai 0. Sedangkan ketika mendeteksi warna putih, nilai pengukuran yang dihasilkan sebesar 1. Akurasi sensor ini juga 100%. Implementasi Sensor pada Robot Peletakan 5 buah sensor jarak membentuk setengah lingkaran pada bagian depan robot. Sensor pertama diletakan menghadap depan robot, hal ini bertujuan agar robot dapat mendeteksi dinding di depan robot sehingga robot tidak menabrak dinding. Sensor kedua dan ketiga diletakan menghadap serong kanan dan serong kiri robot. Hal ini bertujuan agar kaki depan robot tidak menabrak dinding. Sensor keempat dan kelima diletakan menghadap samping kanan dan damping kiri robot. Hal ini bertujuan agar robot dapat mendeteksi jarak dari dinding kanan dan dinding kiri, sehingga robot dapat memutuskan untuk berbelok atau tidak berdasarkan jaraknya terhadap dinding di kanan dan di kiri. Untuk lebih jelasnya, peletakan sensor jarak dapat dilihat pada Gambar 11. Setiap sensor dapat mengambil data secara bersamaan dengan menggunakan sebuah mikrokontroler. Source code untuk pengambilan data secara bersamaan dapat dilihat pada Lampiran 7. Sensor jarak diimplementasikan menggunakan rumus hasil kalibrasi serta tidak diterapkan data smoothing pada datanya. Hasil akuisisi data sensor secara bersamaan dapat dilihat pada Gambar 12. Pada Gambar 12: kolom pertama berisi data dari sensor jarak yang diletakan menghadap samping kiri robot, kolom kedua berisi data dari sensor jarak yang diletakan menghadap serong kiri robot,
17
Gambar 12 Tampilan akuisisi data semua sensor secara bersamaan kolom ketiga berisi data sensor jarak yang diletakan menghadap depan robot, kolom keempat berisi data sensor jarak yang diletakan menghadap serong kanan robot, kolom kelima berisi data sensor jarak yang diletakan menghadap samping kanan robot, kolom keenam berisi data sensor deteksi api, dan kolom ketujuh berisi data sensor garis.
SIMPULAN DAN SARAN Hasil eksperimen menunjukan bahwa sensor jarak ultrasonik yang digunakan dalam sistem robot hexapod pada penelitian ini dapat membaca data jarak dengan baik ketika konstanta pembagi yang digunakan adalah 57.34. Akurasi dari kalibrasi sensor jarak menggunakan konstanta pembagi 57.34 sangat baik, hal ini ditunjukkan dari korelasi data hasil kalibrasi sebesar 0.999155 dan RMSE sebesar 1.1319. Artinya data hasil kalibrasi dengan menggunakan konstanta pembagi 57.34 memiliki korelasi yang baik dengan nilai aktualnya serta menghasilkan error yang sedikit. Metode data smoothing yang direkomendasikan adalah moving average dengan window 5 atau exponential smoothing dengan bobot 0.5. Namun, penggunaan salah satu dari kedua metode ini memerlukan penelitian lebih lanjut, karena diperlukan penyesuaian dalam pemrosesan data di mikrokontroler. Untuk sensor deteksi api, nilai threshold yang disarankan adalah 65 untuk mendeteksi api dalam jarak 10 cm sampai 100 cm. Sensor garis tidak memerlukan pengolahan data tambahan karena nilai yang didapat merupakan nilai logika. Nilai 0 merepresentasikan garis tidak putih sedangkan nilai 1 merepresentasikan garis putih. Pada fire fighting robot, peletakan sensor jarak membentuk setengah lingkaran. Sensor jarak yang menghadap ke depan robot 1 buah, 2 buah sensor jarak menyerong kanan dan kiri, sedangkan 2 sensor jarak lainnya menghadap samping kanan dan kiri robot. Saran untuk penelitian selanjutnya adalah dengan menggabungkan data yang diterima oleh sensor dengan kecerdasan buatan robot untuk mengambil keputusan pergerakan robot. Metode data smoothing dapat diterapkan, namun dibutuhkan penyesuaian dalam pemrosesan data di mikrokontroler.
18
DAFTAR PUSTAKA Anggraeni W, Alfathoni A. 2010. Peramalan port throughput menggunakan metode kombinasi nonlinier [skripsi]. Yogyakarta (ID): UPN Veteran. Chiang TC. 2005. Business Conditions & Forecasting. Philadelphia (US): Drexel University. Chiarella C, He XZ, Hommes C. 2006. A dynamic analysis of moving average rules. Journal of Economic Dynamics & Control. 30:1729–1753. Cytron Technologies. 2012. Flame sensor module getting started guide [datasheet]. Johor (MY): Cytron Technologies. Downey AB. 2011. Think Stats: Probability and Statistics for Programmers. Massachusetts (US): Green Tea Pr. Elec Freaks. 2011. Ultrasonic ranging module HC-SR04 [internet]. [diunduh 2013 Mar 24]. Tersedia pada: http://elecfreaks.com/store/download/HC-SR04.pdf. Johnson LL. 1995. A comparison of methods for estimating RMS error: a “brute force” approach versus a mathematically-elegant approach, as applied to the calculation of a specific retrieval error for a limb-scanning microwave radiometer-spectrometer [tesis]. Ohio (US): Air Force Institute of Technology. Prasetyo WE. 2010. Perancangan dan implementasi robot cerdas pemadam api senior beroda DU 114-v10 (dirancang untuk pertandingan KRCI 2010) [skripsi]. Bandung (ID): Universitas Komputer Indonesia.
19
LAMPIRAN Lampiran 1 Grafik data sensor jarak sebelum kalibrasi (a) Grafik data sensor jarak 1 100 90 80 70 60 50 40 30 20 10 0
Jarak sensor
5 10 15 20 25 30 35 40 45 50 55 61 66 71 76 81 86 91 96 101 106 111 116 121 126 131 136
Jarak (cm)
Jarak aktual
PING ke-
Jarak (cm)
(b) Grafik data sensor jarak 2 100 90 80 70 60 50 40 30 20 10 0
Jarak sensor Jarak aktual
20
40
60
80
100
120
140
160
180
200
PING ke-
Jarak (cm)
(c) Grafik data sensor jarak 3 100 90 80 70 60 50 40 30 20 10 0
Jarak sensor Jarak aktual
20
40
60
80
100
PING ke-
120
140
160
180
20
Lampiran 1 Lanjutan (d) Grafik data sensor jarak 4 Jarak sensor Jarak aktual
Jarak (cm)
100 90 80 70 60 50 40 30 20 10 0
20
40
60
80
100
120
140
160
PING keJarak sensor Jarak aktual
5 10 15 20 25 30 35 40 45 50 55 60 65 70 75 80 85 90 95 100 105 110 115 120 125 130 136 141
Jarak (cm)
(e) Grafik data sensor jarak 5 100 90 80 70 60 50 40 30 20 10 0
PING ke-
21
Lampiran 2 Grafik data sensor jarak setelah kalibrasi (a) Grafik data sensor jarak 1 Jarak sensor Jarak aktual
Jarak (cm)
100 90 80 70 60 50 40 30 20 10 0
5 10 15 20 25 30 35 40 45 50 55 60 65 70 75 80 85 90 95 100
PING keJarak sensor Jarak aktual
5 10 15 20 25 31 36 41 46 51 56 61 66 71 76 81 86 91 96 101 106 111 116
Jarak (cm)
(b) Grafik data sensor jarak 2 100 90 80 70 60 50 40 30 20 10 0
PING ke-
(c) Grafik data sensor jarak 3 100 90
Jarak sensor Jarak aktual
70 60 50 40 30 20 10 0 5 10 15 20 25 30 35 40 45 50 55 60 65 70 75 80 86 91 96 101 106 111 116 121 126
Jarak (cm)
80
PING ke-
22
Lampiran 2 Lanjutan
Jarak (cm)
(d) Grafik data sensor jarak 4 100 90 80 70 60 50 40 30 20 10 0
Jarak sensor Jarak aktual
5
10 15 20 25 30 35 40 45 50 55 60 65 70 75 80 85 90 PING keJarak sensor Jarak aktual
5 10 15 20 25 30 35 40 45 50 55 60 65 70 75 80 85 90 95 100 105 110 115 120 125
Jarak (cm)
(e) Grafik data sensor jarak 5 100 90 80 70 60 50 40 30 20 10 0
PING ke-
23
Lampiran 3 Grafik data sensor jarak setelah kalibrasi dan moving average dengan window 5 (a) Grafik data sensor jarak 1 120
Jarak sensor Jarak sensor + MA Jarak aktual
Jarak (cm)
100 80 60 40
20 0 1
11
21
31
41
51
61
71 81 91 101 111 121 131 141 151 PING ke-
(b) Grafik data sensor jarak 2 120
Jarak sensor Jarak sensor + MA Jarak aktual
Jarak (cm)
100 80 60 40 20 0 1
11
21
31
41
51
61
71 81 PING ke-
91
101 111 121 131 141
61
71 81 PING ke-
91
101 111 121 131 141 151
(c) Grafik data sensor jarak 3 120
Jarak sensor Jarak sensor + MA Jarak aktual
Jarak (cm)
100 80 60 40 20 0
1
11
21
31
41
51
24
Lampiran 3 Lanjutan (d) Grafik data sensor jarak 4 120
Jarak sensor Jarak sensor + MA Jarak aktual
Jarak (cm)
100 80 60 40 20 0 1
11
21
31
41
51
61
71
81
91
101 111 121 131 141 151
91
101 111 121 131 141 151
PING ke-
(e) Grafik data sensor jarak 5 120
Jarak sensor Jarak sensor + MA Jarak aktual
Jarak (cm)
100 80 60 40 20 0 1
11
21
31
41
51
61
71
81
PING ke-
25
Lampiran 4 Grafik data sensor jarak setelah kalibrasi dan exponential smoothing dengan bobot 0.2 (a) Grafik data sensor jarak 1 120
Jarak sensor Jarak sensor + ES Jarak aktual
Jarak (cm)
100 80 60 40 20 0 1
21
41
61
81
101 121 141 161 181 201 221 241 261 281 PING ke-
(b) Grafik data sensor jarak 2 120
Jarak (cm)
100
Jarak sensor Jarak sensor + ES Jarak aktual
80
60 40 20
1 6 11 16 21 26 31 36 41 46 51 56 61 66 71 76 81 86 91 96 101 106 111 116 121 126
0 PING ke-
(c) Grafik data sensor jarak 3 120
Jarak (cm)
100
Jarak sensor Jarak sensor + ES Jarak aktual
80 60 40 20 0 1 6 11 16 21 26 31 36 41 46 51 56 61 66 71 76 81 86 91 96 101106111116 PING ke-
26
Lampiran 4 Lanjutan (d) Grafik data sensor jarak 4 120
Jarak (cm)
100
Jarak sensor Jarak sensor + ES Jarak aktual
80 60 40 20
1 6 11 16 21 26 31 36 41 46 51 56 61 66 71 76 81 86 91 96 101 106 111 116 121 126 131 136 141 146 151
0 PING ke-
(e) Grafik data sensor jarak 5 120
80 60 40 20 0 1 6 11 16 21 26 31 36 41 46 51 56 61 66 71 76 81 86 91 96 101 106 111 116 121 126
Jarak (cm)
100
Jarak sensor Jarak sensor + ES Jarak aktual
PING ke-
27
Lampiran 5 Grafik data sensor jarak setelah kalibrasi dan exponential smoothing dengan bobot 0.5 (a) Grafik data sensor jarak 1 120
Jarak sensor Jarak sensor + ES Jarak aktual
Jarak (cm)
100 80 60 40 20 0 1
21
41
61
81
101 121 141 161 181 201 221 241 261 281 PING ke-
(b) Grafik data sensor jarak 2 120
Jarak (cm)
100
Jarak sensor Jarak sensor + ES Jarak aktual
80 60 40 20
1 6 11 16 21 26 31 36 41 46 51 56 61 66 71 76 81 86 91 96 101 106 111 116 121 126 131 136 141 146 151
0 PING ke-
(c) Grafik data sensor jarak 3 120 100
Jarak sensor Jarak sensor + ES Jarak aktual
Jarak (cm)
80 60 40 20
1 6 11 16 21 26 31 36 41 46 51 56 61 66 71 76 81 86 91 96 101 106 111 116 121 126
0 PING ke-
28
Lampiran 5 Lanjutan (d) Grafik data sensor jarak 4 120
Jarak sensor Jarak sensor + ES Jarak aktual
100
Jarak (cm)
80 60 40 20 0 1
6 11 16 21 26 31 36 41 46 51 56 61 66 71 76 81 86 91 96 PING ke-
(e) Grafik data sensor jarak 5 120 100
Jarak sensor Jarak sensor + ES Jarak aktual
60 40 20 0 1 6 11 16 21 26 31 36 41 46 51 56 61 66 71 76 81 86 91 96 101 106 111 116 121 126
Jarak (cm)
80
PING ke-
29
Lampiran 6 Grafik data sensor jarak setelah kalibrasi dan exponential smoothing dengan bobot 0.8 (a) Grafik data sensor jarak 1 120
Jarak sensor Jarak sensor + ES Jarak aktual
Jarak (cm)
100 80 60
40 20 0 1
21
41
61
81
101 121 141 161 181 201 221 241 261 281 PING ke-
(b) Grafik data sensor jarak 2 120
Jarak sensor Jarak sensor + ES Jarak aktual
Jarak (cm)
100 80 60 40 20
1 6 11 16 21 26 31 36 41 46 51 56 61 66 71 76 81 86 91 96 101 106 111 116 121 126
0 PING ke-
(c) Grafik data sensor jarak 3 120
Jarak sensor Jarak sensor + ES Jarak aktual
Jarak (cm)
100 80 60 40 20 0 1
6 11 16 21 26 31 36 41 46 51 56 61 66 71 76 81 86 91 96 PING ke-
30
Lampiran 6 Lanjutan (d) Grafik data sensor jarak 4 120 100
Jarak sensor Jarak sensor + ES Jarak aktual
Jarak (cm)
80 60 40 20
1 6 11 16 21 26 31 36 41 46 51 56 61 66 71 76 81 86 91 96 101 106 111 116 121 126 131 136 141 146 151
0 PING ke-
(e) Grafik data sensor jarak 5 120
80 60 40 20 0 1 6 11 16 21 26 31 36 41 46 51 56 61 66 71 76 81 86 91 96 101 106 111 116 121 126
Jarak (cm)
100
Jarak sensor Jarak sensor + ES Jarak aktual
PING ke-
31
Lampiran 7 Source code untuk pengambilan data menggunakan sensor ultrasonik, sensor deteksi api, dan sensor garis #include //mendefinisikan pin digital yang digunakan untuk sensor jarak #define PING_PINA 3 #define PING_PINB 4 #define PING_PINC 5 #define PING_PIND 6 #define PING_PINE 7 //mendefinisikan variabel jarak meksimum untuk sensor jarak #define MAX_DISTANCE 200 //fungsi ping yang nilainya disimpan pada variabel sonar NewPing sonara(PING_PINA, PING_PINA, MAX_DISTANCE); //NewPing sonar(pin_transmit, pin_receive, jarak_maksimal); NewPing sonarb(PING_PINB, PING_PINB, MAX_DISTANCE); NewPing sonarc(PING_PINC, PING_PINC, MAX_DISTANCE); NewPing sonard(PING_PIND, PING_PIND, MAX_DISTANCE); NewPing sonare(PING_PINE, PING_PINE, MAX_DISTANCE); //inisialisasi variabel untuk sensor garis int senPin = A3; // inisialisasi pin analog yang digunakan int warna = 0; int sensor = 0; //insialisasi setup clock untuk mikrokontroler void setup() { Serial.begin(9600); } //infinite loop void loop() { //inisialissasi variabel jarak int distancea = 0; int distanceb = 0; int distancec = 0; int distanced = 0; int distancee = 0; //delay setiap pengambilan data delay(200); //mulai pengambilan data warna = analogRead(senPin);//pengambilan data oleh sensor garis int sensorValue = analogRead(A0);//pengambilan data oleh sensor deteksi api //pengambilan data pengukuran (RAW) oleh sensor jarak unsigned int timea = sonara.ping(); delay(1); unsigned int timeb = sonarb.ping(); delay(1);
32
Lampiran 7 Lanjutan unsigned int timec = sonarc.ping(); delay(1); unsigned int timed = sonard.ping(); delay(1); unsigned int timee = sonare.ping(); //memanggil fungsi konversi jarak distancea = distance(timea); if (distancea == 0){ Serial.print("Out of range\t"); //mencetak "out of range" jika jarak yang dideteksi kurang dari 0 cm //atau lebih dari 200 cm } else { Serial.print(distancea); //mencetak jarak hasil konversi Serial.print(" cm\t"); } distanceb = distance(timeb); if (distanceb == 0){ Serial.print("Out of range\t"); } else { Serial.print(distanceb); Serial.print(" cm\t"); } distancec = distance(timec); if (distancec == 0){ Serial.print("Out of range\t"); } else { Serial.print(distancec); Serial.print(" cm\t"); } distanced = distance(timed); if (distanced == 0){ Serial.print("Out of range\t"); } else { Serial.print(distanced); Serial.print(" cm\t"); } distancee = distance(timee); if (distancee == 0){ Serial.print("Out of range\t"); } else { Serial.print(distancee);
33
Lampiran 7 Lanjutan Serial.print(" cm\t"); } //mendeteksi api jika nilainya lebih dari 65 maka terdeteksi api if (sensorValue > 65){ Serial.print("Terdeteksi Api\t"); } else { Serial.print("Tidak ada Api\t"); } //mendeteksi garis hitam atau putih if (warna > 600){ sensor = 1; } else{ sensor = 0; } //mencetak garis Serial.println(sensor); } //fungsi konversi jarak dari waktu ke jarak dalam cm int distance(int time){ int a=0; int hasil; hasil = ceil((time/2)/28.67);//waktu PING/57.34 //jika hasil konversi lebih dari 200 cm atau kurang dari 0 cm //maka return 0 if (hasil >= 200 || hasil <= 0){ return a; } else { return hasil; } }
34
Lampiran 8 Source code untuk pengambilan data menggunakan sensor ultrasonik dengan moving average #include //menggunakan library PING #define PING_PINA 3//mendefinisikan pin digital yang digunakan #define MAX_DISTANCE 200 //mendefinisikan jarak maksimal yang akan dideteksi //memanggil fungsi PING NewPing sonara(PING_PINA, PING_PINA, MAX_DISTANCE); //NewPing sonara(pin_Transmit, pin_Receive, jarak_maksimal_deteksi); const int numReadings = 5;//mendefinisikan banyaknya window yang akan digunakan untuk perhitungan moving average int bacaa[numReadings];//array untuk menyimpan nilai masukan int index = 0;//variabel untuk mengetahui index yang sedang aktif int totala = 0;//variabel hasil jumlah 5 data int rataa = 0;//variabel hasil rataan 5 data int thisReading = 0;//variable index array untuk membersihkan memory array void setup() { //setting clock yang akan digunakan Serial.begin(9600); //membersihkan memory array yang digunakan for (thisReading = 0; thisReading < numReadings; thisReading++){ bacaa[thisReading]=0; } } void loop() { int distancea = 0;//variabel jarak delay(1000);//delay setiap ping unsigned int timea = sonara.ping();//mengaktifkan fungsi PING Serial.print (timea); Serial.print ("\t"); //mulai moving average dari data lama dan data yang baru didapat totala = totala - bacaa[index];//total sekarang = total sebelumnya dikurang nilai bacaan sebelumnya distancea = distance(timea);//memanggil fungsi konversi jarak bacaa[index] = distancea;//memasukkan nilai baru ke array totala = totala + bacaa[index];//total baru = total + nilai array yang baru
35
Lampiran 8 Lanjutan rataa = totala/numReadings;//rata-rata = total baru/jumlah window yang digunakan //cetak hasil konversi if (distancea == 0){ Serial.println("Out of range\t"); } else { Serial.print(distancea); Serial.print(" \t"); } //cetak hasil moving average if (rataa == 0){ Serial.println("Out of range\t"); } else { Serial.println(rataa); //Serial.println(" cm"); } index = index + 1;//geser array if (index >=numReadings){ index = 0;//jika nilai array lebih dari 4, di ulang arraynya dari 0 } } //fungsi konversi int distance(int time){ int a=0; int hasil; hasil = ceil((time/2)/28.67); if (hasil >= 200 || hasil <= 0){ return a; } else { return hasil; } }
36
Lampiran 9 Source code untuk pengambilan data menggunakan sensor ultrasonik dengan exponential smoothing #include //menggunakan library PING #define PING_PINA 3//mendefinisikan pin digital yang digunakan #define MAX_DISTANCE 200//mendefinisikan jarak maksimal yang akan dideteksi //memanggil fungsi PING NewPing sonara(PING_PINA, PING_PINA, MAX_DISTANCE); //NewPing sonara(pin_Transmit, pin_Receive, jarak_maksimal_deteksi); float tempa = 0;//nilai hasil ES sebelumnya int hasila = 0;//nilai hasil float nilaia = 0;//nilai masukan float alpha = 0.2;//bobot int tempdisa = 0;//nilai jarak sebelumnya void setup() { //setting clock yang akan digunakan Serial.begin(9600); } void loop() { int distancea = 0;//variabel jarak delay(1000);//delay setiap PING unsigned int timea = sonara.ping();//mengaktifkan fungsi PING Serial.print (timea); Serial.print ("\t"); //mulai exponential smoothing distancea = distance(timea);//memanggil fungsi konversi jarak //nilai perkiraan = (bobot*nilai sekarang) + (1bobot)*nilai hasil ES sebelumnya nilaia = (alpha*tempdisa) + ((1 - alpha)*tempa); //nilai F berikutnya hasila = nilaia;//hasil //cetak hasil konversi dan ES if (distancea == 0){ Serial.print("Out of range\t"); Serial.println(hasila); } else { Serial.print(distancea); Serial.print(" \t"); Serial.println(hasila); } tempdisa = distancea;//jarak baru tempa = nilaia;//menyimpan nilai hasil ES sebelumnya } //fungsi konversi
37
Lampiran 9 Lanjutan int distance(int time){ int a=0; int hasil; hasil = ceil((time/2)/28.67); if (hasil >= 200 || hasil <= 0){ return a; } else { return hasil; } }
38
Lampiran 10 Tabel hasil pengukuran sensor jarak Jarak aktual 10 10 10 10 10 10 10 10 20 20 20 30 30 30 30 40 40 40 40 50 50 50 50 50 60 60 60 60 60 70 70 70 70 70 70 70 70 70 70 80 80 80 80
Data setelah kalibrasi Data jarak Akurasi 10 1 10 1 10 1 10 1 10 1 10 1 10 1 10 1 20 1 20 1 20 1 30 1 30 1 30 1 30 1 40 1 40 1 40 1 40 1 50 1 50 1 50 1 50 1 50 1 60 1 59 1 60 1 60 1 60 1 67 1 70 1 69 1 69 1 69 1 70 1 70 1 70 1 70 1 70 1 79 1 79 1 79 1 79 1
Jarak aktual 10 10 10 10 10 20 20 20 20 20 20 30 30 30 30 30 40 40 40 40 40 40 40 50 50 50 50 50 50 60 60 60 60 60 60 60 60 60 60 60 70 70 70
Data sebelum kalibrasi Data jarak Akurasi 9 1 9 1 9 1 9 1 9 1 19 1 19 1 19 1 19 1 19 1 19 1 28 1 28 1 28 1 28 1 29 1 39 1 38 1 38 1 38 1 38 1 38 1 38 1 48 1 48 1 47 1 48 1 48 1 48 1 57 1 59 1 57 1 58 1 57 1 58 1 57 1 57 1 57 1 57 1 59 1 67 1 67 1 67 1
39
Lampiran 10 Lanjutan Data setelah kalibrasi Jarak aktual Data jarak Akurasi 80 83 1 80 84 1 80 82 1 80 82 1 80 79 1 80 79 1 80 80 1 80 80 1 80 80 1 80 79 1 80 80 1 90 91 1 90 90 1 90 89 1 90 89 1 90 90 1 90 91 1 90 90 1 90 90 1 90 90 1 100 97 1 100 100 1 100 100 1 100 100 1 100 100 1 100 100 1 90 91 1 90 89 1 90 90 1 90 90 1 90 90 1 90 90 1 80 82 1 80 80 1 80 80 1 80 80 1 80 80 1 70 69 1 70 69 1 70 70 1 70 71 1 70 71 1 70 71 1
Jarak aktual 70 70 70 80 80 80 80 80 80 80 80 80 90 90 90 90 90 100 100 100 100 100 100 100 100 90 90 90 90 90 90 80 80 80 80 70 70 70 70 70 70 70 60
Data sebelum kalibrasi Data jarak Akurasi 67 1 67 1 67 1 74 1 74 1 76 1 76 1 76 1 77 1 77 1 77 1 76 1 87 1 86 1 86 1 86 1 86 1 97 1 97 1 97 1 97 1 97 1 97 1 97 1 97 1 89 1 88 1 87 1 86 1 87 1 87 1 78 1 75 1 76 1 77 1 68 1 67 1 67 1 69 1 69 1 67 1 67 1 58 1
40
Lampiran 10 Lanjutan Data setelah kalibrasi Jarak aktual Data jarak Akurasi 70 70 1 60 60 1 60 60 1 60 60 1 60 60 1 60 60 1 50 53 1 50 50 1 50 49 1 50 49 1 50 49 1 50 49 1 40 42 1 40 40 1 40 39 1 40 39 1 40 40 1 40 40 1 40 40 1 40 40 1 30 32 1 30 30 1 30 32 1 30 32 1 30 31 1 30 30 1 30 30 1 30 30 1 30 30 1 30 29 1 20 20 1 20 20 1 20 20 1 20 20 1 20 20 1 10 10 1 10 10 1 10 10 1 10 10 1 10 10 1
Jarak aktual 60 60 60 60 60 60 50 50 50 50 50 50 40 40 40 40 40 30 30 30 30 20 20 20 20 10 10 10 10 10 20 20 20 20 30 30 30 30 30 40
Data sebelum kalibrasi Data jarak Akurasi 57 1 57 1 57 1 57 1 57 1 57 1 48 1 48 1 48 1 48 1 47 1 51 1 40 1 39 1 37 1 37 1 37 1 29 1 28 1 29 1 28 1 19 1 19 1 19 1 19 1 10 1 9 1 9 1 9 1 9 1 18 1 18 1 19 1 18 1 29 1 29 1 28 1 28 1 29 1 38 1
41
Lampiran 10 Lanjutan Data setelah kalibrasi Jarak aktual Data jarak Akurasi 10 10 1 10 10 1 Jumlah yang akurat 125 Rata-rata akurasi 1.0000 1 = pengukuran ±10% dari jarak aktual 0 = pengukuran tidak akurat (kesalahan lebih dari 10%)
Jarak aktual 40 40 50 50 50 50 50 60 60 60 60 70 70 70 80 80 80 80 90 90 80 80 80 80 70 70 70 70 60 60 60 60 50 50 50 50 40 40 40 30 30 30 30
Data sebelum kalibrasi Data jarak Akurasi 38 1 38 1 48 1 48 1 47 1 48 1 48 1 59 1 59 1 60 1 59 1 66 1 68 1 67 1 75 1 75 1 76 1 74 1 87 1 86 1 69 0 77 1 76 1 76 1 68 1 67 1 67 1 67 1 57 1 56 1 56 1 58 1 48 1 48 1 48 1 47 1 39 1 37 1 38 1 28 1 29 1 28 1 28 1
42
Lampiran 10 Lanjutan Jarak Data sebelum kalibrasi aktual Data jarak Akurasi 20 19 1 20 19 1 20 19 1 20 19 1 10 10 1 10 9 1 10 9 1 10 9 1 Jumlah yang akurat 179 Rata-rata akurasi 0.994444
43
Lampiran 11 Tabel kalibrasi sensor jarak menggunakan cara brute force Lama waktu PING (ms) 591 591 591 1151 1165 1161 1151 1151 1151 1165 1715 1715 1715 1763 1711 1715 2267 2291 2287 2291 2839 2903 2847 2843 2891 2863 3395 3375 3371 3343 3343 3071 3987 3955 3959 3983 4571 4543 4567 4547 5115 5127 5123 5103
Jarak aktual 10 10 10 20 20 20 20 20 20 20 30 30 30 30 30 30 40 40 40 40 50 50 50 50 50 50 60 60 60 60 60 60 70 70 70 70 80 80 80 80 90 90 90 90
Lama waktu PING/jarak aktual 59.10 59.10 59.10 57.55 58.25 58.05 57.55 57.55 57.55 58.25 57.17 57.17 57.17 58.77 57.03 57.17 56.68 57.28 57.18 57.28 56.78 58.06 56.94 56.86 57.82 57.26 56.58 56.25 56.18 55.72 55.72 51.18 56.96 56.50 56.56 56.90 57.14 56.79 57.09 56.84 56.83 56.97 56.92 56.70
44
Lampiran 11 Lanjutan Lama waktu PING (ms) 5139 5111 5675 5675 5695 5671 5671 5671 5675 5671 5671 5355 5155 5175 5167 5163 4647 4667 4591 4131 4007 4007 3959 3443 3463 3367 3411 2891 2867 2851 2871 2895 2287 2279 2259 2275 2307 1863 1715 1723 1719 1719 1235 1159
Jarak aktual 90 90 100 100 100 100 100 100 100 100 100 90 90 90 90 90 80 80 80 70 70 70 70 60 60 60 60 50 50 50 50 50 40 40 40 40 40 30 30 30 30 30 20 20
Lama waktu PING/jarak aktual 57.10 56.79 56.75 56.75 56.95 56.71 56.71 56.71 56.75 56.71 56.71 59.50 57.28 57.50 57.41 57.37 58.09 58.34 57.39 59.02 57.24 57.24 56.56 57.38 57.72 56.12 56.85 57.82 57.34 57.02 57.42 57.90 57.18 56.98 56.48 56.88 57.68 62.10 57.17 57.43 57.30 57.30 61.75 57.95
45
Lampiran 11 Lanjutan Lama waktu PING (ms) 1159 1151 1155 599 603 595 595 1151 1155 1151 1151 1155 1719 1711 1715 1711 1711 2327 2307 2279 2299 2283 2855 2851 2851 2855 3539 3347 3367 3347 3343 3347 4023 3991 3991 3991 3987 3963 4595 4591 4597 4597 4543 5187
Jarak aktual 20 20 20 10 10 10 10 20 20 20 20 20 30 30 30 30 30 40 40 40 40 40 50 50 50 50 60 60 60 60 60 60 70 70 70 70 70 70 80 80 80 80 80 90
Lama waktu PING/jarak aktual 57.95 57.55 57.75 59.90 60.30 59.50 59.50 57.55 57.75 57.55 57.55 57.75 57.30 57.03 57.17 57.03 57.03 58.18 57.68 56.98 57.48 57.08 57.10 57.02 57.02 57.10 58.98 55.78 56.12 55.78 55.72 55.78 57.47 57.01 57.01 57.01 56.96 56.61 57.44 57.39 57.46 57.46 56.79 57.63
46
Lampiran 11 Lanjutan Lama waktu PING (ms) Jarak aktual 5087 90 5127 90 5703 100 5679 100 5675 100 5115 90 5095 90 5095 90 4611 80 4547 80 4531 80 4575 80 3991 70 3975 70 3979 70 3579 60 3343 60 3379 60 3375 60 3371 60 2851 50 2843 50 2847 50 2851 50 2303 40 2267 40 2243 40 2259 40 1715 30 1715 30 1711 30 1715 30 1215 20 1159 20 1155 20 1151 20 603 10 603 10 591 10 591 10 591 10 Total lama waktu PING/ jarak aktual Rata-rata lama waktu PING/ jarak aktual
Lama waktu PING/jarak aktual 56.52 56.97 57.03 56.79 56.75 56.83 56.61 56.61 57.64 56.84 56.64 57.19 57.01 56.79 56.84 59.65 55.72 56.32 56.25 56.18 57.02 56.86 56.94 57.02 57.58 56.68 56.08 56.48 57.17 57.17 57.03 57.17 60.75 57.95 57.75 57.55 60.30 60.30 59.10 59.10 59.10 9920.21 57.34
47
RIWAYAT HIDUP Penulis dilahirkan di Jakarta pada tanggal 28 Januari 1992. Penulis merupakan anak kedua dari 3 bersaudara dari pasangan Prawoto dan Ngatini. Pada tahun 2009, penulis menamatkan pendidikan di SMA Negeri 1 Ciputat. Penulis lulus seleksi masuk Institut Pertanian Bogor (IPB) pada tahun yang sama melalui jalur Undangan Seleksi Masuk IPB di Departemen Ilmu Komputer, Fakultas Matematika dan Ilmu Pengetahuan Alam. Penulis aktif di organisasi kemahasiswaan Himpunan Mahasiswa Ilmu Komputer (Himalkom) pada tahun 2010–2011. Pada bulan Juli–Agustus 2012 penulis melaksanakan Praktik Kerja Lapang di PT Dirgantara Indonesia Bandung dengan judul Pengembangan Sistem Artificial Inteligence Untuk Simulator Tank AMX–13 TNI Angkatan Darat yang dikembangkan bersama Ade Nurusani, Fiqrotul Ulya, dan Nadya Elsanoviany Putri.