Indholdsfortegnelse:

Retro LED Strip Audio Visualizer: 4 trin (med billeder)
Retro LED Strip Audio Visualizer: 4 trin (med billeder)

Video: Retro LED Strip Audio Visualizer: 4 trin (med billeder)

Video: Retro LED Strip Audio Visualizer: 4 trin (med billeder)
Video: ЯЙЦА ВАРЕНЫЕ 8 ЧАСОВ. ХАМИН В КАЗАНЕ 10, 12, 24 ЧАСОВ ПРИГОТОВЛЕНИЯ. РЕЦЕПТ 2024, November
Anonim
Image
Image
Liste over dele
Liste over dele

Som musiker og el -ingeniørstuderende elsker jeg ethvert projekt, der skærer disse to felter. Jeg har set nogle DIY -lydvisualisatorer (her, her, her og her), men hver havde savnet mindst et af de to mål, jeg satte mig: en professionel byggekvalitet og et relativt stort display (en pjusket 8*8 LED -matrix ville ikke være tilstrækkeligt her!). Med en vis vintage -stil og sidde på 40 "x 20" opnår denne lydvisualiserende begge disse mål.

På forhånd undskyld for lodrette fotos. Mange af dem blev taget til sociale medier.

Trin 1: Deleliste

Jeg havde flere af disse dele liggende allerede. Linkene er udelukkende til reference. Køb ikke unødvendigt dyre komponenter.

Elektronik

  1. WS2811 60LEDS/m @ 5m, IP30 (ikke -vandtæt), adresserbar - Disse var på det tidspunkt billigere end WS2812. Du har noget spillerum her, men sørg for, at dimensionerne er korrekte, og at du faktisk kan tale med lysdioderne. Bemærk også, at WS2811s er 12V, mens WS2812s er 5V.
  2. 9 x 3-pins JST-stik + beholdere
  3. DC 12V 20A (240W) strømforsyning-Jeg planlagde i første omgang at lave 2 LED-strips, og ville have et blæsende højttalersæt. Hver lysstrimmel er 90W i værste tilfælde (jeg har ikke målt for at bekræfte), hvilket efterlod mig ~ 60W til højttalere + forstærker. 15A -indstillingen var alligevel kun $ 4 mindre.
  4. Netledning (3 udtag)
  5. Arduino Uno - Jeg havde en R3 liggende, så jeg brugte det. Du kan muligvis finde en billigere løsning fra en af knockoffs eller en anden leverandør.
  6. TRRS Breakout - Til aux -input
  7. L7805 5V -regulator - Enhver 5V -regulator, der accepterer en 12V -indgang, fungerer.
  8. 330 nF, 100 nF kondensatorer - pr. L7805 datablad
  9. 2 x 10kR, 2 x 1kR, 2 x 100 nF kondensatorer - til forspænding af lydindgang
  10. Stereomodtager - enhver vintage stereomodtager fungerer, så længe den har aux -indgang (3,5 mm eller RCA). Jeg hentede en Panasonic RA6600 fra craigslist for $ 15. Jeg anbefaler at tjekke Goodwill, craigslist og andre genbrugsbutikker for lignende.*
  11. Højttalere - ikke BT -højttalere. Bare et højttalersæt. Vær opmærksom på, hvilken impedans der er kompatibel med din modtager. Jeg fandt et sæt med 3 20W (= høje) højttalere på Goodwill til $ 6, og det fulgte med et "center" og to "front" højttalere.
  12. Logitech BT Audio Adapter - denne enhed kan streame lyd ud til stereohøjttalerne og til dit kredsløb
  13. RCA han til RCA han kabel
  14. Aux ledning

Hardware

  1. 2x6 (8ft) - Ikke trykbehandlet. Bør være ~ $ 6 eller mindre på HD eller Lowe's
  2. 40% lystransmission akryl - jeg bestilte 18 "x 24" x 1/8 ", og det var teknisk 17,75" x 23,5 ". Opbevar det i indpakningen, når du går til laserskæring.
  3. Træplet - Du har kun brug for en lille dåse. Jeg brugte Minwax rød mahogni, og det kom meget godt ud. Jeg anbefaler helt klart en mørk tone. Jeg prøvede oprindeligt provinsielt, og det så ikke så godt ud.
  4. Lak - Tjek først denne video af Steve Ramsey og beslut selv, hvad der fungerer bedst. Jeg fik en spraydåse med halvblank (ingen glans var tilgængelig) og ærligt talt gjorde det ikke så meget. Men jeg lagde også kun et lag på grund af tidsbegrænsninger.
  5. 40 x 1/2 "træskruer - Jeg havde et rundt hoved til rådighed for mig, men jeg anbefaler at bruge en flad top, hvis du kan. Jeg tror ikke, det ville forstyrre byggekvaliteten, men spørg først nogen, der er mere fortrolig med træbearbejdning.
  6. Affaldstræ, gorillalim, varm lim, loddemetal, tråd og kommandostrimler (velcro -stil, 20 medium eller 10 store)

* Jeg planlægger at bygge en soundbar for at lave dette projekt helt "fra bunden", som vil erstatte 9-13 ovenfor. Jeg håber at opdatere dette instruerbare med det i slutningen af sommeren.

Trin 2: Prototyping

Prototyper
Prototyper

Dette afsnit er ikke noget, du skal fuldføre, men jeg vil gerne vise, hvordan projektet så ud undervejs.

Her tapede jeg lysdioder ned i slangemønsteret og eksperimenterede med lysdiffusion via skraldespand lagret oven på sig selv (jeg kan varmt anbefale det som et alternativ til akryl, hvis du prøver at reducere omkostningerne. Selvom du bliver nødt til at vedhæfte det på en anden måde).

Et 10x10 setup fungerede for mig, men du foretrækker måske 8x12 eller 7x14. Eksperimentér gerne. Inden jeg havde mit stereoanlæg, fandt jeg en forstærker og tilsluttede det i mit brødbræt, og før det spillede jeg lyd fra min bærbare computer til kredsløbet til lydanalyse og slog samtidig "play" på min telefon for at høre det.

Jeg er en stor troende i mål to gange, skåret en gang. Så uanset hvad du gør, følg den vejledning, og du er klar.

Trin 3: Kredsløb + kode

Kredsløb + kode
Kredsløb + kode
Kredsløb + kode
Kredsløb + kode
Kredsløb + kode
Kredsløb + kode

Koden er tilgængelig på GitHub.

Breadboard, loddet til et perfboard, eller design din egen PCB. Uanset hvad der fungerer bedst for dig her, gør det. Min demo her kører på et brødbræt, men når jeg bygger soundbaren, overfører jeg alt til et printkort. For at få strøm fra adapteren skal du afskære hunenden og fjerne den sorte isolering. Fjern nok af de faktiske kabler til at skrue den til adapterterminalerne. Vær altid forsigtig med at arbejde med AC! Bortset fra det er der bare et par ting at bemærke her.

  1. En anden ting er at sikre, at dine stier er gode. Du har brug for jord fra adapteren til Arduino til aux -indgang, som også vil forbinde til jorden på Logitech BT -modtageren og derfra jorden på stereoanlægget. Hvis en af disse er en brudt eller dårlig forbindelse, får du et meget støjende lydindgang og dermed et meget støjende display.
  2. Audio Input Biasing Lyd afspilles over aux -ledningen, fra din telefon eller bærbare computer eller hvor som helst, afspilles ved -2,2 til +2,2V. Arduino er kun i stand til at aflæse 0 til +5V, så du skal forspænde lydindgangen. Dette kan opnås effektivt med op -forstærkere, men hvis strømforbruget ikke er et problem (måske har du købt en 240W strømforsyning?), Kan det også opnås med modstande og kondensatorer. De værdier, jeg valgte, var forskellige, fordi jeg ikke havde 10uF kondensatorer ved hånden. Du kan lege med simulatoren for at se, om det du vælger vil fungere.
  3. Fourier Transforms Ethvert projekt, der bruger Fourier -transformer, vil have et baggrundsafsnit, der diskuterer dem. Hvis du allerede har erfaring, fantastisk! Hvis ikke, er alt hvad du behøver at forstå, at de tager et øjebliksbillede af et signal og returnerer oplysninger om, hvilke frekvenser der er til stede i dette signal på det pågældende tidspunkt. Så hvis du tog Fourier -transformen af sin (440 (2*pi*t)), ville det fortælle dig, at en 440Hz frekvens er til stede i dit signal. Hvis du tog Fourier -transformen med 7*sin (440 (2*pi*t)) + 5*sin (2000 (2*pi*t)), ville det fortælle dig, at både et 440Hz- og 2000Hz -signal er til stede, og de relative grader, de er til stede i. Det kan gøre dette for ethvert signal med et vilkårligt antal komponentfunktioner. Da al lyd nogensinde kun er en sum af sinusoider, kan vi tage Fourier -transformationen af en masse snapshots og se, hvad der virkelig foregår. Du vil se i koden, at vi også anvender et vindue til vores signal, før vi tager Fourier transformere. Mere om det kan findes her, men kort forklaring er, at det signal, vi faktisk ender med at give transformen, er lidt sgu, og vinduer ordner det for os. Din kode går ikke i stykker, hvis du ikke bruger dem, men displayet ser ikke så rent ud. Der er muligvis bedre algoritmer til rådighed (f.eks. YAAPT), men efter principperne i KISS valgte jeg at bruge hvad var allerede tilgængelig, hvilket er flere velskrevne Arduino-biblioteker til Fast Fourier Transform eller FFT.
  4. Kan Arduino virkelig behandle alt i realtid? For at alt skal vises i realtid, skal Arduino tage 128 prøver, behandle den FFT, manipulere værdierne for skærmen og opdatere skærmen meget hurtigt. Hvis du ville have præcision på 1/16 node ved 150 bpm (tæt på det øverste sluttempo for de fleste popsange), skal du behandle alt på 100 ms. Derudover kan det menneskelige øje se ved 30 FPS, hvilket svarer til 30 ms sekvenslængder. Dette blogindlæg gav mig ikke den største tillid, men jeg besluttede selv at se, om Arduino ville holde op. Efter min egen benchmarking var jeg meget stolt over min R3. Beregningsfasen var langt den begrænsende faktor, men jeg var i stand til at behandle en FFT på 128 UFT U16T -længder på kun 70 ms. Dette var inden for lydtolerancer, men over det dobbelte af den visuelle begrænsning. Ved yderligere undersøgelser fandt jeg Arduino FHT, som udnytter FFT -symmetri og kun beregner de reelle værdier. Med andre ord er det cirka dobbelt så hurtigt. Og helt sikkert bragte det hele sløjfehastigheden til ~ 30 ms. En anden note her om skærmopløsning. En længde N FFT, der er udtaget ved Fs Hz, returnerer N -bakker, hvor kth -bakken svarer til k * Fs/N Hz. Arduino ADC, der læser lydindgangen og tager prøver, kører normalt ved ~ 9,6 kHz. FFT kan dog kun returnere oplysninger om frekvenser op til 1/2 * Fs. Mennesker kan høre op til 20 kHz, så vi ville ideelt set gerne prøve ved> 40 kHz. ADC kan hackes for at køre lidt hurtigere, men ikke i nærheden der. Det bedste resultat, jeg så uden at miste stabilitet, var ved en 14 kHz ADC. Derudover var den største FFT, jeg kunne behandle for stadig at få en realtime -effekt, N = 128. Dette betyder, at hver bin repræsenterer ~ 109Hz, hvilket er fint ved højere frekvenser, men dårligt i den lave ende. En god visualizer forsøger at reservere en oktav for hver bar, hvilket svarer til adskillelser ved [16.35, 32.70, 65.41, 130.81, 261.63, 523.25, 1046.50, 2093.00, 4186.01] Hz. 109Hz betyder, at de første 2,5 oktaver er alle i en bakke. Jeg var stadig i stand til at få en god visuel effekt, dels ved at tage gennemsnittet af hver spand, hvor en spand er en gruppe skraldespande mellem to af disse grænser. Jeg håber, at dette ikke er forvirrende, og selve koden burde præcisere, hvad der virkelig foregår, men spørg gerne nedenfor, hvis det ikke giver mening.

Trin 4: Montering

montage
montage
montage
montage
montage
montage

Som jeg sagde tidligere, ville jeg have noget med professionel byggekvalitet. Oprindeligt begyndte jeg at trælime lameller sammen, men en ven (og dygtig maskiningeniør) foreslog en anden tilgang. Bemærk, at en 2x6 virkelig er 1,5 "x 5". Og vær forsigtig med at arbejde med et af nedenstående maskiner.

  1. Tag din 2x6x8 og sand efter behov. Skær den i 2 "x 6" x 22 "sektioner. Dette giver dig to lameller til at" brænde ", hvis du ødelægger.
  2. Tag hver 22 "sektion og kør den gennem en bordsav i længden for at lave 1,5" x ~ 1,6 "x 22" lameller. Den sidste tredjedel kan være vanskelig at skære på en bordsav, så du kan skifte til en båndsav. Bare sørg for at alt er så lige som muligt. Derudover er 1,6 "en vejledning og kan gå op til 1,75". Det var hvad mine stykker var, men så længe de alle er lig med hinanden, betyder det ikke så meget. Den begrænsende faktor er akryl ved 18 ".
  3. I enden af stykkerne markeres en U-form, der er 1/8 "ind på hver side og lidt mere end 3/4" dyb. BEMÆRK: Hvis du bruger en anden akryl, ændres dybden. Ved <3/4 "diffunderer min akryl slet ikke lys. Ved lidt mere diffunderer den fuldstændigt. Du vil undgå enhver" perlefuldhed. "Jeg fandt dette Hackaday -indlæg som en god reference, men at få den perfekte diffusion er meget svært!
  4. Med en bordpladefræser skæres det midterste U helt ned af lamel. 22 "er længere end du har brug for, så du skal ikke bekymre dig om at chippe enderne, hvis du gør det. Routere kan være vanskelige, men få en smule, der er lidt bredere end halvdelen af U -bredden, og vær forsigtig med at skære mere end 1/ 8 "materiale ad gangen. Gentag: Forsøg ikke at gøre det hele i 2 afleveringer. Du vil beskadige træet og sandsynligvis skade dig selv. Arbejd med routerens rotation på snit 1-4, og arbejd imod det på 5-8. Dette sikrer, at du har den bedste kontrol over routerens drejningsmoment.
  5. Skær LED-strimlen i 30-LED sektioner (kun hvert sæt med 3 lysdioder kan adresseres). Du skal sandsynligvis aflodse et par af forbindelserne. Læg disse strimler langs sporene. Den ene side skal sidde flush, og den anden skal have lidt plads til JST -modtagelige, som vil sidde flush. Jeg fik desværre ikke et billede af dette, men se vedhæftede diagram. Marker længden her, men skær ikke noget endnu.
  6. Mål bredden på hver lamel. Med dette og længden fra trin 7, laserskåret akryl i de 10 nødvendige rektangler. Det er bedre at være lidt lang end lidt kort. Hvis det bliver brændt, tørres det af med isopropyl.
  7. Bekræft, at hver akryllamel sidder i den samme længde, som du markerede i trin 5, og skær derefter lamellen ned til denne længde.
  8. Du skal nu bruge to brostykker til at fastgøre akrylen. Dette giver mulighed for let vedligeholdelse af lysstrimler, hvis der skulle opstå noget. Disse stykker skal være nogenlunde [din bredde] - 2 * 1/8 "lange med 1/2" firkantede flader, men de skal passe lidt stramt. Med disse stykker fast på plads og flugter med lamellernes forside, borer du huller gennem midten af hver bro fra lamellernes yderside. Gør dit bedste for at gøre hver øvelse jævn. Hold ikke broerne skruet fast, men sørg for, at de kan være det. Pas på ikke at skrue skruen for langt ned og splitte træet.
  9. På dette tidspunkt pletter du lamellerne og påfører enhver finish.
  10. Skru nu broerne i. Sørg for, at de sidder flush! Hvis ikke, skal du tilføje en slags mellemlæg. Påfør gorillalim (foretrukket) eller varm lim (som kan fordoble som et mellemlæg) på broerne og fastgør akrylen. Påfør ikke klæbemiddel langs selve lamellen.
  11. Lodde JST -beholdere til den ene side af alle undtagen en LED -strimmel. Sæt dem alle i samme ende som angivet med de markerede pile. Lod lodtrådene på JST -propperne på de andre ender. Du skal muligvis fjerne mere ledning på hvert stik. Sørg for, at forbindelserne er korrekte, når de tilsluttes! Klæbemidlet på bagsiden af lysdioderne er forfærdeligt, så stol ikke på det. Læg lysdioderne ned i midtersporet og lim dem ned med gorillalim, og vær opmærksom på den angivne retning på strimlerne. Husk, at du snager det hele.
  12. På den første lamel loddes lange nok ledninger til at få strøm + jord fra adapteren og signalet fra Arduino.
  13. Skru lamellerne og broerne ned igen. Fastgør kommandostrimler på bagsiden (velcro -stil, 2 medium øverst og nederst eller 1 stor i midten). Lav alle de nødvendige forbindelser, og hæng på væggen med ~ 3 "fra hinanden. Nyd frugterne af dit arbejde.

Anbefalede: