INHOUDSOPGAWE:

Retro LED Strip Audio Visualizer: 4 stappe (met foto's)
Retro LED Strip Audio Visualizer: 4 stappe (met foto's)

Video: Retro LED Strip Audio Visualizer: 4 stappe (met foto's)

Video: Retro LED Strip Audio Visualizer: 4 stappe (met foto's)
Video: Дневник хранящий жуткие тайны. Переход. Джеральд Даррелл. Мистика. Ужасы 2024, November
Anonim
Image
Image
Onderdele lys
Onderdele lys

As musikant en student in elektriese ingenieurswese hou ek van enige projek wat hierdie twee velde sny. Ek het 'n paar DIY -klankvisualiseerders gesien (hier, hier, hier en hier), maar elkeen het ten minste een van die twee doelwitte wat ek vir myself gestel het, misgeloop: 'n professionele boukwaliteit en 'n relatief groot vertoning (8 x 8) LED -matriks sou hier nie voldoende wees nie!). Met 'n vintage styl en 'n grootte van 40 x 20 cm, bereik hierdie klankvisualiseerder albei hierdie doelwitte.

By voorbaat verskoning vir vertikale foto's. Baie van hulle is vir sosiale media geneem.

Stap 1: Onderdele lys

Ek het al verskeie van hierdie dele al laat rondlê. Die skakels is bloot vir verwysing. Moet asseblief nie onnodig duur komponente koop nie.

Elektronika

  1. WS2811 60LEDS/m @ 5m, IP30 (nie -waterdig), adresbaar - dit was destyds goedkoper as WS2812. U het 'n mate van ruimte hier, maar maak seker dat die afmetings korrek is en dat u eintlik met die LED's kan praat. Let ook daarop dat WS2811's 12V is, terwyl WS2812s 5V is.
  2. 9 x 3-pins JST-verbindings + houers
  3. DC 12V 20A (240W) kragtoevoer-Ek het aanvanklik beplan om 2 LED-stroke te maak, en wou 'n luidsprekerstel hê. Elke ligstrook is 90W in die ergste geval (ek het nie gemeet om te bevestig nie), wat my ~ 60W gelaat het vir luidsprekers + versterker. Die 15A -opsie was in elk geval slegs $ 4 minder.
  4. Netsnoer (3 tande)
  5. Arduino Uno - ek het 'n R3 laat lê, so ek het dit gebruik. U kan moontlik 'n goedkoper opsie vind by een van die afslagpunte of 'n ander verskaffer.
  6. TRRS Breakout - Vir aux input
  7. L7805 5V -reguleerder - Enige 5V -reguleerder wat 'n 12V -inset aanvaar, werk.
  8. 330 nF, 100 nF kapasitors - volgens L7805 datablad
  9. 2 x 10kR, 2 x 1kR, 2 x 100 nF kapasitors - vir voorspanning van klankinvoer
  10. Stereo -ontvanger - enige vintage stereo -ontvanger werk solank dit 'n aux -ingang (3,5 mm of RCA) het. Ek het 'n Panasonic RA6600 op craigslist gekry vir $ 15. Ek beveel aan dat u Goodwill, craigslist en ander tweedehandse winkels kyk vir soortgelyke.*
  11. Sprekers - nie BT -luidsprekers nie. Net 'n luidsprekerstel. Gee aandag aan die impedansie wat met u ontvanger versoenbaar is. Ek het 'n stel van 3 20W (= harde) luidsprekers vir $ 6 by Goodwill gekry, en dit het 'n "middel" en twee "voor" luidsprekers.
  12. Logitech BT Audio Adapter - hierdie toestel kan klank na die stereo luidsprekers en na u kring stroom
  13. RCA -manlike na RCA -manlike kabel
  14. Aux koord

Hardeware

  1. 2x6 (8ft) - Nie onder druk behandel nie. Behoort ~ $ 6 of minder te wees by HD of Lowe's
  2. 40% akriel -transmissie - Ek bestel 18 "x 24" x 1/8 ", en dit was tegnies 17,75" x 23,5 ". Hou dit in die verpakking as u na die laser sny.
  3. Houtvlek - u benodig slegs 'n klein blikkie. Ek het Minwax rooi mahonie gebruik en dit het baie mooi uitgekom. Ek beveel beslis 'n donker toon aan. Ek het oorspronklik provinsiaal probeer, en dit het nie so lekker gelyk nie.
  4. Lak - Kyk eers na hierdie video van Steve Ramsey en besluit self wat die beste werk. Ek het 'n spuitblik halfglans gekry (geen glans was beskikbaar nie) en eerlik, dit het nie so veel gedoen nie. Maar ek het ook net een laag gedoen weens tydsbeperkings.
  5. Houtskroewe van 40 x 1/2 duim - ek het 'n ronde kop beskikbaar, maar ek beveel aan dat u 'n plat blad gebruik as ek kan.
  6. Afvalhout, gorillagom, warm gom, soldeersel, draad en opdragstroke (klittenbandstyl, 20 medium of 10 groot)

* Ek is van plan om 'n klankbalk te bou om hierdie projek heeltemal "van nuuts af" te maak, wat 9-13 hierbo vervang. Ek hoop om hierdie instruksies teen die einde van die somer daarmee op te dateer.

Stap 2: Prototipering

Prototipering
Prototipering

Hierdie afdeling is nie iets wat u moet voltooi nie, maar ek wil wys hoe die projek daaruit gelyk het.

Hier het ek LED's in die slangpatroon vasgemaak, en ek eksperimenteer met ligverspreiding via 'n asblik wat bo -oor homself gelê is (ek beveel dit ten sterkste aan as 'n alternatief vir die akriel as u koste wil besnoei. heg dit op 'n ander manier aan).

'N Opstelling van 10x10 het vir my gewerk, maar u verkies moontlik 8x12 of 7x14. Eksperimenteer gerus. Voordat ek my stereo gehad het, het ek 'n versterker gevind en dit in my broodbord aangesluit, en voor dit het ek klank van my skootrekenaar na die kring gespeel vir klankanalise, en terselfdertyd op die "speel" op my telefoon geslaan om dit te hoor.

Ek is twee keer 'n groot gelowige, een keer gesny. Dus, wat u ook al doen, volg die gids, en u sal gereed wees.

Stap 3: stroombaan + kode

Stroombaan + kode
Stroombaan + kode
Stroombaan + kode
Stroombaan + kode
Stroombaan + kode
Stroombaan + kode

Kode is beskikbaar op GitHub.

Breadboard, soldeer tot 'n perfboard, of ontwerp u eie PCB. Wat hier ook die beste vir u werk, doen dit. My demo hier loop op 'n broodbord, maar as ek die klankbalk bou, sal ek alles na 'n PCB oordra. Om die adapter uit die stroom te kry, sny die wyfie af en verwyder die swart isolasie. Trek genoeg van die werklike kabels af om dit aan die adapterklemme te skroef. Wees altyd versigtig om met AC te werk! Behalwe dit, is hier net 'n paar dinge om op te let.

  1. Een ander ding is om seker te maak dat u grondpaaie goed is. U benodig grond van die adapter na die Arduino na die aux -ingang, wat ook op die grond op die Logitech BT -ontvanger aansluit en van daaruit die grond op die stereo. As een hiervan 'n gebroke of slegte verbinding het, kry u 'n baie raserige klankinvoer en dus 'n baie raserige vertoning.
  2. Audio Input Biasing Audio wat oor die aux -snoer gespeel word, vanaf u telefoon of skootrekenaar of waar ook al, speel op -2,2 tot +2,2V. Arduino kan slegs 0 tot +5V lees, dus moet u die klankinvoer vooroordeel. Dit kan doeltreffend bereik word met op -ampère, maar as kragverbruik nie 'n probleem is nie (miskien het u 'n 240 W -kragtoevoer gekoop?), Kan dit ook met weerstande en kapasitors bereik word. Die waardes wat ek gekies het, was anders omdat ek geen 10uF -kapasitors byderhand gehad het nie. U kan met die simulator speel om te sien of dit wat u kies, sal werk.
  3. Elke projek wat Fourier -transformasies gebruik, sal 'n agtergrondafdeling hê wat dit bespreek. As jy reeds ondervinding het, wonderlik! Indien nie, hoef u net te verstaan dat hulle 'n momentopname van 'n sein neem en inligting teruggee oor watter frekwensies op daardie tydstip in die sein voorkom. As u dus die Fourier -transform van sonde (440 (2*pi*t)) neem, sou dit u vertel dat 'n 440Hz -frekwensie in u sein voorkom. As u die Fourier -transform van 7*sin (440 (2*pi*t)) + 5*sin (2000 (2*pi*t)) neem, sou dit u vertel dat beide 'n 440Hz- en 2000Hz -sein teenwoordig is, en die relatiewe mate waarin hulle teenwoordig is. Dit kan dit doen vir enige sein met 'n aantal komponentfunksies. Aangesien alle klank slegs 'n som van sinusoïede is, kan ons die Fourier -transformasie van 'n klompie kiekies neem en sien wat werklik aan die gang is. transformeer. Meer hieroor kan hier gevind word, maar 'n kort verduideliking is dat die sein dat ons eintlik die transformasie nogal gee, en vensters dit vir ons regmaak. U kode breek nie as u dit nie gebruik nie, maar die skerm sal nie so skoon lyk nie. Daar is moontlik beter algoritmes beskikbaar (byvoorbeeld YAAPT), maar volgens die beginsels van KISS het ek besluit om te gebruik wat was reeds beskikbaar, wat verskeie goedgeskrewe Arduino-biblioteke is vir die Fast Fourier Transform, of FFT.
  4. Kan die Arduino regtig alles intyds verwerk? Om alles intyds te laat verskyn, moet die Arduino 128 monsters gryp, die FFT verwerk, die waardes vir die skerm manipuleer en die skerm baie vinnig opdateer. As u 1/16 noot presisie teen 150 bpm wou hê (naby die boonste tempo van die meeste popliedjies), moet u alles in 100 msek verwerk. Boonop kan die menslike oog by 30FPS sien, wat ooreenstem met 30msec raamlengtes. Hierdie blogpos het my nie die grootste vertroue gegee nie, maar ek het besluit om self te kyk of Arduino sou hou. Na my eie maatstaf was ek baie trots op my R3. Die berekeningsfase was verreweg die beperkende faktor, maar ek kon 'n FFT van 128 lengte UINT16s in slegs 70 msek verwerk. Dit was binne klankverdraagsaamhede, maar meer as dubbel die visuele beperking. By verdere navorsing het ek Arduino FHT gevind, wat voordeel trek uit FFT -simmetrie en slegs die werklike waardes bereken. Met ander woorde, dit is ongeveer 2x so vinnig. En seker, dit het die hele lussnelheid tot ~ 30 msek gebring. Nog 'n opmerking hier oor die resolusie van die skerm. 'N Lengte N FFT wat bemonster word by Fs Hz gee N bakke terug, waar die kth bin ooreenstem met k * Fs/N Hz. Die Arduino ADC, wat die klankinvoer lees en monsters neem, loop gewoonlik op ~ 9.6kHz. Die FFT kan egter slegs inligting oor frekwensies tot 1/2 * Fs teruggee. Mense kan tot 20 kHz hoor, dus ons wil verkieslik meer as 40 kHz neem. Die ADC kan gekap word om 'n bietjie vinniger te werk, maar nie naby nie. Die beste resultaat wat ek gesien het sonder om stabiliteit te verloor, was by 'n 14kHz ADC. Boonop was N = 128 die grootste FFT wat ek kon verwerk om steeds 'n intydse effek te kry. Dit beteken dat elke houer ~ 109Hz verteenwoordig, wat goed is by hoër frekwensies, maar sleg aan die lae kant. 'N Goeie visualiseerder probeer 'n oktaaf vir elke maat reserveer, wat ooreenstem met die skeidings by [16.35, 32.70, 65.41, 130.81, 261.63, 523.25, 1046.50, 2093.00, 4186.01] Hz. 109Hz beteken dat die eerste 2,5 oktawe almal in een as is. Ek kon nog steeds 'n goeie visuele effek kry, deels deur die gemiddelde van elke emmer te neem, waar 'n emmer 'n groep asblikke tussen twee van hierdie grense is. Ek hoop dit is nie verwarrend nie, en die kode self moet verduidelik wat werklik aan die gang is, maar vra gerus hieronder of dit nie sin maak nie.

Stap 4: Montering

Vergadering
Vergadering
Vergadering
Vergadering
Vergadering
Vergadering

Soos ek vroeër gesê het, wou ek iets met professionele boukwaliteit hê. Oorspronklik het ek hout begin plak om latte aan mekaar te plak, maar 'n vriend (en 'n vaardige meganiese ingenieur) het 'n ander benadering voorgestel. Let daarop dat 'n 2x6 regtig 1,5 "x 5" is. En wees versigtig met die onderstaande masjinerie.

  1. Neem u 2x6x8 en skuur indien nodig. Sny dit in 2 "x 6" x 22 "dele. Dit gee jou twee latte om te" brand "as jy deurmekaar raak.
  2. Neem elke 22 "-afdeling en voer dit lank deur 'n tafelsaag om 1,5" x ~ 1,6 "x 22" -latte te maak. Die laaste derde kan moeilik wees om op 'n tafelsaag te sny, sodat u kan oorskakel na 'n bandsaag. Maak net seker dat alles so reguit as moontlik is. Boonop is 1,6 "'n gids en kan dit tot 1,75" styg. Dit was wat my stukke was, maar solank hulle almal gelyk is, maak dit nie veel saak nie. Die beperkende faktor is die akriel by 18 ".
  3. Merk aan die einde van die stukke 'n U-vorm wat aan elke kant 1/8 "in is en effens meer as 3/4" diep. LET WEL: as u 'n ander akriel gebruik, sal die diepte verander. By <3/4 "versprei my akriel glad nie lig nie. By effens meer versprei dit heeltemal. U wil enige" kraligheid "vermy. Ek vind hierdie Hackaday -pos 'n goeie verwysing, maar om die perfekte diffusie te kry baie moeilik!
  4. Met 'n tafelbladrouter, sny die middelste U heeltemal langs die lat af. Die 22 "is langer as wat u benodig, dus moenie bekommerd wees om die punte te sny nie. Routers kan lastig wees, maar kry 'n bietjie wat effens wyer is as die helfte van die breedte van die U, en wees versigtig om meer as 1/ 8 "materiaal op 'n slag. Herhaal: Moenie alles in twee keer probeer nie. Jy sal die hout beskadig en jouself waarskynlik seermaak. Werk met die router se rotasie op snitte 1-4, en werk daarteen op 5-8. Dit verseker dat u die beste beheer oor die koppel van die router het.
  5. Sny die LED-strook in 30-LED-afdelings (slegs elke stel van 3 LED's kan aangespreek word). U sal waarskynlik 'n paar verbindings moet ontbind. Lê die stroke langs die spore. Die een kant moet spoel, en die ander kant moet 'n bietjie ruimte hê vir die JST -ontvangs, wat spoel. Ek het ongelukkig nie 'n prentjie hiervan gekry nie, maar sien die aangehegte diagram. Merk die lengte hier, maar sny nog niks.
  6. Meet die breedte van elke lamel. Met hierdie en die lengte van stap 7, sny die akriel laser in die 10 nodige reghoeke. Dit is beter om effens lank as effens kort te wees. As dit verbrand word, vee dit af met isopropyl.
  7. Bevestig dat elke akriellat dieselfde lengte het as wat u in stap 5 gemerk het, en sny dan die lat tot hierdie lengte af.
  8. U benodig nou twee brugstukke om die akriel vas te maak. Dit maak dit maklik om ligstroke te onderhou as daar iets sou ontstaan. Hierdie stukke moet ongeveer [u breedte] - 2 * 1/8 "lank wees met 1/2" vierkantige vlakke, maar hulle moet 'n bietjie styf pas. Met hierdie stukke stewig op hul plek en gelyk met die voorkant van die latte, boor u gate deur die middel van elke brug vanaf die buitekant van die latte. Doen u bes om elke boor gelyk te maak. Moenie die brûe vasdraai nie, maar maak seker dat dit die geval is. Moenie die skroef te ver wegdraai en die hout skeur nie.
  9. Op hierdie punt, vlek die latte en pas enige afwerking toe.
  10. Skroef nou die brûe in. Maak seker dat hulle spoel! As dit nie die geval is nie, moet u 'n soort onderkant byvoeg. Dien gorillagom (verkieslik) of warm gom (wat kan verdubbel) op die brûe en plak die akriel vas. Moet geen kleefstof langs die lat self aanbring nie.
  11. Soldeer JST -houers aan die een kant van alles behalwe een LED -strook. Plaas hulle almal op dieselfde kant as wat deur die gemerkte pyle aangedui word. Soldeer die drade van die JST -proppe aan die ander ente. Miskien moet u meer draad aan elke aansluiting trek. Maak seker dat die verbindings korrek is as u dit aansluit! Die kleefmiddel aan die agterkant van die LED's is verskriklik, so moenie dit vertrou nie. Plaas die LED's in die middelste baan en plak dit vas met gorillagom, en let op die aangeduide rigting op die stroke. Onthou dat u die hele ding wegneem.
  12. Soldeer op die eerste latte lang genoeg drade om krag + grond van die adapter en die sein van die Arduino te kry.
  13. Skroef die latte en brûe weer af. Heg bevelstroke aan die agterkant vas (klittenbandstyl, 2 medium bo en onder of 1 groot in die middel). Maak al die nodige verbindings en hang aan die muur op ongeveer 3 "uitmekaar. Geniet die vrugte van u arbeid.

Aanbeveel: