Conversion des données du gyroscope MPU 6050 en angle

Le vendredi 26 juillet 2019 à 11:51:17
Bonjour,
J'ai suivi le tuto du chapitre 7 (Partie 5.3) pour la configuration du MPU6050 mais je n'arrive pas à récupérer les valeurs angles issu du gyroscope (sans fixer le problème de dérive).
j'aimerai une explication des lignes suivantes :
j'ai actuellement multiplier la valeurs récupérer par 180/(PI*2) après quelques observations mais je trouve cela plutôt arbitraire et j'aimerai une valeur sûr.
lorsque que je j'implémentation dans mon code j'ai des valeurs entre 10 et -10 . je n'arrive pas à interpréter les valeurs récupéré.
Je vous remercie pour tout aide fournie !
Cordialement
J'ai suivi le tuto du chapitre 7 (Partie 5.3) pour la configuration du MPU6050 mais je n'arrive pas à récupérer les valeurs angles issu du gyroscope (sans fixer le problème de dérive).
j'aimerai une explication des lignes suivantes :
angle[PITCH] += (gyro_raw[X] - gyro_offset[X]) / (250 * SSF_GYRO);
angle[ROLL] += (gyro_raw[Y] - gyro_offset[Y]) / (250 * SSF_GYRO);
j'ai actuellement multiplier la valeurs récupérer par 180/(PI*2) après quelques observations mais je trouve cela plutôt arbitraire et j'aimerai une valeur sûr.
lorsque que je j'implémentation dans mon code j'ai des valeurs entre 10 et -10 . je n'arrive pas à interpréter les valeurs récupéré.
Je vous remercie pour tout aide fournie !
Cordialement
Le vendredi 26 juillet 2019 à 13:12:18
Salut et bienvenue
Les explications de ces 2 lignes de code sont au chapitre 7, partie 5.3.
En résumé il s'agit d'une intégration dans le domaine discret pour convertir des degrés par seconde en degrés.
Commence par vérifier les valeurs brutes. Ensuite les offsets. Ensuite la valeur en °/s.
Mais comme tu n'as pas implémenté la correction de la dérive tu vas avoir très vite des mesures incohérentes...
Je te conseilles d'implémenter le programme en entier, ça sera plus simple à débugger.
Enfin, il n'est pas possible que j'ai fait une erreur dans mon implémentation donc n'hésite pas à me corriger si tu penses avoir trouvé un bug
Bon courage !
Les explications de ces 2 lignes de code sont au chapitre 7, partie 5.3.
En résumé il s'agit d'une intégration dans le domaine discret pour convertir des degrés par seconde en degrés.
- On soustrait d'abord l'offset calculé précédemment
- On divise la valeur par SSF_GYRO pour obtenir une valeur en °/s
- On divise par la fréquence d’échantillonnage (250Hz)
- On additionne le résultat avec le précédent résultat (opérateur +=)
Commence par vérifier les valeurs brutes. Ensuite les offsets. Ensuite la valeur en °/s.
Mais comme tu n'as pas implémenté la correction de la dérive tu vas avoir très vite des mesures incohérentes...
Je te conseilles d'implémenter le programme en entier, ça sera plus simple à débugger.
Enfin, il n'est pas possible que j'ai fait une erreur dans mon implémentation donc n'hésite pas à me corriger si tu penses avoir trouvé un bug
Bon courage !

Le mardi 24 septembre 2019 à 19:53:20
Salut
Je suis nouveau sur le site et débutant dans les drones.
Arduino nano + MPU6050 + 4 esc + 4 moteurs brusless + accus lipo 3S
J'ai apparemment suivi toutes les instructions sur le site web et pour finaliser le projet, il me manque l'essentiel, le code final du contrôleur de vol.
Pouvez-vous SVP me le fournir ? :'(
Merci d'avance de votre aide
Cordialement
Je suis nouveau sur le site et débutant dans les drones.
Arduino nano + MPU6050 + 4 esc + 4 moteurs brusless + accus lipo 3S
J'ai apparemment suivi toutes les instructions sur le site web et pour finaliser le projet, il me manque l'essentiel, le code final du contrôleur de vol.
Pouvez-vous SVP me le fournir ? :'(
Merci d'avance de votre aide
Cordialement