Bonjour à tous,
Voici le code Arduino et Processing afin d'exploiter un minimum le composant GY-85 (accéléromètre, gyroscope, magnétomètre).
J'essaierai de l'améliorer et d'aider en fonction du besoin, quand j'aurai signé mon futur contrat, priorité au boulot
Bonne journée/soirée,
Alex D
GY-85
GY-85
- Pièces jointes
-
- sketch_13_GY85_cockpit_presentation_Thilab_v2.zip
- Processing GY-85
- (3.98 Kio) Téléchargé 602 fois
-
- _25_GY-85_presentation_Thilab_v2.zip
- Arduino GY-85
- (3.97 Kio) Téléchargé 603 fois
Re: GY-85
Merci pour ces infos Alex. Ta démo sur le gyroscope me laisse perplexe, dans l'état cet instrument n'est pas exploitable. Tu es sûr que ton composant n'est pas foutu ? Tu as testé avec un autre ?
Re: GY-85
Pourquoi tu considère que c'est inexploitable ? Les résultats semblaient corrects lors de la démo non ?
Re: GY-85
Sur l'accéléromètre oui, mais pas sur le gyro, ça dérive dans la minute
Re: GY-85
Non je n'ai pas testé le code sur un autre GY-85. Je pense qu'il fonctionne puisqu'en appliquant des coefs persos, à calculer à l'initialisation (ça je ne le savais pas), on obtient une dérive quasi nulle.
Là on était sur une présentation simple, ce n'est pas un code implémenté pour répondre à un besoin concret. Je proposais de réinitialiser le gyroscope de temps en temps, lorsqu'on était dans des moments de neutralité, quand l'accéléromètre indiquait un moment de flottement quasi parfait.
Je suis sûr qu'on peut trouver les formules mathématiques pour contrer la dérive car elle est constante. Étrangement on a observé que (Dx = Dérive autour de l'axe x, etc) : Dx ~= 2*Dy ~= 4*Dz, les dérives sont liées entre elles par un coef simple, qui est d'environ 2, en tout cas c'est linéaire donc très simple.
Dès que j'ai un peu de temps je revois ce problème de dérive et je posterai le code qui gérera ça.
Pour moi le plus gros souci ce n'est pas la dérive mais le fait qu'un choc trop brutal ne soit pas pris en compte, alors que le robot aura bel et bien tourné... C'est ça qui me posait des soucis pour mon projet d'avion autonome, le fait de complètement louper des accoues trop brutaux pour être captés, alors que les accoues violents changent justement beaucoup l'inclinaison, puisque le coup est violent.
Là on était sur une présentation simple, ce n'est pas un code implémenté pour répondre à un besoin concret. Je proposais de réinitialiser le gyroscope de temps en temps, lorsqu'on était dans des moments de neutralité, quand l'accéléromètre indiquait un moment de flottement quasi parfait.
Je suis sûr qu'on peut trouver les formules mathématiques pour contrer la dérive car elle est constante. Étrangement on a observé que (Dx = Dérive autour de l'axe x, etc) : Dx ~= 2*Dy ~= 4*Dz, les dérives sont liées entre elles par un coef simple, qui est d'environ 2, en tout cas c'est linéaire donc très simple.
Dès que j'ai un peu de temps je revois ce problème de dérive et je posterai le code qui gérera ça.
Pour moi le plus gros souci ce n'est pas la dérive mais le fait qu'un choc trop brutal ne soit pas pris en compte, alors que le robot aura bel et bien tourné... C'est ça qui me posait des soucis pour mon projet d'avion autonome, le fait de complètement louper des accoues trop brutaux pour être captés, alors que les accoues violents changent justement beaucoup l'inclinaison, puisque le coup est violent.
Re: GY-85
Voilà, le code Arduino v3 gère la dérive du gyroscope.
A l'initialisation, dans setup(), on simule des prises de mesure dans les mêmes conditions que dans loop() et on sauvegarde la dérive moyenne sur chacun des 3 axes.
Dans loop(), lors du calcul lié, on soustrait les valeurs de dérive moyenne et le tour est joué.
A l'initialisation, dans setup(), on simule des prises de mesure dans les mêmes conditions que dans loop() et on sauvegarde la dérive moyenne sur chacun des 3 axes.
Dans loop(), lors du calcul lié, on soustrait les valeurs de dérive moyenne et le tour est joué.
- Pièces jointes
-
- _26_GY-85_presentation_Thilab_v3.zip
- Arduino GY-85 v3
- (4.05 Kio) Téléchargé 603 fois