Kazalo:

Dinamični krmilnik LED osvetlitve za umetnost: 16 korakov (s slikami)
Dinamični krmilnik LED osvetlitve za umetnost: 16 korakov (s slikami)

Video: Dinamični krmilnik LED osvetlitve za umetnost: 16 korakov (s slikami)

Video: Dinamični krmilnik LED osvetlitve za umetnost: 16 korakov (s slikami)
Video: Leap Motion SDK 2024, Julij
Anonim
Image
Image

Uvod:

Razsvetljava je pomemben vidik vizualne umetnosti. In če se lahko razsvetljava s časom spremeni, lahko postane pomembna razsežnost umetnosti. Ta projekt se je začel z obiskom svetlobne predstave in izkušnjami, kako lahko razsvetljava popolnoma spremeni barvo predmeta. To smo začeli raziskovati v umetnosti razsvetljave tkanin. Doslej smo zgradili dinamično razsvetljavo za 8 kosov, vključno s sliko in fotografijo. Svetlobni učinki vključujejo: simulacijo zore in sončnega zahoda, podvodno svetlobo skozi valovito površino, strele v oblakih in dramatično spreminjanje zaznanih barv in razpoloženja umetniškega dela. Video posnetki teh učinkov so vključeni v spodnje korake programiranja.

Ta navodila podajajo krmilnik, ki sčasoma nastavi svetlost in barvo niza posamezno naslovljivih LED. Vključuje tudi izbirno vhodno vezje za ročno nastavitev (nastavitev svetlosti in barve) segmenta osvetlitve. Spoznali boste tudi številne težave in izboljšave, ki smo jih odkrili na poti.

Napisali smo tudi povezana navodila za gradnjo senčne škatle in okvirja. Preverite na:

Za zdaj se bomo osredotočili na elektroniko in programiranje.

1. korak: Materiali:

  • Niz LED LED WS2812
  • Arduino Pro Mini 328 - 5V/16 MHz
  • USB vmesnik za prijatelja FTDI
  • Kabel USB A do MiniB za FTDI
  • 4700 μf kondenzator
  • Napajanje 5V z priključkom 5,5 x 2,1
  • Vtičnica 5,5 x 2,1
  • Terminalni blok
  • Prototipno vezje
  • Gumb
  • Potenciometer
  • LED indikator
  • Upori
  • Tračni kabel
  • Glava moški
  • Glava ženska

2. korak: Viri:

  • Arduino; Interaktivno razvojno okolje (IDE)
  • Knjižnica Adafruit NeoPixel
  • Vadnica za NeoPixel
  • Strandtest Primer programa
  • Knjižnica FastLED
  • FastLED povezave in dokumentacija https://fastled.io/docs
  • Forum FastLED
  • Naše skice razsvetljave

3. korak: Pregled krmilnika:

Pregled krmilnika
Pregled krmilnika
Pregled krmilnika
Pregled krmilnika

Shema je videti precej preprosta in je. Krmilnike smo zgradili tako, da so vgrajeni v okvir za slike. Dimenzije vezja na sliki so 2,25 "x 1,3" x 0,5 ". Izbirni sprejemnik je bil zgrajen na ločenem vezju s priključkom za tračni kabel. Te slike prikazujejo naš končan projekt.

Naš krmilnik želimo namestiti v okvir za slike, zato smo izbrali Arduino pro mini 5v zaradi majhnosti, stroškov in 5v izhoda. Velikost 5V napajalnika, ki ga potrebujete, bo odvisna od tega, koliko LED in njihova največja svetlost v vašem projektu. Vsi naši projekti so imeli manj kot 3 ampere, nekateri pa manj kot 1 amp. Obstaja več vrst naslovljivih barvnih LED. Začeli smo z WS2812, ki ga Adafruit prodaja kot enega od svojih izdelkov "NeoPixel". To nam je uspelo in drugih LED nismo raziskovali. Večina naših projektov je uporabljala 60 LED na meter. Doslej so bili naši projekti do 145 LED.

Izbirni sprejemnik:

Zgradili smo majhen "sprejemnik" vhodnega vezja, tako da smo lahko enostavno prilagodili segmente osvetlitve brez spreminjanja in nalaganja programa za vsako prilagoditev. Ima: izhodno LED, ki utripa vhodni način; gumb, ki spremeni način vnosa; in gumb, ki ga je mogoče nastaviti. Arduino lahko nato predloži vrednosti v povezan računalnik.

4. korak: Gradbeni krmilnik:

