Lampduino - una lámpara RGB de 8 x 8 (17 / 22 paso)

Paso 17: ColorduinoSlave Firmware

En mi diseño, de los actos Colorduino como esclavo a un PC host aplicación.  Desde un 24 bits por fotograma de píxeles RGB ocupa 192 bytes, el Colorduino no puede almacenar muchos marcos de a bordo, incluso si utiliza memoria de programa.  Por lo tanto, el programa de host envía que los datos del marco hasta el Colorduino a través de un USB -> serial conexión.  He escrito el sketch para que la Colorduino botas para arriba con un demo de plasma cuando no está conectado al host PC.

El sketch de Arduino para este proyecto, ColorduinoSlave.pde, hace uso de la biblioteca de interfaz Colorduino, que también he desarrollado.  He incluido la versión actual en ColorduinoSlaveV1.zip, pero en caso de futuras actualizaciones, siempre puede descargar la última versión desde: Colorduino biblioteca para Arduino.  La biblioteca se encarga de todo el trabajo sucio de hablar con el hardware de control de LED en el Colorduino, como la inicialización básica del hardware, refrescar la pantalla y proporcionar a primitivas básicas para actualizaciones de la pantalla de doble búfer.  Esta manera, no tienes que desorden encima de su dibujo con todo este código extra.  Para instalar la biblioteca de Colorduino, simplemente descargue el archivo zip y copiar Colorduino.cpp/Colorduino.h en tu/< carpeta de sketch de Arduino > bibliotecas/Colorduino.  Si ya tiene el IDE de Arduino, necesita reiniciar para que puede encontrar la biblioteca recién instalada.

ColorduinoSlave.pde de carga en el IDE de Arduino y subir a la Colorduino.  Simplemente espera a que los paquetes de datos desde el host.  El búfer de recepción en biblioteca serie de Arduino tiene un tamaño de búfer de recepción de 128 bytes.  Puesto que una de las funciones de este proyecto es la sincronización de música en tiempo real, es importante reducir la latencia de enviar Marcos desde el host hasta el Colorduino.  Por lo tanto, me tomé la libertad de cuantificar los datos de hasta 12 bits por píxel.  Así, hay de datos utiliza sólo 96 bytes (con sobrecarga de protocolo de paquete, 100 bytes), y un paquete de todo encaja en el búfer de recepción.

Protocolo de paquetes de ColorduinoSlave

El protocolo de paquetes de ColorduinoSlave es simple y diseñado para ser tan compacta como sea posible.  El formato básico es:

< SYNC BYTE > = 0xAA
< código OP > (BYTE)
< DATALEN >
[CARGA DE DATOS]
< CHECKSUM >

DATALEN es el tamaño en bytes de la carga de datos opcional.  Suma de comprobación es simplemente la suma de 8 bits de todos los bytes en el paquete SYNC BYTE.  Cuando ColorduinoSlave recibe un paquete, inmediatamente devuelve un código de estado al host.  Un código de estado de cero significa que no hay error.  Un código de Estado distinto de cero significa que se ha producido un error, como un paquete dañado.

Se admiten los siguientes códigos:

#define OPC_PING 0 x 01 / usa para probar si hay ColorduinoSlave y responder a los comandos

#define OPC_PLAY_FRAME 0 x 02 / / imediately jugar un marco de 12 bits

#define OPC_QUEUE_FRAME 0 x 03 / / poner un marco de 12 bits en la cola del marco.  El tamaño de la cola del marco se controla mediante PACKED_FRAME_QUEUE_LEN.  Mi beta Colorduino vino con un ATmega168V, por lo que la RAM era tan insignificante que mi cola marco solo puede manejar 2 marcos.  Si tienes un ATmega368, se puede ir más alto.

#define OPC_SET_MODE 0 x 04 / / establece el modo de funcionamiento actual.

#define OPC_FILL 0 x 05 / / rellenar con un color de 24 bits.  La carga de datos es de 3 bytes, R, G, entonces B.  Cada valor es de 0-255.

Los modos de funcionamiento seleccionables con OPC_SET_MODE son:

#define CMODE_PLASMA 1 / / en modo de pantalla de plasma automático
#define CMODE_PLAY_FRAME 2 / / aceptar paquetes OPC_PLAY_FRAME
#define CMODE_MUSIC_SYNC 3 / muestra entradas de música via SENSOR_PIN
#define CMODE_FILL 4 / / aceptar valores RGB de 24 bits

En CMODE_MUSIC_SYNC, el host envía marcos 12 bits por OPC_QUEUE_FRAME siempre que hasta el marco de la cola está llena.  Una vez que se llena la cola de marco, ColorduinoSlave no enviará una respuesta al host hasta que elimina al menos un paquete.  Cuando no CMODE_MUSIC_SYNC, OPC_QUEUE_FRAME no exhibe este comportamiento de bloqueo y siempre de manera inmediata, devuelve el estado al host.

Artículos Relacionados

Una lámpara de LED Multicolor

Una lámpara de LED Multicolor

Este proyecto, mi primer documentado aquí en Instructables, permitirá crear un programables Multicolor LED lámpara de lujo, usando una caja impresa 3D, algunos bares de plexiglás, un circuito microcontrolador basado y un anillo de leds.Surgió la idea
Lámpara RGB de detección de sonido usando Arduino

Lámpara RGB de detección de sonido usando Arduino

Hola,Para comenzar con este proyecto no está terminado todavía!En este proyecto estoy haciendo una lámpara con múltiples colores con leds RGB. Mi idea es intentar dejar la lámpara cambia de color si detecta un sonido en la zona. Si te molesta de los
Lámpara RGB musical

Lámpara RGB musical

Aquí está una guía rápida que muestra cómo cumplí mi lámpara de escritorio tradicional en un ecualizador sonido colorido utilizando Arduino y procesamiento.Paso 1: Configuración la lámparaPara este proyecto específico obviamente necesita una lámpara.
OiO - una lámpara de escritorio que tiene un alma

OiO - una lámpara de escritorio que tiene un alma

Su nombre es "oiO", él es un robot de la lámpara de escritorio, pero piensa que tiene un alma. Honestamente, no puedo negar...La idea de construir oiO, vino de mi respeto a simple objeto que se pone alrededor, que juega un grande, y generalmente
Luz escáner y Arduino como lámpara RGB

Luz escáner y Arduino como lámpara RGB

¡ Hola gente!Esta vez voy a mostrar cómo controlar la luz de una escáner/impresora roto, viejo. Pues verá, me gustaria conseguir muchas cosas de basura y usar en mis proyectos.Hace algún tiempo me gané una impresora antigua de un profesor. Cuando lle
DIY una lámpara de madera Retro con BBG

DIY una lámpara de madera Retro con BBG

Puede crear tantas cosas bellas con madera y cortador del laser. Y mucho más mejor si añadir algunos módulos eléctricos, nosotros lo llamamos la combinación de electrónica y arte.Aquí comparto mi última creación, una lámpara de madera que controla el
Hacer viento, en el sauce--y una lámpara

Hacer viento, en el sauce--y una lámpara

OoOoOoOo SHINNY---es lo que diría Homer Simpson. Y es que.Se trata de un carillón de viento de combinación (a base de platos de disco duro), espectáculo de luz óptica de fibra y una lámpara.Carillones de viento no funcionan sin viento así que parte d
[Tutorial para 4DIY.ORG] - Cómo hacer una lámpara inalámbrica multicolor

[Tutorial para 4DIY.ORG] - Cómo hacer una lámpara inalámbrica multicolor

es tan maravillosa cuando haces un regalo hecho a mano para su familia y su amigo en este nuevo año. Ese regalo no sólo muestra su habilidad inteligente sino también su mensaje "siempre el amor y los mejores deseos a mi familia".a continuación p
Lámpara RGB con Custom Moodlamp biblioteca

Lámpara RGB con Custom Moodlamp biblioteca

quería tener una luz RGB fácilmente programable a dejar en un Jack ' O Lantern de Halloween. Quien quiere un mate de calabaza en estos días de calabaza proxenetismo locura. Así que me puse a trabajar construyendo una lata de bolsillo tamaño lámpara R
Cómo convertir una lámpara Jonisk de IKEA con LEDs

Cómo convertir una lámpara Jonisk de IKEA con LEDs

compré una lámpara Jonisk de IKEA en mi sala de estar, pero cuando encendido la lámpara con una bombilla de 60W calentarse como ***. Comencé a averiguar cómo convertir a una lámpara de LED en su lugar.He encontrado una empresa que vende alta potencia
Diseñar una lámpara Multi nodo LED PWM

Diseñar una lámpara Multi nodo LED PWM

este instructable le mostrará cómo diseñé un controlador de PWM de la lámpara LED. Lámparas múltiples ser ensartadas para grandes cadenas de la luz.Crear algunas blinky luces LED para Navidad siempre ha estado en mi lista de deseos. Temporada de Navi
Cómo hacer una lámpara de

Cómo hacer una lámpara de

Para este proyecto usé la máquina de tallar X CNC por Inventables. El software que utilizan para programar el CNC se llama caballete que es también por Inventables. Así que todos mis pasos para este proyecto se basan en el uso de una máquina CNC. Ust
Fabricar una lámpara elegante de clips

Fabricar una lámpara elegante de clips

"respuesta de su cubículo a un estilo de vida chillón!"Instructabrarians-Ho!¿Alguna vez deseó una lámpara para su hogar (u oficina) pero carecía de los miles de dólares para comprar una?  Bueno hoy estás de suerte porque mostrará usted lo fácil
Hacer una lámpara de lectura increíble

Hacer una lámpara de lectura increíble

¿Desea leer en su cama pero no tiene una lámpara para la lectura?Aquí es el más simple instructable para resolver este problema, todo lo que necesitas es una botella y su smartphone.Paso 1: Encontrar la botella cuadradaPaso 2: Cortar la parte inferio