, , , ,

Cubo de LEDs RGB 4x4x4 para Arduino

REF: KS0177


Este Cubo consiste num conjunto de 64 LEDs RGB soldados numa combinação de 4x4x4. Programável através do Arduino, este Cubo emite luz quente de várias cores.

42,29 IVA INCL.

Download PDF

Cubo de LEDs RGB 4x4x4 para Arduino

Este Cubo consiste num conjunto de 64 LEDs RGB soldados numa combinação de 4x4x4. Programável através do Arduino, este Cubo emite luz quente de várias cores. É útil tanto como objeto de aprendizagem de robótica e programação, como enquanto ferramenta de terapia e de estimulação sensorial para trabalhar com alunos de educação inclusiva, em Salas Snoezelen.

O Cubo vem parcialmente montado. Todos os LEDs RGB já se encontram soldados às placas PCB e são previamente testados. Por isso, só precisarás de soldar as placas, para criares uma matriz 3D.

Em termos de programação, este Cubo já vem com um esboço de código pré-instalado. No entanto, poderás fazer o upload dos teus próprios códigos, utilizando o Arduino e a biblioteca Cube4, o que torna mais fácil para ti a criação de animações e displays.

Poderás, por exemplo, fazer os seguintes projetos:

  • Condições meteorológicas, baseadas em dados online.
  • Animações de batimento cardíaco.
  • Animações de cores sincronizadas com música.
  • O nível de água num tanque.
  • Notificações de email.

Características

  • 64 LEDs RGB
  • Montagem simples
  • Matriz de LED compatível com Arduino
  • Fonte de alimentação interdependente 7-12V
Download PDF
#include 
typedef struct
{
unsigned char r;
unsigned char g;
unsigned char b;
} ColorRGB;
//a color with 3 components: h, s and v
typedef struct
{
unsigned char h;
unsigned char s;
unsigned char v;
} ColorHSV;
unsigned char plasma[ColorduinoScreenWidth][ColorduinoScreenHeight];
long paletteShift;
//Converts an HSV color to RGB color
/*void HSVtoRGB(void *vRGB, void *vHSV)  /////////////////////////////////////
{float r, g, b, h, s, v; //this function works with floats between 0 and 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);
//if saturation is 0, the color is a shade of grey
if(s == 0.0) {
b = v;
g = b;
r = g;
}
//if saturation > 0, more complex calculations are needed
else
{
h *= 6.0; //to bring hue to a number between 0 and 6, better for the calculations
i = (int)(floor(h)); //e.g. 2.7 becomes 2 and 3.01 becomes 3 or 4.9999 becomes 4
f = h - i;//the fractional part of 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)
{
case 0: r=v; g=t; b=p; break;
case 1: r=q; g=v; b=p; break;
case 2: r=p; g=v; b=t; break;
case 3: r=p; g=q; b=v; break;
case 4: r=t; g=p; b=v; break;
case 5: r=v; g=p; b=q; break;
default: r = g = b = 0; break;
}
}
colorRGB->r = (int)(r * 255.0);
colorRGB->g = (int)(g * 255.0);
colorRGB->b = (int)(b * 255.0);
}
float dist(float a, float b, float c, float d)///////////////////////////////////////////////////////
{
return sqrt((c-a)*(c-a)+(d-b)*(d-b));
}
void plasma_morph()                    //////////////////////////////////////////////
{
unsigned char x,y;
float value;
ColorRGB colorRGB;
ColorHSV colorHSV;
for(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)((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(); // swap screen buffers to show it
}*/
/********************************************************
Name: ColorFill
Function: Fill the frame with a color
Parameter:R: the value of RED. Range:RED 0~255
G: the value of GREEN. Range:RED 0~255
B: the value of BLUE. Range:RED 0~255
********************************************************/
void ColorFill(unsigned char R,unsigned char G,unsigned char B)
{
PixelRGB *p = Colorduino.GetPixel(0,0);
for (unsigned char y=0;y<ColorduinoScreenWidth;y++) {
for(unsigned char x=0;x<ColorduinoScreenHeight;x++) { p->r = R;
p->g = G;
p->b = B;
p++;
}
}
Colorduino.FlipPage();
}
void setup()
{
Colorduino.Init(); // initialize the board
// compensate for relative intensity differences in R/G/B brightness
// array of 6-bit base values for RGB (0~63)
// whiteBalVal[0]=red
// whiteBalVal[1]=green
// whiteBalVal[2]=blue
//http://keyes-arduino.taobao.com
unsigned char whiteBalVal[3] = {36,63,63}; // for LEDSEE 6x6cm round matrix
Colorduino.SetWhiteBal(whiteBalVal);
// start with morphing plasma, but allow going to color cycling if desired.
paletteShift=128000;
unsigned char bcolor;
//generate the plasma once
/*for(unsigned char y = 0; y < ColorduinoScreenHeight; y++)
for(unsigned char x = 0; x < ColorduinoScreenWidth; x++)
{
//the plasma buffer is a sum of sines
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;
}*/
// to adjust white balance you can uncomment this line
// and comment out the plasma_morph() in loop()
// and then experiment with whiteBalVal above
 ColorFill(0,0,0);
}
void loop()
{
//plasma_morph();
 ColorFill(255,0,0);
 delay(2000);
 ColorFill(0,255,0);
 delay(2000); 
 ColorFill(0,0,255);
 delay(2000);
// ColorFill(255,255,255);
// delay(1000);
}

Montagem

Download PDF

Clica aqui para consultares todas as informações para a montagem e instalação.

Vídeo

Download PDF

Baseada em 0 avaliações

0.0 pontuação
0
0
0
0
0

Seja o primeiro a avaliar “Cubo de LEDs RGB 4x4x4 para Arduino”

Não há comentários ainda.

VALE DE 5€
Subscreva a nossa NEWSLETTER receba um vale de 5€ para a sua primeira compra.
SIGA-NOS NAS REDES SOCIAIS
SUBSCREVER
Concordo com os termos e condições