Stilou LED RGB pentru pictură în lumină: 17 pași (cu imagini)
Stilou LED RGB pentru pictură în lumină: 17 pași (cu imagini)
Anonim
Stilou LED RGB pentru Lightpainting
Stilou LED RGB pentru Lightpainting
Stilou LED RGB pentru Lightpainting
Stilou LED RGB pentru Lightpainting
Stilou LED RGB pentru Lightpainting
Stilou LED RGB pentru Lightpainting

Aceasta este o instrucțiune completă de construcție pentru un instrument de pictură cu lumină care utilizează un controler LED RGB. Folosesc mult acest controler în instrumentele mele avansate și am crezut că un documentar despre modul în care este construit și programat poate ajuta unii oameni.

Acest instrument este un pix RGB modular destinat pentru scrierea luminii, desenarea luminii și iluminarea graffiti-urilor. Este ușor de utilizat, deoarece aveți doar stiloul în mână și puteți schimba rapid culoarea.

Instrumentul constă din:

  • o carcasă imprimată 3D
  • un Arduino Micro
  • un LED WS2816B
  • două potențiometre (10K sau 100K)
  • două întrerupătoare
  • un buton
  • și câteva cabluri.

Un Arduino Micro este perfect pentru acest lucru, deoarece este extrem de mic și excelent pentru a controla LED-urile RGB. De asemenea, este posibil să utilizați microcontrolere chiar mai mici, cum ar fi un LilyPad sau chiar un ATtiny85, dar eu folosesc adesea Micro, deoarece este ușor de utilizat, deoarece vine cu un conector USB gata de utilizare. Atât Arduino, cât și LED-urile sunt alimentate cu 5V, deci trebuie să aveți grijă de suportul adecvat de alimentare. Acest instrument este conceput pentru a utiliza patru baterii reîncărcabile AAA, deoarece acestea au de obicei 1,2V și 4,8V combinate, ceea ce este suficient pentru a alimenta atât Arduino, cât și LED-ul. Aveți grijă să nu utilizați baterii AAA obișnuite, deoarece acestea au 1,5 V, iar tensiunea combinată ar putea fi prea mare pentru componente și le-ar putea deteriora. Dacă doriți să utilizați baterii obișnuite, utilizați doar trei, tensiunea ar trebui să fie suficientă. Am folosit o altă piesă extraordinară tipărită 3D de la altcineva pentru carcasa bateriei care se găsește aici: „Suporturile bateriei flexibile”.

Pasul 1: Programare

Mai întâi aveți nevoie de Arduino IDE pentru a programa microcontrolerul, care poate fi descărcat și utilizat gratuit. Sună destul de complicat la prima vedere, dar într-adevăr este destul de simplu. După instalarea software-ului, veți obține o fereastră simplă de editor de text care este utilizată pentru a codifica schița care este încărcată pe Arduino. Acest instrument folosește și biblioteca FastLED, care este o bibliotecă excelentă și ușor de utilizat, pentru a controla aproape orice tip de LED RGB pe care îl puteți cumpăra. După descărcarea bibliotecii, trebuie să instalați plasând fișierele în folderul de bibliotecă creat de IDE-ul Arduino. Acest lucru poate fi găsit de obicei în „C: / Users {User Name} Documents / Arduino / libraries“dacă nu l-ați modificat. După ce ați pus biblioteca în acest folder, trebuie să reporniți IDE-ul dacă acesta rulează deja. Acum suntem gata să creăm codul pentru controler.

Pasul 2: Codul

Pentru a utiliza mai întâi biblioteca FastLED trebuie să o includem în codul nostru. Acest lucru se face în partea de sus a codului înainte de orice altceva cu această linie:

#include

În continuare vom defini câteva constante. Acest lucru se face deoarece aceste valori nu se vor schimba în timp ce codul rulează și, de asemenea, pentru a-l menține mai lizibil. Puteți introduce aceste valori direct în cod, dar dacă trebuie să schimbați ceva, va trebui să parcurgeți întregul cod și să schimbați fiecare linie în care este utilizată valoarea. Prin utilizarea constantelor definite, trebuie doar să o schimbați într-un singur loc. și nu trebuie să atingeți codul principal. Mai întâi definim pinii utilizați de acest controler:

#define HUE_PIN A0

#define BRIGHT_PIN A1 #define LED_PIN 3 #define LIGHT_PIN 6 #define COLOR_PIN 7 #define RAINBOW_PIN 8

Numerele sau numele sunt aceleași care sunt tipărite pe Arduino. Pinii analogici sunt identificați printr-un A în fața numărului său, pinii digitali folosesc doar numărul din cod, dar uneori sunt imprimați cu un D principal pe tablă.

Potențiometrul de pe pinul A0 este utilizat pentru a controla nuanța culorii, potențiometrul de pe pinul A1 este utilizat pentru a controla luminozitatea. Pinul D3 este utilizat ca semnal către LED, astfel încât Arduino să poată trimite date pentru a controla culoarea. Pinul D6 este utilizat pentru a comuta lumina, iar pinul D7 și D8 sunt utilizate pentru a seta modul controlerului. Am implementat moduri în acest controler, unul pur și simplu pune culoarea definită de potențiometrul de culoare pe LED, iar cealaltă se va estompa prin toate culorile. În continuare, avem nevoie și de câteva definiții pentru biblioteca FastLED:

#define COLOR_ORDER GRB

#define CHIPSET WS2811 #define NUM_LEDS 5

Chipset-ul este folosit pentru a spune bibliotecii ce fel de LED folosim. FastLED acceptă aproape orice LED RGB disponibil (cum ar fi NeoPixel, APA106, WS2816B etc.). LED-ul pe care îl folosesc este vândut ca WS2816B, dar pare să fie puțin diferit, deci funcționează cel mai bine folosind chipset-ul WS2811. Ordinea de octeți trimisă la LED pentru a seta culoarea poate diferi, de asemenea, între producători, așa că avem și o definiție pentru ordinea de octeți. Definiția de aici spune doar bibliotecii să trimită culoarea în ordinea verde, roșu, albastru. Ultima definiție este pentru cantitatea de LED-uri conectate. Puteți folosi oricând mai puține LED-uri decât le definiți în cod, așa că am setat numărul la 5, deoarece cu acest instrument nu voi proiecta pixuri cu mai mult de 5 LED-uri. Ați putea seta numărul mult mai mare, dar datorită performanței, îl mențin la fel de mic pe cât am nevoie.

Pentru codul principal avem nevoie și de câteva variabile:

luminozitate int = 255;

unsigned int pot_Reading1 = 0; unsigned int pot_Reading1 = 0; unsigned long lastTick = 0; unsigned int wheel_Speed = 10;

Aceste variabile sunt utilizate pentru luminozitate, citiri de la potențiometre, amintind ultima dată când a fost executat codul și cât de rapidă va fi decolorarea culorii.

Apoi definim o matrice pentru LED-uri, care este o modalitate ușoară de a seta culoarea. Cantitatea definită de LED-uri este utilizată pentru a seta dimensiunea matricei aici:

LED-uri CRGB [NUM_LEDS];

După ce ne ocupăm de definiții, putem scrie acum funcția de configurare. Acest lucru este destul de scurt pentru acest program:

configurare nulă () {

FastLED.addLeds (led-uri, NUM_LEDS).setCorrection (TypicalLEDStrip); pinMode (LIGHT_PIN, INPUT_PULLUP); pinMode (COLOR_PIN, INPUT_PULLUP); pinMode (RAINBOW_PIN, INPUT_PULLUP); }

Prima linie inițializează biblioteca FastLED folosind definițiile pe care le-am setat anterior. Ultimele trei linii spun Arduino că acești pini sunt folosiți ca intrare și că, dacă nu sunt conectați la nimic, tensiunea lor ar trebui să fie setată la mare (PULLUP). Aceasta înseamnă că trebuie să conectăm acești pini la GND pentru a declanșa ceva.

Acum ne putem ocupa de programul principal. Acest lucru se face în funcția de buclă. Mai întâi setăm câteva variabile și citim potențiometrele:

bucla nulă () {

static uint8_t nuanță = 0; static uint8_t wheel_Hue = 0; pot_Reading1 = analogRead (HUE_PIN); nuanță = hartă (pot_Reading1, 0, 1023, 0, 255); pot_Reading2 = analogRead (BRIGHT_PIN); luminozitate = hartă (pot_Reading2, 0, 1023, 0, 255);

Primele două linii stabilesc variabile care sunt folosite ulterior pentru culoare. Cele două blocuri următoare se ocupă de citirea valorilor potențiometrului. Deoarece obțineți o valoare între 0 și 1023 dacă citiți un pin folosind „analogRead”, dar nuanța și luminozitatea necesită o valoare între 0 și 255, folosim funcția „hartă” pentru a traduce citirea dintr-o regiune valorică în alta. Primul parametru al acestei funcții este valoarea pe care doriți să o traduceți, ultimii patru sunt minimul și maximul regiunilor pe care doriți să le utilizați pentru traducere.

În continuare vom evalua butonul:

if (digitalRead (LIGHT_PIN) == LOW) {

Verificăm citirea cu LOW deoarece am definit pinul să fie ridicat dacă nu este declanșat. Deci, dacă butonul este apăsat, pinul va fi conectat la GND și ar citi scăzut. Dacă știfturile nu sunt apăsate, nu mai sunt multe de făcut.

Mai întâi să ne ocupăm doar de aprinderea LED-ului într-o singură culoare:

if (digitalRead (COLOR_PIN) == LOW) {

if (nuanță <2) {FastLED.showColor (CRGB:: White); FastLED.setBrightness (luminozitate); } else {FastLED.showColor (CHSV (nuanță, 255, luminozitate)); FastLED.setBrightness (luminozitate); } întârziere (10);

Trebuie să evaluăm pinul de culoare pentru a ști că dorim să folosim acest mod. Apoi putem verifica ce culoare este necesară. Deoarece modelul de culoare HSV este utilizat aici, avem nevoie doar de nuanță pentru a defini o culoare. Dar acest lucru creează și problema că nu avem o modalitate de a seta culoarea pe alb. Deoarece nuanța 0 și nuanța 255 se traduc în roșu, folosesc un mic truc aici și verific dacă citirea din potențiometrul nuanței este mai mică de 2. Aceasta înseamnă că potențiometrul este rotit într-o parte și putem folosi acest lucru pentru a seta albul. Mai avem roșu pe cealaltă parte, așa că nu vom pierde nimic aici.

Deci, fie setăm culoarea pe alb și apoi luminozitatea, fie setăm culoarea pe baza citirii nuanței și, de asemenea, a luminozității.

Ulterior am adăugat o mică întârziere, deoarece este mult mai bine să oferiți controlerului puțin timp de nefuncționare pentru a economisi energie și o întârziere de 10 milisecunde nu va fi resimțită.

Apoi, codificăm decolorarea culorii:

altfel if (digitalRead (RAINBOW_PIN) == LOW) {

wheel_Speed = hartă (pot_Reading1, 0, 1023, 2, 30); if (lastTick + wheel_Speed 255) {wheel_Hue = 0; } lastTick = millis (); } FastLED.showColor (CHSV (wheel_Hue, 255, luminozitate)); }

Mai întâi este bifat pinul pentru a comuta acest mod. Deoarece nu am vrut să adaug un al treilea potențiometru pentru a controla viteza de estompare și deoarece potențiometrul de nuanță nu este utilizat în acest mod, putem folosi acel potențiometru pentru a seta viteza. Folosind din nou funcția hartă putem traduce citirea într-o întârziere care se traduce în viteza de estompare. Am folosit o valoare între 2 și 30 pentru întârziere, deoarece din experiențe aceasta este o viteză bună. Funcția „milis” va returna milisecundele de când Arduino a fost pornit, așa că putem folosi aceasta pentru a măsura timpul. Ultima modificare a nuanței este stocată într-o variabilă definită mai devreme și aceasta este comparată de fiecare dată pentru a vedea dacă trebuie să schimbăm din nou nuanța. Ultima linie stabilește doar culoarea care trebuie afișată în continuare.

Pentru a termina codul:

} altceva {

FastLED.showColor (CRGB:: Negru); }}

Trebuie doar să oprim LED-ul dacă butonul nu este apăsat setând culoarea pe negru și închizând orice paranteză deschisă.

După cum puteți vedea, acesta este un cod destul de scurt și ușor, care poate fi utilizat pentru o mulțime de instrumente care utilizează LED-uri RGB.

Odată ce ai codul complet, îl poți încărca pe Arduino. Pentru aceasta conectați Arduino la computer cu un cablu USB și selectați tipul Arduino în IDE.

În aceste instrucțiuni folosesc Arduino Pro Micro. După setarea modelului Arduino, trebuie să selectați portul în care IDE îl poate găsi. Deschideți meniul portului și ar trebui să vedeți Arduino conectat.

Acum singurul lucru de făcut este să încărcați codul pe Arduino prin apăsarea celui de-al doilea buton rotund din partea de sus a ferestrei. IDE va construi codul și îl va încărca. După ce acest lucru a avut succes, puteți deconecta Arduino și puteți continua asamblarea controlerului.

