Sadržaj:

Audio vizualizator retro LED traka: 4 koraka (sa slikama)
Audio vizualizator retro LED traka: 4 koraka (sa slikama)

Video: Audio vizualizator retro LED traka: 4 koraka (sa slikama)

Video: Audio vizualizator retro LED traka: 4 koraka (sa slikama)
Video: Моя работа наблюдать за лесом и здесь происходит что-то странное 2024, Novembar
Anonim
Image
Image
Lista delova
Lista delova

Kao muzičar i student elektrotehnike, volim svaki projekat koji ukršta ova dva polja. Vidio sam neke "uradi sam" audio vizualizatore (ovdje, ovdje, ovdje i ovdje), ali svaki je propustio barem jedan od dva cilja koja sam sebi postavio: profesionalnu kvalitetu izrade i relativno veliki ekran (mršav 8*8 LED matrica ovdje ne bi bila dovoljna!). S nekim starinskim štihom i sjedeći na dimenzijama 40 "x 20", ovaj audio vizualizator postiže oba cilja.

Unaprijed se ispričavamo na vertikalnim fotografijama. Mnogi od njih uzeti su za društvene mreže.

Korak 1: Lista dijelova

Već sam ležao nekoliko ovih dijelova. Veze su samo za referencu. Molimo vas da ne kupujete nepotrebno skupe komponente.

Elektronika

  1. WS2811 60LEDS/m na 5 m, IP30 (nepromočivo za vodu), adresabilno - Oni su tada bili jeftiniji od WS2812. Ovdje imate malo prostora, ali provjerite jesu li dimenzije točne i možete li zaista razgovarati sa LED diodama. Takođe imajte na umu da su WS2811 12V, dok su WS2812 5V.
  2. 9 x 3-pinski JST konektori + utičnice
  3. Napajanje DC 12V 20A (240W)-U početku sam planirao da napravim 2 LED trake, a htio sam da vam mini zvučnik padne u kuću. Svaka svjetlosna traka je 90W u najgorem slučaju (nisam mjerio da potvrdim), što mi je ostavilo ~ 60W za zvučnike + pojačalo. Opcija 15A ionako je bila samo 4 USD manje.
  4. Kabel za napajanje (3 zupca)
  5. Arduino Uno - R3 mi je ležao pa sam to iskoristio. Možda ćete moći pronaći jeftiniju opciju od nekog od lažnih proizvođača ili drugog dobavljača.
  6. TRRS Breakout - Za pomoćni ulaz
  7. L7805 5V regulator - Svaki 5V regulator koji prihvaća 12V ulaz će raditi.
  8. 330 nF, 100 nF kondenzatori - po tablici L7805
  9. 2 x 10kR, 2 x 1kR, 2 x 100 nF kondenzatora - za preklapanje audio ulaza
  10. Stereo prijemnik - bilo koji vintage stereo prijemnik će raditi sve dok ima pomoćni ulaz (3,5 mm ili RCA). Uzeo sam Panasonic RA6600 sa Craigsliste za 15 USD. Preporučujem da provjerite slične stvari u Goodwill -u, craigslistu i drugim trgovinama.*
  11. Zvučnici - Ne BT zvučnici. Samo set zvučnika. Obratite pažnju na to koja je impedancija kompatibilna s vašim prijemnikom. Našao sam komplet od 3 zvučnika od 20 W (= glasan) u Goodwill -u za 6 USD, a došao je sa "središnjim" i dva "prednja" zvučnika.
  12. Logitech BT audio adapter - ovaj uređaj može emitirati audio izlaz na stereo zvučnike i na vaš krug
  13. RCA muški na RCA muški kabel
  14. Aux kabel

Hardver

  1. 2x6 (8ft) - Nije tretirano pritiskom. Trebalo bi biti ~ 6 USD ili manje na HD -u ili Lowe -u
  2. 40% akril pronosi svjetlost - naručio sam 18 "x 24" x 1/8 ", a tehnički je bio 17,75" x 23,5 ". Držite ga u omotu kada idete na lasersko rezanje.
  3. Drvena mrlja - potrebna vam je samo mala limenka. Koristio sam Minwax crveni mahagoni i ispao je jako lijep. Svakako preporučujem tamni ton. Prvo sam probao provincijski i nije izgledalo tako lijepo.
  4. Lak - Prije svega pogledajte ovaj video zapis Stevea Ramseyja i sami odlučite šta najbolje funkcionira. Dobio sam polusjajnu limenku u spreju (nije bilo sjaja) i iskreno, nije to učinilo toliko. Ali također sam napravio samo jedan premaz zbog vremenskih ograničenja.
  5. 40 x 1/2 "vijci za drvo - imao sam na raspolaganju okruglu glavu, ali preporučujem korištenje ravnog vrha ako možete. Mislim da to ne bi ometalo kvalitetu izrade, ali slobodno prvo pitajte bilo koga poznatijeg o obradi drveta.
  6. Staro drvo, gorilo ljepilo, vruće ljepilo, lemljenje, žica i komandne trake (stil na čičak, 20 srednjih ili 10 velikih)

* Planiram izgraditi zvučnu traku kako bi ovaj projekt bio potpuno „od nule“, koji će zamijeniti 9-13 gore. Nadam se da ću ovo uputstvo ažurirati do kraja ljeta.

Korak 2: Izrada prototipa

Prototipiranje
Prototipiranje

Ovaj odjeljak nije nešto što trebate dovršiti, ali želim pokazati kako je projekt izgledao u toku.

Ovdje sam zalijepio LED diode u obliku zmije i eksperimentirao sa difuzijom svjetla preko vrećice za smeće naslagane preko nje (toplo preporučujem to kao alternativu akrilu ako pokušavate smanjiti troškove. Iako ćete morati pričvrstite na neki drugačiji način).

Meni je uspjelo postavljanje 10x10, ali možda više volite 8x12 ili 7x14. Slobodno eksperimentirajte. Prije nego što sam imao svoj stereo uređaj, pronašao sam pojačalo i priključio ga na matičnu ploču, a prije toga puštao sam zvuk sa prijenosnog računala na strujno kolo za audio analizu i istovremeno pritisnuo "pusti" na svom telefonu da ga čujem.

Veliki sam vjernik u mjeru dvaput, jednom izrezano. Dakle, što god učinili, slijedite taj vodič i bit ćete spremni.

Korak 3: Krug + kôd

Krug + kôd
Krug + kôd
Krug + kôd
Krug + kôd
Krug + kôd
Krug + kôd

Kod je dostupan na GitHub -u.

