4 étapes Cap Dunce (avec photos)

4 étapes Cap Dunce (avec photos)

Étape 2: Le code

4 étapes Cap Dunce (avec photos)

Cette démo est un logiciel libre; vous pouvez le redistribuer et / ou
le modifier selon les termes de la GNU Lesser General Public
Licence telle que publiée par la Free Software Foundation; non plus
version 2.1 de la licence, ou (à votre choix) toute version ultérieure.

Cette démo est distribué dans l'espoir qu'il sera utile,
mais SANS AUCUNE GARANTIE; sans même la garantie implicite de
COMMERCIALISATION ou D'ADAPTATION À UN USAGE PARTICULIER. Voir la GNU
Licence publique générale pour plus de détails.

Vous devriez avoir reçu une copie de la GNU Lesser General Public
Licence avec cette bibliothèque; sinon, écrire sur le logiciel libre
Foundation, Inc. 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
* /

typedef struct
unsigned char r;
unsigned char g;
unsigned char b;
> ColorRGB;

// une couleur avec 3 composants: h, s et v
typedef struct
h unsigned char;
s unsigned char;
unsigned char v;
> ColorHSV;

plasma unsigned char [ColorduinoScreenWidth] [ColorduinoScreenHeight];
à long paletteShift;


// convertit une couleur HSV à la couleur RGB
annuler HSVtoRGB (void * vRGB, void * SHV)
flotter r, g, b, h, s, v; // Cette fonction fonctionne avec des flotteurs entre 0 et 1
float f, p, q, t;
int i;
ColorRGB * colorRGB = (ColorRGB *) vRGB;
ColorHSV * colorHSV = (ColorHSV *) SHV;

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

// si la saturation est 0, la couleur est une nuance de gris
if (s == 0,0) b = v;
g = b;
r = g;
>
// si la saturation> 0, des calculs plus complexes sont nécessaires
autre
h * = 6,0; // pour amener la teinte à un nombre compris entre 0 et 6, mieux pour les calculs
i = (int) (étage (h)); //par exemple. 2.7 devient 2 et 3,01 devient 3 ou 4 4,9999 devient
f = h - i; // la partie fractionnaire de h

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

commutateur (i)
case 0: r = v; g = t; b = p; Pause;
Cas 1: r = q; g = v; b = p; Pause;
Cas 2: r = p; g = v; b = t; Pause;
case 3: r = p; g = q; b = v; Pause;
Cas 4: r = t; g = p; b = v; Pause;
cas 5: r = v; g = p; b = q; Pause;
par défaut: r = g = b = 0; Pause;
>
>
colorRGB-> r = (int) (r * 255,0);
colorRGB-> g = (int) (g * 255,0);
colorRGB-> b = (int) (b * 255,0);
>

flotte
dist (un flotteur, le flotteur b, c flotteur, le flotteur d)
sqrt de retour ((c-a) * (c-a) + (d-b) * (d-b));
>


vide
plasma_morph ()
unsigned char x, y;
valeur flotter;
ColorRGB colorRGB;
ColorHSV colorHSV;

pour (y = 0; y < ColorduinoScreenHeight; y++)
for (x = 0; x < ColorduinoScreenWidth; x++) value = sin(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 = (unsigned char) ((valeur) * 128) -0xff;
colorHSV.s = 255;
colorHSV.v = 255;
HSVtoRGB (-colorRGB, -colorHSV);

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

Colorduino.FlipPage (); // tampons d'écran d'échange pour le montrer
>

/ ************************************************* *******
Nom: ColorFill
Fonction: Remplissez le cadre avec une couleur
Paramètre: R: la valeur de RED. Portée: ROUGE 0

255
G: la valeur de GREEN. Portée: ROUGE 0

255
B: la valeur de bleu. Portée: ROUGE 0

255
************************************************** ****** /
ColorFill vide (unsigned char R, G unsigned char, unsigned char B)
PixelRGB * p = Colorduino.GetPixel (0,0);
pour (unsigned char y = 0; y pour (unsigned char x = 0; x p-> r = R;
p-> g = G;
p-> b = B;
p ++;
>
>

void setup()
Colorduino.Init (); // initialiser la carte

// compenser les différences d'intensité relative de luminosité de R / G / B
// matrice de valeurs de base de 6 bits pour RVB (0

63)
// whiteBalVal [0] = rouge
// whiteBalVal [1] = vert
// whiteBalVal [2] = bleu
unsigned char whiteBalVal [3] =; // pour LEDSEE matrice ronde 6x6cm
Colorduino.SetWhiteBal (whiteBalVal);


// commencer par morphing plasma, mais permettent d'aller à la couleur du vélo si on le souhaite.
paletteShift = 128000;
unsigned char BCOLOR;

// générer une fois que le plasma
pour (unsigned char y = 0; y < ColorduinoScreenHeight; y++)
pour (unsigned char x = 0; x < ColorduinoScreenWidth; x++)
// le tampon de plasma est une somme de sinus
BCOLOR = (unsigned char)
(
128,0 + (128,0 * sin (x * 8,0 / 16,0))
+ 128,0 + (128,0 * sin (y * 8,0 / 16,0))
) / 2;
plasma [x] [y] = BCOLOR;
>

Étape 3: temps de couper

4 étapes Cap Dunce (avec photos)

4 étapes Cap Dunce (avec photos)

4 étapes Cap Dunce (avec photos)

Tout d'abord, soyez prudent. Ne pas couper dans votre main avec le exacto. Ce serait un vrai mouvement de cancre. Je rédigeai à peu près ÂNE avec un Shapie sur un sac d'épicerie de ferraille. Cassette fermement sur le cône d'agir comme un pochoir. Puis, en utilisant la Exacto, couper si les lettres. peler doucement le pochoir et la bande un sac en plastique sur la face intérieure derrière les lettres.

Étape 4: Taping It Up

4 étapes Cap Dunce (avec photos)

4 étapes Cap Dunce (avec photos)

4 étapes Cap Dunce (avec photos)

bande pré toutes les pièces électroniques (Minty, la matrice de LED, câble USB) et les placer à l'intérieur du cône. Placez le MintyBoost tout le chemin en haut et positionner la matrice LED de sorte que vous obtenez le plus de lumière qui brille à travers la découpe. Attention l'ami FTDI, il est toujours connecté par des en-têtes fragiles.

Articles Liés