Indholdsfortegnelse:

Dynamisk LED -belysningskontroller til kunst: 16 trin (med billeder)
Dynamisk LED -belysningskontroller til kunst: 16 trin (med billeder)

Video: Dynamisk LED -belysningskontroller til kunst: 16 trin (med billeder)

Video: Dynamisk LED -belysningskontroller til kunst: 16 trin (med billeder)
Video: Маша и Медведь (Masha and The Bear) - Маша плюс каша (17 Серия) 2024, Juli
Anonim
Image
Image

Introduktion:

Belysning er et vigtigt aspekt af billedkunst. Og hvis belysningen kan ændre sig med tiden, kan det blive en betydelig dimension af kunsten. Dette projekt startede med at deltage i et lysshow og opleve, hvordan belysningen helt kunne ændre farven på et objekt. Vi begyndte at udforske dette inden for belysning af stofkunst. Indtil videre har vi bygget dynamisk belysning til 8 stykker inklusive et maleri og et fotografi. Belysningseffekterne har inkluderet: simulering af daggry og solnedgang, undervandslys gennem en rislende overflade, lyn i skyer og dramatisk ændring af de opfattede farver og stemning i kunstværket. Videoer af disse effekter er inkluderet i programmeringstrinnene herunder.

Denne instruktive bygger en controller, der indstiller lysstyrken og farven på en streng af individuelt adresserbare lysdioder over tid. Det inkluderer også et valgfrit indgangskredsløb til manuel indstilling (indstilling af lysstyrke og farve) af et segment af belysningen. Du vil også lære om mange problemer og forbedringer, vi opdagede undervejs.

Vi skrev også en tilhørende instruktion om at bygge skyggeæsken og rammen. Tjek det ud på:

For nu vil vi fokusere på elektronik og programmering.

Trin 1: Materialer:

  • String af WS2812 LED'er
  • Arduino Pro Mini 328 - 5V/16 MHz
  • FTDI Friend USB -grænseflade
  • USB A til MiniB -kabel til FTDI
  • 4700 μf kondensator
  • 5v strømforsyning med 5,5 x 2,1 stik
  • Stikkontakt 5,5 x 2,1
  • Terminalblok
  • Prototype printkort
  • Knap
  • Potentiometer
  • Indikator LED
  • Modstande
  • Båndkabel
  • Header mand
  • Header kvinde

Trin 2: Ressourcer:

  • Arduino; Interaktivt udviklingsmiljø (IDE)
  • Adafruit NeoPixel Library
  • NeoPixel Tutorial
  • Strandtest -eksempelprogram
  • FastLED -bibliotek
  • FastLED -links og dokumentation
  • FastLED Forum
  • Vores belysningskitser

Trin 3: Controller Oversigt:

Controller Oversigt
Controller Oversigt
Controller Oversigt
Controller Oversigt

Skematikken ser ret enkel ud, og det er den. Vi byggede vores controllere til at blive integreret i en billedramme. Dimensioner på kredsløbet på billedet er 2,25 "x 1,3" x 0,5 ". Den valgfrie tuner blev bygget på et separat printkort med et båndkabelstik. Disse billeder viser vores færdige projekt.

Vi vil passe vores controller ind i billedrammen, så vi valgte Arduino pro mini 5v for sin lille størrelse, pris og 5v output. Størrelsen på den 5v strømforsyning, du har brug for, afhænger af, hvor mange lysdioder og deres maksimale lysstyrke i dit projekt. Vores projekter kørte alle mindre end 3 ampere, og nogle var mindre end 1 amp. Der er flere typer adresserbare farve -lysdioder. Vi startede med WS2812 solgt af Adafruit som et af deres “NeoPixel” produkter. Dette fungerede for os, og vi har ikke undersøgt andre lysdioder. De fleste af vores projekter brugte 60 LED pr. Meter strimmel. Hidtil har vores projekter varieret op til 145 lysdioder.

Valgfri tuner:

Vi byggede et lille input -kredsløb “tuner”, så vi let kunne justere segmenter af belysning uden at ændre og uploade programmet for hver justering. Den har: en output -LED, der blinker input -tilstanden; en knap, der skifter input -tilstand; og en knap, der kan justeres. Arduino kan derefter udsende værdierne til en tilsluttet computer.

Trin 4: Bygningscontroller:

Bygningscontroller
Bygningscontroller

