« Utilisateur:TWal/TWalErgo » : différence entre les versions
(Page créée avec « TWalErgo est un projet de clavier ergonomique initié par moi-même (TWal). =Le travail fait= Le clavier est sur github : [https://github.com/TWal/TWalErgo/blob/master/K... ») |
m (→Hardware) |
||
(Une version intermédiaire par le même utilisateur non affichée) | |||
Ligne 52 : | Ligne 52 : | ||
Le logo pourrait donc être un miroir avec à l'intérieur un pied de poule (qui possède un ergot) : simple et percutant (du fait de son étrangeté). | Le logo pourrait donc être un miroir avec à l'intérieur un pied de poule (qui possède un ergot) : simple et percutant (du fait de son étrangeté). | ||
=La fabrication= | |||
==Hardware== | |||
Le hardware sera composé des composants suivants : | |||
* 62 Keyswitches (des Cherry MX Brown, ou autre) | |||
* 62 [http://fr.mouser.com/ProductDetail/Fairchild-Semiconductor/1N4148TR/?qs=sGAEpiMZZMudZehw8RjeZQwvkgSNJ%252b%2f0 diodes] (pour l'anti-ghosting) | |||
* 2 [http://fr.mouser.com/ProductDetail/NXP-Semiconductors/NPIC6C595BQ-Q100/?qs=sGAEpiMZZMuyBeSSR239IXZObd7RLf0jtz0ZuPbjjRE%3d registres à décalage] | |||
* 1 Arduino Leonardo | |||
* Et un PCB pour relier tout ça | |||
Le circuit est comme celui ici : http://www.dribin.org/dave/keyboard/one_html/ | |||
Je change de colonne avec le registre à décalage, dans un objectif de réduction de pins (sachant que je peux controler les deux registres à décalage avec le même fil). | |||
Il y a un registe à décalage par partie du clavier. | |||
==Software== | |||
Il y a un tableau stockant les appuis courant du clavier : un tableau d'autant d'octets qu'il y a de colonnes. On stocke chaque touche de la colonne dans les bits de l'octet. | |||
À chaque boucle, on créé deux nouveaux tableaux de ce type : le tableau des nouveaux appuis, et le tableau des relachements. On les rempli, en scannant chaque colonne, avec des opérations bit à bit très rapide. | |||
Ensuite, on parcourt le tableau des relachements, et on l'envoie à l'ordinateur. Même chose pour le tableau des nouveaux appuis. | |||
Si la touche Fn est appuyée ou relachée, on relache toutes les autres touches non modificatrices. | |||
Le reste devrait être plutôt standard (tableau qui stocke les keycodes à envoyer, etc). | |||
Il faut faire de la manipulation de ports, et ne pas utiliser digitalRead, digitalWrite, dans un but d'efficacité. | |||
=Participez != | =Participez != | ||
Un [http://forum.bepo.fr/viewtopic.php?id=775 thread sur le forum bépo] est ouvert pour permettre de discuter du clavier. | Un [http://forum.bepo.fr/viewtopic.php?id=775 thread sur le forum bépo] est ouvert pour permettre de discuter du clavier. |
Dernière version du 5 mars 2013 à 14:44
TWalErgo est un projet de clavier ergonomique initié par moi-même (TWal).
Le travail fait
Le clavier est sur github : l'emplacement des touches et la forme du clavier.
Emplacement des touches
Dans le placement des touches, j'ai essayé de suivre les principes ci-dessous.
Réduction de l'utilisation des petits-doigts
Les petits-doigts sont sur-utilisés sur les claviers standards : shift, controle, entrée, effacer, échap, tab, etc. Il faut essayer de changer ça, car les petits-doigts sont faibles.
Augmentation de l'utilisation des pouces
Les pouces sont sous-utilisés : ils s'occupe presque uniquement d'espace. Il faut essayer de changer ça, car le pouce est un doigt fort.
Chaque touche doit être accessible
Sur les claviers standards, certaines touches ne sont pas très accessibles : controle, shift, échap, etc. Il faut changer ça, pour minimiser les déplacements de la rangée de repos.
Réduction du nombre de touche
La réduction du nombre de touche est important, afin de réduire les coûts, et de respecter le principe ci-dessus.
Mais il faut faire attention à ne pas trop impacter l'usage du clavier. Par exemple, il ne faut pas faire comme les claviers ci-dessous, qui enlèvent des touches pour les mettre avec une touche modificatrice :
Clavier gênant en bépo, puisque z, w, m, ç passent en touche modificatrice
Clavier qui passe toute la rangée des chiffres sous touche modificatrice, alors qu'elle est très utilisée en azerty
Être multi-disposition
Les changements faits au clavier doivent faire en sorte que chaque disposition reste logique. Par exemple, il faut faire en sorte de conserver "(" plus à gauche que ")". Idem pour [, ], {, }.
Forme du clavier
Le clavier aura ses colonnes décalées, afin de correspondre à la longueur des doigts. Les touches du pouce seront en arc de cercles, afin d'être accessibles facilement.
Nom du clavier
J'ai choisi "TWalErgo", car je suis TWal, et que c'est un clavier ergonomique.
Ce nom a l'avantage d'avoir un jeu de mot : "Toi, l'ergot"
Le logo pourrait donc être un miroir avec à l'intérieur un pied de poule (qui possède un ergot) : simple et percutant (du fait de son étrangeté).
La fabrication
Hardware
Le hardware sera composé des composants suivants :
- 62 Keyswitches (des Cherry MX Brown, ou autre)
- 62 diodes (pour l'anti-ghosting)
- 2 registres à décalage
- 1 Arduino Leonardo
- Et un PCB pour relier tout ça
Le circuit est comme celui ici : http://www.dribin.org/dave/keyboard/one_html/
Je change de colonne avec le registre à décalage, dans un objectif de réduction de pins (sachant que je peux controler les deux registres à décalage avec le même fil).
Il y a un registe à décalage par partie du clavier.
Software
Il y a un tableau stockant les appuis courant du clavier : un tableau d'autant d'octets qu'il y a de colonnes. On stocke chaque touche de la colonne dans les bits de l'octet.
À chaque boucle, on créé deux nouveaux tableaux de ce type : le tableau des nouveaux appuis, et le tableau des relachements. On les rempli, en scannant chaque colonne, avec des opérations bit à bit très rapide.
Ensuite, on parcourt le tableau des relachements, et on l'envoie à l'ordinateur. Même chose pour le tableau des nouveaux appuis.
Si la touche Fn est appuyée ou relachée, on relache toutes les autres touches non modificatrices.
Le reste devrait être plutôt standard (tableau qui stocke les keycodes à envoyer, etc).
Il faut faire de la manipulation de ports, et ne pas utiliser digitalRead, digitalWrite, dans un but d'efficacité.
Participez !
Un thread sur le forum bépo est ouvert pour permettre de discuter du clavier.