Etape 21: À l’aide de PureData ou autres logiciels pour contrôler les Saiko5
Format de paquet OSC
Les fonctionnalités de base sont facilement accessibles grâce à l’utilisation de la bibliothèque liblo, disponible pour python, C, PureData et autres langues. Code d’exemple de scripts python de base pour contrôler les lumières peut être trouvé dans les Archives de saiko5 disponibles dans la section téléchargements, dans le sous-dossier/saiko5/logiciels/scripts /
Code de l’exemple de base
importer liblo
adresse = liblo. Adresse (« 192.168.1.222 », « 2222 »)
liblo.Send (adresse, « / lumière/couleur/set », 'f', 0,8, ('f', 0,0), ('f', 0,2))
Dans cet exemple de code, qui est tout ce qui est nécessaire pour contrôler un appareil Saiko5, il y a trois lignes.
1. importation liblo
Cette opération importe la bibliothèque liblo. Vous devrez avoir python-liblo installé pour cette fonctionnalité doit être activée.
2. adresse = liblo. Adresse (« 192.168.1.222 », « 2222 »)
Cette opération crée un objet adresse liblo, qui peut être utilisé pour envoyer des paquets sur les OSC à la lumière à l’adresse IP donnée. Les lumières sont programmées par défaut à l’écoute sur le port 2222 et à l’ordinateur à 192.168.1.2. Cependant, ces paramètres peuvent être modifiés facilement en téléchargeant une version modifiée du firmware. Notez que si vous avez plusieurs lumières, vous aurez besoin d’envoyer les commandes à toutes les lumières pour faire des mises à jour.
3. liblo.send(address, '/light/color/set', ('f', 0.8), ('f', 0,0), ('f', 0,2))
Cela crée et envoie un paquet OSC. La spécification qu’attendent les lumières est le chemin « / lumière/couleur/set », suivi par trois chars, qui correspond à la luminosité RGB entre 0 et 1.
Notez que cela est configuré pour envoyer des commandes sous forme de données RVB. Ce n’est pas l’espace de couleur préféré pour faire face avec éclairage LED, et nous recommandons fortement l’utilisation de l’ISH (teinte, Saturation, intensité) pour la représentation locale de couleur claire. Le code est disponible pour la conversion de HSI RGB en python dans le référentiel saiko5 à /saiko5/software/puredata/server/HSI2RGB.py
Hue est une manière intuitive de penser à « couleur », avec des valeurs comprises entre 0 et 360 degrés, où 0 et 360 degrés sont rouges, et comme les augmentations de teinte, qu'il traverse tout d’abord jaune, puis vert, puis cyan, puis bleu, puis magenta avant de retourner au rouge. Cette représentation permet le codage simple des changements de couleur constante.
La saturation est une manière intuitive de penser à la « blancheur » d’une couleur, avec une saturation de 1,0 sens aussi pur que possible d’une couleur et une saturation de 0,0 signifie blanc, quelle que soit la teinte. L’utilisation de saturation des valeurs inférieures à 1,0 permet l’affichage facile des couleurs pastel.
L’intensité est la représentation naturelle pour la luminosité d’un luminaire LED. L’intensité est définie ici comme la somme des canaux rouges, verts et bleus, entre 0,0 et 1,0. Ceci est différent de la « valeur » utilisée dans le HSV, où la valeur est définie comme la valeur maximale entre les canaux rouges, verts et bleus. Bien que l’utilisation de l’intensité au lieu de la valeur limite la luminosité maximale de la lumière à l’éclat d’un canal unique seul, nous estimons qu’il s’agit d’un moyen plus naturel d’utiliser une couleur changeant d’appareil d’éclairage. Par exemple, dans l’espace colorimétrique HSI, une valeur HSI, si l’intensité est constante et la teinte est modifiée, la puissance totale étant mises par l’appareil d’éclairage reste constant. Toutefois, au HSV colorspace, si la valeur est constante et la teinte est modifiée, la puissance étant mises par les changements d’appareil d’éclairage.
Cela est particulièrement évident dans l’exemple d’aller du rouge au jaune (ou n’importe quel primaire à la couleur secondaire). Dans le cas de la rouge, une valeur HSV de (0, 1, 1) est équivalente à une valeur RGB (1, 0, 0). C’est le même résultat aurait découlant de l’utilisation de la valeur HSI (0, 1, 1). Cependant, pour le jaune, la valeur HSV (60, 1, 1) entraînerait une valeur RVB (1, 1, 0), tout en un HSI valeur de (60, 1, 1) donnerait lieu à une valeur RGB (0, 0.5, 0.5). Dans le cas de la valeur de la constante, la quantité de lumière mis en est supérieure pour le jaune rouge par un facteur de deux, tandis que dans le cas d’une intensité constante, la quantité de lumière mis en demeure inchangé.
Le logiciel Saiko5
Le logiciel Saiko5 a été principalement développé sur Ubuntu 10.04. Nous recommandons fortement que pour être certain que votre installation fonctionnera vous télécharger et utiliser notre image LiveCD qui offrira un environnement de base Ubuntu avec notre logiciel préinstallé et mis en place. Toutefois, nous comprenons que ce n’est pas une situation idéale pour tous les utilisateurs, et donc le logiciel est également fourni sur notre page de téléchargements. Le référentiel de saiko5 est divisé en deux dossiers principaux, /saiko5/firmware/et /saiko5/logiciel /. Cette documentation discutera des logiciels contenus dans le dossier//saiko5/logiciels /.
gui
Le dossier gui contient une interface graphique écrite en python en utilisant wxpython pour les widgets. Ce logiciel permet un contrôle de base sur les appareils d’éclairage à l’aide d’un point, puis cliquez sur interface, y compris les choix d’une couleur HSI, cueillette d’adresses IP pour envoyer les commandes à et fait à base de recyclage des modes de couleur. Pour utiliser ce logiciel, ouvrez le saikoControlGui.py en python.
scripts
Le dossier scripts contient le code de l’exemple de base pour contrôler les appareils d’éclairage à l’aide de liblo en python. Notez que l’utilisation de ces nécessitera une configuration manuelle des adresses IP des lumières que vous tentez de contrôle.
* colorcycle.py--il s’agit d’une couleur de base vélo de programme à l’aide de saturation de 100 % et un taux de change constant.
* setpurple.py--c’est le script très basique ci-dessus en trois lignes qui définira la couleur de la lumière choisie à notre ombre préféré de pourpre.
* udpstresstest.py--ce script mettra l’accent sur tester votre réseau et les lumières en envoyant des paquets udp pour les lumières. Vous pouvez utiliser ceci pour déterminer comment stable est de votre réseau sans fil.
puredata
Le dossier de puredata contient le code source pour faire l’analyse audio à l’aide de puredata avec un serveur python qui l’accompagne pour une communication réelle avec les appareils d’éclairage Saiko5. C’est le logiciel qui est utilisé pour faire les vidéos de la réponse de la musique sur la page. La capture d’écran montre la PureData + Python Server utilisé activement pour contrôler l’appareil Saiko5.
* analyzer.pd--il s’agit de l’analyseur de puredata. Requiere pd-extended, ainsi que de pd-aubio (la bibliothèque d’analyse musicale du aubio) pour fonctionner.
* server/HSI2RGB.py--ce script python convertit les valeurs HSI en RVB.
* server/lightconfiguration.py--ce script python contient les informations de configuration pour les montages de Saiko5 étant commandés.
* server/lightevents.py--ce script python a le code de base pour le serveur de python. C’est le code qui sera généralement modifié pour ajouter de nouvelles fonctionnalités sur le serveur.
* server/lightserver.py--c’est le script python globale qui doit fonctionner pour le logiciel analyzer.pd de la fonction. Il est conçu pour écouter les paquets OSC sur le port 2223, et ces paquets sont fournis par le logiciel puredata.