Sadržaj:

Dinamički kontroler LED osvjetljenja za umjetnost: 16 koraka (sa slikama)
Dinamički kontroler LED osvjetljenja za umjetnost: 16 koraka (sa slikama)
Anonim
Image
Image

Uvod:

Rasvjeta je važan aspekt vizualne umjetnosti. A ako se osvjetljenje s vremenom može promijeniti, to može postati značajna dimenzija umjetnosti. Ovaj projekt započeo je posjećivanjem svjetlosne predstave i iskustvom kako bi osvjetljenje moglo potpuno promijeniti boju objekta. Počeli smo to istraživati u umjetnosti osvjetljenja tkanina. Do sada smo izgradili dinamičko osvjetljenje za 8 komada, uključujući sliku i fotografiju. Svjetlosni efekti uključuju: simuliranje zore i zalaska sunca, podvodno svjetlo kroz talasastu površinu, munje u oblacima i dramatičnu promjenu percipiranih boja i raspoloženja umjetničkog djela. Video zapisi ovih efekata uključeni su u korake programiranja u nastavku.

Ova instrukcija gradi kontroler koji postavlja svjetlinu i boju niza pojedinačno adresabilnih LED dioda tokom vremena. Takođe uključuje opcionalni ulazni krug za ručno podešavanje (podešavanje svetline i boje) segmenta osvetljenja. Naučit ćete i o mnogim problemima i poboljšanjima koja smo usput otkrili.

Napisali smo i odgovarajuće instrukcije o izgradnji kutije i okvira za sjene. Provjerite na:

Za sada ćemo se fokusirati na elektroniku i programiranje.

Korak 1: Materijali:

  • Niz WS2812 LED dioda
  • Arduino Pro Mini 328 - 5V/16 MHz
  • USB sučelje za prijatelja FTDI
  • USB A do MiniB kabel za FTDI
  • Kondenzator 4700 μf
  • Napajanje 5v sa priključkom 5.5 x 2.1
  • Utičnica 5,5 x 2,1
  • Terminalni blok
  • Prototipna ploča
  • Dugme
  • Potenciometar
  • LED indikator
  • Otpornici
  • Vrpčasti kabel
  • Zaglavlje muški
  • Zaglavlje žensko

Korak 2: Resursi:

  • Arduino; Interaktivno razvojno okruženje (IDE)
  • Adafruit NeoPixel biblioteka
  • NeoPixel Tutorial
  • Primjer Strandtest programa
  • FastLED biblioteka
  • FastLED veze i dokumentacija
  • FastLED Forum
  • Naše skice rasvjete

Korak 3: Pregled kontrolera:

Pregled kontrolera
Pregled kontrolera
Pregled kontrolera
Pregled kontrolera

Shema izgleda prilično jednostavno i jeste. Naše kontrolere smo izgradili tako da budu ugrađeni u okvir za slike. Dimenzije sklopa na slici su 2,25”x 1,3” x 0,5”. Opcijski tuner izgrađen je na zasebnoj ploči s konektorom za vrpčani kabel. Ove slike prikazuju naš završeni projekat.

Želimo uklopiti naš kontroler u okvir za slike pa smo odabrali Arduino pro mini 5v zbog male veličine, cijene i 5v izlaza. Veličina 5V napajanja koja vam je potrebna ovisit će o tome koliko LED dioda i njihovoj maksimalnoj svjetlini u vašem projektu. Svi naši projekti radili su s manje od 3 ampera, a neki s manje od 1 ampera. Postoji nekoliko vrsta adresabilnih LED dioda u boji. Počeli smo s WS2812 koji Adafruit prodaje kao jedan od svojih “NeoPixel” proizvoda. Ovo nam je uspjelo i nismo istraživali druge LED diode. Većina naših projekata koristila je 60 LED dioda po metru. Do sada su se naši projekti kretali do 145 LED dioda.

Opcijski tuner:

Napravili smo mali tjuner za ulazni krug kako bismo mogli jednostavno prilagoditi segmente osvjetljenja bez mijenjanja i učitavanja programa za svako podešavanje. Ima: izlaznu LED koja treperi ulazni način rada; dugme koje menja način unosa; i dugme koje se može podesiti. Arduino tada može prenijeti vrijednosti na povezano računalo.

Korak 4: Izgradnja kontrolera:

Građevinski kontrolor
Građevinski kontrolor

