Innholdsfortegnelse:

Dynamisk LED -belysningskontroller for kunst: 16 trinn (med bilder)
Dynamisk LED -belysningskontroller for kunst: 16 trinn (med bilder)

Video: Dynamisk LED -belysningskontroller for kunst: 16 trinn (med bilder)

Video: Dynamisk LED -belysningskontroller for kunst: 16 trinn (med bilder)
Video: 💫 Aesthetic Sand Art Picture 💫 Moving Sand Art / Sandscapes picture 2024, Juli
Anonim
Image
Image

Introduksjon:

Belysning er et viktig aspekt ved visuell kunst. Og hvis belysningen kan endres med tiden, kan det bli en betydelig dimensjon av kunsten. Dette prosjektet startet med å delta på et lysshow og oppleve hvordan belysningen helt kunne endre fargen på et objekt. Vi begynte å utforske dette innen belysning av stoffkunst. Så langt har vi bygget dynamisk belysning for 8 stykker inkludert et maleri og et fotografi. Belysningseffektene har inkludert: simulering av daggry og solnedgang, undervannslys gjennom en krusende overflate, lyn i skyer og dramatisk endring av de oppfattede fargene og stemningen i kunstverket. Videoer av disse effektene er inkludert i programmeringstrinnene nedenfor.

Denne instruerbare bygger en kontroller som angir lysstyrke og farge på en streng med individuelt adresserbare lysdioder over tid. Den inkluderer også en valgfri inngangskrets for manuell innstilling (innstilling av lysstyrke og farge) av et segment av belysningen. Du vil også lære om mange problemer og forbedringer vi oppdaget underveis.

Vi skrev også en tilhørende instruksjon om hvordan du bygger skyggekassen og rammen. Sjekk det ut på:

Foreløpig vil vi fokusere på elektronikk og programmering.

Trinn 1: Materialer:

  • String av WS2812 lysdioder
  • Arduino Pro Mini 328 - 5V/16 MHz
  • FTDI Friend USB -grensesnitt
  • USB A til MiniB -kabel for FTDI
  • 4700 μf kondensator
  • 5v strømforsyning med 5,5 x 2,1-kontakt
  • Strømuttak 5,5 x 2,1
  • Terminalblokk
  • Prototype kretskort
  • Knapp
  • Potensiometer
  • Indikator LED
  • Motstander
  • Båndkabel
  • Header hann
  • Header hunn

Trinn 2: Ressurser:

  • Arduino; Interaktivt utviklingsmiljø (IDE)
  • Adafruit NeoPixel Library
  • NeoPixel-opplæring
  • Strandtest -eksempelprogram
  • FastLED -bibliotek
  • FastLED -lenker og dokumentasjon
  • FastLED -forum
  • Våre belysningskisser

Trinn 3: Oversikt over kontrolleren:

Oversikt over kontrolleren
Oversikt over kontrolleren
Oversikt over kontrolleren
Oversikt over kontrolleren

Skjematikken ser ganske enkel ut, og det er den. Vi bygde kontrollerne våre for å være innebygd i en bilderamme. Dimensjonene til kretsen på bildet er 2,25 "x 1,3" x 0,5 ". Den valgfrie tuneren ble bygget på et separat kretskort med en båndkabelkontakt. Disse bildene viser vårt ferdige prosjekt.

Vi ønsker å passe kontrolleren inn i bilderammen, så vi valgte Arduino pro mini 5v for sin lille størrelse, pris og 5v utgang. Størrelsen på 5v strømforsyningen du trenger vil avhenge av hvor mange lysdioder og maksimal lysstyrke i prosjektet ditt. Alle prosjektene våre kjørte mindre enn 3 ampere, og noen var mindre enn 1 ampere. Det finnes flere typer adresserbare lysdioder. Vi begynte med WS2812 som ble solgt av Adafruit som et av deres "NeoPixel" -produkter. Dette fungerte for oss, og vi har ikke utforsket andre lysdioder. De fleste av prosjektene våre brukte 60 LED per meter stripe. Så langt har prosjektene våre spredt seg til 145 lysdioder.

Valgfri tuner:

Vi bygde en liten inngangskrets “tuner” slik at vi enkelt kunne justere segmenter av belysning uten å endre og laste opp programmet for hver justering. Den har: en utgangs -LED som blinker inngangsmodusen; en knapp som skifter inngangsmodus; og en knapp som kan justeres. Arduino kan deretter sende ut verdiene til en tilkoblet datamaskin.

Trinn 4: Byggekontroller:

Bygningskontroller
Bygningskontroller

Materialelisten inneholder ikke ledningen, krympeslangen og andre rekvisita du trenger. For 5v- og bakkekretsen til lysdiodene foreslår jeg at du bruker 26 gauge eller tyngre tråd. Vi brukte 26 gauge. Silikonisolering på ledningen er også bedre fordi den ikke smelter i nærheten av der du lodder og er mer fleksibel. Jeg fant at det var litt mer plass mellom komponentene som gjorde fremstillingen mye enklere. For eksempel er kontrolleren avbildet i trinn #6, mellomrommet mellom huset til strømuttaket (svart) og rekkeklemmen (blått) er omtrent 1 tomme. Monteringsdekselet er to lag med trefiner.

Bildet i dette trinnet viser ledninger til en seks -kontakt kvinnelig overskrift for valgfri tuner. Den ubrukte kontakten mellom den røde og grønne ledningen plugges med et stykke tannpirker for å forhindre omvendt tilkobling.

Trinn 5:

Bilde
Bilde
Bilde
Bilde
Bilde
Bilde

La oss sette den sammen slik at den passer inn i skyggerammen. Rammen er 3/4 "tykk, så vi har en kontrollerhøydegrense på 1/2". Vi lagde monteringsplater ved å stikke to stykker finerherder med kornet vinkelrett på hverandre for å begrense vridning. Komponentene er ordnet slik at strømkontakten vil være i midten av rammen. Hullet til strømuttaket ble kuttet med en juvelersag og arkivert for å passe. Komponentene kobles deretter sammen før montering. Sokkelen limes på plass med epoxy. Dobbeltsidige permanente skummonteringsruter brukes under skrueterminalen og arduinoen. Smeltelim brukes også til å holde arduinoen på plass, så vel som kondensatoren.

Trinn 6: Bygg valgfri tuner:

Bygge valgfri tuner
Bygge valgfri tuner
Bygge valgfri tuner
Bygge valgfri tuner
Bygge valgfri tuner
Bygge valgfri tuner

Vi bygde en liten inngangskrets “tuner” slik at vi enkelt kunne justere segmenter av belysning uten å endre og laste opp programmet for hver justering. Den har: en utgangs -LED som blinker inngangsmodusen; en knapp som skifter inngangsmodus; og en knapp som kan justeres. Arduino kan deretter sende ut verdiene til en tilkoblet datamaskin.

Disse bildene viser fabrikatet av tuneren. Jeg dekket baksiden med "Gorilla" tape. Som holder båndkabelen stabil og også gjorde et fint håndtak.

Trinn 7: Oversikt over programmering av kontrolleren:

Dette er virkelig den harde delen av prosjektet. Forhåpentligvis vil du kunne bruke noen av våre koder og metoder for å komme godt i gang.

Adafruit og FastLED har utgitt to flotte biblioteker for å gjøre Arduinos i stand til å kontrollere mange typer adresserbare lysdioder. Vi bruker begge disse bibliotekene i forskjellige prosjekter. Vi foreslår at du også leser noe av ressursmaterialet på disse bibliotekene og utforsker noen av deres eksempelprogrammer.

Github -depotet for programmene våre er oppført i "Ressurser" ovenfor. Vær oppmerksom på at vi langt fra er dyktige på Arduino -programmering, så det er mye rom for forbedringer. Påpek gjerne problemer og bidra med forbedringer.

Trinn 8: Programmering av kontrolleren Eksempel Ripple:

“Ripple” av Jeanie Holt var vår første suksess. Dette stykket er en stoffkunstfisk i en skyggeboksramme. Belysningen er jevnt lavt blått nedenfra. Og ovenfra, opp til tre aksler med sterkere hvitt lys som beveger seg mot høyre som om de brytes ved å bevege seg krusninger på vannoverflaten. Dette er et ganske enkelt konsept, og programmet bruker ikke “tuner” -inngangene. Det starter med å inkludere Adafruit -biblioteket og definere utgangskontrollnålen og antall lysdioder. Deretter gjør vi engangskonfigurasjon av seriell kommunikasjon og LED-stripe. Deretter definerer vi en rekke interne variabler, for eksempel forsinkelsen mellom oppdateringer, egenskapene til en lysaksel (dens lysstyrke over tid og bevegelsen), og angi deretter variabler for hver lysaksel.

Funksjonen "changeBright ()" vil øke lysstyrken til en lysaksel under "angrep" -tiden, holde den konstant i "opprettholde" -tiden og deretter falme ut over "forfall" -tiden.

Funksjonen "ripple ()" kalles for hver av de tre lysakslene under hvert tidsøkning. Den midlertidige lysstyrken beregnes basert på falming fra maksimal lysstyrke ved et konstant forfall over tid. Deretter beregnes lysstyrken for hver LED til venstre for startposisjonen. Vi kan forestille oss en lysbølge som beveger seg til venstre. Hver LED til venstre er på et tidligere tidspunkt i ringkurvens lysstyrketidskurve. Når denne krusningen har null lysstyrke for alle lysdioder, er det ferdige flagget satt til 1. Hvis lysdioden allerede er lysere (angitt av en av de andre krusningene) lar vi verdien være uendret.

Hovedløkken starter ved å slå av LED -lampene. Så for hver av de tre ringene kaller den ringfunksjonen og øker tidstelleren. Hvis det ferdige flagget er satt, starter det krusningen om. Til slutt setter hovedsløyfen et lyseblått lys over bunnen.

Trinn 9: Eksempel på programmering av kontrolleren Dawn to Dusk:

Image
Image

Det neste prosjektet, "Dawn to Dusk" av Jeanie Holt, er et annet stoffkunstverk denne gangen et tre med høstfarget løvverk. Belysningen er en simulering av dagen med daggry som begynner å lyse på venstre side og går til lys midt på dagen etterfulgt av rødlige solnedgangsfarger og går videre til natt. Utfordringen her er å forenkle beskrivelsen av skiftende farge og lysstyrke over tid over en stripe på 66 lysdioder. Den andre utfordringen er å få lyset til å skifte jevnt. Vi slet virkelig med det merkbare lysskiftet ved lave lysnivåer. Jeg prøvde å få jevnere lysoverganger ved hjelp av FastLED -biblioteket, men lyktes ikke. Denne programbeskrivelsen vil være mindre detaljert. Igjen brukte vi Adafruits NeoPixel -bibliotek.

Vi dro til en konvensjon om å starte LED -stripene våre i øvre venstre hjørne. Dette gjør at LED -plasseringen er litt vanskelig i dette stykket. Det er 86 lysdioder rundt rammen. Dawn lyser opp på venstre side som går fra 62 til 85. Deretter er øverst til venstre til nederst til høyre 0 til 43.

Dette programmet inkluderer ikke muligheten til å bruke inngangen "Tuner".

Dette programmet bruker tidskjøring for å redusere flimmer. Vi oppdaterer hver femte LED, deretter kommer vi rundt skift over en og oppdaterer hver femte LED og gjentar til de alle er oppdatert. Av denne grunn definerer vi lengden på LED -strengen litt lengre enn den egentlig er.

Her er hvordan vi forenklet beskrivelsen av belysningsmønsteret. Vi identifiserte 12 referanse -LED -posisjoner rundt rammen fra nedre venstre til nedre høyre. Deretter definerte vi den røde, grønne og blå (RGB) LED -intensiteten for disse referanse -LED -ene med opptil 12 bruddpunkter gjennom tidsperioden fra daggry til skumring. For hvert brytpunkt er det 4 byte, antall tid teller siden det siste brytpunktet, og en byteverdi for hver av RGB -fargene. Denne matrisen tar opp 576 byte med dyrebart minne.

Vi bruker nå lineær interpolasjon for å finne verdier mellom bruddpunkter og igjen lineær interpolasjon for å finne verdier for lysdiodene som er plassert mellom referanse -lysdioder. For at interpolasjonen skal fungere godt må vi bruke noen flytende mellomliggende verdier. Daggry til skumring perioden er delt inn i 120 halve andre tidsperioder.

Trinn 10: Eksempel på programmering av kontrolleren Rain Forest:

