Aide pour déplacer le curseur d'une souris avec accéléromètre GY-61

onjour , nous sommes en 1ere année de MPSI et nous avons un projet de TIPE à faire. Nous aimerions pouvoir déplacer le curseur de la souris grâce à l'accéléromètre GY-61 ADXL335.

Actuellement nous arrivons seulement à obtenir les valeur la position de l'accéléromètre en mouvement selon les axes (x , y , z)
Sur internet nous avons trouvé des tutoriels sur internet pour assimiler l'accéléromètre au curseur d'une souris.

Voici nos différents codes:

Ce premier code correspond au test de fonctionnement

On aurait aussi besoin de savoir ce que signifie le Float Zero_G et Float Scale

ADXL335
note:vcc-->5v ,but ADXL335 Vs is 3.3V
The circuit:
      5V: VCC
analog 1: x-axis
analog 2: y-axis
analog 3: z-axis
*/
const int xpin = 1;                  // x-axis of the accelerometer
const int ypin = 2;                  // y-axis
const int zpin = 3;                  // z-axis (only on 3-axis models)
void setup()
{
 // initialize the serial communications:
 Serial.begin(9600);
}
void loop()
{
 int x = analogRead(xpin);  //read from xpin
 int y = analogRead(ypin);  //read from ypin
 int z = analogRead(zpin);  //read from zpin
 
float zero_G = 512.0; //ADC is 0~1023  the zero g output equal to Vs/2
                      //ADXL335 power supply by Vs 3.3V
float scale = 102.3;  //ADXL335330 Sensitivity is 330mv/g
                       //330 * 1024/3.3/1000  

/*Serial.print(x); 
Serial.print("\t");
Serial.print(y);
Serial.print("\t");
Serial.print(z);  
Serial.print("\n");*/
Serial.print(((float)x ));  //print x value on serial monitor
Serial.print("\t");
Serial.print(((float)y ));  //print y value on serial monitor
Serial.print("\t");
Serial.print(((float)z ));  //print z value on serial monitor
Serial.print("\n");
delay(500);
}

Ce deuxième programme a été trouvé sur un site mais on n'arrive pas à l'adapter à notre accélérometre

#include  "AcceleroMMA7361.h"// Inclure la librairie de 
l'accéléromètre



AcceleroMMA7361 accelero; // Création du composant
int x; // Création des variables pour les 3 accélérations 
int y;

void setup()
{
 Serial.begin(9600); // Démarrer la liaison série
 pinMode(2, INPUT);
 accelero.begin(13, 12, 11, 10, A0, A1, A2); // Démarrer le 
composant
 accelero.setARefVoltage(3.3); // Régler la tension de référence
 accelero.setSensitivity(LOW); // Régler la sensibilité du composant +/-6G
 accelero.calibrate(); // Calibrer le composant
 
 Mouse.begin(); //Initialisation de la fonction souris

}

void loop()
{
 x = accelero.getXAccel(); // Lecture de l'axe X
 y = accelero.getYAccel(); // Lecture de l'axe Y
 
 Mouse.move(x,y,0); //On bouge le curseur aux coordonnées acquisent par l'accéléromètre
 if (digitalRead(2) == HIGH) //On peut rajouter un bouton
  Mouse.click(MOUSE_LEFT); //Si l'appuie est repéré on envoie un clique gauche sur le curseur

 Serial.print("nx: "); // Afficher la valeur de l'axe X
 Serial.print(x);
 Serial.print(" ty: "); // Afficher la valeur de l'axe Y
 Serial.print(y);

 delay(50); // Délais pour rendre ça lisible
}

A savoir que nous sommes débutants en Arduino merci de votre compréhension.

Si vous avez besoin d'informations complémentaires dites le nous, nous restons à votre disposition.

Bonjour,

Comme indiqué dans le programme
zero_G est la valeur mesurée quand il n'y a pas d'accélération
scale est la sensibilité qui permet de convertir la valeur mesurée en accélération

Vous avez un programme tout fait sur ce site