BAB V IMPLEMENTASI DAN PENGUJIAN Pada Bab ini penulis

advertisement
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/
Download