Saltar la navegación

Mural con vasitos de café

Mura de luces leds controladas por Arduino. Leds WS2811b, tablerillo, 100 vasos café, plasticos de encuadernación para las tapas de los vasos,
cola caliente, cola silicona escolar, soldador, sacabocados, etc. Mural de Bajo Coste. 

Mural de luz a base de vasos de cafe. El ejercicio se ha hecho en base a 100 vasos de café.
gots00
Estos vasos se pueden encontrar en supers o tiendas que vendan a restaurantes o bares. Son muy económicos y hay de diferentes medidas.
Hay que calcular siempre la distancia que tendremos entre led y led. Para este ejemplo hemos utilizado dos tiras de 50 de este tipo de tiras de leds:
tira leds

La cantidad y el espacio que ocupan los vasos es muy grande así que hay que tener claro como distibuir el espacio de trabajo:
Así mismo, al tratarse de una cantidad tan grande de vasos hay que pensar en una superfície rígida donde ponerlos: tablerillo o cartón pluma un poco grueso.
Hay que evitar que se doble

Para poder hacer pasar la luz por la base del vaso de café hemos tenido que hacer un orificio. Se pueden hacer de varias maneras: sacabocados, manualmente don un lápiz, con mucho cuidado con una maquina de hacer agujeros, etc. Nosotros hemos preferido mezclado el uso de un soldador al que le hemos añadido una barra de hierro con una medida mayor que la medida del led y el sacabocados.

gc003 gc004

En otros vasos hemos probado como quedaría el uso del soldador


Vasos de café con orificio en la base

gc01 gc05

Aquí tenéis información del material utilizado:
arduino nano
leds01
leds02

Hay diferentes tipos de tiras o bandas de leds, para este ejemplo hemos utilizado las primeras.
Hay que tener presente que si se encargan por Ali Express suelen tardar bastantes días en llegar. 
Hay que planificarlo con tiempo.
Consejo importante: estas tiras se alimentan con 5v. Es conveniente no alimentar el Arduino y la tira
con el mismo cable. Una solución optima es utilizar una fuente de alimentación de un ordenador viejo.
Si los 100 leds no están alimentado correctamente pueden aparecer colores diferentes a los que 
nosotros pretendemos que aparezcan.

Para que no se vea el led que ilumina cada uno de los vasos se ha optado por crear una tapa de plástico
translucido como el que se utiliza en la encuadernación de dossieres. Suele ser muy barato.
Para enganchar estos círculos con los vasos hemos utilizado silicona escolar.
gc06 

Tablerillo que perforaremos con una broca de madera número 10, mida que encaja con los leds de esta tira que hemos elegido.
gc09
Tablerillo con los agujeros realizados
gc10
Hay que tener presente a que distancia queremos que nos queden los vasos unos respecto a otros.
En nuestro ejemplo hemos tratado de conseguir una matriz de vasos que se tocaran.
gc11
Antes de enganchar las tiras de leds en el tablerillo es conveniente hacer pruebas para saber que todos los 
leds funcionan correctamente. Para ello, con cinta de pintor enganchamos las tiras y probamos. 
gc12

Para sacarle más partido a esta creación sería aconsejable incorporar un mando a distancia con su sensor correspondiente
y, a partir de una programación más compleja, crear diferentes efectos para este mural.

Este es uno de los posibles códigos que se puede utilizar en este tipo de mural.
Se trata de un código que hace aparecer colores de forma aleatoria con un tiempo reducido
de paso de un color a otro.

//divide la tira en 15 tramos (variable numtramos)
//asigna un color al azar (función set color)  a un led al azar (función np) en cada uno de los tramos
 
#include <Adafruit_NeoPixel.h>
 
#define PIN 6   // pin 6 de arduino a in tira
 
#define NUMPIXELS      100 // numero de pixels
 
Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);
int numtramos=15;
int delayval = 300; // tiempo de regeneración de color
 
int redColor = 0;
int greenColor = 0;
int blueColor = 0;
int np1=0;
int np2=0;
int np3=0;
int np4=0;
int np5=0;
int np6=0;
int np7=0;
int np8=0;
int np9=0;
int np10=0;
int np11=0;
int np12=0;
int np13=0;
int np14=0;
int np15=0;
 
 
void setup() {
  // Initialize the NeoPixel library.
  pixels.begin();
 
   
}
 
void loop() {
   setColor();
  np();
 
  
  
  // pixels.Color takes RGB values, from 0,0,0 up to 255,255,255
  pixels.setPixelColor(np1, pixels.Color(redColor, greenColor, blueColor));
  setColor();
  pixels.setPixelColor(np2, pixels.Color(redColor, greenColor, blueColor));
  setColor();
  pixels.setPixelColor(np3, pixels.Color(redColor, greenColor, blueColor));
  setColor();
  pixels.setPixelColor(np4, pixels.Color(redColor, greenColor, blueColor));
  setColor();
  pixels.setPixelColor(np5, pixels.Color(redColor, greenColor, blueColor));
  setColor(); 
  pixels.setPixelColor(np6, pixels.Color(redColor, greenColor, blueColor));
  setColor();
  pixels.setPixelColor(np7, pixels.Color(redColor, greenColor, blueColor));
  setColor();
  pixels.setPixelColor(np8, pixels.Color(redColor, greenColor, blueColor));
  setColor();
  pixels.setPixelColor(np9, pixels.Color(redColor, greenColor, blueColor));
  setColor();
  pixels.setPixelColor(np10, pixels.Color(redColor, greenColor, blueColor));
  setColor(); 
  pixels.setPixelColor(np11, pixels.Color(redColor, greenColor, blueColor));
  setColor();
  pixels.setPixelColor(np12, pixels.Color(redColor, greenColor, blueColor));
  setColor();
  pixels.setPixelColor(np13, pixels.Color(redColor, greenColor, blueColor));
  setColor();
  pixels.setPixelColor(np14, pixels.Color(redColor, greenColor, blueColor));
  setColor();
  pixels.setPixelColor(np15, pixels.Color(redColor, greenColor, blueColor));
    pixels.show();
 
    setColor();
 
 delay(delayval);
  //pixels.setPixelColor(i, pixels.Color(0, 0, 0));
 
 
//}
 
 
}
void np(){
  np1 =random (0,NUMPIXELS/numtramos);
  np2 =random (NUMPIXELS/numtramos,2*NUMPIXELS/numtramos);
  np3 =random (2*NUMPIXELS/numtramos,3*NUMPIXELS/numtramos);
  np4 =random (3*NUMPIXELS/numtramos,4*NUMPIXELS/numtramos);
  np5 =random (4*NUMPIXELS/numtramos,5*NUMPIXELS/numtramos);
  np6 =random (5*NUMPIXELS/numtramos,6*NUMPIXELS/numtramos);
  np7 =random (6*NUMPIXELS/numtramos,7*NUMPIXELS/numtramos);
  np8 =random (7*NUMPIXELS/numtramos,8*NUMPIXELS/numtramos);
  np9 =random (8*NUMPIXELS/numtramos,9*NUMPIXELS/numtramos );
  np10 =random (9*NUMPIXELS/numtramos,10*NUMPIXELS/numtramos);
  np11 =random (10*NUMPIXELS/numtramos,11*NUMPIXELS/numtramos);
  np12=random (11*NUMPIXELS/numtramos,12*NUMPIXELS/numtramos);
  np13=random (12*NUMPIXELS/numtramos,13*NUMPIXELS/numtramos);
  np14=random (13*NUMPIXELS/numtramos,14*NUMPIXELS/numtramos );
  np15 =random (14*NUMPIXELS/numtramos,15*NUMPIXELS/numtramos);
    
}
// setColor()
// picks random values to set for RGB
void setColor(){
  redColor = random(0, 255);
  greenColor = random(0,255);
  blueColor = random(0, 255);
}

Puedes buscar ejemplos y solo tendras que cambier el pin que hayas seleccionado para la entrada 
de información, el numero de leds y tal vez los delays.
Otro ejemplo