Tento článok popisuje algoritmus, ktorý simuluje horenie ohňa. Je to môj prvý pokus o jeho simuláciu. Simulácia sa skúša na NeoPixel Ringu s 24 LED diódami. Simulátor nie je určený na priame pozeranie. Predpokladá sa jeho umiestnenie pri bielej stene, na ktorej vytvára mihotanie podobné reálnemu ohňu v kozube.
Výsledky simulácie by som chcel využiť v LED pásiku, dlhom 5 metrov. Jedným z efektov by mal byť aj tento oheň.
Budeme potrebovať nasledovné súčiastky:
Ochranné súčiastky sú nutné preto, aby sa NeoPixel Ring nepoškodil. Podrobnosti ochrany sú uvedené v článku o napájaní týchto diód.
Na obrázku je Ring s 12 diódami. Ring s 24 diódami sa nijako mimoriadne od neho nelíši a je preto možné použiť aj menší ring po príslušnej úprave kódu.
Simulácia ohňa je jednoduchá. Potrebujeme poznať RGB hodnotu ohňa. Hodnoty 156,42,0 a 255,153,0 predstavujú odtiene oranžovej farby, z ktorých budeme vychádzať. LED WS2812 majú zelenú farbu trochu intenzívnejšiu, takže z nej budeme trochu uberať, aby sme výslednú farbu mali viac červenu než zelenú. Pretože tieto diódy svietia dosť silno, uberieme trochu aj z intenzity farby, aby sme dostali jas menšieho ohníka namiesto blčiaceho ohňa, ktorý taví kov.
Samotný algoritmus pozostáva z dvoch krokov:
Samotný program pre arduino sa nachádza v prílohe. Vychádzal som z môjho predchádzajúceho kódu na ovládanie NeoPixel Ring hodín. Do kódu som doplnil funkciu na odčítanie hodnôt, pomocou ktorej tlmím farbu na jednotlivých diódach.
Nik nemá takú dobrú predstavivosť, preto si môžete pozrieť výsledné video na Youtube.
Download
Článok prevzatý zo stránky: https://www.arduinoslovakia.eu/blog/2015/9/simulacia-ohna.
Prepáčte, ale pred zanechaním komentára sa musíte prihlásiť.
pekne ale mozno by bolo lepsie pridat na tie ledky effekt kde by dochadzalo k stmievaniu a rozsvecovaniu roznymi rychlostami toto blikanie mi pride trosku moc invazivne na mna =D ale super praca.
this is look so good