Oglasna ploča, lemite je na ploču ili dizajnirajte vlastitu PCB. Što god vam ovdje najbolje odgovara, učinite to. Moj demo ovdje radi na matičnoj ploči, ali kad napravim soundbar, sve ću prenijeti na PCB. Da biste dobili napajanje iz adaptera, odrežite ženski kraj i uklonite crnu izolaciju. Skinite dovoljno stvarnih kabela da biste ih pričvrstili na priključke adaptera. Uvijek budite oprezni pri radu s AC -om! Osim toga, ovdje treba napomenuti samo nekoliko stvari.

  1. Zemaljske staze Još jedna stvar je osigurati da su vaše staze dobre. Potrebno vam je uzemljenje od adaptera do Arduina za pomoćni ulaz, koji će se također spojiti na uzemljenje na Logitech BT prijemniku, a odatle na uzemljenje na stereo uređaju. Ako je bilo koja od ovih veza prekinuta ili loša, dobit ćete vrlo bučan audio ulaz, a time i vrlo bučan zaslon.
  2. Biasing audio ulazaAudio koji se reprodukuje preko pomoćnog kabla, sa vašeg telefona ili laptopa ili bilo gdje, reproducirat će se na -2,2 do +2,2 V. Arduino može čitati samo 0 do +5V, tako da morate pristrasiti audio ulaz. To se može efikasno postići pomoću op pojačala, ali ako potrošnja energije nije problem (možda ste kupili napajanje od 240 W?), To se može postići i otpornicima i kondenzatorima. Vrijednosti koje sam odabrao bile su različite jer nisam imao pri ruci kondenzatore od 10uF. Možete se poigrati sa simulatorom da vidite hoće li ono što odaberete funkcionirati.
  3. Fourierove transformacije Svaki projekt koji koristi Fourierove transformacije imat će odjeljak u pozadini koji će ih raspravljati. Ako već imate iskustva, odlično! Ako ne, sve što trebate razumjeti je da oni snimaju snimak signala i vraćaju informacije o tome koje su frekvencije prisutne u tom signalu u tom trenutku. Dakle, ako ste uzeli Fourier -ovu transformaciju sin (440 (2*pi*t)), to bi vam reklo da je u vašem signalu prisutna frekvencija 440Hz. Ako ste uzeli Fourier -ovu transformaciju od 7*sin (440 (2*pi*t)) + 5*sin (2000 (2*pi*t)), to bi vam reklo da su prisutni i signal 440Hz i 2000Hz, i relativne stepene u kojima su prisutni. To može učiniti za bilo koji signal s bilo kojim brojem komponentnih funkcija. Budući da je sav zvuk ikad samo zbir sinusoida, možemo uzeti Fourierovu transformaciju gomile snimaka i vidjeti što se zaista događa. Vidjet ćete u kodu da također primjenjujemo prozor na naš signal prije nego uzmemo Fouriera transformirati. Više o tome se može pronaći ovdje, ali kratko objašnjenje je da je signal koji zapravo dajemo transformaciji nekako loš, a prozori nam to popravljaju. Vaš kôd se neće slomiti ako ih ne koristite, ali ekran neće izgledati tako čisto. Možda postoje bolji algoritmi (na primjer YAAPT), ali slijedeći principe KISS -a, odlučio sam koristiti ono što već bila dostupna, a to je nekoliko dobro napisanih Arduino biblioteka za Fast Fourier-ovu transformaciju ili FFT.
  4. Može li Arduino zaista sve obraditi u stvarnom vremenu? Da bi se sve pojavilo u stvarnom vremenu, Arduino mora uzeti 128 uzoraka, obraditi taj FFT, manipulirati vrijednostima za zaslon i vrlo brzo ažurirati zaslon. Ako želite 1/16 notu preciznosti pri 150 bpm (blizu gornjeg kraja većine pop pjesama), morali biste sve obraditi u 100msec. Osim toga, ljudsko oko može vidjeti pri 30 kadrova u sekundi, što odgovara dužinama okvira od 30 ms. Ovaj post na blogu nije mi dao najveće povjerenje, ali sam odlučio lično vidjeti hoće li Arduino izdržati. Nakon vlastitog benchmarkinga, bio sam jako ponosan na svoj R3. Faza izračuna je bila daleko ograničavajući faktor, ali uspio sam obraditi 128 FFT dužine UINT16 u samo 70 ms. To je bilo unutar audio tolerancija, ali dvostruko više vizualnih ograničenja. Daljnjim istraživanjem pronašao sam Arduino FHT koji koristi prednost FFT simetrije i izračunava samo stvarne vrijednosti. Drugim riječima, to je otprilike 2x brže. I naravno, doveo je cijelu brzinu petlje do ~ 30 ms. Još jedna napomena o rezoluciji ekrana. Dužina N FFT uzorkovana na Fs Hz vraća N binova, gdje kth bin odgovara k * Fs/N Hz. Arduino ADC, koji čita audio ulaz i uzima uzorke, normalno radi na ~ 9,6 kHz. Međutim, FFT može vratiti samo informacije o frekvencijama do 1/2 * Fs. Ljudi mogu čuti do 20 kHz, pa bismo idealno željeli uzorkovati na> 40 kHz. ADC se može hakirati da radi nešto brže, ali ni blizu. Najbolji rezultat koji sam vidio bez gubitka stabilnosti bio je ADC na 14 kHz. Osim toga, najveći FFT koji sam mogao obraditi da bih i dalje imao efekt u stvarnom vremenu bio je N = 128. To znači da svaki spremnik predstavlja ~ 109Hz, što je dobro na višim frekvencijama, ali loše na niskim razinama. Dobar vizualizator pokušava rezervirati oktavu za svaku traku, što odgovara razmacima na [16,35, 32,70, 65,41, 130,81, 261,63, 523,25, 1046,50, 2093,00, 4186,01] Hz. 109Hz znači da su sve prve 2,5 oktave sve u jednoj kanti. I dalje sam uspio postići dobar vizuelni efekat, djelimično uzimajući prosjek svake kante, gdje je kanta grupa kanti između dvije od ovih granica. Nadam se da ovo nije zbunjujuće, a sam kod bi trebao pojasniti što se zaista događa, ali slobodno pitajte ispod ako nema smisla.

Korak 4: Montaža

Montaža
Montaža
Montaža
Montaža
Montaža
Montaža

Kao što sam ranije rekao, želio sam nešto s profesionalnom kvalitetom izrade. U početku sam počeo lijepiti drvo zajedno, ali mi je prijatelj (i vješt inženjer strojarstva) predložio drugačiji pristup. Imajte na umu da je 2x6 zaista 1,5 "x 5". Budite oprezni pri radu s bilo kojom od dolje navedenih strojeva.

  1. Uzmite svoje 2x6x8 i po potrebi izbrusite. Isecite ga na 2 "x 6" x 22 "sekcije. To vam daje dve letvice koje možete" zapaliti "ako zabrljate.
  2. Uzmite svaki dio od 22 inča i provucite ga kroz stolnu pilu da biste napravili letvice od 1,5 "x ~ 1,6" x 22 ". Posljednju trećinu može biti teško rezati na stolnoj pili, pa se možete prebaciti na tračnu pilu. Samo pazite da sve bude što je moguće jasnije. Dodatno, 1.6 "je vodič, a može ići i do 1.75". To su i bili moji komadi, ali sve dok su svi jednaki jedan drugom to nije previše važno. Ograničavajući faktor je akril na 18 ".
  3. Na kraju komada označite U-oblik koji je 1/8 "s obje strane i nešto više od 3/4" dubok. NAPOMENA: Ako koristite drugi akril, dubina će se promijeniti. Na <3/4 "moj akril uopće ne raspršuje svjetlo. Na malo više, potpuno se raspršuje. Želite izbjeći bilo kakvu" perlicu ". Smatrao sam da je ovaj Hackaday post dobra referenca, ali postizanje savršene difuzije je veoma teško!
  4. Sa stolnim usmjerivačem izrežite srednji U do kraja letvice. 22 -inčni je duži nego što vam treba, pa ne brinite o tome da ćete odrezati krajeve ako to učinite. Usmjerivači mogu biti zeznuti, ali nabavite malo nešto šire od polovice širine U -a i pazite da izrežete više od 1/ 8 "materijala odjednom. Ponovite: Ne pokušavajte sve to učiniti u 2 prolaza. Oštetit ćete drvo i vjerojatno ćete se ozlijediti. Radite s rotacijom usmjerivača na rezovima 1-4, a protiv toga na 5-8. Ovo osigurava najbolju kontrolu nad okretnim momentom usmjerivača.
  5. Izrežite LED traku na 30 LED dijelova (može se adresirati samo svaki set od 3 LED diode). Vjerojatno ćete morati otpakovati nekoliko veza. Položite te trake duž staza. Jedna strana bi trebala sjediti u ravnini, a druga bi trebala imati malo mjesta za prijem JST -a, koji će sjediti u ravnini. Nažalost nisam dobio sliku ovoga, ali pogledajte priloženi dijagram. Ovdje označite dužinu, ali nemojte još ništa rezati.
  6. Izmjerite širinu svake letvice. S ovim i dužinom od koraka 7, laser je izrezao akril na 10 potrebnih pravokutnika. Bolje je biti malo dugačak nego malo kratak. Ako se opeče, obrišite ga izopropilom.
  7. Potvrdite da svaka akrilna letvica leži na istoj dužini koju ste označili u koraku 5, a zatim izrežite letvicu na ovu dužinu.
  8. Sada su vam potrebna dva dijela mosta za pričvršćivanje akrila. To omogućuje lako održavanje svjetlosnih traka u slučaju bilo čega. Ovi komadi bi trebali biti otprilike [vaše širine] - 2 * 1/8 "dugi s 1/2" kvadratnim licima, ali bi trebali pristajati malo čvrsto. Kad su ti komadi čvrsto postavljeni i u ravnini s prednjom stranom letvica, izbušite rupe kroz središte svakog mosta s vanjske strane letvica. Potrudite se da svaka bušilica bude ujednačena. Nemojte držati mostove zašrafljenim, ali pazite da mogu biti. Pazite da vijak ne gurnete predaleko i cijepate drvo.
  9. U ovom trenutku zaprljajte letvice i nanesite bilo kakvu završnu obradu.
  10. Sada zavijte mostove. Uverite se da sede u ravni! Ako ne, morat ćete dodati neku vrstu podmetača. Nanesite gorilo ljepilo (poželjno) ili vruće ljepilo (koje se može udvostručiti kao podloga) na mostove i pričvrstite akril. Nemojte nanositi ljepilo duž same letvice.
  11. Lemite JST utičnice na jednu stranu svih LED traka osim jedne. Stavite ih sve na isti kraj kako su označene strelicama. Lemite žice JST utikača na druge krajeve. Možda ćete morati skinuti više žica sa svakog konektora. Uverite se da će veze biti ispravne kada su priključene! Ljepilo na stražnjoj strani LED dioda je užasno, stoga mu ne vjerujte. Položite LED diode na središnju stazu i zalijepite ih gorilom ljepilom, pazeći na naznačeni smjer na trakama. Upamtite da cijelu stvar zbunjujete.
  12. Na prvoj letvici lemite dovoljno dugačke žice da dobijete napajanje + uzemljenje iz adaptera i signal iz Arduina.
  13. Zašrafite letvice i mostove nazad. Pričvrstite komandne trake na stražnju stranu (stil čičak, 2 srednje gore i dolje ili 1 velika u sredini). Napravite sve potrebne veze i objesite ih na zid na udaljenosti od 3 cm. Uživajte u plodovima svog rada.

Preporučuje se: