Concevoir un clavier : Le microcontrôleur
Retour vers Concevoir un clavier
Généralités
Le bloc processeur peut se décomposer en trois parties :
- la partie détection, l'interface avec la matrice pour identifier les touches appuyées ;
- la partie traitement qui traduit les appuis en fonctions ;
- la partie transmission qui transmets la fonction sous une forme compatible avec l'ordinateur.
TODO images exemples
En fonction de la forme du clavier, des capacités du microcontroleur, des choix de développements, ces trois parties peuvent être réalisées par une seule puce ou par des circuits distincts.
Pour un clavier en plusieurs parties, afin de limiter les câblages, il peut être intéressant d'intégrer une part du traitement de détection dans chacune des parties du clavier (voir I2C).
Si le contrôleur choisi n'a pas de capacité native I2C et un nombre limité de ports, l'utilisation de registre à décalage pour la partie détection pourra être privilégiée.
Récupération
C'est la technique la plus simple pour débuter
Voir la page «récupération». Il est possible de récupérer le circuit d'un vieux clavier, soit directement un circuit USB (le plus facile, la puce fait alors la détection, le traitement et la transmission), soit un circuit PS2 qui ne fera que la partie détection, le traitement et la transmission étant alors réalisés par un microcontroleur (voir le paragraphe Lecture_PS2).
Dans les deux cas, la logique est similaire, il s'agit de substituer la matrice d'origine par un câblage répondant à notre besoin. La photo de droite montre quelques exemples de puces PS2. Les plus anciennes, celles comportant des puces au format DIP comme à droite, sont les plus facile à réutiliser.
- Si la structure globale du clavier est conservée, c'est à dire qu'il y a juste quelques touches à déplacer, un pontage direct peut être fait sur la matrice. On peut ainsi simplement permuter les touches «verrouillage majuscule» et «retour arrière».
- Si tout le clavier est refait, il faut constituer un tableau qui identifie pour chaque couple de pinoches du circuit le code de caractère émis. Lorsque la matrice adaptée est crée, il n'y a plus qu'à la connecter au circuit en respectant le tableau. (voir Atelier_pieces#puce)
Cette technique permet, par exemple, de faire très simplement un clavier bluetooth. Elle peut éviter d'avoir à programmer un microcontroleur pour ceux que la programmation rebute. Sauf à mettre de la logique entre la puce récupérée et l'ordinateur (voir ci-dessous) cette technique est cependant un peu limitée ; la logique du clavier d'origine est en effet conservée et il est rarement possible d'ajouter des touches.
microcontroleur / Platine de développement avec capacité HID
- Teensy
- Arduino Leonardo ou clone
- stellaris launchpad. Pas encore testé
- microcontroleur
- autres exemples de solution controllers et Chameleon
Pour une utilisation dans un environnement informatique courant, il y a deux modes de connexion entre le clavier et l'ordinateur, l'USB/HID et le bluetooth. Utiliser un microcontroleur utilisant directement l'un de ces deux standards permet de faciliter le développement. La connexion via USB/HID est relativement fréquente (teensy), la capacité bluetooth impose généralement l'ajout de composants complémentaires (voir plus bas).
Les outils de programmation des processeurs embarqués se sont beaucoup démocratisés, en particulier dans la lignée des outils Wiring et Arduino. Les compétences nécessaires sont maintenant relativement aisées à acquérir, même pour des non-informaticiens, et beaucoup d'exemples sont disponibles sur internet.
Une solution de facilité est l'utilisation du teensy2++ qui permet d'éviter de se poser des questions, cette platine est suffisamment complète pour couvrir la majorité des besoins (sauf bluetooth).
- Arduino :
- pour : relativement répandu, environnement de développement
- contre : cout, encombrement et seul Leonardo a une capacité native USB/HID
=> s'orienter vers un clone ?
- Teensy
- pour : support natif USB/HID, compatibilité Arduino, taille réduite
- contre : peu disponible en france, coût relativement élevé et aucun modèle ne propose de trous pour des vis/boulons de montage (tient uniquement par ses soudures à un circuit imprimé)
- 2.0, 2.0++, 3.0 ? fonction du besoin. 2.0++ est un bon compromis, cependant un peu plus grand que la 2.0. Si la question de la taille n'est pas critique c'est la solution à privilégier.
- Stellaris launchpad
- pour : coût
- contre : taille, Pas encore d'exemple disponible, environnement de développement
- Microcontroleur seul
- pour : coût
- contre : il faut des compétences électroniques pour l'intégrer à un circuit et bien souvent ce sont des composants de surface assez délicats à souder.
Éléments complémentaires
- extension IO sur I2C (MCP23008, MCP23017)
- registres à décalage
- module bluetooth