• 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