Gradbeni krmilnik
Gradbeni krmilnik

Seznam materialov ne vsebuje žice, hladilne cevi in drugih potrebščin. Za 5V in ozemljitveni tokokrog LED priporočam, da uporabite 26 -palčno ali težjo žico. Uporabili smo merilnik 26. Tudi silikonska izolacija na žici je boljša, ker se ne topi v bližini mesta spajkanja in je bolj prilagodljiva. Ugotovil sem, da je puščanje malo več prostora med komponentami znatno olajšalo izdelavo. Na primer, krmilnik, prikazan na 6. koraku, je prostor med ohišjem vtičnice (črno) in priključnim blokom (modro) približno 1 palec. Naš montažni pokrov sta dve plasti lesenega furnirja.

Slika v tem koraku prikazuje ožičenje šestih kontaktnih ženskih glav za izbirni sprejemnik. Neuporabljeni stik med rdečo in zeleno žico je zamašen s kosom zobotrebca, da se prepreči obratna povezava.

5. korak:

Slika
Slika
Slika
Slika
Slika
Slika

Zdaj ga sestavimo tako, da se prilega okvirju senčne škatle. Okvir je debel 3/4 ", zato imamo omejitev višine regulatorja 1/2". Montažne plošče smo izdelali tako, da smo dva kosa ojačevalca furnirja prilepili zrna pravokotno drug na drugega, da bi omejili upogibanje. Sestavni deli so razporejeni tako, da bo vtičnica na sredini okvirja. Luknjo za vtičnico so izrezali z draguljarsko žago in jo popisali, da se prilega. Sestavni deli se nato pred montažo povežejo. Vtičnica je zlepljena z epoksidom. Dvostranski trajni pritrdilni kvadrati iz pene se uporabljajo pod vijačnim priključkom in arduinom. Lepilo za vroče taljenje se uporablja tudi za držanje arduina in kondenzatorja.

6. korak: Izdelava dodatnega sprejemnika:

Gradnja dodatnega sprejemnika
Gradnja dodatnega sprejemnika
Gradnja dodatnega sprejemnika
Gradnja dodatnega sprejemnika
Gradnja dodatnega sprejemnika
Gradnja dodatnega sprejemnika

Zgradili smo majhen "sprejemnik" vhodnega vezja, tako da smo lahko enostavno prilagodili segmente osvetlitve brez spreminjanja in nalaganja programa za vsako prilagoditev. Ima: izhodno LED, ki utripa vhodni način; gumb, ki spremeni način vnosa; in gumb, ki ga je mogoče nastaviti. Arduino lahko nato predloži vrednosti v povezan računalnik.

Te slike prikazujejo izdelavo sprejemnika. Hrbet sem pokrila s trakom "Gorilla". Kar drži tračni kabel stabilno in ima tudi lep ročaj.

7. korak: Pregled krmilnika za programiranje:

To je res težji del projekta. Upajmo, da boste lahko za začetek uporabili nekaj naših kod in metod.

Adafruit in FastLED sta objavila dve odlični knjižnici, ki Arduinosu omogočata nadzor številnih vrst naslovljivih LED. Obe knjižnici uporabljamo pri različnih projektih. Predlagamo, da preberete tudi nekaj gradiva z viri v teh knjižnicah in raziščete nekaj njihovih zglednih programov.

Skladišče naših programov Github je navedeno v zgornjih “Virih”. Upoštevajte, da še zdaleč nismo vešči programiranja Arduino, zato je veliko prostora za izboljšave. Ne pozabite opozoriti na težave in prispevati k izboljšavam.

8. korak: Primer valovanja krmilnika za programiranje:

"Ripple" Jeanie Holt je bil naš prvi uspeh. Ta kos je umetniška riba iz okvirja v okvirju v senci. Osvetlitev je konstantno nizko modra od spodaj. In od zgoraj, do tri gredi svetlejše bele svetlobe, ki se premikajo desno proti levi, kot da se lomijo zaradi premikanja valov na vodni površini. To je precej preprost koncept in program ne uporablja vhodov "tuner". Začne se, vključno s knjižnico Adafruit in določanjem izhodnega krmilnega zatiča in števila LED. Nato naredimo enkratno nastavitev serijske komunikacije in LED traku. Nato določimo številne notranje spremenljivke, na primer zakasnitev med osvežitvami, značilnosti grede svetlobe (njeno svetlost v času in njeno gibanje), nato spremenljivke stanja za vsako gred svetlobe.

Funkcija »changeBright ()« bo povečala svetlost grede svetlobe v času »napada«, jo ohranila konstantno za čas »vzdrževanja«, nato pa v času »razpada« izginila.

Funkcija "ripple ()" se pokliče za vsako od treh gred svetlobe pri vsakem časovnem prirastu. Začasna svetlost se izračuna na podlagi izginjanja največje svetlosti pri stalnem upadanju skozi čas. Nato se za vsako LED levo od začetnega položaja izračuna svetlost. Lahko si predstavljamo valovanje svetlobe, ki se premika v levo. Vsaka LED na levi je na zgodnejši točki krivulje časa svetlosti valovitosti. Ko ima ta valovanje ničelno svetlost za vse LED, je zastavica narejeno na 1. Če je LED že svetlejša (nastavljena z eno od drugih valov), pustimo vrednost nespremenjeno.

Glavna zanka se zažene z izklopom LED. Nato za vsako od treh valov pokliče funkcijo valovanja in poveča svoj časovni števec. Če je zastavica končana, se valovanje začne znova. Končno glavna zanka nastavi bledo modro svetlobo na dnu.

9. korak: Primer programiranja krmilnika od zore do mraka:

Image
Image

Naslednji projekt, "Dawn to Dusk" Jeanie Holt, je tokratna umetnina iz tkanine, tokrat drevo z jesensko obarvanim listjem. Osvetlitev je simulacija dneva, ko se zora na levi začne svetleti in se sredi dneva razveseli, sledijo rdečkaste barve sončnega zahoda in preidejo v noč. Izziv je poenostavitev opisa spreminjanja barve in svetlosti s časom na traku 66 LED. Drugi izziv je nemoteno spreminjanje svetlobe. Res smo se borili z opaznim premikom svetlobe pri šibki svetlobi. S knjižnico FastLED sem poskušal doseči bolj gladke prehode svetlobe, vendar mi ni uspelo. Ta opis programa bo manj podroben. Spet smo uporabili Adafruitovo knjižnico NeoPixel.

Šli smo na konvencijo o zagonu LED trakov v zgornjem levem kotu. Zaradi tega je oštevilčenje lokacije LED v tem kosu nekoliko nerodno. Okrog okvirja je 86 LED. Dawn zasveti levo stran, ki se giblje od 62 do 85. Nato je od zgoraj levo navzdol desno od 0 do 43.

Ta program ne vključuje možnosti uporabe vhodnega vezja "Tuner".

Ta program uporablja časovno odmikanje za zmanjšanje utripanja. Posodobimo vsako peto LED, nato preidemo na eno in posodobimo vsako peto LED in ponavljamo, dokler se vsi ne posodobijo. Zato dolžino LED niza določimo nekoliko dlje, kot je v resnici.

Zdaj smo poenostavili opis svetlobnega vzorca. Identificirali smo 12 referenčnih položajev LED okoli okvirja od spodnjega levega do spodnjega desnega kota. Nato smo določili intenzivnost rdeče, zelene in modre (RGB) LED za te referenčne LED na do 12 prelomnih točkah skozi čas od zore do mraka. Za vsako prelomno točko so 4 bajti, število časov, ki štejejo od zadnje prelomne točke, in enobajtna vrednost za vsako od barv RGB. Ta niz zavzame 576 bajtov dragocenega spomina.

Zdaj uporabljamo linearno interpolacijo za iskanje vrednosti med prelomnimi točkami in spet linearno interpolacijo za iskanje vrednosti LED, ki se nahajajo med referenčnimi LED. Za dobro delovanje interpolacije moramo uporabiti nekaj vmesnih vrednosti s plavajočo vejico. Obdobje od zore do mraka je razdeljeno na 120 pol sekund.

10. korak: Primer programiranja krmilnika Deževni gozd:

Naslednji projekt, ki ga bom opisal, je "Rain Forest" avtorice Juli-Ann Gasper. To je večji umetniški material iz tkanine z veliko globine. Tu smo uporabili senčni okvir približno 4,4 palca globoko. Koncept razsvetljave je raven svetlobe v ozadju, ki je spodaj zatemnjena in svetloba občasno utripa skozi listje. Koncept je podoben Rippleu, vendar se svetlobni jaški ne premikajo. In za razliko od valovitosti, kjer se svetlost gladko spreminja, mora tukaj svetlost utripanja nihati. Ustvarili smo 40 -bajtno matriko, imenovano flicker_b2. Ugotovili smo, da je vizualni učinek v redu, če smo uporabili isti vzorec za vsa utripajoča mesta. Določili smo 5 utripajočih lokacij. Pri pregledu vizualnega učinka smo ugotovili, da mora biti eno od utripanj veliko širše od drugih. Funkcijo fill_gradient_RGB () smo uporabili za raztezanje tega utripanja na približno 20 LED. Vsako utripanje je neodvisno in se začne naključno. Verjetnost vsakega utripanja je mogoče nastaviti.

Barvo ozadja je treba nastaviti in obnoviti, če utripanje ni svetlejše od ozadja.

Za ta del smo uporabili knjižnico FastLED. V tem programu se #define TUNING uporablja za označevanje, ali je plošča za uglaševanje priključena, mora biti 0, če plošča za sprejemnik ni priključena. V nasprotnem primeru je krmilnik občutljiv na statično elektriko in poltergeiste. Prevajalnik vključuje samo programske segmente, ki uporabljajo »Tuner«, če je ta spremenljivka 1.

11. korak: Primer programiranja krmilnika Nevihta:

Drugi projekt je bil osvetlitev fotografije Mikea Becka, imenovane "Nevihta". Slika je nevihtni oblak. Uporabljamo knjižnico FastLED in ne vključujemo možnosti prilagajanja. Koncept razsvetljave tukaj je osvetlitev ozadja z bliskavicami, ki se naključno pojavljajo na treh točkah okoli oblaka. Bliskavico na vsaki lokaciji povzročijo tri LED. Prostor med temi LED je za vsako lokacijo drugačen. Svetlost teh treh LED je določena s tremi 30 -bajtnimi nizi. Zaporedje svetlosti v treh nizih daje variacije in navidezno gibanje po treh LED. Smer zaznanega gibanja in splošna svetlost sta izbrani za vsako lokacijo. Trajanje bliskavice na vsaki lokaciji se prilagodi časovni zakasnitvi med posodabljanjem vrednosti svetlosti. Med udarci strele je naključni časovni zamik med 0,2 in 10,4 sekunde. Katera od treh lokacij udarcev je prav tako naključna z 19% možnostjo na vrhu oblaka, 45% možnostjo spodaj desno in 36% možnostjo na levi strani.

12. korak: Primeri programiranja krmilnika ara in nordijsko drevo:

Kosa "Macaw" Dana Newman in "Nordic Tree" Jeanie Holt uporabljajo svetlobno barvo za spreminjanje zaznane barve dela. V primeru Danajevega slikanja velikega ara se razpoloženje ptice spremeni iz veselega v grozljivo, odvisno od barve svetlobe, ki obdaja ptico. Ta dva programa sta skoraj enaka. Uporabljamo knjižnico Adafruit NeoPixel in v teh programih je možnost nastavitvene plošče. Ti programi so prilagojeni iz funkcije theatreChaseRainbow () v Adafruit_NeoPixel/examples/Strandtest.ino (preneseno 29.7.2015)

Osvetlitev je razmeroma konstantna, medtem ko se barva svetlobe spreminja skozi barvno kolo barv. Napredovanje okoli barvnega kolesa nastane tako, da začnete s 100% rdečo in postopoma padajočo rdečo, medtem ko zeleno naraščate. Ko je zelena na 100%, se nato zmanjša, medtem ko modra narašča. In končno, ko se modra zmanjša in rdeča poveča, pridete v polni krog.

To zagotavlja osvetlitev z uporabo dveh osnovnih barv, eno pa izpusti. Ko kolesarimo skozi to barvno kolo osvetlitve, bo v priloženi svetlobi na določeni točki manjkala vsaka barva v umetniškem delu. Nastala sprememba zaznane barve je lahko precej dramatična in postane del umetniškega izraza. Torej, če rdeče ni na svetlobi, bo vsaka rdeča na sliki videti temna. Ko je svetloba čisto rdeča, rdeča res sveti, druge barve pa so utišane.

13. korak: Primeri programiranja krmilnika Copperhead:

"Copperhead" Jeanie Holt uporablja variacije razsvetljave za povečanje občutka na prostem in razlike v vidnosti kače. Programiranje položi svetlobne valove na osvetlitev ozadja.

Za ta program smo za razvoj uporabili knjižnico FastLED skupaj z vezjem Tuner.

Barva ozadja je nastavljena na 10 točk okoli okvirja, funkcija fill_gradient () pa se uporablja za nemoten prehod med barvami.

Na začetku cikla gledanja je ozadje zatemnjeno, barva pa se s pomočjo kosinusne krivulje skozi čas in funkcije setBrightness () spremeni v modro.

Po zamudi se trije svetlobni valovi premikajo od zgornjega desnega do spodnjega levega. Prvi val je najsvetlejši, naslednji valovi pa postanejo temnejši. Prvi val se premika tudi počasneje.

14. korak: Primeri programiranja krmilnika Black Doodle:

Image
Image

"Black Doodle" Jeanie Holt raziskuje odseve črnega vinila.

Ta program uporablja tudi knjižnico FastLED in lahko sprejema podatke iz vezja za uglaševanje.

Osvetlitev je sestavljena iz do 5 hkratnih prikazov svetlobe iz naključnih točk okrog okvirja. Vsak zaslon sčasoma napreduje skozi istih 60 vrednosti svetlosti. Vsak zaslon vključuje 7 sosednjih LED diod s svetlostjo proti robovom. Pred vsakim začetkom prikaza je naključna zamuda. Lokacija zaslona je naključna, vendar so lokacije v bližini aktivnega zaslona onemogočene.

Ozadje je mavrica barv, razporejenih po okvirju. Ta mavrica v ozadju se počasi obrača in naključno obrača smer.

Ti opisi so pregled in pomoč pri branju programov. Upamo, da se vam zdijo nekateri od teh svetlobnih učinkov dovolj zanimivi, da jih vključite v enega od svojih projektov. Povezava do github.com, kjer so shranjeni programi, je v 2. koraku virov.

15. korak: Programiranje funkcij uglaševanja:

V programu RainForest lahko funkcijo uglaševanja vklopimo s »#define TUNING 1« in s pomočjo trakovnega kabla pritrdimo vhodno ploščo za nastavitev. Določiti moramo tudi parametre, za katere bo LED vplival na uglaševanje. Na primer, nastavimo LED na položajih od 61 do 73. Uporabljamo #define START_TUNE 61 in #define END_TUNE 73. Druge segmente niza nastavimo na barve ozadja v setup () s klici fill_gradient_RGB (). Preostali del vaše skice ne sme nastaviti LED v območje uglaševanja ali pa ne boste mogli videti svojih prilagoditev. Zdaj zaženite skico in prikažite serijski monitor. Uglaševalni del programa ima 4 stanja [Hue, Saturation, Value in Brightness]. Hue je barvno kolo z 0 = rdečo in 255 mimo modre do skoraj rdeče barve. Trenutno stanje je treba natisniti na serijskem monitorju, indikatorska LED na plošči za uglaševanje pa bo utripala, da označi stanje (en utrip je Hue; dva utripa je Saturation in tako naprej). Vrednost je intenzivnost svetlobe, medtem ko je svetlost faktor zmanjšanja, ki se uporablja za vse vrednosti jakosti LED. Torej za polno svetlost nastavite vrednost = 255 in svetlost = 255. Pritisnite gumb za premik stanja. Ko ste v stanju, ki ga želite prilagoditi, zavrtite gumb. Program ne upošteva gumba, dokler se ne obrne več kot INHIBIT_LEVEL. S tem se izognete spreminjanju vrednosti v drugih stanjih, ko jih premikate. Na primer, lahko začnete z odtenkom Hue in dobite želeno barvo, nato preklopite na vrednost in prilagodite, da poiščete želeno svetlost.

Skice Macaw in Nordic_Tree vključujejo uglaševanje, vendar so funkcije nekoliko drugačne. V teh skicah sta samo dva načina. Eno za svetlost in eno za položaj barvnega kolesa. S temi primeri lahko vidite, kako prilagodite funkcije uglaševanja tako, da delujejo z večino parametrov pri nadzoru osvetlitve.

V shrambo je vključena skica 'Tuning', ki prevzema funkcije uglaševanja iz RainForesta. Ta skica je samo funkcija uglaševanja, tako da lahko raziščete in lažje sledite delovanju skice. To skico uporabljamo za nadzor okvirja za preskusno osvetlitev, ki ga lahko hitro postavimo na umetniško delo in raziščemo svetlobne učinke. Kasneje bomo podatke o uglaševanju uporabili za izdelavo krmilnika osvetlitve po meri.

Upam, da vam bo ta pouk v pomoč pri uspešnosti vašega projekta.

16. korak: Ostanek zgodbe:

To je eden od dveh navodil za ta projekt. Če še niste, si oglejte spremljevalno navodilo na:

Priporočena: