IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Arduino Discussion :

Simulation de frappe au clavier.


Sujet :

Arduino

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2023
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2023
    Messages : 13
    Points : 8
    Points
    8
    Par défaut Simulation de frappe au clavier.
    Bonjour,
    J'essai depuis un certain temps de simuler des frappes au clavier à travers un keypad analogique à 16 touche branché sur une carte Arduino micro.
    Petite précision : il s'agit d'un clavier AZERTY avec pavé numérique.
    J'arrive très bien à simuler la frappe des touche tel que F1, F2 etc. par contre je ne parviens pas à simuler la frappe sur la pavé numérique.
    J'ai bien inséré la ligne #include <Keyboard.h> dans mon programme.
    Pour les touche F1, F2 etc. j'utilise le code ci-dessous :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
        //Détermination du bouton du Keypad qui est lu
        if ((value >= 1019) and (value <= 1023)) { // Test bouton 1
        Keyboard.press(KEY_F1); // touche F1 pressée au clavier
        Keyboard.release(KEY_F1); // touche F1 relachée
        delay(1000); // Délai pour éviter les envois répétés
     
       }else if ((value >= 928) and (value <= 932)) { // Test bouton 2
        Keyboard.press(KEY_F2); // Touche F2 pressée au clavier
       Keyboard.release(KEY_F2); touche F2 relachée
        delay(1000); // Délai pour éviter les envois répétés
    Pour les touche du pavé numérique, j'utilise le code ci-dessous :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
       }else if ((value >= 675) and (value <= 680)) { // Test bouton 5
         Keyboard.press(NUMPAD_1); // Touche 1 du pavé numérique pressée au clavier
         Keyboard.release(NUMPAD_1);
        delay(1000); // Délai pour éviter les envois répétés
    Le programme me renvoie l'erreur suivante que je ne parviens pas à résoudre :
    exit status 1
    'NUMPAD_1' was not declared in this scope.
    Quelqu'un peut'il me conseiller.
    Merci

  2. #2
    Membre expérimenté Avatar de edgarjacobs
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2011
    Messages
    667
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2011
    Messages : 667
    Points : 1 696
    Points
    1 696
    Par défaut
    Hello,

    Le message est clair: NUMPAD_1 est inconnu.

    Si tu utilises cette version de keyboard.h, il faut utiliser KEY_KP_1 à la place de NUMPAD_1. Et si la version de keyboard.h n'est pas celle que j'indique, stp donne un lien vers la version que tu utilises.
    On écrit "J'ai tort" ; "tord" est la conjugaison du verbre "tordre" à la 3ème personne de l'indicatif présent

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2023
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2023
    Messages : 13
    Points : 8
    Points
    8
    Par défaut Simulation de frappe au clavier.
    Merci pour cette réponse.
    J'ai testé le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    }else if ((value >= 675) and (value <= 680)) { // Test bouton 5
         Keyboard.press(KEY_KP_1); // Touche 1 du pavé numérique pressée au clavier
         Keyboard.release(KEY_KP_1);
        delay(1000); // Délai pour éviter les envois répétés
    Même erreur :
    exit status 1
    'KEY_KP_1' was not declared in this scope
    Je ne dois pas avoir la bonne bibliothèque, mais où trouver la bonne ?
    Comment récupérer la bibli dont tu donnes le lien ?

  4. #4
    Membre expérimenté Avatar de edgarjacobs
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2011
    Messages
    667
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2011
    Messages : 667
    Points : 1 696
    Points
    1 696
    Par défaut
    Je suis plutôt débutant en embarqués, mais quelle est la référence du clavier connecté à la carte arduino ? (tu peux aussi joindre une image/photo).
    Qu'emploies-tu pour écrire, compiler et téléverser le code ?
    On écrit "J'ai tort" ; "tord" est la conjugaison du verbre "tordre" à la 3ème personne de l'indicatif présent

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2023
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2023
    Messages : 13
    Points : 8
    Points
    8
    Par défaut
    Le problème n'est pas le keypad (c'est un RobotDyn 4x4), mais la bibliothèque Keyboard.
    Le lien que tu m'as donné plus haut montre clairement que je n'ai pas la bonne version.
    Hélas je ne sais pas comment procéder pour acquérir la bonne à travers ce lien.
    Nom : Keypad.PNG
Affichages : 71
Taille : 144,9 Ko

  6. #6
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 316
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 316
    Points : 52 948
    Points
    52 948
    Par défaut
    Montre nous un programme complet minimale qui reproduit l'erreur
    Ingénieur indépendant en mécatronique - Conseil, conception et formation
    • Conception mécanique (Autodesk Fusion 360)
    • Impression 3D (Ultimaker)
    • Développement informatique (Python, MATLAB, C)
    • Programmation de microcontrôleur (Microchip PIC, ESP32, Raspberry Pi, Arduino…)

    « J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)

  7. #7
    Expert confirmé

    Homme Profil pro
    mad scientist :)
    Inscrit en
    Septembre 2019
    Messages
    2 817
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : mad scientist :)

    Informations forums :
    Inscription : Septembre 2019
    Messages : 2 817
    Points : 5 674
    Points
    5 674
    Par défaut
    comment avez vous installé la bibliothèque keyboard ?

  8. #8
    Futur Membre du Club
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2023
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2023
    Messages : 13
    Points : 8
    Points
    8
    Par défaut
    J'ai installer la bibli Keyboard à partir d'un fichier zip trouvé sur le net mais je ne me souviens pas ou.
    Ci dessous le code actuel. les 4 premier "if" fonctionnent très bien. C'est le dernier qui pose problème.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    #include <Keyboard.h>
     
    const int keypadPin = A0; // Remplacez A0 par la broche à laquelle votre keypad est connecté
     
    void setup() {
        Serial.begin(9600); // Initialisation de la communication série
        Keyboard.begin();
    }
    void loop() {
        // Lire la valeur analogique
        int value = analogRead(keypadPin);
     #define KEYPAD_1 1   
        // Afficher la valeur lue sur le moniteur série
       // Serial.print("Valeur lue : ");
        //Serial.println(value);
     
        //Détermination du bouton du Keypad qui est lu
        if ((value >= 1019) and (value <= 1023)) { // Test bouton 1
        Keyboard.press(KEY_F1); // touche F1 pressée au clavier
        Keyboard.release(KEY_F1); // touche F1 relachée
        delay(1000); // Délai pour éviter les envois répétés
     
       }else if ((value >= 928) and (value <= 932)) { // Test bouton 2
        Keyboard.press(KEY_F2); // Touche F2 pressée au clavier
       Keyboard.release(KEY_F2); //touche F2 relachée
        delay(1000); // Délai pour éviter les envois répétés
     
       }else if ((value >= 850) and (value <= 855)) { // Test bouton 3
        Keyboard.press(KEY_F3); // Touche F3 pressée au clavier
        Keyboard.release(KEY_F3);
        delay(1000); // Délai pour éviter les envois répétés
     
       }else if ((value >= 784) and (value <= 788)) { // Test bouton 4
        Keyboard.press(KEY_F4); // Touche F4 pressée au clavier
        Keyboard.release(KEY_F4);
        delay(1000); // Délai pour éviter les envois répétés
     
       }else if ((value >= 675) and (value <= 680)) { // Test bouton 5
         Keyboard.press(KEY_KP_1); // Touche 1 du pavé numérique pressée au clavier
         Keyboard.release(KEY_KP_1);
        delay(1000); // Délai pour éviter les envois répétés
       }
    }
    Je réitère malgré tout la question : comment installer la bibli Keyboard indiquée dans la 1ère réponse de ce post ?
    Autrement dit, comment remplacer la bibli existante par celle indiquée plus haut ?

  9. #9
    Futur Membre du Club
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2023
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2023
    Messages : 13
    Points : 8
    Points
    8
    Par défaut
    Ci joint le zip en question.
    Keyboard.rar

  10. #10
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 316
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 316
    Points : 52 948
    Points
    52 948
    Par défaut
    Ouvre le fichier Keyboard.h que tu nous as fourni et tu verras que ni NUMPAD_1, ni KEY_KP_1 ne sont définis.

    Pourquoi ne pas plutôt utiliser cette bibliothèque qui semble plus appropriée : AnalogKeypad ?
    Ingénieur indépendant en mécatronique - Conseil, conception et formation
    • Conception mécanique (Autodesk Fusion 360)
    • Impression 3D (Ultimaker)
    • Développement informatique (Python, MATLAB, C)
    • Programmation de microcontrôleur (Microchip PIC, ESP32, Raspberry Pi, Arduino…)

    « J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)

  11. #11
    Futur Membre du Club
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2023
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2023
    Messages : 13
    Points : 8
    Points
    8
    Par défaut
    cette bibliothèque concerne le Keypad analogique avec lequel je n'ai pas de problème.
    Mon souci provient de la bibli keyboard dan laquelle effectivement ni NUMPAD_1, ni KEY_KP_1 ne sont définis.
    C'est la raison pour laquelle e dernier "else if" ne fonctionne pas. Ou trouver une bibli Keyboard qui prend en compte le pavé numérique du clavier ?
    La bibli que j'ai postée est bien une bibli Keyboard et non une bibli Keypad.

  12. #12
    Futur Membre du Club
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2023
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2023
    Messages : 13
    Points : 8
    Points
    8
    Par défaut
    Citation Envoyé par edgarjacobs Voir le message
    Hello,

    Le message est clair: NUMPAD_1 est inconnu.

    Si tu utilises cette version de keyboard.h, il faut utiliser KEY_KP_1 à la place de NUMPAD_1. Et si la version de keyboard.h n'est pas celle que j'indique, stp donne un lien vers la version que tu utilises.
    Comment installer cette version de Keyboard.h ?

  13. #13
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    12 769
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 12 769
    Points : 58 100
    Points
    58 100
    Billets dans le blog
    42
    Par défaut
    Bonsoir,

    Vérifie dans le gestionnaire de bibliothèques de l'EDI Arduino (library manager) si la dernière version de la bibliothèque officielle Keyboard est installée (version 1.0.6 à ce jour).

    Voir Keyboard Modifiers and Special Keys pour la liste des touches.

  14. #14
    Futur Membre du Club
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2023
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2023
    Messages : 13
    Points : 8
    Points
    8
    Par défaut
    Citation Envoyé par f-leb Voir le message
    Bonsoir,

    Vérifie dans le gestionnaire de bibliothèques de l'EDI Arduino (library manager) si la dernière version de la bibliothèque officielle Keyboard est installée (version 1.0.6 à ce jour).

    Voir Keyboard Modifiers and Special Keys pour la liste des touches.
    Ben non, c'est la version 1.0.2.
    Mise à jour effectuée vers la version 1.0.6.
    A priori la compilation s'est effectuée correctement.
    Je vérifie si tout fonctionne et je vous tiens au courant.

  15. #15
    Futur Membre du Club
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2023
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2023
    Messages : 13
    Points : 8
    Points
    8
    Par défaut

    Bonjour,
    He bien après mise à jour de la bibli Keyboard, comme dit dans le post précèdent, mon code fonctionne et je vais pouvoir clore cette discussion.
    Une grand à tous les intervenants et je vous dis à bientôt pour d'autres conseils éventuels.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Simulation de frappe clavier avec Python 3.6
    Par azad2b dans le forum Général Python
    Réponses: 5
    Dernier message: 14/12/2021, 10h13
  2. [Debutant] Simuler une frappe clavier
    Par SofEvans dans le forum Langage
    Réponses: 3
    Dernier message: 11/07/2011, 10h02
  3. Simulation de frappe des lettres au clavier
    Par zed80 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 26/02/2009, 12h09
  4. Réponses: 5
    Dernier message: 29/12/2005, 15h03
  5. [Turbo Pascal] Simulation de touche du clavier
    Par trapiste dans le forum Turbo Pascal
    Réponses: 4
    Dernier message: 04/09/2004, 16h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo