Accueil > Forum > Electronique > Arduino > Relevé de donnée sur le MPU6050 non exact

Relevé de donnée sur le MPU6050 non exact

✔ Ce sujet est résolu
OsuFrance OsuFrance 16 Messages
Bonjour,

Je viens vers vous car je viens de me rendre compte sur la fin de mon application que mon MPU6050 n'a pas des relevés exact concernant la partie gyroscopique. En effet, lorsque je fixe mon module quelque part et que j'effectue une ouverture de 0 à 90° dans le moniteur arduino cela m'affiche que le module a fait une rotation de 0 à environ 40° ce qui ne correspond pas au mouvement fait. Auriez vous une idée ? 

Merci à vous !
lobodol lobodol 570 Messages BIG BOSS
Salut, tu as utilisé l'implémentation du chapitre 7 ?
Quand tu dis afficher dans le monitoeur, tu fais des Serial.print ?
A chaque faute d'orthographe que vous faites, votre sexe rétrécit inexorablement ...
OsuFrance OsuFrance 16 Messages
Je l'avais survolé je m'étais basé sur celle du chapitre 5. La différence est significative ? 
Yes, j'affiche tout à partir de Serial.print !
lobodol lobodol 570 Messages BIG BOSS
Oui pour le coup la différence est significative. La version du ch.7 est adaptée pour une utilisation temps réel.
Dans ton cas si ça n'est pas indispensable ça devrait fonctionner ...
A chaque faute d'orthographe que vous faites, votre sexe rétrécit inexorablement ...
OsuFrance OsuFrance 16 Messages
D'accord très bien je vais me pencher dessus et je te ferais un retour sur ce post. Je pense tenter cette après midi si j'ai le temps ;) 
Merci à toi !
OsuFrance OsuFrance 16 Messages
Donc j'ai suivi le tuto afin de comprendre ce chapitre 7 qui n'est pas facile à prendre en main. Avant d'apporter mes modifications personnel j'ai donc, après le tuto, tester le code.
 J'ai activé le Serial.begin(57600); afin de pouvoir print les éléments qui m’intéresses dans le moniteur arduino.  j'ai donc fait ceci :

        Serial.print(measures[ROLL]  * 0.9 + gyro_angle[X] * 0.1);
        Serial.print(";");
        Serial.print("\t");
        Serial.print(measures[PITCH] * 0.9 + gyro_angle[Y] * 0.1);
        Serial.print(";");
        Serial.print("\t");
        Serial.print(-gyro_raw[Z] / SSF_GYRO);  

placé dans la fonction calculateAngles(); mais mon moniteur est vide rien ne s'affiche et puis même la calibration n'a pas l'air de se réaliser. J'ai donc essayé d'afficher les offsets du gyroscope mais toujours pareil quand j'ouvre le moniteur il  est vide. 

Je dois surement oublier quelque chose mais j'arrive pas à voir ce que je fais mal. Merci à toi de m'apporter ton aide.
OsuFrance OsuFrance 16 Messages
Bonjour de nouveau,

J'ai trouvé à cause de quoi rien est affiché dan le moniteur.
Quand on laisse la partie calibration du mpu rien ne s'affiche dans le moniteur je ne sais pas pourquoi. Y a t'il un conflit ?

Le problème vient de la fonction : calibrateMpu6050();

Merci à vous
OsuFrance OsuFrance 16 Messages
Je viens faire un update de mon problème qui est désormais résolu. J'ai remplacé la fonction de calibration par : 


mpu.setXAccelOffset(-1108);
mpu.setYAccelOffset(-2719);
mpu.setZAccelOffset(1935);
mpu.setXGyroOffset(60);
mpu.setYGyroOffset(-26);
mpu.setZGyroOffset(13);

Ceci fait donc la calibration à l'aide d'un autre programme une fois. 
De plus, j'ai réussi aussi à régler un problème de non précision du gyroscope sur l'axe des x en modifiant les registres.
Vous devez être connecté pour pouvoir répondre à ce sujet.
Utilisation des données

Afin d'améliorer ton expérience utilisateur, nous utilisons des cookies 🍪