• Post category:Mouse
  • Post comments:0 commentaire
  • Post last modified:mars 12, 2022
  • Temps de lecture :5 min de lecture

Mouse.move()

Description :

Déplace le curseur sur un ordinateur connecté. Le mouvement à l’écran est toujours relatif à l’emplacement actuel du curseur. Avant d’utiliser Mouse.move() , vous devez appeler Mouse.begin ()

Syntaxe :

Mouse.move(xVal, yVal, wheel)

Paramètres :

xVal : quantité à déplacer le long de l’axe des abscisses. Types de données autorisés : signed char .
yVal : montant à déplacer le long de l’axe y. Types de données autorisés : signed char .
wheel : montant pour déplacer la molette de défilement. Types de données autorisés : signed char .

Retour :

Rien

Exemple de code :

#include <Mouse.h>

const int xAxis = A1; //capteur analogique pour l'axe X
const int yAxis = A2; // capteur analogique pour l'axe Y

int range = 12; // plage de sortie du mouvement X ou Y
int responseDelay = 2; // délai de réponse de la souris, en ms
int threshold = range / 4; // seuil de repos
int center = range / 2; // valeur de la position de repos
int minima[] = {1023, 1023}; // minima de lecture analogique réels pour {x, y}
int maxima[] = {0, 0}; // maxima réels de lecture analogique pour {x, y}
int axis[] = {xAxis, yAxis}; // numéros de broches pour {x, y}
int mouseReading[2]; // lectures finales de la souris pour {x, y}


void setup() {
Mouse.begin();
}

void loop() {
// lire et mettre à l'échelle les deux axes :
int xReading = readAxis(0);
int yReading = readAxis(1);

// move the mouse:
Mouse.move(xReading, yReading, 0);
delay(responseDelay);
}

/*
lit un axe (0 ou 1 pour x ou y) et met à l'échelle
la plage d'entrée analogique à une plage de 0 à <plage>
*/

int readAxis(int axisNumber) {
int distance = 0; // distance du centre de la plage de sortie

// lire l'entrée analogique :
int reading = analogRead(axis[axisNumber]);

// si la lecture actuelle dépasse le max ou le min pour cet axe,
// réinitialiser le max ou le min :
if (reading < minima[axisNumber]) {
minima[axisNumber] = reading;
}
if (reading > maxima[axisNumber]) {
maxima[axisNumber] = reading;
}

// mapper la lecture de la plage d'entrée analogique à la plage de sortie :
reading = map(reading, minima[axisNumber], maxima[axisNumber], 0, range);

// si la lecture de sortie est en dehors du
// seuil de position de repos, utilisez-le :
if (abs(reading - center) > threshold) {
distance = (reading - center);
}

// l'axe Y doit être inversé pour
// mapper correctement le mouvement :
if (axisNumber == 1) {
distance = -distance;
}

// renvoie la distance pour cet axe :
return distance;
}

 

Remarques et avertissements

Lorsque vous utilisez la Mouse.move()commande, l’Arduino prend le contrôle de votre souris ! Assurez-vous d’avoir le contrôle avant d’utiliser la commande. Un bouton-poussoir pour basculer l’état de contrôle de la souris est efficace.

 


 

Source : https://www.arduino.cc/reference/en/language/functions/usb/mouse/mousemove/

 

Laisser un commentaire