Paso 4: 3D LED Software
Software para el cubo del LED está escrito en C y compilado bajo el entorno de desarrollo arduino. El código se transfiere a la arduino uno mediante un cable USB por lo que esto requiere un convertidor de USB a serial programar el AVR directamente.
La mejor manera de pensar que el software está en dos partes principales:
- la filosofía de mostrar la imagen
- los patrones y algoritmos utilizados para generar la imagen
Filosofía de mostrar la imagen
La filosofía de pantalla nos permite sólo ilumina una capa de luces a la vez, así que para ver el cubo entero de LEDs al mismo tiempo, contamos con un fenómeno conocido como Persistencia de la visión. Esto es así que podemos analizar a través de todas las capas de LEDs o LEDs sin necesariamente tenerlos todos en una sola vez. Si podemos analizar a través de ellos lo suficientemente rápido (normalmente 20-25 ciclos por segundo y 8 capas de 25 veces por segundo) entonces parece estar en el mismo tiempo.
En realidad, debido a la estructura del código, el tiempo del ciclo variará por lo que la imagen o el estado actual de la imagen está representado por una matriz de bytes dimensional 3. Es una matriz con las dimensiones de 0 - 8 en todas las direcciones pero realista sólo 1-8 se utilizan para el estado actual de pantalla. La dirección 0 se utiliza para manipular la fila cuando pensamos en patrones y algoritmos. Sólo se centran en el 1-8 para cada eje por ahora. Esto nos da 512 bytes de almacenamiento de información y cada byte representa 0 - 255 gris escala de valor que luego es convertida en un pulso con la representación modulada de intensidad.
En cada iteración del programa hay un bucle anidado que analiza a través de la matriz de dimensión 3 y escribe una capa a la vez. Hay un retraso preprogram que puede ajustarse si es necesario que determina cuánto cada capa está en para.
Cuando aumentas la velocidad de este análisis hay un par de problemas en que se puede ejecutar que es por ello que necesitamos incorporar a esconder en el d-multiplexor. Mediante la utilización de la d de d-multiplexor de entrada que exceda la especificación 3-8, entonces podemos blanco todas las salidas de la d-multiplexor. Esto es lo que está conectado al pin 7 de arduino y está representado por el valor de salida 128 porque es el pedacito más significativo de un byte. Como que escanear la pantalla más rápido, si no blanco, vamos a un arrastre de la luz a través de las capas donde en realidad no queremos la luz por lo que el valor de la capa anterior se lleva a través a otro. Tenemos en blanco el control de la capa por un tiempo muy corto mientras escribimos los nuevos valores a las columnas, y luego podemos pasar a la capa superior y quitar ese efecto fantasma.
Una cosa que hay que tener cuidado de ajustar o compilar este código es la configuración de la biblioteca de TLC. Necesita buscar en la sección de comentarios del código fuente proporcionado para verificar lo que necesitan ajustes para cambiar en el archivo de configuración de TLC. Al abordar las virutas del TLC la biblioteca disponible proporciona que una functionwhich de interfaz nos permite hablar con el canal en el sistema de TLC. En el archivo de biblioteca de configuración especificamos que hay 4 fichas de TLC porque hay 16 salidas por chip de TLC. Esto nos permite manejar 64 canales o 64 salidas simultáneamente por lo que éstos se tratan como canal 0 - 63. Como hacemos nuestro bucle anidado y buscar a través de una capa que necesitamos consecutivamente escribir cada valor para cada canal lo que es una gran cantidad de nidos o bucles anidados. Cada LED está representado por el 0 - 255 o 1 valor de escala de grises bytes. Esto se pasa directamente a la función TLC.