Tato konstrukce pojednává o audio spektrálním analyzeru (64 pásem s úrovní 8 kroků). Mikrofon snímá okolní zvuk, který se převede na změnu napětí. Operační předzesilovač zesiluje slabší úroveň napětí z mikrofonu. Procesor ESP32 měří úroveň napětí na analogovém vstupu v čase a pomocí FFT provádí výpočty pro následné zobrazení úrovně zvuku na frekvenci. Displej je složen z matice 64*8 bodů. Celé zařízení je nainstalováno ve 3D krabičce z tiskárny. Pomocí tlačítka lze vyvolat tzv "AP" režim pomocí kterého se spustí generování Wi-Fi připojení. Pomocí tabletu, telefonu... můžeme následně měnit firmware v zařízení.
[Zvukový signál] -> [ADC] -> [FFT] -> [Seznam amplitud frekvencí] -> [Zobrazení (LED/displej)]
Z této konstrukce lze výměnou firmware udělat toto zařízení.
- FREE (3D díly na printables https://www.printables.com/model/1280186-esp32-audio-spectrum-analyzer)
- REGISTERED (v příloze program bin pro procesor ESP32)
- DONATE (Deska spojů, zdrojový program pro Arduino pro ESP32)
Přístup k souborům tj přílohám u všech článků (free = není nutná registrace, registered = uživatel, který má registraci na tomto webu, donate = uživatel, který přispěl na provoz webu)
Spektrální analyzátor zvuku (audio spectrum analyzer) je zařízení, které rozkládá složitý zvukový signál na jeho jednotlivé frekvenční složky a ukazuje, jaká je síla (amplituda) každé frekvence.
Základní princip je:
- Zvuk jako signál v čase
Zvuk je vlnění, které lze popsat jako změnu tlaku vzduchu v čase — tedy jako časový signál. Tento signál se skládá ze spousty frekvencí dohromady (nízké tóny, vysoké tóny...). - Převod z času do frekvence — Fourierova transformace
Abychom zjistili, jaké frekvence v signálu jsou a jak jsou silné, potřebujeme tento časový signál rozložit. K tomu se používá matematický nástroj zvaný Fourierova transformace. V praxi se pro digitální signály používá hlavně rychlá Fourierova transformace (FFT – Fast Fourier Transform). FFT vezme například 1024 vzorků signálu a zjistí, kolik energie (síly) je v jednotlivých frekvenčních pásmech — např. kolik je tam frekvence 100 Hz, 500 Hz, 1000 Hz atd. - Zobrazení výsledků
Výsledkem FFT je seznam čísel: každé číslo odpovídá síle určité frekvence. Tento seznam se zobrazí například jako: Sloupce: Každý sloupec odpovídá určitému frekvenčnímu pásmu (například basy, středy, výšky). Výška sloupce = jak moc je daná frekvence ve zvuku zastoupena (amplituda). Typický výstup spektrálního analyzátoru vypadá jako "živý graf", kde sloupce skáčou podle aktuální hudby.
Schéma zapojení
Deska spojů
Seznam součástek
Stavební postup (deska spojů)
Po osazení desky provedem kontrolu na případné chyby (studené spoje, omylem propojené vývody co nemají být spojené...)
Stavební postup (displej)
Konstrukce VU metru používá 2ks maticového displeje 32*8 bodů (tj 512 LED ).
Displeje spájíme k sobě, tak jako na obrázku. Z jednoho displeje propojíme OUT do druhého displeje IN takto:
OUT displej 1 | IN displej 2 |
VCC | VCC |
GND | GND |
DOUT | DIN |
CS | CS |
CLK | CLK |
Na propojení použijeme piny, které ohneme z prvního do druhého modulu.
K prvnímu disleji IN připojíme 5 vodičů délky cca 20-25 cm (ideálně různé barvy). Vodiče jsou slaněného typu (ne tvrdý drát).
Vodič odizolujeme, stočíme, pocínujeme, zastřihneme, připájíme.
Po přiletování navlékneme izolační teplem smrštitelné bužírky (které ofoukáme horkým vzduchem z pájecí stanice).
Smršťovací bužírku rozdělíme na 5 kusů po cca 1 cm.
Bužírka musí být navlečená až k desce.
Na svazek pěti vodičů umístíme stahovací pásky a druhou stranu vodičů také odizolujeme, pocínujeme, zastříhneme na cca 2-3 mm délky (nezapomeneme navléknout izolační bužírky před pájením k řídící desce).
Propojíme displej s řídící deskou.
Připravíme si 2x spojený displej, 4ks vystřeďovací 3D kus a vteřinové lepidlo. Pomocí lepidla postupně přilepíme vystřeďovací kusy na displeje.
Stavební postup (3D krabička)
3D krabička se skládá z těchto dílů
a) 1x zadní kryt
b) 1x krabice
c) 2x držák na zeď
d) 4x vystřeďovací kus na displej
e) držák desky spojů a displejů
f) plexisklo
Do krabice vložíme 6 ks čtvercové matky M3 (za tyto matky následně přišroubujeme zadní kryt a držák desky spojů).
V tuto chvíli máme v krabici vloženy čtvercové matky. Následně vložíme červené plexi do krabice, přilepíme k displeji vteřinovým lepidlem 4 kusy vymezovacích plastů, přimontujeme řídící desku k plastové vzpěře. Jako na obrázku níže...
Kompletace
Nahrání programu do procesoru
Pro nahrání programu do procesoru připojíme jednorázově převodník USB na UART. Další případné verze FW můžeme nahrát přes webovou stránku (převodník již nebude potřeba). Převodník z jedné strany připojíme do USB portu počítače a z druhé strany do desky spojů jako na obrázku. Pozor: na převodníku musíme odstranit propojku (jumper)!
Převodník použijeme například tento: https://www.laskakit.cz/prevodnik-usb-ttl-uart--ft232rl--dtr-pin/
Nás budou zajímat vodiče: VCC, GND, TX, RX. Tyto 4 vodiče propojíme s řídící deskou.
Připravíme řídící desku pro nahrání kódu
Stiskneme na řídící desce sekvenci tlačítek takto:
Připojíme USB adaptér do zařízení (displej se může náhodně rozsvítit, to není na závadu). Držíme tlačítko "KEY" a k němu na krátkou dobu stiskneme tlačítko "EN" (tlačítko KEY následně po cca 2 vteřinách uvolníme). Procesor ESP32 bude přepnutý do režimu příjmu kódu.
Pro nahrání kódu do procesoru máme dvě možnosti:
a) Ze zdrojového kódu přes Arduino IDE nahrajeme přes převodník kód do procesoru (zdrojový soubor *.ino)
b) Pomocí nástroje "Flash Download Tool" nahrajeme zkompilované (nezdrojové) soubory bin do procesoru (nepotřebujeme Arduino IDE). Soubory jsou tři:
soubor | adresa |
bootloader.bin |
0x1000 |
partitions.bin |
0x8000 |
ino.bin |
0x10000 |
Varianta "A" (Arduino IDE)
V Arduino IDE otevřeme zdrojový soubor (mají k dispozici všichni uživatelé "donate" tohoto webu). Nastavíme desku (procesor jako na obrázku). Zvolíme port (dle převodníku například bude dostupný jako COM2...) Stiskneme tlačítko nahrát.
Po nahrání kódu do procesoru stiskneme tlačíko "EN", tím provedeme restart. Po restartu se na displeji vypíše verze software (verze programu nahraného v procesoru) a spustí se kód pro analyzer. Pokud zařízení nereaguje na hudbu musíme pootočit trimrem na desce (pro větší zesílení signálu z mikrofonu).
Varianta "B" (Flash tool)
Stáhneme nástroj "Flash Download Tool", rozbalíme a spustíme.
- ChipType: Vybírá typ procesoru (v našem případě analyzeru ESP32).
- WorkMode: Pracovní režim nástroje. Níže jsou uvedeny rozdíly mezi dvěma aktuálně podporovanými režimy, a to režimem Develop (Vyvíjení) a režimem Factory (Továrna).
Režim Develop používá absolutní cestu k firmwaru a umožňuje flashování firmwaru pouze do jednoho čipu najednou.
Režim Factory používá relativní cestu. Doporučuje se umístit firmware určený k flashování do složky bin na stejné úrovni jako soubor .exe. Ten se po ukončení konfigurace automaticky uloží lokálně. Výběr továrního režimu vede k uzamčenému rozhraní, aby se zabránilo chybné manipulaci myší. Kliknutím na tlačítko LockSettings (zamknout nastavení) povolíte úpravy. - LoadMode (Režim načítání): Podporuje pouze UART rozhraní.
Provedeme test spojení s procesorem (desku analyzeru máme propojenou přes převodník do počítače - viz obrázky výše, na desce podržíme tlačítko "KEY" a stiskneme krátce tlačítko "EN". Tlačítko "KEY" následně uvolníme.
Na záložce "chipinfoDump" zvolíme port (příklad COM6) a stiskneme v programu tlačítko "Chip Info".
Pokud byla kompilace provedena ve starší verzi Arduino IDE 1.8.19 (náš případ) tak se po kompilaci ve složce Windows temp vygenerují 3 soubory (bootloader.bin, partitions.bin, projekt.ino.bin). Zvolíme cestu k souborům a nastavíme jejich adresu ve flash paměti jako na obrázku. Následně klikneme na tlačítko "START".
Po nahrání můžeme převodník odpojit, provedeme restart analyzeru tlačítkem "EN". Po restartu bude zařízení pracovat.
Aktualizace firmware přes webovou stránku
Firmware v zařízení můžeme vyměnit (mimo převodník USB -> UART a soubory *.bin) také pomocí webové stránky.
Postup spuštění Wi-Fi AP režimu
1) Před zapnutím zařízení držíme tlačítko "AP" do doby proběhnutí textu na displeji s informací o firmware (příklad: FW: 1.01-7.05.2025). Následně se na displeji zobrazí nápis "AP".
2) Pokud na displeji rotuje nápis "AP", je aktivní režim přístupového bodu. V dostupných Wi-Fi sítích bude viditelné nové zařízení s názvem (SSID) příklad: Pihrt_matrix_vu_A1B2C3.
3) Připojíme se k této Wi-Fi síti (každé zařízení tj. audio analyzer generuje svůj název!)
Přihlašovací heslo je: password123
4) Otevřeme v prohlížeči webovou stránku: 192.168.10.1
Zvolíme soubor a stiskneme tlačítko "AKTUALIZOVAT".
POMOCÍ ZMĚNY FIRMWARE MŮŽEME TOTO ZAŘÍZENÍ ZMĚNIT NA FUNKČNĚ JINÉ ZAŘÍZENÍ (například běžící text, který můžeme měnit přes webovou stránku).
Vzařízení na kterém nahráváte firmware (nebo ovládáte - například u LED novin) musí být povolen javascript (jinak nebude ovládání a nahrávání funkční). Záleží na konkrétním webovém prohlížeči. Pokud Vám nejde zařízení ovládat, nebo vyměnit firmware -> zkuste stejný postup přes notebook, nebo tablet s Wi-Fi.