Turinys:
Video: CRAZY L.O.L SPECTRUM ANALYZER: 6 žingsniai (su nuotraukomis)
2025 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2025-01-13 06:57
Šiandien norėčiau pasidalinti, kaip sukurti garso spektro analizatorių - 36 juostos, derinant 4 LoL skydus. Šis beprotiškas projektas naudoja FFT biblioteką, kad analizuotų stereo garso signalą, konvertuotų jį į dažnių juostas ir rodytų šių dažnių juostų amplitudę 4 x „LoL Shields“.
Prieš pradėdami, žiūrėkite žemiau esantį vaizdo įrašą:
1 žingsnis: DAUGIAU REIKIA
Pagrindiniai elektronikos komponentai yra šie:
- 4 vnt x „Arduino Uno R3“.
- 4 vnt x „LoLShield“PCB. „PCBWay“(visos funkcijos pritaikytos PCB prototipo paslaugos) palaikė man šias „LoLShield“spausdintines plokštes.
- 504 vnt x LED, 3 mm. Kiekvienam „LoLShield“reikia 126 šviesos diodų ir mes galime pasirinkti 4 skirtingas LED spalvas ir tipus (išsklaidytus arba neišsklaidytus).
- 1 vnt x nešiojamojo įkroviklio maitinimo banko baterija 10000/20000mAh.
- 4 vnt x vyrų antraštė 40 kaiščių 2,54 mm.
- 2 vnt x USB tipo A/B kabelis. Vienas naudojamas „Arduino“programavimui, kitas - „Arduino“maitinimui iš maitinimo banko.
- 1 vnt x 3,5 mm moteriškas stereo garso lizdas.
- 1 vnt x 3,5 mm 1 vyriškas - 2 moteriškas garso skirstytuvo adapteris arba kelių ausinių garso skirstytuvas.
- 1 vnt x 3,5 mm stereo garso lizdo vyrų ir vyrų jungties kabelis.
- 1 m x 8P vaivorykštės juostos kabelis.
- 1 m x dviejų branduolių maitinimo kabelis.
- 1 vnt x skaidraus akrilo, A4 dydžio.
2 žingsnis: SCHEMINĖ
„LoLShield“yra 9x14 „Charlieplexing“LED matrica, skirta „Arduino“, ir šioje konstrukcijoje nėra jokių srovę ribojančių rezistorių. Šviesos diodai yra adresuojami atskirai, todėl galime juos naudoti, kad informacija būtų rodoma 9 × 14 LED matricoje.
„LoL Shield“palieka D0 (Rx), D1 (Tx) ir analoginius kaiščius nuo A0 iki A5 laisvus kitoms programoms. Žemiau esančioje nuotraukoje parodyta „Arduino Uno“kaiščių naudojimas šiame projekte:
Mano garso spektro analizatorius turi 4 x („Arduino Uno + LoLShield“). Maitinimo šaltinis ir stereo garso lizdas 3,5 mm yra prijungti, kaip parodyta žemiau esančioje schemoje:
3 žingsnis: LOL SHIELD PCB & LED SOLDINGING
1. LoL SHIELD PCB
Ѽ. Galite sužinoti apie PCB dizainą: Jimmie P. Rodgers
Ѽ. „PCBWay“palaikė šias „LoLShield“spausdintines plokštes su greitu pristatymu ir aukštos kokybės PCB.
2. ŠVIESOS LITMENIS
Ѽ. Kiekvienam „LoLShield“reikia 126 šviesos diodų, o aš naudoju skirtingų tipų ir spalvų 4 kartus „LoLShields“:
- 1 x „LoLShield“: išsklaidytas LED, raudona spalva, 3 mm.
- 1 x „LoLShield“: išsklaidytas LED, žalios spalvos, 3 mm.
- 2 x „LoLShield“: neišsklaidytas (skaidrus) LED, mėlyna spalva, 3 mm.
Ѽ. „LoLShield“PCB ir šviesos diodų paruošimas
Ѽ. Litavimas 126 LED ant „LoLShield“PCB. Lituodami kiekvieną eilutę, turėtume patikrinti šviesos diodus iš baterijos - 14 šviesos diodų
TOP LoLSHIELD
APAČIAS LoLSHIELD
Ѽ. Užbaikite vieną „LoLShield“ir toliau lituokite 3 likusius „LoLShield“.
4 žingsnis: JUNGIMAS IR MONTAVIMAS
Ѽ. Litavimo maitinimo šaltinis ir garso signalas į 4xLoLShield. Stereo signalas naudoja du garso kanalus: kairįjį ir dešinįjį, kurie yra prijungti prie „Arduino Uno“prie analoginių kaiščių A4 ir A5.
- A4: kairysis garso kanalas.
- A5: dešinysis garso kanalas.
Ѽ. Išlyginimas ir tvirtinimas 4 x „Arduino Uno“ant akrilo plokštės.
Ѽ. 4 x „LoLShield“prijungimas prie 4 x „Arduino Uno“.
Ѽ. Klijuokite nešiojamą įkroviklio maitinimo bloką ir garso lizdą ant akrilo plokštės
Ѽ. Padaryta!
5 žingsnis: PROGRAMAVIMAS
Turėtumėte perskaityti, kaip veikia „LoLShield“, remiantis Charlieplexing metodu ir greitu Furjė transformacija (FFT):
en.wikipedia.org/wiki/Charlieplexing
github.com/kosme/fix_fft
„Charlieplexing“atveju mes atkreipiame dėmesį į „tris„ Arduino “skaitmeninių kaiščių būsenas:„ HIGH “(5V),„ LOW “(0V) ir„ INPUT “. Įvesties režimas „Arduino“kaištį įjungia į didelės varžos būseną. Nuoroda:
www.arduino.cc/en/Tutorial/DigitalPins
Mano projekte garso dažnių juostos rodomos 4 x „LoL Shield“ir jos aprašytos taip:
Kiekvienas „Arduino“skaito garso signalą kairiajame/ dešiniajame kanale ir atlieka FFT.
(i = 0; i <64; i ++) {Audio_Input = analogRead (RIGHT_CHANNEL); // Skaityti garso signalą dešiniajame A5 kanale - ARDUINO 1 ir 2 // Audio_Input = analogRead (LEFT_CHANNEL); // Skaityti garso signalą kairiajame A4 kanale - ARDUINO 3 ir 4 Real_Number = Audio_Input; Įsivaizduojamas_skaičius = 0; } fix_fft (tikrasis_skaičius, įsivaizduojamas_skaičius, 6, 0); // Atlikite greitą Furjė transformaciją su N_WAVE = 6 (2^6 = 64), kai (i = 0; i <32; i ++) {Real_Number = 2 * kvq (Real_Number * Real_Number +Imaginary_Number * Įsivaizduojamas_skaičius ); }
Ѽ. „Arduino 1“- rodyti dešiniojo kanalo (A5) amplitudės dažnių juostas 01–09.
(int x = 0; x <14; x ++) {for (int y = 0; y <9; y ++) {if (x <Real_Number [y]) // Rodyti dažnių juostas nuo 01 iki 09 {LedSign:: Set (13-x, 8-y, 1); // LED ON ON} else {LedSign:: Set (13-x, 8-y, 0); // LED IŠJUNGTA}}}
Ѽ. „Arduino 2“- rodyti dešiniojo kanalo 10–18 amplitudės dažnių juostas (A5).
for (int x = 0; x <14; x ++) {for (int y = 0; y <9; y ++) {if (x <Real_Number [9+y]) // Rodyti 10–18 dažnių juostas {LedSign:: Rinkinys (13-x, 8-y, 1); // LED ON ON} else {LedSign:: Set (13-x, 8-y, 0); // LED IŠJUNGTA}}}
Ѽ. „Arduino 3“- rodyti kairiojo kanalo (A4) 01–09 amplitudės dažnių juostas.
Kodas yra toks pat kaip „Arduino 1“, o kairysis garso signalo kanalas prijungiamas prie „Arduino“analoginiu kaiščiu A4.
Ѽ. „Arduino 4“- rodyti 10–18 kairiojo kanalo amplitudės dažnių juostas.
Kodas yra toks pat kaip „Arduino 2“, o kairysis garso signalo kanalas prijungiamas prie „Arduino“naudojant analoginį kaištį A4.
6 žingsnis: Pabaikite
Šis nešiojamasis spektro analizatorius gali tiesiogiai prisijungti prie nešiojamojo kompiuterio/ stalinio kompiuterio, mobiliojo telefono, planšetinio kompiuterio ar kitų muzikos grotuvų per 3,5 mm stereo garso lizdą. Šis projektas atrodo beprotiškas, tikiuosi jums patiks!
Dėkojame, kad skaitote !!!