Talaan ng mga Nilalaman:

Retro LED Strip Audio Visualizer: 4 na Hakbang (na may Mga Larawan)
Retro LED Strip Audio Visualizer: 4 na Hakbang (na may Mga Larawan)

Video: Retro LED Strip Audio Visualizer: 4 na Hakbang (na may Mga Larawan)

Video: Retro LED Strip Audio Visualizer: 4 na Hakbang (na may Mga Larawan)
Video: Cong TV before and after success 🇵🇭 2024, Nobyembre
Anonim
Image
Image
Listahan ng Mga Bahagi
Listahan ng Mga Bahagi

Bilang isang mag-aaral ng musiko at mag-aaral sa electrical engineering, gusto ko ang anumang proyekto na tumatawid sa dalawang patlang na ito. Nakita ko ang ilang mga audio visualizer ng DIY (narito, dito, dito, at dito), ngunit ang bawat isa ay napalampas kahit isa sa dalawang layunin na naitatag ko para sa aking sarili: isang propesyonal na kalidad ng pagbuo at isang medyo malaking display (isang wimpy 8 * 8 Ang LED matrix ay hindi sasapat dito!). Na may ilang mga likas na talino, at nakaupo sa 40 "x 20", ang audio visualizer na ito ay nakamit ang parehong mga layunin.

Paumanhin nang maaga para sa mga patayong larawan. Marami sa kanila ang kinuha para sa social media.

Hakbang 1: Listahan ng Mga Bahagi

Marami na akong mga bahagi na nakahiga na. Ang mga link ay pulos para sa sanggunian. Mangyaring huwag bumili ng hindi kinakailangang mamahaling mga sangkap.

Elektronika

  1. WS2811 60LEDS / m @ 5m, IP30 (Non-Waterproof), Addressable - Ang mga ito ay mas mura pagkatapos ng WS2812 noong panahong iyon. Mayroon kang ilang leeway dito ngunit siguraduhin na ang mga sukat ay tama at maaari mong talagang makipag-usap sa mga LED. Tandaan din na ang WS2811s ay 12V habang ang WS2812s ay 5V.
  2. 9 x 3-Pin na Konektor ng JST + Mga Receptacle
  3. DC 12V 20A (240W) Power Supply - Una kong binalak sa paggawa ng 2 LED strips, at nais ang isang blow-your-house-down speaker set. Ang bawat light strip ay 90W sa pinakapangit na sitwasyon (hindi ko pa nasusukat upang kumpirmahin), na nagiwan sa akin ~ 60W para sa mga speaker + amplifier. Ang pagpipiliang 15A ay $ 4 lamang na mas mababa pa rin.
  4. Power cord (3 Prong)
  5. Arduino Uno - Mayroon akong nakahiga na R3 kaya ginamit ko iyon. Maaari kang makahanap ng isang mas murang pagpipilian mula sa isa sa mga knockoff o ibang vendor.
  6. TRRS Breakout - Para sa aux input
  7. L7805 5V Regulator - Ang anumang 5V regulator na tumatanggap ng isang 12V input ay gagana.
  8. 330 nF, 100 nF capacitors - bawat L7805 datasheet
  9. 2 x 10kR, 2 x 1kR, 2 x 100 nF capacitors - para sa bias ng pag-input ng audio
  10. Stereo Receiver - gagana ang anumang vintage stereo receiver hangga't mayroon itong aux input (3.5mm o RCA). Kinuha ko ang isang Panasonic RA6600 na off craigslist sa halagang $ 15. Inirerekumenda kong suriin ang Goodwill, Craigslist, at iba pang mga matipid na tindahan para sa katulad. *
  11. Mga nagsasalita - Hindi nagsasalita ng BT. Isang set ng speaker lamang. Magbayad ng pansin sa kung ano ang impedance na katugma sa iyong tatanggap. Natagpuan ko ang isang hanay ng 3 20W (= malakas) na nagsasalita sa Goodwill para sa $ 6, at kasama iyon ng isang "gitna" at dalawang "harap" na mga nagsasalita.
  12. Logitech BT Audio Adapter - maaaring mag-stream ng audio ang aparatong ito sa mga stereo speaker at sa iyong circuit
  13. RCA male to RCA male cable
  14. Aux cord

