Casquillo de burro (2 / 4 paso)

Paso 2: El código

/*
ColorduinoPlasma - demo de Plasma usando la biblioteca Colorduino para Arduino
Lincomatic Copyright (c) 2011 Sam C. Lin todos los derechos reservados

basado en ciclo plasma de Color
Versión 0.1 - 08 de julio de 2009
Copyright (c) 2009 Ben Combee. Todos los derechos reservados.
Copyright (c) 2009 Ken Corey. Todos los derechos reservados.
Copyright (c) 2008 Windell H. Oskay. Todos los derechos reservados.
Copyright (c) 2011 Sam C. Lin todos los derechos reservados

Esta demo es software libre; Usted puede redistribuirlo y/o
modificar bajo los términos de la GNU menor General pública
Licencia publicada por la Free Software Foundation; cualquiera de los dos
versión 2.1 de la licencia o (a su opción) cualquier versión posterior.

Esta demo se distribuye con la esperanza de que sea útil,
pero sin ninguna garantía; ni siquiera la garantía implícita de
COMERCIABILIDAD o aptitud para un propósito PARTICULAR. Ver la GNU
Lesser General Public License para más detalles.

Usted debe han recibido una copia de la GNU menor General pública
Licencia junto con esta biblioteca; Si no, escriba a la Free Software
Foundation, Inc., 51 Franklin St, quinto piso, Boston, MA 02110-1301 USA
*/

#include

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

un color con 3 componentes: h, s y v
typedef struct
{
unsigned char h;
unsigned char s;
unsigned char v;
} ColorHSV;

plasma de unsigned char [ColorduinoScreenWidth] [ColorduinoScreenHeight];
largo paletteShift;

Convierte un color HSV en RGB
void HSVtoRGB (void * vRGB, void * vHSV)
{
Float r, g, b, h, s, v; Esta función trabaja con los flotadores entre 0 y 1
Float 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);

Si saturación es 0, el color es un tono de gris
if(s == 0.0) {}
b = v;
g = b;
r = g;
}
Si saturación > 0, cálculos más complejos son necesarios
otra cosa
{
h * = 6.0; para dar color a un número entre 0 y 6, mejor para los cálculos
i = (int)(floor(h)); por ejemplo 2.7 se convierte en 2 y 3.01 se convierte en 3 o 4 4.9999
f = h - i; parte fraccionaria //the de 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)
{
caso 0: r = v; g = t; b = p; rotura;
caso 1: r = q; g = v; b = p; rotura;
caso 2: r = p; g = v; b = t; rotura;
caso 3: r = p; g = q; b = v; rotura;
caso 4: r = t; g = p; b = v; rotura;
caso 5: r = v; g = p; b = q; rotura;
por defecto: r = g = b = 0; rotura;
}
}
colorRGB -> r = (int)(r * 255.0);
colorRGB -> g = (int)(g * 255.0);
colorRGB -> b = (int)(b * 255.0);
}

flotador
Dist (flotador float a, float b, float c, d).
{
volver sqrt((c-a)*(c-a)+(d-b)*(d-b));
}

vacío
plasma_morph()
{
unsigned char x, y;
Float valor;
ColorRGB colorRGB;
ColorHSV de ColorHSV;

para (y = 0; y < ColorduinoScreenHeight; y ++)
para (x = 0; x < ColorduinoScreenWidth; x ++) {}
{
valor = pecado (dist (x + paletteShift, y, 128.0, 128.0) / 8.0)
+ pecado (dist (x, y, 64,0, 64,0) / 8.0)
+ pecado (dist (x, y + paletteShift/7, 192.0, 64) / 7.0)
+ pecado (dist (x, y, 192.0, 100.0) / 8.0);
colorHSV.h= (unsigned 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(); intercambio de buffers de pantalla para mostrarlo
}

/********************************************************
Nombre: ColorFill
Función: Rellenar el marco con un color
Parámetro: R: el valor de rojo. Gama: rojo 0 ~ 255
G: el valor verde. Gama: rojo 0 ~ 255
B: el valor de azul. Gama: rojo 0 ~ 255
********************************************************/
ColorFill vacío (unsigned char I, G de unsigned char, unsigned char B)
{
PixelRGB * p = Colorduino.GetPixel(0,0);
para (unsigned char y = 0; y para (unsigned char x = 0; x p -> r = R;
p -> g = G;
p -> b = B;
p ++;
}
}

Colorduino.FlipPage();
}

void setup()
{
Colorduino.Init(); inicializar la Junta

compensar las diferencias de intensidad relativa de brillo R/G/B
matriz de valores base 6 bits para RGB (0 ~ 63)
whiteBalVal [0] = rojo
whiteBalVal [1] = verde
whiteBalVal [2] = azul
unsigned char whiteBalVal [3] = {36,63,63}; para LEDSEE 6x6cm redondo matriz
Colorduino.SetWhiteBal(whiteBalVal);

comenzar con morphing de plasma, pero permiten ir colorear ciclismo si lo desea.
paletteShift = 128000;
unsigned char bcolor;

generar el plasma una vez
para (unsigned char y = 0; y < ColorduinoScreenHeight; y ++)
para (unsigned char x = 0; x < ColorduinoScreenWidth; x ++)
{
el buffer del plasma es una suma de senos
bcolor = (unsigned char)
(
128.0 + (128.0 * pecado (x * 8.0/16.0))
+ 128.0 + (128.0 * pecado (y * 8.0/16.0))
) / 2;
plasma [x] [y] = bcolor;
}

para ajustar el balance de blancos puede descomentar esta línea
y comente la plasma_morph() en el loop()
y luego experimentar con whiteBalVal arriba
ColorFill(255,255,255);
}

void loop()
{
plasma_morph();
}

Artículos Relacionados

Rey (Star Wars: la fuerza despierta) cómic día 2016 libre

Rey (Star Wars: la fuerza despierta) cómic día 2016 libre

Saludos una vez más Instructable keteers!Como por siempre, soy privados de sueño y encima con cafeína pues me siento abajo para escribir otra aventura de traje.Al principio era una tienda de cómicSé que anteriormente he mencionado que tengo un amigo
Cómo crear una reproducción de vidrio fundido de su pilar de película favorito "ridiculously.awesome"

Cómo crear una reproducción de vidrio fundido de su pilar de película favorito "ridiculously.awesome"

gustaría empezar diciendo que me encantó el proceso de inventar y documentar las principales última instructable que escribí titulado Cómo construir un montaje ecuatorial para larga exposición astrofotografía.  Escribí esto para el "hacer lo verdader
Sí, su muñeca hace hecho necesita un sombrero. O 2. O 3...

Sí, su muñeca hace hecho necesita un sombrero. O 2. O 3...

Hmmmm, esa muñeca le falta algo. ¡Lo sé! Un sombrero! Pero ella simplemente no puede usar el mismo uno todo que el tiempo... ella necesita opciones. Sí, sí, me estoy volviendo una idea...Mis ejemplos son todos blancos, porque son modelos, pero siénta
DIY para alimento de corazón negro

DIY para alimento de corazón negro

.Paso 1: Material y herramientas Traje de Yakult1. negra bufanda (1 m x 2 m)2. Yakult (~ 300 botellas)3. pegamento transparente4. acrílico (negro, ~ 600ml)5. sable cepillo6. conexión a InternetCasquillo de burro1. libro blanco (54 cm x 78 cm)2. planc
Tutorial sombrero de HENNIN de princesa! ¡ DIY!

Tutorial sombrero de HENNIN de princesa! ¡ DIY!

A Hennin.  Un sombrero acentuado fiesta princesa!  Si eres una chica, estoy seguro que siempre has querido uno!Está bien... así que tengo... y mi 8 años hija de ha.  Por lo que nos hace uno con cosas que ya tenemos!  Este proyecto fue libre para noso
Casquillos de la bola de la boda

Casquillos de la bola de la boda

Hago estas gorras con los colores de las bodas. Son grandes para el ensayo de boda, fiestas despedidas de soltero / despedida de soltera o incluso una ceremonia de boda casual.Las tapas fueron compradas en una tienda de hobby local. Usé tuele, flores
Hormigón arquitectónico: Casquillos, casquillos de la columna y chimenea hogar y chimenea de la pared

Hormigón arquitectónico: Casquillos, casquillos de la columna y chimenea hogar y chimenea de la pared

Como arquitecto tengo a veces una visión para elemento de diseño o acabado que es difícil o costoso de adquirir o construir. Por ejemplo, molde concreto productos como encimeras o muebles son hermoso y durable, pero relativamente caro.En 2011 fui a p
Máscara de burro con boca trabajando (marioneta de cara)

Máscara de burro con boca trabajando (marioneta de cara)

con una máscara de burro se puede:Promover el partido demócrataGastarle una broma con una temática prácticamente a un agricultorAsustar a tu perroHacer un culo de sí mismoPresentan fondo de Nick en sueño de una noche de veranoRobar un bancoReducir su
Convertir casquillo resistente del niño al ambiente adulto

Convertir casquillo resistente del niño al ambiente adulto

No odias cuando empiezas a abrir algo tan simple como una botella de enjuague bucal y todos que haz click-click-click, o peor aún, cierre bloqueado – lo sentimos, no hay entrada aquí a menos que aprete estos dos ámbitos específicos, gire. Y la tapa p
¿Cómo alambre-para arriba un casquillo de bombilla de luz

¿Cómo alambre-para arriba un casquillo de bombilla de luz

cansado de contratar electritions para hacer todo el trabajo eléctrico simple? que está a punto de cambiar!Paso 1: artículos necesita:un cable tomacorriente macho, un nuevo casquillo de bombilla y un destornillador de cabeza plana.Paso 2: lo primero
Casquillos y tapas caseras de la botella de Nuka cola

Casquillos y tapas caseras de la botella de Nuka cola

se necesita:pintura rojatapas de botellas de cervezaNuka cola tapa etiquetas de devan artepegamento de PVAcepillo de pinturapintura blanca (opcional)Paso 1: la base obtener su pintura roja y pintar las tapas rojasPaso 2: etiquetas Haz tus etiquetas y
Imanes de nevera de casquillo de cobre

Imanes de nevera de casquillo de cobre

para cuando no se necesita perder el tiempo, ha encendido allí frig imanes.Cumpleaños de mi madre venía hacia arriba y mientras tenía un regalo agradable para ella, que necesitaba a un 'media embutidora'. Algo pequeño y útil. La última vez que estuve
Casquillo del invierno Crochainmaille

Casquillo del invierno Crochainmaille

Este Instructable mostrará cómo ciclo ascendente de una vieja gorra de béisbol en un gorro de invierno acogedorPaso 1: Las cosas que necesitesUna gorraAlgunas pinzas para los anillos de saltoanillas de 3/8 de pulgadaAlgunos hiladosUna aguja de coserH
El bote de cebo Diy burro de Rod

El bote de cebo Diy burro de Rod

Hola todo como más que un cebo barco yo y 2 compañeros jugó con la idea de construir uno y de esa idea nació el burro de la barraEscribí este blog hace un tiempo ahora compruébela hacia fuera todas las dimensiones y los planes existen para su referen