Proyecto | Reloj de arena con Arduino

El siguiente proyecto nace con la idea de combinar diferentes disciplinas y habilidades materializadas en un gadget funcional.

Un reloj de arena digital realista, esto se logra dando un efecto de caída a cada led el cual también depende de la orientación del reloj, es decir, simula una respuesta a la fuerza de gravedad.

Dividiremos esta publicación en cuatro (4) etapas: diseño, implementación, pruebas y conclusiones.


1. BOSQUEJO

Existen algunos proyectos interesantes de reloj de arena digital en la web, así como proyectos similares que utilizan los mismos conceptos, dejo algunos links de referencia.
Con esta referencia comenzamos con los bosquejos del reloj, una de las restricciones iniciales fue el tamaño, se buscaba un diseño compacto y ligero.

Ref 1: "Reloj de arena led con arduino"
Ref 2: "Arduino Project: Tetris using 2 LED matrix"
Ref 3: Prototipo reloj de arena
  • Imagen - Link
  • Youtube - No link


Clic para ver PDF


Clic para ver PDF



2. DIEÑO 3D

Los bosquejos sirven mucho a tener una idea clara del diseño, luego es necesario realizar el diseño 3D para definir las medidas finales considerando todos los componentes que irán al interior del reloj.

Parte del diseño también es considerar el conexionado entre los componentes y sobre todo la intercomunicación entre los mismos, para esto se realizó un diseño en ISIS y posteriormente en ARES para la fabricación del circuito impreso.



3. COMPONENTES

  • Matriz led 8x8:
    64 leds interconectados en forma de matriz, el control de cada led se logra aplicando voltaje positivo a la columna y voltaje negativo a la fila respectivamente.
  • Driver MAX7219:
    Permite el control eficiente de la matriz led, se controla de manera serial, se puede trabajar en cascada para el control de varias matrices a la vez.
  • MPU6050:
    Modulo que cuenta con un giroscopio y acelerómetro, lo utilizaremos para saber la posición relativa del reloj (rotación) con respecto a una posición inicial.
  • Encoder:
    Rotatorio incremental con pulsador, nos permitira confifurar la cantidad de segundos que deseemos contar.
  • Speaker:
    Emitirá un sonido al transcurrir el tiempo del temporizador.


4. ENSAMBLAJE

Al tener previamente un diseño en 3D, esto acelera mucho el ensamblaje.
Partimos con las tarjetas electrónicas, soldamos todos los componentes e interconectamos los módulos externos al microcontrolador. Tenemos una tarjeta electrónica para el Arduino y conectores necesarios para alimentación, control de los drivers, encoder y otros. Otra tarjeta para las matrices led y sus respectivos drivers.
Posteriormente, ya con la estructura fabricada, para este proyecto se trabajó con metacrilato (acrílico), se ensambla todo con pernos para fácil desmontaje.


5. LÓGICA

  • Logica posicion de puntos
    Algoritmo para determinar la siguiente posición de los puntos en función del tiempo transcurrido y posición relativa del reloj de arena.
  • Logica tablero
    Algoritmo que implementa el concepto de tablero como un array buffer entre el cálculo de posición de puntos y la matriz, así como las posibles posiciones discretas del reloj de arena en sectores.
  • Logica main
    Inicialización de variables, objetos y funciones.


6. PROGRAMACIÓN


7. PRUEBAS


8. CONCLUSIONES

Este proyecto uno de los principales retos fue dar el comportamiento de "grano de arena" a los puntos en el tablero, lo descrito en esta entrada es una forma, que se podría mejorar.

Para el prototipo trabajar con acrílico fue más laborioso, considero que una futura versión sería en impresión 3D.

Hay algunos cosos que no se pudieron colocar a detalle en esta entrada, en un futuro video se podrá explicar más a detalle.

Los comentarios son bienvenidos y espero puedan publicar su versión de reloj de arena digital.

Comentarios