Cuprins:

Controller de iluminare cu LED dinamic pentru artă: 16 pași (cu imagini)
Controller de iluminare cu LED dinamic pentru artă: 16 pași (cu imagini)

Video: Controller de iluminare cu LED dinamic pentru artă: 16 pași (cu imagini)

Video: Controller de iluminare cu LED dinamic pentru artă: 16 pași (cu imagini)
Video: ЗАПРЕЩЁННЫЕ ТОВАРЫ с ALIEXPRESS 2023 ШТРАФ и ТЮРЬМА ЛЕГКО! 2024, Iulie
Anonim
Image
Image

Introducere:

Iluminatul este un aspect important al artei vizuale. Și dacă iluminarea se poate schimba în timp, poate deveni o dimensiune semnificativă a artei. Acest proiect a început prin participarea la un spectacol de lumini și experimentarea modului în care iluminatul ar putea schimba complet culoarea unui obiect. Am început să explorăm acest lucru în iluminarea artei țesăturilor. Până acum am construit iluminare dinamică pentru 8 piese, inclusiv o pictură și o fotografie. Efectele de iluminare au inclus: simularea zorilor și a apusului, lumina subacvatică printr-o suprafață ondulată, fulgerul în nori și schimbarea dramatică a culorilor percepute și a dispoziției operei de artă. Videoclipurile cu aceste efecte sunt incluse în pașii de programare de mai jos.

Acest instructable construiește un controler care setează luminozitatea și culoarea unui șir de LED-uri adresabile individual în timp. De asemenea, include un circuit de intrare opțional pentru reglarea manuală (setarea luminozității și culorii) unui segment de iluminat. De asemenea, veți afla despre multe probleme și îmbunătățiri pe care le-am descoperit pe parcurs.

De asemenea, am scris o instruire asociată despre construirea casetei de umbră și a cadrului. Verificați-l la:

Deocamdată ne vom concentra pe electronică și programare.

Pasul 1: Materiale:

  • Șir de LED-uri WS2812
  • Arduino Pro Mini 328 - 5V / 16 MHz
  • Interfață USB FTDI Friend
  • Cablu USB A la MiniB pentru FTDI
  • Condensator 4700 μf
  • Sursă de alimentare 5v cu conector 5,5 x 2,1
  • Power Socket 5.5 x 2.1
  • Terminal Block
  • Placă de circuit prototip
  • Buton
  • Potențiometru
  • LED indicator
  • Rezistențe
  • Cablu ribbon
  • Antet masculin
  • Antet feminin

Pasul 2: Resurse:

  • Arduino; Mediul de dezvoltare interactivă (IDE)
  • Biblioteca Adafruit NeoPixel
  • Tutorial NeoPixel
  • Program de exemplu Strandtest
  • Biblioteca FastLED
  • Linkuri și documentație FastLED
  • Forum FastLED
  • Schițele noastre de iluminat

Pasul 3: Prezentare generală a controlerului:

Prezentare generală a controlerului
Prezentare generală a controlerului
Prezentare generală a controlerului
Prezentare generală a controlerului

Schema pare destul de simplă și este. Ne-am construit controlerele pentru a fi încorporate într-un cadru foto. Dimensiunile circuitului din imagine sunt de 2,25”x 1,3” x 0,5”. Tunerul opțional a fost construit pe o placă de circuit separată cu un conector de cablu cu bandă. Aceste imagini arată proiectul nostru finalizat.

Vrem să încorporăm controlerul în rama imaginii, așa că am ales Arduino pro mini 5v pentru dimensiunea sa redusă, costul și ieșirea de 5v. Dimensiunea sursei de alimentare de 5v de care aveți nevoie va depinde de câte LED-uri și de luminozitatea maximă a acestora în proiect. Toate proiectele noastre au rulat mai puțin de 3 amperi, iar unele au avut mai puțin de 1 amp. Există mai multe tipuri de LED-uri color adrese. Am început cu WS2812 vândut de Adafruit ca unul dintre produsele lor „NeoPixel”. Acest lucru a funcționat pentru noi și nu am explorat alte LED-uri. Majoritatea proiectelor noastre au folosit banda de 60 LED pe metru. Până în prezent proiectele noastre au variat până la 145 de LED-uri.

Tuner opțional:

Am construit un mic „tuner” de circuit de intrare, astfel încât să putem regla cu ușurință segmente de iluminare fără a modifica și încărca programul pentru fiecare reglare. Are: un LED de ieșire care clipește modul de intrare; un buton care schimbă modul de introducere; și un buton care poate fi reglat. Arduino poate transmite apoi valorile pe un computer conectat.

Pasul 4: Controlerul clădirii:

Controler clădire
Controler clădire

Lista materialelor nu conține sârmă, tuburi termocontractabile și alte consumabile de care ați putea avea nevoie. Pentru circuitul de 5V și de masă la LED-uri, vă sugerez să utilizați un fir cu fir cu ecartament de 26 sau mai greu. Am folosit calibru 26. De asemenea, izolarea siliconică a firului este mai bună, deoarece nu se topește în apropierea locului în care lipiți și este mai flexibilă. Am găsit că lăsarea unui spațiu mai mare între componente a făcut fabricarea mult mai ușoară. De exemplu, controlerul din imaginea din Pasul 6 spațiul dintre carcasa prizei de alimentare (negru) și blocul de borne (albastru) este de aproximativ 1 inch. Capacul nostru de montare este format din două straturi de furnir din lemn.

Imaginea din acest pas arată cablarea unui antet feminin cu șase contacte pentru tunerul opțional. Contactul neutilizat dintre firul roșu și cel verde este conectat cu o bucată de scobitoare pentru a preveni conexiunea inversă.

Pasul 5:

Imagine
Imagine
Imagine
Imagine
Imagine
Imagine

Acum, permiteți-o să o unim astfel încât să se potrivească în cadrul cutiei de umbre. Cadrul are o grosime de 3/4 ", deci avem o limită a înălțimii controlerului de 1/2". Am realizat plăci de montare prin lipirea a două bucăți de întăritor pentru furnir cu bobul perpendicular unul pe celălalt pentru a limita deformarea. Componentele aranjate astfel încât mufa de alimentare să fie în centrul cadrului. Gaura pentru priza electrică a fost tăiată cu un ferăstrău de bijuterie și aruncată pentru a se potrivi. Componentele sunt apoi cablate împreună înainte de montare. Priza este lipită pe loc cu epoxidic. Sub terminalul cu șurub și arduino se utilizează pătrate de montaj permanente din spumă cu două fețe. Adezivul topit la cald este, de asemenea, utilizat pentru a menține arduino-ul în loc, precum și condensatorul.

Pasul 6: Construirea tunerului opțional:

Tuner opțional de construcție
Tuner opțional de construcție
Tuner opțional de construcție
Tuner opțional de construcție
Tuner opțional de construcție
Tuner opțional de construcție

Am construit un mic „tuner” de circuit de intrare, astfel încât să putem regla cu ușurință segmente de iluminare fără a modifica și încărca programul pentru fiecare reglare. Are: un LED de ieșire care clipește modul de intrare; un buton care schimbă modul de introducere; și un buton care poate fi reglat. Arduino poate reda apoi valorile pe un computer conectat.

Aceste imagini arată fabricația tunerului. Am acoperit spatele cu bandă „Gorilla”. Care menține cablul panglică stabil și, de asemenea, a făcut un mâner frumos.

Pasul 7: Prezentare generală a controlerului:

Aceasta este cu adevărat partea dificilă a proiectului. Sperăm că veți putea folosi unele dintre codurile și metodele noastre pentru a începe.

Adafruit și FastLED au publicat două mari biblioteci pentru a permite Arduinos să controleze mai multe tipuri de LED-uri adresabile. Folosim ambele biblioteci în diferite proiecte. Vă sugerăm să citiți, de asemenea, o parte din materialul resurselor din aceste biblioteci și să explorați unele dintre programele lor de exemplu.

Depozitul Github al programelor noastre este listat în „Resurse” de mai sus. Rețineți că suntem departe de a fi competenți în programarea Arduino, deci există mult spațiu de îmbunătățire. Simțiți-vă liber să indicați problemele și să contribuiți la îmbunătățiri.

Pasul 8: Exemplu de controler de programare Ripple:

„Ripple” de Jeanie Holt a fost primul nostru succes. Această piesă este un pește de artă din țesături într-un cadru de umbră. Iluminarea este constantă de un nivel scăzut albastru de jos. Și de sus, până la trei arbori de lumină albă mai strălucitoare, care se mișcă de la dreapta la stânga, ca și cum ar fi refractați prin mișcarea undelor de pe suprafața apei. Acesta este un concept destul de simplu și programul nu folosește intrările „tuner”. Începe, incluzând biblioteca Adafruit și definind pinul de control al ieșirii și numărul de LED-uri. Apoi facem o configurare unică a comunicării seriale și a benzii LED. Apoi definim o serie de variabile interne, cum ar fi, întârzierea dintre reîmprospătări, caracteristicile unui arbore de lumină (luminozitatea sa în timp și mișcarea sa), apoi stabilim variabilele pentru fiecare arbore de lumină.

