Construiți-vă propria iluminare dinamică ambientală pentru un centru media
Dacă vizionați o mulțime de filme pe PC-ul sau centrul dvs. media, sunt sigur că ați confruntat cu dilema de iluminare; opriți complet toate luminile? Îi păstrezi în plină explozie? Sau folosiți un întrerupător dimmer pentru a păstra o strălucire galben plictisită undeva? Ei bine, nu mai suferi.
Pentru mai puțin de 100 de dolari, puteți crea un sistem uimitor de iluminare care să reflecte ceea ce este pe ecran; dacă videoclipul este o scenă de noapte albastră, luminile vor fi albastre; când se aprinde un foc de foc portocaliu, la fel vor și luminile tale. Bine ați venit în lumea iluminatului ambiental RGB.
Componente
- RGB bandă luminoasă - este o bandă de LED-uri RGB de 5 metri, care poate fi cumpărată pe eBay și expediată din Hong Kong pentru mai puțin de 20 £ fiecare. Dacă cumpărați în magazine electronice veți plăti de metru și o tambur de 5 m va costa de trei sau patru ori că, deci cumpărați online. Aceste tipuri de benzi LED pot fi schimbate în orice culoare, dar numai în același timp - nu pot fi reglate individual.
- 12V - sursa de alimentare (ampage) necesară depinde de numărul de benzi de LED-uri pe care le veți conecta. Fiecare metru atrage aproximativ 0,6 amperi, dar acest lucru depinde de densitatea LED-urilor dvs. Asigurați-vă că verificați banda dvs. specială LED. 3A ar fi suficient pentru benzile de 5 m pe care le-am legat mai sus, iar sursele separate de energie pot fi cumpărate pentru aproximativ 10 lire sterline, dacă nu puteți să o surprindeți în altă parte.
- 3 x tranzistoare MOSFET N - puteți găsi probaby mai ieftin, dar am cumpărat un pachet de 6 (tip STP16NF06FP) pentru aproximativ 10 £. Acestea sunt folosite pentru a izola curentul de la Arduino - conectarea fâșiilor direct la Arduino ar prăji cu cantitatea de curent pe care o trag. Aveți nevoie de 1 tranzistor MOSFET pe canal de culoare LED, pentru roșu, verde și albastru.
- Arduino Ce este Arduino si ce poti face cu el? Ce este Arduino și ce puteți face cu el? Arduino este un dispozitiv remarcabil de electronică, dar dacă nu ai mai folosit niciodată înainte, ce anume sunt și ce poți să faci cu unul? Citiți mai multe - nu am inclus costul acestui articol, deoarece se presupune că veți avea deja unul și există o varietate de clone pe care le puteți cumpăra dacă nu vă puteți permite una oficială.
Prin urmare, costul total a fost în jur £ 40 fără a include Arduino.
Introducere
Proiectul constă din două părți. Mai întâi vom crea un circuit de bază Arduino care ascultă comenzile de la calculator și le va fixa LED-urile RGB la o culoare adecvată. Al doilea presupune folosirea unei noi aplicații numite Procesare și Java pe partea computerului - pentru a determina ce culori sunt pe ecran, pentru a le medie și pentru a ieși la portul de comunicații seriale pentru ca Arduino să reacționeze la.
Partea 1: Circuit și Arduino
Circuitul pe care îl folosim este foarte simplu, după cum puteți vedea din diagrama de mai jos. Banda LED trebuie să fie furnizată cu un conector mascul la un capăt pe care îl puteți plasa direct în pană.
Banda dvs. LED poate varia, dar dacă vă uitați atent veți vedea 12v, R, G, B scrise pe șine undeva. Aceste benzi pot fi de fapt tăiate la aceste puncte de cupru (la fiecare 3 LED-uri pe cele pe care le am), deci dacă doriți să tăiați fâșiile de la colțurile televizorului dvs., puteți face acest lucru în siguranță - nu trebuie să folosiți întreaga 5 m , astfel încât este posibil să aveți unii rămași pentru un viitor proiect. Conectați pozitiv 12v direct la sursa de alimentare externă.
MOSFET-urile au trei pini; Poartă, scurgere, și sursă. Poarta este ca un comutator electronic pe care Arduino îl va controla. Aceasta determină apoi curentul dintre sursă și scurgere. Drenarea fiecărui MOSFET ar trebui să fie conectat la solul lui Arduino și a solului sursei de alimentare, în timp ce sursa se conectează la canalele de benzi LED.
După ce ați terminat circuitul, descărcați și rulați acest cod de test (inițial din LadyAda, pini modificat). Ar trebui să vedeți că banda dvs. LED se rotește printr-o varietate de culori.
Partea 2: Prelucrare
Descărcați Procesarea și rularea. S-ar putea să fiți surprins să găsiți că arată aproape exact cum ar fi mediul de dezvoltare Arduino; asta pentru că mediul Arduino era bazat pe acesta, deși ambii îndeplinesc funcții diferite. Luați acest cod - inițial de Silicon Republic, dar puternic modificat de mine pentru a face setările dimensiunii ecranului automat și cu o reprezentare mai bună a culorilor - și ia o clipă să te uiți peste ea. Practic se utilizează o clasă Java numită Robot pentru a face câte o captură de ecran 10ms; apoi selectează fiecare pixel ciudat și mediază culoarea totală. Dacă performanța este o problemă pentru dvs., măriți skipValue variabilă la 3 sau 4 pentru a sări mai mulți pixeli - efectul general ar trebui să fie același, dar va funcționa mai repede, deoarece examinează mai puțini pixeli. În cele din urmă, am adăugat un filtru care ajută la saturarea culorii prin creșterea maximă și scăderea valorilor minime RGB găsite (fără aceasta, am găsit culorile să fie prea albe).
Rulați aplicația; pentru prima dată, probabil veți primi o eroare, deoarece încearcă să acceseze portul serial greșit.
Verificați fereastra de depanare pentru o listă de porturi seriale actuale și notați numărul de lângă ceea ce dvs. Arduino este conectat. În cazul meu pe un Mac, conexiunea USB este port 4. Modificați numărul din această linie la portul corect:
port = nou Serial (aceasta, Serial.list () [4], 9600); // setați rata baud
Salvați și re-executați; ar trebui să vedeți o fereastră de mici dimensiuni - aceasta reprezintă culoarea medie a totului pe ecran. Lansați o aplicație de pictură sau ceva cu culori puternice pentru al testa, altfel probabil că va afișa doar o nuanță de gri. Opriți aplicația când ați terminat testul, deoarece avem nevoie de accesul la portul serial pentru a programa Arduino.
În sfârșit, încărcați acest cod pe Arduino. În loc de a trimite culori aleatorii la banda LED, acest cod citește valorile de la portul serial (la care procesarea este în curs de ieșire). Este destul de ușor de înțeles, singura parte dificilă poate fi utilizarea unui marcator în datele seriale:
dacă (Serial.available ()> = 4) if (Serial.read () == 0xff) red = Serial.read (); verde = Serial.read (); albastru = Serial.read ();
Acest lucru asigură citirea valorilor corecte ale octeților - aplicația de procesare emite un marcator ca a “breakpoint” între fiecare set de valori, astfel încât Arduino să nu se sincronizeze și să creadă că valoarea verde este pentru albastru etc..
Odată ce codul Arduino este încărcat (nu trebuie să existe nici o ieșire pe banda LED inițial), atunci puteți încărca și rula aplicația de procesare; imediat ar trebui să vezi lumina ambientală care funcționează.
Iată o demonstrație video a modului în care a funcționat pentru mine cu niște videoclipuri aleatorii de muzică dublu.
Tu ce crezi?! În timp ce nu este la fel de impresionant ca ceva care analizează fiecare parte a ecranului și utilizează pixeli LED individuali, este mult mai ieftin și mult mai strălucitor. Singurul dezavantaj al acestui lucru este că totul trebuie să fie difuzat pe computerul centrului media - nu va funcționa, de exemplu, cu radiodifuziunea obișnuită sau cu Xbox 360. Dacă aveți probleme, întrebări sau sugestii, vă rugăm să întrebați; sau poate să vă conectați la un videoclip cu configurația completă.
Explorați mai multe despre: Arduino, Media Player.