03 junio 2015

Bosque de vidrio. Proyecto con Arduino.




Quería presentaros un proyecto que he hecho para dos asignaturas del máster, Entornos Interactivos y Arte Público. La primera trataba sobre programación; la segunda, sobre arquitectura, escultura, y diseño de muebles. He fusionado ambas para hacer esta obra llamada Bosque de vidrio.


Explicado deprisa y corriendo, es una lámpara de botellas. Pero primero voy a contaros un par de historias para poneros en el contexto en el que se me ocurrió hacer este artilugio.

A principios de curso, cuando nos mudamos al piso, me pareció que no teníamos una buena iluminación en el salón. Sólo había unos fluorescentes la mar de feos en el techo, y la mesa del comedor se quedaba muy oscura si no los encendíamos, así que puse una lámpara de mesa como remedio provisional y empecé a diseñar lámparas de techo que colgaran por encima de la mesa.

Este año me ha dado por hacer obras con luz: en Navidades me hice una cadeneta de luces con unas bolas de lana a las que les metí un circuito de luces de árbol de navidad; y para la asignatura de Arte, Ciencia y Naturaleza hice una lámpara con forma orgánica, hecha con tela sobre una estructura de hierro. La verdad es que siempre me ha molado la luz, su color, sus sombras, su forma de crear ambientes...




En este caso, sin embargo, quería meterme de lleno en el problema: cómo construir un circuito eléctrico de cero, con el objetivo de que las luces se encendieran y apagaran suavemente dentro de las botellas, como una luz pulsante, como un latido.

Os adelanto que hace dos meses no tenía ni idea de electrónica; lo poco que aprendí en Tecnología de 3º de la ESO se me había olvidado; pero eso hacía que tuviera más ganas de acometer el proyecto. En mi casa siempre era mi padre el que se encargaba de cambiar las bombillas cuando se fundían y de poner los interruptores y hacer los empalmes de los cables. Por eso construir un circuito eléctrico por mí misma era para mí, en cierto modo, entrar en el territorio del poder paterno. Ademas de que me gustan los chismes, los componentes electrónicos me parecen muy bonitos.

Así que nada, me puse a guardar botellas y a repasar el libro de tercero de la ESO con sus problemas de circuitos. Refresqué un poco los conceptos de voltaje, intensidad y ley de Ohm; y me di cuenta de que había perdido muchas matemáticas desde el Bachillerato... Pero al final resultó que el mejor modo de hacer que las luces se encendieran y apagaran suavemente era usar un Arduino.



Para los que no conozcan el Arduino, es un microprocesador indicado para principiantes. Se puede programar por ordenador y colocarse en una obra para que haga las tareas deseadas de forma independiente. Está guay porque la placa vale sólo 23 € (la más sencilla, en la tienda de Electrónica Embajadores) y la interfaz con la que se programa es software libre, se puede descargar gratis en arduino.org y en la web se pueden encontrar un montón de ejemplos hechos por gente inquieta que experimenta con este programa y comparte sus resultados.

Me daba un poco de respeto meterme con Arduino, porque en la clase de Entornos Interactivos estábamos trabajando con Processing y no parecía que nos fuera a enseñar a manejar Arduino; pero resulta que se programa con el mismo tipo de lenguaje. A todo esto, que me tuve que poner las pilas con la programación, porque no había puesto mucho interés hasta el momento y no había llevado los ejercicios al día. Conseguí hacer un primer programa que encendía y apagaba suavemente tres LEDs, basándome en un ejemplo de Arduino llamado "fade". ¡Para mí esto fue un triunfo! No os lo podéis imaginar... La sensación que tiene una cuando programa una cosa y ¡pop! funciona. Parece magia.





A todo esto, no he comentado nada de los LEDs. También hacía tiempo que me interesaban. Consumen muy poco, apenas se calientan, tienen mucha duración y además vienen en varios colores. Y cuestan como veinte céntimos en la tienda de electrónica. También se llaman diodos, y funcionan en un sentido, es decir, la patita larga (ánodo) tiene que ir conectada al polo positivo, y la corta (cátodo), al negativo. Si lo conectas al revés, no funciona. Como requieren voltajes y amperajes muy bajos (del orden de 2V y 20 mA, por ejemplo), suelen ir acompañados de una resistencia. Si lo enchufas directamente a una batería de 9V, peta. Lo he comprobado.

Imaginadme haciendo ejercicios de circuitos, devanándome los sesos y acosando a mi profesor de programación (Jaime Munárriz) y a un amigo que había estudiado teleco con los problemas de conectar las luces en serie o en paralelo... Al final vi que el voltaje que salía de los pines del Arduino, 5 voltios, era justo lo que pedían los LEDs que quería utilizar, así que el circuito en sí era bastante sencillo.


 

Por otro lado, el tema de las botellas y el montaje de la obra era bastante intuitivo. En un primer momento quería usar sólo botellas verdes (de vino) y hacer una composición muy minimalista, pero al final decidí combinar botellas de vidrio de distintos colores y tamaños y colgarlas a diversas alturas. Me pegaban más con el concepto de "bosque". Así que fui guardando las cervezas que me iba bebiendo (jejeje), y pedí al bar de debajo de casa que me guardaran botellas. Quitarles las etiquetas fue cuestión de ponerlas en agua caliente.

Creo que aún no he explicado lo de las botellas. Bueno, barajé varias opciones a la hora de hacer la lámpara de techo para el salón, pero al final fue esta la que salió ganando. ¿Por qué botellas? Hmmm... el vidrio y su propiedad de refractar la luz y teñirla de color. La forma estilizada de las botellas, su verticalidad (son muy bonitas!). Y también por el hecho de ser material de desecho, basura: una vez se han vaciado, no sirven para nada, se tiran; y por supuesto tenía que aprovechar esta oportunidad de revalorizar un objeto considerado de desecho, es decir, hacer arte con basura. Entroncando con el rollo anti-artístico que estoy llevando este año (cómic, basura, acciones).



Monté la estructura cogiendo una caja de madera y haciéndole unos agujeros en los laterales. Puse unos trocitos de canutillos de plástico de las dispensadoras de jabón, para que no rozaran con la madera, y pasé los cordeles que sujetaban las botellas por los agujeros. Los cordeles sujetan a las botellas por debajo de la embocadura y tienen una botella a cada extremo, es decir, que las botellas están atadas de dos en dos. Esto me permitía compensar el peso de las botellas entre sí y poder subirlas y bajarlas a mi antojo mientras lo estaba montando. Me di cuenta de que quedaba mejor que colgaran de un cordel que hacer el cordel doble, y apañé un tipo de nudo que utilizaba un sólo cordel y que mantenía la botella recta. Les puse un poco de cola a los nudos por si acaso...



Pero no adelantemos acontecimientos. Aún me quedaba terminar de programar el Arduino, que era lo más difícil. Al principio quería poner esta obra junto con una música de relajación y sincronizar los encendidos y apagados de los LEDs con la música; pero vi que no era factible y cambié la idea por hacer que se encendieran aleatoriamente. Es decir, un bucle en el que se encendieran un número de LED aleatorio y una cantidad aleatoria de LEDs a la vez. Y poner un interruptor para cambiar del modo lámpara (todos encendidos) al modo fade (aleatorio).

Terminé por pedirle a mi amigo que había hecho teleco que me ayudara a programarlo. Él no había trabajado con Arduino, pero sabía programar en C, que es incluso más complicado que programar en Arduino, y con los ejemplos de la web, un té y unas cuantas horas, consiguió el efecto deseado. Os pongo por aquí el código que me hizo. Parte del ejemplo "fade" de Arduino, todo lo demás es propiedad intelectual de Íñigo Martínez de Pisón Lejarreta (y sin él no habría sido posible programarlo, porque estoy muy verde con esto de la programación).


void setup() {
  // put your setup code here, to run once:
pinMode (0, INPUT);
pinMode (9, OUTPUT);
pinMode (11, OUTPUT);
pinMode (3, OUTPUT);
pinMode (5, OUTPUT);
pinMode (10, OUTPUT);
pinMode (6, OUTPUT);
pinMode (1, OUTPUT);
pinMode (2, OUTPUT);
pinMode (4, OUTPUT);
pinMode (7, OUTPUT);
pinMode (8, OUTPUT);
pinMode (12, OUTPUT);
pinMode (13, OUTPUT);
}

void loop() {
  // put your main code here, to run repeatedly:

int button0State = digitalRead (0); //Lee estado del botón
if (button0State == LOW) lampara(); //Programa 1
if (button0State == HIGH){ 
reseteo();   //Apaga todas las luces antes del programa 2
fadeAleatorio();} //Programa 2


}

void fadeAleatorio () {
  
  //                3       5     6     9      10       11
boolean pins[] = { false, false, false, false, false, false };   //registro de las 6 salidas LED
int ledElegido = 0;
randomSeed(analogRead(0));  //simula una mejor aleatoriedad

int numeroLEDs = random(1,6);  //Elige cantidad de leds que se encienden
for (int bucle = 0; bucle < numeroLEDs; bucle +=1){  //bucle que elige los led a encender, los marca con true
  do { ledElegido = random(0,6);  //coge un led
  } while (pins[ledElegido] == true);  //comprueba que no esté cogido ya
  pins[ledElegido] = true;  //marca con true el led cogido
};

 for  (int fadeValue = 0 ; fadeValue <= 255; fadeValue +=5) {   //función fade, comprueba qué leds se deben de encender
      for (int elegidos = 0; elegidos <= numeroLEDs; elegidos +=1){ //bucle

      if (pins [elegidos]) analogWrite ( numeroPin(elegidos ), fadeValue); //enciende el led
      
      }
  delay (60);    //DURACION PULSOS
  }
  
  for  (int fadeValue = 255 ; fadeValue >= 0; fadeValue -=5) {
      for (int elegidos = 0; elegidos <= numeroLEDs; elegidos +=1){
      if (pins [elegidos]) analogWrite ( numeroPin(elegidos ), fadeValue);
      
      }
  delay (60);   //DURACION PULSOS
  }

}

void lampara () { //enciende todas

  for (int bucle = 1; bucle <= 13; bucle +=1){
  
  digitalWrite ( bucle, 255);
  }
}
void reseteo () {

  for (int bucle = 0; bucle <= 5; bucle +=1){
  
  analogWrite ( numeroPin(bucle), 0);
  }


}

int numeroPin ( int x){    //traduce las posiciones del array pins a los pines reales 

  int y;
if (x==0) y = 3;
if (x==1) y = 5;
if (x==2) y = 6;
if (x==3) y = 9;
if (x==4) y = 10;
if (x==5) y = 11;

return y;
}
  



El código establece dos bucles distintos (void lampara y void fadealeatorio), entre los que el Arduino alterna según el interruptor esté encendido o apagado. Para hacer el efecto de random utiliza booleanas y algo llamado array... no sé... la verdad, me lo intentó explicar, pero me sonaba a chino. Por eso es bueno que haya una colaboración entre programadores y artistas :) 

Después sólo quedaba soldar los LEDs a los cables y hacer las conexiones dentro de la caja. Bueno, dicho así suena a poca cosa, pero me llevó tres días. Cada botella está conectada a un pin del Arduino (excepto cuatro, que van de dos en dos, y que están puestas en paralelo, para que se enciendan dos a la vez). Cada LED está conectado a la toma de tierra, pero el Arduino sólo tiene uno, y yo no quería hacer veinte soldaduras en un mismo cable. Esto lo resolví metiendo una protoboard dentro de la caja y llevando a través de ella los cables a tierra. Utilicé una protoboard blanquita (la de la foto) y cable unifilar, es lo que da mejor resultado junto.

Y por útlimo, la puse en el pasillo y le hice una sesión de fotos. La verdad, no ha quedado tan bien como me la imaginaba (en mi cabeza era más grande, con más botellas, y con música); pero me ha hecho aprender bastante sobre cómo montar un circuito eléctrico, que era el objetivo inicial, y me ha permitido iniciarme con Arduino, que es una tecnología con la que quiero seguir trabajando en el futuro. Se pueden hacer tantas cosas con Arduino... a bote pronto, se me ocurre hacer una instalación de luz interactiva, con sensores de movimiento, que las luces se enciendan cuanto el espectador se acerque, o con reconocimiento de sonido, que emitan una determinada luz según los sonidos que haya en el lugar...

También le he hecho un vídeo sexy, es el que está justo al principio de la entrada. Os recomiendo que lo veáis si aún no lo habéis visto, para apreciar la lámpara en acción. Además lleva la música que le quería poner...


Os dejo con unas fotillos de la lámpara. La verdad, la cámara ha sido muy bondadosa con mi obra, en persona no es tan bonita... pero yo la quiero. Aunque les haya cogido tirria a las botellas de tanto usarlas... se me pasará. Y tengo muchas ganas de colgar esto en el salón...



















Bosque de vidrio
28x28x130 cm
2015


No hay comentarios:

Publicar un comentario