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.