Innehållsförteckning:

Dynamisk LED -belysningskontroller för konst: 16 steg (med bilder)
Dynamisk LED -belysningskontroller för konst: 16 steg (med bilder)

Video: Dynamisk LED -belysningskontroller för konst: 16 steg (med bilder)

Video: Dynamisk LED -belysningskontroller för konst: 16 steg (med bilder)
Video: AmazingChina: Modular & Flexible LED TV Wall 2024, November
Anonim
Image
Image

Introduktion:

Belysning är en viktig aspekt av bildkonst. Och om belysningen kan förändras med tiden kan det bli en betydande dimension av konsten. Detta projekt började med att delta i en ljusshow och uppleva hur belysningen helt kunde ändra färgen på ett objekt. Vi började utforska detta inom belysning av tygkonst. Hittills har vi byggt dynamisk belysning för 8 stycken inklusive en tavla och ett fotografi. Ljuseffekterna har inkluderat: simulering av gryning och solnedgång, undervattensljus genom en krusande yta, blixtnedslag i moln och dramatisk förändring av de upplevda färgerna och stämningen i konstverket. Videor av dessa effekter ingår i programmeringsstegen nedan.

Denna instruerbara bygger en styrenhet som ställer in ljusstyrkan och färgen på en sträng individuellt adresserbara lysdioder över tid. Den innehåller också en valfri ingångskrets för manuell inställning (inställning av ljusstyrka och färg) för ett segment av belysningen. Du kommer också att lära dig om många problem och förbättringar som vi upptäckte längs vägen.

Vi skrev också en tillhörande instruktion om att bygga skugglådan och ramen. Kolla in det på: https://www.instructables.com/id/Dynamic-LED-Ligh …

För tillfället kommer vi att fokusera på elektronik och programmering.

Steg 1: Material:

  • Sträng av WS2812 lysdioder
  • Arduino Pro Mini 328 - 5V/16 MHz
  • FTDI Friend USB -gränssnitt
  • USB A till MiniB -kabel för FTDI
  • 4700 μf kondensator
  • 5v strömförsörjning med 5,5 x 2,1-kontakt
  • Strömuttag 5,5 x 2,1
  • Terminalblock
  • Prototyp kretskort
  • Knapp
  • Potentiometer
  • Indikatorlampa
  • Motstånd
  • Bandkabel
  • Header man
  • Header female

Steg 2: Resurser:

  • Arduino; Interaktiv utvecklingsmiljö (IDE)
  • Adafruit NeoPixel Library
  • NeoPixel-handledning
  • Strandtest Exempelprogram
  • FastLED -bibliotek
  • FastLED -länkar och dokumentation https://fastled.io/docs
  • FastLED -forum
  • Våra belysningskisser

Steg 3: Controlleröversikt:

Controller Översikt
Controller Översikt
Controller Översikt
Controller Översikt

Schemat ser ganska enkelt ut och det är det. Vi byggde våra kontroller för att vara inbäddade i en bildram. Dimensionerna på kretsen på bilden är 2,25 "x 1,3" x 0,5 ". Tunern (tillval) byggdes på ett separat kretskort med en bandkabelkontakt. Dessa bilder visar vårt färdiga projekt.

Vi vill passa in vår handkontroll i bildramen så vi valde Arduino pro mini 5v för sin lilla storlek, kostnad och 5v utgång. Storleken på den 5v strömförsörjning du behöver beror på hur många lysdioder och deras maximala ljusstyrka i ditt projekt. Alla våra projekt körde mindre än 3 ampere och några var mindre än 1 ampere. Det finns flera typer av adresserbara färg -lysdioder. Vi började med WS2812 som säljs av Adafruit som en av deras “NeoPixel” -produkter. Detta fungerade för oss och vi har inte utforskat andra lysdioder. De flesta av våra projekt använde 60 LED per meter remsa. Hittills har våra projekt varierat upp till 145 lysdioder.

Valfri tuner:

Vi byggde en liten ingångskrets "tuner" så att vi enkelt kunde justera segment av belysning utan att ändra och ladda upp programmet för varje justering. Den har: en utgångs -LED som blinkar ingångsläget; en knapp som ändrar inmatningsläget; och en ratt som kan justeras. Arduino kan sedan mata ut värdena till en ansluten dator.

Steg 4: Byggkontroller:

Byggkontroll
Byggkontroll

Materiallistan innehåller inte tråden, krympslangen och andra tillbehör du kan behöva. För 5v- och jordkretsen till lysdioderna föreslår jag att du använder 26 gauge eller tyngre trådad tråd. Vi använde 26 gauge. Även silikonisolering på tråden är bättre eftersom den inte smälter nära där du lödder och den är mer flexibel. Jag tyckte att det blev mycket lättare att lämna lite mer utrymme mellan komponenterna. Exempelvis är styrenheten som avbildas i steg #6 mellanrummet mellan höljet för eluttaget (svart) och plintblocket (blått) cirka 1 tum. Vårt monteringsskydd är två lager träfaner.

Bilden i det här steget visar ledningarna för en sexkontakt kvinnlig rubrik för valfri tuner. Den oanvända kontakten mellan den röda och gröna tråden pluggas med en bit tandpetare för att förhindra omvänd anslutning.

Steg 5:

Bild
Bild
Bild
Bild
Bild
Bild

Nu kan vi sätta ihop det så att det passar in i skugglådans ram. Ramen är 3/4 "tjock så vi har en höjdgräns för regulatorn på 1/2". Vi gjorde monteringsplattor genom att sticka två bitar av fanerhärdare med kornet vinkelrätt mot varandra för att begränsa vridning. Komponenterna är ordnade så att strömuttaget kommer att vara i mitten av ramen. Hålet för eluttaget klipptes med en juvelerarsåg och arkiverades för att passa. Komponenterna kopplas sedan ihop innan de monteras. Uttaget limmas på plats med epoxi. Dubbelsidiga permanenta skummonteringsrutor används under skruvterminalen och arduino. Smältlim används också för att hålla arduinoen på plats såväl som kondensatorn.

Steg 6: Bygga valfri tuner:

Bygga valfri tuner
Bygga valfri tuner
Bygga valfri tuner
Bygga valfri tuner
Bygga valfri tuner
Bygga valfri tuner

Vi byggde en liten ingångskrets "tuner" så att vi enkelt kunde justera segment av belysning utan att ändra och ladda upp programmet för varje justering. Den har: en utgångs -LED som blinkar ingångsläget; en knapp som ändrar inmatningsläget; och en ratt som kan justeras. Arduino kan sedan mata ut värdena till en ansluten dator.

Dessa bilder visar tillverkaren av tunern. Jag täckte baksidan med "Gorilla" tejp. Som håller bandkabeln stabil och också gjorde ett snyggt handtag.

Steg 7: Översikt över programmeringskontroller:

Detta är verkligen den svåra delen av projektet. Förhoppningsvis kommer du att kunna använda några av våra koder och metoder för att komma igång.

Adafruit och FastLED har publicerat två fantastiska bibliotek för att göra det möjligt för Arduinos att styra många typer av adresserbara lysdioder. Vi använder båda dessa bibliotek i olika projekt. Vi föreslår att du också läser några av resursmaterialet på dessa bibliotek och utforskar några av deras exempelprogram.

Github -förvaret för våra program listas i "Resurser" ovan. Observera att vi är långt ifrån skickliga på Arduino -programmering så det finns gott om utrymme för förbättringar. Peka gärna på frågor och bidra med förbättringar.

Steg 8: Programmering av styrenhetsexempel Rippel:

“Ripple” av Jeanie Holt var vår första framgång. Detta stycke är en tygkonstfisk i en skugglådram. Belysningen är stadig låg nivå blå underifrån. Och uppifrån, upp till tre axlar av starkare vitt ljus som rör sig från höger till vänster som om de bryts genom att röra sig på vattenytan. Detta är ett ganska enkelt koncept och programmet använder inte “tuner” -ingångarna. Det börjar inkludera Adafruit -biblioteket och definierar utgångskontrollnålen och antalet lysdioder. Därefter gör vi en engångsinställning av seriekommunikation och LED-remsa. Sedan definierar vi ett antal interna variabler, till exempel fördröjningen mellan uppdateringar, egenskaperna hos en ljusaxel (dess ljusstyrka över tid och dess rörelse), sedan anger vi variabler för varje ljusaxel.

