Reloj LED

From Wiki Makespace Madrid
Revision as of 07:14, 18 May 2015 by 81.47.192.244 (Talk)

Jump to: navigation, search
Reloj LED
Sin foto (aún)
Estado: En curso
Miembros: Samuel
Colaboraciones: Proyecto personal
Este es un fantástico proyecto que se está desarrollando por alguno de los simpáticos makers de la comunidad Makespace Madrid


Objetivo

Construir un reloj de pared utilizando luces LED para representar la hora en lugar de saetas. Además tendrá una alarma horaria que se podrá desactivar

automáticamente en horario nocturno (configurable).


Motivación

Los relojes LED son muy estéticos y me gustan mucho y como primer proyecto con Arduino me parece un proyecto interesante que presenta varios desafíos.

Además así practico un poco de bricolaje y manualidades.

Este es un proyecto de aprendizaje, por lo que es más una exploración que un proceso industrial, aunque lo documentaré para que sea repetible, e incluso se pueda industrializar la producción del mismo si a alguien le interesa.

Antecedentes

Existen numerosos relojes LED, con distintos estilos., el que me ha inspirado a mi es el que aparece en el vídeo de la sección de otras referencias.


Métodos y técnicas utilizadas

La parte electrónica ya est´a funcionando correctamente sobre Arduino UNO

Para el soporte estoy utilizando una pieza de plástico impresa en 3D, pero estoy teniendo problemas para ensamblarla. Tengo que seguir trabajando en esta parte.


Electrónica

El cerebro del reloj está basado en Arduino UNO y no utilizo ningún otro componente que no se pueda encontrar en el Starter kit de Arduino a excepción de:

  • Tira de LEDs basada en leds RGB controlados mediante el chip ws2801 (dos tiras de 50, aunque sólo usamos 60 LEDS en total)
  • Módulo TinyRTC (Reloj de tiempo real basado en DS1307)
  • Una batería externa para alimentar los LED, ya que el Arduino no puede alimentar los LEDS.

LEDS RGB

Los LEDS están basados en el controlador WS2801 (datasheet). Se controlan muy fácilmente con la librería fastLED.

Reloj de tiempo real

Para obtener el tiempo se utiliza un reloj de tiempo real (RTC) basado en el chip DS1307. Hay otros más precisos, a base de incrementar el precio.

Sketch de Arduino

La versión actual del sketch se puede descargar del repositorio del proyecto del Reloj LED en GitLab.

Bricolaje

El prototipo inicial estaba construido sobre una caja de cartón. Ahora estoy utilizando piezas de plástico moldeado mediante impresión 3D.

La pieza del modelo 3D que estoy usando ahora es el de este fichero (STL).

Los ficheros para poder modificar y generar el sólido están en el repositorio del proyecto (SCAD).

Son necesarias doce piezas para formar la esfera.

Progreso del proyecto y roadmap

Nomenclatura

A continuación dejo notas sobre la nomenclatura

Prototipos

Cada prototipo es un reloj funcional en si mismo, es decir, un objeto del mundo real.

Para cada prototipo del reloj tiene un nombre clave que empieza cada vez por una letra diferente del alfabeto, comenzando por la A. Ese nombre siempre es el nombre latino de una constelación. Si no hay constelación por esa letra paso a la siguiente.

Hitos

Cada hito es una fase en la escritura del firmware del reloj, es decir una funcionalidad o mejora.

Para cada hito utilizo un nombre en clave que cada vez comienza por la letra siguiente del alfabeto. La secuencia comienza en la A.

De esta manera si pongo un firmwara para descarga y su nombre empieza por una letra que alfabéticamente va más atrás en el diccionario se trata de un Firmware más avanzado.

Cada hito tiene una serie de asuntos que tienen que completarse para considerarse finalizado.


Roadmap

  1. Prototipo actual: AQUILA (Águila) (Abril 2015)
    1. Estructura: de plástico impreso en 3D
    2. Píxeles: basados en LEDs RGB con chipset WS2801
    3. Controles: Tres pulsadores
  2. Próximo prototipo: BOÖTES (Boyero, pastor de bueyes) (Mayo/junio 2015)
    1. Estructura: de plástico impreso en 3D (modelo 2)
    2. Píxeles: basados en LEDs RGB con chipset WS2811
    3. Controles: por determinar


Lista de hitos:

  1. Altair: Reescritura desde cero de lo que ya tenía
    1. Sustitución de las librerías Time y DS1307 por RTClib
    2. Todos los parámetros de configuración en el mismo punto.
  2. Betelgeuse: Paletas de color
    1. Inclusión de paletas de color que se pueden cambiar al pulsar un botón
  3. Capella: Multiples modos de representar la hora
    1. Modo normal (ya implementado)
    2. Sectores (ya implementado)
    3. Estelas (implementado, pero no funciona de la manera esperada)
    4. Circulos
    5. Invertido (implementado)
  4. Deneb: Posibilidad de cambiar la hora manualmente con un encoder o botones
  5. Etamin: Soporte para display con la fecha
  6. Fomalhaut: Sensores ambientales para la temperarura

¡Construye tu reloj!

Seguramente esto es lo que más te interesa.

En las siguientes secciones se especifica que te hace falta para construir cada modelo.

Aquila

Lista de materiales

  • Una tira de 60 LEDS RGB con el chipset WS2801
  • Doce piezas impresas "soporte LEDS" modelo 1
  • Placa arduino UNO o compatible
  • Cables de conexión
  • Módulo Tiny RTC u otro módulo compatible
  • Adhesivo para plásticos duros
  • Bridas de plástico
  • 3 pulsadores para PCB
  • Cables de conexión y placa de prototipado
  • Tubo de 12mm de pared exterior
  • Recipiente hermético redondo para meter la electrónica.
  • Una resistencia variable de 10k.


Montaje

Instrucciones asequibles para que cualquiera pueda monmtarse su reloj.

Instrucciones para montar un reloj como el prototipo "Aquila":

  1. Descargar todos los ficheros del repositorio:
  2. Conectar el arduino y cargar los programas que aparecen en el directorio arduino
  3. Imprimir las doce piezas que aparecen en el directorio 3D/STL)
  4. Unir las piezas con adhesivo para plásticos y usar bridas para mantenerlas juntas hasta que se sequen
  5. Montar los LED
  6. Conectar las cosas como pone en el sketch de Arduino (pendiente de especificar)
  7. Dar corriente al arduino y a los LEDs. ¡EL ARDUINO NO PUEDE ALIMENTAR LOS LEDS! Necesitan su propia fuente de alimentación.

Uso

El prototipo Aquila tiene tres botones.

Funciones del botón 1.

  • Pulsación corta: Cambio de paleta de colores
  • Pulsación larga: Modo de visualización

Funciones del botón 2.

  • Pulsación corta: restar tiempo
  • Pulsación larga: Determinar que unidad de tiempo se resta (pulsar una vez para horas, dos para días, etc...)

Funciones del botón 3.

  • Pulsación corta: sumar tiempo
  • Pulsación larga: Determinar que unidad de tiempo se suma(pulsar una vez para horas, dos para días, etc...)

Conclusiones

La realización de este proyecto hasta su estado actual me ha proporcionado las siguientes experiencias:

Experiencias de aprendizaje técnicas:

  • Aprendizaje de la plataforma Arduino
  • Aprendizaje de diseño 3D para impresión 3D
  • Aprendizaje de reparación básica de impresoras 3D
  • Recuperación de los conocimientos de electrónica que creía olvidados y mejora de los mismos.
  • Aprendizaje de soldadura electrónica básica
  • Aprendizaje de manejo de gran cantidad de LEDs

Experiencias de autodescubrimiento:

  • Puesta en práctica de metodologías de gestión del tiempo y el esfuerzo
  • Descubrimiento de mi gusto por la iluminación artística.


Referencias