Zpět na domů

Akustické detekování dronů na ESP32-S3

Článek popisuje implementaci akustického detektoru dronů na ESP32-S3 s mikrofonem ICS-43434. Používá se algoritmus Goertzel pro lokální analýzu frekvencí vrtulí. Jsou zvážena schéma, kalibrace, srovnání s ML a radary.

ESP32 proti dronům: akustika a algoritmus Goertzel
Advertisement 728x90

Detekce dronů podle akustických signatur na ESP32-S3

ESP32-S3 s mikrofónem ICS-43434 I2S umožňuje detekovat kvadrokoptéry za 15 dolarů. Algoritmus Goertzel analyzuje charakteristické frekvence vrtulí lokálně, bez cloudových služeb. To řeší problémy se zpožděním a závislostí na externí infrastruktuře, typické pro radary nebo modely ML na serverech.

Kvadrokoptéry generují předvídatelný šum v úzkých frekvenčních pásmech. Filtr Goertzel efektivně extrahuje tyto signály z audio proudu I2S a minimalizuje výpočty. ESP32-S3 zvládá zpracování v reálném čase díky dvoujádrovému procesoru a podpoře DSP instrukcí.

Princip fungování algoritmu Goertzel

Algoritmus Goertzel je optimalizovaná DFT pro jednu frekvenci. Vyžaduje méně zdrojů než FFT, je ideální pro embedded systémy. Formule rekurentního filtru:

Google AdInline article slot

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

Kde $k$ je cílová frekvence, $N$ velikost okna. Špička výkonu signálu na $k$ ukazuje na přítomnost dronu.

Na ESP32 implementace zahrnuje buferování audia (16 kHz, 16 bit), aplikaci filtru na posunuté okně 1024–4096 vzorků. Prah spuštění se nastavuje kalibrací.

Google AdInline article slot

Srovnání s alternativami

  • Radary: Cena od 100 dolarů, vysoká spotřeba energie, vyžadují licenci na frekvence.
  • Cloudový ML (Azure/AWS): Závislost na síti, zpoždění 100–500 ms, rizika soukromí dat.
  • TensorFlow Lite / ESP32-NN: Vyžadují trénink modelu, 50–200 kB RAM, složitější ladění.
  • Goertzel na ATtiny85: Funguje na 8bitovém MCU s 8 kB flash, ale bez I2S – potřebný ADC.

Algoritmus Goertzel vítězí v jednoduchosti: 1–2 kB kódu, <10 % CPU na 240 MHz.

Praktická implementace a kalibrace

Schema: ESP32-S3-WROOM + ICS-43434 (I2S: BCLK=GPIO4, WS=GPIO5, DATA=GPIO6). Napájení 3,3 V, spotřeba ~100 mA.

Kalibrace:

Google AdInline article slot
  • Nahrat baseline šum prostředí (město, les).
  • Zaznamenat frekvence dronů (typicky 150–300 Hz pro vrtule).
  • Nastavit práh: power_k > 10 * baseline.

Ochrana před rušením:

  • Pěnová krytka na mikrofon (snižuje vítr o 20 dB).
  • Směrový akustický zesilovač (jako v historických „vojenských trubkách“).
  • Filtrace nízkých frekvencí (<100 Hz) pro vyloučení dopravy.

Dosah detekce: 50–200 m v tichém prostředí, závisí na výkonu dronu a větru.

Perspektivy integrace ML

ESP32-S3 podporuje ESP-DL a TensorFlow Lite Micro. Lehká CNN (10–50 kB) může klasifikovat spektrogramy a rozpoznávat typy dronů. Nicméně pro středně/pokročilé vývojáře je základní Goertzel výchozí bod: snadno prototypovat, škálovat na více frekvencí.

Testování: Porovnejte SNR na reálných záznamech (DJI Mavic – špičky na 180/220 Hz).

Co je důležité

  • Algoritmus Goertzel zajišťuje analýzu v reálném čase na ESP32 bez cloudu.
  • Cena <15 USD, kompatibilní s ATtiny pro ultra-kompaktní řešení.
  • Kalibrace podle prostředí je nutná pro snížení falešných poplachů.
  • Dosah 50–200 m, zlepšuje se směrovými zesilovači.
  • Perspektiva: ESP-NN pro klasifikaci typů dronů.

— Editorial Team

Advertisement 728x90

Číst dál