Funktionen "changeBright ()" kommer att öka ljusstyrkan hos en ljusaxel under "attack" -tiden, hålla den konstant under "sustain" -tiden och sedan blekna över "förfall" -tiden.

Funktionen "rippel ()" kallas för var och en av de tre ljusaxlarna under varje tidsökning. Den tillfälliga ljusstyrkan beräknas baserat på blekning från maximal ljusstyrka vid ett konstant förfall över tiden. Sedan beräknas ljusstyrkan för varje LED till vänster om startpositionen. Vi kan tänka oss en ljuskringla som rör sig till vänster. Varje lysdiod till vänster är vid en tidigare punkt i krusningens ljusstyrka. När denna krusning har noll ljusstyrka för alla lysdioder är den färdiga flaggan inställd på 1. Om lysdioden redan är ljusare (inställd av en av de andra krusningarna) lämnar vi värdet oförändrat.

Huvudslingan startar genom att släcka lysdioderna. Sedan kallar den för var och en av de tre krusningarna rippelfunktionen och ökar sin tidräknare. Om den färdiga flaggan är inställd startar den krusningen om. Slutligen sätter huvudslingan ett blekt blått ljus över botten.

Steg 9: Programmering av styrenhetsexempel Dawn to Dusk:

Image
Image

Nästa projekt, "Dawn to Dusk" av Jeanie Holt, är ett annat tygkonstverk den här gången ett träd med höstfärgat lövverk. Belysningen är en simulering av dagen med gryningen som börjar ljusna till vänster framåt till ljus mitt på dagen följt av rödaktiga solnedgångsfärger och framåt natten. Utmaningen här är att förenkla beskrivningen av skiftande färg och ljusstyrka med tiden över en remsa med 66 lysdioder. Den andra utmaningen är att få ljuset att förändras smidigt. Vi kämpade verkligen med det märkbara ljusskiftet vid låga ljusnivåer. Jag försökte få smidigare ljusövergångar med FastLED -biblioteket men lyckades inte. Denna programbeskrivning kommer att vara mindre detaljerad. Återigen använde vi Adafruits NeoPixel -bibliotek.

Vi gick på en konvention om att starta våra LED -remsor i det övre vänstra hörnet. Detta gör LED -platsnumret lite besvärligt i det här stycket. Det finns 86 lysdioder runt ramen. Dawn lyser upp på vänster sida som går från 62 till 85. Sedan är övre vänstra till nedre höger 0 till 43.

Detta program innehåller inte möjligheten att använda ingångskretsen “Tuner”.

Detta program använder tidsdiffering för att minska flimmer. Vi uppdaterar var femte lysdiod och sedan växlar över en och uppdaterar var femte lysdiod och upprepar tills alla är uppdaterade. Av denna anledning definierar vi längden på LED -strängen lite längre än den verkligen är.

Nu här är hur vi förenklade beskrivningen av belysningsmönstret. Vi identifierade 12 referens -LED -positioner runt ramen från nedre vänster till nedre högra. Därefter definierade vi den röda, gröna och blå (RGB) LED -intensiteten för dessa referens -LED vid upp till 12 brytpunkter genom gryningen till skymningen. För varje brytpunkt finns det 4 byte, antalet tid räknas sedan den senaste brytpunkten och ett byte -värde för var och en av RGB -färgerna. Denna array tar upp 576 byte värdefullt minne.

Vi använder nu linjär interpolering för att hitta värden mellan brytpunkter och igen linjär interpolation för att hitta värden för lysdioderna som ligger mellan referens -lysdioder. För att interpoleringen ska fungera bra måste vi använda några flytande mellanliggande värden. Gryningen till skymningen är uppdelad i 120 halvtidsperioder.

Steg 10: Programmering av styrenhetsexempel Rain Forest:

Nästa projekt som jag kommer att beskriva är “Rain Forest” av Juli-Ann Gasper. Detta är ett större tygkonstverk med mycket djup. Här använde vi en skugglåda ungefär 4,4”djup. Ljuskonceptet är bakgrundsljusnivåer som är svagare i botten med ljus som flimrar genom bladen ovan då och då. Konceptet här liknar Ripple men ljusaxlarna rör sig inte. Och till skillnad från krusning där ljusstyrkan ändras smidigt, här måste flimmerljusstyrkan fluktuera. Vi skapade en 40 byte array som heter flicker_b2. Vi fann att den visuella effekten var bra om vi använde samma mönster för alla flimmerplatser. Vi etablerade 5 flimmerplatser. När vi granskade den visuella effekten fann vi att en av flimmerna måste vara mycket bredare än de andra. Vi använde funktionen fill_gradient_RGB () för att sträcka ut det flimret över cirka 20 lysdioder. Varje flimmer är oberoende och börjar slumpmässigt. Sannolikheten för varje flimmer kan ställas in.

