BAB V IMPLEMENTASI DAN PENGUJIAN Pada Bab ini penulis menjelaskan mengenai langkah-langkah untuk memproses data suara yang diperoleh kemudian diolah selanjutnya diproses arduino kepada motor dc. Tujuan dari pengujian ini adalah untuk mengetahui kinerja dari sistem yang berupa kehandalan dan ketepatan eksekusi antara program dengan modul yang dibuat untuk mengontrol sistem yang ada, dan tidak menutup kemungkinan adanya error atau bugs serta kekurangan-kekurangan dalam sistem yang telah dibuat. Untuk memudahkan dalam menganalisa dan menghindari adanya error, maka sebelum semua program digabungkan menjadi program yang terintegrasi, maka sebaiknya dilakukan pengujian program dari masing-masing bagian secara terpisah. Pengujian keseluruhan yang dilakukan pada bab ini. 1.1 Implementasi Terdapat tiga bagian dalam tahapan implementasi, antara lain implementasi desain mekanik, desain elektrik dan program kendali. 1.1.1 Implementasi Desain Mekanik Desain mekanik adalah badan robot. Bahan yang digunakan adalah tempat sampah berukuran kecil sebagai dasar bentuk robot dan dilengkapi oleh komponen-komponen lainnya seperti baterai dan sensor suara, sensor ultrasonic, motor dc, dan motor servo. Hasil implementasi desain mekanik robot dapat dilihat pada gambar berikut. 40 http://digilib.mercubuana.ac.id/ Gambar 5.1 Bodi Robot Robo Bin 1.1.2 Implementasi Desain Elektrik Implementasi dari desain elektrik adalah rangkaian sistem sensor suara berupa komponen sensor suara, arduino dan power suply, terminal, dan breaadboard. Gambar 5.2 Rangkaian Sistem Sensor Suara 41 http://digilib.mercubuana.ac.id/ Untuk mengatur kadar tegangan listrik dari aki ke seluruh komponen Robo Bin teratasi, maka dibutuhkan step down converter untuk menurunkan tegangan aki 12 volt menjadi 5 volt. Dari aki 12 volt, diturunkan menjadi 5 volt oleh step down converter, lalu dialirkan ke arduino dan sensor suara. 1.1.3 Implementasi Program Kendali 1.1.3.1 Spesifikasi Perangkat Keras Perangkat keras yang digunakan untuk pengisian program ke arduino mega adalah laptop dengan spesifikasi sebagai berikut. 1. Prosesor : Intel Core i3 2.4 GHz 2. RAM : 2 GB 3. HDD : 500 GB 1.1.3.2 Spesifikasi Perangkat Lunak Perangkat lunak yang digunakan untuk perancangan dan implementasi Robo Bin ialah sebagai berikut. 1. Arduino IDE 1.6.12 2. Adobe Photoshop CS6 3. Microsoft Office 2016 1.2 Pengujian Dalam tahap pengujian, terdapat beberapa pengujian rangkaian alat secara keseluruhan antara lain. 1.2.1 Pengujian Rangkaian Daya Pengujian ini dilakukan untuk mengetahui apakah rangkaian daya/power supply dapat bekerja dengan baik. Pengujian dilakukan dengan mensuplai tegangan input dari baterai sebesar 12 volt kemudian dilakukan pengukuran pada output masing-masing keluaran dengan satuan ampere diukur dengan menggunakan multimeter. 42 http://digilib.mercubuana.ac.id/ Tabel 5.1 Arus keseluruhan komponen Robo Bin Komponen Nilai Arus Nilai Tegangan Sensor ultrasonik 5 volt 2 mA Sensor Suara 5 volt 5 mA Motor Servo 5 volt 122 mA ISD 1760 5 volt 34 mA ISD 1820 5 volt 106 mA Motor DC 12 volt 2000 mA 1.2.2 Pengujian Sensor Suara Pengujian program akan bisa dilakukan apabila kalibrasi sensor suara sudah diatur. Maka dari itu, penulis harus mengatur kalibrasi sensor suara agar kesensitifitasan sensor suara terhadap suara yang dideteksi tidak terlalu besar dan tidak terlalu kecil. Setelah kalibrasi sudah dilakukan, kita perlu mendefinisikan port pada sensor suara untuk dihubungkan dengan mikrokontroler. Pengujian dilakukan di ruangan yang tidak berisik, tingkat keheningan alami, ruangan yang digunakan untuk pengujian berukuran 4 x 5 meter. Berikut merupakan tabel hasil pengujian keberhasilan sensor suara dalam mendeteksi suara. Pengujian dilakukan dengan lantai keramik, yang masing-masing blok keramik berukuran 32cm x 32cm. “v” untuk berhasil, dan “x” untuk tidak berhasil. 43 http://digilib.mercubuana.ac.id/ Tabel 5.2 Persentase keberhasilan deteksi sensor suara Kebisingan di sini mengartikan tingkat suara dan bunyi di sekitar robot. Hasil pengujian dari tabel di atas didapatkan melalui aplikasi “Meter Kebisingan (Sound Meter)” dari Abc Apps. Aplikasi tersebut tersedia di Google Play Store. Kelemahan sistem sensor suara 1. Tingkat kesensitifitasan sensor suara mudah menurun dalam mendeteksi suara karena baut pada sensor suara mudah kendur jika tergetar, biasanya karena Robo Bin sering dipindahpindahkan ke lain tempat. Sehingga perlu kalibrasi ulang apabila sensor suara dirasa tidak terlalu sensitif lagi. 2. Tingkat Desi Bel suara mempengaruhi pendeteksian suara pada sensor suara, tergantung pada tingkat kebisingannya. Desi Bel yang rendah cukup baik untuk dideteksi masing-masing sensor suara pada arah yang sudah ditetapkan (sensor depan, kanan, belakang, dan kiri), dan pada Desi Bel yang tinggi mempengaruhi semua sensor suara, apabila Desi Bel suara cukup tinggi, maka keempat sensor suara bisa salah menentukan sumber arah suara. 44 http://digilib.mercubuana.ac.id/ Berikut kode program untuk sistem sensor suara pada Robo Bin. int soundDetectedPin = A0; int soundDetectedPin2 = A1; int soundDetectedPin3 = A2; int soundDetectedPin4 = A3; soundDetectedPin = A0 digunakan untuk mendeklarasikan variabel pin sensor suara bagian depan ke pin A0 pada Arduino Mega. Begitu pula dengan soundDetectedPin2 = A1 untuk sensor suara bagian kanan, soundDetectedPin3 = A2 untuk sensor suara bagian belakang, soundDetectedPin4 = A3 untuk sensor suara bagian kiri. int soundDetectedVal = HIGH; int soundDetectedVal2 = HIGH; int soundDetectedVal3 = HIGH; int soundDetectedVal4 = HIGH; boolean bAlarm = false; unsigned long lastSoundDetectTime; soundDetectedVal = HIGH digunakan untuk menampung nilai High pada sensor suara bagian depan, yang artinya sensor suara tidak mendeteksi suara pada saat nilai High didapat. Maka sensor suara akan bernilai Low apabila telah mendeteksi suara. Begitu pula dengan soundDetectedVal2 untuk sensor suara bagian kanan, soundDetectedVal3 untuk sensor suara bagian belakang, soundDetectedVal4 untuk sensor suara bagian kiri. boolean bAlarm = false digunakan untuk menampung nilai salah pada saat nilai High boolean bAlarm = false; unsigned long lastSoundDetectTime; terdeteksi sensor suara, dan akan bernilai true pada saat nilai Low terdeteksi sensor suara. Unsigned long lastSoundDetectTime digunakan untuk mendeteksi sensor suara mana yang lebih dulu mendeteksi suara. 45 http://digilib.mercubuana.ac.id/ void setup (){ Serial.begin(9600); pinMode (soundDetectedPin, INPUT) ; pinMode (soundDetectedPin2, INPUT) ; pinMode (soundDetectedPin3, INPUT) ; pinMode (soundDetectedPin4, INPUT) ; } void setup digunakan untuk membuat fungsi mengatur masukan pin Serial.begin(9600) adalah kode serial untuk menampilkan serial monitor pinMode (soundDetectedPin, INPUT) digunakan untuk mengatur apabila sensor suara bagian depan mendeteksi suara, maka masukan berupa data Low akan diinput. Begitu pula dengan soundDetectedPin2 untuk sensor suara bagian kanan, soundDetectedPin3 untuk sensor suara bagian belakang, dan soundDetectedPin4 untuk sensor suara bagian kiri. void loop (){ soundDetectedVal = digitalRead (soundDetectedPin) ; soundDetectedVal2 = digitalRead (soundDetectedPin2) ; soundDetectedVal3 = digitalRead (soundDetectedPin3) ; soundDetectedVal4 = digitalRead (soundDetectedPin4) ; } soundDetectedVal = digitalRead (soundDetectedPin) digunakan untuk menentukan soundDetectedVal sebagai sensor suara bagian depan yang mendeteksi suara akan membaca sebagai input dari variabel soundDetectedPin. Begitu pula dengan soundDetectedVal2 = digitalRead (soundDetectedPin2) sebagai input dari variabel soundDetectedPin2, soundDetectedVal3 = digitalRead (soundDetectedPin3) sebagai input dari variabel soundDetectedPin3, soundDetectedVal4 = digitalRead (soundDetectedPin4) sebagai input dari variabel soundDetectedPin4. 46 http://digilib.mercubuana.ac.id/ if (soundDetectedVal == LOW) { lastSoundDetectTime = millis(); if (!bAlarm) { Serial.println("Maju, Maju"); bAlarm = true; } } else if (soundDetectedVal2 == LOW) { lastSoundDetectTime = millis(); if (!bAlarm) { Serial.println("Kanan, Kanan"); bAlarm = true; } } else if (soundDetectedVal3 == LOW) { lastSoundDetectTime = millis(); if (!bAlarm) { Serial.println("Belakang, Belakang"); bAlarm = true; } } else if (soundDetectedVal4 == LOW) { lastSoundDetectTime = millis(); if (!bAlarm) { Serial.println("Kiri, Kiri"); bAlarm = true; } } else{ if ( (millis() - lastSoundDetectTime) > soundAlarmTime bAlarm) { Serial.println("quiet"); bAlarm = false; } } } && Kode di atas digunakan untuk menyatakan jika sensor suara bagian depan mendeteksi terlebih dahulu, maka serial monitor akan menampilkan teks “Maju, Maju”. Jika sensor suara bagian kanan mendeteksi terlebih dahulu, maka serial monitor akan menampilkan teks “Kanan, Kanan”. Jika sensor suara bagian belakang mendeteksi terlebih dahulu, maka serial monitor akan menampilkan teks “Belakang, Belakang” Jika sensor suara bagian kiri mendeteksi terlebih dahulu, maka serial monitor akan menampilkan teks “Kiri, Kiri” Jika tak ada suara, maka serial monitor akan menampilkan teks “quiet” 47 http://digilib.mercubuana.ac.id/ void loop(){ stops(10); soundDetectedVal = digitalRead (soundDetectedPin) ; soundDetectedVal2 = digitalRead (soundDetectedPin2) ; soundDetectedVal3 = digitalRead (soundDetectedPin3) ; soundDetectedVal4 = digitalRead (soundDetectedPin4) ; if (soundDetectedVal == LOW){ lastSoundDetectTime = micros(); if (!bAlarm) { Serial.println("Maju, Maju"); bAlarm = true; forward(15000); } } else if (soundDetectedVal2 == LOW){ lastSoundDetectTime = micros(); if (!bAlarm) { Serial.println("Kanan, Kanan"); bAlarm = true; toRight(1950); } } Kode di atas digunakan untuk menyatakan Jika sensor suara depan lebih dulu mendeteksi suara, maka kedua motor dc akan bergerak maju selama 15 detik Jika sensor suara kanan lebih dulu mendeteksi suara, maka motor dc sebelah kiri akan bergerak maju selama 1,95 detik. 48 http://digilib.mercubuana.ac.id/ else if (soundDetectedVal3 == LOW){ lastSoundDetectTime = micros(); if (!bAlarm) { Serial.println("Belakang, Belakang"); bAlarm = true; toRight(3600); } } else if (soundDetectedVal4 == LOW){ lastSoundDetectTime = micros(); if (!bAlarm) { Serial.println("Kiri, Kiri"); bAlarm = true; toLeft(1950); } } else{ if ( (micros() - lastSoundDetectTime) > soundAlarmTime bAlarm){ Serial.println("quiet"); bAlarm = false; stops(50); } } } && Jika sensor suara belakang lebih dulu mendeteksi suara, maka motor dc sebelah kiri akan bergerak maju selama 3,6 detik. Jika sensor suara kiri lebih dulu mendeteksi suara, maka motor dc sebelah kanan akan bergerak maju selama 1,95 detik. Jika semua sensor suara tidak mendeteksi suara selama 1 mikro detik maka serial monitor akan menampilkan teks “quiet” dan Robo Bin akan berhenti selama 0,05 detik. 49 http://digilib.mercubuana.ac.id/