Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Manufacturing Technology >> Processo de manufatura

Comunicação para surdos-cegos com 1Sheeld / Arduino

Componentes e suprimentos

1Sheeld
× 1
Arduino UNO
× 1
Adafruit LCD padrão - 16x2 branco em azul
× 1
Potenciômetro rotativo (genérico)
× 1

Sobre este projeto


Basicamente, este projeto aborda um problema de comunicação entre surdos e cegos.

A única forma de comunicação do cego seria falando e ouvindo, enquanto o surdo só pode digitar e ver, então vamos usar isso!

Cego para surdo:
  • Talk → Texto → Mostrar

Surdo para cego:
  • Digite → Texto → Voz

Agora vamos traduzir isso em hardware.





Etapa 1:configuração do hardware

  • Arduino Uno ou qualquer
  • LCD (para este tutorial estou usando o 16 * 2)
  • Smartphone
  • Potenciômetro (10k bastarão)





Etapa 2:conexões


Para poder usar 1Sheeld, primeiro você precisa baixar a biblioteca 1Sheeld e adicioná-la ao seu Arduino. Além disso, você precisa baixar o aplicativo 1Sheeld para o seu celular e instalá-lo. Você pode obter isso no site 1Sheeld:https://1sheeld.com/downloads/

Siga este tutorial para saber como conectar 1Sheeld ao Arduino e como fazer upload do código:https://1sheeld.com/tutorials/getting-started/

Agora eu sei que o circuito pode parecer um pouco bagunçado, mas é um circuito simples de LCD:
  • pino RS de LCD → pino digital 12
  • LCD Ativar pino → pino digital 11
  • LCD D4 pino → pino digital 5
  • LCD D5 pino → pino digital 4
  • LCD D6 pino → pino digital 3
  • LCD D7 pino → pino digital 2
  • LCD R / W pino → aterramento
  • LCD VSS pino → terra
  • LCD VCC pin → 5V
  • extremidades de resistor de 10K → + 5V e terra
  • limpador → pino VO LCD (pino 3)

Agora a comunicação é a seguinte:

Cego para surdo
  • Reconhecimento de voz → Texto → LCD

Surdo para cego
  • Teclado → Texto → Text-to-Speech

Basicamente, o reconhecimento de voz converterá a voz em texto que será enviado a um LCD, para que o surdo possa vê-lo. A conversão de texto em voz pega o texto do teclado e o converte em voz, para que uma pessoa cega possa ouvi-lo.

Você precisa escolher os escudos de Reconhecimento de Voz, Teclado, Text-to-Speech e SMS do aplicativo 1Sheeld em seu telefone móvel. Usando o escudo de SMS, poderemos enviar mensagens para um contato distante. Aqui está um vídeo para demonstrar como funciona:

Agora que você tem uma boa ideia sobre o que estamos tentando fazer, vamos falar de código.





Etapa 3:Software

  CUSTOM_SETTINGS #define # definir INCLUDE_VOICE_RECOGNIZER_SHIELD # definir INCLUDE_TEXT_TO_SPEECH_SHIELD # definir INCLUDE_KEYBOARD_SHIELD # definir INCLUDE_SMS_SHIELD # definir INCLUDE_TERMINAL_SHIELD # definir INCLUDE_VIBRATION_SHIELD # LCD incluem #includeLiquidCrystal (12, 11, 5, 4, 3, 2); Cadeia msg; int enviado =0; int i =0; String phoneNum =""; // escreva o número do telefone aquiint patternOne [6] ={1000, 2000, 1000, 2000, 1000, 2000}; int patternOneSize =6; void setup () {OneSheeld.begin (); VoiceRecognition.start (); lcd.begin (16, 2);}  

Basicamente, basta adicionar as bibliotecas que usaremos e inicializar algumas variáveis ​​que usaremos posteriormente. Lembre-se de que usaremos um sensor de vibração e as variáveis ​​ patternOne e patterOneSize estão relacionados a ele. Também usaremos o escudo de SMS para comunicação de longa distância, por isso adicionamos a variável “ phoneNum ”, Que conterá o número de telefone para o qual enviará o SMS.
  // Cego para surdo if (VoiceRecognition.isNewCommandReceived ()) {String msg1 =VoiceRecognition.getLastCommand (); // contato remoto se o usuário disse "sms" primeiro if (msg1.substring (0, 3) =="sms") {String msg1f =msg1.substring (3); SMS.send (phoneNum, msg1f); TextToSpeech.say ("SMS enviado"); atraso (4000); } // fechar contato 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); }}  

Você pode ver nesta parte que eu adicionei 2 casos, contato distante e contato próximo. Para contatos distantes, o cego precisa primeiro dizer “SMS”. Caso contrário, será apenas mostrado no LCD. Além disso, há 2 casos para o próprio LCD, pois ele precisa ser informado para ir para a segunda linha quando a mensagem tiver mais de 16 caracteres, pois só pode imprimir 16 caracteres por linha.
  void MsgBuild (char pC) {i ++; if (enviado <2) {if (pC =='S') {enviado + =1; msg + =pC; } else {enviado =0; msg + =pC; }} else if (enviado =3) {i =i - 3; msg.remove (i); msg.toLowerCase ();}  

Agora, esta parte é um pouco complicada, então tenha paciência comigo por um tempo. Esta função será chamada caso o teclado seja utilizado. O que esta função basicamente faz são 2 coisas:primeiro, ela pega cada caractere que você inserir usando o teclado e os usa para construir a mensagem que será enviada mais tarde; em segundo lugar, verifica se você deseja enviar a mensagem agora. Percebi que não posso usar o botão Enter no teclado de proteção adequadamente, então, em vez disso, usei este código para enviar a mensagem:se eu clicar no botão “s” 3 vezes consecutivas. Claro, você pode alterá-lo para qualquer outro botão. E como antes, para um contato distante, digite SMS primeiro.

O resto do código é autoexplicativo. Espero que gostem e caso tenham alguma dúvida, comente abaixo.
BlindToDeaf.ino

Esquemas


Processo de manufatura

  1. Comunicação Arduino I2C com Raspi 2 WIOT
  2. Monitoramento de CO2 com Sensor K30
  3. Aceitar moeda de controle com Arduino
  4. Arduino com Bluetooth para controlar um LED!
  5. Sensor capacitivo de impressão digital com um Arduino ou ESP8266
  6. Brincando com Nextion Display
  7. Braço robótico controlado por Nunchuk (com Arduino)
  8. Cubo de LED 4x4x4 com Arduino Uno e 1sheeld
  9. Comunicação Python3 e Arduino
  10. Medindo a radiação solar com Arduino