Este es un tutorial rápido para empezar a coser un simple circuito y controlar LEDS, usando la placa Arduino LilyPad. No aprenderás cómo crear tus propios programas para Arduino, pero podrás conectarás 9 LEDs a la tarjeta Lilypad (uno a cada pin excepto los pines + y -), y cargarás el código propuesto para cambiar la forma en que las luces se moverán y parpadearán.

Los materiales que necesitarás son los siguientes:

Recomendado (pero no necesario):

  • Bastidor

En primer lugar, visita la página http://arduino.cc/en/Main/Software y descarga el software de Arduino si es que aún no lo tienes. Es gratis y es bastante sencillo de usar, pero si es que terminas todo el proceso de cosido primero y luego tienes que detenerte a instalar el software antes de ver si es que funciona… ¡eso sería muy frustrante! Sigue las guías de instalación aquí: http://arduino.cc/en/Guide/HomePage y cuando estés listo para instalar los drivers FTDI, asegúrate de seguir la guía “Arduino Duemilanove Driver Installation Guide”. Cuando esté todo instalado y puedas abrir Arduino IDE, estarás listo para empezar a coser!

Echa un vistazo a tu placa LilyPad – tiene 11 pads que pueden ser conectados a cualquier cantidad de dispositivos interesantes. En este tutorial sólo vamos a controlar luces, pero recuerda que la placa Arduino es una herramienta muy versátil. Puede ser usada para controlar la actividad de sensores, motores, buzzers, motores de vibración – cualquier dispositivo que puedas comprar en una placa LilyPad, y muchas cosas más. En este caso usaremos 9 LEDs porque la placa tiene 9 pads (sin contar los pads + y -).

Para comenzar, enhebra tu aguja con el hilo conductor, y cose tu placa sobre la tela que quieras, en el agujero titulado “5” en la placa.

1enhebra

Ahora hilvana un hilo desde este punto hacia donde quieras que esté tu primer LED, luego cóselo al pad positivo de tu LED.

2hilvana

Enrolla y corta tu hilo. Luego continúa con el siguiente pad que quieras utilizar. Lo más sencillo es continuar con un pad del otro lado de la placa, para que ésta quede bien afirmada por ambos lados. Hilvana un hilo desde el pad hacia donde quieras que esté el LED correspondiente, y una vez más, cóselo al pad positivo del LED.

3otroLED

Repite este proceso para cada uno de los pads excepto los llamados + y -. En este caso se cosieron los LEDs en un patrón radial – puedes cambiar el patrón, pero recuerda no cruzar ninguno de los hilos. El hilo conductor no es aislado, por lo que si los puntos de 2 hilos se cruzan, los 2 LEDs correspondientes recibirán la corriente que debería recibir 1 sólo.

4repiteProceso

Ahora sólo faltan 2 pads.

5faltanPads

Cose el pad llamado “ground” e hilvánalo hacia el pad “-” del LED más cercano. No necesitas hacer un nudo y cortar esta línea de puntos – continúa con el próximo LED, y el próximo, hasta el último, asegurándote de nunca cruzar el hilo “+” con el hilo “-“.

6coseGround

Cuando llegues al último LED, anúdalo y corta el hilo. Ahora deberías tener los 9 LEDs con sus pads positivos conectados a los pads de la placa Arduino, y todos conectados en una línea contigua entre ellos hacia el pad “ground”.

7ultimoLED

Así se ve el circuito desde la parte posterior – notar que ninguna línea positiva está en contacto con otra línea positiva, mientras que todas las negativas sí. (Entre sí).

8vistaPosterior

Ahora ya está lista la parte de cosido – el circuito está terminado. Conecta la placa FTDI con los headers (conectores) de la placa LilyPad Arduino y el extremo Mini-USB de tu cable con la placa FTDI como sigue:

9FTDI

Y el otro extremo (USB) del cable en el puerto USB de tu computador.

10conectaPuerto

Ahora cargarás el programa. Si es que todavía no has instalado Arduino IDE en tu computador, tendrás que hacerlo ahora. Cuando abras Arduino IDE, verás una ventana como esta:

11arduinoIDE

Asegúrate de seleccionar la placa correcta.

12seleccionaPlaca

¡Ahora es momento de cargar el programa que controlará tus luces!

Este es el código que usarás:

#define LED1 5
#define LED2 6
#define LED3 9
#define LED4 10
#define LED5 11
#define LED6 16
#define LED7 17
#define LED8 18
#define LED9 19
#define interval 11000
#define dead_time 1000

unsigned long PWM_counter = 0;

int offset = 0;
int step_size = 200;

unsigned long on_time = 0;
unsigned long cycle_start = 0;
char dir = 1;
int offset2 = 0;
int step_size2 = 200;
unsigned long on_time2 = 0;
unsigned long cycle_start2 = 0;
char dir2 = 1;

byte LED_tracker1 = 1;
byte LED_tracker2 = 1;



void setup() {

  Serial.begin(57600);
  pinMode(LED1, OUTPUT);      
  pinMode(LED2, OUTPUT); 
  pinMode(LED3, OUTPUT); 
  pinMode(LED4, OUTPUT); 
  pinMode(LED5, OUTPUT); 
  pinMode(LED6, OUTPUT); 
  pinMode(LED7, OUTPUT); 
  pinMode(LED8, OUTPUT); 
  pinMode(LED9, OUTPUT); 
  offset = random(2500,7500);
  offset2 = random(2500,7500);
}

void loop()
{
  PWM_counter = micros();
  if( (PWM_counter + offset - cycle_start) >= interval) {  // completed cycle, start over
    on_time += step_size*dir;
    cycle_start = PWM_counter;
    if (on_time >= (interval - dead_time) ) {
      dir *= -1;
      on_time = interval - dead_time;
    }
    else if (on_time <= 0) {
      on_time = 0;
      dir *= -1;
      LED_tracker1 = LED_tracker2;
      while (LED_tracker1 == LED_tracker2) LED_tracker1 = random(1,10);
      offset2 = random(0,4000);
    }
  }
  else if( (PWM_counter + offset - cycle_start) >= (dead_time + on_time) ) {  // time to switch LED off
    //digitalWrite(LED1, LOW);
    LED_off(LED_tracker1);
  }
  else if( (PWM_counter + offset - cycle_start) >= dead_time) {  // time to switch LED on
    //digitalWrite(LED1, HIGH);
    LED_on(LED_tracker1);
  }  
if( (PWM_counter + offset2 - cycle_start2) >= interval) {  // completed cycle, start over
    on_time2 += step_size2*dir2;
    cycle_start2 = PWM_counter;
    if (on_time2 >= (interval - dead_time) ) {
      dir2 *= -1;
      on_time2 = interval - dead_time;
    }
    else if (on_time2 <= 0) {
      on_time2 = 0;
      dir2 *= -1;
      LED_tracker2 = LED_tracker1;
      while (LED_tracker2 == LED_tracker1) LED_tracker2 = random(1,10);
      offset2 = random(0,4000);
    }
  }
  else if( (PWM_counter + offset2 - cycle_start2) >= (dead_time + on_time2) ) {  // time to switch LED off
    //digitalWrite(LED1, LOW);
    LED_off(LED_tracker2);
  }
  else if( (PWM_counter + offset2 - cycle_start2) >= dead_time) {  // time to switch LED on
    //digitalWrite(LED1, HIGH);
    LED_on(LED_tracker2);
  }
}

void LED_on(byte LED)
{
  if (LED == 1) digitalWrite(LED1, HIGH);
  if (LED == 2) digitalWrite(LED2, HIGH);
  if (LED == 3) digitalWrite(LED3, HIGH);
  if (LED == 4) digitalWrite(LED4, HIGH);
  if (LED == 5) digitalWrite(LED5, HIGH);
  if (LED == 6) digitalWrite(LED6, HIGH);
  if (LED == 7) digitalWrite(LED7, HIGH);
  if (LED == 8) digitalWrite(LED8, HIGH);
  if (LED == 9) digitalWrite(LED9, HIGH);
}

void LED_off(byte LED)
{
  if (LED == 1) digitalWrite(LED1, LOW);
  if (LED == 2) digitalWrite(LED2, LOW);
  if (LED == 3) digitalWrite(LED3, LOW);
  if (LED == 4) digitalWrite(LED4, LOW);
  if (LED == 5) digitalWrite(LED5, LOW);
  if (LED == 6) digitalWrite(LED6, LOW);
  if (LED == 7) digitalWrite(LED7, LOW);
  if (LED == 8) digitalWrite(LED8, LOW);
  if (LED == 9) digitalWrite(LED9, LOW);
}

Copia y pega este código entero, en la ventana de Arduino IDE. Luego haz click en el botón Upload.

13upload

Y echa un vistazo a la caja negra en la parte inferior de Arduino IDE.

14exito

Si es que obtuviste un mensaje de error color rojo, verifica tu puerto com. Puedes hacer esto abriendo el menú y desconectando el cable que comunica tu computador con la placa FTDI. Fíjate en el nombre del puerto que desaparece, luego vuelve a conectar el cable USB a tu computador y selecciona ese puerto.

15puerto

A menos que suceda algún error, ahora deberías tener 9 luces generando un rápido efecto de fading y centelleo. Finalmente desconecta la placa FTDI desde la placa Arduino, conecta la batería y enciende el switch para probar el proyecto. Este circuito fue usado para crear este vislumbrante vestido de cocktail, pero puedes aplicarlo a lo que quieras – usa tu creatividad!

16vestido