# Wykrywanie dronów na podstawie sygnatur akustycznych na ESP32-S3
ESP32-S3 z mikrofonem ICS-43434 I2S pozwala na realizację wykrywania quadrocopterów za 15 dolarów. Algorytm Goertzel'a analizuje charakterystyczne częstotliwości śmigieł lokalnie, bez usług chmurowych. Rozwiązuje to problemy z opóźnieniami i zależnością od zewnętrznej infrastruktury, typowe dla radarów lub modeli ML na serwerach.
Drony generują przewidywalny hałas w wąskich zakresach częstotliwości. Filtr Goertzel'a efektywnie wyciąga te sygnały ze strumienia audio I2S, minimalizując obliczenia. ESP32-S3 radzi sobie z przetwarzaniem w czasie rzeczywistym dzięki dwurdzeniowemu procesorowi i wsparciu dla instrukcji DSP.
Zasada działania algorytmu Goertzel'a
Algorytm Goertzel'a to zoptymalizowana DFT dla jednej częstotliwości. Wymaga mniej zasobów niż FFT, idealny dla systemów embedded. Formuła rekurencyjnego filtra:
$$ Q_k = x(n) + 2 \cos(2\pi k / N) \cdot Q_{k-1} - Q_{k-2} $$
Gdzie $k$ — częstotliwość docelowa, $N$ — rozmiar okna. Pik mocy sygnału na $k$ wskazuje na obecność drona.
Na ESP32 implementacja obejmuje buforowanie audio (16 kHz, 16 bit), zastosowanie filtra na suwającym się oknie 1024–4096 próbek. Próg wyzwalania kalibruje się na podstawie kalibracji.
Porównanie z alternatywami
- Radary: Koszt od 100 dolarów, wysokie zużycie energii, wymagają licencji na częstotliwości.
- Chmurowy ML (Azure/AWS): Zależność od sieci, opóźnienia 100–500 ms, ryzyka prywatności danych.
- TensorFlow Lite / ESP32-NN: Wymagają treningu modelu, 50–200 KB RAM, trudniejsze w debugowaniu.
- Goertzel na ATtiny85: Działa na 8-bitowym MCU z 8 KB flash, ale bez I2S — potrzebny ADC.
Algorytm Goertzel'a wygrywa prostotą: 1–2 KB kodu, <10% CPU na 240 MHz.
Praktyczna implementacja i kalibracja
Schemat: ESP32-S3-WROOM + ICS-43434 (I2S: BCLK=GPIO4, WS=GPIO5, DATA=GPIO6). Zasilanie 3.3V, pobór ~100 mA.
Kalibracja:
- Zapisać szum bazowy otoczenia (miasto, las).
- Ustalić częstotliwości dronów (typowe 150–300 Hz dla śmigieł).
- Ustawić próg: power_k > 10 * baseline.
Ochrona przed zakłóceniami:
- Piankowa nasadka na mikrofon (redukcja wiatru o 20 dB).
- Kierunkowy wzmacniacz akustyczny (jak w historycznych „wojennych trąbkach”).
- Filtrowanie niskich częstotliwości (<100 Hz) w celu wyeliminowania transportu.
Zasięg wykrywania: 50–200 m w cichym otoczeniu, zależy od mocy drona i wiatru.
Perspektywy integracji ML
ESP32-S3 obsługuje ESP-DL i TensorFlow Lite Micro. Lekka CNN (10–50 KB) może klasyfikować spektrogramy, rozpoznając typy dronów. Jednak dla deweloperów średniego i wyższego szczebla podstawowy Goertzel to punkt startowy: łatwo prototypować, skalować do wielu częstotliwości.
Testowanie: Porównaj SNR na rzeczywistych nagraniach (DJI Mavic — piki na 180/220 Hz).
Co ważne
- Algorytm Goertzel'a zapewnia analizę w czasie rzeczywistym na ESP32 bez chmury.
- Koszt <15 USD, kompatybilne z ATtiny dla ultra-kompaktowych rozwiązań.
- Kalibracja pod otoczenie obowiązkowa dla redukcji fałszywych alarmów.
- Zasięg 50–200 m, poprawiany kierunkowymi wzmacniaczami.
- Perspektywa: ESP-NN do klasyfikacji typów dronów.
— Editorial Team
Brak komentarzy.