» elektronikk » Arduino »Branneffekter på LED-strips og Arduino

Branneffekter på LED-striper og Arduino

hilsener innbyggerne på nettstedet vårt!
I denne artikkelen vil vi vurdere noen veldig nyttige effekter for interiøret som kan lages ved hjelp av LED-stripe. Vi vil også snakke om algoritmer, om hvordan matematiske beregninger lar lysdioder skape illusjonen av varme og komfort, nemlig en flamme, en ekte digital flamme.

Alle kildekoder som blir analysert senere, kan last ned fra prosjektsiden forfatter (AlexGyver).

La oss først ta tak i elektronisk komponent. Til deg selv gjør det selv lage slik skjønnhet hjemme Følgende komponenter er nødvendige:
- Driver for RGB-tape;
- RGB-tape;
- Strømforsyning 12V for RGB-tape;
- Arduinо Nano.



Noen av dere kan laste ned og laste ned firmware og få den digitale ildstedet. Vi vil kontrollere LED-stripene fra mikrokontrolleren, i dette eksemplet Arduino Nano.

La oss starte med den enkleste, null dimensjonen - et poeng (eller et helt bånd med poeng).


Dette er den vanligste RGB LED-stripe, som drives av 12V og har tre-kanals kontroll for hver farge.


Ved hjelp av PWM-signalet (det er 8-biters), kan du stille lysstyrken til hver farge, og dermed få 16,7 millioner farger og nyanser. Men vi er interessert i brann, eller rettere sagt dens etterligning. For å simulere en flamme ble det besluttet å jobbe i hsv-fargerommet (farge, metning, lysstyrke).

Disse tre parametrene lar deg få 255 grunnleggende nyanser, pluss hver nyanse for å gjøre 255 graderinger av metning, dvs. blandes med hvit farge. Vel, den tredje parameteren er lysstyrke, på et enkelt språk - en blanding av skygge med svart farge.

Det er flere algoritmer for å konvertere fra et praktisk hsv-rom til RGB, bare bruk en av dem.

Deretter må du spesifisere brannens oppførsel. Anta at flammestyrken er en viss mengde, som i minimumsverdien gir lysdiodene mettet rød farge og lav lysstyrke, og i maksimalverdien gir hvitgul og maksimal lys farge.

For å få flammeeffekten, må vi få denne verdien til å foreta tilfeldige svingende bevegelser, bevegelsene må være tilfeldige, men samtidig ganske jevn, det vil si noe som ligner et skjelvende lys. Etter denne verdien vil henholdsvis fargen og lysstyrken til flammen langs gradienten endre seg.



Forfatteren foreslår å løse dette problemet på følgende måte: det er en så veldig enkel filtreringsalgoritme, løpende gjennomsnitt, som gjør en skarp verdiendring til en jevn prosess, bare en koeffisient og en ganske enkel beregning.

Ideen er denne: det er nødvendig, si 5 ganger per sekund, for å stille en ny tilfeldig posisjon for brannen, og et sted rundt 50 ganger i sekundet for å filtrere denne verdien, gradvis endre den. Som et resultat dannes en slik tilfeldig prosess.

I et ekteeksempel fungerer alt etter hensikten.

Nå må vi oversette verdien vår til fargen på flammen i henhold til loven nevnt over, og få en endimensjonal brann.


LED-stripen som er programmert på denne måten, kan for eksempel skjules av baseboard eller ved noe utstikk. Også et slikt bånd kan gi bakgrunnsbelysning, det ser ganske interessant og uvanlig ut.

Dessuten kan båndet sendes til gulvet på kort avstand, og dermed også oppnå en ganske interessant effekt.

Og selvfølgelig kan et bånd brukes til å belyse en peis eller simulere den. Og hvis du fjerner den lyse fargen fra gul til oransje, får du en etterligning av ulmende kull.

Siden vi har RGB-tape, kan vi lage hvilken som helst brannfarge av seg selv. Du vil ha dødt grønt - så lett!

Vi trenger en magisk blå ild - ikke noe problem!

Installer deretter programmet og driverne, som skrevet i instruksjonene på prosjektside, last ned og kjør firmwaren.
Helt i begynnelsen er det alle nødvendige innstillinger. Med deres hjelp kan du tilpasse brannen for deg selv, nemlig: farge, oppførsel og lignende.


Egentlig var dette den enkleste måten å få LED-stripen til å "brenne". La oss se på mer interessante eksempler. For ytterligere arbeid du trenger adresse led strip.

Dette båndet lar deg styre hver av LED-ene deres individuelt og inkluderer en av 16,7 millioner fargenyanser.
Alt er koblet veldig enkelt, i henhold til denne ordningen:

Ingen drivere er nødvendig, men en motstand anbefales. Du kan klare deg uten det, men det er en sjanse for utbrenthet av den første lysdioden, og hvis dette skjer, så fungerer heller ikke de neste.
Med direkte belysning, for eksempel fra under sofaen, får du en utmerket helvetesofa med effekten av ulmende kull.


Et slikt bånd kan også skyves inn i en vanlig lett profil og bruk som et uavhengig element i interiøret.

Det ser ganske bra ut, enig, men la oss likevel prøve å oppnå individuelle flammer.

Vi vil la algoritmen være den samme. Vi bryter båndet i soner med forskjellige bredder, hver sone vil ha sin egen tilfeldige prosess. For å gjøre denne prosessen enda mer lik en ekte flamme, vil vi fylle sonene fra kantene til sentrum og gradvis øke vår tilfeldige verdi til dens nåværende verdi. I prosessen med å "brenne", bør størrelsen på sonene også endres tilfeldig.

Slik ser det ut:


La oss se på en annen interessant tilfeldig prosess kalt Perlin-støy, som Ken Perlin kom med i 1983.

Perlins støy lar deg lage en tilfeldig jevn fordeling av størrelsen i et hvilket som helst antall dimensjoner. Det velkjente skyfilteret i Photoshop er et eksempel på todimensjonal Perlin-støy.

Men Perlins tredimensjonale støy gjør det mulig å generere for eksempel et fjellandskap og å generere det veldig tilfeldig og uendelig, og samtidig praktisk uten å skape en belastning på datamaskinkomponenter, siden algoritmen der ikke er veldig beregningsdyktig.

Handlingsplanen er som følger: først lager du et todimensjonalt Perlin-støyområde og beveger deg langs den på en viss måte, skanner linjen med piksler og sender den ut til lysdiodene.

Algoritmen som nevnt over er ikke veldig komplisert og Arduino ta det rolig med ham.Resultatet er en så veldig kul effekt, så jevn som mulig, tilfeldig og allerede veldig lik den virkelige flammen med sluttbelysning.

Med direkte belysning ser det slik ut:

Men alle disse var brannalgoritmer for ett bånd. Og hva med å stikke båndet i et sikksakkmønster og prøve å lage todimensjonalt ild på matrisen?


Slike matriser kan kjøpes fra kineserne. Over matrisen plasserer vi en diffusor og glass farget med bilfilm, det vil si at dette er et ekte amolead ultra-lav oppløsningsskjerm.




For øvrig ser det ganske realistisk ut. Se forfatterens originale video for mer informasjon:



Det er alt. Takk for oppmerksomheten. Vi ses snart!
1
1
1

Legg til en kommentar

    • smilersmilerxaxaokdontknowyahoonea
      sjefscratchlurejaja-jaaggressivhemmelighet
      beklagerdansedance2dance3benådninghjelpdrikkevarer
      stoppvennergodgoodgoodfløytebesvimelsetunge
      røykklappingCrayerklærehånligdon-t_mentionnedlasting
      heteirefullaugh1MDAmøtemoskingnegative
      not_ipopcornstraffeleseskremmeskremmersøk
      spydighetthank_youdetteto_clueumnikakuttenig
      dårligbeeeblack_eyeblum3rødmeskrytekjedsomhet
      sensurertpleasantrysecret2trueseieryusun_bespectacled
      ShokRespektlolPrevedvelkommenKrutoyya_za
      ya_dobryihelperne_huliganne_othodiFLUDforbudnær

Vi anbefaler deg å lese:

Gi den til smarttelefonen ...