Innholdsfortegnelse:

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

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

Video: Retro LED Strip Audio Visualizer: 4 trinn (med bilder)
Video: Дневник хранящий жуткие тайны. Переход. Джеральд Даррелл. Мистика. Ужасы 2024, November
Anonim
Image
Image
Deleliste
Deleliste

Som musiker og elektroteknikkstudent elsker jeg ethvert prosjekt som krysser disse to feltene. Jeg har sett noen DIY lydvisualiserere (her, her, her og her), men hver av dem hadde savnet minst ett av de to målene jeg satte meg: en profesjonell byggekvalitet og en relativt stor skjerm (en fin 8*8 LED -matrise vil ikke være tilstrekkelig her!). Med litt vintage stil, og sittende på 40 "x 20", oppnår denne lydvisualisereren begge disse målene.

Beklager på forhånd for vertikale bilder. Mange av dem ble tatt for sosiale medier.

Trinn 1: Deleliste

Jeg hadde flere av disse delene liggende allerede. Lenker er kun for referanse. Ikke kjøp unødvendig dyre komponenter.

Elektronikk

  1. WS2811 60LEDS/m @ 5m, IP30 (ikke vanntett), adresserbar - Disse var billigere enn WS2812 den gangen. Du har litt spillerom her, men sørg for at dimensjonene er riktige og at du faktisk kan snakke med lysdiodene. Vær også oppmerksom på at WS2811s er 12V mens WS2812s er 5V.
  2. 9 x 3-pinners JST-kontakter + beholdere
  3. DC 12V 20A (240W) strømforsyning-Jeg planla i utgangspunktet å gjøre 2 LED-strips, og ville ha et høyttalersett som du kan huske. Hver lysstrimmel er 90W i verste fall (jeg har ikke målt for å bekrefte), noe som ga meg ~ 60W for høyttalere + forsterker. 15A -alternativet var uansett bare $ 4 mindre.
  4. Strømledning (3 tenner)
  5. Arduino Uno - Jeg hadde en R3 liggende, så jeg brukte det. Du kan kanskje finne et billigere alternativ fra en av knockoffs eller en annen leverandør.
  6. TRRS Breakout - For aux -inngang
  7. L7805 5V regulator - Enhver 5V regulator som godtar en 12V inngang vil fungere.
  8. 330 nF, 100 nF kondensatorer - per L7805 datablad
  9. 2 x 10kR, 2 x 1kR, 2 x 100 nF kondensatorer - for forspenning av lydinngang
  10. Stereomottaker - enhver vintage stereomottaker vil fungere så lenge den har aux -inngang (3,5 mm eller RCA). Jeg hentet en Panasonic RA6600 av craigslist for $ 15. Jeg anbefaler å sjekke Goodwill, craigslist og andre bruktbutikker for lignende.*
  11. Høyttalere - ikke BT -høyttalere. Bare et høyttalersett. Vær oppmerksom på hvilken impedans som er kompatibel med mottakeren din. Jeg fant et sett med 3 20W (= høye) høyttalere på Goodwill for $ 6, og det fulgte med et "senter" og to "fronthøyttalere".
  12. Logitech BT Audio Adapter - denne enheten kan streame lyd ut til stereohøyttalerne og til kretsen din
  13. RCA hann til RCA hann kabel
  14. Aux -ledning

Maskinvare

  1. 2x6 (8ft) - Ikke trykkbehandlet. Bør være ~ $ 6 eller mindre på HD eller Lowe's
  2. 40% lysoverføring akryl - jeg bestilte 18 "x 24" x 1/8 ", og den var teknisk 17,75" x 23,5 ". Ha den i innpakningen når du går til laserskjæring.
  3. Wood Stain - Du trenger bare en liten boks. Jeg brukte Minwax rød mahogni og det kom veldig fint ut. Jeg anbefaler definitivt en mørk tone. Jeg prøvde opprinnelig provinsiell, og det så ikke så bra ut.
  4. Lakk - Sjekk først denne videoen av Steve Ramsey, og bestem selv hva som fungerer best. Jeg fikk en sprayboks med halvglans (ingen glans var tilgjengelig) og ærlig talt gjorde det ikke så mye. Men jeg gjorde også bare ett strøk på grunn av tidsbegrensninger.
  5. 40 x 1/2 "treskruer - Jeg hadde et rundt hode tilgjengelig, men jeg anbefaler å bruke flat topp hvis du kan. Jeg tror ikke det ville forstyrre byggekvaliteten, men spør gjerne noen som er mer kjent med trebearbeiding først.
  6. Skraptre, gorillalim, varmt lim, loddetinn, ledning og kommandostrimler (borrelåsstil, 20 mellomstore eller 10 store)

* Jeg planlegger å bygge en lydstang for å gjøre dette prosjektet helt "fra bunnen av", som vil erstatte 9-13 ovenfor. Jeg håper å oppdatere dette instruerbare med det innen slutten av sommeren.

Trinn 2: Prototyping

Prototyping
Prototyping

Denne delen er ikke noe du trenger å fullføre, men jeg vil vise hvordan prosjektet så ut underveis.

Her tapet jeg ned lysdioder i slangemønsteret, og eksperimenterte med lysdiffusjon via søppelsekken lagret over seg selv (jeg anbefaler det på det sterkeste som et alternativ til akryl hvis du prøver å kutte kostnader. Selv om du må fest det på en annen måte).

Et 10x10 oppsett fungerte for meg, men du foretrekker kanskje 8x12 eller 7x14. Eksperimenter gjerne. Før jeg hadde stereoanlegget mitt, fant jeg en forsterker og koblet den til i brødbrettet, og før det spilte jeg lyd fra den bærbare datamaskinen til kretsen for lydanalyse og slo samtidig "play" på telefonen for å høre den.

Jeg er en stor troende på tiltak to ganger, kuttet en gang. Så uansett hva du gjør, følg den guiden, så er du klar.

Trinn 3: Kretsløp + kode

Kretsløp + kode
Kretsløp + kode
Kretsløp + kode
Kretsløp + kode
Kretsløp + kode
Kretsløp + kode

Koden er tilgjengelig på GitHub.

Brødbrett, lodd til et perfboard, eller design din egen PCB. Uansett hva som fungerer best for deg her, gjør det. Demoen min her kjører på et brødbrett, men når jeg bygger lydplanken vil jeg overføre alt til en PCB. For å få strøm fra adapteren, kutt av hunenden og fjern den svarte isolasjonen. Fjern nok av de faktiske kablene til å skru den til adapterterminalene. Vær alltid forsiktig når du arbeider med AC! Annet enn det, bare noen få ting å merke seg her.

  1. En annen ting er å sørge for at bakkestiene er gode. Du trenger jord fra adapteren til Arduino til aux -inngang, som også kobles til bakken på Logitech BT -mottakeren og derfra bakken på stereoanlegget. Hvis noen av disse er en ødelagt eller dårlig forbindelse, får du en veldig bråkete lydinngang og dermed en veldig bråkete skjerm.
  2. Audio Input Biasing Audio som spilles over aux -ledningen, fra telefonen eller den bærbare datamaskinen eller hvor som helst, spilles av på -2,2 til +2,2V. Arduino er bare i stand til å lese 0 til +5V, så du må forspille lydinngangen. Dette kan oppnås effektivt med op -forsterkere, men hvis strømforbruket ikke er et problem (kanskje du kjøpte en 240W strømforsyning?), Kan det også oppnås med motstander og kondensatorer. Verdiene jeg valgte var forskjellige fordi jeg ikke hadde 10uF kondensatorer tilgjengelig. Du kan leke med simulatoren for å se om det du velger vil fungere.
  3. Fourier Transforms Ethvert prosjekt som bruker Fourier -transformasjoner kommer til å ha en bakgrunnsdel som diskuterer dem. Hvis du allerede har erfaring, flott! Hvis ikke, er alt du trenger å forstå at de tar et øyeblikksbilde av et signal og returnerer informasjon om hvilke frekvenser som er tilstede i det signalet på det tidspunktet. Så hvis du tok Fourier -transformen av synd (440 (2*pi*t)), ville det fortelle deg at en 440Hz frekvens er tilstede i signalet ditt. Hvis du tok Fourier -transformasjonen av 7*sin (440 (2*pi*t)) + 5*sin (2000 (2*pi*t)), ville det fortelle deg at både et 440Hz og 2000Hz signal er tilstede, og de relative gradene de er tilstede i. Det kan gjøre dette for ethvert signal med et hvilket som helst antall komponentfunksjoner. Siden all lyd noen gang bare er en sum av sinusoider, kan vi ta Fourier -transformasjonen av en haug med øyeblikksbilder og se hva som virkelig skjer. Du vil se i koden at vi også bruker et vindu på signalet vårt før vi tar Fourier forvandle. Mer om det finner du her, men en kort forklaring er at signalet vi faktisk ender med å gi transformasjonen er ganske sug, og vinduer fikser det for oss. Din kode vil ikke gå i stykker hvis du ikke bruker dem, men skjermen vil ikke se like ren ut. Det kan være bedre algoritmer tilgjengelig (for eksempel YAAPT), men etter prinsippene i KISS valgte jeg å bruke det var allerede tilgjengelig, som er flere velskrevne Arduino-biblioteker for Fast Fourier Transform, eller FFT.
  4. Kan Arduino virkelig behandle alt i sanntid? For at alt skal vises i sanntid, må Arduino ta 128 prøver, behandle denne FFT, manipulere verdiene for skjermen og oppdatere skjermen veldig raskt. Hvis du ønsket 1/16 noters presisjon ved 150 bpm (nær øvre sluttempo for de fleste poplåtene), må du behandle alt på 100 msek. I tillegg kan det menneskelige øyet se ved 30 FPS, som tilsvarer 30 ms sekvenslengder. Dette blogginnlegget ga meg ikke den største tilliten, men jeg bestemte meg for å se om Arduino ville holde ut. Etter min egen benchmarking var jeg veldig stolt av min R3. Beregningsfasen var uten tvil den begrensende faktoren, men jeg klarte å behandle en 128 FFT UFT -lengde på UINT16s på bare 70 msek. Dette var innenfor lydtoleranser, men over det dobbelte av den visuelle begrensningen. Ved videre forskning fant jeg Arduino FHT, som drar fordel av FFT -symmetri og bare beregner de virkelige verdiene. Med andre ord, det er omtrent dobbelt så raskt. Og helt sikkert, det brakte hele sløyfehastigheten til ~ 30 msek. En annen merknad her om skjermoppløsning. En lengde N FFT samplet ved Fs Hz returnerer N -hyller, hvor kth -skuffen tilsvarer k * Fs/N Hz. Arduino ADC, som leser lydinngangen og tar prøver, kjører normalt på ~ 9,6 kHz. FFT kan imidlertid bare returnere informasjon om frekvenser opp til 1/2 * Fs. Mennesker kan høre opptil 20 kHz, så vi vil helst prøve på> 40 kHz. ADC kan hackes for å kjøre litt raskere, men ikke i nærheten av det. Det beste resultatet jeg så uten å miste stabilitet var ved en 14 kHz ADC. I tillegg var den største FFT jeg kunne behandle for fortsatt å få en sanntidseffekt N = 128. Dette betyr at hver skuff representerer ~ 109Hz, noe som er greit ved høyere frekvenser, men dårlig i den lave enden. En god visualiserer prøver å reservere en oktav for hver takt, som tilsvarer separasjoner ved [16.35, 32.70, 65.41, 130.81, 261.63, 523.25, 1046.50, 2093.00, 4186.01] Hz. 109Hz betyr at de første 2,5 oktavene er i en binge. Jeg klarte fremdeles å få en god visuell effekt, delvis ved å ta gjennomsnittet av hver bøtte, hvor en bøtte er en gruppe søppelbøtter mellom to av disse grensene. Jeg håper dette ikke er forvirrende, og selve koden burde avklare hva som egentlig skjer, men spør gjerne nedenfor om det ikke gir mening.

Trinn 4: Montering

montering
montering
montering
montering
montering
montering

Som jeg sa tidligere, ønsket jeg noe med profesjonell byggekvalitet. Opprinnelig begynte jeg å lime lameller sammen, men en venn (og dyktig maskiningeniør) foreslo en annen tilnærming. Vær oppmerksom på at en 2x6 virkelig er 1,5 "x 5". Vær forsiktig når du arbeider med noen av maskinene nedenfor.

  1. Ta 2x6x8 og slip om nødvendig. Skjær den i 2 "x 6" x 22 "seksjoner. Dette gir deg to lameller for å" brenne "hvis du roter.
  2. Ta hver 22 "seksjon og kjør den gjennom en bordsag langsgående for å lage 1,5" x ~ 1,6 "x 22" lameller. Den siste tredjedelen kan være vanskelig å kutte på en bordsag, så du kan bytte til en båndsag. Bare sørg for at alt er så rett som mulig. I tillegg er 1,6 "en veiledning, og kan gå opp til 1,75". Det var det brikkene mine var, men så lenge de alle er like med hverandre, spiller det ingen rolle for mye. Den begrensende faktoren er akryl på 18 ".
  3. På enden av brikkene merker du en U-form som er 1/8 "på hver side og litt mer enn 3/4" dyp. MERK: Hvis du bruker en annen akryl, vil dybden endres. På <3/4 "diffunderer ikke min akryl i det hele tatt lys. På litt mer diffunderer den helt. Du vil unngå enhver" perle ". Jeg syntes dette Hackaday -innlegget var en god referanse, men å få den perfekte diffusjonen er veldig vanskelig!
  4. Med en ruter på bordet, kutt ut den midtre U -en hele veien nedover lamellen. 22 "er lengre enn du trenger, så ikke bekymre deg for å kutte endene hvis du gjør det. Rutere kan være vanskelige, men få litt som er litt bredere enn halve bredden på U, og vær forsiktig med å kutte mer enn 1/ 8 "materiale om gangen. Gjenta: Ikke prøv å gjøre alt i 2 pasninger. Du vil skade treverket og sannsynligvis skade deg selv. Arbeid med ruteren rotasjon på kutt 1-4, og arbeid mot den på 5-8. Dette sikrer at du har best kontroll over ruterens dreiemoment.
  5. Skjær LED-stripen i 30 LED-seksjoner (bare hvert sett med 3 lysdioder kan adresseres). Du må sannsynligvis desolder noen av tilkoblingene. Legg strimlene langs sporene. Den ene siden skal sitte flush, og den andre skal ha et lite rom for JST -mottakelig, som vil sitte flush. Jeg fikk dessverre ikke bilde av dette, men se vedlagte diagram. Merk lengden her, men ikke klipp noe ennå.
  6. Mål bredden på hver lamell. Med dette og lengden fra trinn 7, laserskåret akryl i de 10 nødvendige rektanglene. Det er bedre å være litt lang enn litt kort. Hvis den blir brent, tørk den av med isopropyl.
  7. Bekreft at hver akryllist har samme lengde som du merket i trinn 5, og skjær deretter lamellen ned til denne lengden.
  8. Du trenger nå to brostykker for å feste akryl. Dette gjør det enkelt å vedlikeholde lysstrimler hvis noe skulle oppstå. Disse brikkene skal være omtrent [din bredde] - 2 * 1/8 "lange med 1/2" firkantede flater, men de skal passe litt tett. Med disse bitene godt på plass og i flukt med lamellens forside, bor hull gjennom midten av hver bro fra utsiden av lamellene. Gjør ditt beste for å gjøre hver drill jevn. Ikke hold broene skrudd inn, men sørg for at de kan være det. Vær forsiktig så du ikke drar skruen for langt ned og klipper veden.
  9. På dette tidspunktet flekker du lamellene og påfører eventuell finish.
  10. Skru nå inn broene. Sørg for at de sitter i flukt! Hvis ikke, må du legge til en slags mellomlegg. Påfør gorillalim (foretrukket) eller varmt lim (som kan doble som et mellomlegg) på broene og fest akryl. Ikke påfør lim langs selve lamellen.
  11. Lodd JST -beholdere på den ene siden av alle unntatt en LED -stripe. Sett dem alle i samme ende som de markerte pilene. Lodd ledningene til JST -pluggene på de andre endene. Du må kanskje fjerne flere ledninger på hver kontakt. Sørg for at tilkoblingene er riktige når du kobler den til! Limet på baksiden av lysdiodene er forferdelig, så ikke stol på det. Legg lysdiodene nedover midtbanen og lim dem ned med gorillalim, vær oppmerksom på den angitte retningen på stripene. Husk at du snekker hele greia.
  12. På den første lamellen loddes lange nok ledninger for å få strøm + jord fra adapteren og signalet fra Arduino.
  13. Skru lamellene og broene ned igjen. Fest kommandostrimler på baksiden (borrelåsstil, 2 medium øverst og nederst eller 1 stor i midten). Gjør alle nødvendige tilkoblinger, og heng på veggen med ~ 3 "mellomrom. Nyt fruktene av arbeidet ditt.

Anbefalt: