Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Manufacturing Technology >> Proceso de manufactura

Facilitar la comunicación sordo‑ciego usando 1Sheeld y Arduino

Componentes y suministros

Sobre el proyecto

Básicamente, este proyecto aborda un problema de comunicación entre personas sordo‑ciegas.

La única forma de comunicación de una persona ciega sería hablando y escuchando, mientras que una persona sorda solo puede escribir y ver, ¡así que usemos eso!

Ciego → Sordo: Hablar → Texto → Mostrar
Sordo → Ciego: Escribir → Texto → Voz

Ahora traduzcamos eso a hardware.

Paso 1: Configuración hardware

Facilitar la comunicación sordo‑ciego usando 1Sheeld y Arduino
Facilitar la comunicación sordo‑ciego usando 1Sheeld y Arduino
Facilitar la comunicación sordo‑ciego usando 1Sheeld y Arduino
Facilitar la comunicación sordo‑ciego usando 1Sheeld y Arduino

Paso 2: Conexiones

Facilitar la comunicación sordo‑ciego usando 1Sheeld y Arduino
Facilitar la comunicación sordo‑ciego usando 1Sheeld y Arduino
Facilitar la comunicación sordo‑ciego usando 1Sheeld y Arduino
Facilitar la comunicación sordo‑ciego usando 1Sheeld y Arduino
Facilitar la comunicación sordo‑ciego usando 1Sheeld y Arduino
Facilitar la comunicación sordo‑ciego usando 1Sheeld y Arduino

Para usar 1Sheeld, primero debes descargar la librería 1Sheeld y añadirla a tu Arduino. También necesitas descargar la app 1Sheeld en tu móvil e instalarla. Puedes conseguirlo en: 1sheeld.com/downloads.

Sigue este tutorial para conectar 1Sheeld a Arduino y subir el código: 1sheeld.com/tutorials/getting-started.

El circuito puede parecer un poco liado pero es un circuito LCD simple:

Ahora la comunicación funciona así:

Ciego → Sordo: Reconocimiento de voz → Texto → LCD
Sordo → Ciego: Teclado → Texto → Texto‑a‑voz

Básicamente, el reconocimiento de voz convierte la voz en texto que se envía a la LCD para que la persona sorda lo vea. Texto‑a‑voz toma el texto del teclado y lo convierte en voz para que la persona ciega lo oiga.

Debes elegir los escudos Reconocimiento de Voz, Teclado, Texto‑a‑Voz y SMS desde la app 1Sheeld en tu móvil. Usando el escudo SMS podremos enviar mensajes a un contacto lejano. Aquí hay un video demostrando cómo funciona.

Paso 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 = ""; // escribe aquí el número de teléfono
int patternOne[6] = {1000, 2000, 1000, 2000, 1000, 2000};
int patternOneSize = 6;

void setup() {
  OneSheeld.begin();
  VoiceRecognition.start();
  lcd.begin(16, 2);
}

Básicamente, añadimos las librerías que usaremos e inicializamos variables. Ten en cuenta que usaremos un sensor de vibración y las variables patternOne y patternOneSize están relacionadas con él. También usaremos el escudo SMS para comunicación a larga distancia, por eso la variable phoneNum guardará el número al que enviar el SMS.


// Ciego → Sordo
if (VoiceRecognition.isNewCommandReceived()) {
  String msg1 = VoiceRecognition.getLastCommand();
  // Contacto lejano: si el usuario dijo "sms" primero
  if (msg1.substring(0, 3) == "sms") {
    String msg1f = msg1.substring(3);
    SMS.send(phoneNum, msg1f);
    TextToSpeech.say("sms sent");
    delay(4000);
  }
  // Contacto cercano
  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);
    }
  }
}

Aquí ves dos casos: contacto lejano y cercano. Para contactos lejanos, la persona ciega debe decir «SMS» primero. De lo contrario, solo se muestra en la LCD. También hay dos casos para la LCD: si el mensaje supera 16 caracteres, debe ir a la segunda fila, ya que solo imprime 16 por fila.


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 parte es un poco compleja. Esta función se llama cuando se usa el teclado. Hace dos cosas: primero, toma cada carácter que ingresas por el teclado y construye el mensaje que se enviará después; segundo, verifica si quieres enviar el mensaje ahora. Me di cuenta de que no puedo usar bien la tecla Enter del teclado del escudo, así que usé este código para enviar: si pulso la tecla «s» tres veces seguidas. Por supuesto, puedes cambiarlo a otra tecla. Y como antes, para contacto lejano, escribe SMS primero.

El resto del código es autoexplicativo. Espero que te guste y si tienes preguntas, comenta abajo.

BlindToDeaf.ino

Esquemáticos

Facilitar la comunicación sordo‑ciego usando 1Sheeld y Arduino

Proceso de manufactura

  1. Integración I2C Fluida entre Arduino y Raspberry Pi 2 para Proyectos IoT con Sensores
  2. Sensor K30 CO₂: Monitorización en tiempo real de la calidad del aire interior
  3. Alcancía Inteligente: Controla un Aceptador de Monedas con Arduino Nano
  4. Controla un LED por Bluetooth con Arduino – Guía DIY paso a paso
  5. Integración del sensor de huella capacitivo DFRobot (ID809) con Arduino o ESP8266
  6. Proyecto HMI Interactivo con Nextion, Arduino Mega y Múltiples Sensores
  7. Brazo Robótico de 6 Grados de Libertad Controlado por Nunchuk con Arduino
  8. Construye un Cubo LED 4x4x4 con Arduino Uno y 1Sheeld – Proyecto LED Interactivo
  9. Control Arduino UNO desde Python 3 – Envío de Comandos y Demo LED
  10. Medición Precisa de Radiación Solar con Arduino UNO y Shield Ethernet
  11. Sistema Radar Compacto con Arduino Nano, Sensor HC-SR04 y Pantalla 1.8"