Sisällysluettelo:

Dynaaminen LED -valaistuksen ohjain taiteelle: 16 vaihetta (kuvilla)
Dynaaminen LED -valaistuksen ohjain taiteelle: 16 vaihetta (kuvilla)

Video: Dynaaminen LED -valaistuksen ohjain taiteelle: 16 vaihetta (kuvilla)

Video: Dynaaminen LED -valaistuksen ohjain taiteelle: 16 vaihetta (kuvilla)
Video: Lapsi soittaa 112 2024, Heinäkuu
Anonim
Image
Image

Johdanto:

Valaistus on tärkeä osa kuvataidetta. Ja jos valaistus voi muuttua ajan myötä, siitä voi tulla merkittävä taiteen ulottuvuus. Tämä projekti alkoi osallistumalla valonäyttelyyn ja kokeilemalla, kuinka valaistus voi muuttaa esineen värin kokonaan. Aloimme tutkia tätä valaistuskangastaiteessa. Tähän mennessä olemme rakentaneet dynaamisen valaistuksen kahdeksalle osalle, mukaan lukien maalaus ja valokuva. Valotehosteita ovat olleet: aamunkoiton ja auringonlaskun simulointi, vedenalainen valo aaltoilevan pinnan läpi, salama pilvissä ja taideteoksen havaittujen värien ja tunnelman dramaattinen muuttaminen. Videot näistä vaikutuksista sisältyvät alla oleviin ohjelmointivaiheisiin.

Tämä opas rakentaa ohjaimen, joka asettaa yksilöllisesti osoitettavien merkkivalojen kirkkauden ja värin ajan mittaan. Se sisältää myös valinnaisen tulopiirin valaistuksen osan manuaaliseen virittämiseen (kirkkauden ja värin säätö). Opit myös monista ongelmista ja parannuksista, joita löysimme matkan varrella.

Kirjoitimme myös siihen liittyvän ohjeen varjolaatikon ja kehyksen rakentamisesta. Tarkista se osoitteesta:

Tällä hetkellä keskitymme elektroniikkaan ja ohjelmointiin.

Vaihe 1: Materiaalit:

  • Jono WS2812 -LED -valoja
  • Arduino Pro Mini 328 - 5V/16 MHz
  • FTDI Friend USB -liitäntä
  • USB A - MiniB -kaapeli FTDI: lle
  • 4700 μf kondensaattori
  • 5V virtalähde 5,5 x 2,1 liittimellä
  • Pistorasia 5,5 x 2,1
  • Riviliitin
  • Piirilevyn prototyyppi
  • Painike
  • Potentiometri
  • Merkkivalo
  • Vastukset
  • Nauhakaapeli
  • Otsikon uros
  • Yläosan naaras

Vaihe 2: Resurssit:

  • Arduino; Interaktiivinen kehitysympäristö (IDE)
  • Adafruit NeoPixel -kirjasto
  • NeoPixel-opetusohjelma
  • Strandtestin esimerkkiohjelma
  • FastLED -kirjasto
  • FastLED -linkit ja dokumentaatio
  • FastLED -foorumi
  • Valaistusluonnoksemme

Vaihe 3: Ohjaimen yleiskatsaus:

Ohjaimen yleiskatsaus
Ohjaimen yleiskatsaus
Ohjaimen yleiskatsaus
Ohjaimen yleiskatsaus

Kaavio näyttää melko yksinkertaiselta ja sitä se on. Rakensimme ohjaimet upotettavaksi kuvakehykseen. Kuvan piirin mitat ovat 2,25 x 1,3 x 0,5 tuumaa. Valinnainen viritin rakennettiin erilliselle piirilevylle nauhakaapeliliittimellä. Nämä kuvat esittävät valmistunutta projektiamme.

Haluamme sovittaa ohjaimen kuvakehykseen, joten valitsimme Arduino pro mini 5v: n pienen koon, hinnan ja 5 voltin tehon vuoksi. Tarvitsemasi 5 voltin virtalähteen koko riippuu siitä, kuinka monta LEDiä ja niiden suurin kirkkaus projektissasi. Kaikki projektimme toimivat alle 3 ampeeria ja jotkut alle 1 ampeeria. Osoitettavia väri -LED -valoja on useita. Aloitimme WS2812: llä, jonka Adafruit myi yhtenä NeoPixel -tuotteistaan. Tämä toimi meillä, emmekä ole tutkineet muita LED -valoja. Suurin osa projekteistamme käytti 60 LEDiä metriä kohti. Tähän mennessä projektimme ovat olleet jopa 145 LEDiä.

