GY-85

Alex D
Messages : 6
Inscription : 29 déc. 2015, 13:14

GY-85

Message par Alex D »

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
Pièces jointes
sketch_13_GY85_cockpit_presentation_Thilab_v2.zip
Processing GY-85
(3.98 Kio) Téléchargé 596 fois
_25_GY-85_presentation_Thilab_v2.zip
Arduino GY-85
(3.97 Kio) Téléchargé 592 fois
mdeudon
Messages : 192
Inscription : 17 févr. 2016, 16:13
Localisation : Metz

Re: GY-85

Message par mdeudon »

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 ?
PMorel
Messages : 3748
Inscription : 04 déc. 2013, 22:44
Localisation : Yutz

Re: GY-85

Message par PMorel »

Pourquoi tu considère que c'est inexploitable ? Les résultats semblaient corrects lors de la démo non ?
mdeudon
Messages : 192
Inscription : 17 févr. 2016, 16:13
Localisation : Metz

Re: GY-85

Message par mdeudon »

Sur l'accéléromètre oui, mais pas sur le gyro, ça dérive dans la minute
Alex D
Messages : 6
Inscription : 29 déc. 2015, 13:14

Re: GY-85

Message par Alex D »

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.
Alex D
Messages : 6
Inscription : 29 déc. 2015, 13:14

Re: GY-85

Message par Alex D »

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é.
Pièces jointes
_26_GY-85_presentation_Thilab_v3.zip
Arduino GY-85 v3
(4.05 Kio) Téléchargé 592 fois
Répondre