Cuprins:

Lumină ambientală interactivă: 8 pași
Lumină ambientală interactivă: 8 pași

Video: Lumină ambientală interactivă: 8 pași

Video: Lumină ambientală interactivă: 8 pași
Video: Lumini Ambientale Auto Benzi LED 8 Culori RGB 2024, Noiembrie
Anonim
Lumină ambientală interactivă
Lumină ambientală interactivă
Lumină ambientală interactivă
Lumină ambientală interactivă
Lumină ambientală interactivă
Lumină ambientală interactivă

Acesta este primul meu instructable! Vă rog să mă purtați în timp ce mă lupt să scriu o engleză adecvată. Simțiți-vă liber să mă corectați! Am început acest proiect imediat după ce a început competiția „Lasă-l să strălucească”. Mi-aș dori să fi făcut mult mai mult și să fi terminat ceea ce voiam să fac. Dar între școală și muncă, nu mi-a mai rămas atât de mult timp cât mi-am dorit. Cu toate acestea, las aici un raport al experimentelor mele ca instructiv, astfel încât oricine poate încerca să facă ceea ce am făcut. Acest instructable nu este menit să servească drept ghid și să învețe cum să facă acest amețeală. Nu este un ghid pentru începătorii în electronică. Este mai mult ca împărtășirea unei idei și a unui obiectiv pe care doresc să-l urmăresc. Dacă sunteți un începător / ignorant complet în electronică și doriți să faceți așa ceva, îmi pare rău! Dar putem încerca să vă ajutăm întotdeauna. Vezi ultimul pas. Am văzut deja multe proiecte de lumină ambientală. Majoritatea utilizează LED-uri RGB: - Pentru a ilumina o cameră cu o singură culoare, setând o atmosferă care să se potrivească stării tale de spirit - Pentru a crea efecte de lumină din culoarea televizorului / monitorului sau din sunet. Există chiar și câteva în instructables.com Conectate: Sisteme de lumină ambientală DIY Iluminare ambientală a barei de lumină Construirea propriilor bare de iluminare a culorii ambientale Folosind această competiție ca scuză, am început un proiect care mi-a fost în minte de ceva vreme. Întotdeauna mi-am dorit să fac ceva similar cu aceste lumini ambientale și să umplu pereții din cameră cu LED-uri RGB. Dar, făcând un pas mai departe, făcându-i pe toți și pe fiecare controlabili. Sperăm că acest proiect va avea ca rezultat un kit electronic open-source pentru pasionați și jucători de jocuri electronice, permițând hacking-ul hardware / software și integrarea senzorială. Iată o mică previzualizare a ceea ce am făcut:

Pasul 1: Explorarea ideii

Vreau să pot umple pereții din cameră cu LED-uri RGB, controlând culoarea și luminozitatea pentru fiecare led. Voi folosi un microcontroler pentru ușurința de utilizare și flexibilitatea oferită. Din păcate, nu pot controla sute de LED-uri cu puținii pini disponibili pe microcontrolere. Ar fi chiar dificil să codez controlul atât de multor LED-uri, așa că am decis să împart toate LED-urile în mai multe bare mai mici și pentru fiecare bară aș putea folosi un microcontroler. Apoi aș folosi capacitățile de comunicare ale microcontrolerelor pentru a partaja informații între ele. Aceste informații ar putea fi culoarea și luminozitatea LED-urilor, modelele / secvențele de culori și informațiile senzoriale. Pentru fiecare bară am decis să folosesc 16 LED-uri RGB. Acest lucru are ca rezultat un bar nici prea mare, nici mic. În acest fel, folosesc un număr acceptabil de resurse pentru fiecare led, reducând costurile pentru fiecare bară. Cu toate acestea, 16 LED-uri RGB sunt 48 de LED-uri (3 * 16 = 48) pentru controlul microcontrolerului. cel mai ieftin microcontroler pe care l-aș putea folosi. Aceasta înseamnă că microcontrolerul va avea doar până la 20 de pini I / O, nu suficient pentru 48 de LED-uri. Nu doresc să folosesc charlieplexing sau un fel de unitate de împărțire a timpului, deoarece scopul proiectului este iluminarea unei camere. alternativă la care m-aș putea gândi este că folosesc un fel de registru de schimbare blocat! Reluare: - Lumină ambientală interactivă - Realizare o bară standard de LED-uri controlabile - Posibilitate de conectare a mai multor bare pentru a umple o cameră - Permiteți adaptarea / configurarea utilizatorului și integrarea senzorială

Pasul 2: Hardware

Hardware
Hardware
Hardware
Hardware

Așa cum am spus în pasul anterior, doresc să fac mai multe bare pentru a ilumina o cameră. Acest lucru aduce în minte problema costurilor. Voi încerca să fac ca fiecare bară să fie cea mai rentabilă cale posibilă. Microcontrolerul pe care l-am folosit a fost un AVR ATtiny2313. Acestea sunt destul de ieftine și am avut câteva zăcute în jur. ATtiny2313 are, de asemenea, o interfață serială universală și o interfață USART care va fi folosită în mod corespunzător în pașii următori. Am avut, de asemenea, trei MCP23016 - I2C 16bit I / O expansor de port situate în jur, doar numărul potrivit! Am folosit fiecare expansor de port pentru a controla o culoare din cele 16 LED-uri. LED-urile … Din păcate, au fost cele mai ieftine pe care le-am putut găsi. Acestea sunt 48 roșu, verde și albastru ~ 10000mcd 5mm cu unghi de 20 grade. Acest lucru nu ar trebui să conteze pentru moment, deoarece acesta este doar un prototip. În ciuda acestui fapt, rezultatul este destul de frumos! Rulez microcontrolerul la 8 MHz. Autobuzul I2C este tactat la 400 kHz. Frecvența de comutare a LED-ului este de aproximativ 400 Hz. În acest fel, dacă sunt capabil să conduc 48 de LED-uri fără să-l împing la limită, voi sta mai mult pentru mai târziu!

Pasul 3: Asamblare

Asamblare
Asamblare
Asamblare
Asamblare
Asamblare
Asamblare
Asamblare
Asamblare

După proiectarea circuitului, l-am construit în mai multe panouri, în scopuri de prototipare. După câteva ore de tăiere a firelor și asamblarea circuitului, am obținut acest rezultat: o placă gigantă cu 48 de LED-uri și tone de sârmă!

Pasul 4: Control?

Control?
Control?

Aceasta este cea mai provocatoare parte a proiectului. Am vrut să fac un algoritm de control suficient de generic pentru manipularea tiparelor / secvențelor și, de asemenea, pentru controlul luminozității și culorii fiecărui LED. Pentru a controla LED-urile trebuie să trimit către MCP23016 un cadru de 4 biți (1 octet = 8 biți). Un octet cu adresa corespondentului IC la culoare, 1 octet cu comanda „write” și 2 octeți cu valoarea celor 16 biți (LED-uri). IC-ul este conectat la LED-uri ca "chiuvetă", adică o valoare logică 0 la pin va aprinde LED-ul. Și acum partea dificilă, cum se face controlul PWM pentru 48 de LED-uri? Să studiem PWM pentru un LED! PWM a explicat @ Wikipedia. Dacă vreau luminozitatea LED-ului la 50%, valoarea mea PWM este de 50%. Aceasta înseamnă că LED-ul, într-o perioadă de timp, ar trebui să fie pe aceeași perioadă de timp ca și oprit. Să luăm o perioadă de 1 secundă. PWM de 50% înseamnă că în această 1 secundă, timpul de pornire este de 0,5 secunde și timpul de oprire este de 0,5 secunde. PWM de 80%? 0,2 secunde oprit, 0,8 secunde pornit! În lumea digitală: cu o perioadă de 10 cicluri de ceas, 50% înseamnă că pentru 5 cicluri LED-ul este aprins, iar pentru alte 5 cicluri LED-ul este oprit. 20%? 2 cicluri pornite, 8 cicluri oprite. 45%? Ei bine, nu putem obține cu adevărat 45% … Deoarece perioada este în cicluri și avem doar 10 cicluri, putem împărți PWM doar în trepte de 10%. Aceasta înseamnă că evoluția pinului ar trebui să fie, pentru 50%: 1, 1, 1, 1, 1, 0, 0, 0, 0, 0; Sau chiar 1, 0, 1, 0, 1, 0, 1, 0, 1, 0; În programare putem face această secvență de pornire și dezactivare a unui tablou. Pentru fiecare ciclu, ieșim la pin valoarea indicelui în care ciclul este. Am avut sens până acum? Dacă vrem să facem LED0 50% și LED1 20%, putem adăuga ambele matrice.: 1, 1, 1, 1, 1, 0, 0, 0, 0, 0; Pentru acționarea pinului LED1: 2, 2, 0, 0, 0, 0, 0, 0, 0, 0; Rezultând LED0 + LED0: 3, 3, 1, 1, 1, 0, 0, 0, 0, 0; Prin ieșirea acestei secvențe de numere în IC-ul de expansiune a portului, am obține LED0 cu 50% luminozitate și LED1 cu 20% !! Simplu pentru 2 LED-uri, nu? Acum trebuie să facem acest lucru pentru 16 LED-uri, pentru fiecare culoare! Pentru fiecare dintre aceste matrice, avem o combinație de luminozitate pentru fiecare culoare (16 LED-uri) De fiecare dată când dorim o altă combinație de culori, trebuie să schimbăm această matrice.

Pasul 5: Ușurarea

Ușurarea!
Ușurarea!
Ușurarea!
Ușurarea!

Etapa anterioară este prea multă muncă pentru realizarea unei secvențe simple … Așa că am decis să fac un program, unde să spunem culorile fiecărui LED într-un singur pas al secvenței și să obținem cele trei matrice ale pasului. Am făcut acest program în LabView din cauza constrângerilor de timp.

Pasul 6: Primele experimente

Primele experimente
Primele experimente

Încărcând mai mulți pași în microcontroler și primim ceva de genul asta: Ne pare rău pentru calitatea slabă a videoclipurilor! Am definit numărul maxim de pași ai unei secvențe la 8 și am limitat PWM la 20% salturi. Această decizie se bazează pe tipul de control pe care îl folosesc și cât de multă EEPROM are ATtiny2313. În aceste experimente am încercat să văd ce fel de efecte aș putea face. Trebuie să spun că sunt mulțumit de rezultat!

Pasul 7: Control în timp real

Control în timp real
Control în timp real
Control în timp real
Control în timp real
Control în timp real
Control în timp real

După cum sa menționat în pașii anteriori, doresc să comunic cu toți microcontrolerele care controlează LED-urile din camera mea. Așa că am folosit interfața USART disponibilă în ATtiny2313 și am conectat-o la computer. De asemenea, am realizat un program în LabView pentru a controla bara de LED-uri. În acest program sunt în măsură să spun microcontrolerului cât de lungă este secvența, culoarea fiecărui LED și timpul dintre pașii unei secvențe. demonstrează cum pot schimba culoarea LED-urilor și cum pot defini secvențe.

Pasul 8: Concluzii

Concluzii
Concluzii
Concluzii
Concluzii
Concluzii
Concluzii
Concluzii
Concluzii

Cred că am avut succes în această primă abordare a proiectului meu. Sunt capabil să controlez 16 LED-uri RGB cu resurse și constrângeri reduse. Este posibil să controlați fiecare LED separat, creând orice secvență dorită.

Muncă viitoare:

Dacă primesc feedback pozitiv de la oameni, aș putea dezvolta în continuare această idee și să fac un kit electronic complet DIY, cu plăci cu circuite imprimate și instrucțiuni de asamblare.

Pentru următoarea mea versiune: controlați LED-urile - Dezvoltați comunicația între mai multe microcontrolere.

Aveți vreo sugestie sau întrebare? Sau lăsați un comentariu!

Finalist la Let It Glow!

Recomandat: