Leer más sobre el el código y software desarrollado por LoveProps

Sigma Firmware 1.0

El sistema se basa en un bloque de código C++ que rueda en Teensy 32 sobre el core TeensyDuino de Stoffregen y en otro bloque de código lua que rueda de forma independiente sobre NodeMCU en WS8212. Todo el firmware está aún en una fase temprana de desarrollo pero hay varios bloques funcionales que permiten un funcionamiento básico (aunque en fase Beta). El sistema está formado en este momento por unas 25 clases que contienen unas 12000 líneas de código hasta ahora. El sistema es modular y está organizado en varias librerías.

LovSystem
Este es el objeto que forma el core del firmware y rueda el “ciclo central”. El ciclo central es ejecutado una vez por frame y consta de todos los pasos necesarios para construir un nuevo frame.
Se adquieren los valores de los sensores, como posición y movimiento, mensajes MIDI provenientes de Wire, Radio o File, los posibles inputs del usuario y se capturan un grupo de muestras de audio correspondientes a la duración de ese frame.
Con estos valores se hace una extracción de tempo y beat de audio, cada módulo del instrumento MIDI activo realiza sus cálculos y la librería de luz y color calcula en RAM el contenido del nuevo frame que es enviado a los drivers de los LED.
LovAudio
Esta librería contiene 3 objetos (clases) principales: LovADC, LovAudio y LovMachine
LovADC se ocupa, en segundo plano, de la tarea de bajo nivel de adquirir las muestras de audio y de gestionar un sistema de control automático de ganancia.
LovAudio procesa las muestras de audio y calcula varios filtros y valores estadísticos como explosiones de energía a varias frecuencias.
LovMachine es una “máquina de tesis” que ejecuta un algoritmo de búsqueda de tempo y beat de tipo darwinista que gestiona en tiempo real una colección de hipótesis y selecciona la más verosímil.
LovCroma
Es una librería gráfica de dos niveles: LovCroma y LovSpark
LovCroma es una librería gráfica estática de 2D que dibuja las configuraciones de color y gestiona la comunicación con los driver de los LED
LovSpark es una librería dinámica 2D + t que trabaja sobre LovCroma y gestiona procesos extendidos en el tiempo como decays, deriva de color, pulsos, etc
LovMidi
Es una librería formada por un “banco de instrumentos”, drivers MIDI para eventos MIDI en tiempo real Wire o Radio, un driver de ficheros MIDI formato 0 y un mecanismo de enrutamiento interno.
El “banco de instrumentos” admite la configuración (por código) de instrumentos de lux MIDI formados por módulos LovSpark y el sistema permite poner en ejecución cualquiera de los instrumentos predefinidos. Actualmente solo hay un primer instrumento definido: Honey
LovWiFi
Esta librería se encarga de las comunicaciones Radio interactuando con el código lua en NodeMCU. Proporciona tanto mensajes MIDI en tiempo real como interacción con el usuario y aplicaciones PC.
LovMotion
Esta librería, aún no escrita, proporcionará al sistema información sobre el movimiento y orientación espacial del casco.
luaFrim
Es el firmware que ejecuta de manera independiente WS8212. Incluye un micro-servidor Web y un relay MIDI.

¿Interesado en nuestras creaciones?