PYBStick: détourner un KeyBow pour créer des touches claviers personnalisées

Nous développons quelques petits projets autour de la PybStick de Garatronic, carte que vous retrouverez bientôt dans le Magazine Programmez! du mois de juin.
Cette fois, nous avons décidé de détourner l'utilisation d'un KeyBow 3 touches de Pimoroni (Keybow chez Pimoroni) pour réaliser un clavier d'appoint pour votre ordinateur.

Source: le projet PYBStick/KeyBow


A l'origine, ce produit est destiné au Raspberry-Pi Zero mais voulions le réutiliser sous MicroPython avec la PYBStick.

Nous avons donc commencé par faire quelques recherches sur la carte pour trouver les différentes connexions utiles.
Source: le projet PYBStick/KeyBow

Après avoir obtenu ces éléments, il ne reste plus qu'à créer un schéma de raccordement.
Un convertisseur de niveau logique est nécessaire pour commander les LEDs APA102 sous MicroPython (des LEDs intelligentes). Un bouton poussoir permet de modifier le mode du mini-clavier.


Source: le projet PYBStick/KeyBow

Bouton Mode

Le bouton mode est une valeur numérique de 0 à N et le script est prévu pour faire un cycle entre les différents modes en pressant sur le bouton.
Cela permet de changer facilement l'affectation des touches en fonction d'un type d'utilisation ou l'autre.
Le script d'exemple prévoit deux modes:
  • Mode 0 - Rouge: Copier/Coller Standard, soit CTRL+C, CTRL+V et CTRL+A
  • Mode 1 - Vert: Copier/Coller Terminal Linux, soit   CTRL+SHIFT+C, CTRL+SHIFT+V et CTRL+V
Les touches peuvent être facilement configurées en modifiant la variable configs dans le script keybow3.py .
# Association de Mode -> Couleur bouton + définition des touches
configs = {
   0: { 'color':(64,0,0), # Couleur rouge pour les boutons KeyBow
        'keys' : [ (btn_left  , 'c', [CTRL] ), # Association bouton -> touche + modifiers
                   (btn_middle, 'v', [CTRL] ),
                   (btn_right , 'a', [CTRL] ) ]
       },
   1: { 'color':(0,64,0), # Couleur verte pour les boutons KeyBow (pour terminal Linux)
        'keys' : [ (btn_left  , 'c', [CTRL_RIGHT,SHIFT_RIGHT] ),
                   (btn_middle, 'v', [CTRL_RIGHT,SHIFT_RIGHT] ),
                   (btn_right , 'v', [CTRL] )    ]
       }
}

Switch HID/Service

Le switch HID/Service est exploité dans boot.py pour:
  • activer le mode HID de la carte, ce qui active le support HID et démarre le script keybow3.py
  • Activer le mode Service de la carte, ce qui active le périphérique de stockage (présentation sous forme de disque flash) SANS EXECUTER keybow3.py .
    Cela permet de modifier facilement le contenu de la variable configs.

L'assemblage

Il ne reste plus qu'a réaliser les différentes connexions sur la PYBStick.

Et utiliser d'autres entretoises en Nylon pour faire de la place pour la PYBStick.

Ressources

Le GitHub du projet PYBStick-projects/pybow reprend toutes les instructions nécessaires pour l'installation des bibliothèques et scripts Python.
Le projet propose également une liste d'achat pour vous procurer les éléments nécessaires.

Aucun commentaire