Bonjour,
Pour un de mes projets, j’ai pour objectif de connaître l’inclinaison de mon arduino, pour çà je souhaite utilisé le module mpu6050.
#include "Wire.h" // Arduino Wire library
#include "I2Cdev.h" //Installer ces 2 librairies
#include "MPU6050.h"
#include <Servo.h>
MPU6050 accelgyro;
int16_t ax, ay, az; //mesures brutes
int16_t gx, gy, gz;
#define LED_PIN 13 //Clignotte pour indiquer le bon fonctionnement
bool blinkState = false;
void setup() {
Wire.begin(); //I2C bus
//Serial.begin(9600);
Serial.begin(38400);
// initialize device
Serial.println("Initialisation I2C...");
accelgyro.initialize();
// verify connection
Serial.println("Test de la connection du dispositif ...");
Serial.println(accelgyro.testConnection() ? "MPU6050 connection reussie" : "MPU6050 connection echec");
pinMode(LED_PIN, OUTPUT); //Allume la led
}
void loop() {
// Lire les données brutes acceleration / gyro
int moyGX = 0, moyGY = 0 , moyGZ = 0, moyAX = 0, moyAY = 0 , moyAZ = 0;
accelgyro.getRotation(&gx, &gy, &gz);
gx = map(gx,-32768,32768,-360,360);
gy = map(gy,-32768,32768,-360,360);
gz = map(gz,-32768,32768,-360,360);
accelgyro.getAcceleration(&ax, &ay, &az);
Serial.print("\n--- G ---\n");
Serial.print("\nX \t Y\tZ\n ");
Serial.print(gx); Serial.print("\t");
Serial.print(gy); Serial.print("\t");
Serial.print(gz); Serial.print("\t");
delay (1000);
blinkState = !blinkState; //LED témoin d'activité clignotte
digitalWrite(LED_PIN, blinkState);
}
Le soucis réside dans 2 choses, la première je ne suis pas sur de connaître les valeurs du gyroscope, c’est bien des degrés par seconde ? Et pour l’accéléromètre, c’est quelle unité ?
Si le gyroscope m’envoie des dégrés par seconde pourquoi on m’affiche des valeurs > 380 degrés ?
Exemple :
Initialisation I2C...
Test de la connection du dispositif ...
MPU6050 connection reussie
--- G ---
X Y Z
-10 7 -5
--- G ---
X Y Z
-10 0 1
--- G ---
X Y Z
-9 -2 0
Et ma dernière question est comment avoir des mesures le plus précise possible (dans les réglages)
car j’ai quand même des variations de valeurs importante non ?