Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Manufacturing Technology >> Производственный процесс

Слепоглухое общение с 1Sheeld / Arduino

Компоненты и расходные материалы

1Sheeld
× 1
Arduino UNO
× 1
Стандартный ЖК-экран Adafruit - 16x2, белый на синем
× 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

Схема


Производственный процесс

  1. Связь Arduino I2C с Raspi 2 WIOT
  2. Мониторинг CO2 с помощью датчика K30
  3. Управление монетоприемником с помощью Arduino
  4. Arduino с Bluetooth для управления светодиодом!
  5. Емкостной датчик отпечатков пальцев с Arduino или ESP8266
  6. Игра с дисплеем Nextion
  7. Роботизированная рука, управляемая нунчук (с Arduino)
  8. Светодиодный куб 4x4x4 с Arduino Uno и 1sheeld
  9. Связь Python3 и Arduino
  10. Измерение солнечной радиации с помощью Arduino