V tomto článku sa budeme zaoberať niektorými veľmi užitočnými efektmi pre interiér, ktoré je možné vytvoriť pomocou LED pásika. Budeme hovoriť aj o algoritmoch, o tom, ako matematické výpočty umožňujú, aby LED diódy vytvorili ilúziu tepla a pohodlia, konkrétne plameňa, skutočného digitálneho plameňa.
Všetky zdrojové kódy, ktoré sa budú analyzovať neskôr, môžu stiahnuť zo stránky projektu autor (AlexGyver).
Najprv sa musíme zaoberať elektronický zložkou. Pre seba Urob to sám urobiť takúto krásu doma Vyžadujú sa tieto komponenty:
- Ovládač pásky RGB;
- RGB páska;
- Napájanie 12V pre RGB pásku;
- Arduin® Nano.
Každý z vás si môže stiahnuť a stiahnuť firmvér a získať svoj digitálny krb. V tomto príklade budeme kontrolovať prúžky LED z mikrokontroléra Arduino Nano.
Začnime od najjednoduchšej nulovej dimenzie - bodu (alebo celej pásky bodov).
Jedná sa o najbežnejší RGB LED pásik, ktorý je napájaný 12V a má pre každú farbu trojkanálové ovládanie.
Pomocou signálu PWM (máme ho 8-bitový) môžete nastaviť jas každej farby a získať tak 16,7 milióna farieb a odtieňov. Zaujíma nás však oheň alebo skôr jeho napodobenina. Na simuláciu plameňa bolo rozhodnuté pracovať vo farebnom priestore hsv (farba, sýtosť, jas).
Tieto 3 parametre vám umožňujú získať 255 základných odtieňov plus každý odtieň, aby ste urobili 255 stupňov nasýtenia, t. zmesi s bielou farbou. Tretím parametrom je jas v jednoduchom jazyku - zmes odtieňa s čiernou farbou.
Existuje niekoľko algoritmov na konverziu z pohodlného priestoru hsv na RGB, stačí použiť jeden z nich.
Ďalej musíte špecifikovať správanie sa ohňa. Predpokladajme, že intenzita plameňa je určité množstvo, ktoré v minimálnej hodnote dáva nasýteným červeným farbám LED a nízkemu jasu av maximálnej hodnote dáva bielo-žltú a maximálnu jasnú farbu.
Aby sa dosiahol účinok plameňa, musíme urobiť túto hodnotu, aby sa robili náhodné oscilačné pohyby, pohyby musia byť náhodné, ale zároveň celkom hladké, to znamená niečo podobné chveniu svetla. Po tejto hodnote sa zmení farba a jas plameňa pozdĺž gradientu.
Autor navrhuje tento problém vyriešiť nasledovne: existuje taký veľmi jednoduchý filtračný algoritmus, bežný priemer, ktorý premení ostrú zmenu hodnoty na hladký proces, iba jeden koeficient a pomerne jednoduchý výpočet.
Ide o toto: je potrebné, povedzme 5-krát za sekundu, nastaviť novú náhodnú polohu pre hodnotu požiaru a niekde okolo 50-krát za sekundu, aby sa táto hodnota filtrovala, a postupne ju meniť. Výsledkom je vytvorenie takého náhodného procesu.
V príklade v reálnom živote všetko funguje podľa plánu.
Teraz musíme previesť našu hodnotu do farby plameňa podľa vyššie uvedeného zákona a získať jednorozmerný oheň.
Takto naprogramovaný LED pásik sa môže skryť napríklad pomocou základnej dosky alebo nejakým výstupkom. Takáto stuha môže tiež poskytovať podsvietenie, vyzerá to celkom zaujímavo a nezvyčajne.
Tiež je možné pásku poslať na podlahu z malej vzdialenosti, a tak dosiahnuť aj pomerne zaujímavý efekt.
A samozrejme, kus pásky možno použiť na osvetlenie krbu alebo na jeho simulovanie. A ak odstránite jasnú farbu zo žltej na oranžovú, získate napodobňovanie tlejúcich uhlia.
Pretože máme RGB pásku, môžeme si vyrobiť akúkoľvek farbu ohňa samo. Chcete mŕtve zelené - tak ľahko!
Potrebujeme magicky modrý oheň - žiadny problém!
Potom nainštalujte program a ovládače, ako je to uvedené v pokynoch na stránka projektu, stiahnite a spustite firmvér.
Na začiatku sú potrebné nastavenia. S ich pomocou si môžete úplne prispôsobiť oheň pre seba, a to: farbu, správanie a podobne.
V skutočnosti to bol najjednoduchší spôsob, ako LED pásik „spáliť“. Teraz sa pozrime na zaujímavejšie príklady. Pre ďalšiu prácu, ktorú budete potrebovať adresový prúžok.
Táto páska vám umožňuje individuálne ovládať každú zo svojich LED diód a každá obsahuje jeden zo 16,7 milióna farebných odtieňov.
Podľa tejto schémy je všetko prepojené veľmi jednoducho:
Nie sú potrebné žiadne ovládače, ale odpor sa odporúča. Môžete to urobiť bez toho, ale existuje možnosť vyhorenia prvej LED, a ak k tomu dôjde, potom ďalšie z nich tiež nebudú fungovať.
Napríklad pri priamom osvetlení z pod pohovkou získate vynikajúcu pekelnú pohovku s účinkom tlejúcich uhlia.
Takáto páska môže byť tiež strčená do normálu svetelný profil a použiť ako nezávislý prvok interiéru.
Vyzerá to celkom dobre, súhlasím, ale stále sa snažíme dosiahnuť individuálne plamene.
Algoritmus necháme rovnaký. Pásku rozdelíme na zóny s rôznymi šírkami, každá zóna bude mať svoj vlastný náhodný proces. Aby bol tento proces ešte viac podobný skutočnému plameňu, vyplníme zóny od okrajov do stredu a postupne zvyšujeme našu náhodnú hodnotu na aktuálnu hodnotu. Aj v procese „spaľovania“ by sa veľkosť zón mala tiež meniť náhodne.
Takto to vyzerá:
Teraz sa pozrime na ďalší zaujímavý náhodný proces s názvom Perlinov šum, s ktorým prišiel Ken Perlin v roku 1983.
Perlinov hluk vám umožňuje vytvárať náhodne vyhladené rozdelenie veľkosti v ľubovoľnom počte rozmerov. Známy cloudový filter vo Photoshope je príkladom dvojrozmerného Perlinovho šumu.
Ale Perlinov trojrozmerný hluk umožňuje generovať napríklad horskú krajinu, navyše ju generovať veľmi náhodne a nekonečne a zároveň prakticky bez vytvárania zaťaženia počítačových komponentov, pretože algoritmus nie je príliš výpočtovo nákladný.
Akčný plán je nasledujúci: Najskôr vytvorte dvojrozmernú perlinskú šumovú oblasť a určitým spôsobom sa v nej pohybujte, skenujte čiaru pixelov a vydajte ju na LED.
Algoritmus, ako je uvedený vyššie, nie je príliš komplikovaný a Arduino pokojne sa s ním vysporiadať.Výsledkom je taký veľmi cool efekt, ktorý je čo najhladší, náhodný a už veľmi podobný skutočnému plameňu s koncovým osvetlením.
Pri priamom osvetlení to vyzerá takto:
Ale všetky tieto boli palebné algoritmy pre jednu pásku. A čo lepiaca páska v kľukatom vzore a pokus o vytvorenie dvojrozmerného ohňa na matricu?
Takéto matrice je možné kúpiť od Číňanov. Nad matricu umiestnime difuzér a sklo tónované automobilovým filmom, čo znamená, že je to skutočne displej s ultravysokým rozlíšením amolead.
Mimochodom, vyzerá to celkom realisticky. Ďalšie podrobnosti nájdete v pôvodnom videu autora:
To je všetko. Ďakujem za pozornosť. Uvidíme sa skoro!