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) :
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.
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
Je vous remercie d'avance !
Partager