17
BAB III
PERANCANGAN ALAT
Pada bab ini akan dijelaskan tentang perancangan dari perangkat keras dan perangkat lunak yang digunakan pada sistem.
3.1 Gambaran Sistem
Gambar 3.1 Diagram Blok Perangkat Keras
Pada diagram blok di atas dapat dilihat elektroda menjadi masukan dan keluaran. Keluaran yang dimaksud adalah umpan balik dari keluaran rangkaian DRL. Keluaran dari penguat instrumentasi jadi masukan untuk difilter di BPF. Lalu sinyal yang sudah difilter digeser menggunakan penguat penjumlah sampai puncak minimum sinyal tersebut berada di 0V, agar dapat dibaca oleh NodeMCU. NodeMCU mengolah sinyal membandingkan nilainya lalu ditampilkan di layar LCD 16×2, memutar file suara, dan mengirim hasil ke platform IFTTT selanjutnya platform IFTTT akan mengirim notifikasi ke akun Line pengguna.
18
3.2 Perancangan dan Realisasi Perangkat Keras
Berikut adalah gambaran alat yang dibuat :
Gambar 3.2 Gambar Rancangan Alat
19
3.3 Perancangan Elektronika
3.3.1 Penguat Instrumentasi dan Rangkaian DRL
Gambar 3.4 Rangkaian Penguat Instrumentasi dengan Rangkaian DRL.
Tegangan biopotensial pada mata hanya berorde beberapa milivolt[9]. Input analog pada NodeMCU adalah 10 bit dan hanya pada rentang 0V-3.3V. Penguatan pada penguat Instrumentasi dirancang sebesar 115 kali agar nilai mudah dibaca dan diolah pada NodeMCU. Dengan perhitungan sebagai berikut:
𝐴𝑑 = (1 +50𝐾Ω 𝑅𝑔 ) = (1 +50𝐾Ω 440 ) = (1 + 113,6) = 114,6 𝐴𝑑 = Penguatan selisih dari kanan dan kiri
Tengah dihubungkan dengan rangkaian DRL untuk mengurangi gangguan Common mode. Sinyal Common mode dari tubuh adalah sinyal yang tidak diinginkan. Sinyal Common mode dari tubuh muncul karena ada gangguan elektromagnetik, terutama pada frekuensi 50/60 Hz dari saluran listrik. Gangguan ini dapat mengganggu sinyal biopotensial, membuat sulit diukur.
20
Perancangan rangkaian DRL dengan memvariasikan penguatan dengan mengubah R7 pada rangkaian DRL.
Gambar 3.5 Penguat Instrumentasi dan Rangkaian DRL
3.3.2 Filter Aktif
Sinyal biopotensial pada mata berada pada frekuensi 0,1 Hz sampai 30 Hz. Jadi dalam perancangan alat ini membutuhkan filter yang meloloskan frekuensi di atas 0,1 Hz dan meredam frekuensi di atas 30 Hz.
21
Dengan perhitungan sebagai berikut: 𝑓𝑐1= 1 2𝜋𝑅11𝐶4 = 1 2𝜋 × 15 × 103× 100 × 10−6 = 1 9,42 = 0,106 𝐻𝑧 𝑓𝑐2= 1 2𝜋𝑅12𝐶3 = 1 2𝜋 × 51 × 103× 100 × 10−9 = 1 32028 × 10−6 = 31,2 𝐻𝑧 𝑓𝑐 = frekuensi cut-off
Dengan penguatan pada range frekuensi 0,106 Hz – 31,2 Hz 𝐴𝑣 = 1 +𝑅12 𝑅11 = 1 +51000 15000 = 1 + 3,4 = 4,4
22
3.3.3 Penguat Penjumlah Sebagai Level Shifter
Pin analog input pada NodeMCU tidak dapat menerima masukan kurang dari 0V, maka keluaran dari rangkaian harus diatur sampai tegangan minimum keluaran mencapai 0V.
Gambar 3.7 Rangkaian Penguat Penjumlah Sebagai Level Shifter
Pada Gambar 3.7 dapat dilihat terdapat variable resistor yang dapat diatur sampai tegangan minimum keluaran mencapai 0V.
3.3.4 Realisasi Penguat Keseluruhan
23
Gambar 3.9 Gambar Realisasi Penguat Keseluruhan
3.3.5 Wiring pada Mikrokontroler NodeMCU
24
Pada perancangan ini NodeMCU terhubung dengan rangkaian penguat, modul DFPlayer mini, dan LCD 16×2. Konfigurasi pinnya sebagai berikut :
Tabel 3.1 Konfigurasi Pin NodeMCU
3.4 Perancangan Perangkat Lunak
Dalam perancangan alat ini perangkat lunak akan mengolah sinyal yang diterima. Hasil olahan akan ditampilkan pada LCD 16×2, memberi indikator berupa pesan suara dan memberi notifikasi chat ke pengguna via aplikasi Line.
Nomor Pin Fungsi
D1 SCL Pin I2C LCD 16×2
D2 SDA Pin I2C LCD 16×2
D5 TX Pin DFPlayer mini D6 RX Pin DFPlayer mini A0 Output dari Rangkaian Penguat
25
Gambar 3.11 Diagram Alir Perangkat Lunak
Cara kerja dari alat ini adalah elektroda akan menerima sinyal biopotensial saat ada gerakan bola mata. Lalu sinyal yang diterima akan dikuatkan dengan penguat instrumentasi dan akan diumpan balikan menggunakan rangkaian DRL untuk mengurangi derau yang diterima tubuh dari jala jala listrik 50Hz. Keluaran dari penguat instrumentasi akan difilter menggunakan BPF agar penguatannya berada pada range frekuensi 0,1Hz sampai 30Hz. Sinyal yang sudah difilter akan digeser menggunakan penguat penjumlah tegangan minimum berada pada 0V.
26
Keluaran dari penguat penjumlah akan diolah NodeMCU yang terhubung pada pin analog. Hasil dari olahan NodeMCU akan ditampilkan di layar LCD 16×2. Jika sinyal yang diterima membentuk kombinasi yang sudah ditentukan maka NodeMCU akan mengirim hasil ke IFTTT untuk memberi notifikasi ke pengguna lewat aplikasi Line, dan indikator suara pesan yang sudah ditentukan sesuai kombinasi yang diterima. Dalam perancangan ini diberikan tambahan notifikasi berupa suara buzzer pada saat mata melirik ke kanan atau ke kiri. Agar memudahkan pengguna mengetahui bahwa alat sudah membaca gerkan mata.
3.4.1 Menentukan Nilai dari Arah Bola Mata
Mengklasifikasikan nilai untuk menetukan arah bola mata dan ditampilkan pada LCD 16×2. Keluaran dari penguat biopotensial akan menjadi masukan pada pin analog NodeMCU. Pin analog ini terhubung dengan analog-to-digital converter (ADC) pada NodeMCU. Converter ini mengubah nilai analog berbentuk sinyal voltase ke bentuk digital atau angka agar nilai analog dapat digunakan dengan lebih mudah. Pada NodeMCU converter ini memiliki resolusi 10 bit, nilai hasil konversi dari 0 hingga 1023. Tegangan maksimal pada masukan analog NodeMCU adalah 3.3V, jadi nilai 0 merepresentasikan tegangan 0V dan nilai 1023 merepresentasikan tegangan 3.3V.
if(sensor>=107 && sensor<=109) { lcd.setCursor(0,0); lcd.print(" Lurus"); } else if(sensor>=110) { lcd.setCursor(0,0); lcd.print(" Kiri "); } else if(sensor<=105) { lcd.setCursor(0,0); lcd.print(" Kanan"); }
27
Gerakan bola mata dapat membentuk kombinasi yang sudah ditentukan untuk memberikan indikator berupa pesan suara dan mengirim notifikasi pesan teks melalui aplikasi Line ke pengguna.
Gambar 3.12 Tampilan LCD 16×2
3.4.2 Menentukan Kombinasi Arah Bola Mata
Sistem akan memberikan indikator berupa pesan suara dan mengirim notifikasi pesan teks melalui aplikasi Line ke pengguna. Kombinasi dan pesan yang ditentukan adalah :
a. Melirik ke kanan dua kali dan ke kiri dua kali akan mengirim pesan “Tolong ambilkan makan dan minum”.
b. Melirik ke kiri satu kali dan ke kanan dua kali, ke kiri satu kali akan mengirim pesan “Tolong antar saya ke toilet”.
c. Melirik ke kanan satu kali, ke kiri dua kali, ke kanan satu kali akan mengirim pesan “Tolong pijat saya”.
d. Melirik ke kanan dan ke kiri secara berulang sebanyak dua kali akan mengirim pesan “Tolong datang saya butuh bantuan”.
e. Melirik ke kanan tiga kali, ke kiri satu kali akan mengirim pesan “Tolong antar saya jalan – jalan”.
if(mataskrg!=0) { kmb[indekskmb]=mataskrg; } matasblm=mataskrg; for (int j = 0; j < 4; j++ ) { Serial.print(kmb[j]);
28 Serial.print(" "); } Serial.println(""); if(indekskmb > 3) { Serial.println("oke");
if(kmb[0]==2 && kmb[1]==2 && kmb[2]==1 && kmb[3]==1) { Serial.println("satu"); myDFPlayer.play(1); delay(3300); HTTPClient http; http.begin("http://maker.ifttt.com/trigger/Notify_1/with/key/djTgFsHfZHVMl-zmAABgji?value1=%0ATolong%20ambilkan%20makan%20dan%20minum");
int httpCode = http.GET(); http.end();
}
else if(kmb[0]==1 && kmb[1]==2 && kmb[2]==2 && kmb[3]==1) { Serial.println("dua"); myDFPlayer.play(2); delay(3300); HTTPClient http; http.begin("http://maker.ifttt.com/trigger/Notify_1/with/key/djTgFsHfZHVMl-zmAABgji?value1=%0ATolong%20antar%20saya%20ke%20toilet");
int httpCode = http.GET(); http.end();
}
else if(kmb[0]==2 && kmb[1]==1 && kmb[2]==1 && kmb[3]==2) { Serial.println("tiga"); myDFPlayer.play(3); delay(3300); HTTPClient http; http.begin("http://maker.ifttt.com/trigger/Notify_1/with/key/djTgFsHfZHVMl-zmAABgji?value1=%0ATolong%20pijat%20saya");
int httpCode = http.GET(); http.end();
29 }
else if(kmb[0]==2 && kmb[1]==1 && kmb[2]==2 && kmb[3]==1) { Serial.println("empat"); myDFPlayer.play(4); delay(3300); HTTPClient http; http.begin("http://maker.ifttt.com/trigger/Notify_1/with/key/djTgFsHfZHVMl-zmAABgji?value1=%0ATolong%20datang%20saya%20butuh%20bantuan");
int httpCode = http.GET(); http.end();
}
else if(kmb[0]==2 && kmb[1]==2 && kmb[2]==2 && kmb[3]==1) { Serial.println("lima"); myDFPlayer.play(5); delay(3300); HTTPClient http; http.begin("http://maker.ifttt.com/trigger/Notify_1/with/key/djTgFsHfZHVMl-zmAABgji?value1=%0ATolong%20antar%20saya%20jalan%20%E2%80%93%20jalan");
int httpCode = http.GET(); http.end(); } else { Serial.println("salah"); myDFPlayer.play(6); delay(3300); }
Source 3.2 Membandingkan kombinasi yang sudah ditentukan
Jika kombinasi sudah benar maka sistem akan memberikan indikator berupa pesan suara dan mengirim notifikasi pesan teks melalui aplikasi Line ke pengguna. Pesan suara didapatkan dari file suara dengan format .mp3 yang sudah disimpan pada sdcard yang terpasang pada DFPlayer mini. Notifikasi pesan teks lewat aplikasi Line dikirimkan dengan cara mengakses link yang didapatkan dari IFTTT.