Det neste prosjektet jeg vil beskrive er “Rain Forest” av Juli-Ann Gasper. Dette er et større stoffkunstverk med mye dybde. Her brukte vi en skyggeboks på omtrent 4,4”dyp. Belysningskonseptet er bakgrunnslysnivåer som er svakere i bunnen med lys som flimrer gjennom bladene over fra tid til annen. Konseptet her ligner på Ripple, men lysakslene beveger seg ikke. Og i motsetning til krusning der lysstyrken endres jevnt, må flimmerstyrken svinge. Vi opprettet en 40 byte matrise kalt flicker_b2. Vi fant at den visuelle effekten var fin hvis vi brukte det samme mønsteret for alle flimmerstedene. Vi etablerte 5 flimrende steder. Ved gjennomgang av den visuelle effekten fant vi ut at en av flimmerne måtte være mye bredere enn de andre. Vi brukte funksjonen fill_gradient_RGB () til å strekke den flimringen ut over rundt 20 lysdioder. Hver flimmer er uavhengig og starter tilfeldig. Sannsynligheten for hver flimmer kan angis.

Bakgrunnsfargen må settes og gjenopprettes når flimmeren ikke er lysere enn bakgrunnen.

For dette stykket brukte vi FastLED -biblioteket. I dette programmet brukes #define TUNING for å indikere om tuningkortet er plugget inn, det må være 0 når tunerkortet ikke er plugget inn. Ellers er kontrolleren følsom for statisk elektrisitet og poltergeister. Kompilatoren inneholder bare programsegmentene som bruker “Tuner” når denne variabelen er 1.

Trinn 11: Programmering av kontrolleren Eksempel Storm:

Et annet prosjekt var å tenne opp et fotografi kalt "Storm" av Mike Beck. Bildet er en stormsky. Vi bruker FastLED -bibliotek og inkluderer ikke tuning -funksjonen. Belysningskonseptet her er noe bakgrunnslys med lyn som vises tilfeldig på tre punkter rundt skyen. Blitsen på hvert sted skyldes tre lysdioder. Plassen mellom disse lysdiodene er forskjellig for hvert sted. Lysstyrken til disse tre lysdiodene er definert av tre 30 byte -matriser. Lysstyrkesekvensen i de tre matrisene gir variasjon og tilsynelatende bevegelse over de tre lysdiodene. Retningen for opplevd bevegelse og total lysstyrke velges for hvert sted. Blitsens varighet på hvert sted justeres av tidsforsinkelsen mellom oppdatering av lysstyrkeverdier. Det er en tilfeldig tidsforsinkelse mellom 0,2 og 10,4 sekunder mellom lynnedslag. Hvilken av de tre streikesteder er også tilfeldig med 19% sjanse på toppen av skyen, 45% sjanse for nedre høyre og 36% sjanse langs venstre side.

Trinn 12: Programmering av kontrollereksempler Macaw og Nordic Tree:

Brikkene “Macaw” av Dana Newman og “Nordic Tree” av Jeanie Holt bruker lysfarge for å endre den oppfattede fargen på stykket. Og når det gjelder Danas maleri av en stor ara, endres stemningen til fuglen fra gledelig til truende, avhengig av lysfargen som omgir fuglen. Disse to programmene er nesten identiske. Vi bruker Adafruit NeoPixel -biblioteket, og funksjonen for justeringskort er i disse programmene. Disse programmene er tilpasset fra theaterChaseRainbow () -funksjonen i Adafruit_NeoPixel/eksempler/Strandtest.ino (lastet ned 29.7.2015)

Belysningen holdes på en relativt konstant lysstyrke mens fargen på lyset skifter fremover gjennom et fargehjul med farger. Fremskritt rundt fargehjulet opprettes ved å starte med 100% rødt og gradvis redusere rødt mens det øker grønt. Når grønt er på 100% reduseres det mens det øker blått. Og til slutt når blått reduseres og rødt øker, kommer du i full sirkel.

Dette gir belysning ved hjelp av to av hovedfargene og utelater en. Når vi sykler gjennom dette lysfargehjulet på et tidspunkt vil enhver farge i kunstverket mangle i det medfølgende lyset. Den resulterende endringen i oppfattet farge kan være ganske dramatisk og blir en del av kunstuttrykket. Så hvis det ikke er rødt i lyset, vil rødt i maleriet virke mørkt. Når lyset er rent rødt, så lyser det røde virkelig og de andre fargene dempes.

Trinn 13: Programmering av kontrollereksempler Copperhead:

"Copperhead" av Jeanie Holt bruker lysvariasjon for å forbedre følelsen av utendørs og variasjon i slangens iøynefallende. Programmeringslagene bølger av lys på toppen av bakgrunnsbelysning.

For dette programmet brukte vi FastLED -biblioteket sammen med vår Tuner -krets for utvikling.

Bakgrunnsfargen er satt til 10 punkter rundt rammen, og funksjonen fill_gradient () brukes til jevn overgang mellom farger.

I begynnelsen av en visningssyklus dempes bakgrunnen og fargen skifter til blått ved hjelp av en cosinus -kurve over tid og setBrightness () -funksjonen.

Etter en forsinkelse beveget tre lysbølger seg fra øvre høyre til nedre venstre. Den første bølgen er den lyseste med følgende bølger som blir svakere. Den første bølgen beveger seg også saktere.

Trinn 14: Programmering av kontrollereksempler Black Doodle:

Image
Image

“Black Doodle” av Jeanie Holt utforsker refleksjoner av svart vinyl.

Dette programmet bruker også FastLED -biblioteket og kan ta input fra tuningkretsen.

Belysningen består av opptil 5 samtidige lysvisninger som spilles fra tilfeldige punkter rundt rammen. Hver skjerm utvikler seg gjennom de samme 60 lysstyrkeverdiene over tid. Hver skjerm involverer 7 tilstøtende lysdioder med lysstyrken avtagende mot kantene. Før hver skjerm starter er det en tilfeldig forsinkelse. Plasseringen av skjermen er tilfeldig, men steder i nærheten av en aktiv skjerm er sperret.

Bakgrunnen er en regnbue av farger spredt rundt rammen. Denne bakgrunnsregnbuen svinger sakte og reverserer tilfeldig retning.

Disse beskrivelsene er en oversikt og hjelp til å lese programmene. Vi håper du finner noen av disse lyseffektene interessante nok til å innlemme i et av prosjektene dine. En lenke til github.com der programmene er lagret, er i trinn 2 -ressurser.

Trinn 15: Programmering av tuningsfunksjonene:

I RainForest -programmet kan vi slå på tuningfunksjonen ved å "#define TUNING 1" og feste tuninginngangskortet med båndkabelen. Vi må også angi parametere for hvilke LED som skal påvirkes av tuningen. La oss for eksempel justere lysdioder i posisjonene 61 til 73. Vi bruker #define START_TUNE 61 og #define END_TUNE 73. Vi setter andre segmenter av strengen til bakgrunnsfarger i oppsett () ved hjelp av fill_gradient_RGB () -anrop. Resten av skissen din bør ikke sette lysdiodene i tuningsområdet, eller du vil ikke kunne se justeringene dine. Kjør nå skissen og vis den serielle skjermen. Tuningsdelen av programmet har 4 tilstander [Fargetone, metning, verdi og lysstyrke}. Nyanse er fargehjulet med 0 = rødt og 255 forbi blått til nesten rødt. Den nåværende tilstanden skal skrives ut på den serielle skjermen, og indikatorlampen på tuningbrettet blinker for å indikere tilstanden (ett blink er fargetone, to blink er metning og så videre). Verdi er lysintensiteten mens lysstyrken er en reduksjonsfaktor som brukes på alle LED -intensitetsverdiene. Så for full lysstyrke, sett Verdi = 255 og Lysstyrke = 255. Trykk på knappen for å skifte tilstand. Når du er i tilstanden du vil justere, dreier du på knappen. Programmet ignorerer knappen til den dreies mer enn INHIBIT_LEVEL. Dette unngår å endre verdier i de andre statene når du sykler gjennom dem. Eksempel du kan begynne med fargetone og få den fargen du vil ha, og deretter skifte til verdi og justere for å finne lysstyrken du vil ha.

Macaw- og Nordic_Tree -skissene inkluderer tuning, men funksjonene er litt forskjellige. I disse skissene er det bare to moduser. En for lysstyrke og en for fargehjulsposisjon. Med disse eksemplene kan du se hvordan du tilpasser tuningsfunksjonene til å fungere med de fleste parametere i belysningskontrollen.

Inkludert i depotet er en skisse 'Tuning' som tar tuningsfunksjonene fra RainForest. Denne skissen er bare tuningsfunksjonene, slik at du kan utforske og lettere følge hvordan skissen fungerer. Vi bruker denne skissen til å kontrollere en testbelysning som vi raskt kan plassere over et kunstverk og utforske lyseffekter. Senere vil vi bruke tuningsinformasjonen til å bygge den tilpassede belysningskontrolleren.

Håper du synes dette er nyttig for å få prosjektet til å fungere.

Trinn 16: Resten av historien:

Dette er en av to instruktører på dette prosjektet. Hvis du ikke allerede har det, kan du sjekke ledsageren som kan instrueres på:

Anbefalt: