» elektronik » Arduino »Brandeffekter på LED-remsor och Arduino

Brandeffekter på LED-ränder och Arduino

hälsningar invånarna på vår webbplats!
I den här artikeln kommer vi att överväga några mycket användbara effekter för interiören som kan skapas med LED-remsa. Vi kommer också att prata om algoritmer, om hur matematiska beräkningar tillåter lysdioder att skapa en illusion av värme och komfort, nämligen en låga, en riktig digital låga.

Alla källkoder som kommer att analyseras senare kan ladda ner från projektsidan författare (AlexGyver).

Först, låt oss ta itu med elektronisk komponent. Till dig själv gör det själv göra sådan skönhet hemma Följande komponenter krävs:
- Drivrutin för RGB-band;
- RGB-band;
- Strömförsörjning 12V för RGB-band;
- Arduin® Nano.



Vem som helst av dig kan ladda ner och ladda ner firmware och få din digitala eldstad. Vi kontrollerar LED-remsorna från mikrokontrollern, i det här exemplet Arduino Nano.

Låt oss börja med den enklaste, nolldimensionen - en punkt (eller ett helt tejp).


Detta är den vanligaste RGB LED-remsan, som drivs med 12V och har tre-kanals kontroll för varje färg.


Med PWM-signalen (vi har den 8-bitars) kan du ställa in ljusstyrkan för varje färg och därmed få 16,7 miljoner färger och nyanser. Men vi är intresserade av eld, eller snarare dess imitation. För att simulera en flamma beslutades det att arbeta i hsv-färgutrymmet (färg, mättnad, ljusstyrka).

Dessa tre parametrar gör att du kan få 255 grundläggande nyanser, plus varje nyans för att göra 255 graderingar av mättnad, dvs blandas med vit färg. Tja, den tredje parametern är ljusstyrka, på ett enkelt språk - en blandning av skugga med svart färg.

Det finns flera algoritmer för att konvertera från ett bekvämt hsv-utrymme till RGB, använd bara en av dem.

Därefter måste du ange brandets beteende. Anta att flamstyrkan är en viss mängd, som i minimivärdet ger lysdioderna mättad röd färg och låg ljusstyrka, och i det maximala värdet ger vitgul och maximal ljus färg.

För att få flameffekten måste vi göra detta värde till slumpmässiga svängande rörelser, rörelserna måste vara slumpmässiga, men samtidigt ganska smidig, det vill säga något som liknar ett skällande ljus. Efter detta värde kommer flamans färg och ljusstyrka längs lutningen att förändras.



Författaren föreslår att lösa detta problem på följande sätt: det finns en så enkel filtreringsalgoritm, ett löpande medelvärde, som förvandlar en skarp värdeförändring till en smidig process, bara en koefficient och en ganska enkel beräkning.

Idén är denna: det är nödvändigt, säg 5 gånger per sekund, att ställa in en ny slumpmässig position för värdet på branden, och någonstans cirka 50 gånger per sekund för att filtrera detta värde, gradvis ändra det. Som ett resultat bildas en sådan slumpmässig process.

I ett verkligt exempel fungerar allt som avsett.

Nu måste vi översätta vårt värde till flammans färg enligt lagen som nämns ovan och få en endimensionell eld.


LED-remsan som är programmerad på detta sätt kan döljas till exempel av basbordet eller med något utsprång. Ett sådant band kan också ge bakgrundsbelysning, det ser ganska intressant och ovanligt ut.

Dessutom kan tejpen skickas till golvet på kort avstånd, och därmed uppnå en ganska intressant effekt.

Och naturligtvis kan ett tejp användas för att lysa upp en eldstad eller simulera den. Och om du tar bort den ljusa färgen från gul till orange får du en imitation av ulmande kol.

Eftersom vi har RGB-band kan vi göra valfri färg av sig själv. Du vill ha dödgrönt - så lätt!

Vi behöver en magiskt blå eld - inga problem!

Installera sedan programmet och drivrutinerna, som skrivet i instruktionerna på projekt sida, ladda ner och köra firmware.
I början finns det alla nödvändiga inställningar. Med deras hjälp kan du helt anpassa elden för dig själv, nämligen: färg, beteende och liknande.


Egentligen var detta det enklaste sättet att göra LED-remsan "bränna". Låt oss nu titta på mer intressanta exempel. För ytterligare arbete kommer du att behöva adress led strip.

Det här bandet gör att du individuellt kan styra var och en av sina lysdioder och alla har en av 16,7 miljoner färgnyanser.
Allt är helt enkelt anslutet enligt detta schema:

Inga drivrutiner behövs, men ett motstånd rekommenderas. Du kan klara dig utan det, men det finns en risk för utbränning av den första lysdioden, och om detta händer kommer de nästa inte heller att fungera.
Med direktbelysning, till exempel under soffan, får du en utmärkt helvete soffa med effekten av ulmande kull.


Ett sådant band kan också skjutas in i en vanlig lätt profil och använda som ett oberoende element i interiören.

Det ser ganska bra ut, håller med, men låt oss fortfarande försöka uppnå individuella lågor.

Vi kommer att lämna algoritmen densamma. Vi delar tejpen i zoner med olika bredder, varje zon kommer att ha sin egen slumpmässiga process. För att göra denna process ännu mer lik en verklig låga kommer vi att fylla zonerna från kanterna till mitten och gradvis öka vårt slumpmässiga värde till det aktuella värdet. Även i processen med att "bränna" bör storleken på zonerna också ändras slumpmässigt.

Så här ser det ut:


Låt oss nu titta på en annan intressant slumpmässig process som heter Perlin-buller, som Ken Perlin kom med 1983.

Perlins buller låter dig skapa en slumpmässig utjämnad fördelning av kvantiteten i valfritt antal dimensioner. Det välkända molnfiltret i Photoshop är ett exempel på tvådimensionellt Perlin-brus.

Men Perlins tredimensionella brus gör det möjligt att till exempel generera ett bergigt landskap, dessutom att generera det mycket slumpmässigt och oändligt, och samtidigt praktiskt taget utan att skapa en belastning på datorkomponenter, eftersom algoritmen där inte är mycket beräkningsbart dyr.

Handlingsplanen är som följer: skapa en tvådimensionell Perlin-brusregion och flytta längs den på ett visst sätt, skanna pixelinjen och mata ut den till lysdioderna.

Algoritmen som nämnts ovan är inte särskilt komplicerad och Arduino lugnt hantera honom.Resultatet är en så väldigt cool effekt, så smidig som möjligt, slumpmässig och redan mycket lik den verkliga lågan med slutbelysning.

Med direktbelysning ser det ut så här:

Men alla dessa var brandalgoritmer för ett band. Och vad sägs om att fästa tejpen i ett sicksackmönster och försöka skapa tvådimensionell eld på matrisen?


Sådana matriser kan köpas från kineserna. Ovanför matrisen placerar vi en diffusor och glas tonat med bilfilm, det vill säga detta är en riktig amolead ultra-låg upplösning.




Förresten, det ser ganska realistiskt ut. Se författarens originalvideo för mer information:



Det är allt. Tack för din uppmärksamhet. Vi ses snart!
1
1
1

Lägg till en kommentar

    • lelerxaxaOKdontknowyahoonea
      bossscratchluraJaja-jaaggressivhemlighet
      ledsendansdance2dance3benådningHjälpdrycker
      stoppvännerbragoodgoodvisselpipasvimningsanfalltunga
      rökklapparcraydeclarehånfulldon-t_mentionnedladdning
      hettaRASANDElaugh1mdamötemoskingnegativ
      not_ipopcornstraffalässkrämmalarmrapportersök
      hånthank_youdettato_clueumnikakutöverens
      illabeeeblack_eyeblum3rougeskrytaledan
      censureradepleasantrysecret2hotasegeryusun_bespectacled
      shokrespektlolprevedvälkommenkrutoyya_za
      ya_dobryihjälparene_huliganne_othodiFLUDförbudstänga

Vi rekommenderar att du läser:

Räcka den till smarttelefonen ...