Wi-Fi LED matrix audio spektrální analyzer

Vytisknout
ELEKTRONIKA
Zobrazení: 215

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í.

 

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:

  1. 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...).
  2. 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.
  3. 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

označení materiál odkaz ks cena za ks suma
IO1 procesor ESP32-WROOM-32E-N8 https://www.tme.eu/cz/details/esp32-wroom-32e-8/moduly-iot-wifi-bluetooth/espressif/esp32-wroom-32e-n8/ 1 87,0 Kč 87,0 Kč
IO2 stabilizátor 3,3V LD1117S33CTR https://www.tme.eu/cz/details/ld1117s33ctr/stabilizatory-napeti-neregulovane-ldo/stmicroelectronics/ 1 6,4 Kč 6,4 Kč
IO3 operační zesilovač LM358DR https://www.tme.eu/cz/details/lm358dr/operacni-zesilovace-smd/texas-instruments/ 1 3,0 Kč 3,0 Kč
konektor USB-C USB4135-GF-A https://www.tme.eu/cz/details/usb4135-gf-a/konektory-usb-a-ieee1394/gct/ 1 12,3 Kč 12,3 Kč
AP, EN, KEY tlačítko TL1105DF160Q https://www.tme.eu/cz/details/tl1105df160q/mikrospinace-tact/e-switch/ 3 3,8 Kč 11,4 Kč
matice čtvercová M3 do 3D 1092480BOSSARD https://www.tme.eu/cz/details/b3_bn145/matice/bossard/1092480/ 6 0,3 Kč 1,8 Kč
matice šestihran M3 uchycení desky do 3D 1090615BOSSARD https://www.tme.eu/cz/details/b3_bn124/matice/bossard/1090615/ 2 0,1 Kč 0,2 Kč
šroub M3x10 1219693BOSSARD https://www.tme.eu/cz/details/b3x10_bn1435/srouby/bossard/1219693/ 8 0,5 Kč 4,0 Kč
zdroj 230V/5V USB-C CLW-1505-W2E-ERCCELLEVIA POWER https://www.tme.eu/cz/details/clw-1505-w2e-ebc/zasuvkove-napajeci-zdroje/cellevia-power/clw-1505-w2e-erc/ 1 163,0 Kč 163,0 Kč
MIC1 mikrofon LD-MC-9765PLOUDITY https://www.tme.eu/cz/details/ld-mc-9765p/mikrofony-a-sluchatka/loudity/ 1 12,4 Kč 12,4 Kč
GAIN trimr 1M PS6KV50-105A3030-I-PIHER https://www.tme.eu/cz/details/ps6kv50-105a-i/potenciometry-jednootackove-smd/piher/ps6kv50-105a3030-i/ 1 10,8 Kč 10,8 Kč
C5 470uF tantal 293D477X96R3D2TE3VISHAY https://www.tme.eu/cz/details/293d477x96r3d2te3/tantalove-kondenzatory-smd/vishay/ 1 25,0 Kč 25,0 Kč
C1-C4 100nF 1206B104K251CTWALSIN https://www.tme.eu/cz/details/1206b104k251ct/kondenzatory-mlcc-smd/walsin/ 4 0,4 Kč 1,6 Kč
R1-R6, R8-R10          10 KOhm 1206S4J0103T5E 

https://www.tme.eu/cz/details/1206s4j0103t5e/rezistory-smd/royalohm/

9 0,1 Kč 0,9 Kč
R7 1KOhm 1206S4F1001T5E

https://www.tme.eu/cz/details/1206s4f1001t5e/rezistory-smd/royalohm/

1 0,1 Kč 290,0 Kč
LED matice 4 x 64 bodů s kontrolérem MAX7219 

https://dratek.cz/arduino/5009-led-matice-4x64-s-kontrolerem-max7219.html

2 121,0 Kč 242,0 Kč
Plexisklo plexivyroba.cz 260 mm x 35 mm x 3 mm "rudá displejovka" 1 65,0 Kč 65,0 Kč
Deska spojů printed.cz   1 207,0 Kč 207,0 Kč
pásek na vodiče TT3Х100/BLACKTIE10 https://www.tme.eu/cz/details/tt2.5x100_bk/stahovaci-pasky/tie10/tt3kh100-black/ 5 0,2 Kč 1,0 Kč
uchycení desky k 3D 2064111BOSSARD https://www.tme.eu/cz/details/b3_bn2332/podlozky/bossard/2064111/ 2 0,9 Kč 1,8 Kč
JP1, JP2 DS1022-1*20RDF1-1CONNFLY https://www.tme.eu/cz/details/zl211-20kg/konektory-hrebinky/connfly/ds1022-1-20rdf1-1/ 1 3,3 Kč 3,3 Kč
Celkem ORIENTAČNĚ  1500 Kč

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 cool ).

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ů).

TODO uchycení

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.

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).

Na článku se pracuje...

Attachments:
Download this file (flash_download_tool.zip)Flash download tool[ ]19052 kB4 Downloads2025-05-07 11:03
Arduino
ESP32
VU metr