Pasul 3: Asamblarea componentelor electronice pentru controler

De când ne-am ocupat de codificarea Arduino, acum putem asambla hardware-ul controlerului. Începem prin a pune componentele în interiorul carcasei. Potențiometrele merg în cele două găuri rotunde din stânga, comutatorul pentru alimentare este în partea de jos, comutatorul pentru modul este în partea dreaptă sus, iar Arduino merge în suportul din mijloc.

Pasul 4:

Imagine
Imagine

Începeți prin lipirea unui cablu roșu de la comutatorul de alimentare la pinul RAW al Arduino. Acest pin este pinul pentru alimentarea cu energie electrică, deoarece este conectat la un regulator de tensiune, deci chiar dacă tensiunea este mai mare de 5V, acest pin poate fi utilizat pentru a alimenta Arduino. Apoi lipiți un alt fir roșu la pinul VCC, deoarece avem nevoie de tensiune de nivel înalt pentru potențiometru. Lipiți două fire albe pe pinii A0 și A1 pentru a fi utilizați pentru citirile potențiometrului.

Pasul 5:

Imagine
Imagine

Acum puneți un fir alb lung și verde lung prin deschiderea din partea de sus, care sunt folosite ulterior pentru conectarea LED-ului. Lipiți verde la pinul 3 și albul la pinul 6 și apăsați-le plat pe Arduino. Lipiți doi negri conectați la pinii GND din partea stângă a Arduino, acestea sunt utilizate pentru tensiunea de nivel scăzut pentru potențiometre. Lipiți două fire albastre la pinul 7 și pinul 8 pentru a fi utilizate pentru comutatorul de mod.

Pasul 6:

Imagine
Imagine
Imagine
Imagine

Cablul roșu pe care l-am lipit pe pinul VCC trebuie acum lipit pe unul dintre pinii externi ai primului potențiometru. Folosiți un alt cablu roșu pentru a continua acest lucru până la al doilea potențiometru. Aveți grijă să utilizați aceeași parte pe ambele potențiometre, astfel încât plin să fie aceeași parte pe ambele. Lipiți cele două cabluri negre de cealaltă parte a potențiometrelor și cablurile albe de la pinii A0 și A1 de pe pinul din mijloc. Potențiometrele funcționează setând tensiunea pe pinul mediu la o tensiune între tensiunile aplicate pinilor externi, deci dacă conectăm tensiunea înaltă și joasă putem obține o tensiune între pinul din mijloc. Acest lucru a completat cablarea potențiometrelor și acestea pot fi rotite puțin, astfel încât pinii să fie în afara drumului.

Pasul 7:

Imagine
Imagine

Lipiți un cablu negru la pinul central al comutatorului de mod și puneți un cablu negru lung prin deschiderea care duce la sursa de alimentare. Puneți un alt cablu negru lung prin deschiderea superioară pentru a fi folosit ca GND pentru LED.

Pasul 8:

Imagine
Imagine

Cablul negru care vine de la sursa de alimentare este lipit pe un alt fir negru care este conectat la ultimul pin GND gratuit al Arduino. Lipiți firul care duce la LED și firul negru de pe comutatorul de mod împreună și, în cele din urmă, lipiți cele două perechi de fire negre pe care le aveți acum împreună. Utilizați un tub de micșorare pentru a izola lipirea pentru a preveni scurtcircuiturile din interiorul controlerului.

Pasul 9:

Imagine
Imagine

Ca ultim pas, acum putem lipi cele două fire albastre la comutatorul de mod. Aceste comutatoare funcționează conectând știftul din mijloc la unul dintre știfturile externe, în funcție de ce parte este pornit comutatorul. Deoarece pinii 7 și 8 sunt configurați pentru a fi declanșați atunci când sunt conectați la GND, putem folosi pinii externi ai comutatorului pentru pinii și mijlocul pentru GND. În acest fel, unul dintre ace este activat întotdeauna.

În cele din urmă, puneți un fir roșu prin deschiderea de alimentare și lipiți-l pe pinul central al comutatorului de alimentare și puneți un alt fir roșu lung prin deschiderea către LED și lipiți-l pe același pin de pe comutatorul de alimentare la care este conectat Arduino.

Pasul 10:

Imagine
Imagine

Lipiți cablurile de alimentare pe suportul bateriei și înșurubați clema care ține cablurile care duc la LED. Aceasta completează cablarea controlerului.

Pasul 11: Asamblarea stiloului luminos

Deoarece acest instrument este menit să fie modular și să utilizeze stilouri diferite, avem nevoie de un conector pe fire pentru LED. Am folosit un conector molex ieftin cu 4 terminale, care se găsește de obicei pe cablurile utilizate pentru ventilatoare într-un computer. Aceste cabluri sunt ieftine și ușor de obținut, deci sunt perfecte.

Pasul 12:

Imagine
Imagine
Imagine
Imagine

Când am început să conectez controlerul, nu am verificat culorile cablurilor de pe conectori, astfel încât acestea sunt puțin diferite, dar ușor de reținut. Am conectat firele negre, alimentarea la galben, verde pe verde și alb pe albastru, dar puteți utiliza orice combinație doriți, amintiți-vă și pentru celelalte pixuri. Aveți grijă să izolați zonele lipite cu tubul care se micșorează pentru a preveni scurții.

Pasul 13:

Imagine
Imagine
Imagine
Imagine

Introduceți un fir lung roșu și unul verde lung prin stilou și lipiți firele negre pe o parte a butonului și firul alb pe cealaltă parte. Acest tip de butoane au patru pini, dintre care doi sunt conectați în perechi. Puteți vedea ce pini sunt conectați uitându-vă în partea de jos a butonului, există un decalaj între perechile conectate. Dacă apăsați butonul, cele două părți sunt conectate la alta. Cablul alb și cel negru sunt apoi trase până la capătul stiloului, începând de la deschiderea butonului. Celălalt cablu negru este tras în față. Asigurați-vă că aveți suficient cablu pe ambele părți pentru a lucra.

Pasul 14:

Imagine
Imagine
Imagine
Imagine

Apăsați butonul de fixare în deschidere și pregătiți restul cablurilor. Cel mai bine este să lipiți cablurile pe LED, astfel încât acestea să fie orientate spre mijlocul LED-ului, deoarece cablurile trec prin mijlocul stiloului. Lipiți firul roșu pe placa de lipit de 5V, firul negru pe placa de lipit GND și firul verde pe placa de lipit Din. Dacă aveți mai multe LED-uri, placa de lipire Dout a primului LED este conectată la Din-ul următorului LED și așa mai departe.

Pasul 15:

Imagine
Imagine
Imagine
Imagine

Acum apăsați butonul din partea din față a stiloului și puneți o picătură de adeziv în spatele acestuia pentru a-l ține în poziție.

Acum trebuie doar să lipiți firele de la capătul stiloului pe cealaltă parte a conectorului, ținând cont de culori.

Cel mai bine este să folosiți o picătură de adeziv și o bandă adezivă pentru a elibera prin stres cablurile de la capătul stiloului pentru a preveni ruperea acestora. Aceasta completează asamblarea pixului ușor.

Pasul 16: Exemple

Exemple
Exemple
Exemple
Exemple
Exemple
Exemple
Exemple
Exemple

În cele din urmă, vreau să vă arăt câteva exemple în care am folosit acest instrument. Stiloul înclinat este minunat pentru a lumina liniile unui graffiti, iar stiloul drept este minunat pentru a desena și a scrie lucruri în aer (pentru care am doar puțin talent).

Acesta este scopul principal al acestui instrument. După cum puteți vedea, posibilitățile sunt uimitoare dacă combinați expuneri lungi cu acest instrument.

Pentru a începe cu acest tip de fotografie, încercați să utilizați cea mai scăzută setare ISO pe care o acceptă camera și o deschidere ridicată. O modalitate bună de a găsi setările corecte este să puneți camera în modul diafragmă și să închideți diafragma până când camera dvs. arată un timp de expunere de aproximativ timpul necesar pentru a desena ceea ce doriți să adăugați în imagine. Apoi treceți la manual și folosiți respectivul timp de expunere sau folosiți modul bec.

Distrează-te încercând! Este o formă de artă uimitoare.

Am adăugat această instrucțiune provocării inventatorilor și utilizărilor neobișnuite, așa că, dacă vă place, lăsați un vot;)

Pasul 17: Fișierele

Am adăugat, de asemenea, modele pentru suporturi pentru curele care sunt menite să fie lipite pe partea inferioară a carcasei controlerului, astfel încât să o puteți atașa de braț și o clemă pentru stilou care poate fi lipită pe capac atunci când nu aveți nevoie de stilou în mâinile tale.

Există, de asemenea, capace difuzoare care pot fi folosite pentru a face lumina mai fină și pentru a preveni aprinderea când pixul indică direct în cameră.