Speathe: Atemgesteuerte Kommunikation für gelähmte Nutzer
Speathe: Atemgesteuerte Kommunikation für gelähmte Nutzer
Speathe ist eine innovative, sich weiterentwickelnde Kommunikationsplattform, die Atemfrequenzen eines Nutzers in hörbare Sprache und Text umwandelt. Sie wurde für Menschen entwickelt, die durch Lähmung ihre Sprache verloren haben, und bietet eine diskrete, freihändige Methode, um Nachrichten, Emotionen und alltägliche Sätze zu übermitteln.
Hardware-Komponenten
- Lautsprecher
- 3 W, 4 Ω Lautsprecher für klare Audioausgabe.
- Android-Gerät
- Führt die React-Native-Mobilanwendung aus.
- Walabot
- Akustischer Sensor, der Atemenergie erfasst und diese als kurze oder lange Atemzüge klassifiziert.
- Raspberry Pi 3 Model B
- Führt das Python-Backend und den Flask-Server aus.
Software-Stack
- Python 3 – für die Backend-Logik und Walabot-Integration.
- Flask – leichter Webserver auf dem Raspberry Pi.
- React-Native – plattformübergreifende mobile Benutzeroberfläche.
Funktionsweise
Atemerkennung & Morse-ähnliche Kodierung
Der Walabot-Sensor misst die Energie jedes Atemzugs. Nach einer kurzen Kalibrierung werden Atemenergien mit einem Schwellenwert verglichen, um Atemzüge als kurz (Punkt) oder lang (Strich) zu klassifizieren. Eine Folge von Atemzügen wird in ein Morsecode-Muster übersetzt (z. B. „-.-.-“). Der Raspberry Pi gleicht dieses Muster mit vordefinierten Buchstaben und Sätzen ab.
Vordefinierte Akronyme
Um den Tippaufwand zu verringern, werden gängige dreibuchstabige Akronyme (z. B. ABC, XYZ) direkt auf vollständige Sätze abgebildet. Wenn das System ein Akronym erkennt, zeigt die Mobile App den erweiterten Text sofort an.
Server-Architektur
Der Raspberry Pi hostet einen Flask-Server unter einer statischen IP. Er empfängt atemabgeleitete Daten, speichert die aktuelle „Nachricht“-Variable und stellt Endpunkte für die Mobile App bereit, um diese abzufragen oder Antworten zu senden.
sudo nano /etc/dhcpcd.conf # Am Ende der Datei hinzufügen interface eth0 static ip_address=192.168.43.211 static routers=192.168.43.1 static domain_name_servers=192.168.43.1 interface wlan0 static ip_address=192.168.43.211 static routers=192.168.43.1 static domain_name_servers=192.168.43.1 # Mit Strg+O speichern und mit Strg+X beenden sudo reboot
Mobile Anwendung
Die React-Native-App fragt kontinuierlich den Flask-Endpunkt nach der neuesten Nachricht ab. Wenn ein nicht-leerer String empfangen wird, zeigt sie den Text an und liest ihn vor. Nutzer können durch Tippen in der App antworten, wodurch der Text an den Server zurückgesendet wird. Der Server spricht die Antwort dann über den Lautsprecher aus, was eine bidirektionale Kommunikation ermöglicht.
Implementierungsschritte
- Python 3 auf dem Raspberry Pi installieren.
- Walabot SDK für Ihr Betriebssystem herunterladen. Das mitgelieferte
BreathingExample.pyuntersuchen, um die Sensordaten-Erfassung zu verstehen. - Flask-Server auf dem Raspberry Pi einrichten und statische IP wie oben gezeigt konfigurieren.
- React-Native-App erstellen, Server-URL auf die IP Ihres Pi anpassen.
- Walabot mit dem Pi, Lautsprecher und Android-Gerät via WLAN verbinden.
- App starten, kurze Kalibrierung durchführen und über Atem zu sprechen beginnen.
Test
Python-Backend auf dem Raspberry Pi ausführen, sicherstellen, dass die statische IP erreichbar ist, und das APK auf dem Android-Gerät bereitstellen. App öffnen, Atemfrequenz ausrichten und Echtzeit-Übersetzung von Atem zu Text beobachten.
Für detailliertere Code-Beispiele und Debugging-Tipps verweisen wir auf die Dokumentation des Repositorys.
Community beitreten
Wir laden Entwickler, Forscher und medizinische Fachkräfte ein, an der Weiterentwicklung von Speathe mitzuwirken. Gemeinsam können wir eine robuste, zugängliche Kommunikationshilfe für die gelähmte Community schaffen.
Kontakt & Ressourcen
- Walabot API Docs: https://walabot.com/api/_pythonapi.html
- Python 3 Downloads: https://www.python.org/downloads/
- React-Native: https://reactnative.dev/
Herstellungsprozess
- Python-Datentypen meistern: Praxisleitfaden
- Python-Operatoren meistern: Umfassender Leitfaden
- Python pass-Statement meistern: Praxisleitfaden
- Python-Funktionsargumente meistern: Positional, Keyword & Default-Parameter
- Python-Dictionaries meistern: Erstellung, Manipulation und fortgeschrittene Techniken
- Python Iteratoren meistern: Funktionsweise und Erstellung eigener Iteratoren
- Python Closures erklärt: Wie verschachtelte Funktionen Variablen erfassen
- Python datetime meistern: Praktischer Leitfaden zu Datumsangaben, Zeiten und Zeitzonen
- Python Überblick: Hochlevel, lesbar, interaktiv & objektorientiert
- Python Zahlen: Unveränderliche numerische Datentypen verstehen