Zurück zur Startseite

Akustische Drohnen-Erkennung auf ESP32-S3

Der Artikel beschreibt die Implementierung eines akustischen Drohnen-Detektors auf ESP32-S3 mit ICS-43434-Mikrofon. Der Goertzel-Algorithmus wird für die lokale Analyse der Propellerfrequenzen verwendet. Umfasst Schaltplan, Kalibrierung, Vergleich mit ML und Radars.

ESP32 vs. Drohnen: Akustik und Goertzel-Algorithmus
Advertisement 728x90

# Drohnen-Erkennung durch akustische Signaturen auf ESP32-S3

Der ESP32-S3 mit dem ICS-43434 I2S-Mikrofon ermöglicht die Erkennung von Quadcoptern für nur 15 $. Der Goertzel-Algorithmus analysiert charakteristische Propellerfrequenzen lokal, ohne Cloud-Dienste. Dies löst die typischen Latenz- und Abhängigkeitsprobleme externer Infrastrukturen, wie sie bei Radars oder serverbasierten ML-Modellen vorkommen.

Quadcopter erzeugen vorhersagbare Geräusche in engen Frequenzbändern. Der Goertzel-Filter extrahiert diese Signale effizient aus dem I2S-Audiostrom und minimiert die Rechenlast. Der ESP32-S3 bewältigt die Echtzeitverarbeitung dank seines Dual-Core-Prozessors und DSP-Instruktionsunterstützung.

So funktioniert der Goertzel-Algorithmus

Der Goertzel-Algorithmus ist eine optimierte DFT für eine einzelne Frequenz. Er benötigt weniger Ressourcen als FFT und eignet sich ideal für eingebettete Systeme. Die rekursive Filterformel:

Google AdInline article slot

$$ Q_k = x(n) + 2 \cos(2\pi k / N) \cdot Q_{k-1} - Q_{k-2} $$

Dabei ist $k$ die Zieltemperatur, $N$ die Fenstergröße. Ein Leistungspeak bei $k$ deutet auf eine Drohne hin.

Die ESP32-Implementierung umfasst Audio-Buffering (16 kHz, 16-Bit), Anwendung des Filters auf ein gleitendes Fenster von 1024–4096 Samples. Der Trigger-Schwellwert ist über Kalibrierung einstellbar.

Google AdInline article slot

Vergleich mit Alternativen

  • Radars: Kosten ab 100 $, hoher Stromverbrauch, erfordern Frequenzzulassungen.
  • Cloud ML (Azure/AWS): Netzwerkabhängigkeit, 100–500 ms Latenz, Datenschutzrisiken.
  • TensorFlow Lite / ESP32-NN: Erfordern Modelltraining, 50–200 KB RAM, schwieriger zu debuggen.
  • Goertzel auf ATtiny85: Läuft auf 8-Bit-MCU mit 8 KB Flash, aber kein I2S – ADC nötig.

Der Goertzel-Algorithmus siegt durch Einfachheit: 1–2 KB Code, <10 % CPU bei 240 MHz.

Praktische Umsetzung und Kalibrierung

Schaltplan: ESP32-S3-WROOM + ICS-43434 (I2S: BCLK=GPIO4, WS=GPIO5, DATA=GPIO6). Versorgung 3,3 V, Verbrauch ~100 mA.

Kalibrierung:

Google AdInline article slot
  • Aufnahme der Basis-Umgebungsgeräusche (Stadt, Wald).
  • Identifizierung der Drohnenfrequenzen (typisch 150–300 Hz für Propeller).
  • Schwellwert setzen: power_k > 10 * baseline.

Schutz vor Störungen:

  • Schaumstoff-Windschutz am Mikrofon (reduziert Windgeräusche um 20 dB).
  • Richtungsakustischer Verstärker (wie historische "Kriegstrompeten").
  • Tiefpassfilterung (<100 Hz), um Verkehr auszuschließen.

Erkennungsreichweite: 50–200 m in ruhigen Umgebungen, abhängig von Drohnenleistung und Wind.

Perspektiven für ML-Integration

ESP32-S3 unterstützt ESP-DL und TensorFlow Lite Micro. Ein leichtes CNN (10–50 KB) kann Spektrogramme klassifizieren, um Drohnenarten zu erkennen. Für Mittel- bis Senior-Entwickler ist der einfache Goertzel jedoch ein toller Einstieg: leicht zu prototypen und auf mehrere Frequenzen skalierbar.

Test: SNR-Vergleich bei realen Aufnahmen (DJI Mavic – Peaks bei 180/220 Hz).

Wichtige Erkenntnisse

  • Der Goertzel-Algorithmus ermöglicht Echtzeitanalyse auf ESP32 ohne Cloud.
  • Kosten < 15 USD, kompatibel mit ATtiny für ultrakompakte Lösungen.
  • Umgebungsspezifische Kalibrierung ist essenziell, um Fehlalarme zu reduzieren.
  • Reichweite 50–200 m, verbessert durch Richtungsverstärker.
  • Zukunft: ESP-NN für Drohnenartenklassifikation.

— Editorial Team

Advertisement 728x90

Weiterlesen