Paso 12: Mapa de los LEDs
Este paso muestra cómo generar una tabla de posiciones físicas para los grupos de LED. Si has seguido mi diseño hace perfectamente dos pasos puede omitir esto porque la tabla proporcionada por usted será correcta.
Primero descargar el archivo PhysicalLoc.h y echar un vistazo. Hay una variedad llamada PhysLoc que toma la forma: [canal] [ClusterNumber] = {X, Y}. Es el canal de salida de salida SPI demultiplexed el microcontrolador de la Junta. ClusterNumber es el orden en que los racimos de LED RGB se arreglan en la cadena de WS2803s. El primer racimo RGB en la Junta más cercana al microcontrolador es de 0.
X, Y es las coordenadas del cluster RGB en la rejilla hexagonal.
Hay actualmente tres versiones de la matriz de PhysLoc en PhysicalLoc.h pero son separados por las macros precompilador #if lado == izquierda, #if lado == derecho, #if lado == frente. Usted tendrá que llenar en todas las tres matrices. Izquierda y derecha son desde la perspectiva de un jinete sentado en la parte posterior.
Redes hexagonales pueden tomar algún si sólo está familiarizado con rejillas cartesianas. Estoy usando un sistema hexagonal axial rematado puntiagudo de coordenadas. Es como la rejilla cartesiana, excepto en el eje Y está inclinado en ángulo de 60 grados. Aquí hay una excelente explicación de cómo funciona: redblobgames.com/grids/hexagons/#coordinates.
Uso seco borrar marcador y etiqueta cada uno de los hexágonos en la cesta de compras según los dos esquemas proporcionados. Utilice el mismo patrón para la izquierda y la derecha.
Descargar RaveCart_MappingHelper.zip. Esto contiene código en C y archivos de proyecto MPLABX. Compilar el código y el programa de su PIC18F4550s. El código hará que un clúster LED vuelta blanco a la vez. El resto estará apagado. Comienza en channel0 cluster0 luego sube a 119 (el último clúster RGB de la placa 20) del racimo. Después de esto comienza el proceso otra vez en el CANAL1 y así sucesivamente. Probablemente no tienes 20 juntas en una cadena, por lo que no habrá clusters activados por un tiempo al final de cada búsqueda. Hay un retraso de 10 segundos entre mover al siguiente grupo. Utilice este tiempo para grabar las coordenadas que escribió sobre el grupo iluminado en la matriz PhysLoc.
Por ejemplo si están de los primeros tres grupos RGB que iluminan a la izquierda [1,14] [1,13], [2,13] la matriz de PhysLoc empezaría así:
#if lado == izquierda
{{{1, 14},
13 {1},
{2}, 13,
Si un clúster no enciende porque no podía colocarse detrás de un agujero poner {vacío, vacío} en su campo. Esto dice el código de patrón de iluminación para evitar ese racimo. En el último clúster de cada canal entrar {fin, fin}. es decir si un canal tiene ocho consejos pones {fin, fin} índice 48 porque 6 * 8 = 48.
También rellena la matriz de ChanLength. Se trata de ocho números indicando cuántos clusters están en cada uno de los ocho canales.