Facilitando Comunicação Surdo-Cego com 1Sheeld e Arduino
Componentes e Materiais
- 1x 1Sheeld
- 1x Arduino UNO
- 1x Display LCD Padrão Adafruit 16x2 Branco no Azul
- 1x Potenciômetro rotativo (10k)
- Smartphone (para 1Sheeld)
Sobre o Projeto
Basicamente, este projeto aborda um problema de comunicação surdo-cego.
A única forma de comunicação da pessoa cega seria falar e ouvir, enquanto a pessoa surda só pode digitar e ver. Vamos usar isso!
- Cego → Surdo: Falar → Texto → Mostrar
- Surdo → Cego: Digitar → Texto → Voz
Agora vamos traduzir para hardware.
Passo 1: Configuração de Hardware
- Arduino Uno (ou compatível)
- LCD (neste tutorial uso 16x2)
- Smartphone
- Potenciômetro (10k serve)
Passo 2: Conexões
Para usar 1Sheeld, primeiro baixe a biblioteca 1Sheeld e adicione ao Arduino. Também baixe o app 1Sheeld no celular e instale. Disponível em: 1sheeld.com/downloads
Siga tutorial para conectar 1Sheeld ao Arduino e carregar código: 1Sheeld Getting Started
Circuito do LCD (padrão):
- LCD RS → pino digital 12
- LCD Enable → pino digital 11
- LCD D4 → pino digital 5
- LCD D5 → pino digital 4
- LCD D6 → pino digital 3
- LCD D7 → pino digital 2
- LCD R/W → GND
- LCD VSS → GND
- LCD VCC → 5V
- Potenciômetro 10k: extremidades → +5V e GND, cursor → LCD VO (pino 3)
Comunicação funciona assim:
- Cego → Surdo: Reconhecimento de Voz → Texto → LCD
- Surdo → Cego: Teclado → Texto → Texto-para-Fala
Reconhecimento de voz converte voz em texto enviado ao LCD para surdo ver. Texto-para-fala pega texto do teclado e converte em voz para cego ouvir.
No app 1Sheeld no celular, selecione os shields: Reconhecimento de Voz, Teclado, Texto-para-Fala e SMS. Com SMS, podemos enviar mensagens a contato distante. Vídeo demonstrando funcionamento disponível no projeto original.
Passo 3: Software
#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;
int i = 0;
String phoneNum = ""; // coloque número de telefone aqui
int patternOne[6] = {1000, 2000, 1000, 2000, 1000, 2000};
int patternOneSize = 6;
void setup() {
OneSheeld.begin();
VoiceRecognition.start();
lcd.begin(16, 2);
}
// Cego para Surdo
if (VoiceRecognition.isNewCommandReceived()) {
String msg1 = VoiceRecognition.getLastCommand();
// contato distante: se usuário disse "sms" primeiro
if (msg1.substring(0, 3) == "sms") {
String msg1f = msg1.substring(3);
SMS.send(phoneNum, msg1f);
TextToSpeech.say("sms enviado");
delay(4000);
}
// contato próximo
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);
}
}
}
// Função para construir mensagem do teclado
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();
}
}
Esta função é chamada quando teclado é usado. Faz duas coisas: pega cada caractere digitado para construir mensagem; verifica se quer enviar mensagem agora. Como não consegui usar botão Enter do shield teclado corretamente, usei: pressionar "s" 3 vezes seguidas para enviar. Para contato distante, digite "SMS" primeiro.
O resto do código é autoexplicativo. Espero que goste e dúvidas nos comentários.
Arquivo: BlindToDeaf.ino
Esquemáticos
Diagrama de conexões Fritzing incluído.
Processo de manufatura
- Integração I2C Arduino‑Raspberry Pi 2 Perfeita para Projetos IoT de Sensores
- Sensor K30 CO₂: Monitoramento de Qualidade do Ar Interno em Tempo Real
- Mealheiro Inteligente: Controlar Aceitador de Moedas com Arduino Nano
- Controlar um LED via Bluetooth com Arduino – Guia DIY Simples
- Integrando Sensor de Impressão Digital Capacitivo DFRobot com Arduino ou ESP8266
- Projeto HMI Interativo com Nextion, Arduino Mega e Sensores
- Braço Robótico 6 GDL Controlado por Nunchuk com Arduino Mega
- Construa um Cubo de LED 4x4x4 com Arduino Uno e 1Sheeld – Projeto Interativo de LED
- Python 3 para Arduino UNO: Controle de Comandos Fácil e Demo com LED
- Medição Precisa de Radiação Solar com Arduino UNO e Ethernet Shield