În acest articol, vom lua în considerare câteva efecte foarte utile pentru interior care pot fi create folosind o bandă LED. Vom vorbi și despre algoritmi, despre modul în care calculele matematice permit LED-urilor să creeze iluzia de căldură și confort, și anume, o flacără, o adevărată flacără digitală.
Toate codurile sursă care vor fi analizate mai târziu pot descărcați de pe pagina proiectului autor (AlexGyver).
În primul rând, să ne ocupăm electronic componentă. Pentru tine fă-o singur face o astfel de frumusețe acasă Sunt necesare următoarele componente:
- Driver pentru banda RGB;
- banda RGB;
- Sursa de alimentare 12V pentru banda RGB;
- Arduin® Nano.
Oricare dintre voi poate descărca și descărca firmware-ul și vă puteți folosi vatra digitală. Vom controla benzile LED de la microcontroler, în acest exemplu Arduino Nano.
Să începem cu cea mai simplă, dimensiunea zero - un punct (sau o bandă întreagă de puncte).
Aceasta este cea mai obișnuită bandă LED RGB, care este alimentată cu 12V și are control pe trei canale pentru fiecare culoare.
Folosind semnalul PWM (îl avem pe 8 biți), puteți seta luminozitatea fiecărei culori, obținând astfel 16,7 milioane de culori și nuanțe. Dar ne interesează focul, sau mai degrabă imitația lui. Pentru a simula o flacără, s-a decis să lucreze în spațiul de culoare hsv (culoare, saturație, luminozitate).
Acești 3 parametri vă permit să obțineți 255 de nuanțe de bază, plus fiecare nuanță pentru a face 255 de gradații de saturație, adică. se amestecă cu culoarea albă. Ei bine, al treilea parametru este luminozitatea, într-un limbaj simplu - un amestec de nuanță cu culoare neagră.
Există mai mulți algoritmi pentru a converti dintr-un spațiu hsv convenabil în RGB, utilizați doar unul dintre ei.
În continuare, trebuie să specificați comportamentul focului. Să presupunem că rezistența la flacără este o anumită cantitate, care în valoare minimă oferă LED-urilor culoare roșie saturată și luminozitate scăzută, iar în valoarea maximă oferă alb-galben și maximă culoare strălucitoare.
Pentru a obține efectul de flacără, trebuie să facem ca această valoare să facă mișcări oscilatorii aleatorii, mișcările trebuie să fie aleatorii, dar în același timp destul de netede, adică ceva similar cu o lumină tremurătoare. După această valoare, respectiv, culoarea și luminozitatea flăcării de-a lungul gradientului se vor schimba.
Autorul propune să rezolve această problemă după cum urmează: există un algoritm de filtrare atât de simplu, în medie, care transformă o schimbare bruscă a valorii într-un proces lin, doar un coeficient și un calcul destul de simplu.
Ideea este aceasta: este necesar, să zicem de 5 ori pe secundă, să setați o nouă poziție aleatorie pentru valoarea focului, iar undeva de aproximativ 50 de ori pe secundă pentru a filtra această valoare, schimbând-o treptat. Ca urmare, se formează un astfel de proces aleatoriu.
Într-un exemplu din viața reală, totul funcționează așa cum se dorește.
Acum trebuie să ne transpunem valoarea în culoarea flăcării conform legii menționate mai sus și să obținem un foc unidimensional.
Banda LED programată în acest mod poate fi ascunsă, de exemplu, de la baza sau de la o proeminență. De asemenea, o astfel de panglică poate oferi iluminare de fundal, pare destul de interesantă și neobișnuită.
De asemenea, banda poate fi trimisă pe podea de la distanță scurtă, obținând astfel și un efect destul de interesant.
Și, desigur, o bucată de bandă poate fi folosită pentru a lumina un șemineu sau pentru a o simula. Și dacă îndepărtați culoarea strălucitoare de la galben la portocaliu, obțineți o imitație de cărbuni mocnitori.
Din moment ce avem bandă RGB, putem face orice culoare de foc singură. Vrei verde mort - atât de ușor!
Avem nevoie de un foc albastru magic - nicio problemă!
Apoi instalați programul și driverele, așa cum este scris în instrucțiunile de pe pagina proiectului, descărcați și rulați firmware-ul.
La început există toate setările necesare. Cu ajutorul lor, puteți personaliza complet focul pentru dvs., anume: culoare, comportament și altele asemenea.
De fapt, aceasta a fost cea mai ușoară modalitate de a face ca banda LED să „se ardă”. Acum să ne uităm la exemple mai interesante. Pentru lucrări suplimentare veți avea nevoie bandă led de adresă.
Această bandă vă permite să controlați fiecare LED-uri și fiecare include 16,7 milioane de nuanțe de culoare.
Totul este conectat foarte simplu, conform acestei scheme:
Nu este nevoie de drivere, dar este recomandat un rezistor. Vă puteți descurca fără el, dar există o șansă de ardere a primului LED, iar dacă se întâmplă acest lucru, atunci următorii nu vor funcționa.
Cu iluminare directă, de exemplu, de sub canapea, obțineți o canapea hellish excelentă cu efectul cărbunilor mocnitoare.
De asemenea, o astfel de bandă poate fi transformată în mod obișnuit profil ușor și folosiți ca element independent al interiorului.
Arată destul de bine, de acord, dar haideți să încercăm totuși să obținem flăcări individuale.
Vom lăsa algoritmul la fel. Împărțim banda în zone cu lățimi diferite, fiecare zonă va avea propriul proces aleatoriu. Pentru a face acest proces să fie mai asemănător cu o flacără reală, vom umple zonele de la margini spre centru, mărind treptat valoarea noastră aleatoare la valoarea actuală. De asemenea, în procesul de „ardere”, dimensiunea zonelor ar trebui să se schimbe, de asemenea, la întâmplare.
Așa arată:
Acum să ne uităm la un alt proces aleatoriu interesant numit zgomot Perlin, cu care Ken Perlin a apărut în 1983.
Zgomotul lui Perlin vă permite să creați o distribuție netezită aleatorie a mărimii în orice număr de dimensiuni. Cunoscutul filtru cloud din Photoshop este un exemplu de zgomot bidimensional Perlin.
Dar zgomotul tridimensional al lui Perlin face posibilă generarea, de exemplu, a unui peisaj montan, și generarea lui foarte aleatorie și la nesfârșit și, în același timp, practic, fără a crea o încărcătură pe componentele calculatorului, întrucât algoritmul nu este foarte scump din punct de vedere computerizat.
Planul de acțiune este următorul: mai întâi, creați o regiune bidimensională de zgomot Perlin și deplasați-o de-a lungul acesteia într-un anumit mod, scanând linia de pixeli și ieșind-o către LED-uri.
Algoritmul menționat mai sus nu este foarte complicat și Arduino se ocupă calm cu el.Rezultatul este un efect atât de rece, cât mai neted, întâmplător și deja foarte asemănător cu flacăra reală cu iluminarea finală.
Cu iluminare directă, arată astfel:
Dar toate acestea erau algoritmi de foc pentru o bandă. Și cum rămâne să lipești banda într-un model în zig-zag și să încerci să faci foc bidimensional pe matrice?
Astfel de matrice pot fi cumpărate de la chinezi. Deasupra matricei așezăm un difuzor și o sticlă vopsită cu film auto, adică acesta este un adevărat afișaj cu rezoluție ultra-joasă.
Apropo, pare destul de realist. Vedeți videoclipul original al autorului pentru mai multe detalii:
Totul este. Vă mulțumim pentru atenție. Ne vedem curând!