Materialelisten indeholder ikke den ledning, krympeslange og andre forbrugsvarer, du kan få brug for. Til 5v- og jordkredsløbet til lysdioderne foreslår jeg, at du bruger 26 gauge eller tungere tråd. Vi brugte 26 gauge. Også silikoneisolering på tråden er bedre, fordi den ikke smelter i nærheden af, hvor du lodder, og den er mere fleksibel. Jeg fandt at efterlade lidt mere plads mellem komponenterne gjorde fremstilling meget lettere. For eksempel er controlleren afbildet i trin #6 mellemrummet mellem huset til stikkontakten (sort) og klemrækken (blå) omkring 1 tommer. Vores monteringsbetræk er to lag træfiner.

Billedet i dette trin viser tilslutningen af en seks kontakt kvindelig header til den valgfri tuner. Den ubrugte kontakt mellem den røde og grønne ledning tilsluttes med et stykke tandstikker for at forhindre omvendt forbindelse.

Trin 5:

Billede
Billede
Billede
Billede
Billede
Billede

Lad os nu sætte det sammen, så det passer ind i skyggeboksrammen. Rammen er 3/4 "tyk, så vi har en controller højde grænse på 1/2". Vi lavede monteringsplader ved at stikke to stykker finerhærder med kornet vinkelret på hinanden for at begrænse vridning. Komponenterne er arrangeret, så strømstikket vil være i midten af rammen. Hullet til strømstikket blev skåret med en juvelersav og arkiveret for at passe. Komponenterne forbindes derefter sammen før montering. Stikkontakten limes på plads med epoxy. Dobbeltsidet permanent skummonterings firkant bruges under skrueterminalen og arduino. Smeltelim bruges også til at holde arduinoen på plads såvel som kondensatoren.

Trin 6: Opbygning af valgfri tuner:

Bygning valgfri tuner
Bygning valgfri tuner
Bygning valgfri tuner
Bygning valgfri tuner
Bygning valgfri tuner
Bygning valgfri tuner

Vi byggede et lille input -kredsløb “tuner”, så vi let kunne justere segmenter af belysning uden at ændre og uploade programmet for hver justering. Den har: en output -LED, der blinker input -tilstanden; en knap, der skifter input -tilstand; og en knap, der kan justeres. Arduino kan derefter udsende værdierne til en tilsluttet computer.

Disse billeder viser tunerens fremstilling. Jeg dækkede bagsiden med "Gorilla" tape. Hvilket holder båndkablet stabilt og også lavede et flot håndtag.

Trin 7: Oversigt over programmering af controller:

Dette er virkelig den svære del af projektet. Forhåbentlig vil du være i stand til at bruge nogle af vores kode og metoder til at komme godt i gang.

Adafruit og FastLED har udgivet to store biblioteker, der gør det muligt for Arduinos at styre mange slags adresserbare lysdioder. Vi bruger begge disse biblioteker i forskellige projekter. Vi foreslår, at du også læser noget af ressourcematerialet på disse biblioteker og udforsker nogle af deres eksempelprogrammer.

Github -depotet af vores programmer er angivet i "Ressourcer" ovenfor. Bemærk, vi er langt fra dygtige til Arduino -programmering, så der er masser af plads til forbedringer. Du er velkommen til at påpege spørgsmål og bidrage med forbedringer.

Trin 8: Programmering af controllereksempel Ripple:

“Ripple” af Jeanie Holt var vores første succes. Dette stykke er en stofkunstfisk i en skygge -ramme. Belysningen er konstant lav, blå nedenfra. Og ovenfra, op til tre aksler af stærkere hvidt lys, der bevæger sig mod højre som til venstre, som om de brydes ved at bevæge krusninger på vandoverfladen. Dette er et ret simpelt koncept, og programmet bruger ikke “tuner” -indgange. Det starter med at inkludere Adafruit -biblioteket og definere output -kontrolnålen og antallet af lysdioder. Dernæst foretager vi engangsopsætning af seriel kommunikation og LED-strip. Derefter definerer vi en række interne variabler, f.eks. Forsinkelsen mellem opdateringer, egenskaberne ved en lysaksel (dens lysstyrke over tid og dens bevægelse) og angiver derefter variabler for hver lysaksel.

Funktionen "changeBright ()" øger lysstyrken på en lysaksel under "angreb" -tiden, holder den konstant i "vedligeholdelsestiden" og falmer derefter ud over "henfaldstiden".

Funktionen "krusning ()" kaldes for hver af de tre lysaksler under hvert tidsforøgelse. Den midlertidige lysstyrke beregnes ud fra fading fra maksimal lysstyrke ved et konstant henfald over tid. Derefter beregnes lysstyrken for hver LED til venstre for startpositionen. Vi kan forestille os en lysbølge, der bevæger sig til venstre. Hver LED til venstre er på et tidligere tidspunkt i krusningstidens kurve for lysstyrke. Når denne krusning har nul lysstyrke for alle lysdioder, er det færdige flag sat til 1. Hvis lysdioden allerede er lysere (indstillet af en af de andre krusninger) lader vi værdien være uændret.

Hovedløkken starter ved at slukke for LED'erne. Derefter kalder den for hver af de tre krusninger rippelfunktionen og øger sin tidstæller. Hvis det færdige flag er indstillet, starter det krusningen forfra. Endelig sætter hovedsløjfen et lyseblåt lys hen over bunden.

Trin 9: Programmering af controllereksempel Dawn to Dusk:

Image
Image

Det næste projekt, "Dawn to Dusk" af Jeanie Holt, er endnu et stofkunstværk denne gang et træ med efterårsfarvet løv. Belysningen er en simulering af dagen med daggry, der begynder at lyse til venstre, der går frem til lyst midt på dagen efterfulgt af rødlige solnedgangsfarver og skrider frem til natten. Udfordringen her er at forenkle beskrivelsen af skiftende farve og lysstyrke med tiden over en stribe på 66 lysdioder. Den anden udfordring er at få lyset til at skifte gnidningsløst. Vi kæmpede virkelig med det mærkbare skift i lyset ved lave lysniveauer. Jeg forsøgte at få glattere lysovergange ved hjælp af FastLED -biblioteket, men det lykkedes ikke. Denne programbeskrivelse vil være mindre detaljeret. Igen brugte vi Adafruit's NeoPixel -bibliotek.

Vi gik til en konvention om at starte vores LED -strimler i øverste venstre hjørne. Dette gør LED -placeringsnummereringen lidt akavet i dette stykke. Der er 86 lysdioder omkring rammen. Dawn lyser op i venstre side, der går fra 62 til 85. Derefter er øverst til venstre til nederst til højre 0 til 43.

Dette program inkluderer ikke muligheden for at bruge "Tuner" input kredsløb.

Dette program bruger tidskrævende til at reducere flimmer. Vi opdaterer hver femte LED, derefter kommer vi rundt om skift over en og opdaterer hver femte LED og gentager, indtil de alle er opdateret. Af denne grund definerer vi længden af LED -strengen lidt længere, end den virkelig er.

Nu her er hvordan vi forenklede beskrivelsen af belysningsmønsteret. Vi identificerede 12 reference -LED -positioner rundt om rammen fra nederste venstre til nederste højre. Derefter definerede vi den røde, grønne og blå (RGB) LED -intensitet for disse reference -LED'er med op til 12 brudpunkter gennem tidsrummet mellem daggry og skumring. For hvert brudpunkt er der 4 bytes, antallet af tid tæller siden det sidste brudpunkt og en byte -værdi for hver af RGB -farverne. Dette array fylder 576 bytes værdifuld hukommelse.

Vi bruger nu lineær interpolation til at finde værdier mellem breakpoints og igen lineær interpolation til at finde værdier for LED'erne placeret mellem reference LED'er. For at interpolationen skal fungere godt, skal vi bruge nogle flydende mellemværdier. Daggry til skumringen er opdelt i 120 perioder i et halvt sekund.

Trin 10: Eksempel på programmering af controller Regnskov:

Det næste projekt, jeg vil beskrive, er “Rain Forest” af Juli-Ann Gasper. Dette er et større stofkunstværk med meget dybde. Her brugte vi en skyggeboks omkring 4,4”dyb. Belysningskonceptet er baggrundslysniveauer, der er svagere i bunden med lys, der af og til blinker gennem bladene ovenfor. Konceptet her ligner Ripple, men lysakslerne bevæger sig ikke. Og i modsætning til krusning, hvor lysstyrken ændres jævnt, skal flimmerlysstyrken svinge. Vi skabte et 40 byte array kaldet flicker_b2. Vi fandt ud af, at den visuelle effekt var fin, hvis vi brugte det samme mønster til alle flimmersteder. Vi etablerede 5 flimrende steder. Når vi gennemgik den visuelle effekt, fandt vi ud af, at en af flimmerne skulle være meget bredere end de andre. Vi brugte funktionen fill_gradient_RGB () til at strække det flimmer ud over omkring 20 lysdioder. Hver flimmer er uafhængig og starter tilfældigt. Sandsynligheden for hver flimmer kan indstilles.

Baggrundsfarven skal indstilles og gendannes, når flimmeren ikke er lysere end baggrunden.

Til dette stykke brugte vi FastLED -biblioteket. I dette program bruges #define TUNING til at angive, om tuningkortet er tilsluttet, det skal være 0, når tunerkortet ikke er tilsluttet. Ellers er controlleren følsom over for statisk elektricitet og poltergeister. Compileren indeholder kun de programsegmenter, der bruger "Tuner", når denne variabel er 1.

Trin 11: Programmering af controller Eksempel Storm:

Et andet projekt var at tænde et fotografi kaldet "Storm" af Mike Beck. Billedet er en stormsky. Vi bruger FastLED -bibliotek og inkluderer ikke tuning -funktionen. Belysningskonceptet her er noget baggrundslys med lyn, der vises tilfældigt på tre punkter rundt om skyen. Blitzen på hvert sted skyldes tre lysdioder. Pladsen mellem disse lysdioder er forskellig for hvert sted. Lysstyrken på disse tre lysdioder defineres af tre 30 byte arrays. Lysstyrkesekvensen i de tre arrays giver variation og tilsyneladende bevægelse hen over de tre lysdioder. Retningen for den opfattede bevægelse og den samlede lysstyrke vælges for hvert sted. Blitzens varighed på hvert sted justeres af tidsforsinkelsen mellem opdatering af lysstyrkeværdier. Der er en tilfældig tidsforsinkelse mellem 0,2 og 10,4 sekunder mellem lynnedslag. Hvilken af de tre strejkesteder er også tilfældig med 19% chance for oven i skyen, 45% chance for nederst til højre og 36% chance langs venstre side.

Trin 12: Programmering af controllereksempler Macaw og Nordic Tree:

Stykkerne “Macaw” af Dana Newman og “Nordic Tree” af Jeanie Holt bruger lysfarve til at ændre værkets opfattede farve. Og i tilfælde af Danas maleri af en stor ara ændrer fuglens stemning sig fra glædeligt til truende afhængigt af lysets farve, der omgiver fuglen. Disse to programmer er næsten identiske. Vi bruger Adafruit NeoPixel bibliotek, og tuning board -funktionen er i disse programmer. Disse programmer er tilpasset fra theaterChaseRainbow () -funktionen i Adafruit_NeoPixel/eksempler/Strandtest.ino (downloadet 7/29/2015)

Belysningen holdes på en relativt konstant lysstyrke, mens lysets farve skifter fremad gennem et farvehjul med farver. Fremskridt omkring farvehjulet skabes ved at starte med 100% rødt og gradvist faldende rødt, mens det øges grønt. Når grønt er på 100%, reduceres det, mens det øges blåt. Og endelig som blå er reduceret og rød øget du kommer fuld cirkel.

Dette giver belysning ved hjælp af to af de primære farver og efterlader en. Når vi cykler gennem dette lysfarvehjul på et tidspunkt, mangler enhver farve i kunstværket i det medfølgende lys. Den resulterende ændring i opfattet farve kan være ret dramatisk og bliver en del af kunstudtrykket. Så hvis der ikke er rødt i lyset, vil enhver rød i maleriet blive mørk. Når lyset er rent rødt, så lyser det røde virkelig, og de andre farver er dæmpede.

Trin 13: Programmering af controllereksempler Copperhead:

"Copperhead" af Jeanie Holt bruger lysvariation til at forstærke følelsen af udendørs og variation i slangens iøjnefaldende karakter. Programmeringslagene bølger af lys oven på baggrundsbelysning.

Til dette program brugte vi FastLED -biblioteket sammen med vores Tuner -kredsløb til udvikling.

Baggrundsfarven er indstillet til 10 punkter rundt om rammen, og funktionen fill_gradient () bruges til problemfrit at skifte mellem farver.

I begyndelsen af en visningscyklus dæmpes baggrunden, og farven skifter til blå ved hjælp af en cosinuskurve over tid og funktionen setBrightness ().

Efter en forsinkelse bevægede tre lysbølger sig fra øverste højre til nederste venstre. Den første bølge er den lyseste med følgende bølger, der bliver svagere. Den første bølge bevæger sig også langsommere.

Trin 14: Programmering af controllereksempler Black Doodle:

Image
Image

“Black Doodle” af Jeanie Holt udforsker refleksioner af sort vinyl.

Dette program bruger også FastLED -biblioteket og kan tage input fra tuningkredsløbet.

Belysningen består af op til 5 samtidige lysvisninger, der afspiller fra tilfældige punkter rundt om rammen. Hvert display udvikler sig gennem de samme 60 lysværdier over tid. Hver skærm involverer 7 tilstødende lysdioder med lysstyrken faldende mod kanterne. Inden hvert display starter er der en tilfældig forsinkelse. Placeringen af displayet er tilfældig, men steder i nærheden af et aktivt display er spærret.

Baggrunden er en regnbue af farver spredt rundt om rammen. Denne baggrundsregnbue vender langsomt og vender tilfældigt retning.

Disse beskrivelser er en oversigt og hjælp til læsning af programmerne. Vi håber, at du finder nogle af disse lyseffekter interessante nok til at indgå i et af dine projekter. Et link til github.com, hvor programmerne gemmes, er i trin 2 -ressourcer.

Trin 15: Programmering af tuningsfunktionerne:

I RainForest -programmet kan vi slå tuningfunktionen til ved "#define TUNING 1" og vedhæfte tuning -inputkortet ved hjælp af dets båndkabel. Vi skal også indstille parametre, for hvilke LED'en vil blive påvirket af tuningen. Lad os f.eks. Justere lysdioder i positionerne 61 til 73. Vi bruger #define START_TUNE 61 og #define END_TUNE 73. Vi indstiller andre segmenter af strengen til baggrundsfarver i opsætning () ved hjælp af fill_gradient_RGB () opkald. Resten af din skitse bør ikke indstille lysdioderne i tuningsområdet, eller du vil ikke kunne se dine justeringer. Kør nu skitsen og vis den serielle skærm. Tuningsdelen af programmet har 4 tilstande [Farvetone, mætning, værdi og lysstyrke}. Hue er farvehjulet med 0 = rødt og 255 forbi blå til næsten rødt. Den aktuelle tilstand skal udskrives på den serielle skærm, og indikatorlampen på tuningkortet blinker for at angive tilstanden (et blink er farvetone, to blink er mætning og så videre). Værdi er lysintensiteten, mens lysstyrke er en reduktionsfaktor, der anvendes på alle lysdiodernes intensitetsværdier. Så for fuld lysstyrke indstil Værdi = 255 og Lysstyrke = 255. Tryk på knappen for at skifte tilstand. Når du er i den tilstand, du vil justere, drejes knappen. Programmet ignorerer knappen, indtil den drejes mere end INHIBIT_LEVEL. Dette undgår at ændre værdier i de andre tilstande, når du cykler igennem dem. Eksempel kan du starte med Hue og få den farve, du ønsker, og derefter skifte til værdi og justere for at finde den ønskede lysstyrke.

Macaw- og Nordic_Tree -skitserne inkluderer tuning, men funktionerne er lidt forskellige. I disse skitser er der kun to tilstande. En for lysstyrke og en for farvehjulsposition. Med disse eksempler kan du se, hvordan du tilpasser tuningsfunktionerne til at fungere med de fleste parametre i din belysningskontrol.

Inkluderet i depotet er en skitse 'Tuning', som tager tuningsfunktionerne fra RainForest. Denne skitse er kun tuningsfunktionerne, så du kan udforske og lettere følge, hvordan skitsen fungerer. Vi bruger denne skitse til at styre en testbelysning, som vi hurtigt kan placere over et kunstværk og udforske lyseffekter. Senere vil vi bruge tuningsoplysningerne til at bygge den brugerdefinerede belysningskontroller.

Håber du finder denne instruktive nyttig til at få dit projekt til at fungere.

Trin 16: Resten af historien:

Dette er en af to instruktører på dette projekt. Hvis du ikke allerede har gjort det, kan du tjekke den ledsager, der kan instrueres på:

Anbefalede: