Kommunikationshilfe für Taubblinde: 1Sheeld + Arduino + Sprachausgabe & Anzeige
Komponenten
| Bauteil | Anzahl | |
|---|---|---|
| Arduino UNO | 1 | |
| 1Sheeld Shield | 1 | Verbindet Arduino mit Smartphone per Bluetooth |
| LCD 16×2 (HD44780, z. B. Adafruit White on Blue) | 1 | |
| Drehpotentiometer 10 kΩ | 1 | Für LCD-Kontrast |
| Smartphone (Android/iOS) | 1 | Läuft 1Sheeld App |
Projektziel
Eine Kommunikationsbrücke zwischen einer blinden Person (kann sprechen & hören) und einer tauben Person (kann tippen & sehen).
- Blind → Taub: Sprache → Text (Spracherkennung) → LCD-Anzeige.
- Taub → Blind: Tastatureingabe (Smartphone) → Text → Sprachausgabe (TTS).
- Fernkommunikation: SMS-Versand über 1Sheeld.
Hardware-Aufbau (LCD an Arduino)
| LCD Pin | Arduino Pin |
|---|---|
| RS | 12 |
| Enable (E) | 11 |
| D4 | 5 |
| D5 | 4 |
| D6 | 3 |
| D7 | 2 |
| R/W | GND |
| VSS | GND |
| VCC | 5 V |
| VO (Kontrast) | Potentiometer-Schleifer (Enden an 5 V & GND) |
1Sheeld Einrichtung
- 1Sheeld Library in Arduino IDE installieren (Library Manager oder Download).
- 1Sheeld App auf Smartphone installieren & mit Shield koppeln (Bluetooth).
- In der App folgende Shields aktivieren: Voice Recognition, Keyboard, Text To Speech, SMS, Terminal, Vibration.
- Arduino-Code hochladen (1Sheeld muss im Upload-Modus sein: Schalter auf „Upload“, nach Upload auf „Operating“).
Arduino-Code (Kernlogik)
#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, i = 0;
String phoneNum = "+49XXXXXXXXXX"; // Zielnummer für SMS
int patternOne[6] = {1000, 2000, 1000, 2000, 1000, 2000}; // Vibrationsmuster
void setup() {
OneSheeld.begin();
VoiceRecognition.start();
lcd.begin(16, 2);
}
void loop() {
// --- BLIND → TAUB (Sprache → LCD) ---
if (VoiceRecognition.isNewCommandReceived()) {
String cmd = VoiceRecognition.getLastCommand();
// SMS an ferne Person?
if (cmd.startsWith("sms")) {
String smsText = cmd.substring(3);
SMS.send(phoneNum, smsText);
TextToSpeech.say("SMS gesendet");
delay(4000);
} else { // Lokal: Auf LCD anzeigen
if (cmd.length() > 16) {
lcd.clear();
lcd.setCursor(0, 0);
for (int k = 0; k < 16; k++) lcd.print(cmd[k]);
lcd.setCursor(0, 1);
for (int k = 16; k < cmd.length(); k++) lcd.print(cmd[k]);
} else {
lcd.clear();
lcd.print(cmd);
}
}
}
// --- TAUB → BLIND (Tastatur → Sprache) ---
if (Keyboard.isKeyPressed()) {
char c = Keyboard.getKey();
MsgBuild(c);
}
}
// Baut Nachricht zeichenweise auf; 3× 's' nacheinander = Senden
void MsgBuild(char c) {
i++;
if (sent < 2) {
if (c == 's') { sent++; msg += c; }
else { sent = 0; msg += c; }
} else if (sent == 2) { // drittes 's'
if (c == 's') {
sent = 3;
i -= 3;
msg.remove(i); // die drei 's' entfernen
msg.toLowerCase();
// Senden:
if (msg.startsWith("sms")) {
SMS.send(phoneNum, msg.substring(3));
TextToSpeech.say("SMS gesendet");
} else {
TextToSpeech.say(msg);
}
msg = "";
sent = 0;
i = 0;
} else {
sent = 0;
msg += c;
}
}
}
Funktionsweise im Detail
Spracherkennung → LCD
Die 1Sheeld-App nutzt die Google-Spracherkennung des Smartphones. Erkannter Text wird per Bluetooth an Arduino gesendet. Der Sketch prüft, ob der Text mit „sms“ beginnt → SMS-Versand, sonst Anzeige auf LCD (bei >16 Zeichen auf zwei Zeilen verteilt).
Tastatur (Smartphone) → Sprache
Die taube Person tippt auf der 1Sheeld-App-Tastatur. Jedes Zeichen ruft MsgBuild() auf. Das Drücken von „s“ dreimal hintereinander löst das Senden aus (Enter-Taste funktionierte im Shield unzuverlässig). Beginnt die Nachricht mit „sms“, wird eine SMS gesendet, sonst per TTS vorgelesen.
Vibration & Terminal
Das Vibration-Shield kann haptisches Feedback geben (z. B. bei eingehender SMS). Das Terminal-Shield dient Debugging (Serieller Monitor auf Smartphone).
Erweiterungsideen
- Braille-Display (Refreshable Braille) statt/ergänzend zum LCD für taubblinde Nutzer.
- Spracherkennung für mehrere Sprachen.
- Gespeicherte Phrasen (Makros) per Tastaturkürzel.
- WLAN-basierte Kommunikation (MQTT) statt Bluetooth für größere Reichweite.
Schaltplan

Herstellungsprozess
- Nahtlose Arduino–Raspberry Pi 2 I2C-Integration für IoT-Sensorprojekte
- K30 CO₂-Sensor: Echtzeit-Luftqualitätsmessung mit Arduino
- Smartes Sparschwein: Münzprüfer mit Arduino Nano steuern
- LED per Bluetooth mit Arduino steuern – Einfache DIY-Anleitung
- DFRobot Kapazitiver Fingerabdrucksensor mit Arduino oder ESP8266 einbinden
- Interaktives Nextion HMI Projekt mit Arduino Mega und Sensoren
- Arduino-basierter 6-DoF Roboterarm mit Nunchuk-Steuerung
- 4x4x4 LED-Würfel mit Arduino Uno & 1Sheeld bauen – Interaktives LED-Projekt
- Python 3 zu Arduino UNO: Einfache Steuerung & LED-Demo
- Präzise Solareinstrahlungsmessung mit Arduino UNO & Ethernet Shield