Tentang proyek ini
Pada dasarnya, proyek ini membahas masalah komunikasi tunanetra-tunarungu.
Satu-satunya cara komunikasi orang buta adalah melalui berbicara dan mendengar, sedangkan orang tuli hanya dapat mengetik dan melihat, jadi mari kita gunakan itu!
Buta hingga tuli:
- Bicara → Teks → Tampilkan
Tuli sampai buta:
Sekarang mari kita terjemahkan ke dalam perangkat keras.
Langkah 1:Pengaturan Perangkat Keras
- LCD (untuk tutorial ini saya menggunakan yang 16*2)
- Potensiometer (10rb cukup)
Langkah 2:Koneksi
Untuk dapat menggunakan 1Sheeld, Anda harus mengunduh pustaka 1Sheeld terlebih dahulu dan menambahkannya ke Arduino Anda. Juga, Anda perlu mengunduh aplikasi 1Sheeld ke ponsel Anda dan menginstalnya. Anda bisa mendapatkannya dari situs 1Sheeld:https://1sheeld.com/downloads/
Ikuti tutorial ini untuk cara mencolokkan 1Sheeld ke Arduino dan cara mengunggah kodenya:https://1sheeld.com/tutorials/getting-started/
Sekarang saya tahu sirkuitnya mungkin terlihat sedikit berantakan tapi ini adalah sirkuit LCD sederhana:
- Pin LCD RS → pin digital 12
- LCD Aktifkan pin → pin digital 11
- Pin LCD D4 → pin digital 5
- Pin LCD D5 → pin digital 4
- Pin LCD D6 → pin digital 3
- Pin LCD D7 → pin digital 2
- Resistor 10K berakhir → +5V dan ground
- penghapus → Pin VO LCD (pin 3)
Sekarang komunikasi berjalan sebagai berikut:
Buta hingga Tuli
- Pengenalan Suara → Teks → LCD
Tuli hingga Buta
- Keyboard → Teks → Text-to-Speech
Pada dasarnya, pengenalan suara akan mengubah suara menjadi teks yang kemudian akan dikirim ke LCD, sehingga penyandang tunarungu dapat melihatnya. Text-to-speech akan mengambil teks dari keyboard dan mengubahnya menjadi suara, sehingga orang buta dapat mendengarnya.
Anda harus memilih perisai Pengenalan Suara, Keyboard, Text-to-Speech dan SMS dari aplikasi 1Sheeld di ponsel Anda. Menggunakan perisai SMS, kami akan dapat mengirim pesan ke kontak yang jauh. Berikut adalah video untuk mendemonstrasikan cara kerjanya:
Sekarang setelah Anda memiliki ide bagus tentang apa yang kami coba lakukan, mari kita bicara tentang kode.
Langkah 3:Perangkat Lunak CUSTOM_SETTINGS define # mendefinisikan INCLUDE_VOICE_RECOGNIZER_SHIELD # mendefinisikan INCLUDE_TEXT_TO_SPEECH_SHIELD # mendefinisikan INCLUDE_KEYBOARD_SHIELD # mendefinisikan INCLUDE_SMS_SHIELD # mendefinisikan INCLUDE_TERMINAL_SHIELD # mendefinisikan INCLUDE_VIBRATION_SHIELD # termasuk lcd #includeLiquidCrystal (12, 11, 5, 4, 3, 2); String msg; int terkirim =0;int i =0;String phoneNum =""; //tulis nomor telepon di sini patternOne[6] ={1000, 2000, 1000, 2000, 1000, 2000};int patternOneSize =6;void setup() { OneSheeld.begin(); Pengenalan Suara.start(); lcd.begin(16, 2);}
Pada dasarnya, hanya menambahkan perpustakaan yang akan kita gunakan dan menginisialisasi beberapa variabel yang akan kita gunakan nanti. Ingatlah bahwa kita akan menggunakan sensor getaran dan variabel patternOne
dan patterOneSize
terkait dengannya. Kami juga akan menggunakan perisai SMS untuk berkomunikasi jarak jauh, itu sebabnya kami menambahkan variabel “phoneNum
” yang akan menyimpan nomor telepon yang akan Anda kirimi SMS.
//Buta hingga Tuli if (VoiceRecognition.isNewCommandReceived()) { String msg1 =VoiceRecognition.getLastCommand(); //kontak jauh jika pengguna mengucapkan "sms" terlebih dahulu if (msg1.substring(0, 3) =="sms") { String msg1f =msg1.substring(3); SMS.kirim (phoneNum, msg1f); TextToSpeech.say("sms terkirim"); penundaan (4000); } //tutup kontak lain { if (msg1.length()> 16) { lcd.clear(); lcd.setCursor(0, 0); for (int i =0; i <=16; i++) { lcd.print(msg1[i]); } lcd.setCursor(0, 1); for (int j =16; j <=msg1.length()-1; j++) { lcd.print(msg1[j]); } } else { lcd.clear(); lcd.print(msg1); } }
Anda dapat melihat di bagian ini bahwa saya menambahkan 2 kasus, kontak jauh dan kontak dekat. Untuk kontak yang jauh, tunanetra perlu mengucapkan “SMS” terlebih dahulu. Jika tidak, itu hanya akan ditampilkan di LCD. Selain itu, ada 2 kotak untuk LCD itu sendiri karena perlu diberitahu untuk pergi ke baris kedua ketika pesan lebih dari 16 karakter, karena hanya dapat mencetak 16 karakter per baris.
void MsgBuild (char pC){ i++; if (dikirim <2) { if (pC =='S') { dikirim +=1; pesan +=pC; } else { terkirim =0; pesan +=pC; } } else if (dikirim =3) { i =i - 3; msg.hapus(i); msg.toLowerCase();}
Sekarang bagian ini sedikit rumit jadi bersabarlah dengan saya untuk sementara waktu. Fungsi ini akan dipanggil jika keyboard digunakan. Apa yang dilakukan fungsi ini pada dasarnya adalah 2 hal:pertama, dibutuhkan setiap karakter yang Anda masukkan menggunakan keyboard dan menggunakannya untuk membangun pesan yang akan dikirim nanti; kedua, ia memeriksa apakah Anda ingin mengirim pesan sekarang. Saya menyadari bahwa saya tidak dapat menggunakan tombol Enter di keyboard pelindung dengan benar, jadi alih-alih saya menggunakan kode ini untuk mengirim pesan:jika saya mengklik tombol "s" 3 kali berturut-turut. Tentu saja, Anda dapat mengubahnya ke tombol lain. Dan seperti sebelumnya, untuk kontak yang jauh, ketik SMS dulu.
Sisa kode cukup jelas. Jadi, semoga kalian menyukainya dan jika ada pertanyaan, silakan komentar di bawah.
BlindToDeaf.ino
Skema