Valinnainen viritin:

Rakensimme pienen tulopiirin "virittimen", jotta voimme helposti säätää valaistuksen osia muuttamatta ja lataamatta ohjelmaa jokaiselle säädölle. Siinä on: lähtö -LED, joka vilkkuu tulotilassa; painike, joka vaihtaa syöttötilan; ja säädettävä nuppi. Arduino voi sitten lähettää arvot liitettyyn tietokoneeseen.

Vaihe 4: Rakennusohjain:

Rakennuksen valvoja
Rakennuksen valvoja

Materiaaliluettelo ei sisällä johtoa, lämpökutistusletkua ja muita tarvitsemiasi tarvikkeita. Ledien 5v- ja maadoituspiirissä suosittelen käyttämään 26 gaugen tai raskaampaa lankaa. Käytimme 26 mittaria. Myös silikonieriste langalla on parempi, koska se ei sula lähellä juotospaikkaa ja on joustavampi. Huomasin, että komponenttien väliin jätetty hieman enemmän tilaa helpotti valmistusta. Esimerkiksi vaiheessa #6 kuvattu ohjain pistorasian (musta) kotelon ja riviliittimen (sininen) välinen tila on noin 1 tuuma. Asennuskansi on kaksi kerrosta puuviilua.

Tämän vaiheen kuva näyttää kuuden koskettimen naarasliitännän johdotuksen valinnaiselle virittimelle. Käyttämätön kosketin punaisen ja vihreän johdon välillä on kytketty hammastikulla palautusliitännän estämiseksi.

Vaihe 5:

Kuva
Kuva
Kuva
Kuva
Kuva
Kuva

Laitetaan nyt se yhteen niin, että se mahtuu varjorasian runkoon. Runko on 3/4 "paksu, joten säätimen korkeusraja on 1/2". Teimme asennuslevyt kiinnittämällä kaksi viilukarkaistua raetta kohtisuoraan toisiinsa nähden vääntymisen rajoittamiseksi. Komponentit on järjestetty siten, että virtaliitin on kehyksen keskellä. Virtaliittimen reikä leikattiin kultasepän sahalla ja viilautettiin sopimaan. Komponentit kytketään sitten yhteen ennen asennusta. Pistorasia liimataan paikalleen epoksilla. Kaksipuolisia pysyviä vaahtomuovikiinnikkeitä käytetään ruuviliittimen ja arduinon alla. Kuumasulateliimaa käytetään myös pitämään arduino ja kondensaattori paikallaan.

Vaihe 6: Valinnaisen virittimen rakentaminen:

Valinnaisen virittimen rakentaminen
Valinnaisen virittimen rakentaminen
Valinnaisen virittimen rakentaminen
Valinnaisen virittimen rakentaminen
Valinnaisen virittimen rakentaminen
Valinnaisen virittimen rakentaminen

Rakensimme pienen tulopiirin "virittimen", jotta voimme helposti säätää valaistuksen osia muuttamatta ja lataamatta ohjelmaa jokaiselle säädölle. Siinä on: lähtö -LED, joka vilkkuu tulotilassa; painike, joka vaihtaa syöttötilan; ja säädettävä nuppi. Arduino voi sitten lähettää arvot liitettyyn tietokoneeseen.

Nämä kuvat näyttävät virittimen valmistuksen. Peitin selän Gorilla -teipillä. Joka pitää nauhakaapelin vakaana ja teki myös mukavan kahvan.

Vaihe 7: Ohjaimen ohjelmoinnin yleiskatsaus:

Tämä on todella hankkeen vaikein osa. Toivottavasti pystyt käyttämään joitakin koodistamme ja menetelmistämme päästäksesi alkuun.