Lista materijala ne sadrži žicu, cijevi za hlađenje i druge potrepštine koje vam mogu zatrebati. Za 5V i uzemljeni krug LED -a predlažem da upotrijebite žicu od 26 kalibra ili teže. Koristili smo mjerač 26. I silikonska izolacija na žici je bolja jer se ne topi u blizini mjesta lemljenja i fleksibilnija je. Otkrio sam da je ostavljanje malo više prostora između komponenti znatno olakšalo izradu. Na primjer, kontroler prikazan u koraku #6 razmak između kućišta utičnice (crno) i priključnog bloka (plavo) je oko 1 inč. Naš montažni poklopac sastoji se od dva sloja drvenog furnira.

Slika u ovom koraku prikazuje ožičenje ženskog zaglavlja sa šest kontakata za opcionalni tjuner. Neiskorišteni kontakt između crvene i zelene žice začepljen je komadom čačkalice kako bi se spriječilo obrnuto spajanje.

Korak 5:

Image
Image
Image
Image
Image
Image

Sada, sastavimo ga tako da stane u okvir kutije sjena. Okvir je debljine 3/4 "pa imamo ograničenje visine kontrolera 1/2". Montažne ploče smo napravili lijepljenjem dva komada sredstva za učvršćivanje furnira sa zrnom okomito jedno na drugo kako bismo ograničili savijanje. Komponente su raspoređene tako da utičnica za napajanje bude u središtu okvira. Rupa za priključnicu za struju izrezana je zlatarskom pilom i ispunjena kako bi odgovarala. Komponente se zatim povezuju prije montaže. Utičnica je zalijepljena epoksidom. Dvostrani trajni montažni kvadrati od pjene koriste se ispod vijčanog terminala i arduina. Ljepilo za topljenje se također koristi za držanje arduina na mjestu, kao i kondenzatora.

Korak 6: Izgradnja opcionalnog tunera:

Izgradnja opcionalnog tunera
Izgradnja opcionalnog tunera
Izgradnja opcionalnog tunera
Izgradnja opcionalnog tunera
Izgradnja opcionalnog tunera
Izgradnja opcionalnog tunera

Napravili smo mali tjuner za ulazni krug kako bismo mogli jednostavno prilagoditi segmente osvjetljenja bez mijenjanja i učitavanja programa za svako podešavanje. Ima: izlaznu LED lampicu koja treperi u ulaznom modu; dugme koje menja način unosa; i dugme koje se može podesiti. Arduino tada može prenijeti vrijednosti na povezano računalo.

Ove slike prikazuju izradu tjunera. Pokrila sam leđa "Gorilla" trakom. Što drži trakasti kabel stabilnim i također čini lijepu ručku.

Korak 7: Pregled programiranja kontrolera:

Ovo je zaista težak dio projekta. Nadamo se da ćete moći koristiti neke od naših kodova i metoda za početak.

Adafruit i FastLED objavili su dvije velike biblioteke koje Arduinosu omogućuju kontrolu mnogih vrsta adresabilnih LED dioda. Obje ove biblioteke koristimo u različitim projektima. Predlažemo vam da pročitate i dio materijala o ovim bibliotekama i istražite neke od njihovih primjera programa.

Github spremište naših programa navedeno je u gornjim “Resursima”. Imajte na umu da smo daleko od vještina u Arduino programiranju pa ima mnogo prostora za poboljšanja. Slobodno ukažite na probleme i doprinesite poboljšanjima.

Korak 8: Primjer mrežnog programiranja kontrolera:

“Ripple” Jeanie Holt bio je naš prvi uspjeh. Ovaj komad je umjetnička riba izrađena od tkanine u okviru kutije u sjeni. Osvjetljenje je stalno nisko plavo odozdo. I odozgo, do tri osovine jačeg bijelog svjetla koje se kreću zdesna nalijevo kao da se lome pomicanjem valovitosti na površini vode. Ovo je prilično jednostavan koncept i program ne koristi "tuner" ulaze. Počinje uključivanjem biblioteke Adafruit i definiranjem izlaznog kontrolnog pina i broja LED dioda. Zatim radimo jednokratno postavljanje serijske komunikacije i LED trake. Zatim definiramo niz unutrašnjih varijabli, kao što su kašnjenje između osvježavanja, karakteristike svjetlosne osovine (njen sjaj tokom vremena i njeno kretanje), zatim navedimo varijable za svaku osovinu svjetlosti.

Funkcija “changeBright ()” će povećati jačinu svjetlosne osi tokom vremena “napada”, držati je konstantnom tokom “održavanja” vremena, a zatim će nestati tokom vremena “raspadanja”.

