Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

Doofblinde communicatie met 1Sheeld/Arduino

Componenten en benodigdheden

1Sheeld
× 1
Arduino UNO
× 1
Adafruit Standaard LCD - 16x2 Wit op Blauw
× 1
Draaipotentiometer (algemeen)
× 1

Over dit project

Kortom, dit project lost een blind-doof communicatieprobleem op.

De enige manier van communiceren voor blinden zou zijn door te praten en te horen, terwijl de dove persoon alleen kan typen en zien, dus laten we dat gebruiken!

Blind tot doof:

  • Overleg → Tekst → Tonen

Doof tot blind:

  • Type → Tekst → Stem

Laten we dat nu vertalen naar hardware.

Stap 1:Hardware-installatie

  • Arduino Uno of andere
  • LCD (voor deze tutorial gebruik ik de 16*2 one)
  • Smartphone
  • Potentiometer (10k is voldoende)

Stap 2:Verbindingen

Om 1Sheeld te kunnen gebruiken, moet je eerst de 1Sheeld-bibliotheek downloaden en toevoegen aan je Arduino. U moet ook de 1Sheeld-app naar uw mobiele telefoon downloaden en installeren. Je kunt dat krijgen van de 1Sheeld-site:https://1sheeld.com/downloads/

Volg deze tutorial voor het aansluiten van 1Sheeld op Arduino en het uploaden van de code:https://1sheeld.com/tutorials/getting-started/

Nu weet ik dat het circuit er misschien een beetje rommelig uitziet, maar het is een eenvoudig LCD-circuit:

  • LCD RS-pin → digitale pin 12
  • LCD-pin inschakelen → digitale pin 11
  • LCD D4-pin → digitale pin 5
  • LCD D5-pin → digitale pin 4
  • LCD D6-pin → digitale pin 3
  • LCD D7-pin → digitale pin 2
  • LCD R/W-pin → aarde
  • LCD VSS-pin → aarde
  • LCD VCC-pin → 5V
  • 10K weerstand eindigt → +5V en aarde
  • wisser → LCD VO-pin (pin 3)

Nu gaat de communicatie als volgt:

Blind tot doof

  • Spraakherkenning → Tekst → LCD

Doof tot blind

  • Toetsenbord → Tekst → Tekst-naar-spraak

Kortom, stemherkenning zet stem om in tekst die vervolgens naar een LCD wordt gestuurd, zodat de dove persoon het kan zien. Tekst-naar-spraak neemt tekst van het toetsenbord en zet het om in stem, zodat de blinde het kan horen.

U moet de schermen voor spraakherkenning, toetsenbord, tekst-naar-spraak en sms kiezen uit de 1Sheeld-app op uw mobiele telefoon. Met behulp van het sms-schild kunnen we berichten sturen naar een ver weg contact. Hier is een video om te demonstreren hoe het werkt:

Nu je een goed idee hebt van wat we proberen te doen, gaan we het hebben over code.

Stap 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_TERMINAL_SHIELD#define INCLUDE_KEYBOARD_SHIELD#define INCLUDE_SMS_SHIELD#define INCLUDE_TERMINAL_SHIELD#define INCLUDE_TERMINAL_SHIELD#define INCLUDE_TERMINAL_SHIELD#define verzonden =0;int i =0;String phoneNum =""; //schrijf hierin het telefoonnummer patternOne [6] ={1000, 2000, 1000, 2000, 1000, 2000};int patternOneSize =6;void setup() {OneSheeld.begin(); Spraakherkenning.start(); lcd.begin(16, 2);} 

Kortom, gewoon het toevoegen van de bibliotheken die we zullen gebruiken en het initialiseren van enkele variabelen die we later zullen gebruiken. Houd er rekening mee dat we een trillingssensor gaan gebruiken en de variabelen patternOne en patterOneSize zijn ermee verbonden. We zullen het sms-schild ook gebruiken om over lange afstand te communiceren, daarom hebben we de variabele "phoneNum toegevoegd ” die het telefoonnummer bevat waarnaar u de sms wilt sturen.

 //Blind to Deaf if (VoiceRecognition.isNewCommandReceived()) { String msg1 =VoiceRecognition.getLastCommand(); // ver contact als gebruiker eerst "sms" zei if (msg1.substring (0, 3) =="sms") { String msg1f =msg1.substring (3); SMS.send (phoneNum, msg1f); TextToSpeech.say("sms verzonden"); vertraging (4000); } //contact sluiten 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); } } 

Je kunt in dit deel zien dat ik 2 gevallen heb toegevoegd, verre contact en nauw contact. Voor contacten op afstand moet de blinde eerst 'sms' zeggen. Anders wordt het alleen op het LCD-scherm weergegeven. Er zijn ook 2 gevallen voor het LCD-scherm zelf, omdat het moet worden verteld om naar de tweede rij te gaan wanneer het bericht langer is dan 16 tekens, omdat het slechts 16 tekens per rij kan afdrukken.

void MsgBuild (char pC){ i++; if (verzonden <2) { if (pC =='S') { verzonden +=1; bericht +=pC; } anders { verzonden =0; bericht +=pC; } } else if (verzonden =3) { i =i - 3; bericht.verwijder(i); msg.toLowerCase();} 

Dit deel is een beetje lastig, dus heb een tijdje geduld met me. Deze functie wordt aangeroepen als het toetsenbord wordt gebruikt. Wat deze functie in feite doet, zijn 2 dingen:ten eerste, het neemt elk afzonderlijk teken dat je invoert met het toetsenbord en gebruikt het om het bericht op te bouwen dat later zal worden verzonden; ten tweede controleert het of u het bericht nu wilt verzenden. Ik realiseerde me dat ik de Enter-knop in het schildtoetsenbord niet goed kan gebruiken, dus in plaats daarvan gebruikte ik deze code om het bericht te verzenden:als ik 3 keer achter elkaar op de "s"-knop klikte. Natuurlijk kunt u deze wijzigen in een andere knop. En zoals eerder, typt u voor een ver weg contact eerst SMS.

De rest van de code spreekt voor zich. Dus ik hoop dat je het leuk vindt en als je vragen hebt, kun je hieronder reageren.

BlindToDeaf.ino

Schema's


Productieproces

  1. Arduino I2C-communicatie met Raspi 2 WIOT
  2. CO2-monitoring met K30-sensor
  3. Bedien muntvangers met Arduino
  4. Arduino met Bluetooth om een ​​LED te bedienen!
  5. Capacitieve vingerafdruksensor met een Arduino of ESP8266
  6. Spelen met Nextion Display
  7. Nunchuk-gestuurde robotarm (met Arduino)
  8. 4x4x4 LED-kubus met Arduino Uno en 1sheeld
  9. Python3- en Arduino-communicatie
  10. Zonnestraling meten met Arduino
  11. Mini-radar met Arduino