Dumbom Cap (2 / 4 steg)

Steg 2: Koden



/*
ColorduinoPlasma - Plasma demo med Colorduino bibliotek för Arduino
Copyright (c) 2011 Sam C. Lin lincomatic alla rättigheter reserverade

baserat på färg cykling plasma
Version 0.1 - 8 juli 2009
Copyright (c) 2009 Ben Combee. Alla rättigheter reserverade.
Copyright (c) 2009 Ken Corey. Alla rättigheter reserverade.
Copyright (c) 2008 Windell H. Oskay. Alla rättigheter reserverade.
Copyright (c) 2011 Sam C. Lin alla rättigheter reserverade

Denna demo är fri programvara; Du kan vidaredistribuera det och/eller
ändra den enligt villkoren i den GNU Lesser allmänna offentliga
Licens som offentliggörs av Free Software Foundation; antingen
version 2.1 av licensen, eller (vid ditt alternativ) någon senare version.

Denna demo distribueras i hopp om att det kommer att vara användbar,
men utan garantier; utan att ens underförstådd garanti om
SÄLJBARHET eller lämplighet för ett visst ändamål. Se GNU
Lesser General Public License för mer detaljer.

Du bör ha fått en kopia av den GNU Lesser allmänna offentliga
License tillsammans med detta bibliotek; om inte, skriv till fri programvara
Foundation, Inc., 51 Franklin St, femte våningen, Boston, MA 02110-1301 USA
*/

#include

TypeDef struct
{
unsigned char r;
unsigned char g;
unsigned char b;
} ColorRGB;

en färg med 3 komponenter: h, s och v
TypeDef struct
{
unsigned char h;
unsigned char s;
unsigned char v.
} ColorHSV;

unsigned char plasma [ColorduinoScreenWidth] [ColorduinoScreenHeight];
lång paletteShift;

Konverterar en HSV-färg till RGB-färg
void HSVtoRGB (void * vRGB, void * vHSV)
{
float r, g, b, h, s, v. denna funktion fungerar med flöten mellan 0 och 1
flyta f, p, q, t;
int i;
ColorRGB * colorRGB =(ColorRGB *) vRGB;
ColorHSV * colorHSV =(ColorHSV *) vHSV;

h = (float) (colorHSV -> h/256,0);
s = (float) (colorHSV -> s/256,0);
v = (float) (colorHSV -> v/256,0);

om mättnad är 0, är färgen en nyans av grå
IF(s == 0.0) {
b = v;
g = b;
r = g;
}
om mättnad > 0, mer komplexa beräkningar är behövs
annat
{
h * = 6.0; att få nyans till ett tal mellan 0 och 6, bättre för beräkningarna
Jag = (int)(floor(h)); e.g. 2,7 blir 2 och 3.01 blir 3 eller 4.9999 blir 4
f = h - i, //the decimaldelen av h

p = (float) (v * (1.0 - s));
q = (float) (v * (1,0 - (s * f)));
t = (float) (v * (1,0 - (s * (1.0 - f)));

Switch(i)
{
fall 0: r = v; g = t; b = p; bryta;
fall 1: r = q; g = v; b = p; bryta;
fall 2: r = p; g = v; b = t; bryta;
fall 3: r = p; g = q; b = v; bryta;
fall 4: r = t; g = p; b = v; bryta;
fall 5: r = v; g = p; b = q; bryta;
standard: r = g = b = 0; bryta;
}
}
colorRGB -> r = (int)(r * 255.0);
colorRGB -> g = (int)(g * 255.0);
colorRGB -> b = (int)(b * 255.0);
}

flöte
dist (float, float b, float c, flyta d).
{
återvända sqrt((c-a)*(c-a)+(d-b)*(d-b));
}

void
plasma_morph()
{
unsigned char x, y;
flytvärdet;
ColorRGB colorRGB;
ColorHSV colorHSV;

för (y = 0; y < ColorduinoScreenHeight; y ++)
för (x = 0; x < ColorduinoScreenWidth; x ++) {
{
värde = synd (dist (x + paletteShift, y, 128.0, 128.0) / 8,0)
+ sin (dist (x, y, 64,0, 64,0) / 8,0)
+ sin (dist (x, y + paletteShift/7, 192.0, 64) / 7.0)
+ sin (dist (x, y, 192.0, 100,0) / 8.0);
colorHSV.h= (osignerade char)((value) * 128) & 0xff;
colorHSV.s=255;
colorHSV.v=255;
HSVtoRGB (& colorRGB & colorHSV);

Colorduino.SetPixel (x, y, colorRGB.r, colorRGB.g, colorRGB.b);
}
}
paletteShift ++;

Colorduino.FlipPage(); byta skärm buffertar för att visa den
}

/********************************************************
Namn: Färgfyll
Funktion: Fylla ramen med en färg
Parameter: R: värdet av rött. Utbud: röd 0 ~ 255
G: värdet av grönt. Utbud: röd 0 ~ 255
B: värdet av blått. Utbud: röd 0 ~ 255
********************************************************/
void Färgfyll (unsigned char R, unsigned char G, unsigned char B)
{
PixelRGB * p = Colorduino.GetPixel(0,0);
för (unsigned char y = 0; y för (unsigned char x = 0, x p -> r = R;
p -> g = G;
p -> b = B;
p ++;
}
}

Colorduino.FlipPage();
}

void setup()
{
Colorduino.Init(); initiera styrelsen

kompensera relativa intensitet skillnader i R/G/B ljusstyrka
matris med 6-bitars bas värden för RGB (0 ~ 63)
whiteBalVal [0] = röd
whiteBalVal [1] = grön
whiteBalVal [2] = blå
unsigned char whiteBalVal [3] = {36,63,63}. för LEDSEE 6x6cm runda matris
Colorduino.SetWhiteBal(whiteBalVal);

börja med morphing plasma, men tillåta att färg cykling om så önskas.
paletteShift = 128000;
unsigned char bcolor;

Generera plasman en gång
för (unsigned char y = 0; y < ColorduinoScreenHeight; y ++)
för (unsigned char x = 0; x < ColorduinoScreenWidth; x ++)
{
plasma bufferten är en summa av sines
bcolor = (unsigned char)
(
128.0 + (128.0 * synd (x * 8.0/16,0))
+ 128.0 + (128.0 * synd (y * 8.0/16,0))
) / 2;
plasma [x] [y] = bcolor;
}

Om du vill justera vitbalans kan du ta bort denna rad
och kommentera ut plasma_morph() i loop()
och experimenterar med whiteBalVal ovan
ColorFill(255,255,255);
}

void loop()
{
plasma_morph();
}

Se Steg
Relaterade Ämnen

DIY bärbar svart-hearted mat produkt

.Steg 1: Material och verktyg Yakult Robe1. svart halsduk (1 m x 2 m)2. Yakult (~ 300 flaskor)3. genomskinligt lim4. akrylfärg (svart, ~ 600ml)5. sobel borste6. Internet-anslutningDumbom Cap1. vitbok (54 x 78 cm)2. järn tråd (2m lång, 2mm tjock)3. fö...

Rey (Star Wars: The Force vaknar) gratis serietidning dag 2016

Hälsningar en gång Instructable-keteers!Som vanligt, jag är sömnbrist och över koffeinhaltiga igen när jag sitter ner för att skriva upp en annan kostym äventyr.I början var det en komisk butikJag vet jag har tidigare nämnt att jag har en vän (s) som...

Princess HENNIN hatt tutorial! DIY!

A Hennin. En spetsig prinsessan party hatt! Om du är en flicka, är jag säker på att du alltid velat ha en!Okej... Jo jag har... och min 8 år gamla dotter har. Så vi gjorde en samman med saker har vi redan! Detta projekt var gratis för oss! Minimal fö...

Ja, din docka gör infact behöver en hatt. Eller 2. Eller 3...

Hmmmm, den dockan saknas något. Jag vet! En hatt! Men hon kan inte bara bära det samma som alla tiden... hon behöver alternativ. Ja, ja, jag får en idé...Mina exempel är alla vita eftersom de är modeller, men känn dig fri att använda oavsett färger d...

Hur man skapar en "ridiculously.awesome" gjuten glas reproduktion av din favorit film Prop

jag skulle vilja börja med att säga att jag älskade att uppfinna och dokumentera de senaste stora instructable att jag skrev rätt hur man bygger en ekvatoriella montera för lång exponering fotografering. Jag skrev detta för den "göra den verkliga utm...

Nikon Lens Cap innehavaren

Jag var inte fruktansvärt nöjd med några andra Nikon objektiv Cap innehavare ute, så jag konstruerade min egen använder Fusion 360. Detta tryck kommer att passa alla LC-52 Nikon objektivlock. Den har ett litet förslag på insidan ringen för att se til...

Cap'n Crunch Frappuccino

I detta Instructable ska jag berätta hur man beställer en Cap'n Crunch Frappuccino!Steg 1: Ingrediants Först måste du se till att din inte allergisk mot allt!-Hasselnötter-Kola mutter-Jordgubbar N' gräddeSteg 2: Beställning när höga... Be om en lång...

Bottle Cap dekorationer

uttråkad? Har några kapsyler hängande runt, ingenting att göra med dem? Du kan väl sätta dessa för att använda och gör halsband, armband, ringar, magneter och bara dekorationer!Steg 1: material Behöver du:1. en flaska topp2. Elmers lim eller varmt li...

Bottle Cap stå för runda objekt

har du någonsin velat Visa upp något som är runda, men det kommer inte att stå? Tja, för några dagar sedan, jag fick en Harry Potter tjallare leksak. Jag kan verkligen inte mycket med det, så jag beslutade att lägga den där folk kunde se det, men det...

Baby drake Cape

hur man gör en söt fodrad baby dragon cape för ditt favorit barn. Denna drake cape gjordes för min dotters bästa vän, för hennes 4: e födelsedag. Det gick riktigt bra, särskilt med kall kick vi hade.Steg 1: material För denna dragon cape, behöver du:...

Virka din egen lilla röda ridning huva Cape

Ska en renässans mässa och behöver en outfit? Kanske bara vill ha något söt att bära för att hålla dig varm utanför. Väl här söta hooded cape kostar inte för mycket att göra och tar inte otroligt lång tid att göra. (det tog mig ca 5 timmar) Min sväge...

Elsa avtagbar Cape

Detta instructable är en fortsättning på min Elsa klänning, som kan hittas här: Elsa klä Instructable här cape är tänkt att vara löstagbar från klänningen, så det kan tas bort när inte i använda och undvika att bli trampade på.Lite varning: denna cap...

Moster Susie Opera Cape

någon dedikerad Gene Kelly fan kan förväntas har sett bat-sh * t crazy musikaliska "Anchors Aweigh". Om du har sett det, du förmodligen var alltför distraherad av sheer vansinne att märka några av moster Susies fantastiska outfits (nej, inte den...

Hösten Cape & färgglada skogar

det börjar bli kallare och kallare, bladen förvandlas till röda, gula, apelsiner och alla skogarna bli en höst wonderland!Varför inte gå med detta evenemang med din egen färgglada, varm och mysig höst Kap?!Steg 1: Få din idé! Få dina grejer! Från scr...

Vacker fjäril Cape

Se denna vackra fjäril cape med bara ett mönster bit och en mycket lång maska. Nu kommer du att banan redo för hösten...Steg 1: Titta på den video tutorial här!Steg 2: Du behöverSymaskinE-6000 Fernström-FuseE-6000 Stitchless1 1/2 varv av 60" brett ty...

Bootle Cap (& kan ringa) DIY pin

sommaren kommer och det är dags för öldrickande...Ingen rädslaVi har ölLåt oss se ett sätt att återanvända öl caps och kan ringar för att göra vissa DIY stift...ett annat sätt att göra stift:--Redigera: en mer liknande projektSteg 1: Samla den (lätt...

Cap Toe skor till Cat skor

Jag köpte detta par cap toe platta skor från Kmart för$ 12, riktigt fin grund för ett par cat skor.Steg 1: Mask katt öron jag är inte säker på min målning färdigheter, så jag maskerade ut öronen med groda tejp. Jag justerade formerna flera gånger så...

Bottle Cap Popper

Steg 1: Intro Ingenting känns bättre än att äta en fisk du fångat på ett lockbete som du gjort. Detta drag är ett enkelt projekt och kan göras med små barn men de krokar och kniven är vass.Steg 2: Material och verktyg Behöver du:En flaska cap plast e...

Stålmannen Cape för valp

Så, jag vet Halloween har passerat, men du kan använda detta för nästa Halloween eller bara göra din valp ser bedårande!!!OK... så.Dag före Halloween: Lägger sista handen på min Red Riding Hood cape. Jag tittar på min hund... titta på min överblivna...