Lunturballa muestra su primera imagen.

Esta es la primera actualización de Lunturballa: la pantalla rotatoria. Hasta ahora es capaz de representar imagenes PNG con una resolución de 80x80.

Lunturballa mostrando un pixelart

Componentes

Estos son los materiales que hemos usado:


Componentes Cantidad
Arduino nano 1
Arduino pro mini 1
Tira de LEDs RGB Neopixel 40
Módulo bluetooth HC06/HC05 1
Memoria FRAM I2C 32KB(MB85RC256V) 1
Sensor magnético 1
Batería LiPo 3.3V 2
Regulador de corriente 5V 1
Condensador 470u 10V 1
Módulo regulador de motores DC 1
Trimmer 1
Fuente de alimentación 5V 1
Materiales variados para construir (cartón, madera, clemas)

Montaje

Lunturballa está formada por dos partes principales: el rotor y el soporte. El soporte se encarga de sujetar el rotor y evitar cualquier tipo de vibración que pueda causar el giro de este. Tiene el motor que está regulado por un arduino nano y un módulo de motor DC. Por su parte, el rotor contiene todos los componentes necesarios para desplegar la imagen: un arduino pro mini, un módulo bluetooth, la tira de LEDs RGB y un sensor de Hall Effect.
El soporte está alimentado por una fuente de 5V y el rotor por dos baterias de litio de 3.3V cada una conectadas en serie.



Parte trasera
Parte frontal
Rotor

Funcionamiento

Lunturballa está controlado por dos arduinos y un ordenador. El ordenador realiza la mayoría de cálculos para evitar cargar demasiado al arduino con operaciones relativamente costosas computacionalmente como las funciones trigonométricas. El programa del ordenador permite usar cualquier imagen, que reescalará a 80x80. El programa irá calculando para todos los ángulos de 1.3º en 1.3º (por motivos de costo computacional) los pixeles que se desplegarán, que serán los maś cercanos a esa posición exacta en la imagen. Como los estamos mostrando en leds que trazan circulos contiguos distanciados entre ellos aproximadamente por 0.3cm, hay que usar coordenadas polares y, debido a esa distancia, no contamos con todos los puntos del plano cartesiano por lo que es inevitable realizar una aproximación. A pesar de ella, la imagen no se deforma en gran medida y es perfectamente reconocible. Posteriormente, el programa es capaz de mandar al arduino los datos de todos los pixeles en los ángulos distanciados por 1.3º (Ejemplo: 0º, 1.3º, 2.6º, 4.9º...360º).

El arduino pro mini recibe los datos y los almacena en una memoria FRAM I2C(MB85RC256V). Después, al mostrar la imagen, usa el sensor magnético para medir la velocidad de giro (midiendo el tiempo entre activaciones) y en base a eso inferir el ángulo en el que se encuentra. El arduino busca entonces los colores de los leds correspondientes al ángulo más próximo a su posición y los despliega en la tira de LEDs.

Por su parte el arduino nano se encarga de regular le velocidad del motor DC en base al ajuste de un trimmer. Esto es para evitar un consumo excesivo del motor y su sobrecalentamiento, además de poder regular su velocidad máxima.

Código

AppPc.zip - Debe ser compilado con Qt.

Comentarios