Adafruit ja FastLED ovat julkaisseet kaksi suurta kirjastoa, joiden avulla Arduinos voi hallita monenlaisia osoitettavia LED -valoja. Käytämme molempia kirjastoja eri projekteissa. Suosittelemme, että luet myös joitain näiden kirjastojen resurssimateriaaleja ja tutustut niiden esimerkkiohjelmiin.

Ohjelmiemme Github -arkisto on lueteltu yllä "Resurssit". Huomaa, että olemme kaukana Arduinon ohjelmoinnin taidoista, joten parantamisen varaa on paljon. Voit vapaasti tuoda esiin ongelmia ja edistää parannuksia.

Vaihe 8: Ohjaimen ohjelmointiesimerkki Ripple:

Jeanie Holtin "Ripple" oli ensimmäinen menestyksemme. Tämä pala on kangastaiteellinen kala varjorasian kehyksessä. Valaistus on tasaisesti alhainen sininen alhaalta. Ja ylhäältä jopa kolme kirkkaamman valkoisen valon akselia, jotka liikkuvat oikealta vasemmalle ikään kuin taittuneet vedenpinnan liikkuvista aalloista. Tämä on melko yksinkertainen käsite, eikä ohjelma käytä "virittimen" tuloja. Se alkaa Adafruit -kirjastosta ja ulostulon ohjaustapin ja LED -merkkien määrän määrittämisestä. Seuraavaksi määritämme sarjaliikenteen ja LED-nauhan kerran. Sitten määritellään joukko sisäisiä muuttujia, kuten päivitysten välinen viive, valon akselin ominaisuudet (sen kirkkaus ajan mittaan ja sen liike) ja sitten tilamuuttujat kullekin valoakselille.

"ChangeBright ()" -toiminto lisää valoakselin kirkkautta "hyökkäyksen" aikana, pitää sen vakiona "ylläpitoajan" ajan ja häivyttää sitten hajoamisajan.

"Aaltoilu ()" -toimintoa kutsutaan jokaiselle kolmesta valoakselista jokaisen ajan lisäyksen aikana. Väliaikainen kirkkaus lasketaan häipymisen perusteella suurimmasta kirkkaudesta jatkuvassa heikkenemisessä ajan myötä. Sitten jokaiselle LEDille, joka on lähtöasennon vasemmalla puolella, kirkkaus lasketaan. Voimme kuvitella valon aallon siirtyvän vasemmalle. Jokainen vasemmalla oleva LED -valo on aaltoilun kirkkausaikakäyrän aikaisemmassa kohdassa. Kun tämän aaltoilun kirkkaus on nolla kaikissa LED -valoissa, tehty -lippu on asetettu arvoon 1. Jos LED -valo on jo kirkkaampi (jonkin toisen värin asettama), jätämme arvon ennalleen.

Pääsilmukka käynnistyy sammuttamalla LEDit. Sitten se kutsuu jokaiselle kolmesta aaltoilusta aaltoilutoimintoa ja lisää aikalaskuriaan. Jos valmis lippu on asetettu, se aloittaa aaltoilun alusta. Lopuksi pääsilmukka asettaa vaalean sinisen valon pohjan poikki.

Vaihe 9: Ohjaimen ohjelmointiesimerkki aamunkoitteesta:

Image
Image

Seuraava hanke, Jeanie Holtin "Dawn to Dusk", on toinen kangastaideteos tällä kertaa puu, jolla on syksyn väriset lehdet. Valaistus on päivän simulaatio, jolloin aamunkoitto alkaa kirkastua vasemmalta ja etenee kirkkaana keskipäivänä, jota seuraa punertavat auringonlaskun värit ja etenee yöhön. Haasteena on yksinkertaistaa kuvausta värin ja kirkkauden vaihtamisesta ajan mittaan 66 LED -valon yli. Toinen haaste on saada valo muuttumaan sujuvasti. Me todella kamppailimme havaittavan valonsiirron kanssa hämärässä. Yritin saada sujuvammat valonsiirrot FastLED -kirjaston avulla, mutta se ei onnistunut. Tämä ohjelman kuvaus on vähemmän yksityiskohtainen. Jälleen käytimme Adafruitin NeoPixel -kirjastoa.

Menimme sopimukseen aloittaa LED -nauhat vasemmassa yläkulmassa. Tämä tekee LED -sijainnin numeroinnista hieman hankalaa tässä kappaleessa. Kehyksen ympärillä on 86 LEDiä. Dawn sytyttää vasemman puolen, joka on välillä 62-85. Sitten ylhäältä vasemmalta oikealle alas on 0-43.

Tämä ohjelma ei sisällä mahdollisuutta käyttää "Tuner" -piiriä.

Tämä ohjelma käyttää väliaikaista vähentämistä välkkymisen vähentämiseksi. Päivitämme joka viidennen LED -valon ja siirrymme sitten yli yhden ja päivitämme joka viidennen LED -valon ja toistamme, kunnes ne kaikki on päivitetty. Tästä syystä määritämme LED -merkkijonon pituuden hieman pidemmäksi kuin se todellisuudessa on.

Nyt yksinkertaistimme valaistuskuvion kuvausta. Tunnistimme 12 vertailu -LED -sijaintia kehyksen ympärillä vasemmalta alhaalta oikealle. Sitten määritimme punaisen, vihreän ja sinisen (RGB) LED -voimakkuuden näille referenssivaloille jopa 12 taukokohdassa aamusta iltaan. Jokaista taukopistettä kohden on 4 tavua, aikalaskennan määrä viimeisestä katkaisupisteestä ja yhden tavun arvo kullekin RGB -värille. Tämä ryhmä vie 576 tavua arvokasta muistia.

Käytämme nyt lineaarista interpolointia arvojen löytämiseksi katkaisupisteiden välillä ja jälleen lineaarista interpolointia vertailu -LEDien välissä olevien LEDien arvojen löytämiseksi. Jotta interpolointi toimisi hyvin, meidän on käytettävä joitakin liukulukuisia väliarvoja. Aamusta iltaan jakautuu 120 puolen sekunnin ajanjaksoon.

Vaihe 10: Ohjaimen ohjelmointiesimerkki sademetsästä:

Seuraava kuvaamani projekti on Juli-Ann Gasperin”Sademetsä”. Tämä on suurempi kangastaideteos, jossa on paljon syvyyttä. Tässä käytimme noin 4,4 tuuman syvää varjolaatikkoa. Valaistuskonsepti on taustavalon taso, joka on himmeämpi alareunassa ja valo välkkyy lehtien läpi aika ajoin. Konsepti on samanlainen kuin Ripple, mutta valon akselit eivät liiku. Ja toisin kuin aaltoilu, jossa kirkkaus muuttuu tasaisesti, täällä välkkymisen kirkkauden on vaihdeltava. Loimme 40 tavun taulukon nimeltä flicker_b2. Huomasimme, että visuaalinen tehoste oli hieno, jos käytimme samaa kuviota kaikissa välkkymispaikoissa. Perustimme 5 välkkymispaikkaa. Visuaalista vaikutusta tarkastellessamme havaitsimme, että yhden välkkymän piti olla paljon laajempi kuin muut. Käytimme fill_gradient_RGB () -toimintoa venyttämään välkkymistä noin 20 LEDin yli. Jokainen välkyntä on itsenäinen ja alkaa satunnaisesti. Jokaisen välkkymisen todennäköisyys voidaan asettaa.

Taustaväri on asetettava ja palautettava, kun välkkyminen ei ole kirkkaampaa kuin tausta.

Tässä kappaleessa käytimme FastLED -kirjastoa. Tässä ohjelmassa #define TUNING ilmaisee, onko virityskortti kytketty pistorasiaan. Sen on oltava 0, kun viritinkorttia ei ole kytketty. Muussa tapauksessa ohjain on herkkä staattiselle sähkölle ja poltergeisteille. Kääntäjä sisältää vain ohjelmasegmentit, jotka käyttävät "viritintä", kun tämä muuttuja on 1.

Vaihe 11: Ohjaimen ohjelmointi Esimerkki Myrsky:

Toinen projekti valaisi Mike Beckin valokuvan nimeltä”Myrsky”. Kuva on myrskypilvi. Käytämme FastLED -kirjastoa emmekä sisällä viritysominaisuutta. Valaistuskonsepti on tässä taustavalo, jossa salaman välähdyksiä esiintyy satunnaisesti kolmessa kohdassa pilven ympärillä. Salama kussakin paikassa johtuu kolmesta LEDistä. Näiden LEDien välinen tila on erilainen jokaisessa paikassa. Näiden kolmen LEDin kirkkaus määritetään kolmella 30 tavun matriisilla. Kirkkausjärjestys kolmessa ryhmässä antaa vaihtelua ja näennäistä liikettä kolmen LED -valon välillä. Koetun liikkeen suunta ja yleinen kirkkaus valitaan kullekin paikalle. Salaman kestoa säädetään kussakin paikassa kirkkausarvojen päivittämisen välisellä viiveellä. Salamaniskujen välillä on satunnainen aikaviive 0,2–10,4 sekuntia. Mikä kolmesta iskupaikasta on myös satunnainen: 19%: n mahdollisuus pilven yläosassa, 45%: n mahdollisuus oikeassa alakulmassa ja 36% mahdollisuus vasemmalla puolella.

Vaihe 12: Esimerkkejä ohjaimen ohjelmoinnista ara ja pohjoinen puu:

Dana Newmanin kappaleet “Macaw” ja Jeanie Holtin”Nordic Tree” käyttävät valon väriä muuttaakseen teoksen havaitun värin. Ja kun Danan maalaus on suuri ara, linnun mieliala muuttuu iloisesta uhkaavaksi linnun ympäröivän valon värin mukaan. Nämä kaksi ohjelmaa ovat lähes identtisiä. Käytämme Adafruit NeoPixel -kirjastoa, ja virityskortin ominaisuudet ovat näissä ohjelmissa. Nämä ohjelmat on mukautettu teatterinChaseRainbow () -toiminnosta Adafruit_NeoPixel/esimerkit/Strandtest.ino (ladattu 29.7.2015)

Valaistus pysyy suhteellisen vakiona, kun taas valon väri muuttuu värien väripyörän läpi. Edistyminen väripyörän ympärillä luodaan aloittamalla 100% punaisesta ja lisäämällä asteittain punaista ja lisäämällä vihreää. Kun vihreä on 100%, se pienenee ja kasvaa samalla sinisenä. Ja lopuksi, kun sininen vähenee ja punainen kasvaa, tulet täyteen ympyrään.

Tämä tarjoaa valaistuksen käyttämällä kahta pääväriä ja jättää yhden pois. Kun käymme läpi tämän valaistuksen väripyörän jossain vaiheessa, kaikki taideteoksen värit puuttuvat mukana toimitetusta valosta. Tuloksena oleva muutos havaituissa väreissä voi olla melko dramaattinen ja siitä tulee osa taiteen ilmaisua. Joten jos punaista ei ole valossa, kaikki maalauksen punaiset näyttävät tummilta. Kun valo on puhdasta punaista, punainen todella hehkuu ja muut värit mykistetään.

Vaihe 13: Esimerkkejä ohjaimen ohjelmoinnista Kuparipää:

Jeanie Holtin "Copperhead" käyttää valaistuksen vaihtelua parantaakseen ulkotunnetta ja vaihtelua käärmeen näkyvyydessä. Ohjelmointi kerää valoaallot taustavalaistuksen päälle.

Tässä ohjelmassa käytimme FastLED -kirjastoa ja viritinpiiriämme kehittämiseen.

Taustaväri on asetettu 10 pisteeseen kehyksen ympärille ja funktiota fill_gradient () käytetään siirtymään sujuvasti väreistä toiseen.

Katselujakson alussa tausta himmenee ja väri muuttuu siniseksi käyttämällä kosinikäyrää ajan myötä ja setBrightness () -toimintoa.

Viiveen jälkeen kolme valoaaltoa liikkuu oikeasta yläkulmasta vasempaan alakulmaan. Ensimmäinen aalto on kirkkain ja seuraavat aallot himmenevät. Ensimmäinen aalto liikkuu myös hitaammin.

Vaihe 14: Ohjaimen ohjelmointiesimerkit Black Doodle:

Image
Image

Jeanie Holtin”Black Doodle” tutkii heijastuksia mustasta vinyylistä.

Tämä ohjelma käyttää myös FastLED -kirjastoa ja voi ottaa vastaan viritystä.