Funkcija “ripple ()” se poziva za svaku od tri svjetlosne osovine tokom svakog prirasta vremena. Privremena svjetlina se izračunava na osnovu blijeđenja maksimalne svjetline pri stalnom opadanju tokom vremena. Zatim se za svaku LED diodu lijevo od početne pozicije izračunava svjetlina. Možemo zamisliti talase svjetlosti koji se kreću ulijevo. Svaka LED dioda lijevo nalazi se na ranijoj tački u krivulji vremena svjetline talasa. Kada talasanje ima nultu svjetlinu za sve LED diode, oznaka učinjeno postavljena je na 1. Ako je LED dioda već svjetlija (postavljena jednom od drugih talasa), vrijednost ostavljamo nepromijenjenom.

Glavna petlja započinje isključivanjem LED dioda. Zatim za svaku od tri talasanja poziva funkciju talasa i povećava svoj brojač vremena. Ako je zastava gotova postavljena, započinje talasanje. Konačno, glavna petlja postavlja blijedo plavo svjetlo preko dna.

Korak 9: Primjer programiranja kontrolera Od zore do sumraka:

Image
Image

Sljedeći projekt, "Dawn to Dusk" Jeanie Holt, još je jedno umjetničko djelo od tkanine, ovog puta drvo sa lišćem boje jeseni. Osvjetljenje je simulacija dana sa svitanjem koje počinje svijetliti s lijeve strane napredujući do svijetle sredine dana, nakon čega slijede crvenkaste boje zalaska sunca i prelaze u noć. Izazov ovdje je pojednostavljivanje opisa promjene boje i svjetline s vremenom na traci od 66 LED dioda. Drugi izazov je učiniti svjetlo glatkim promjenama. Zaista smo se borili sa zamjetnim pomakom svjetla pri slabom svjetlu. Pokušao sam postići glatkije prijelaze osvjetljenja pomoću biblioteke FastLED, ali nisam uspio. Ovaj opis programa bit će manje detaljan. Opet smo koristili Adafruit -ovu NeoPixel biblioteku.

Otišli smo na konvenciju o pokretanju LED traka u gornjem lijevom kutu. Zbog toga je označavanje LED lokacije pomalo neugodno u ovom komadu. Oko okvira ima 86 LED dioda. Zora svijetli s lijeve strane koja ide od 62 do 85. Zatim gore slijeva prema dolje desno je od 0 do 43.

Ovaj program ne uključuje mogućnost korištenja ulaznog kola “Tuner”.

Ovaj program koristi smanjenje vremena za smanjenje treperenja. Ažuriramo svaku petu LED lampicu, zatim prelazimo preko jedne i ažuriramo svaku petu LED i ponavljamo sve dok se ne ažuriraju. Iz tog razloga definiramo dužinu LED niza nešto veću nego što zaista jest.

Evo kako smo pojednostavili opis uzorka osvjetljenja. Identificirali smo 12 referentnih LED pozicija oko okvira od donjeg lijevog do donjeg desnog kuta. Zatim smo definirali intenzitet crvene, zelene i plave (RGB) LED za ove referentne LED diode na do 12 tačaka prekida od zore do sumraka. Za svaku tačku prekida postoje 4 bajta, broj vremena koji se računa od poslednje tačke prekida i vrednost od jednog bajta za svaku od RGB boja. Ovaj niz zauzima 576 bajtova dragocjene memorije.

Sada koristimo linearnu interpolaciju za pronalaženje vrijednosti između tačaka prekida i opet linearnu interpolaciju za pronalaženje vrijednosti LED dioda koje se nalaze između referentnih LED dioda. Da bi interpolacija dobro funkcionirala, moramo koristiti neke srednje vrijednosti s pomičnim zarezom. Period zore do sumraka podijeljen je u 120 vremenskih perioda od pola sekunde.

Korak 10: Primjer programiranja kontrolera Prašume:

Sljedeći projekt koji ću opisati je “Rain Forest” Juli-Ann Gasper. Ovo je veće umjetničko djelo od tkanine s puno dubine. Ovdje smo koristili kutiju sjena duboku oko 4,4 inča. Koncept osvjetljenja je nivo pozadinskog svjetla koji je pri dnu slabiji, a svjetlo s vremena na vrijeme treperi kroz gornje lišće. Ovdje je koncept sličan talasu, ali se svjetlosne osovine ne pomiču. I za razliku od talasa gdje se svjetlina glatko mijenja, ovdje svjetlina treperenja mora varirati. Napravili smo niz od 40 bajta pod nazivom flicker_b2. Otkrili smo da je vizualni efekt u redu ako smo koristili isti uzorak za sve lokacije treperenja. Utvrdili smo 5 lokacija treperenja. Pregledom vizualnog efekta otkrili smo da je jedan od treperenja morao biti mnogo širi od ostalih. Koristili smo funkciju fill_gradient_RGB () za rastezanje tog treperenja na oko 20 LED dioda. Svako treperenje je neovisno i počinje nasumično. Moguće je podesiti vjerovatnoću svakog treperenja.

Boju pozadine potrebno je postaviti i vratiti kada treperenje nije svjetlije od pozadine.

Za ovaj komad koristili smo FastLED biblioteku. U ovom programu #define TUNING se koristi za označavanje je li ploča za podešavanje priključena, mora biti 0 kada ploča za podešavanje nije priključena. Inače je kontroler osjetljiv na statički elektricitet i poltergeiste. Kompajler uključuje samo programske segmente koji koriste "Tuner" kada je ova varijabla 1.

Korak 11: Primjer programiranja kontrolera Oluja:

Drugi projekt je osvjetljavanje fotografije Mikea Becka pod nazivom „Oluja“. Slika je olujni oblak. Koristimo FastLED biblioteku i ne uključujemo mogućnost podešavanja. Koncept osvjetljenja ovdje je neko pozadinsko svjetlo sa bljeskovima munje koji se nasumično pojavljuju u tri tačke oko oblaka. Bljesak na svakoj lokaciji uzrokuju tri LED diode. Razmak između ovih LED dioda različit je za svaku lokaciju. Svjetlina ove tri LED diode definirana je s tri niza od 30 bajtova. Niz svjetline u tri niza daje varijacije i prividno kretanje kroz tri LED diode. Smjer uočenog kretanja i ukupna svjetlina odabiru se za svaku lokaciju. Trajanje blica na svakoj lokaciji prilagođeno je vremenskim kašnjenjem između ažuriranja vrijednosti svjetline. Između udara groma postoji nasumično vremensko kašnjenje između 0,2 i 10,4 sekunde. Koja od tri lokacije udara je također slučajna sa 19% šanse na vrhu oblaka, 45% šanse na donjem desnom dijelu i 36% šanse uz lijevu stranu.

Korak 12: Primjeri programiranja kontrolera Macaw i Nordic Tree:

Komadi "Macaw" Dana Newman i "Nordic Tree" Jeanie Holt koriste boju osvjetljenja da promijene percipiranu boju djela. A u slučaju Danainog slikanja velike ara, raspoloženje ptice se mijenja od radosnog do prijetećeg, ovisno o boji svjetla koja okružuje pticu. Ova dva programa su gotovo identična. Koristimo Adafruit NeoPixel biblioteku i mogućnost postavljanja ploče je u tim programima. Ovi programi prilagođeni su funkcijom theatreChaseRainbow () u Adafruit_NeoPixel/examples/Strandtest.ino (preuzeto 29.7.2015.)

Osvetljenje se održava na relativno konstantnoj jačini, dok se boja svetlosti menja progresivno kroz kolo boja. Napredak oko kotača u boji nastaje započinjanjem sa 100% crvene i postupnim smanjivanjem crvene uz povećanje zelene. Kada je zelena na 100%, ona se smanjuje, a plava povećava. I na kraju, kako se plava smanjuje, a crvena povećava, dobivate cijeli krug.

Ovo osigurava osvjetljenje koristeći dvije osnovne boje, a jednu izostavlja. Dok prolazimo kroz ovaj točkić u boji za osvjetljenje u nekom trenutku će svaka boja umjetničkog djela nedostajati u isporučenom svjetlu. Rezultirajuća promjena percipirane boje može biti prilično dramatična i postaje dio umjetničkog izraza. Dakle, ako crvena nije prisutna na svjetlu, bilo koja crvena na slici će izgledati tamna. Kada je svjetlo čisto crveno, tada crvena zaista svijetli, a ostale boje su prigušene.

Korak 13: Primjeri programiranja kontrolera Copperhead:

“Copperhead” Jeanie Holt koristi varijacije osvjetljenja kako bi poboljšala osjećaj vani i varijaciju u uočljivosti zmije. Programiranje postavlja talase svetlosti na pozadinsko osvetljenje.

Za ovaj program smo za razvoj koristili biblioteku FastLED zajedno sa našim sklopom tunera.

Boja pozadine postavljena je na 10 točaka oko okvira, a funkcija fill_gradient () se koristi za glatki prijelaz između boja.

Na početku ciklusa gledanja pozadina je zatamnjena, a boja se mijenja u plavu koristeći kosinusnu krivulju s vremenom i funkciju setBrightness ().

Nakon odgode, tri svjetlosna vala kreću se od gornjeg desnog do donjeg lijevog. Prvi val je najsvjetliji, a sljedeći valovi postaju sve slabiji. Prvi val se takođe kreće sporije.

Korak 14: Primjeri programiranja kontrolera Black Doodle:

Image
Image

"Black Doodle" Jeanie Holt istražuje odsjaje crnog vinila.

Ovaj program također koristi biblioteku FastLED i može uzeti ulaz iz kruga za podešavanje.

Osvetljenje se sastoji od do 5 istovremenih prikaza svetlosti koja se reprodukuje iz slučajnih tačaka oko kadra. Svaki prikaz s vremenom napreduje kroz istih 60 vrijednosti svjetline. Svaki zaslon uključuje 7 susjednih LED dioda čija se svjetlina smanjuje prema rubovima. Prije svakog prikaza počinje nasumično kašnjenje. Lokacija ekrana je nasumična, ali lokacije u blizini aktivnog ekrana su blokirane.

Pozadina je dugačka boja raširena po okviru. Ova pozadinska duga polako se okreće i nasumično mijenja smjer.

Ovi opisi su pregled i pomoć pri čitanju programa. Nadamo se da će vam neki od ovih svjetlosnih efekata biti dovoljno zanimljivi da ih uključite u jedan od svojih projekata. Veza na github.com na kojoj su programi pohranjeni nalazi se u koraku 2 Resursi.

Korak 15: Programiranje funkcija ugađanja:

U programu RainForest možemo uključiti funkciju podešavanja pomoću "#define TUNING 1" i pričvrstiti ulaznu ploču za podešavanje pomoću vrpčnog kabela. Moramo također postaviti parametre za koje će LED utjecati na ugađanje. Na primjer, prilagodimo LED diode na pozicijama 61 do 73. Koristimo #define START_TUNE 61 i #define END_TUNE 73. Ostale segmente niza postavljamo u pozadinske boje u setup () koristeći fill_gradient_RGB () pozive. Ostatak vaše skice ne bi trebao postaviti LED diode u raspon podešavanja ili nećete moći vidjeti svoja podešavanja. Sada pokrenite skicu i prikažite serijski monitor. Podešavajući dio programa ima 4 stanja [Nijansa, Zasićenost, Vrijednost i Svjetlina}. Nijansa je točak u boji sa 0 = crveno i 255 pored plave do skoro crvene boje. Trenutno stanje treba odštampati na serijskom monitoru, a LED indikator na ploči za podešavanje će treptati kako bi označio stanje (jedan treptaj je Hue; dva treperenja je zasićenje i tako dalje). Vrijednost je intenzitet svjetla, dok je svjetlina faktor smanjenja koji se primjenjuje na sve vrijednosti intenziteta LED dioda. Dakle, za punu svjetlinu postavite vrijednost = 255 i svjetlinu = 255. Pritisnite tipku za promjenu stanja. Kada ste u stanju koje želite da prilagodite, okrenite dugme. Program zanemaruje dugme dok se ne okrene više od INHIBIT_LEVEL. Time se izbjegava mijenjanje vrijednosti u drugim stanjima dok se krećete kroz njih. Na primjer, mogli biste započeti s Hueom i dobiti željenu boju, a zatim preći na vrijednost i prilagoditi kako biste pronašli svjetlinu koju želite.

Skice Macaw i Nordic_Tree uključuju podešavanje, ali funkcije su malo drugačije. Na ovim skicama postoje samo dva načina. Jedan za svjetlinu i jedan za položaj kotača u boji. Pomoću ovih primjera možete vidjeti kako prilagoditi funkcije ugađanja za rad s gotovo svim parametrima u vašoj kontroli osvjetljenja.

U spremište je uključena skica 'Tuning' koja preuzima funkcije ugađanja iz RainForesta. Ova skica je samo funkcija ugađanja tako da možete istraživati i lakše pratiti kako skica radi. Ovu skicu koristimo za kontrolu okvira probnog osvjetljenja koji možemo brzo postaviti iznad umjetničkog djela i istražiti svjetlosne efekte. Kasnije ćemo koristiti informacije o podešavanju za izradu prilagođenog kontrolera rasvjete.

Nadam se da će vam ovo uputstvo pomoći u uspješnom funkcioniranju vašeg projekta.

Korak 16: Ostatak priče:

Ovo je jedno od dva uputstva na ovom projektu. Ako već niste, provjerite popratni vodič na:

Preporučuje se: