Memfasilitasi Komunikasi Tuna Netra Tuna Rungu Menggunakan 1Sheeld dan Arduino
Komponen dan Perlengkapan
1Sheeld
×
1
Arduino UNO
×
1
Adafruit Standard LCD - 16x2 Putih di atas Biru
×
1
Potensiometer generik
×
1
Tentang Proyek Ini
Pada dasarnya, proyek ini mengatasi masalah komunikasi buta-bisu.
Sekali langkah buta melalui bicara dan mendengar, sementara orang bisu hanya bisa mengetik dan melihat, jadi mari kita gunakan itu!
Buta ke bisu:
Bicara → Teks → Tampilkan
Bisu ke buta:
Ketik → Teks → Suara
Sekarang mari kita terjemahkan itu ke dalam perangkat keras.
Langkah 1: Pengaturan Hardware
Arduino Uno atau lainnya
LCD (untuk tutorial ini saya menggunakan 16*2)
Smart phone
Potensiometer (10k akan cukup)
Langkah 2: Koneksi
Untuk dapat menggunakan 1Sheeld, Anda pertama-tama perlu mengunduh library 1Sheeld dan menambahkannya ke Arduino Anda. Juga, Anda perlu mengunduh aplikasi 1Sheeld ke ponsel Anda dan menginstalnya. Anda dapat mendapatkannya dari situs 1Sheeld: https://1sheeld.com/downloads/
Ikuti tutorial ini untuk cara memasang 1Sheeld ke Arduino dan cara mengunggah kode: https://1sheeld.com/tutorials/getting-started/
Sekarang saya tahu rangkaian mungkin terlihat sedikit berantakan tapi itu rangkaian LCD sederhana:
Pin RS LCD → pin digital 12
Pin Enable LCD → pin digital 11
Pin D4 LCD → pin digital 5
Pin D5 LCD → pin digital 4
Pin D6 LCD → pin digital 3
Pin D7 LCD → pin digital 2
Pin R/W LCD → ground
Pin VSS LCD → ground
Pin VCC LCD → 5V
Ujung resistor 10K → +5V dan ground
wiper → pin VO LCD (pin 3)
Sekarang komunikasi berjalan sebagai berikut:
Buta ke Bisu
Pengucapan Suara → Teks → LCD
Bisu ke Buta
Keyboard → Teks → Text-to-Speech
Pada dasarnya, pengucapan suara akan mengubah suara menjadi teks yang kemudian akan dikirim ke LCD, sehingga orang bisu dapat melihatnya. Text-to-speech akan mengambil teks dari keyboard dan mengubahnya menjadi suara, sehingga orang buta dapat mendengarnya.
Anda perlu memilih perlindungan Pengucapan Suara, Keyboard, Text-to-Speech dan SMS dari aplikasi 1Sheeld di ponsel Anda. Menggunakan perlindungan SMS, kita akan dapat mengirim pesan ke kontak yang jauh. Berikut adalah video untuk menunjukkan cara kerjanya:
Sekarang Anda sudah memiliki gambaran yang baik tentang apa yang kita coba lakukan, mari kita bicara tentang kode.
Langkah 3: Perangkat Lunak
#define CUSTOM_SETTINGS #define INCLUDE_VOICE_RECOGNIZER_SHIELD #define INCLUDE_TEXT_TO_SPEECH_SHIELD #define INCLUDE_KEYBOARD_SHIELD #define INCLUDE_SMS_SHIELD #define INCLUDE_TERMINAL_SHIELD #define INCLUDE_VIBRATION_SHIELD #include #include LiquidCrystal lcd(12, 11, 5, 4, 3, 2); String msg; int sent = 0; int i = 0; String phoneNum = ""; //write phone number here int patternOne[6] = {1000, 2000, 1000, 2000, 1000, 2000}; int patternOneSize = 6; void setup() { OneSheeld.begin(); VoiceRecognition.start(); lcd.begin(16, 2); }
Pada dasarnya, hanya menambahkan library 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 perlindungan SMS untuk berkomunikasi jarak jauh, itulah mengapa kami menambahkan variabel “phoneNum” yang akan menyimpan nomor telepon yang akan Anda kirim SMS ke.
//Blind to Deaf if (VoiceRecognition.isNewCommandReceived()) { String msg1 = VoiceRecognition.getLastCommand(); //far contact if user said "sms" first if (msg1.substring(0, 3) == "sms") { String msg1f = msg1.substring(3); SMS.send (phoneNum, msg1f); TextToSpeech.say("sms sent"); delay(4000); } //close contact else { 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 jauh, orang buta perlu mengatakan “SMS” terlebih dahulu. Jika tidak, itu hanya akan ditampilkan di LCD. Juga, ada 2 kasus 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 (sent < 2) { if (pC == 'S') { sent += 1; msg += pC; } else { sent = 0; msg += pC; } } else if (sent = 3) { i = i - 3; msg.remove(i); msg.toLowerCase(); }
Sekarang bagian ini sedikit rumit jadi sabar dengan saya sejenak. Fungsi ini akan dipanggil jika keyboard digunakan. Apa yang dilakukan fungsi ini pada dasarnya 2 hal: pertama, itu mengambil setiap karakter yang Anda masukkan menggunakan keyboard dan menggunakannya untuk membangun pesan yang akan dikirim nanti; kedua, itu memeriksa apakah Anda ingin mengirim pesan sekarang. Saya menyadari saya tidak dapat menggunakan tombol Enter pada keyboard perlindungan dengan benar, jadi sebagai gantinya saya menggunakan kode ini untuk mengirim pesan: jika saya menekan tombol “s” 3 kali berturut-turut. Tentu saja, Anda dapat mengubahnya ke tombol apa pun. Dan seperti sebelumnya, untuk kontak jauh, ketik SMS terlebih dahulu.
Sisa kode cukup menjelaskan diri. Jadi, saya harap Anda menyukainya dan jika Anda memiliki pertanyaan, silakan berikan komentar di bawah.