» elektronik » Arduino »Brandeffekter på LED-strimler og Arduino

Brandeffekter på LED-striber og Arduino

hilsner indbyggerne på vores site!
I denne artikel skal vi se på nogle meget nyttige effekter på interiøret, der kan oprettes ved hjælp af LED-strip. Vi vil også tale om algoritmer, om hvordan matematiske beregninger gør det muligt for LED'er at skabe en illusion af varme og komfort, nemlig en flamme, en rigtig digital flamme.

Alle kildekoder, der vil blive parset senere, kan download fra projektsiden forfatter (AlexGyver).

Lad os først behandle elektronisk komponent. Til dig selv gør det selv lave sådan skønhed derhjemme Følgende komponenter kræves:
- Driver til RGB-bånd;
- RGB-bånd;
- Strømforsyning 12V til RGB-bånd;
- Arduin® Nano.



Enhver af jer kan downloade og downloade firmware og få din digitale ildsted. Vi kontrollerer LED-strimlerne fra mikrokontrolleren i dette eksempel Arduino Nano.

Lad os starte med den enkleste, nul-dimension - et punkt (eller et helt bånd med punkter).


Dette er den mest almindelige RGB LED-strip, der drives af en spænding på 12V og har tre-kanals kontrol for hver farve.


Ved hjælp af PWM-signalet (det er 8-bit) kan du indstille lysstyrken for hver farve og dermed få 16,7 millioner farver og nuancer. Men vi er interesseret i brand eller rettere dets efterligning. For at simulere en flamme blev det besluttet at arbejde i hsv-farverummet (farve, mætning, lysstyrke).

Disse 3 parametre giver dig mulighed for at få 255 grundlæggende nuancer, plus hver nuance for at foretage 255 gradationer af mætning, dvs. blandes med hvid farve. Nå, den tredje parameter er lysstyrke på et enkelt sprog - en blanding af skygge med sort.

Der er flere algoritmer til konvertering fra en praktisk hsv-plads til RGB, bare brug en af ​​dem.

Derefter skal du specificere brandens opførsel. Antag, at flammestyrken er en bestemt mængde, som i minimumsværdien giver lysdioderne mættet rød farve og lav lysstyrke, og i den maksimale værdi giver hvidgul og maksimal lys farve.

For at få flammeeffekten er vi nødt til at få denne værdi til at foretage tilfældige svingende bevægelser, bevægelserne skal være tilfældige, men samtidig ganske glatte, det vil sige noget der ligner et rysten lys. Efter denne værdi ændres henholdsvis farven og lysstyrken på flammen langs gradienten.



Forfatteren foreslår at løse dette problem på følgende måde: der er en så meget simpel filtreringsalgoritme, et løbende gennemsnit, der forvandler en skarp ændring i værdien til en glat proces, kun en koefficient og en temmelig enkel beregning.

Ideen er denne: det er nødvendigt, siges 5 gange i sekundet, at indstille en ny tilfældig position for værdien af ​​ilden, og et sted omkring 50 gange i sekundet for at filtrere denne værdi, gradvist ændre den. Som et resultat dannes en sådan tilfældig proces.

I et ægte eksempel fungerer alt efter hensigten.

Nu er vi nødt til at oversætte vores værdi til farven på flammen i henhold til den ovenfor nævnte lov og få en endimensionel ild.


LED-strimlen, der er programmeret på denne måde, kan f.eks. Skjules ved bundpladen eller ved noget fremspring. Et sådant bånd kan også give baggrundsbelysning, det ser ganske interessant og usædvanligt ud.

Desuden kan båndet sendes til gulvet på kort afstand og dermed også opnå en ret interessant effekt.

Og selvfølgelig kan et stykke tape bruges til at belyse en pejs eller simulere den. Og hvis du fjerner den lyse farve fra gul til orange, får du en efterligning af ulmende kul.

Da vi har RGB-bånd, kan vi selv fremstille enhver farve på ilden. Du vil have dødt grønt - så let!

Vi har brug for en magisk blå ild - intet problem!

Installer derefter programmet og driverne, som skrevet i instruktionerne på projekt side, download og kør firmwaren.
Helt fra starten er der alle de nødvendige indstillinger. Med deres hjælp kan du fuldt ud tilpasse ilden til dig selv, nemlig: farve, opførsel og lignende.


Faktisk var dette den nemmeste måde at få LED-strimlen til at "brænde". Lad os nu se på mere interessante eksempler. For yderligere arbejde skal du bruge adresse led strip.

Dette bånd giver dig mulighed for individuelt at styre hver af dens LED'er og inkluderer hver en af ​​16,7 millioner farveskygger.
Alt er forbundet meget enkelt ifølge dette skema:

Ingen drivere er nødvendige, men en modstand anbefales. Du kan undvære det, men der er en chance for udbrænding af den første LED, og ​​hvis dette sker, så fungerer de næste heller ikke.
Med direkte belysning, for eksempel fra under sofaen, får du en fremragende helvede sofa med effekten af ​​ulmende kul.


Et sådant bånd kan også skubbes ind i en almindelig let profil og brug som et uafhængigt element i interiøret.

Det ser temmelig godt ud, enig, men lad os stadig prøve at opnå individuelle flammer.

Vi forlader algoritmen den samme. Vi bryder båndet i zoner med forskellige bredder, hver zone har sin egen tilfældige proces. For at gøre denne proces endnu mere ligner en ægte flamme, vil vi udfylde zoner fra kanter til centrum og gradvist øge vores tilfældige værdi til dens aktuelle værdi. I processen med at "brænde" skal størrelsen på zonerne også ændre tilfældigt.

Sådan ser det ud:


Lad os nu se på en anden interessant tilfældig proces kaldet Perlin støj, som Ken Perlin kom med i 1983.

Perlins støj giver dig mulighed for at oprette en tilfældig udjævnet fordeling af størrelsen i et hvilket som helst antal dimensioner. Det velkendte skyfilter i Photoshop er et eksempel på todimensionel Perlin-støj.

Men Perlins tredimensionelle støj gør det muligt at generere for eksempel et bjergrigt landskab og generere det meget tilfældigt og uendeligt, og på samme tid praktisk uden at skabe en belastning på computerkomponenter, da algoritmen der ikke er meget beregningsdygtig.

Handlingsplanen er som følger: først opretter vi et todimensionalt område af Perlin-støj, og vi bevæger os langs den på en bestemt måde, skanner linjen med pixels og udsender den til lysdioderne.

Algoritmen som nævnt ovenfor er ikke særlig kompliceret og Arduino rolig håndtere ham.Resultatet er sådan en meget cool effekt, så glat som muligt, tilfældig og allerede meget lig den rigtige flamme med slutbelysning.

Med direkte belysning ser det sådan ud:

Men alle disse var brandalgoritmer til et bånd. Og hvad med at sætte båndet i et zigzagmønster og prøve at lave todimensionel ild på matrixen?


Sådanne matrixer kan købes fra kineserne. Over matrixen placerer vi en diffusor og glas tonet med bilfilm, det vil sige, dette er en rigtig amold skærm med meget lav opløsning.




For øvrig ser det temmelig realistisk ud. Se forfatterens originale video for flere detaljer:



Det er alt. Tak for din opmærksomhed. Vi ses snart!
1
1
1

Tilføj en kommentar

    • smilesmilxaxaokdontknowyahoonea
      bossscratchnarrejaja-jaaggressivhemmelighed
      undskylddansdance2dance3benådninghjælpdrikkevarer
      stop-vennergodgoodgoodfløjtedånetunge
      røgklappecrayerklærerspottendedon-t_mentiondownloade
      hedeirefullaugh1mdamødemoskingnegativ
      not_ipopcornstraffelæseskræmmeforskrækkelsersøg
      hånethank_youdetteto_clueumnikakutenig
      dårligbeeeblack_eyeblum3blushpralekedsomhed
      censureretpleasantrysecret2truesejryusun_bespectacled
      SHOKRespektlolprevedvelkommenkrutoyya_za
      ya_dobryihjælperenne_huliganne_othodiFludforbudtæt

Vi råder dig til at læse:

Giv den til smartphonen ...