Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Manufacturing Technology >> Herstellungsprozess

Gestenerkennung mit ESP32 und Arduino 101 Beschleunigungssensor – Einfaches DIY-Tutorial

Komponenten und Zubehör

Bauteil Menge Details
Arduino 101 1 Integrierter Beschleunigungssensor – keine zusätzlichen Bauteile nötig
Arduino UNO 1 Alternative: benötigt externen Beschleunigungssensor (z. B. ADXL335)
Adafruit Analog Accelerometer ADXL335 1 Für Arduino ohne integrierten Sensor
SparkFun Triple Axis Accelerometer Breakout ADXL335 1 Alternative zum Adafruit-Modul

Über dieses Projekt

Überblick

Dieses Tutorial zeigt, wie Sie basierende Gestenerkennung in Arduino-Projekte mit dem ESP-System einbinden. Beispiele: Tennisschläge (Vorhand, Rückhand, Aufschlag), Tanzelemente, Gewichtheber-Bewegungen etc. Der Beschleunigungssensor erfasst die Gesten und sendet die Daten an die ESP-Anwendung auf dem PC. ESP nutzt einen einfachen Machine-Learning-Algorithmus (Dynamic Time Warping), um Live-Daten mit aufgezeichneten Gestenbeispielen abzugleichen und bei Erkennung eine Nachricht an den Arduino zurückzusenden. Das System erkennt einzelne diskrete Gesten, keine kontinuierlichen Bewegungsqualitäten – reicht aber für viele interaktive Anwendungen.

ESP Gestenerkennungs-Anwendung herunterladen

Schritt 1: Beschleunigungssensor anschließen

Bei Arduino 101 (integrierter Sensor) kann dieser Schritt übersprungen werden. Andernfalls:

  1. Male Header-Pins auf Breakout-Board löten (falls nicht geschehen).
  2. Beschleunigungssensor an Arduino verdrahten.

Kurzschlussmethode: Breakout direkt in die analogen Eingänge des Arduino Uno stecken (X→A5, Y→A4, Z→A3). Im Code die Pins entsprechend als Stromversorgung (VCC/GND) für den Sensor konfigurieren.

Gestenerkennung mit ESP32 und Arduino 101 Beschleunigungssensor – Einfaches DIY-Tutorial

Alternativ: Breakout auf Steckbrett, VCC→5V, GND→GND, X/Y/Z an drei analoge Eingänge.

Schritt 2: Arduino-Code hochladen

Einen der untenstehenden Sketches verwenden. Prüfen Sie, ob die Pin-Definitionen zur Verkabelung passen (bei Arduino 101 entfällt dies). Board und Port in der IDE wählen, hochladen.

Schritt 3: Daten im Serial Monitor prüfen

Serial Monitor öffnen, 9600 Baud einstellen. Drei Spalten mit sich ändernden Werten sollten erscheinen. Serial Plotter zeigt grafischen Verlauf. Wichtig: Serial Monitor und Plotter vor Schritt 4 schließen, da sie den Port blockieren.

Schritt 4: ESP-Anwendung starten & Serial Port wählen

ESP-Anwendung herunterladen (Mac/Windows Links oben). Im Konfigurationsmenü „Select a serial port“ den Arduino-Port auswählen.

Gestenerkennung mit ESP32 und Arduino 101 Beschleunigungssensor – Einfaches DIY-Tutorial

Live-Daten erscheinen im „Raw Data“-Plot: Rot = X-Achse, Grün = Y-Achse, Blau = Z-Achse.

Gestenerkennung mit ESP32 und Arduino 101 Beschleunigungssensor – Einfaches DIY-Tutorial

Schritt 5: Kalibrierungs-Samples aufnehmen

Beschleunigungssensor flach hinlegen, Z-Achse nach oben. Taste „1“ gedrückt halten für „Upright“-Sample. Dann Sensor umdrehen (flach, Z nach unten), Taste „2“ für „Upside down“-Sample. ESP ermittelt so 0 g (X/Y) und 1 g (Z).

Gestenerkennung mit ESP32 und Arduino 101 Beschleunigungssensor – Einfaches DIY-Tutorial

Schritt 6: Beispiel-Gesten aufnehmen

Reiter „Training“ öffnen (Klick oder Großbuchstabe „T“). Bis zu 9 verschiedene Gesten möglich.

Gestenerkennung mit ESP32 und Arduino 101 Beschleunigungssensor – Einfaches DIY-Tutorial

Geste ausführen, dabei entsprechende Zifferntaste gedrückt halten (z. B. „1“ für Geste 1). Alternativ Beispiel-Datei ForehandBackhandServe.grt laden.

Wichtig: Sensororientierung beim Aufnehmen muss der späteren Nutzung entsprechen (z. B. in Hand gehalten, am Objekt befestigt). Gutes Sample: ganze Geste, wenig Baseline am Anfang/Ende. Nicht die Rückbewegung aufnehmen (z. B. bei Wischgeste nur Hin-, nicht Herbewegung).

Gestenerkennung mit ESP32 und Arduino 101 Beschleunigungssensor – Einfaches DIY-Tutorial

5–10 Samples pro Geste sind oft gut; Qualität vor Quantität. Schlechte Samples löschen („delete“), trimmen („trim“), verschieben („re-label“), umbenennen („rename“).

Gestenerkennung mit ESP32 und Arduino 101 Beschleunigungssensor – Einfaches DIY-Tutorial
Gestenerkennung mit ESP32 und Arduino 101 Beschleunigungssensor – Einfaches DIY-Tutorial

Schritt 7: System trainieren

Taste „t“ drücken → „training successful“ erscheint. Bei ähnlicher Geste wird deren Name im Live-Plot angezeigt.

Gestenerkennung mit ESP32 und Arduino 101 Beschleunigungssensor – Einfaches DIY-Tutorial

Erstes Training klappt oft nicht perfekt. Öfter trainieren/testen während der Aufnahme. Bei Fehlern: mehr Examples aufnehmen (zu strikte Erkennung) oder schlechte löschen/trimmen (zu viele Fehlalarme). Nach Änderungen „t“ drücken.

Schritt 8: Konfiguration feinjustieren

„Click to open configuration“ anklicken. Zwei Parameter:

Nach Änderung: „t“ drücken zum Neutrainieren.

Schritt 9: Gestenerkennung in eigenes Arduino-Projekt einbinden

Bei Erkennung sendet ESP die Gestennummer als ASCII-Text + Newline (z. B. „1\n“) an den Arduino (seriell). Per Serial.read() auswerten und reagieren. Zusätzlich TCP an localhost:5204 (z. B. für Processing-Spiele). TCP-Server muss vor ESP-Start laufen.

Funktionsweise: Dynamic Time Warping (DTW)

DTW verformt das Live-Signal (Werte weglassen/duplizieren), erzeugt Variationen und prüft Ähnlichkeit zu Trainingssamples. Nächstes Sample wird gesucht; Differenz unter Schwellwert („variability“) → Match → Vorhersage der zugehörigen Klasse.

ESP basiert auf dem Gesture Recognition Toolkit (GRT), das viele ML-Algorithmen für Echtzeit-Sensing bereitstellt. ESP übersetzt anwendungsspezifischen Code in angepasste UI für ML-Pipelines. Weitere ESP-Beispiele: Farbsensorik, Posenerkennung, Audioerkennung. Siehe ESP GitHub.

Code

Arduino ADXL335 Code

Liest ADXL335 an Arduino: X→A5, Y→A4, Z→A3. Serielle Ausgabe 9600 Baud, Tab-getrennt, Newline-terminiert, ASCII.

Arduino 101 Beschleunigungssensor Code

Liest integrierten Beschleunigungssensor des Arduino 101. Serielle Ausgabe 9600 Baud, Newline-terminiert, Tab-getrennt, ASCII.

Herstellungsprozess

  1. RFID-Anwesenheitssystem mit Arduino & Python – Daten direkt in phpMyAdmin (XAMPP) speichern
  2. Universelle Android-Fernbedienung mit Arduino, 1Sheeld & IR-Steuerung
  3. Intelligentes Voltmeter mit Arduino & Smartphone bauen – Einfaches DIY-Projekt
  4. Smart IoT-Glas bauen: Füllstand überwachen mit ESP8266, Arduino & Ultraschall
  5. Frequenz & Tastverhältnis präzise messen mit Arduino UNO
  6. Arduino Rover per Firmata & Xbox One Gamepad steuern
  7. Echtzeit-Entfernungsmessung mit Arduino Sonar & Processing-Visualisierung
  8. Stufenlose LED-Helligkeitssteuerung mit Bolt IoT und Arduino UNO
  9. Intelligenter Arduino-Roboterarm bauen: Einfaches DIY-Tutorial
  10. Digitaler Kompass in Echtzeit mit Arduino & Processing bauen