Funcția „changeBright ()” va crește luminozitatea unui arbore de lumină în timpul timpului de „atac”, o va menține constantă pentru timpul de „susținere”, apoi va dispărea în timpul „decăderii”.

Funcția „ripple ()” este apelată pentru fiecare dintre cele trei arbori de lumină în timpul fiecărui increment de timp. Luminozitatea temporară este calculată pe baza decolorării de la luminozitatea maximă la o descompunere constantă în timp. Apoi pentru fiecare LED din stânga poziției de pornire se calculează luminozitatea. Ne putem imagina o undă de lumină care se mișcă spre stânga. Fiecare LED din stânga se află într-un punct mai devreme în curba timpului de luminozitate. Când această ondulație are o luminozitate zero pentru toate LED-urile, steagul terminat este setat la 1. Dacă LED-ul este deja mai luminos (setat de una dintre celelalte valuri) lăsăm valoarea neschimbată.

Bucla principală începe prin oprirea LED-urilor. Apoi, pentru fiecare dintre cele trei ondulații, apelează funcția de ondulare și își mărește contorul de timp. Dacă steagul terminat este setat, începe repriza. În cele din urmă, bucla principală stabilește o lumină albastră pal pe partea de jos.

Pasul 9: Exemplu de controler de programare Dawn to Dusk:

Image
Image

Următorul proiect, „Dawn to Dusk” de Jeanie Holt, este o altă piesă de artă din țesături de data aceasta un copac cu frunziș de culoare de toamnă. Iluminarea este o simulare a zilei, cu zorii începând să lumineze în stânga, progresând spre lumina în mijlocul zilei, urmată de culori de apus roșiatice și progresând spre noapte. Provocarea aici este simplificarea descrierii schimbării culorii și luminozității cu timpul pe o bandă de 66 de LED-uri. Cealaltă provocare este schimbarea ușoară a luminii. Ne-am luptat cu adevărat cu schimbarea vizibilă a luminii la un nivel scăzut de lumină. Am încercat să obțin tranziții de iluminare mai fine utilizând biblioteca FastLED, dar nu am avut succes. Această descriere a programului va fi mai puțin detaliată. Din nou am folosit biblioteca NeoPixel a Adafruit.

Am mers la o convenție de pornire a benzilor noastre LED în colțul din stânga sus. Acest lucru face ca locația LED să fie un pic ciudată în această piesă. Există 86 de LED-uri în jurul cadrului. Dawn luminează partea stângă, care merge de la 62 la 85. Apoi, de la stânga sus la dreapta jos este de la 0 la 43.

Acest program nu include posibilitatea de a utiliza circuitul de intrare „Tuner”.

Acest program folosește timiterea timpului pentru a reduce pâlpâirea. Actualizăm fiecare al cincilea LED, apoi trecem peste unul și actualizăm fiecare al cincilea LED și repetăm până când toate sunt actualizate. Din acest motiv, definim lungimea șirului de LED-uri puțin mai lungă decât este în realitate.

Iată cum am simplificat descrierea modelului de iluminare. Am identificat 12 poziții LED de referință în jurul cadrului de la stânga jos la dreapta jos. Apoi am definit intensitatea LED-ului roșu, verde și albastru (RGB) pentru aceste LED-uri de referință până la 12 puncte de pauză în perioada de zori până la amurg. Pentru fiecare punct de pauză există 4 octeți, numărul de timp contează de la ultimul punct de pauză și valoarea unui octet pentru fiecare dintre culorile RGB. Această matrice ocupă 576 de octeți de memorie prețioasă.

Acum folosim interpolare liniară pentru a găsi valori între punctele de întrerupere și din nou interpolare liniară pentru a găsi valori pentru LED-urile situate între LED-urile de referință. Pentru ca interpolația să funcționeze bine, trebuie să folosim câteva valori intermediare în virgulă mobilă. Perioada zorilor până la amurg este împărțită în 120 de perioade de jumătate de secundă.

Pasul 10: Programare Exemplu de controler Pădurea tropicală:

Următorul proiect pe care îl voi descrie este „Rain Forest” de Juli-Ann Gasper. Aceasta este o piesă de artă din țesături mai mare, cu multă adâncime. Aici am folosit o cutie de umbră de aproximativ 4,4”adâncime. Conceptul de iluminare este un nivel de lumină de fundal care este mai slab în partea de jos, cu lumină care pâlpâie printre frunzele de mai sus din când în când. Conceptul de aici este similar cu Ripple, dar arborii de lumină nu se mișcă. Și spre deosebire de ondulație, unde luminozitatea se schimbă ușor, aici luminozitatea pâlpâirii trebuie să fluctueze. Am creat o matrice de 40 de octeți numită flicker_b2. Am constatat că efectul vizual a fost în regulă dacă am folosit același model pentru toate locațiile de pâlpâire. Am stabilit 5 locații de pâlpâire. Când am analizat efectul vizual, am constatat că unul dintre pâlpâiri trebuia să fie mult mai larg decât celelalte. Am folosit funcția fill_gradient_RGB () pentru a întinde pâlpâirea peste 20 de LED-uri. Fiecare pâlpâire este independentă și începe la întâmplare. Probabilitatea fiecărui licăr poate fi setată.

Culoarea de fundal trebuie setată și restaurată atunci când pâlpâirea nu este mai strălucitoare decât fundalul.

Pentru această piesă am folosit biblioteca FastLED. În acest program, #define TUNING este utilizat pentru a indica dacă placa de tuning este conectată, trebuie să fie 0 atunci când placa tunerului nu este conectată. În caz contrar, controlerul este sensibil la electricitatea statică și la poltergeist. Compilatorul include doar segmentele de program care utilizează „Tuner” atunci când această variabilă este 1.

Pasul 11: Programare Exemplu controler Storm:

Un alt proiect a fost acela de a aprinde o fotografie numită „Furtună” de Mike Beck. Imaginea este un nor de furtună. Folosim biblioteca FastLED și nu includ capacitatea de reglare. Conceptul de iluminare de aici este o lumină de fundal cu fulgere care apar aleator în trei puncte din jurul norului. Blițul din fiecare locație este cauzat de trei LED-uri. Spațiul dintre aceste LED-uri este diferit pentru fiecare locație. Luminozitatea acestor trei LED-uri este definită de trei matrice de 30 de octeți. Secvența de luminozitate din cele trei tablouri oferă variație și mișcare aparentă între cele trei LED-uri. Direcția mișcării percepute și luminozitatea generală sunt selectate pentru fiecare locație. Durata blițului la fiecare locație este ajustată de întârzierea dintre actualizarea valorilor luminozității. Există o întârziere aleatorie între 0,2 și 10,4 secunde între fulgere. Care dintre cele trei locații de atac este, de asemenea, aleatorie, cu 19% șanse în partea de sus a norului, 45% șanse în partea dreaptă jos și 36% șanse de-a lungul părții stângi.

Pasul 12: Exemple de controlere de programare Macaw și arborele nordic:

Piesele „Macaw” de Dana Newman și „Nordic Tree” de Jeanie Holt folosesc culoarea iluminării pentru a schimba culoarea percepută a piesei. Și în cazul picturii lui Dana a unui macaw mare, starea de spirit a păsării se schimbă de la veselă la amenințătoare, în funcție de culoarea luminii care o înconjoară. Aceste două programe sunt aproape identice. Folosim biblioteca Adafruit NeoPixel și capacitatea plăcii de reglare este în aceste programe. Aceste programe sunt adaptate din funcția theaterChaseRainbow () din Adafruit_NeoPixel / examples / Strandtest.ino (descărcat 29.07.2015)

Iluminarea este menținută la o luminozitate relativ constantă, în timp ce culoarea luminii se schimbă progresând printr-o roată de culori de culori. Progresul în jurul roții de culoare este creat începând cu roșu 100% și descrescând în mod roșu în timp ce crește verde. Odată ce verdele este la 100%, acesta este apoi scăzut în timp ce crește albastru. Și, în sfârșit, pe măsură ce albastrul scade și roșul crește, faci un cerc complet.

Aceasta oferă iluminare folosind două dintre culorile primare și lasă una afară. Pe măsură ce parcurgem această roată de culoare de iluminat la un moment dat, orice culoare din piesa de artă va lipsi în lumina furnizată. Schimbarea rezultată a culorii percepute poate fi destul de dramatică și devine o parte a expresiei artei. Deci, dacă roșul nu este prezent în lumină, orice roșu din pictură va apărea întunecat. Când lumina este roșu pur, atunci roșul luminează cu adevărat și celelalte culori sunt dezactivate.

Pasul 13: Exemple de control de programare Copperhead:

„Copperhead” de Jeanie Holt folosește variația iluminării pentru a spori senzația de aer liber și variația vizibilității șarpelui. Programarea acoperă valuri de lumină deasupra iluminării de fundal.

Pentru acest program am folosit biblioteca FastLED împreună cu circuitul Tuner pentru dezvoltare.

Culoarea de fundal este setată la 10 puncte în jurul cadrului și funcția fill_gradient () este utilizată pentru tranziția fără probleme între culori.

La începutul unui ciclu de vizualizare, fundalul este estompat, iar culoarea se schimbă în albastru folosind o curbă de cosinus în timp și funcția setBrightness ().

După o întârziere, trei valuri de lumină se deplasează de la dreapta sus la stânga jos. Prima undă este cea mai strălucitoare, iar undele următoare devin mai slabe. De asemenea, primul val se mișcă mai lent.

Pasul 14: Exemple de controler de programare Doodle negru:

Image
Image

„Black Doodle” de Jeanie Holt explorează reflexele de pe vinilul negru.

Acest program folosește și biblioteca FastLED și poate prelua intrarea din circuitul de reglare.

Iluminarea constă din până la 5 afișări simultane de lumină redată din puncte aleatorii din jurul cadrului. Fiecare afișaj progresează prin aceleași 60 de valori de luminozitate în timp. Fiecare afișaj implică 7 LED-uri adiacente, cu luminozitatea scăzută spre margini. Înainte de a începe fiecare afișaj, există o întârziere aleatorie. Locația afișajului este aleatorie, dar locațiile din apropierea unui afișaj activ sunt inhibate.

Fundalul este un curcubeu de culori răspândite în jurul cadrului. Acest curcubeu de fundal se rotește încet și inversează direcția aleatoriu.

Aceste descrieri sunt o privire de ansamblu și ajută la citirea programelor. Sperăm că veți găsi unele dintre aceste efecte de iluminare suficient de interesante pentru a fi încorporate într-unul dintre proiectele dvs. Un pas către github.com unde sunt stocate programele se află în Pasul 2 Resurse.

Pasul 15: Programarea funcțiilor de reglare:

În programul RainForest putem activa funcția de reglare prin „#define TUNING 1” și atașăm placa de intrare de reglare folosind cablul său ribbon. De asemenea, trebuie să setăm parametri pentru care LED-ul va fi efectuat de acordare. De exemplu, să reglăm LED-urile de la pozițiile 61 până la 73. Folosim #define START_TUNE 61 și #define END_TUNE 73. Setăm alte segmente ale șirului la culorile de fundal în setup () folosind apeluri fill_gradient_RGB (). Restul schiței nu ar trebui să seteze LED-urile în intervalul de reglare sau nu veți putea vedea ajustările. Acum rulați schița și afișați monitorul serial. Partea de reglare a programului are 4 stări [Hue, Saturation, Value și Brightness}. Hue este roata de culoare cu 0 = roșu și 255 albastru trecut până aproape roșu. Starea curentă ar trebui să fie tipărită pe monitorul serial și LED-ul indicator de pe placa de tuning va clipi pentru a indica starea (un clipire este Hue; două clipiri sunt Saturation și așa mai departe). Valoarea este intensitatea luminii, în timp ce luminozitatea este un factor de reducere care se aplică tuturor valorilor intensității LED-urilor. Deci, pentru luminozitate completă, valoarea = 255 și Luminozitatea = 255. Apăsați butonul pentru a schimba starea. Când vă aflați în starea pe care doriți să o reglați, rotiți butonul. Programul ignoră butonul până când este rotit mai mult decât INHIBIT_LEVEL. Acest lucru evită schimbarea valorilor în celelalte stări atunci când le parcurgeți. Exemplu puteți începe cu Hue și puteți obține culoarea dorită, apoi treceți la valoare și reglați pentru a găsi luminozitatea dorită.

Schițele Macaw și Nordic_Tree includ reglaje, dar funcțiile sunt puțin diferite. În aceste schițe există doar două moduri. Una pentru luminozitate și una pentru poziția roții de culoare. Cu aceste exemple puteți vedea cum să personalizați funcțiile de reglare pentru a lucra cu majoritatea parametrilor din controlul luminii.

În depozit este inclusă o schiță „Tuning” care preia funcțiile de tuning de la RainForest. Această schiță este doar funcțiile de reglare, astfel încât să puteți explora și urmări mai ușor cum funcționează schița. Folosim această schiță pentru a controla un cadru de iluminare de test pe care îl putem așeza rapid peste o piesă de artă și să explorăm efectele de iluminare. Mai târziu vom folosi informațiile de reglare pentru a construi controlerul de iluminat personalizat.

Sper că veți găsi acest lucru instructiv util pentru a vă face proiectul să funcționeze.

Pasul 16: Restul poveștii:

Acesta este unul dintre cele două instructabile ale acestui proiect. Dacă nu ați făcut-o deja, consultați însoțitorul care poate fi instruit la:

Recomandat: