Слепоглухое общение с 1Sheeld / Arduino
Компоненты и расходные материалы
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 |
Об этом проекте
По сути, этот проект направлен на решение проблемы общения слепоглухих.
Единственный способ общения слепого человека - говорить и слышать, в то время как глухой может только печатать и видеть, так что давайте воспользуемся этим!
Слепой для глухого:
- Обсуждение → Текст → Показать
Глухой для слепого:
- Тип → Текст → Голос
Теперь давайте перейдем к аппаратному обеспечению.
Шаг 1. Настройка оборудования
- Arduino Uno или любой другой
- ЖК-дисплей (для этого урока я использую ЖК-дисплей размером 16 * 2)
- Смартфон
- Потенциометр (подойдет 10 кОм)
Шаг 2. Подключения
Чтобы иметь возможность использовать 1Sheeld, вам сначала необходимо загрузить библиотеку 1Sheeld и добавить ее в свой Arduino. Также вам необходимо скачать приложение 1Sheeld на свой мобильный телефон и установить его. Вы можете получить это на сайте 1Sheeld:https://1sheeld.com/downloads/
Следуйте этому руководству, чтобы узнать, как подключить 1Sheeld к Arduino и как загрузить код:https://1sheeld.com/tutorials/getting-started/
Теперь я знаю, что схема может выглядеть немного запутанной, но это простая ЖК-схема:
- Вывод RS ЖК-дисплея → цифровой вывод 12
- Вывод включения ЖК-дисплея → цифровой вывод 11
- Вывод D4 ЖК-дисплея → цифровой вывод 5
- Вывод D5 ЖК-дисплея → цифровой вывод 4
- Вывод D6 ЖК-дисплея → цифровой вывод 3
- Вывод D7 ЖК-дисплея → цифровой вывод 2
- Вывод ЖК-дисплея для чтения / записи → земля
- Вывод ЖК-дисплея VSS → земля
- Вывод VCC ЖК-дисплея → 5 В
- Концы резистора 10 кОм → +5 В и земля
- дворник → вывод ЖК-дисплея VO (вывод 3)
Сейчас общение идет следующим образом:
От слепых до глухих
- Распознавание голоса → Текст → ЖК-дисплей
Глухие для слепых
- Клавиатура → Текст → Преобразование текста в речь
По сути, распознавание голоса преобразует голос в текст, который затем отправляется на ЖК-дисплей, чтобы глухой человек мог его видеть. Система преобразования текста в речь берет текст с клавиатуры и преобразует его в голос, чтобы слепой человек мог его слышать.
В приложении 1Sheeld на своем мобильном телефоне необходимо выбрать функции распознавания голоса, клавиатуры, преобразования текста в речь и SMS. Используя SMS-щит, мы сможем отправлять сообщения удаленному контакту. Вот видео, демонстрирующее, как это работает:
Теперь, когда у вас есть хорошее представление о том, что мы пытаемся сделать, давайте поговорим о коде.
Шаг 3. Программное обеспечение <Предварительно> <код> #define CUSTOM_SETTINGS # определить INCLUDE_VOICE_RECOGNIZER_SHIELD # определить INCLUDE_TEXT_TO_SPEECH_SHIELD # определить INCLUDE_KEYBOARD_SHIELD # определить INCLUDE_SMS_SHIELD # определить INCLUDE_TERMINAL_SHIELD # определить INCLUDE_VIBRATION_SHIELD # включают #includeLiquidCrystal ЖК-дисплей (12, 11, 5, 4, 3, 2); Строка Сообщ; INT отправлено =0; int i =0; String phoneNum =""; // записываем номер телефона здесь int patternOne [6] ={1000, 2000, 1000, 2000, 1000, 2000}; int patternOneSize =6; void setup () {OneSheeld.begin (); VoiceRecognition.start (); lcd.begin (16, 2);}
По сути, просто добавляем библиотеки, которые мы будем использовать, и инициализируем некоторые переменные, которые мы будем использовать позже. Имейте в виду, что мы собираемся использовать датчик вибрации и переменные patternOne
и patterOneSize
связаны с этим. Мы также будем использовать SMS-щит для связи на большом расстоянии, поэтому мы добавили переменную « phoneNum
», Который будет содержать номер телефона, на который вы будете отправлять SMS.
// От слепого до глухого if (VoiceRecognition.isNewCommandReceived ()) {String msg1 =VoiceRecognition.getLastCommand (); // удаленный контакт, если пользователь сначала сказал "sms" if (msg1.substring (0, 3) =="sms") {String msg1f =msg1.substring (3); SMS.send (phoneNum, msg1f); TextToSpeech.say («смс отправлено»); задержка (4000); } // закрываем контакт else {if (msg1.length ()> 16) {lcd.clear (); lcd.setCursor (0, 0); для (int я =0; я <=16; я ++) {lcd.print (msg1 [я]); } lcd.setCursor (0, 1); для (int j =16; j <=msg1.length () - 1; j ++) {lcd.print (msg1 [j]); }} еще {lcd.clear (); lcd.print (msg1); }}
В этой части вы можете видеть, что я добавил 2 случая:дальний контакт и близкий контакт. Для удаленных контактов слепой сначала должен сказать «SMS». В противном случае это будет просто отображаться на ЖК-дисплее. Кроме того, есть два случая для самого ЖК-дисплея, поскольку ему нужно указать перейти ко второй строке, когда сообщение длиннее 16 символов, поскольку он может печатать только 16 символов в строке.
void MsgBuild (char pC) {i ++; if (отправлено <2) {if (pC =='S') {отправлено + =1; msg + =pC; } еще {отправлено =0; msg + =pC; }} иначе, если (отправлено =3) {i =i - 3; msg.remove (i); msg.toLowerCase ();}
Эта часть немного сложна, так что потерпите меня некоторое время. Эта функция будет вызываться в случае использования клавиатуры. Эта функция в основном выполняет две задачи:во-первых, она берет каждый символ, вводимый с клавиатуры, и использует его для создания сообщения, которое будет отправлено позже; во-вторых, он проверяет, хотите ли вы отправить сообщение сейчас. Я понял, что не могу правильно использовать кнопку Enter на клавиатуре щита, поэтому вместо этого я использовал этот код для отправки сообщения:если я нажал кнопку «s» 3 раза подряд. Конечно, вы можете поменять ее на любую другую кнопку. И, как и прежде, для удаленного контакта сначала введите SMS.
Остальной код не требует пояснений. Надеюсь, вам понравится. Если у вас возникнут вопросы, оставьте комментарий ниже.
BlindToDeaf.ino
Схема
Производственный процесс
- Связь Arduino I2C с Raspi 2 WIOT
- Мониторинг CO2 с помощью датчика K30
- Управление монетоприемником с помощью Arduino
- Arduino с Bluetooth для управления светодиодом!
- Емкостной датчик отпечатков пальцев с Arduino или ESP8266
- Игра с дисплеем Nextion
- Роботизированная рука, управляемая нунчук (с Arduino)
- Светодиодный куб 4x4x4 с Arduino Uno и 1sheeld
- Связь Python3 и Arduino
- Измерение солнечной радиации с помощью Arduino