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

MATLAB Discussion :

Action suite à un appui sur une touche clavier


Sujet :

MATLAB

  1. #1
    Nouveau Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2021
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2021
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Action suite à un appui sur une touche clavier
    Bonjour à tous, je suis débutante en MatLab et j'aurais besoin d'aide

    Je souhaite faire en sorte que dès que je commence à appuyer sur la touche, le code se mette en pause, une action (appelée par une fonction qui permet de bouger un bras mécanique ) commence et dure tant que la touche est enfoncée. Les touches sont sensées représenter un joystick 3 positions (upnarrow pour position 1, downnarrow pour position 2, aucune touche d'enfoncer pour la position au repos), ici j'essaie déjà de faire fonctionner avec une touche. J'ai exploré la possibilité d'utiliser Simulink pour représenter mon joystick mais cela me semble hors de ma portée.

    Le problème : n'ayant pas de figure, je n'arrive pas à utiliser KeyPressFcn. J'ai utilisé une autre librairie appelée HeibiKeyboard ( https://fr.mathworks.com/matlabcentr...cs-matlabinput ) mais je n'arrive pas à récupérer mon temps d'appui sur la touche (j'ai essayé avec la fonction tic toc mais cela ne semble pas convenir).

    Voici une idée (totalement faux de a à z je pense) :

    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
     
    clear
    clc
    close all
     
    % Add library
    addpath('C:\Users\MatLab\hebi'); %Path à changer pour permettre l'accès à la librairie (disponible sur le site donné plus haut)
     
    kb = HebiKeyboard();
    t=0;
    Time = true ; 
     
    while (Time == true)
        state = read(kb);
        while state.keys('a')
            t = t+1; % Je voudrais remplacer ce compteur par le temps d'appui en milliseconde
            %Ecartement_1DS = Position_Init + Vitesse_Mvmt*Temps_appui ;   (Idée générale de l'action de la fonction)
        end
     
        %Sécurité car sinon MatLab plante (je pense qu'il enregistre mon appui
        %sur la touche et qu'il implémente mon compteur à l'infini...)
        pause(0.01)
        if t>5500 % Environ 1 min d'appui
            Time = false;
        end
    end
    Voilà, je n'ai pas l'habitude d'utiliser MatLab, la réponse est peut être très simple mais je ne l'ai pas trouvée.
    Je vous remercie d'avance !

  2. #2
    Membre émérite
    Homme Profil pro
    Inscrit en
    Mai 2008
    Messages
    2 040
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 2 040
    Points : 2 841
    Points
    2 841
    Par défaut
    Bonjour,

    Un exemple simple de saisie clavier :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    clear all
    global I
    figure('KeyPressFcn', @(src,evnt)onKeyPressRelease(evnt,get(gcf,'CurrentKey')),...
        'KeyReleaseFcn',@(obj,evnt)onKeyPressRelease(evnt,get(gcf,'CurrentKey')));
    disp(['Key = ' num2str(I)])

  3. #3
    Nouveau Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2021
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2021
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Salut, merci pour le code, cependant j'ai déjà réussi à résoudre mon problème sans afficher de figure. Merci quand même pour ton aide, c'est super sympa !

Discussions similaires

  1. Réponses: 3
    Dernier message: 04/06/2018, 10h21
  2. Réponses: 3
    Dernier message: 05/04/2011, 01h00
  3. Détection de l'appui sur une touche du clavier
    Par Oh!Tofocus dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 01/12/2008, 02h08
  4. envoyer la saisie après l'appui sur une touche clavier
    Par Jahjouh dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 13/06/2008, 10h20
  5. Récupération d'un appui sur une touche du clavier
    Par eddie5150 dans le forum MFC
    Réponses: 2
    Dernier message: 09/05/2007, 14h40

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