Warning: this topic has not been posted in for at least 120 days.
Unless you're sure you want to reply, please consider starting a new topic.
Oui oui gnagna. Bref.
Vous connaissez les claviers méca ? Vous connaissez les claviers ergos ? Vous connaissez les dispositions ergo comme le bépo ou le colemak ? C'est super pour l'efficacité, pour une meilleure posture et fortement réduire les risques type syndrôme du canal carpien.
Le problème, c'est que tout ça côute très cher, et que ça bouscule tellement les habitudes que je ne savais même pas avant de me lancer si je supporterais. Mais, avec l'âge, les problèmes de dos et parfois des douleurs aux mains, il fallait que j'essaie.
Et si, avec une imprimante 3D, on faisait tout ça en même temps en minimisant le coût ?
Etape 1 : Concevoir un boîtier ergonomique adapté à mes mains On mesure, on designe sur TinkerCAD, on imprime des prototypes jusqu'à obtenir un résultat satisfaisant. Rien d'excessivement complexe mais il m'a fallu quand même quelques itérations.
Le premier prototype faisait 5 colonnes et 4 lignes par main. Assez proche au final d'un clavier classique.
Sauf que je me suis vite rendu compte qu'une ligne (tout en haut ou tout en bas) serait techniquement inaccessible en frappe à l'aveugle. Il fallait donc limiter beaucoup plus les mouvements de doigts et revenir à 3 lignes maximum. Une 6e colonne a été rajoutée au centre pour l'index.
Etape 2 : Concevoir une disposition ergonomique adaptée à la disposition physique choisieA la base, il y a plusieurs années, j'ai voulu apprendre le bépo. Sauf que le bépo, ça nécessite un clavier complet, et que j'ai moitié moins de touches à disposition. Il va falloir faire des compromis. La force du bépo, c'est d'exposer tous les caractères accentués directement. Sauf que la plupart de ces caractères servent les années bissextiles. La force d'un clavier ergo, c'est d'avoir des layers, des coucles interchangeables pour modifier le comportement d'une touche physique. Donc en se basant sur la fréquence d'apparition des caractères français et anglais, on peut déterminer lesquels sont utiles au quotidien, et lesquels peuvent être planqués derrière un layer.
Reste à déterminer où mettre les caractères ayant le privilège d'apparaître sur le layer principal. Je suis parti du bépo, j'ai décidé de garder A, Z, X, C et V près du CTRL pour la facilité des raccourcis les plus communs, et les autres touches ont été positionnées en fonction de leur fréquence. Plus elle est forte, plus elles sont proches du centre et plus elle est faible, plus elles sont reléguées dans les coins extérieurs. Le layer d'accents fait apparaître les lettres accentuées les plus communes directement sous la lettre non-accentuée correspondante (à part é et à qui sont sur le layer principal), et la deuxième plus commune, si elle existe, est sur une touche adjacente. Les trémas sont sur la main droite, en miroir. Quelques trucs fun ont été rajoutés aussi, notamment les ligatures æ et œ qui n'existent pas sur un clavier azerty, quelques caractères pour d'autres langues européennes etc.
Etape 3 : Soudure et assemblageLa partie chiante pour ceux qui comme moi, n'ont pas le bon matos... Au moins, ça marche.
Le câblage est fait selon le principe d'une matrice. Chaque touche a une patte reliée à une ligne via une diode, et l'autre patte à une colonne. chaque ligne et chaque colonne est reliée à une entrée distincte sur le microcontrôleur. Le firmware du microcontrôleur se chargera de déterminer quelle(s) touche(s) sont pressées à un instant donné et d'envoyer le bon code au PC via le câble USB.
Etape 4 : Programmer le microcontrôleurPour le microcontrôleur, il y a plein d'options possibles avec
le firmware open-source QMK. J'ai choisi un Teensy 2.0 parce que c'est pas cher sur Aliexpress et très communément utilisé pour ce genre d'application. Programmer le MC est aussi "simple" que de créer un nouveau projet dans QMK, déclarer les pins de chaque ligne et chaque colonne, et déclarer la matrice des touches.
Et après, le fun peut commencer.
Le firmware est globalement programmé en 5 layers :
- le layer principal avec les lettres, les ponctuations les plus fréquentes et les modificateurs usuels
- un layer pour les caractères accentués, tel que discuté au paragraphe 2
- un layer de dev, contenant tous les caractères spéciaux utiles pour la programmation
- un layer "pavé numérique"
- un layer fonctions pour les touches F1-F12, les contrôles de médias, les touches de navigation etc.
Contrairement à mes précédents projets méca, j'ai dû utiliser pas mal de hacks et contournements afin d'obtenir le résultat que je voulais. Par exemple, la moitié des touches sous les pouces sont des Layer-Tap. Si je tape la touche à la gauche de la touche espace, ça fait un point. Si je la maintiens, je rentre dans le layer d'accents jusqu'à ce que je la relâche. Une touche me permet de taper ', mais Maj-' ne fait pas 4 mais ". De même, ? est disponible directement, mais Maj-? fait !.
Pour les caractères accentués, tous les circonflexes et trémas se font en tapant ^ puis la lettre ou ¨ puis la lettre. Il faut donc que quand on veut taper "ê", le clavier envoie directement la chaîne de caractères "^e". C'est du C. C'est brutal. Mais ça marche. On peut même envoyer les Alt-Codes pour les ligatures.
Etape 5 : En chier sa mère C'est là où j'en suis pour l'instant. C'est CHAUD. Après avoir passé des jours à n'absolument pas progresser sur cette daube de keybr.com, j'ai fini par suivre les conseils d'un camarade Lemmyste et d'abandonner cet outil au profit de Monkeytype. Pour l'instant, j'en suis à péniblement à 16WPM, contre 50 en azerty. Chaque phrase est une lutte acharnée. Mais je progresse.