Il y a quelque temps, nous avons présenté une méthode pour piloter des modules Yoctopuce avec un Stream Deck d'Elgato. Aujourd'hui, nous vous dévoilons la réalisation d'un clavier macro, inspiré du Stream Deck mais basé sur un module Yoctopuce.
Qu'est-ce qu'un clavier macro ?
Un clavier macro est un périphérique permettant aux utilisateurs de programmer des séquences d'actions, appelées macros, sur des touches spécifiques. Ces macros sont utiles pour automatiser des tâches répétitives ou complexes, améliorant ainsi l'efficacité, notamment dans les domaines du jeu vidéo et de la productivité. Les claviers gamer modernes intègrent souvent quelques touches dédiées à des macros programmables.
Le matériel
Notre clavier macro a pour objectif de contrôler le volume, les médias en cours, ainsi que d'ouvrir des applications et des sites web. Pour le contrôle du volume, nous utilisons un encodeur à quadrature de chez Bourns. Les autres macros sont assignées à des touches de clavier. Nous utilisons des boutons de chez Adafruit, composés de trois parties : une base équipée d'une LED RGB et d'un support de touche (NeoKey), une touche de clavier mécanique (Kailh Mechanical Key Switch - Clicky Blue) et un capuchon de touche plate (Relegendable Plastic Keycaps).
Ces boutons, dotés de LEDs RGB, peuvent être contrôlés individuellement pour changer de couleur selon les besoins. Enfin, nous utilisons un Yocto-MaxiKnob, doté de 12 voies analogiques capables de lire différents types d'entrées, ainsi qu'un driver de smart LEDs RGB et un buzzer (retiré pour gagner de l'espace).
Câblage et montage
Le câblage des supports de boutons NeoKey est simple : les fils S+ et S- de chaque support sont connectés aux voies du Yocto-MaxiKnob. Pour l'encodeur, un côté est connecté pour la pression (fonctionnant comme un bouton), et de l'autre côté, deux pôles positifs et un pôle négatif sont connectés au centre pour détecter le sens de rotation. Les LEDs sont connectées en série pour être contrôlées individuellement par le Yocto-MaxiKnob. Les boutons sont alimentés en série via les ports VDD (5V) et G (GND).
Connexion du clavier macro
Pour le boîtier, nous avons opté pour des plaques de plexiglas. Une plaque de 3 mm sert de base pour fixer le Yocto-MaxiKnob, une plaque peinte en noir de 1,4 mm maintient les touches mécaniques et l'encodeur, et une plaque de 2 mm plaque les touches pour assurer leur stabilité. Une pièce pour l'encodeur est imprimée en 3D, tandis que les logos correspondant aux macros sont imprimés sur les capuchons de touche à l'aide d'une imprimante UV.
Les macros
Nous avons assigné 3 boutons pour le contrôle des médias : média précédent, play/pause et média suivant. Les trois boutons suivants ouvrent des applications : PostBox (boîte mail), Spotify (streaming audio), Firefox (navigateur web). Les trois derniers boutons ouvrent le site web de Yoctopuce, lancent VirtualHub et ouvrent le logiciel de flash des modules Yoctopuce. L'encodeur contrôle le volume en le tournant à droite ou à gauche, et une pression sur l'encodeur active ou désactive le volume en muet.
La mécanique du clavier macro
Et voilà, notre clavier macro est prêt à être programmé !
Le logiciel
Nous avons choisi de coder en C# pour créer un exécutable simple. Le programme gère la détection des boutons pressés ou du changement de position de l'encodeur, exécute les macros et contrôle les LEDs.
Gestion des boutons et de l'encodeur
La détection des boutons pressés et l'incrément ou le décrément de l'encodeur sont gérés par des callbacks valueCallback. Deux callbacks ont été créés, un pour les boutons et un autre pour l'encodeur. Pour les boutons, le callback lit simplement le bouton pressé et exécute la macro correspondante. Pour l'encodeur, le callback détecte le sens de rotation en comparant les nouvelles et anciennes valeurs.
Exécution des macros
Les macros de contrôle du volume et des médias sont exécutées à l'aide de raccourcis de touche virtuelle.
Pour les applications et les sites web, la fonction la fonction Process.Start() est utilisée avec la localisation de l'application à ouvrir ou le lien internet à ouvrir.
Gestion des LEDs
Par défaut, nous avons choisi une couleur statique pour les LEDs des boutons. Nous avons implémenté des animations sur les LEDs quand on presse une macro de médias. Si l'application Spotify est ouverte, la macro sera illuminée en vert, pareil en bleu pour la macro du VirtualHub et en gris pour le bouton de macro du logiciel de flash.
Fonctions supplémentaires
Nous avons ajouté des fonctionnalités telles que la notification des nouveaux mails non lus avec une LED clignotante, ainsi que la détection des nouvelles commandes reçues avec une LED rouge clignotante. VirtualHub se ferme automatiquement lors du lancement du logiciel de flash.
Exécution
Pour que le programme démarre automatiquement avec le PC, il est ajouté aux exécutables de démarrage. Pour cela, il suffit d'ouvrir le dossier où se trouve l'exécutable > d'appuyer sur Windows + R > d'écrire shell:startup > OK > un dossier s'ouvre et il suffit d'y déposer l'exécutable.
Le clavier macro fini
Conclusion
Ce clavier macro facilite grandement la vie en automatisant plusieurs tâches. Les animations des LEDs offrent une meilleure visibilité des actions en cours. Si vous souhaitez créer votre propre clavier macro, gardez à l'esprit les possibilités offertes par le Yocto-MaxiKnob, avec ses 12 entrées analogiques et sa capacité à contrôler jusqu'à 150 LEDs. Vous pouvez trouver un exemple de code source ici.