Avez-vous déjà entendu parler des Stream Deck d'Elgato, à ne pas confondre avec le Steamdeck de Steam? Il s'agit de boîtes couvertes de boutons transparents derrière lesquels il y a un écran couleur. Et ces boutons sont entièrement personnalisables. Comme Elgato fourni un SDK, on s'est dit qu'on pourrait essayer de faire un petit plugin qui permette de piloter des modules Yoctopuce.
Une partie de la gamme Stream Deck d'Elgato
Est-ce vraiment utile ?
Évidement, on pourrait se demander si ce genre de périphérique est vraiment utile. Nous, on pense que oui. L'exemple qui parlerait un à maximum de monde consisterait configurer une macro pour insérer dans un email professionnel une signature avec formule de politesse rédigée dans la bonne langue. Avec le Stream Deck, configurer une macro qui fasse ça est un jeu d'enfant. L'utilisation principale consiste bien sûr à l'utiliser pour lancer de macros prédéfinies dans de nombreux logiciels.
Ceci dit, dans le cas des modules Yoctopuce, l'intérêt est d'avoir des boutons physiques pour contrôler facilement des actuateurs Yoctopuce. L'application la plus évidente est peut-être de faire commuter des relais Yoctopuce pour facilement allumer ou éteindre des appareils depuis son bureau, mais on a eu d'autres idées.
On peut utiliser un Stream Deck avec pas mal de modules Yoctopuce
Fonctionnalités du plugin Yoctopuce
A l'heure actuelle, le plugin supporte les fonctions suivantes:
Buzzer
La fonction buzzer est présente sur le Yocto-Buzzer et Yocto-MaxiBuzzer. Le plugin permet d'émettre une impulsion sonore ou encore de jouer une petite mélodie.
ColorLedCluster
La fonction ColorLedCluster est présente sur le Yocto-Color-V2, le Yocto-MaxiBuzzer et le Yocto-MaxiKnob. Le plugin permet d'allumer ou d'éteindre un groupe de LEDs ou encore de les faire basculer d'une couleur à l'autre. Les boutons rotatifs du Stream Deck+ peuvent être utilisés pour ajuster les composantes R, G et B.
CurrentLoopOuput
La fonction CurrentLoopOuput est présente sur le Yocto-4-20mA-Tx. Le plugin permet de faire alterner le courant de sortie entre deux valeurs pré-configurées. Les boutons rotatifs du Stream Deck+ peuvent être utilisés pour ajuster le courant de sortie.
Relay
La fonction Relay est présente sur les Yocto-Relay, Yocto-PowerRelay (V1,V2,V3), Yocto-MaxiPowerRelay, Yocto-LatchedRelay et Yocto-MaxiCoupler. Le plugin permet de faire basculer les relais d'un état vers l'autre.
Servo
La fonction Servo est présente sur le Yocto-Servo. Le plugin permet de faire alterner la position d'un servo-moteur de modélisme entre deux valeurs pré-configurées. Les boutons rotatifs du Stream Deck+ peuvent être utilisés pour ajuster directement la position d'un servo.
VoltageOuput
La fonction VoltageOuput est présente sur le Yocto-0-10V-Tx. Le plugin permet de faire alterner la tension de sortie entre deux valeurs pré-configurées. Les boutons rotatifs du Stream Deck+ peuvent être utilisés pour ajuster la tension de sortie.
WakeUpMonitor
La fonction WakeUpMonitor est présente sur le YoctoHub-Wireless-n et le YoctoHub-GSM-4G. Le plugin permet d'endormir le module. Si ça a l'air bizarrement spécifique, c'est parce qu'on avait besoin de cette fonctionnalité en interne.
Certaines fonctions peuvent être contrôlées par les boutons rotatifs du Stream Deck+
Installation
En attendant de pouvoir le publier directement sur le store d'Elgato, le plugin peut être téléchargé directement depuis ici. Si l'application Stream Deck est déjà installée sur votre ordinateur, double-cliquez simplement sur le fichier com.yoctopuce.modules.streamDeckPlugin et le plugin s'installera. Vous trouverez la liste des actions disponibles dans la section Yoctopuce.
Utilisation
Gardez à l'esprit que le plugin ne peut contrôler que des modules Yoctopuce connectés par l’intermédiaire de VirtualHub ou d'un YoctoHub. Il ne peut pas contrôler les modules en USB natif parce qu'il est écrit en Typescript. Par conséquent, si vos modules sont directement connectés à votre ordinateur par USB, vérifiez que vous avez bien VirtualHub en train de tourner. Une fois que vous aurez affecté une action du Plugin Yoctopuce à une touche du Stream Deck vous devrez:
- Indiquer l'adresse IP du hub ou d'une instance de VirtualHub distant connecté au module. Dans le cas d'une instance de VirtualHub local, utilisez 127.0.0.1. En fait, ce paramètre est commun à toutes les actions, mais vous pouvez entrer une liste d'adresse IP séparées par des virgules.
- Une fois connecté aux hubs, le plugin vous présentera la liste des fonctions compatibles avec l'action choisie. A vous d'en choisir une.
- Il ne vous reste alors plus qu'à choisir les paramètres de l'action
Dans la capture d'écran ci-dessous, on a configuré un relais piloté par VirtualHub local de manière à ce qu'il bascule (toggle) d'un état à l'autre à chaque fois que l'on appuie sur le touche correspondante du Stream Deck.
Configuration pour l'utilisation d'un relais
Ce que l'on pense de la gamme Stream Deck
Bien qu'il s'agisse de matériel assez bon marché, on a été agréablement surpris par la qualité de fabrication des différents périphériques Stream Deck, l'application qui les pilote marche plutôt bien, mais on a été un peu déçu par l'obligation d'avoir au moins Windows 10 pour l'installer. Par contre, la documentation du SDK d'Elgato n'est pas vraiment à la hauteur du reste. En dépit d'une apparence exhaustive, elle passe sous silence des détails importants à propos de l’architecture et du fonctionnement des plugins. Les questions de support sont censées être posées sur un forum Reddit où il y a clairement plus de questions que de réponses. A cause de ces problèmes, développer ce plugin tenait plus de la chasse au trésor qu'au petit projet vite fait bien fait que l'on imaginait au départ.
Conclusion
On espère que ce petit plugin va sera aussi utile qu'il le sera pour nous. Si vous avez des problèmes d'utilisation, n'hésitez pas à contacter le support Yoctopuce qui ne manquera pas de vous répondre, lui. Si vous vous demandez à quoi ressemble le code source du plugin, vous pouvez le trouver ici.