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

Comunicación para personas sordociegas con 1Sheeld / Arduino

Componentes y suministros

1Sheeld
× 1
Arduino UNO
× 1
LCD estándar Adafruit - 16x2 blanco sobre azul
× 1
Potenciómetro giratorio (genérico)
× 1

Acerca de este proyecto

Básicamente, este proyecto aborda un problema de comunicación para sordos ciegos.

La única forma de comunicación de la persona ciega sería a través del habla y el oído, mientras que la persona sorda solo puede escribir y ver, ¡así que usemos eso!

De ciegos a sordos:

  • Hablar → Texto → Mostrar

De sordos a ciegos:

  • Escriba → Texto → Voz

Ahora traduzcamos eso en hardware.

Paso 1:configuración del hardware

  • Arduino Uno o cualquier
  • LCD (para este tutorial estoy usando el de 16 * 2)
  • Teléfono inteligente
  • Potenciómetro (10k bastará)

Paso 2:Conexiones

Para poder usar 1Sheeld, primero debe descargar la biblioteca 1Sheeld y agregarla a su Arduino. Además, debe descargar la aplicación 1Sheeld en su teléfono móvil e instalarla. Puede obtenerlo en el sitio de 1Sheeld:https://1sheeld.com/downloads/

Siga este tutorial sobre cómo conectar 1Sheeld a Arduino y cómo cargar el código:https://1sheeld.com/tutorials/getting-started/

Ahora sé que el circuito puede verse un poco desordenado, pero es un circuito LCD simple:

  • LCD RS pin → pin digital 12
  • LCD Activar pin → pin digital 11
  • LCD D4 pin → pin digital 5
  • LCD D5 pin → pin digital 4
  • LCD D6 pin → pin digital 3
  • LCD D7 pin → pin digital 2
  • LCD R / W pin → tierra
  • LCD VSS pin → tierra
  • Pin VCC de LCD → 5V
  • Extremos de resistencia de 10K → + 5V y tierra
  • limpiaparabrisas → pin VO LCD (pin 3)

Ahora la comunicación es la siguiente:

De ciegos a sordos

  • Reconocimiento de voz → Texto → LCD

De sordos a ciegos

  • Teclado → Texto → Texto a voz

Básicamente, el reconocimiento de voz convertirá la voz en texto que luego se enviará a una pantalla LCD para que la persona sorda pueda verlo. Text-to-speech tomará el texto del teclado y lo convertirá en voz, para que la persona ciega pueda escucharlo.

Debe elegir los escudos de reconocimiento de voz, teclado, texto a voz y SMS de la aplicación 1Sheeld en su teléfono móvil. Usando el escudo de SMS, podremos enviar mensajes a un contacto lejano. Aquí hay un video para demostrar cómo funciona:

Ahora que tiene una buena idea de lo que estamos tratando de hacer, hablemos del código.

Paso 3:software

  CUSTOM_SETTINGS #define # 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 # incluyen lcd #includeLiquidCrystal (12, 11, 5, 4, 3, 2); cadena msg; int enviado =0; int i =0; String phoneNum =""; // escriba el número de teléfono aquíint patternOne [6] ={1000, 2000, 1000, 2000, 1000, 2000}; int patternOneSize =6; void setup () {OneSheeld.begin (); VoiceRecognition.start (); lcd.begin (16, 2);}  

Básicamente, simplemente agregando las bibliotecas que usaremos e inicializando algunas variables que usaremos más adelante. Tenga en cuenta que vamos a utilizar un sensor de vibración y las variables patternOne y patterOneSize están relacionados con él. También usaremos el escudo de SMS para comunicarnos a larga distancia, por eso agregamos la variable " phoneNum ”Que contendrá el número de teléfono al que enviará el SMS.

  // De ciegos a sordos if (VoiceRecognition.isNewCommandReceived ()) {String msg1 =VoiceRecognition.getLastCommand (); // contacto remoto si el usuario dijo "sms" primero if (msg1.substring (0, 3) =="sms") {String msg1f =msg1.substring (3); SMS.send (phoneNum, msg1f); TextToSpeech.say ("sms enviado"); retraso (4000); } // cerrar contacto else {if (msg1.length ()> 16) {lcd.clear (); lcd.setCursor (0, 0); para (int i =0; i <=16; i ++) {lcd.print (msg1 [i]); } lcd.setCursor (0, 1); para (int j =16; j <=msg1.length () - 1; j ++) {lcd.print (msg1 [j]); }} else {lcd.clear (); lcd.print (msg1); }}  

Puede ver en esta parte que agregué 2 casos, contacto lejano y contacto cercano. Para contactos lejanos, la persona ciega debe decir primero "SMS". De lo contrario, solo se mostrará en la pantalla LCD. Además, hay 2 casos para la pantalla LCD en sí, ya que es necesario indicarle que vaya a la segunda fila cuando el mensaje tiene más de 16 caracteres, ya que solo puede imprimir 16 caracteres por fila.

  void MsgBuild (char pC) {i ++; if (enviado <2) {if (pC =='S') {enviado + =1; msg + =pC; } else {enviado =0; msg + =pC; }} más si (enviado =3) {i =i - 3; msg.remove (i); msg.toLowerCase ();}  

Ahora bien, esta parte es un poco complicada, así que tengan paciencia conmigo por un tiempo. Esta función se llamará en caso de que se utilice el teclado. Básicamente, esta función hace 2 cosas:primero, toma cada carácter que ingresa usando el teclado y lo usa para construir el mensaje que se enviará más tarde; en segundo lugar, comprueba si desea enviar el mensaje ahora. Me di cuenta de que no puedo usar el botón Enter en el teclado de escudo correctamente, así que en su lugar usé este código para enviar el mensaje:si hacía clic en el botón "s" 3 veces seguidas. Por supuesto, puede cambiarlo a cualquier otro botón. Y como antes, para un contacto lejano, escriba primero un SMS.

El resto del código se explica por sí mismo. Entonces, espero que les guste y si tienen alguna pregunta, por favor comenten a continuación.

BlindToDeaf.ino

Esquemas


Proceso de manufactura

  1. Comunicación de Arduino I2C con Raspi 2 WIOT
  2. Monitoreo de CO2 con sensor K30
  3. Controlar el aceptador de monedas con Arduino
  4. ¡Arduino con Bluetooth para controlar un LED!
  5. Sensor capacitivo de huellas dactilares con Arduino o ESP8266
  6. Jugando con Nextion Display
  7. Brazo robótico controlado por Nunchuk (con Arduino)
  8. Cubo LED 4x4x4 con Arduino Uno y 1sheeld
  9. Python3 y comunicación Arduino
  10. Medición de la radiación solar con Arduino
  11. Mini radar con Arduino