Bakgrundsfärgen måste ställas in och återställas när flimmern inte är ljusare än bakgrunden.

Till detta stycke använde vi FastLED -biblioteket. I detta program används #define TUNING för att indikera om tuningkortet är inkopplat, det måste vara 0 när tunerkortet inte är inkopplat. Annars är regulatorn känslig för statisk elektricitet och poltergeists. Kompilatorn innehåller bara de programsegment som använder “Tuner” när denna variabel är 1.

Steg 11: Programmering av styrenhetsexempel Storm:

Ett annat projekt var att tända ett fotografi med namnet "Storm" av Mike Beck. Bilden är ett stormmoln. Vi använder FastLED -bibliotek och inkluderar inte inställningsfunktionen. Ljuskonceptet här är lite bakgrundsljus med blixtnedslag som slumpmässigt dyker upp vid tre punkter runt molnet. Blixten på varje plats orsakas av tre lysdioder. Utrymmet mellan dessa lysdioder är olika för varje plats. Ljusstyrkan för dessa tre lysdioder definieras av tre 30 byte -matriser. Ljusstyrkesekvensen i de tre matriserna ger variation och skenbar rörelse över de tre lysdioderna. Riktningen för upplevd rörelse och övergripande ljusstyrka väljs för varje plats. Blixtens varaktighet på varje plats justeras med tidsfördröjningen mellan uppdatering av ljusstyrka. Det finns en slumpmässig tidsfördröjning mellan 0,2 och 10,4 sekunder mellan blixtnedslag. Vilken av de tre strejkplatserna är också slumpmässig med 19% chans överst i molnet, 45% chans på nedre höger och 36% chans längs vänster sida.

Steg 12: Programmering av styrenhetsexempel Macaw och Nordic Tree:

Styckarna "Macaw" av Dana Newman och "Nordic Tree" av Jeanie Holt använder ljusfärg för att ändra den upplevda färgen på verket. Och när det gäller Danas målning av en stor ara förändras stämningen hos fågeln från glädjande till hotfull beroende på ljusfärgen som omger fågeln. Dessa två program är nästan identiska. Vi använder Adafruit NeoPixel -biblioteket och inställningsbrädans funktioner finns i dessa program. Dessa program är anpassade från theaterChaseRainbow () -funktionen i Adafruit_NeoPixel/examples/Strandtest.ino (nedladdad 2015-07-29)

Belysningen hålls på en relativt konstant ljusstyrka medan ljusets färg skiftar genom ett färghjul med färger. Framsteg runt färghjulet skapas genom att börja med 100% rött och gradvis minskande rött samtidigt som det ökar grönt. När grönt är 100% minskas det samtidigt som det ökar blått. Och slutligen när blått minskar och rött ökar kommer du i full cirkel.

Detta ger belysning med två av de primära färgerna och lämnar en ut. När vi cyklar genom denna belysning färghjul någon gång någon färg i konstverket kommer att saknas i det medföljande ljuset. Den resulterande förändringen i uppfattad färg kan vara ganska dramatisk och blir en del av konstuttrycket. Så om det inte finns rött i ljuset kommer något rött i målningen att se mörkt ut. När ljuset är rent rött lyser det röda verkligen och de andra färgerna är dämpade.

Steg 13: Programmering av styrenhetsexempel Copperhead:

"Copperhead" av Jeanie Holt använder belysningsvariation för att förbättra känslan av utomhus och variation i ormens iögonfallande. Programmeringslagren ljusvågor ovanpå bakgrundsbelysningen.

För detta program använde vi FastLED -biblioteket tillsammans med vår Tuner -krets för utveckling.

Bakgrundsfärgen är inställd på 10 punkter runt ramen och funktionen fill_gradient () används för att smidigt övergå mellan färger.

