Lámpara Arduino

Este es un pequeño proyecto para realizar una lámpara led, controlada mediante un arduino nano, capaz de mostrar distintos patrones, y adornada por una tulipa de diseño voronoi impresa.

Hace varias semanas, imprimí un adorno voronoi de thingiverse. Ya que había utilizado filamento translúcido, se me ocurrió ponerlo sobre un led azul, para ver el resultado:

Contento con el efecto, pensé que se podría realizar una lámpara completa con una tulipa traslúcida, y controlar los efectos del led mediante un arduino nano.

Diseño de la tulipa y la base

La tulipa es un cilindro hueco, con la base superior cerrada. La forma de construirlo ha sido como una litofanía, con la misma aplicación que usé hace tiempo para la imagen de la Catedral de Burgos.

Lo primero fue buscar un diseño, meterlo en la aplicación y configurarlo para hacer un pequeño relieve en la frontera de cada polígono:

El STL resultante se imprime hueco, con una pared de 0’8 – 1 mm (dos contornos si se usa una boquilla de 0’4), y una altura de capa de 0’2. La base inferior con 4 o 5 capas, y la superior abierta, resulta en un “vaso”:

La base está diseñada con FreeCad, de manera que pueda alojar una placa con los leds, el arduino accesible, iterruptor, pulsador y pila:

Todos los modelos STL están disponibles en esta entrada de thingiverse, para su descarga.

Electrónica

Para evitar el lío de cables que suele representar el arduino, se ha diseñado un shield adaptado a la forma de la lampara, que controla de manera independiente 5 grupos de 3 leds de distintos colores.

El circuito está hecho en placa de fibra de vidrio, con el método de transferencia de tóner que ya conocemos:

Al ponerme a programar la placa, descubrí que el voltaje de salida sólo se puede regular en determinados pines, de ahí los cables que se ven soldados. La señal estaba utilizando inicialmente los pines 7 y 8, que no lo soportan y la desvíe al 10 y 11, que sí que lo permiten. Así que simplemente eliminé las patas de dichos pines, y pasé con cable la señal a los otros pines.

Unos pocos cables para organizar interuptor, pulador y pila, y queda todo alojado en la base:

El diseño del shield está realizado con Eagle, y se puede descargar aquí.

Programación

El programa que he preparado inicialmente para el arduino es muy sencillo, tan solo realiza un efecto fade-in fade-out entre los distintos pines, de manera secuencial y cíclica:

//declaración de pines de leds
int led1 = 5;         
int led2 = 6;         
int led3 = 10;        
int led4 = 11;        
int led5 = 9;     

//declaracion de pin de pulsador
int boton = 2;

//declaración de otras variables
int brightness = 5;     //brillo inicial
int fadeAmount = 1;     //variación de brillo
int ledactivo = led1;   //led activo
int del = 15;           //retardo entre pasos de variación de brillo

//setup
void setup() {
  //modo de salida en pines de leds
  pinMode(led1, OUTPUT);
  pinMode(led2, OUTPUT);
  pinMode(led3, OUTPUT);
  pinMode(led4, OUTPUT);
  pinMode(led5, OUTPUT);
  //modo de entrada en pin de pulsador
  pinMode(boton,INPUT);
}

//fade in/fade out secuencial de todos los leds
void loop() {
  //se asigna brillo al led activo
  analogWrite(ledactivo, brightness);

  //se varia brillo según paso asignado
  brightness = brightness + fadeAmount;

  //si llegamos al extremo, se varia dirección
  if (brightness <= 0 || brightness >= 255) {
    fadeAmount = -fadeAmount;
  }   

  //si el led se apaga, pasamos al siguiente
  if(brightness == 0){
    analogWrite(ledactivo, 0);
    if (ledactivo == led1) ledactivo = led2;
    else if (ledactivo == led2) ledactivo = led3;
    else if (ledactivo == led3) ledactivo = led4;
    else if (ledactivo == led4) ledactivo = led5;
    else if (ledactivo == led5) ledactivo = led1;
  }

  //si el led está al máximo, añadimos una pequeña espera antes del fade out 
  if(brightness == 255){
    delay(del*3);
  }

  //esperamos los milisegundos definidos
  delay(del);
}

El pulsador de momento no se usa, pero está disponible, para en el futuro introducir más ciclos, y poder pasar de uno a otro… pero eso, otro día.

Y así quedó la lámpara:

Un pequeño vídeo de la lámpara terminada, para acabar:

Adaptador Master System – Mega Drive

Este es un proyecto realizado en colaboración con el resto del equipo Byte Swap. Especial agradecimiento a Giacomo (Santi), que es quien diseñó la placa que contiene este adaptador, y a O’neill (Javi), encargado de la logística.

El Master System Converter fue un periférico de Mega Drive que permitía utilizar en esta consola la mayor parte de juegos de Master System:

sms12

Esta retrocompatibilidad se lograba gracias al hardware ya presente en Mega Drive, lo que convierte este adaptador en un mero puente entre el cartucho y la consola.

Realizando una investigación, se puede “traducir” el slot de master system al de mega drive. Prescindiendo del adaptador de tarjetas, y con una carcasaimpresa, el resultado es:

 

 

 

 

mastermega (2)

 

 

 

 

mastermega (8)

mastermega (1)

Aquí, en funcionamiento:

 

mastermega-20

Esta es una revisión con el botón en el lateral, en su posición original. Está hecha en dos piezas para poder meter la placa con el botón ya montado: