Communicatie voor doofblinden vergemakkelijken met 1Sheeld en Arduino
Onderdelen en benodigdheden
- 1Sheeld (1×)
- Arduino UNO (1×)
- Adafruit Standaard LCD 16×2 Wit op Blauw (1×)
- Draaipotentiometer 10 kΩ (1×)
Over dit project
Dit project lost een communicatieprobleem voor doofblinden op. Een blinde communiceert via spreken/luisteren; een dove via typen/lezen. We bruggen dit:
- Blinde → Dove: Spraak → Tekst → Tonen op LCD
- Dove → Blinde: Typen → Tekst → Spraak (Text-to-Speech)
Stap 1: Hardware-opstelling




Benodigd: Arduino Uno (of compatibel), LCD 16×2, smartphone, 10 kΩ potentiometer.
Stap 2: Aansluitingen






Voor 1Sheeld: download bibliotheek en app via 1sheeld.com/downloads. Handleiding koppelen/uploaden: 1sheeld.com/tutorials/getting-started/.
LCD-aansluiting (standaard 4-bit modus):
- LCD RS → D12
- LCD Enable → D11
- LCD D4 → D5
- LCD D5 → D4
- LCD D6 → D3
- LCD D7 → D2
- LCD R/W → GND
- LCD VSS → GND
- LCD VCC → 5V
- Potentiometer: uiteinden → 5V en GND, wijper → LCD VO (pin 3)
Communicatiestroom:
- Blinde → Dove: Spraakherkenning (Voice Recognition) → Tekst → LCD
- Dove → Blinde: Toetsenbord (Keyboard) → Tekst → Text-to-Speech
In de 1Sheeld-app: activeer Voice Recognition, Keyboard, Text-to-Speech, SMS, Terminal, Vibration shields. Met SMS-shield kunnen berichten naar externe contacten gestuurd worden.
Stap 3: Software
Belangrijke codedelen (volledige sketch: BlindToDeaf.ino):
#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 = ""; // vul telefoonnummer in voor SMS
int patternOne[6] = {1000, 2000, 1000, 2000, 1000, 2000};
int patternOneSize = 6;
void setup() {
OneSheeld.begin();
VoiceRecognition.start();
lcd.begin(16, 2);
}
Blinde → Dove (Spraakherkenning):
if (VoiceRecognition.isNewCommandReceived()) {
String msg1 = VoiceRecognition.getLastCommand();
// Extern contact: begint met "sms"
if (msg1.substring(0, 3) == "sms") {
String msg1f = msg1.substring(3);
SMS.send(phoneNum, msg1f);
TextToSpeech.say("sms sent");
delay(4000);
}
// Lokaal contact: toon op LCD
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);
}
}
}
LCD heeft 16 tekens per rij; lange berichten worden over twee regels verdeeld.
Dove → Blinde (Toetsenbord invoer):
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();
}
}
Omdat de Enter-toets op het schildtoetsenbord niet betrouwbaar werkt, wordt driemaal achtereen de 'S'-toets gebruikt als verzendcommando. Voor extern contact: typ eerst "SMS".
De rest van de code is explicatief. Vragen? Laat een reactie achter!
Schema's

Productieproces
- Naadloze Arduino‑Raspberry Pi 2 I2C-integratie voor IoT-sensorprojecten
- K30 CO2-sensor: Real-time binnenluchtkwaliteitmonitoring met Arduino
- Slimme spaarpot bouwen: Muntenacceptor besturen met Arduino Nano
- Een LED bedienen via Bluetooth met Arduino – Eenvoudige DIY Handleiding
- Een DFRobot Capacitieve Vingerafdruksensor integreren met Arduino of ESP8266
- Interactief Nextion HMI-weerstation met Arduino Mega en sensoren
- Arduino-gebaseerde 6-DoF Robotarm Gestoeerd met Wii Nunchuk
- Bouw een 4x4x4 LED-kubus met Arduino Uno & 1Sheeld – Interactief LED-project
- Python 3 naar Arduino UNO: Eenvoudige Commando Besturing en LED Demo
- Accurate zonnestralingsmeting met Arduino UNO en Ethernet Shield
- Compact Arduino Radarsysteem met HC-SR04 Ultrasonische Sensor & 1.8" Display