Устройство для общения глухосліпых людей с помощью 1Sheeld и Arduino
Компоненты и материалы
- Arduino UNO — 1 шт.
- 1Sheeld (щит с Bluetooth для связи со смартфоном) — 1 шт.
- LCD 16×2 (синий/белый) — 1 шт.
- Потенциометр 10 кОм (контраст LCD) — 1 шт.
- Смартфон с Android/iOS — 1 шт.
О проекте
Решает проблему общения слепого и глухого человека. Слепой говорит — голос преобразуется в текст на LCD. Глухой печатает на клавиатуре телефона — текст озвучивается (TTS). Также поддерживается отправка SMS для удалённого собеседника.
Схема подключения LCD
| LCD Pin | Arduino Pin |
|---|---|
| RS | 12 |
| Enable | 11 |
| D4 | 5 |
| D5 | 4 |
| D6 | 3 |
| D7 | 2 |
| R/W, VSS, K (катод подсветки) | GND |
| VCC, A (анод подсветки) | 5V |
| VO (контраст) | Средний контакт потенциометра (края на 5V и GND) |
Настройка 1Sheeld
- Установите приложение 1Sheeld на смартфон (ссылка).
- Добавьте библиотеку 1Sheeld в Arduino IDE.
- В приложении активируйте щиты: Voice Recognition, Keyboard, Text To Speech, SMS, Terminal, Vibration.
- Соедините 1Sheeld с Arduino, загрузите скетч.
Логика работы
Слепой → Глухой (Voice → Text → LCD)
- Распознавание голоса (Voice Recognition) выдает строку.
- Если строка начинается с «sms» — остаток отправляется по SMS (номер в переменной
phoneNum), TTS говорит «sms sent». - Иначе текст выводится на LCD (две строки по 16 символов, автоперенос).
Глухой → Слепой (Keyboard → Text → TTS)
- Нажатия клавиш на виртуальной клавиатуре 1Sheeld собираются в строку.
- Отправка сообщения: три нажатия буквы «s» подряд (Enter в 1Sheeld не работает надежно).
- Если сообщение начинается с «sms» — уходит по SMS, иначе озвучивается через TTS.
Код (фрагменты)
#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 <OneSheeld.h>
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
String msg;
int sent = 0, i = 0;
String phoneNum = ""; // вписать номер для SMS
int patternOne[6] = {1000,2000,1000,2000,1000,2000};
void setup() {
OneSheeld.begin();
VoiceRecognition.start();
lcd.begin(16, 2);
}
void loop() {
// Blind to Deaf
if (VoiceRecognition.isNewCommandReceived()) {
String msg1 = VoiceRecognition.getLastCommand();
if (msg1.substring(0,3) == "sms") {
SMS.send(phoneNum, msg1.substring(3));
TextToSpeech.say("sms sent");
delay(4000);
} else {
lcd.clear();
if (msg1.length() > 16) {
lcd.setCursor(0,0);
for (int k=0; k<16; k++) lcd.print(msg1[k]);
lcd.setCursor(0,1);
for (int k=16; k
Полный скетч доступен в оригинале как BlindToDeaf.ino.
Схемы
Схема подключения LCD и 1Sheeld в формате Fritzing (файл в оригинале).
Производственный процесс
- Бесшовная I2C-интеграция Arduino и Raspberry Pi 2 для IoT-проектов с датчиками
- Датчик CO2 K30: мониторинг качества воздуха в реальном времени на Arduino
- Умная копилка: управление монетоприёмником на Arduino Nano
- Управление светодиодом по Bluetooth с Arduino: простой DIY-гид
- Интеграция ёмкостного сканера отпечатков DFRobot с Arduino или ESP8266
- Интерактивный HMI-проект на Nextion с Arduino Mega и датчиками
- Роботизированная рука 6 степеней свободы на Arduino Mega с управлением через Nunchuk
- Создание интерактивного 4x4x4 светодиодного куба на Arduino Uno и 1Sheeld
- Управление Arduino Uno из Python 3: команды через последовательный порт и демонстрация с LED
- Измерение солнечной радиации на Arduino UNO с Ethernet Shield