Paso 14: Programa de Python para tira de LED Control
¿Lo que hace el programa Python necesita hacer ahora?
Configuración del cliente OPC (para comunicarse con nuestra mesa de Fadecandy)
Configurar servidor de OSC (recibir la señal de TouchOSC app via Wifi conectado el teléfono)
Configuración de algunas variables para almacenar los valores actuales del sistema que pueden ser utilizados por todas las funciones que hizo esto con las variables globales con éxito, pero no estoy seguro si esta es la mejor práctica.
Ser capaces de detectar relativa-a-humanos-tiempo de reacción rápido asincrónico entrada (entrada en intervalos no periódicos que su general Python programa estructura necesidad comprobar tantas veces como sea posible de la entrada)
Guardar el mensaje entrante de OSC de TouchOSC en una matriz de caracteres
Analizar la matriz de datos OSC (nombre del canal, nombre del atributo y atributo rango; Personalizable en el Editor de TouchOSC en el menú izquierda)
Almacenar los datos analizados en las variables de la función temporal
Almacena el valor de la función temporal en la variable global correspondiente (programa recibe un nuevo mensaje OSC; Pasé un fader, está ahora en un valor de 10; el fader fue en la Página 1 y se llama "redfader" por lo que necesito actualizar mi pixelcolorred variable global (o cualquier nombre descriptivo). La variable global fue el enfoque heurístico. Lo estoy usando porque fácilmente puedo ver qué función se cachondeo con él debido al mensaje analizado osc. Entiendo que es una variable peligrosa porque todo puede acceder y editarlo, pero eso es lo que era tipo de lo que vi el trabajo del programa.
Inicio en un bucle principal en un modo inicial en un tiempo bucle (como canales de tv). Este es el modo de inicio por defecto que será el primer "efecto" la matriz de LED comienza a funcionar cuando se inicia el programa de Python (que estará en el arranque)
Ser capaz de cambiar fuera efecto tiempo-bucle de ese modo lo suficientemente rápido como para no aviso de retraso
El programa constantemente está pidiendo al cliente si se han recibido mensajes nuevos de OSC. Cualquier cambio en cualquiera de los controles de TouchOSC enviará el mensaje relevante de OSC que se detectan en cada línea que utiliza el programa:
Server.handle_request()
Una vez que se detecta un cambio de modo (a través de una funcionalidad similar al ejemplo del cambio de fader se detectan) el programa quebrará la previa mientras que lazo, ir a través de la lista mientras bucles hasta que encuentre del modo adecuado lazo y ejecutar hasta el otro modo de cambiar es detectada. He intentado organizar los modos en funciones en lugar de nido en el bucle principal de tiempo de ejecución, pero luego consiguieron un poco más complicado / desordenadas mediante la función server.handle_request() dentro de la otra función, y no muy quería lidiar con eso.
No quiero llegar demasiado específica ya es donde la creatividad entra en juego, junto con alguna experiencia de Python que completamente no puedo entrar. (Plan para editar en algunos de la configuración del OPC y OSC en Python) pero algunos recursos de gran arranque pueden encontrarse aquí:
Algunas herramientas útiles pueden encontrarse en:
- Biblioteca de matemáticas (valor absoluto)
- tiempo (buena para otra variable aleatoria que está progresando linealmente)
- al azar (generar el valor pseudo-aleatorio)
- color_utils (algunas funciones de sujeción un mix y max, reasignación de gamas, de bloqueo y otras funciones útiles relacionadas con LED de control) y proviene de bibliotecas Open Pixel Control Python desde