Introduction
Je cherche une espèce de télécommande pour piloter plusieurs équipements dans ma maison:
- Des lampes
- Ma matrice de LED
- Tout autre équipement que je pourrais être amené à installer
Je suis tombé sur ce clavier à construire soi même. Une petite carte feather est incluse et peut être programmée. Cela semble parfait pour mon besoin, avec l’avantage d’être vraiment souple pour répondre à presque n’importe quel future nécessité.
Montage
Le colis est reçu avec toutes les pièces. Mais je réalise que malheureusement par défaut c’est une feather M4 express qui n’a aucune connectivité avec l’extérieur :( Pas très pratique pour ce que je veux faire. J’ai donc changé cet élément par une HUZZAH32 qui contient un ESP32 et qui fournit une interface Wi-Fi.
Le montage est extrêmement bien décrit sur le site d’Adafruit et ne comporte réellement aucune difficulté. Il faut quand même avoir des bons ongles pour être capable de bien enlever les protections sur les éléments du boitier, ce qui n’est pas mon cas.
Un peu de soudure est nécessaire, pour d’abord souder les fils au Feather
.
Et ensuite souder les 4 PCB portant les LEDs ensemble, car j’ai choisi un clavier 8x8 plutôt qu’un clavier 4x4.
En quelques minutes on arrive à avoir un clavier monté et terminé, en tout cas pour la partie hardware.
Update
Contrairement à ce que l’on peut voir sur les photos, j’ai fait évoluer mon clavier pour qu’il soit autonome, en embarquant non seulement une batterie, mais aussi un interrupteur.
Partie software
Je suis parti du principe que je voulais quelque chose de minimaliste dans le clavier et qu’il serait au final piloté par un serveur. L’avantage de ce système est que toutes les mises à jour ne nécessitent pas de modifier le firmware du clavier et cela rend les choses beaucoup plus souples.
Clavier
Le clavier possède un code minimaliste qui lui permet:
- De se connecter à un réseau Wi-Fi
- D’envoyer des informations en
UDP
disant quel bouton a été appuyé ou relâché - De recevoir des informations en
UDP
disant quellesLEDs
doivent être allumées et en quelle couleur
Le code C++
se trouve ici et ne comporte aucune difficulté, quand on est habitué à coder sur des Arduino (ce qui n’était pas mon cas avant ce projet).
Serveur
Le serveur possède toute l’intelligence et pilote entièrement le clavier. Il est complètement codé en python et le code peut se trouver ici. Il reçoit les appuis/relâchements de chaque touche envoyée par le clavier et renvoie (ou non) les LEDs
à allumer. Je l’ai rendu compatible avec l’outil LEDMatrix que j’ai développé et que j’ai un peu décrit ici (en tout cas pour sa partie afficheur LED).
Ce que le serveur fait dépend vraiment de ce que l’on souhaite… A l’heure actuelle j’ai implémenté plusieurs modes permettant de:
- Piloter certaines lampes de ma maison
- Jouer à des jeux que j’ai implémentés
- Trouver la touche secrète, style trouver un nombre entre 1 et 1000 et le clavier allume une touche pour dire si la touche secrète est plus en haut/bas et droite/gauche
- Un sudoku
- Un puissance 4
L’avantage de ce système et que l’ajout de fonctionnalités se fait extrêmement facilement.
Résultats

Trouver la touche secrète

Puissance 4

Sudoku
Bug
A l’heure actuelle j’ai un bug quand on appuie sur le bouton 0x18
, il arrive par moment (assez rarement quand même) que le clavier envoie l’information comme quoi les boutons 0x0, 0x8, 0x10 et 0x18 ont tous été appuyés. A l’heure actuelle, je ne sais pas si c’est un problème hardware, ou un problème du driver du clavier.