Valaistus koostuu jopa viidestä samanaikaisesta valonäytöstä, jotka toistuvat satunnaisista pisteistä kehyksen ympärillä. Jokainen näyttö kulkee ajan myötä samoilla 60 kirkkausarvolla. Jokaisessa näytössä on 7 viereistä LEDiä, joiden kirkkaus pienenee reunoja kohti. Ennen jokaista näyttöä alkaa satunnainen viive. Näytön sijainti on satunnainen, mutta aktiivisen näytön lähellä olevat sijainnit on estetty.

Tausta on värien sateenkaari, joka leviää kehyksen ympärille. Tämä tausta sateenkaari kääntyy hitaasti ja muuttaa satunnaisesti suuntaa.

Nämä kuvaukset ovat yleiskatsaus ja apu ohjelmien lukemiseen. Toivomme, että löydät joitain näistä valotehosteista tarpeeksi mielenkiintoisia sisällytettäväksi johonkin projekteistasi. Linkki osoitteeseen github.com, johon ohjelmat on tallennettu, on vaiheessa 2 Resurssit.

Vaihe 15: Viritystoimintojen ohjelmointi:

RainForest -ohjelmassa voimme kytkeä viritystoiminnon päälle "#define TUNING 1" -toiminnolla ja liittää viritystulokortin nauhakaapelilla. Meidän on myös asetettava parametrit, joiden LED -viritys vaikuttaa viritykseen. Säädetään esimerkiksi merkkivaloja kohdissa 61 - 73. Käytämme #define START_TUNE 61 ja #define END_TUNE 73. Asetamme merkkijonon muut segmentit taustaväriksi asetuksessa () käyttämällä fill_gradient_RGB () -puheluita. Loput luonnoksestasi eivät saa asettaa viritysalueen LED -valoja tai et voi nähdä säätöjäsi. Suorita nyt luonnos ja näytä sarjamonitori. Ohjelman viritysosassa on 4 tilaa [sävy, kylläisyys, arvo ja kirkkaus]. Värisävy on väripyörä, jossa 0 = punainen ja 255 sinisestä lähes punaiseksi. Nykyinen tila tulee tulostaa sarjamonitoriin ja virityskortin merkkivalo vilkkuu osoittamaan tilaa (yksi välähdys on sävy; kaksi välähdystä on kylläisyys ja niin edelleen). Arvo on valon voimakkuus ja kirkkaus on vähennystekijä, jota sovelletaan kaikkiin LED -valojen voimakkuusarvoihin. Täydelle kirkkaudelle on siis asetettava Arvo = 255 ja Kirkkaus = 255. Vaihda tilaa painamalla painiketta. Kun olet tilassa, jota haluat säätää, käännä nuppia. Ohjelma jättää säätimen huomiotta, kunnes sitä käännetään enemmän kuin INHIBIT_LEVEL. Tämä välttää arvojen muuttamisen muissa tiloissa, kun selaat niitä. Esimerkki siitä, että voit aloittaa värisävyllä ja saada haluamasi värin, siirtyä sitten arvoon ja säätää löytääksesi haluamasi kirkkauden.

Macaw- ja Nordic_Tree -luonnokset sisältävät virityksen, mutta toiminnot ovat hieman erilaisia. Näissä luonnoksissa on vain kaksi tilaa. Yksi kirkkaudelle ja toinen väripyörän asennolle. Näiden esimerkkien avulla näet, miten viritystoiminnot voidaan mukauttaa toimimaan useimpien valonohjauksen parametrien kanssa.

Varastoon kuuluu luonnos 'Tuning', joka ottaa viritystoiminnot RainForestilta. Tämä luonnos on vain viritystoimintoja, joten voit tutkia ja seurata helpommin luonnoksen toimintaa. Käytämme tätä luonnosta hallitaksesi testivalaistuskehystä, jonka voimme nopeasti sijoittaa taideteoksen päälle ja tutkia valotehosteita. Myöhemmin käytämme viritystietoja rakentaaksesi mukautetun valaistusohjaimen.

Toivottavasti tästä ohjeesta on hyötyä projektisi toteuttamisessa.

Vaihe 16: Loput tarinasta:

Tämä on yksi tämän projektin kahdesta ohjeesta. Jos et ole jo tehnyt sitä, tutustu kumppaniohjeeseen osoitteessa:

Suositeltava: