Innehållsförteckning:

Retro LED Strip Audio Visualizer: 4 steg (med bilder)
Retro LED Strip Audio Visualizer: 4 steg (med bilder)

Video: Retro LED Strip Audio Visualizer: 4 steg (med bilder)

Video: Retro LED Strip Audio Visualizer: 4 steg (med bilder)
Video: Я работаю в Страшном музее для Богатых и Знаменитых. Страшные истории. Ужасы. 2024, November
Anonim
Image
Image
Reservdelar
Reservdelar

Som musiker och elektroteknikstudent älskar jag alla projekt som skär dessa två områden. Jag har sett några DIY -ljudvisualiserare (här, här, här och här), men var och en hade missat minst ett av de två målen jag satte upp för mig själv: en professionell byggkvalitet och en relativt stor skärm (en wimpy 8*8 LED -matris skulle inte räcka här!). Med lite vintage stil och sittande på 40 "x 20" uppnår denna ljudvisualiserare båda dessa mål.

Ursäkta i förväg för vertikala foton. Många av dem togs för sociala medier.

Steg 1: Dellista

Jag hade flera av dessa delar liggande redan. Länkarna är enbart för referens. Köp inte onödigt dyra komponenter.

Elektronik

  1. WS2811 60LEDS/m @ 5m, IP30 (icke -vattentät), adresserbar - Dessa var då billigare än WS2812. Du har lite utrymme här men se till att måtten är korrekta och att du faktiskt kan prata med lysdioderna. Observera också att WS2811s är 12V medan WS2812s är 5V.
  2. 9 x 3-stifts JST-kontakter + behållare
  3. DC 12V 20A (240W) strömförsörjning-Jag planerade inledningsvis att göra 2 LED-remsor och ville ha en blåshus-högtalarsats. Varje ljusremsa är 90W i värsta fall (jag har inte mätt för att bekräfta), vilket gav mig ~ 60W för högtalare + förstärkare. Alternativet 15A var ändå bara $ 4 mindre.
  4. Nätsladd (3 uttag)
  5. Arduino Uno - Jag hade en R3 liggande så jag använde det. Du kanske kan hitta ett billigare alternativ från en av knockoffs eller en annan leverantör.
  6. TRRS Breakout - För aux -ingång
  7. L7805 5V Regulator - Varje 5V regulator som accepterar en 12V ingång fungerar.
  8. 330 nF, 100 nF kondensatorer - per L7805 datablad
  9. 2 x 10kR, 2 x 1kR, 2 x 100 nF kondensatorer - för förspänning av ljudingång
  10. Stereomottagare - alla vintage stereomottagare fungerar så länge den har aux -ingång (3,5 mm eller RCA). Jag hämtade en Panasonic RA6600 från craigslist för $ 15. Jag rekommenderar att du söker efter goodwill, craigslist och andra sparsamhetsbutiker.*
  11. Högtalare - inte BT -högtalare. Bara ett högtalarset. Var uppmärksam på vilken impedans som är kompatibel med din mottagare. Jag hittade en uppsättning med 3 20W (= högt) högtalare på Goodwill för $ 6, och det kom med en "center" och två "främre" högtalare.
  12. Logitech BT Audio Adapter - den här enheten kan strömma ljud ut till stereohögtalarna och till din krets
  13. RCA -hane till RCA -hankabel
  14. Aux -sladd

Hårdvara

  1. 2x6 (8ft) - Ej tryckbehandlad. Bör vara ~ $ 6 eller mindre på HD eller Lowe's
  2. 40% ljustransmission akryl - jag beställde 18 "x 24" x 1/8 ", och det var tekniskt 17,75" x 23,5 ". Förvara den i förpackningen när du går till laserskärning.
  3. Träfläck - Du behöver bara en liten burk. Jag använde Minwax röd mahogny och det blev väldigt fint. Jag rekommenderar definitivt en mörk ton. Jag provade ursprungligen provinsiellt och det såg inte lika bra ut.
  4. Lack - Först och främst, kolla in den här videon av Steve Ramsey och bestäm själv vad som fungerar bäst. Jag fick en sprayburk med halvblank (ingen glans fanns) och ärligt talat gjorde det inte så mycket. Men jag gjorde också bara ett lager på grund av tidsbrist.
  5. 40 x 1/2 "träskruvar - Jag hade ett runt huvud tillgängligt för mig men jag rekommenderar att du använder platt topp om du kan. Jag tror inte att det skulle störa byggkvaliteten men fråga gärna någon som är mer insatt i träbearbetning först.
  6. Träskrot, gorillalim, varmt lim, lödning, tråd och kommandoremsor (kardborrstil, 20 medelstora eller 10 stora)

* Jag planerar att bygga en soundbar för att göra det här projektet helt "från grunden", som kommer att ersätta 9-13 ovan. Jag hoppas kunna uppdatera detta instruerbart med det i slutet av sommaren.

Steg 2: Prototypning

Prototyper
Prototyper

Det här avsnittet är inte något du behöver slutföra, men jag vill visa hur projektet såg ut när det gick.

Här tejpade jag ner lysdioder i ormmönstret och experimenterade med ljusdiffusion via skräppåsen skiktad över sig själv (jag rekommenderar det starkt som ett alternativ till akryl om du försöker minska kostnaderna. Även om du måste bifoga det på ett annat sätt).

En 10x10 -installation fungerade för mig, men du kanske föredrar 8x12 eller 7x14. Experimentera gärna. Innan jag hade min stereo hittade jag en förstärkare och kopplade den i min brödbräda, och innan det spelade jag ljud från min bärbara dator till kretsen för ljudanalys och slog samtidigt "play" på min telefon för att höra den.

Jag är en stor tro på måttet två gånger, klipp en gång. Så vad du än gör, följ den guiden så är du klar.

Steg 3: Kretslopp + kod

Kretsar + kod
Kretsar + kod
Kretsar + kod
Kretsar + kod
Kretsar + kod
Kretsar + kod

Koden är tillgänglig på GitHub.

Brödbräda, löd till en perfekt skiva, eller designa ditt eget kretskort. Vad som fungerar bäst för dig här, gör det. Min demo här körs på en brödbräda, men när jag bygger soundbaren kommer jag att överföra allt till ett kretskort. För att få ström från adaptern, klipp av honänden och ta bort den svarta isoleringen. Ta bort tillräckligt med de faktiska kablarna för att skruva fast den på adapterterminalerna. Var alltid försiktig när du arbetar med AC! Annat än det, bara några saker att notera här.

  1. En annan sak är att se till att markvägarna är bra. Du behöver jord från adaptern till Arduino till aux -ingång, som också kommer att anslutas till marken på Logitech BT -mottagaren och därifrån marken på stereon. Om någon av dessa är en trasig eller dålig anslutning får du en mycket bullrig ljudingång och därmed en mycket bullrig display.
  2. Audio Input Biasing Audio som spelas över aux -sladden, från din telefon eller bärbara dator eller var som helst, kommer att spelas med -2,2 till +2,2V. Arduino kan bara läsa 0 till +5V, så du måste förspänna ljudingången. Detta kan uppnås effektivt med op -förstärkare, men om strömförbrukning inte är ett problem (kanske du köpte en 240 W strömförsörjning?), Kan det också uppnås med motstånd och kondensatorer. De värden jag valde var olika eftersom jag inte hade några 10uF -kondensatorer till hands. Du kan leka med simulatorn för att se om det du väljer fungerar.
  3. Fourier Transforms Varje projekt som använder Fourier -transformer kommer att ha en bakgrundssektion som diskuterar dem. Om du redan har erfarenhet, bra! Om inte, behöver du bara förstå att de tar en ögonblicksbild av en signal och returnerar information om vilka frekvenser som finns i den signalen vid den tidpunkten. Så om du tog Fouriers transform av sin (440 (2*pi*t)), skulle det berätta att en 440Hz frekvens finns i din signal. Om du tog Fourier -transformen av 7*sin (440 (2*pi*t)) + 5*sin (2000 (2*pi*t)), skulle det berätta att både en 440Hz och 2000Hz signal är närvarande, och de relativa grader till vilka de är närvarande. Det kan göra detta för alla signaler med valfritt antal komponentfunktioner. Eftersom allt ljud någonsin bara är en summa av sinusoider, kan vi ta Fourier -transformationen av ett gäng ögonblicksbilder och se vad som verkligen händer. Du ser i koden att vi också tillämpar ett fönster på vår signal innan vi tar Fourier omvandla. Mer om det kan hittas här, men en kort förklaring är att signalen vi faktiskt slutar ge transformen är lite sugen, och windows fixar det för oss. Din kod kommer inte att gå sönder om du inte använder dem, men displayen ser inte lika ren ut. Det kan finnas bättre algoritmer tillgängliga (till exempel YAAPT), men enligt KISS principer valde jag att använda vad var redan tillgänglig, vilket är flera välskrivna Arduino-bibliotek för Fast Fourier Transform, eller FFT.
  4. Kan Arduino verkligen bearbeta allt i realtid? För att allt ska visas i realtid måste Arduino ta 128 prover, bearbeta den FFT, manipulera värdena för skärmen och uppdatera skärmen mycket snabbt. Om du ville ha 1/16 ton -precision vid 150 bpm (nära det övre ändtempo för de flesta poplåtar), skulle du behöva bearbeta allt på 100 ms. Dessutom kan det mänskliga ögat se vid 30 FPS, vilket motsvarar 30 ms ramlängder. Det här blogginlägget gav mig inte det största förtroendet, men jag bestämde mig för att se om Arduino skulle hålla ut. Efter min egen benchmarking var jag väldigt stolt över min R3. Beräkningsfasen var överlägset den begränsande faktorn, men jag kunde bearbeta en FFT med 128 längder UINT16s på bara 70 ms. Detta var inom ljudtoleranser, men över det dubbla av den visuella begränsningen. Vid vidare forskning hittade jag Arduino FHT, som utnyttjar FFT -symmetri och bara beräknar de verkliga värdena. Med andra ord, det är ungefär dubbelt så snabbt. Och visst, det tog hela slinghastigheten till ~ 30 msek. En annan notering här om skärmupplösning. En längd N FFT samplad vid Fs Hz returnerar N -fack, där kth -facket motsvarar k * Fs/N Hz. Arduino ADC, som läser ljudingången och tar samplingar, kör normalt på ~ 9,6 kHz. FFT kan dock endast returnera information om frekvenser upp till 1/2 * Fs. Människor kan höra upp till 20 kHz, så vi skulle helst vilja sampla vid> 40 kHz. ADC kan hackas för att köra lite snabbare, men inte i närheten. Det bästa resultatet jag såg utan att förlora stabilitet var vid en 14 kHz ADC. Dessutom var den största FFT jag kunde bearbeta för att fortfarande få en realtidseffekt N = 128. Det betyder att varje fack representerar ~ 109Hz, vilket är bra vid högre frekvenser men dåligt i den låga änden. En bra visualiserare försöker reservera en oktav för varje stapel, vilket motsvarar separationer vid [16.35, 32.70, 65.41, 130.81, 261.63, 523.25, 1046.50, 2093.00, 4186.01] Hz. 109Hz betyder att de första 2,5 oktaverna är alla i ett fack. Jag kunde fortfarande få en bra visuell effekt, delvis genom att ta genomsnittet av varje hink, där en hink är en grupp fack mellan två av dessa gränser. Jag hoppas att detta inte är förvirrande, och själva koden borde klargöra vad som verkligen händer, men fråga gärna nedan om det inte är vettigt.

Steg 4: Montering

hopsättning
hopsättning
hopsättning
hopsättning
hopsättning
hopsättning

Som jag sade tidigare ville jag ha något med professionell byggkvalitet. Ursprungligen började jag limma ihop lameller, men en vän (och skicklig maskiningenjör) föreslog ett annat tillvägagångssätt. Observera att en 2x6 verkligen är 1,5 "x 5". Och var försiktig när du arbetar med någon av nedanstående maskiner.

  1. Ta din 2x6x8 och slipa vid behov. Skär den i 2 "x 6" x 22 "sektioner. Detta ger dig två lameller att" bränna "om du röra.
  2. Ta varje 22 "sektion och kör den genom en bordsåg längs för att göra 1,5" x ~ 1,6 "x 22" lameller. Den sista tredjedelen kan vara svår att skära på en bordssåg, så du kan byta till en bandsåg. Se bara till att allt är så rakt som möjligt. Dessutom är 1,6 "en guide och kan gå upp till 1,75". Det var vad mina bitar var, men så länge de alla är lika med varandra spelar det ingen större roll. Den begränsande faktorn är akryl vid 18 ".
  3. På slutet av bitarna, markera en U-form som är 1/8 "in på vardera sidan och något mer än 3/4" djup. OBS: Om du använder en annan akryl kommer djupet att förändras. Vid <3/4 "diffunderar min akryl inte alls ljus. Vid lite mer diffunderar den helt. Du vill undvika någon" pärlighet ". Jag tyckte att detta Hackaday -inlägg var en bra referens, men att få den perfekta spridningen är mycket svårt!
  4. Med en bordsruta skär du ut det mellersta U: et hela vägen ner i lamellen. 22 "är längre än du behöver, så oroa dig inte för att chippa ändarna om du gör det. Routrar kan vara knepiga, men få lite som är något bredare än halva U -bredden och var försiktig med att klippa mer än 1/ 8 "material åt gången. Upprepa: Försök inte att göra allt i två pass. Du kommer att skada träet och troligen skada dig själv. Arbeta med routerns rotation på snitt 1-4 och arbeta emot det på 5-8. Detta säkerställer att du har bästa kontroll över routerns vridmoment.
  5. Skär LED-remsan i 30-LED-sektioner (endast varje uppsättning av 3 lysdioder är adresserbara). Du kommer antagligen att behöva avlöda några av anslutningarna. Lägg dessa remsor längs spåren. Ena sidan ska sitta spolad, och den andra ska ha ett litet utrymme för JST -mottagaren, som kommer att sitta spolat. Jag fick tyvärr ingen bild på detta, men se bifogade diagram. Markera längden här, men klipp inte något än.
  6. Mät bredden på varje lamell. Med detta och längden från steg 7, laserskär akryl i de 10 nödvändiga rektanglarna. Det är bättre att vara lite lång än något kort. Om det blir bränt, torka av det med isopropyl.
  7. Bekräfta att varje akryllist har samma längd som du markerade i steg 5 och skär sedan ner lamellen till den här längden.
  8. Du behöver nu två brostycken för att fästa akryl. Detta möjliggör enkelt underhåll av ljusremsor om något skulle uppstå. Dessa bitar ska vara ungefär [din bredd] - 2 * 1/8 "långa med 1/2" fyrkantiga ytor, men de ska passa lite tätt. Med dessa bitar stadigt på plats och spola med lamellernas framsida, borra hål genom mitten av varje bro från lamellernas utsida. Gör ditt bästa för att göra varje borr jämn. Håll inte broarna fastskruvade, men se till att de kan vara det. Var försiktig så att du inte drar ner skruven för långt och klyver virket.
  9. Vid denna tidpunkt fläckar du lamellerna och applicerar vilken yta som helst.
  10. Skruva nu in broarna. Se till att de sitter spolade! Om inte, måste du lägga till någon form av mellanlägg. Applicera gorillalim (föredraget) eller varmt lim (som kan fördubblas som en mellanlägg) på broarna och fäst akryl. Applicera inget lim längs själva lamellen.
  11. Löd JST -behållare på ena sidan av alla utom en LED -remsa. Sätt dem alla i samma ände som anges av de markerade pilarna. Löd kablarna på JST -pluggarna i de andra ändarna. Du kan behöva ta bort mer tråd på varje kontakt. Se till att anslutningarna blir korrekta när de är inkopplade! Limet på baksidan av lysdioderna är fruktansvärt, så lita inte på det. Lägg ned lysdioderna i mittspåret och lim dem med gorillalim, var uppmärksam på den angivna riktningen på remsorna. Kom ihåg att du tappar det hela.
  12. På den första lamellen, löd tillräckligt långa ledningar för att få ström + jord från adaptern och signalen från Arduino.
  13. Skruva ner lamellerna och broarna igen. Fäst kommandoremsor på baksidan (kardborrstil, 2 medium upptill och nedtill eller 1 stor i mitten). Gör alla nödvändiga anslutningar och häng på väggen med ~ 3 "avstånd. Njut av frukterna av ditt arbete.

Rekommenderad: