Partage
  • Partager sur Facebook
  • Partager sur Twitter

[arduino] Créer une nouvelle touche clavier

    3 octobre 2020 à 11:31:32

    Hello a tous,

    Je souhaite utiliser un arduino pour me créer un 2e clavier (pour des raccourcis en somme)

    J'utilise 12 touches avec, de F13 à F24. Le bémol c'est que en fonction des softs ca ne marche pas toujours

    ex: - pour macro voicemod ca marche nickel

         - pour macro OBS studio ca plante ou ne marche pas.

    Je voudrais CREER une touche (genre une touche A1) reconnue par windows comme une touche clavier mais non existante sur les claviers actuels. Comme ca aucune chance d'erreur sur un soft quelconque. les claviers gamers ont bien des touches macro mais je cherche une touche unique et non un raccourcis macro. Bref je veux créer mes 12 nouvelles touche de A1 à A12 qu'elle soient reconnue par le PC et surtout comme touche clavier pour s'adapter à tout mes softs selon mes besoins

    merci de vos réponses

    • Partager sur Facebook
    • Partager sur Twitter
      5 octobre 2020 à 4:53:23

      Hello

      Astorath a écrit:

      Je voudrais CREER une touche (genre une touche A1) reconnue par windows comme une touche clavier mais non existante sur les claviers actuels. Comme ca aucune chance d'erreur sur un soft quelconque.

      Je ne suis pas certain que ça fonctionnera dans tout les cas. Cela dépendra beaucoup de la façon dont le logiciel a été code.

      Sinon pour quand même essayer de répondre a ta question je ne sais pas vraiment comment faire mais je te conseille d'aller voir du cote de QMK... Tu trouvera peut être ton bonheur soit dans la doc soit dans le code ou les dépendances... Par contre je te préviens c'est assez mastoc.

      Bon courage.

      Edit : Pour QMK tu peux regarder ici

      -
      Edité par Elried 5 octobre 2020 à 7:14:56

      • Partager sur Facebook
      • Partager sur Twitter
        5 octobre 2020 à 12:19:26

        C'est pour quel OS ?

        -
        Edité par bacelar 5 octobre 2020 à 15:44:33

        • Partager sur Facebook
        • Partager sur Twitter
        Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.
          5 octobre 2020 à 13:20:29

          Merci @Elried je vais voir ca mais ça m'intéresse fort !

          Je code tout ça sous arduino avec la librairie keyboard.h pour windows, mais si besoin je code en C++ mes fonctions a bas niveau si elle sont pas native arduino.

          Mon interface de 60btn (matrice 10x6) fonctionne nickel mais pour chaque ligne c'est compliqué car avec les key_modifier ca fout un peu des erreurs (le ALT qui déconne, le CTRL SHIFT de mal reconnu avec un F20).

          Bref utiliser les touches de F13 à F24 c'est pas la bonne idée en vrai car pas mal de soft les utilisent mais de manière cachée (genre OBS STUDIO) mais ayant 60 boutons a adresser je sais pas trop comment faire d'autre

          Rappel du but: le bouton = touche émulé pour servir de raccourcis dans n'importe quel soft 

          ex: btn1 = A1, affichage du raccourcis sur le soft : affichage/cache camera 3: A1

          • Partager sur Facebook
          • Partager sur Twitter
            6 octobre 2020 à 2:27:41

            60 touches pour un clavier de raccourcis? Oo
            Tu utilise quel soft? ^^
            • Partager sur Facebook
            • Partager sur Twitter
              6 octobre 2020 à 4:03:46

              En général, quand je suis en manque de raccourcie, je les map sur des caractères unicode ce qui débloque magiquement plusieurs centaines de possibilités (altgr combiné à ctrl/alt/maj (sur linux, ctrl+alt est dissocié d’altgr). Si les logiciels n'ont pas forcément besoin de ctrl pour déclencher un raccourci, cela peut-être une piste, car il me semble que sur windows, ctrl est incompatible avec les caractères unicode. mais à vérifier. À voir aussi si les logiciels le supportent bien.

              À titre informatif, sur mon linux, j'ai essayé d'autre modifier comme Switch_Mode ou Hyper, mais soit c'est mal reconnu par certains logiciels, soit je perds des combinaisons. Exemple: Switch_Mode n'est pas compatible avec ctrl, du coup, si je configure Switch_Mode+w =↑, alors ctrl+Switch_Mode+w donne ctrl+w ce qui n'est malheureusement pas le comportement attendu. Peut-être existe-t-il un modificateur équivalent sur Windows avec moins de problème ?

              Sinon, quel est le problème est les raccourcies macros ? Je n'en ai jamais utilisé, alors je vais peut-être dire une connerie, mais pour moi, cela simule une séquence de touche comme ctrl+a ou plus complexe. C'est probablement ce qui cause le moins d'emmerde, car les raccourcies reste tout à fait standard. En plus, si le soft gère lui-même des raccourcies de séquence, ils peuvent tous être mappés sur un même début est ne pas rentrer en conflit avec ceux habituellement utilisés (ex: ctrl+@, a ; ctrl+@, ctrl+b, etc).

              • Partager sur Facebook
              • Partager sur Twitter
                6 octobre 2020 à 13:19:00

                Elried a écrit:

                60 touches pour un clavier de raccourcis? Oo
                Tu utilise quel soft? ^^


                En soft pour coder : Arduino (oui je sais)

                En soft pour mes raccourcis: j'ai pas de limite du moment que je peux inclure un raccourcis

                Liste de soft actuelle non exhaustive : OBS studio, Voicemod, Discord, plusieurs jeux sur Stream, Audacity et c'est déjà pas mal

                jo_link_noir a écrit:

                En général, quand je suis en manque de raccourcie, je les map sur des caractères unicode ce qui débloque magiquement plusieurs centaines de possibilités (altgr combiné à ctrl/alt/maj (sur linux, ctrl+alt est dissocié d’altgr). Si les logiciels n'ont pas forcément besoin de ctrl pour déclencher un raccourci, cela peut-être une piste, car il me semble que sur windows, ctrl est incompatible avec les caractères unicode. mais à vérifier. À voir aussi si les logiciels le supportent bien.

                À titre informatif, sur mon linux, j'ai essayé d'autre modifier comme Switch_Mode ou Hyper, mais soit c'est mal reconnu par certains logiciels, soit je perds des combinaisons. Exemple: Switch_Mode n'est pas compatible avec ctrl, du coup, si je configure Switch_Mode+w =↑, alors ctrl+Switch_Mode+w donne ctrl+w ce qui n'est malheureusement pas le comportement attendu. Peut-être existe-t-il un modificateur équivalent sur Windows avec moins de problème ?

                Sinon, quel est le problème est les raccourcies macros ? Je n'en ai jamais utilisé, alors je vais peut-être dire une connerie, mais pour moi, cela simule une séquence de touche comme ctrl+a ou plus complexe. C'est probablement ce qui cause le moins d'emmerde, car les raccourcies reste tout à fait standard. En plus, si le soft gère lui-même des raccourcies de séquence, ils peuvent tous être mappés sur un même début est ne pas rentrer en conflit avec ceux habituellement utilisés (ex: ctrl+@, a ; ctrl+@, ctrl+b, etc).


                Actuellement j'utilise de F13 à F22 car 10 colonnes en 6 lignes donc chaque ligne a son key_modifier

                L1: rien

                L2: shift

                L3: ctrl

                L4: shift ctrl

                L5: alt 

                L6: alt ctrl

                Mais bon c'est pas fou suivant les softs, ton idée me parais bien faut juste que je vois les macro absolument jamais utilisés.

                De F13 a F22 pour moi c'était simple car après je les avais dans l'ordre sur ma box. Pour ca que je voulais "créer" une touche virtuelle avec son nom propre genre toto1 à toto10 ou mieux jusqu'à toto60

                Vla un morceau de mon code, c'est pas le code complet hein c'est juste pour illustrer avec les morceaux qui sont intéréssant:

                byte keys[lignes][colonnes] =
                {
                  {0, 1, 2, 3, 4, 5, 6, 7, 8, 9},
                  {10, 11, 12, 13, 14, 15, 16, 17, 18, 19},
                  {20, 21, 22, 23, 24, 25, 26, 27, 28, 29},
                  {30, 31, 32, 33, 34, 35, 36, 37, 38, 39},
                  {40, 41, 42, 43, 44, 45, 46, 47, 48, 49},
                  {50, 51, 52, 53, 54, 55, 56, 57, 58, 59}
                };
                
                ================================================
                
                uint8_t toucheF = 0; // mise à 0 de la variable correspondant à la touche appuyée (F13-F24)
                  switch (data)
                  {
                    case 0 ... 9:
                      toucheF = data + 240; //240 correspond à F13 en scancode pour un clavier azerty
                      break;
                
                    case 10 ... 19:
                      Keyboard.press(KEY_RIGHT_SHIFT);
                      delay(waitTime);
                      toucheF = data + 230; //240-10 = 230 car 2e ligne donc démarrage à 10
                      break;
                
                    case 20 ... 29:
                      Keyboard.press(KEY_RIGHT_CTRL);
                      delay(waitTime);
                      toucheF = data + 220; //240-20 = 220 car 2e ligne donc démarrage à 20
                      break;
                
                    case 30 ... 39:
                      Keyboard.press(KEY_RIGHT_CTRL);
                      delay(waitTime);
                      Keyboard.press(KEY_RIGHT_SHIFT);
                      delay(waitTime);
                      toucheF = data + 210; //240-10 = 210 car 2e ligne donc démarrage à 30
                      break;
                
                    case 40 ... 49:
                      Keyboard.press(KEY_LEFT_ALT);
                      delay(waitTime);
                      toucheF = data + 200; //240-40 = 200 car 2e ligne donc démarrage à 40
                      break;
                
                    case 50 ... 59:
                      Keyboard.press(KEY_RIGHT_CTRL);
                      delay(waitTime);
                      Keyboard.press(KEY_LEFT_ALT);
                      delay(waitTime);
                      toucheF = data + 190; //240-50 = 190 car 2e ligne donc démarrage à 50
                      break;
                  }
                
                  delay(waitTime);
                  Keyboard.press(toucheF); // appui sur la touche Fxx définie par le switch case en fonction de la matrice
                  delay(waitTime);
                  Keyboard.release(toucheF); // relache la touche Fxx définie par le switch case en fonction de la matrice
                }



                • Partager sur Facebook
                • Partager sur Twitter
                  9 octobre 2020 à 13:05:06

                  petit up je suis toujours a la recherche d'une solution
                  • Partager sur Facebook
                  • Partager sur Twitter
                    27 octobre 2020 à 19:06:10

                    Bonjour je suis toujours à la recherche de ma solution

                    J'ai cherché sur nombre de sites mais aucun ne fait état de créer de nouvelles touche (ex F25-F36)

                    Help !
                    • Partager sur Facebook
                    • Partager sur Twitter

                    [arduino] Créer une nouvelle touche clavier

                    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                    • Editeur
                    • Markdown