Étape 14 : Programme de Python sur la bandelette de contrôle LED
En quoi consiste le programme Python doit faire, maintenant ?
Configurer le client OPC (pour communiquer avec notre Conseil d’administration Fadecandy)
Configurer le serveur d’OSC (pour recevoir des entrées de TouchOSC app via le Wifi connecté le téléphone)
Configuration des variables pour stocker les valeurs actuelles du système qui peuvent être utilisés par toutes les fonctions que j’ai fait cela avec les variables globales avec succès, mais je ne sais pas si il s’agit de la meilleure pratique.
Être capable de détecter parent-à-homme-temps de réaction asynchrone rapide d’entrée (entrée venant non périodiquement faire votre ensemble structure nécessaire pour vérifier à l’entrée aussi souvent que possible du programme Python)
Stocker le message entrant de l’OSC de TouchOSC dans un tableau de caractères
Analyser le tableau de données des OSC (nom du canal, nom de l’attribut et plage de l’attribut ; Personnalisable dans TouchOSC éditeur dans le menu de propriétés sur la gauche)
Stocker des données analysées dans des variables de la fonction temporaire
Stocke la valeur de la fonction temporaire dans la variable globale pertinente (programme obtient un nouveau message de la CVMO ; Je me suis déplacé un fader, c’est maintenant une valeur de 10 ; le fader est à la page 1 et est appelé « redfader » donc j’ai besoin de mettre à jour mon pixelcolorred de variable globale (ou n’importe quel nom descriptif que vous voulez). La variable globale a été l’approche heuristique. Je l’utilise parce que je peux facilement voir ce que la fonction est de jouer avec elle en raison du message de la CVMO analysée. Je comprends que c’est une variable dangereuse car tout peut y accéder et le modifier, mais c’est ce qui était le genre de la façon dont j’ai vu le programme de travail.
Démarrage en boucle principale à un mode initial dans un certain temps boucle (comme les canaux sur un téléviseur). C’est le mode d’atterrissage par défaut qui sera le premier « effet » tableau LED commence à exécuter au démarrage du programme Python (qui sera au démarrage)
Pouvoir passer hors effet-boucle de ce mode while assez vite pour pas avis de retard
Le programme est toujours demander au client si aucun nouveau message d’OSC ont été reçues. Toute modification à l’un des contrôles TouchOSC enverra le message OSC pertinent qui sera détecté à chaque ligne, que le programme utilise :
Server.handle_request()
Une fois qu’un changement de mode est détecté (via une fonctionnalité similaire à l’exemple du changement fader détecté) le programme se brisera de l’avant tout en boucle, de passer par la liste tout en boucles, jusqu'à ce qu’il trouve du bon mode boucle et exécuter qui, jusqu'à ce qu’un autre mode, changer est détectée. J’ai essayé d’organiser les modes en fonctions au lieu de nid que tous dans la boucle principale d’exécution, mais il a obtenu un peu plus compliqué / encombré à l’aide de la fonction server.handle_request() à l’intérieur de l’autre fonction, et tout à fait, je ne voulais pas faire face à cela.
Je ne veux pas arriver trop spécifique ici parce que c’est là la créativité entre en jeu, ainsi qu’une expérience de Python qui que je ne peux pas entrer pleinement. (Je prévois d’éditer dans certains de la configuration du CPVP et OSC en Python), mais certaines ressources grande première peuvent être trouvés ici :
Certains utilitaires intéressants se trouvent dans :
- Bibliothèque de mathématiques (en valeur absolue)
- temps (bon pour une autre variable aléatoire qui progresse linéairement)
- aléatoire (générer valeur Pseudo-aléatoire)
- color_utils (certaines fonctions serrage verrouillage un mélange et max, remappage des gammes et autres fonctions utiles se rapportant au contrôle de la LED) et proviennent de bibliothèques Open Pixel Control Python ajoutés sur