I början av en visningscykel dämpas bakgrunden och färgen skiftar till blått med hjälp av en cosinuskurva över tiden och funktionen setBrightness ().

Efter en fördröjning rör sig tre ljusvågor från övre högra till nedre vänstra. Den första vågen är den ljusaste med följande vågor som blir svagare. Den första vågen rör sig också långsammare.

Steg 14: Programmering av styrenhetsexempel Black Doodle:

Image
Image

"Black Doodle" av Jeanie Holt utforskar reflektioner av svart vinyl.

Detta program använder också FastLED -biblioteket och kan ta input från inställningskretsen.

Belysningen består av upp till 5 samtidiga visningar av ljus som spelas från slumpmässiga punkter runt ramen. Varje display fortskrider genom samma 60 ljusstyrka över tiden. Varje skärm omfattar 7 intilliggande lysdioder med ljusstyrkan minskar mot kanterna. Innan varje display startar finns en slumpmässig fördröjning. Displayens placering är slumpmässig men platser nära en aktiv display är spärrade.

Bakgrunden är en regnbåge av färger spridda runt ramen. Denna bakgrund regnbåge vänder långsamt och vänder slumpmässigt riktning.

Dessa beskrivningar är en översikt och hjälp för att läsa programmen. Vi hoppas att du hittar några av dessa ljuseffekter intressanta nog att införliva i ett av dina projekt. En länk till github.com där programmen lagras finns i steg 2 -resurser.

Steg 15: Programmering av inställningsfunktioner:

I RainForest -programmet kan vi aktivera inställningsfunktionen med "#define TUNING 1" och fästa inställningskortet med dess bandkabel. Vi måste också ställa in parametrar för vilka LED kommer att påverkas av inställningen. Låt oss till exempel justera lysdioder på positionerna 61 till 73. Vi använder #define START_TUNE 61 och #define END_TUNE 73. Vi ställer in andra segment av strängen till bakgrundsfärger i setup () med fill_gradient_RGB () -samtal. Resten av din skiss bör inte ställa in lysdioderna i inställningsområdet, annars kan du inte se dina justeringar. Kör nu skissen och visa seriemonitorn. Inställningsdelen av programmet har 4 tillstånd [Nyans, mättnad, värde och ljusstyrka}. Nyans är färghjulet med 0 = rött och 255 förbi blått till nästan rött. Det aktuella läget ska skrivas ut på den seriella monitorn och indikatorlampan på inställningskortet blinkar för att indikera tillståndet (en blinkning är nyans, två blinkningar är mättnad och så vidare). Värdet är ljusintensiteten medan ljusstyrkan är en reduceringsfaktor som tillämpas på alla LED -intensitetsvärden. Så för full ljusstyrka ställ in Värde = 255 och Ljusstyrka = 255. Tryck på knappen för att ändra tillståndet. När du är på läget som du vill justera vrider du på ratten. Programmet ignorerar ratten tills den vrids mer än INHIBIT_LEVEL. Detta undviker att ändra värden i de andra tillstånden när du cyklar genom dem. Exempel du kan börja med nyans och få den färg du vill ha, sedan växla till värde och justera för att hitta den ljusstyrka du vill ha.

Macaw- och Nordic_Tree -skisserna inkluderar tuning men funktionerna är lite annorlunda. I dessa skisser finns det bara två lägen. En för ljusstyrka och en för färghjulsposition. Med dessa exempel kan du se hur du anpassar inställningsfunktionerna för att fungera med de flesta parametrar i din belysningskontroll.

Inkluderat i förvaret är en skiss 'Tuning' som tar stämningsfunktionerna från RainForest. Denna skiss är bara inställningsfunktionerna så att du kan utforska och lättare följa hur skissen fungerar. Vi använder denna skiss för att styra en testbelysningsram som vi snabbt kan placera över ett konstverk och utforska ljuseffekter. Senare kommer vi att använda inställningsinformationen för att bygga den anpassade belysningskontrollen.

Hoppas att du tycker att detta kan vara till hjälp för att få ditt projekt att fungera.

Steg 16: Resten av berättelsen:

Detta är en av två instruktioner på detta projekt. Om du inte redan har gjort det, kolla in den följeslagare som kan instrueras på:

Rekommenderad: