Discussion utilisateur:Jeff/atelier clavier

De Disposition de clavier bépo

liens cassés

Salut Jeff, excellente initiative ! Peux-tu éditer les liens URL qui sont passés à la moulinette ? Je vais essayer de commencer mais je risque de ne pas tous les retrouver. XavierC 2 mars 2013 à 05:21 (UTC)

J'ai fait ça un peu vite hier, je vais être plus attentif lors des copie de liens en provenance du forum. Jeff

Orientations générales

Pour l'instant je ne mets pas de liens commerciaux (retirer temporairement la référence à Thomann même si c'est un très bon site). Attendre l'utilisation qui sera faite de cette page et d'éventuels partenariats d'Ergodis. Certaines références sont a priori incontournables mais c'est trop subjectif. Est-ce que les groupes d'achat DT et GH entrent dans cette catégorie ?

Rapidement, non. On peut considérer les groupes d'achat comme non-commerciaux, par contre les boutiques comme celle de 7bit ne sont pas des événements ponctuels et il prend une marge, ce que l'organisateur d'un achat groupé ne fait pas (éventuellement un avantage en nature ou un don matériel des participants) XavierC 4 mars 2013 à 11:53 (UTC)
Aussi, peut-on considérer que promouvoir Teensy par rapport aux autres cartes μcontroleurs n'est pas en soi une forme de publicité ? On est forcément subjectif. XavierC 4 mars 2013 à 11:58 (UTC)


notes Jeff

Il faudra peut être envisager de faire plusieurs pages.

Construire un clavier, continuité du travail sur les dispositions. Difficulté de l'adaptation des disposition aux claviers spéciaux. Comment adapter les algorithmes d'optimisation des dispositions aux claviers spéciaux

autres exemples

Un mot sur le crowfunding ? pas convaincu du besoin.

envisager des dessins pour les différentes formes de clavier, (à la main ou autre si temps dispo)

Mettre qq liens pour la programmation Teensy, https://github.com/tmk/tmk_keyboard https://github.com/Bigot/cladeon

note sur les temps de rafraichissement Pour les claviers en plusieurs partie : PS2 ou I2C

faire un premier jet d'intégration de photos, plutôt petites pour ne pas surcharger la page.

http://geekhack.org/index.php?topic=40754.0


Points à préciser suite question sur le forum :

  • présentation TMK
  • exemples codes cladeon pour gestion des touches, scan, progmem, macro...
  • schéma de la touche à la prise USB, exemple de composants
  • différence teensy teensy++
  • dans quels cas faire appel à des registres à décalages ou à des extensions de ports I2C
  • présentation des bibliothèques teensy
  • prise en compte du problème des rebonds (jamais constatés avec des MX Cherry black mais autant prévoir)
  • gestion des accords clavier

Faire une page dédiée à l'utilisation des teensy ?


http://deskthority.net/workshop-f7/a-reduced-matrix-layout-for-ergodox-kinesis-maltron-etc-t4820.html ergodox reduit jesse



Bonjour

zanobox :

J'utilise l'environnement arduino pour programmer le teensy. Quand on paramètre l'environnement pour utiliser le teensy comme clavier ("outil/Board teensy" et "outil/USB Type keyboard") le préprocesseur C utilise le fichier «.../arduino-1.0.1-windows\arduino-1.0.1\hardware\teensy\cores\teensy/keylayouts.h» qui contient attribue un nom compréhensible aux codes binaires que le clavier doit transmettre à l'ordinateur :

   #define MODIFIERKEY_CTRL        ( 0x01 | 0x8000 )
   #define MODIFIERKEY_SHIFT       ( 0x02 | 0x8000 )
   #define MODIFIERKEY_ALT         ( 0x04 | 0x8000 )
   #define MODIFIERKEY_GUI         ( 0x08 | 0x8000 )
   #define MODIFIERKEY_LEFT_CTRL   ( 0x01 | 0x8000 )

et

   #define KEY_A           ( 4   | 0x4000 )
   #define KEY_B           ( 5   | 0x4000 )
   #define KEY_C           ( 6   | 0x4000 )
   #define KEY_D           ( 7   | 0x4000 )
   #define KEY_E           ( 8   | 0x4000 )

Dès que le préprocesseur voit le texte KEY_A dans le code du programme, il le remplace par 4.

Ce fichier contient également des codes fonction du paramétrage de langue (outil/keyboard layout french)

Par exemple pour le français :

   #define ASCII_41    KEY_Q + SHIFT_MASK            // 65 A
   #define ASCII_42    KEY_B + SHIFT_MASK            // 66 B
   #define ASCII_43    KEY_C + SHIFT_MASK            // 67 C
   #define ASCII_44    KEY_D + SHIFT_MASK            // 68 D

On voit bien qu'un clavier Azerty envoi le code équivalent à un Q quand on appuie sur A.

Autant le lien nom de touche-code binaire m'intéressait pour que le programme soit lisible, autant la description du clavier français me paraissait limité. C'est donc une partie que j'ai un peu étendue.

TMK ne m'a pas l'air particulièrement limité au QWERTY, il «suffit» (pas essayé) de bien renseigner le fichier keymapXX.h avec des codes adaptés à ce que tu veux.

Pour faire un peu violent, à la place de

   static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
       /* 0: qwerty */
       KEYMAP_ISO(\
           A, B, C, D, E, F.....

tu fais un truc du genre

   static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
       /* 0: monmien1 */
       KEYMAP_ISO(\
           TOTO0, TOTO1, TOTO2, TOTO3, TOTO4, TOTO5.....\

En ayant défini préalablement TOTOX comme présenté dans common/keycode.h (voir la doc https://github.com/tmk/tmk_keyboard/blo … keymap.md). Je n'ai pas retrouvé le fichier où étaient définis les codes KC_A, il faut se promener dans les sources.

En espérant que ça réponde un peu à la question.