Paso 4: Programar el controlador
El control para el espectáculo de luz fue hecho usando Python y ejecutado en un modelo de frambuesa Pi B. Incluí un par de los archivos aquí, pero puede encontrarse todo el conjunto de código fuente en github. El archivo principal es lightshow.py. Esto es donde usted para arriba de los pines está utilizando en la Raspberry Pi, que debe asegurarse y conectar los pines mismo como lo hice o actualizar esta parte del código. Lightshow.py es donde se establece la lista de reproducción que se ejecutará. Lo tengo configurado para ejecutar una secuencia de persecución simple dos veces al principio. Esto es útil para asegurarse de que todo está conectado y funcionando correctamente. Luego se ejecutará cada canción en la lista de reproducción. Antes de cada canción que le dará un indicador de qué elemento numerado en la lista de reproducción (a partir de 0) que está a cargo de iluminar ese número de inicia. Si la lista contiene más canciones que estrellas el indicador envolvente desde el otro lado y empezar con 1 estrella iluminada. Al finalizar cada canción, se ejecuta un programa final donde centellea todas las estrellas durante 5 segundos y luego deja todo iluminado. Luego pasa a la siguiente canción.
Las canciones se programan utilizando una clase de canción que se define en el archivo lightshow_classes.py. La clase de canción define cada una de las notas e-f-g-a-b-c-d en mi caso y la duración de las notas. 1 compás para una nota de cuarto, 1/2 beat para una corchea, etc.. Si desea utilizar más de 7 estrellas, sería necesario modificar esta sección para asignar las notas adicionales.
Cada canción tiene su propio archivo. Deck_The_Halls.py se utiliza como ejemplo. Estos archivos fueron creados por mirar un conjunto de música de la hoja y añadir a cada nota y su duración en la lista de Song.notes. Una parte importante de este archivo es el tempo en. Este es un argumento al constructor de la clase de canción (en el ejemplo es 140 latidos/minuto). Éstos fueron fijados por ensayo y error y usando lo que parecía ver mejor. En teoría, cualquier canción puede ser codificada de esta manera y agregó a la lista, aunque está limitado a sólo iluminar una luz en un momento.
También es una clase de demostración que puede utilizar para ejecutar comandos como encender una luz de encendido/apagado, todas las luces de encendido/apagado, reproducir una canción. La combinación de estos métodos es como se creó la función de chase.py.
Una vez cargado en la Raspberry Pi, el programa se puede ejecutar el comando: sudo python lightshow.py
Los relés que un audible 'click' cuando cambia por lo que obtendrá una indicación de que la canción está reproduciendo incluso si usted no puede ver las luces ellos mismos.