Difference between revisions of "Reloj LED"

From Wiki Makespace Madrid
Jump to: navigation, search
(¡Construye tu reloj!)
(Añadir sección "apariciones públicas")
 
(10 intermediate revisions by 2 users not shown)
Line 1: Line 1:
{{Template:EstadoDeProyecto|NombreProyecto=Reloj LED|estado=En curso|miembro=Samuel|colaboraciones=Proyecto personal}}
+
{{Template:EstadoDeProyecto
 +
|foto=[[File:Reloj_LED.png]]
 +
|NombreProyecto=Reloj LED
 +
|estado=En curso (Prototipo funcional expuesto en el espacio)|miembro=Samuel
 +
|colaboraciones=Proyecto personal
 +
|Desc=Reloj con luces LED en lugar de saetas
 +
}}
  
  
Line 83: Line 89:
 
=== Roadmap ===
 
=== Roadmap ===
  
# '''Prototipo actual:''' ''AQUILA'' (Águila) (Abril 2015)
+
# '''Prototipo:''' ''AQUILA'' (Águila) (Abril 2015)
 
## '''Estructura:''' de plástico impreso en 3D
 
## '''Estructura:''' de plástico impreso en 3D
 
## '''Píxeles:''' basados en LEDs RGB con chipset ''WS2801''
 
## '''Píxeles:''' basados en LEDs RGB con chipset ''WS2801''
## '''Controles:''' Tres pulsadores
+
## '''Controles:''' Tres pulsadores y una resistencia variable
# '''Próximo prototipo:''' ''BOÖTES'' (Boyero, pastor de bueyes) (Mayo/junio 2015)
+
## '''Sensores: ''' LDR (luz ambiente)
## '''Estructura:''' de plástico impreso en 3D (modelo 2)
+
# '''Prototipo actual:''' ''BOÖTES'' (Boyero, pastor de bueyes) (Mayo/junio 2015)
 +
## '''Estructura:''' de plástico impreso en 3D (modelo 2) + Piezas tapadera
 
## '''Píxeles:''' basados en LEDs RGB con chipset ''WS2811''
 
## '''Píxeles:''' basados en LEDs RGB con chipset ''WS2811''
## '''Controles''': por determinar
+
## '''Controles''': Un mando a distancia
 +
## ''' Pendiente de sensorizar'''
 +
# '''Próximo modelo:''' ''CYGNUS'' (Cisne) (Pendiente de determinar)
 +
## Características penidentes de determinar
 +
  
  
 
Lista de hitos:
 
Lista de hitos:
  
# '''Altair: Reescritura desde cero de lo que ya tenía'''
+
# Versión alfa (Versión 1) (abandonada)
## Sustitución de las librerías Time y DS1307 por RTClib
+
# Versión beta (Versión 2) (reescritura del firmware desde cero)
## Todos los parámetros de configuración en el mismo punto.
+
## '''Altair: Reescritura desde cero de lo que ya tenía'''
# '''Betelgeuse: Paletas de color'''
+
### Sustitución de las librerías Time y DS1307 por RTClib
## Inclusión de paletas de color que se pueden cambiar al pulsar un botón
+
### Todos los parámetros de configuración en el mismo punto.
# '''Capella: Multiples modos de representar la hora'''
+
## '''Betelgeuse: Paletas de color'''
## Modo normal (ya implementado)
+
### Inclusión de paletas de color que se pueden cambiar al pulsar un botón
## Sectores (ya implementado)
+
## '''Capella: Multiples modos de representar la hora'''
## Estelas (implementado, pero no funciona de la manera esperada)
+
### Modo normal (ya implementado)
## Circulos
+
### Sectores (ya implementado)
## Invertido (implementado)
+
### Estelas (implementado, pero no funciona de la manera esperada)
# '''Deneb: Posibilidad de cambiar la hora manualmente con un encoder o botones'''
+
### Circulos
# '''Etamin: Soporte para display con la fecha'''
+
### Invertido (implementado)
# '''Fomalhaut: Sensores ambientales para la temperarura'''
+
## '''Deneb: Posibilidad de cambiar la hora manualmente con un encoder o botones'''
 +
## '''Etamin: Soporte para display con la fecha''' (característica no implementada)
 +
## '''Fomalhaut: Sensores ambientales para la temperarura'''
 +
# Versión gamma 0 (3.0) (reescritura del firmware desde cero con experiencia aprendida de versiones anteriores)
 +
## Soporte para mando a distancia
 +
### Comando Cambiar modo de brillo (manual/automático(
 +
### Comando Letargo (apagar display)
 +
### Comando Despertar (encender display)
 +
### Comando Brillo+
 +
### Comando Brillo-
 +
### Comando Siguiente Paleta
 +
### Comando Siguiente modo e visualización
 +
## Dos modos de visualización
 +
### Modo Simple
 +
### Modo Arcos
 +
## Cuatro paletas de color
 +
### Parchís (Rojo, verde, azul, amarillo)
 +
### Fuego (Rojo, Naranja, Amarillo y blanco)
 +
### Cielo (Azules y blanco)
 +
### Bosque (Verder y marrón)
 +
## Sensor de luz ambiental para el ajuste de iluminación automático
 +
## Sensor de temperatura
 +
## Display LCD para mostrar datos de sensores, fecha y hora
 +
# Versión Gamma 1 (Versión 3.1)
 +
## Nuevos Comandos
 +
## Cambiar hora con mando a distancia
 +
## Nuevas visualizaciones
 +
### Modo invertidos
 +
## Corrección de las paletas de color
 +
### Paleta Bosque con colores más diferenciados
 +
## Correcciones: Puntos para las horas, ahora mismo no funciona, por lo que está desactivado
 +
## Sensor de humedad
  
 
= ¡Construye tu reloj! =
 
= ¡Construye tu reloj! =
Line 118: Line 160:
 
== Aquila ==
 
== Aquila ==
  
===Lista de materiales===
+
El reloj LED modelo Aquila no está soportado. El proyecto está abandonado, por lo tanto no habrá actualziaciones sobre el proceso de construcción o uso
 
+
* 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 montarse su reloj.
+
 
+
Instrucciones para montar un reloj como el prototipo "Aquila":
+
# Descargar todos los ficheros del repositorio:
+
# Conectar el arduino y cargar los programas que aparecen en el directorio ''arduino''
+
# Imprimir las doce piezas que aparecen en el directorio ''3D/STL)''
+
# Unir las piezas con adhesivo para plásticos y usar bridas para mantenerlas juntas hasta que se sequen
+
# Montar los LED
+
# Conectar las cosas como pone en el sketch de Arduino (pendiente de especificar)
+
# 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...)
+
  
 
== Bootes ==
 
== Bootes ==
Line 185: Line 184:
 
Instrucciones asequibles para que cualquiera pueda montarse su reloj.
 
Instrucciones asequibles para que cualquiera pueda montarse su reloj.
  
Instrucciones para montar un reloj como el prototipo "Aquila":
+
Instrucciones para montar un reloj como el prototipo "Bootes":
 
# Descargar todos los ficheros del repositorio:
 
# Descargar todos los ficheros del repositorio:
# Conectar el arduino y cargar los programas que aparecen en el directorio ''arduino''
+
# Conectar el Arduino y cargar los programas que aparecen en el directorio ''arduino''
# Imprimir las doce piezas que aparecen en el directorio ''3D/STL)''
+
# Imprimir las doce piezas de soporte que aparece en el directorio ''3D/STL)''
 +
# Imprimir seis copias de la tipo "tapa" que aparece en el directorio ''3D/STL)''
 
# Unir las piezas con adhesivo para plásticos y usar bridas para mantenerlas juntas hasta que se sequen
 
# Unir las piezas con adhesivo para plásticos y usar bridas para mantenerlas juntas hasta que se sequen
# Montar los LED
+
# Montar los LED en el soporte
 +
# Unir las piezas de soporte con adhesivo de para plástico y sujetar con bridas
 +
# Tapar la corona con las piezas "tapa" y pegarlas con adhesivo para pásticos. Sujetar con bridas para que no se desplacen las piezas mientras se seca el adhesivo.
 
# Conectar las cosas como pone en el sketch de Arduino (pendiente de especificar)
 
# Conectar las cosas como pone en el sketch de Arduino (pendiente de especificar)
 
# Dar corriente al arduino y a los LEDs. ¡EL ARDUINO NO PUEDE ALIMENTAR LOS LEDS! Necesitan su propia fuente de alimentación.
 
# Dar corriente al arduino y a los LEDs. ¡EL ARDUINO NO PUEDE ALIMENTAR LOS LEDS! Necesitan su propia fuente de alimentación.
Line 196: Line 198:
 
=== Uso ===
 
=== Uso ===
  
El prototipo Bootes tiene tres botones.
+
El prototipo Bootes utiliza un mando a distancia
  
Funciones del botón 1.
+
Funciones del botón blanco.
* Pulsación corta: Cambio de paleta de colores
+
* Brillo de los LEDS Manual/Automático
* Pulsación larga: Modo de visualización
+
  
Funciones del botón 2.
+
Funciones del morado
* Pulsación corta: restar tiempo
+
* Pasar a la siguiente paleta de colores
* 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.
+
Funciones del azul
* Pulsación corta: sumar tiempo
+
* Pasar al siguiente modo de visualización
* Pulsación larga: Determinar que unidad de tiempo se suma(pulsar una vez para horas, dos para días, etc...)
+
 
 +
Función de los botones "flecha arriba" y "flecha abajo"
 +
* Subir y bajar el brillo de los LEDs (solo cuando están en modo "brillo manual")
  
 
= Conclusiones =
 
= Conclusiones =
Line 227: Line 229:
 
* Puesta en práctica de metodologías de gestión del tiempo y el esfuerzo
 
* 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.  
 
* Descubrimiento de mi gusto por la iluminación artística.  
 +
 +
= Apariciones públicas =
 +
He presentado el reloj en estos eventos:
 +
* Makerfaire Bilbao 2015
 +
* Semana de la ciencia de Móstoles 2015
 +
* Barcelona 2016
  
  
Line 235: Line 243:
 
* Vídeo inspirador para realizar este proyecto: http://www.youtube.com/watch?v=yNa9Gh7nMeU
 
* Vídeo inspirador para realizar este proyecto: http://www.youtube.com/watch?v=yNa9Gh7nMeU
 
* Librería FastLED para Arduino y para Teensy; http://fastled.io
 
* Librería FastLED para Arduino y para Teensy; http://fastled.io
 +
 +
[[Category:Proyectos]] [[Category:Proyectos con arduino]]

Latest revision as of 19:29, 15 March 2016

Reloj LED
Reloj LED.png
Estado: En curso (Prototipo funcional expuesto en el espacio)
Miembros: Samuel
Colaboraciones: Proyecto personal
Reloj con luces LED en lugar de saetas


Objetivo[edit]

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[edit]

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[edit]

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[edit]

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[edit]

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[edit]

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

Reloj de tiempo real[edit]

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[edit]

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

Bricolaje[edit]

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[edit]

Nomenclatura[edit]

A continuación dejo notas sobre la nomenclatura

Prototipos[edit]

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[edit]

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 firmware 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[edit]

  1. Prototipo: 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 y una resistencia variable
    4. Sensores: LDR (luz ambiente)
  2. Prototipo actual: BOÖTES (Boyero, pastor de bueyes) (Mayo/junio 2015)
    1. Estructura: de plástico impreso en 3D (modelo 2) + Piezas tapadera
    2. Píxeles: basados en LEDs RGB con chipset WS2811
    3. Controles: Un mando a distancia
    4. Pendiente de sensorizar
  3. Próximo modelo: CYGNUS (Cisne) (Pendiente de determinar)
    1. Características penidentes de determinar


Lista de hitos:

  1. Versión alfa (Versión 1) (abandonada)
  2. Versión beta (Versión 2) (reescritura del firmware desde cero)
    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 (característica no implementada)
    6. Fomalhaut: Sensores ambientales para la temperarura
  3. Versión gamma 0 (3.0) (reescritura del firmware desde cero con experiencia aprendida de versiones anteriores)
    1. Soporte para mando a distancia
      1. Comando Cambiar modo de brillo (manual/automático(
      2. Comando Letargo (apagar display)
      3. Comando Despertar (encender display)
      4. Comando Brillo+
      5. Comando Brillo-
      6. Comando Siguiente Paleta
      7. Comando Siguiente modo e visualización
    2. Dos modos de visualización
      1. Modo Simple
      2. Modo Arcos
    3. Cuatro paletas de color
      1. Parchís (Rojo, verde, azul, amarillo)
      2. Fuego (Rojo, Naranja, Amarillo y blanco)
      3. Cielo (Azules y blanco)
      4. Bosque (Verder y marrón)
    4. Sensor de luz ambiental para el ajuste de iluminación automático
    5. Sensor de temperatura
    6. Display LCD para mostrar datos de sensores, fecha y hora
  4. Versión Gamma 1 (Versión 3.1)
    1. Nuevos Comandos
    2. Cambiar hora con mando a distancia
    3. Nuevas visualizaciones
      1. Modo invertidos
    4. Corrección de las paletas de color
      1. Paleta Bosque con colores más diferenciados
    5. Correcciones: Puntos para las horas, ahora mismo no funciona, por lo que está desactivado
    6. Sensor de humedad

¡Construye tu reloj![edit]

Seguramente esto es lo que más te interesa.

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

Aquila[edit]

El reloj LED modelo Aquila no está soportado. El proyecto está abandonado, por lo tanto no habrá actualziaciones sobre el proceso de construcción o uso

Bootes[edit]

Lista de materiales[edit]

  • Una tira de 60 LEDS RGB con el chipset WS2811
  • Doce piezas impresas "soporte LEDS" modelo 2
  • 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
  • Pieza impresa en 3D modelo "núcleo"
  • Una resistencia variable de 10k.
  • Un conector jack de alimentación hembra encastrable
  • Un interruptor deslizante de dos posiciones

Montaje[edit]

Instrucciones asequibles para que cualquiera pueda montarse su reloj.

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

  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 de soporte que aparece en el directorio 3D/STL)
  4. Imprimir seis copias de la tipo "tapa" que aparece en el directorio 3D/STL)
  5. Unir las piezas con adhesivo para plásticos y usar bridas para mantenerlas juntas hasta que se sequen
  6. Montar los LED en el soporte
  7. Unir las piezas de soporte con adhesivo de para plástico y sujetar con bridas
  8. Tapar la corona con las piezas "tapa" y pegarlas con adhesivo para pásticos. Sujetar con bridas para que no se desplacen las piezas mientras se seca el adhesivo.
  9. Conectar las cosas como pone en el sketch de Arduino (pendiente de especificar)
  10. Dar corriente al arduino y a los LEDs. ¡EL ARDUINO NO PUEDE ALIMENTAR LOS LEDS! Necesitan su propia fuente de alimentación.

Uso[edit]

El prototipo Bootes utiliza un mando a distancia

Funciones del botón blanco.

  • Brillo de los LEDS Manual/Automático

Funciones del morado

  • Pasar a la siguiente paleta de colores

Funciones del azul

  • Pasar al siguiente modo de visualización

Función de los botones "flecha arriba" y "flecha abajo"

  • Subir y bajar el brillo de los LEDs (solo cuando están en modo "brillo manual")

Conclusiones[edit]

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.

Apariciones públicas[edit]

He presentado el reloj en estos eventos:

  • Makerfaire Bilbao 2015
  • Semana de la ciencia de Móstoles 2015
  • Barcelona 2016


Referencias[edit]

A continuación dejo una lista de referencias interesantes relacionadas con el proyecto