V tomto článku se budeme zabývat několika velmi užitečnými efekty pro interiér, které lze vytvořit pomocí LED pásku. Budeme hovořit také o algoritmech, o tom, jak matematické výpočty umožňují LEDům vytvářet iluzi tepla a pohodlí, jmenovitě plamen, skutečný digitální plamen.
Všechny zdrojové kódy, které budou analyzovány později, mohou stáhnout ze stránky projektu autor (AlexGyver).
Nejprve se pojďme zabývat e součást. Pro sebe udělej to sám udělat takovou krásu doma Jsou vyžadovány následující součásti:
- Ovladač pro RGB pásku;
- RGB páska;
- Napájení 12V pro RGB pásku;
- Arduin® Nano.
Kdokoli z vás si může stáhnout a stáhnout firmware a získat svůj digitální krbu. V tomto příkladu budeme ovládat LED pásy z mikrokontroléru Arduino Nano.
Začněme s nejjednodušší nulovou dimenzí - bodem (nebo celou páskou bodů).
Jedná se o nejběžnější RGB LED pásek, který je napájen 12V a má pro každou barvu tříkanálové ovládání.
Pomocí signálu PWM (máme 8bitový) můžete nastavit jas každé barvy a získat tak 16,7 milionu barev a odstínů. Zajímá nás však oheň, nebo spíše jeho napodobení. Pro simulaci plamene bylo rozhodnuto pracovat v barevném prostoru hsv (barva, saturace, jas).
Tyto 3 parametry vám umožňují získat 255 základních odstínů plus každý odstín, abyste provedli 255 stupňů nasycení, tj. směsi s bílou barvou. Třetím parametrem je jas v jednoduchém jazyce - směs odstínu s černou barvou.
Existuje několik algoritmů pro převod z pohodlného prostoru hsv na RGB, stačí použít jeden z nich.
Dále musíte určit chování ohně. Předpokládejme, že intenzita plamene je určité množství, které v minimální hodnotě dává LED nasycenou červenou barvu a nízký jas av maximální hodnotě dává bílo-žlutou a maximální jasnou barvu.
Abychom dosáhli efektu plamene, musíme, aby tato hodnota provedla náhodné oscilační pohyby, pohyby musí být náhodné, ale zároveň docela hladké, to znamená něco podobného chvějícímu se světlu. Po této hodnotě se změní barva a jas plamene podél gradientu.
Autor navrhuje tento problém vyřešit následujícím způsobem: existuje takový velmi jednoduchý filtrační algoritmus, běžný průměr, který proměňuje ostrou změnu hodnoty v hladký proces, pouze jeden koeficient a poměrně jednoduchý výpočet.
Myšlenka je taková: je třeba, řekněme 5krát za sekundu, nastavit novou náhodnou polohu pro hodnotu ohně a někde asi 50krát za sekundu pro filtrování této hodnoty a její postupnou změnu. Výsledkem je vytvoření takového náhodného procesu.
V příkladu skutečného života všechno funguje tak, jak bylo zamýšleno.
Nyní musíme převést naši hodnotu do barvy plamene podle výše uvedeného zákona a získat jednorozměrný oheň.
Takto naprogramovaný LED pásek se může skrývat například na základní desce nebo nějakým výstupkem. Také taková stuha může poskytnout osvětlení pozadí, vypadá to docela zajímavě a neobvykle.
Pásku lze také poslat na podlahu z krátké vzdálenosti, a tím také dosáhnout poměrně zajímavého účinku.
A kousek pásky lze samozřejmě použít k osvětlení nebo simulaci krbu. A pokud odstraníte jasnou barvu ze žluté na oranžovou, dostanete napodobeninu doutnajícího uhlí.
Protože máme RGB pásku, můžeme si vyrobit jakoukoli barvu ohně samo o sobě. Chcete mrtvou zelenou - tak snadno!
Potřebujeme magicky modrý oheň - žádný problém!
Poté nainstalujte program a ovladače, jak je uvedeno v pokynech na stránka projektu, stáhněte a spusťte firmware.
Na samém začátku jsou všechna potřebná nastavení. S jejich pomocí si můžete plně přizpůsobit oheň pro sebe, a to: barvu, chování a podobně.
Ve skutečnosti to byl nejjednodušší způsob, jak LED pásek „spálit“. Nyní se podívejme na zajímavější příklady. Pro další práci, kterou budete potřebovat adresový pruh.
Tato páska vám umožňuje individuálně ovládat každou ze svých LED a každá obsahuje jeden ze 16,7 milionu barevných odstínů.
Podle tohoto schématu je vše spojeno velmi jednoduše:
Nejsou potřeba žádné ovladače, ale doporučuje se odpor. Můžete to udělat bez toho, ale existuje možnost vyhoření první LED, a pokud k tomu dojde, pak další nebudou fungovat.
S přímým osvětlením, například z pod pohovkou, získáte vynikající pekelnou pohovku s doutnajícím uhlím.
Také taková páska může být strčena do normálu světelný profil a použít jako nezávislý prvek interiéru.
Vypadá to docela dobře, souhlasím, ale pokusme se ještě dosáhnout individuálních plamenů.
Algoritmus necháme stejný. Rozdělíme pásku na zóny různých šířek, každá zóna bude mít svůj vlastní náhodný proces. Aby byl tento proces ještě více podobný skutečnému plameni, vyplníme zóny od okrajů ke středu a postupně zvyšujeme naši náhodnou hodnotu na aktuální hodnotu. Také v procesu „vypalování“ by se velikost zón měla také měnit náhodně.
Takto to vypadá:
Nyní se podívejme na další zajímavý náhodný proces zvaný Perlinův šum, s nímž přišel Ken Perlin v roce 1983.
Perlinův šum vám umožňuje vytvořit náhodně vyhlazené rozdělení velikosti v libovolném počtu rozměrů. Známý cloudový filtr ve Photoshopu je příkladem dvourozměrného Perlinova šumu.
Perlinův trojrozměrný hluk však umožňuje generovat například horskou krajinu, navíc ji generovat velmi náhodně a nekonečně a zároveň prakticky bez vytváření zatížení počítačových komponent, protože algoritmus není příliš výpočetně nákladný.
Akční plán je následující: Nejprve vytvořte dvourozměrnou perlinskou šumovou oblast a pohybujte se po ní určitým způsobem, skenujte řádek pixelů a vydávejte je do LED.
Algoritmus, jak je uvedeno výše, není příliš složitý a Arduino klidně se s ním vypořádat.Výsledkem je velmi cool efekt, co nejhladší, náhodný, a již velmi podobný skutečnému plameni s koncovým osvětlením.
S přímým osvětlením to vypadá takto:
Ale to všechno byly palebné algoritmy pro jednu pásku. A co přilepení pásky v klikatém vzoru a pokus o vytvoření dvourozměrného ohně na matrici?
Takové matrice lze zakoupit od Číňanů. Nad matricí umístíme difuzor a sklo tónované automobilovým filmem, to znamená, že se jedná o skutečný displej s ultravysokým rozlišením amolead.
Mimochodem, vypadá to docela realisticky. Další podrobnosti najdete v původním videu autora:
To je vše. Děkuji za pozornost. Uvidíme se brzy!