Hardware

  1. 2x6 (8ft) - Hindi ginagamot ang presyon. Dapat ay ~ $ 6 o mas mababa pa sa HD o kay Lowe
  2. 40% Light Transmission Acrylic - Nag-order ako ng 18 "x 24" x 1/8 ", at sa teknikal na 17.75" x 23.5 ". Panatilihin ito sa pambalot kapag nagpunta ka sa cut ng laser.
  3. Wood Stain - Kailangan mo lamang ng isang maliit na lata. Gumamit ako ng Minwax red mahogany at napakagandang lumabas. Tiyak na inirerekumenda ko ang isang madilim na tono. Orihinal na sinubukan ko ang panlalawigan at hindi ito maganda.
  4. Lacquer - Una, suriin ang video na ito ni Steve Ramsey at magpasya para sa iyong sarili kung ano ang pinakamahusay na gagana. Nakuha ko ang isang spray can ng semi-gloss (walang magagamit na gloss) at totoo lang, hindi ito gaanong nagawa. Ngunit isa lang din ang ginawa kong amerikana dahil sa paghihigpit ng oras.
  5. 40 x 1/2 "Mga kahoy na tornilyo - Mayroon akong bilog na ulo na magagamit sa akin ngunit inirerekumenda ko ang paggamit ng flat sa itaas kung maaari mo. Sa palagay ko ay hindi ito makagambala sa kalidad ng pagbuo ngunit huwag mag-atubiling magtanong muna sa sinumang mas pamilyar sa paggawa ng kahoy.
  6. Scrap kahoy, gorilya na pandikit, mainit na pandikit, panghinang, kawad, at mga strip ng utos (istilo ng velcro, 20 daluyan o 10 malaki)

* Plano ko sa pagbuo ng isang sound bar upang ganap na gawin ang proyektong ito "mula sa simula," na papalit sa 9-13 sa itaas. Inaasahan kong i-update ang itinuturo na ito sa pagtatapos ng tag-init.

Hakbang 2: Prototyping

Prototyping
Prototyping

Ang seksyon na ito ay hindi isang bagay na kailangan mong makumpleto, ngunit nais kong ipakita kung ano ang hitsura ng proyekto habang tumatagal.

Dito, na-tap down ko ang mga LED sa pattern ng ahas, at nag-eksperimento sa light diffusion sa pamamagitan ng basurahan na nakalatag sa tuktok ng sarili nito (lubos kong inirerekumenda na bilang isang kahalili sa acrylic kung sinusubukan mong bawasan ang mga gastos. Kahit na kailangan mong ilakip ito sa iba't ibang paraan).

Ang isang 10x10 na setup ay gumagana para sa akin, ngunit maaaring gusto mo ng 8x12 o 7x14. Huwag mag-atubiling mag-eksperimento. Bago ako magkaroon ng aking stereo, nakakita ako ng isang amplifier at isinabit ito sa aking breadboard, at bago iyon, nagpatugtog ako ng audio mula sa aking laptop patungo sa circuit para sa pagtatasa ng audio at sabay na pinindot ang "pag-play" sa aking telepono upang marinig ito.

Ako ay isang malaking naniniwala sa sukat ng dalawang beses, gupitin nang isang beses. Kaya't anuman ang gawin mo, sundin ang patnubay na iyon at maitakda ka.

Hakbang 3: Circuitry + Code

Circuitry + Code
Circuitry + Code
Circuitry + Code
Circuitry + Code
Circuitry + Code
Circuitry + Code

Magagamit ang code sa GitHub.

Breadboard, solder sa isang perfboard, o idisenyo ang iyong sariling PCB. Anumang pinakamahusay na gumagana para sa iyo dito, gawin ito. Ang aking demo dito ay tumatakbo sa isang breadboard, ngunit kapag itinayo ko ang soundbar ililipat ko ang lahat sa isang PCB. Upang makakuha ng lakas mula sa adapter, putulin ang babaeng dulo at alisin ang itim na pagkakabukod. I-strip ng sapat ang mga aktwal na cable upang i-tornilyo ito sa mga terminal ng adapter. Palaging maging maingat sa pagtatrabaho sa AC! Maliban dito, ilan lamang sa mga bagay na dapat tandaan dito.

  1. Mga Landas sa Daigdig Ang isa pang bagay ay upang matiyak na ang iyong mga landas sa lupa ay mabuti. Kailangan mo ng ground mula sa adapter hanggang sa Arduino upang ma-aux input, na magkokonekta rin sa lupa sa tatanggap ng Logitech BT at mula doon sa lupa sa stereo. Kung ang alinman sa mga ito ay nasira o hindi magandang koneksyon, makakakuha ka ng isang napakaingay na audio input at samakatuwid isang napakaingay na display.
  2. Ang Audio Input BiasingAudio ay nilalaro sa aux cord, mula sa iyong telepono o laptop o kung saan man, maglaro sa -2.2 hanggang + 2.2V. May kakayahan lang ang Arduino na basahin ang 0 hanggang + 5V, kaya kailangan mong bias ang audio input. Magagawa itong mahusay sa mga op amp, ngunit kung ang pagkonsumo ng kuryente ay hindi isang isyu (marahil ay bumili ka ng isang 240W power supply?), Maaari din itong magawa sa mga resistors at capacitor. Ang mga halagang pinili ko ay magkakaiba dahil wala akong 10uF capacitor sa kamay. Maaari kang maglaro kasama ang simulator upang makita kung gagana ang pinili mo.
  3. Fourier TransformsAng anumang proyekto na gumagamit ng Fourier transforms ay magkakaroon ng seksyon sa background na tinatalakay ang mga ito. Kung mayroon ka nang karanasan, mahusay! Kung hindi, ang kailangan mo lamang maunawaan ay kumuha sila ng isang snapshot ng isang senyas at ibalik ang impormasyon tungkol sa kung anong mga frequency ang naroroon sa signal na iyon sa puntong iyon ng oras. Kaya't kung kinuha mo ang Fourier na pagbabago ng kasalanan (440 (2 * pi * t)), sasabihin nito sa iyo na ang dalas ng 440Hz ay naroroon sa iyong signal. Kung kinuha mo ang Fourier transform ng 7 * sin (440 (2 * pi * t)) + 5 * sin (2000 (2 * pi * t)), sasabihin nito sa iyo na ang parehong isang 440Hz at 2000Hz signal ay naroroon, at ang kamag-anak na degree kung saan sila naroroon. Maaari itong gawin ito para sa anumang signal na may anumang bilang ng mga function ng sangkap. Dahil ang lahat ng audio kailanman ay isang kabuuan lamang ng sinusoids, maaari nating gawin ang Fourier transform ng isang bungkos ng mga snapshot at makita kung ano talaga ang nangyayari. Makikita mo sa code na naglalagay din kami ng isang window sa aming signal bago kunin ang Fourier magbago Higit pa sa mga iyon ay matatagpuan dito, ngunit ang maikling paliwanag ay ang signal na talagang napupunta namin sa pagbibigay ng pagbabago na medyo sumuso, at inaayos ito ng mga bintana para sa amin. Ang code mo ay hindi masisira kung hindi mo gagamitin ang mga ito, ngunit ang display ay hindi magmumukhang malinis. Maaaring may mas mahusay na mga magagamit na algorithm (halimbawa, YAAPT), ngunit ang pagsunod sa mga prinsipyo ng KISS, inihalal kong gamitin kung ano magagamit na, na kung saan ay maraming mahusay na nakasulat na mga aklatan ng Arduino para sa Fast Fourier Transform, o FFT.
  4. Maaari ba talagang iproseso ng Arduino ang lahat sa realtime? Para sa lahat na lumitaw sa realtime, kailangang kumuha ang Arduino ng 128 na sample, iproseso ang FFT na iyon, manipulahin ang mga halaga para sa display, at i-update ang display nang napakabilis. Kung nais mo ang 1/16 na tala ng katumpakan sa 150bpm (malapit sa itaas na tempo ng karamihan sa mga pop kanta), kakailanganin mong iproseso ang lahat sa 100msec. Bilang karagdagan, ang mata ng tao ay maaaring makita sa 30FPS, na tumutugma sa haba ng 30msec na frame. Ang blog post na ito ay hindi nagbigay sa akin ng pinakadakilang kumpiyansa, ngunit nagpasya akong makita para sa aking sarili kung ang Arduino ay tatayo. Matapos ang aking sariling benchmarking, Ipinagmamalaki ko ang aking R3. Ang yugto ng pagkalkula ay ang malilimit na kadahilanan, ngunit nakapagproseso ako ng isang 128 haba na FFT ng UINT16s sa 70msec lamang. Nasa loob ito ng mga pagpapaubaya sa audio, ngunit higit sa doble ang pagpipigil sa visual. Sa karagdagang pananaliksik, nakita ko ang Arduino FHT, na sinasamantala ang FFT symmetry at kinakalkula lamang ang mga tunay na halaga. Sa madaling salita, ito ay tungkol sa 2x nang mas mabilis. At sapat na sigurado, nagdala ito ng buong bilis ng loop sa ~ 30msec. Isa pang tala dito sa resolusyon ng pagpapakita. Ang haba ng N FFT na na-sample sa Fs Hz ay nagbabalik ng mga N bin, kung saan ang kth bin ay tumutugma sa k * Fs / N Hz. Ang Arduino ADC, na binabasa ang audio input at pagkuha ng mga sample, ay karaniwang tumatakbo sa ~ 9.6kHz. Gayunpaman, maaari lamang ibalik ng FFT ang impormasyon tungkol sa mga frequency hanggang sa 1/2 * Fs. Ang mga tao ay maaaring makarinig ng hanggang sa 20kHz, kaya't nais naming sampol sa> 40kHz. Ang ADC ay maaaring ma-hack upang tumakbo nang medyo mas mabilis, ngunit kahit saan malapit doon. Ang pinakamagandang resulta na nakita ko nang hindi nawawala ang katatagan ay sa isang 14kHz ADC. Bilang karagdagan, ang pinakamalaking FFT na maipoproseso ko upang makakuha pa rin ng isang realtime na epekto ay N = 128. Nangangahulugan ito na ang bawat basurahan ay kumakatawan sa ~ 109Hz, na kung saan ay pagmultahin sa mas mataas na mga frequency ngunit masama sa mababang dulo. Sinusubukan ng isang mahusay na visualizer na magreserba ng isang oktaba para sa bawat bar, na tumutugma sa mga paghihiwalay sa [16.35, 32.70, 65.41, 130.81, 261.63, 523.25, 1046.50, 2093.00, 4186.01] Hz. Ang ibig sabihin ng 109Hz ay ang unang 2.5 oktaba ay nasa isang basurahan. Nakakuha pa rin ako ng isang mahusay na visual effects, sa bahagi sa pamamagitan ng pagkuha ng average ng bawat bucket, kung saan ang isang bucket ay isang pangkat ng mga bins sa pagitan ng dalawa sa mga hangganan na ito. Inaasahan kong hindi ito nakalilito, at ang code mismo ay dapat linawin kung ano talaga ang nangyayari, ngunit huwag mag-atubiling magtanong sa ibaba kung wala itong kahulugan.

Hakbang 4: Assembly

Assembly
Assembly
Assembly
Assembly
Assembly
Assembly

Tulad ng sinabi ko kanina, gusto ko ang isang bagay na may kalidad na propesyonal na pagbuo. Orihinal na nagsimula akong magkakasama ng mga slats ng kahoy na gluing, ngunit isang kaibigan (at dalubhasang mechanical engineer) ang nagmungkahi ng ibang diskarte. Tandaan na ang isang 2x6 ay talagang 1.5 "x 5". At mangyaring maging maingat na nagtatrabaho sa alinman sa mga ibaba makinarya.

  1. Kunin ang iyong 2x6x8 at buhangin kung kinakailangan. Gupitin ito sa 2 seksyon na "x 6" x 22 ". Binibigyan ka nito ng dalawang slat upang" masunog "kung magkagulo.
  2. Dalhin ang bawat seksyon na 22 "at patakbuhin ito sa isang table saw longway upang makagawa ng 1.5" x ~ 1.6 "x 22" slats. Ang huling ikatlong maaaring mahirap i-cut sa isang talahanayan nakita, kaya maaari kang lumipat sa isang lagari ng banda. Siguraduhin lamang na ang lahat ay tuwid na maaari. Bilang karagdagan, ang 1.6 "ay isang gabay, at maaaring umakyat sa 1.75". Iyon ang mga piraso ko, ngunit hangga't pantay silang lahat sa bawat isa hindi ito masyadong mahalaga. Ang naglilimita kadahilanan ay ang acrylic sa 18 ".
  3. Sa dulo ng mga piraso, markahan ang isang U-hugis na 1/8 "sa magkabilang panig at bahagyang higit sa 3/4" ang malalim. TANDAAN: Kung gumagamit ka ng ibang acrylic, magbabago ang lalim. Sa <3/4 ", ang aking acrylic ay hindi nagkakalat ng ilaw. Sa kaunti pa, ganap itong nagkakalat. Nais mong maiwasan ang anumang" pagiging malusog. "Natagpuan ko ang post na ito sa Hackaday na maging isang mahusay na sanggunian, ngunit ang pagkuha ng perpektong pagsasabog ay napakahirap!
  4. Gamit ang isang tabletop router, gupitin ang gitnang U hanggang sa slat. Ang 22 "ay mas mahaba kaysa sa kailangan mo, kaya huwag mag-alala tungkol sa pagpuputol ng mga dulo kung gagawin mo. Ang mga router ay maaaring maging nakakalito, ngunit makakuha ng kaunting bahagyang mas malawak kaysa sa kalahati ng lapad ng U at mag-ingat sa pagputol ng higit sa 1 / 8 "ng materyal nang paisa-isa. Ulitin: Huwag subukang gawin ang lahat sa 2 pass. Masisira mo ang kahoy at malamang saktan mo ang iyong sarili. Makipagtulungan sa pag-ikot ng router sa pagbawas sa 1-4, at gumana laban dito sa 5-8. Tinitiyak nito na mayroon kang pinakamahusay na kontrol sa metalikang kuwintas ng router.
  5. Gupitin ang LED strip sa mga seksyon na 30-LED (bawat set lamang ng 3 LEDs ay maaaring tugunan). Marahil ay kakailanganin mong sirain ang ilan sa mga koneksyon. Itabi ang mga piraso sa mga track. Ang isang gilid ay dapat umupo sa flush, at ang iba pa ay dapat magkaroon ng isang maliit na silid para sa JST na katanggap-tanggap, na kung saan ay uupo sa flush. Sa kasamaang palad hindi ako nakakuha ng larawan ng ito, ngunit tingnan ang nakalakip na diagram. Markahan ang haba dito, ngunit huwag gupitin ang anupaman.
  6. Sukatin ang lapad ng bawat slat. Gamit ito at ang haba mula sa hakbang 7, gupitin ng laser ang acrylic sa 10 kinakailangang mga parihaba. Mas mahusay na maging medyo mahaba kaysa sa bahagyang maikli. Kung nasunog ito, punasan ito ng isopropyl.
  7. Kumpirmahing ang bawat acrylic slat ay nakaupo sa parehong haba na iyong minarkahan sa hakbang 5, pagkatapos ay gupitin ang slat hanggang sa haba na ito.
  8. Kailangan mo ngayon ng dalawang piraso ng tulay upang ikabit ang acrylic. Pinapayagan nito para sa madaling pagpapanatili ng mga light strips kung dapat may lumabas. Ang mga piraso na ito ay dapat na humigit-kumulang [iyong lapad] - 2 * 1/8 "ang haba na may 1/2" parisukat na mukha, ngunit dapat silang magkasya nang kaunti. Sa mga piraso na ito na matatag sa lugar at i-flush sa harap ng slats, mag-drill ng mga butas sa gitna ng bawat tulay mula sa mga panlabas na slats. Gawin ang iyong makakaya upang gawing pantay ang bawat drill. Huwag panatilihing naka-screw in ang mga tulay, ngunit tiyaking makakaya nila. Maingat na hindi itaboy ang tornilyo sa sobrang layo at hatiin ang kahoy.
  9. Sa puntong ito, mantsa ang mga slats at ilapat ang anumang tapusin.
  10. Ngayon tornilyo sa mga tulay. Siguraduhin na nakaupo silang flush! Kung hindi, kakailanganin mong magdagdag ng ilang uri ng shim. Mag-apply ng gorilla glue (ginustong) o mainit na pandikit (na maaaring doble bilang isang shim) sa mga tulay at ilakip ang acrylic. Huwag maglapat ng anumang malagkit sa slat mismo.
  11. Ang mga solder na container ng JST sa isang gilid ng lahat ngunit isang LED strip. Ilagay ang lahat sa parehong dulo tulad ng ibinigay ng mga minarkahang arrow. Paghinang ng mga wire ng mga plug ng JST papunta sa iba pang mga dulo. Maaaring kailanganin mong i-strip ang higit pang kawad sa bawat konektor. Tiyaking tama ang mga koneksyon kapag naka-plug in! Ang malagkit sa likod ng mga LEDs ay kahila-hilakbot, kaya huwag tiwala ito. Itabi ang mga LED sa gitnang track at idikit ito sa gorilya na pandikit, binibigyang pansin ang ipinahiwatig na direksyon sa mga piraso. Tandaan na kinukuha mo ang buong bagay.
  12. Sa unang slat, solder na may sapat na mga wire upang makakuha ng lakas + ground mula sa adapter at ang signal mula sa Arduino.
  13. I-tornilyo ang mga slats at tulay pabalik. Ikabit ang mga strip ng utos sa likod (istilo ng velcro, 2 daluyan sa itaas at ibaba o 1 malaki sa gitna). Gawin ang lahat ng kinakailangang koneksyon, at mag-hang sa dingding na ~ 3 "hiwalay. Masiyahan sa mga bunga ng iyong paggawa.

Inirerekumendang: