Präziser ECG-Analyzer mit Edge Impulse & Arduino Nano 33 BLE Sense
Benötigte Hardware
| Komponente | Menge |
|---|---|
| Arduino Nano 33 BLE Sense | 1 |
| AD8232 Single-Lead ECG-Sensor (SparkFun) | 1 |
| OLED-Display 0,96" 128x64 (SSD1306) | 1 |
| EKG-Elektroden (Einmal, 3 Stück) | 1 Set |
| Jumper-Kabel, Lötzubehör | 1 Set |
Software & Tools
- Edge Impulse Studio (Web, kostenlos für Entwickler)
- Arduino IDE
- MATLAB + Simulink (Signal Builder für Datensynthese)
- Visual Studio 2017 (optional)
Medizinischer Hintergrund
Plötzlicher Herztod nimmt zu, besonders in ländlichen Gebieten Entwicklungsländer fehlen Ärzte & Geräte. Klassische ECG-Geräte brauchen Cloud/Server für Analyse – Latenz, Datenschutz, Abhängigkeit.
Lösung: TinyML auf Mikrocontroller
ECG-Klassifikation lokal auf dem Nano 33 BLE Sense (Cortex-M4, 64MHz, 256KB RAM). Modellgröße: ~15 KB Flash. Keine Internetverbindung nötig. Latenz minimal. Klassifiziert: Normal, Vorhofflimmern (AFib), AV-Block 1. Grades.
Architektur & Pipeline
- ECG-Aufnahme: AD8232 → Analog-In A0, Leads-Off-Detektion an D2/D3. Sampling 202 Hz.
- Datensynthese (MATLAB): Normales ECG aufnehmen → Signal Builder → manuell P-R-Strecke verlängern (AV-Block) / R-R-Abstand variieren (AFib) → Arrays exportieren.
- Novel Feature Engineering: Roh-ECG schwer zu klassifizieren bei kurzem Fenster (3s). Stattdessen zwei abgeleitete Wellenformen berechnen:
- R-R-Intervall: Zeit zwischen R-Peaks. Normal: konstant (~100). AFib: variabel → Marker -100 bei Abweichung.
- P-R-Intervall: Zeit P→R. Normal: ~50. AV-Block: >200ms → Marker -50.
- Training in Edge Impulse: 3 Klassen, Fenster 3000ms, Increase 2999ms, Spektral-Features (kein Filter), NN-Klassifikator (40 Epochen, LR 0,005) + K-Means Anomalie (R-R & P-R RMS).
- Deployment: Arduino Library + eigener
ECG_AnalyzerLibrary (Dekodierung) → kombinierter Sketch.
Ergebnisse
- Trainings-Accuracy: 92,9%
- Test-Accuracy: ~97%
- Modell läuft in Echtzeit auf Nano 33 BLE Sense
- Anzeige auf OLED: Klasse + Konfidenz
Aufbau & Betrieb
- AD8232 an Nano: A0 (Signal), D2/D3 (LO+/LO-), 3,3V/GND
- OLED an I2C (A4/A5)
- Elektroden: RA (rechter Arm), LA (linker Arm), LL (linkes Bein) – Standard-Einthoven
- Sketch flashen (SIMULATION=0 in
ecg_analyzer.c) - Gerät bootet, zeigt Live-Klassifikation
Quellcode & Ressourcen
GitHub: Manivannan-maker/ECGAnalyzer (Sketch, Library, MATLAB-Skripte, Signal-Builder-Modell, Fritzing-Schaltplan)
Ein Durchbruch für mobile, offline-fähige Herzdiagnostik – TinyML rettet Leben!
Herstellungsprozess
- Tiara: Geschichte, Materialien und modernes Design des königlichen Kopfschmucks
- Stacheldraht: Geschichte, Konstruktion und moderne Verwendung
- Walabot-gestützter Toiletten-Hygienemonitor
- Hands-On Machine Learning mit reTerminal: Edge Impulse & ARM NN Demo Guide
- Defektes Spielzeug-LKW in Raspberry-Pi-gesteuertes RC-Fahrzeug verwandeln
- MOSMusic: Musik-synchronisierte Lichtsteuerung mit CoolMOS MOSFET & Arduino
- Premium Sechseckdrahtgeflecht-Maschine für Landwirtschaft & Geflügel
- Draht-EDM meistern: Umfassender Leitfaden zum Drahterodieren
- CNC-Drahtschneiden: Definition, Prozess und Anwendungen
- Moderne Drahterodiermaschinen (EDM): Präzision & Zuverlässigkeit