Aller au contenu


Photo
- - - - -

MPU-6050 [testé par mthibs]

imu MPU 6050 centrale inertielle MPU6050

17 réponses à ce sujet

#1 mthibs

mthibs

    Nouveau membre

  • Membres
  • 72 messages
  • Gender:Male

Posté 16 février 2017 - 08:03

Bonjour !

Je lance un nouveau test, cette fois-ci il s'agit du MPU-6050.

C'est une centrale inertielle à 6 degrés de liberté. Ce capteur comporte à la fois un gyromètre 3 axes et un accéléromètre 3 axes.

 

Le MPU-6050 est un petit circuit imprimé avec 8 broches de connexions.

20170216_170809.jpg

 

Il est fournit avec des connecteurs séparés, il y en a deux sortes. Comme ça on peut souder ceux qu'on veut  ^_^ .

Donc une petite étape de soudure plus tard... le montage.

J'ai utilisé une carte arduino uno pour communiquer avec la centrale inertielle. Le capteur communique avec le protocole I2C, c'est pratique.

 

Les connexions :

  • la broche VCC du capteur avec celle de la carte
  • le GND du capteur avec celle de la carte
  • la broche SCL du capteur est connectée à la broche A5 de la arduino
  • la broche SDA à la broche A4 de la carte
  • la broche INT du capteur est connectée à la broche numérique 2 de la carte.

20170216_174835.jpg

 

Pour la programmation, je me suis contenté d'utiliser le code d'exemple du MPU-6050 que voici

 

Après un court temps d'initialisation, le capteur affiche des valeurs dans le moniteur série.

Il faut attendre quelques instants pour que les valeurs se stabilisent.

 

imu 2.png

 

Ensuite on peut jouer avec la centrale en la bougeant dans tous les sens !

Le capteur à l'air assez précis, ce qui est une très bonne chose !

 

Pour la suite je vais essayer d'avoir une interface graphique qui analyse les données de la centrale inertielle. 

 



#2 ashira

ashira

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 1 333 messages
  • Gender:Male

Posté 16 février 2017 - 09:14

Super le test !
J'ai quelques questions:

-As tu observé une dérive lente au cours du temps?

-Lorsque tu commences à lire les données, est ce qu'un temps d'attente est nécessaire pour avoir des valeurs stables ?

-Et enfin est ce que le capteur garde des valeurs cohérentes après l'avoir secoué un peu ?

Merci :)

#3 mthibs

mthibs

    Nouveau membre

  • Membres
  • 72 messages
  • Gender:Male

Posté 17 février 2017 - 10:26

Pour avoir des valeurs stables sur tous les axes il y a un temps de calibration nécessaire.

J'ai fait plusieurs essaies et il faut en moyenne à peu près 30s plus ou moins 2s à chaque essaies.

 

temps.png

 

Les valeurs me semble cohérentes : après l'avoir secoué un peu dans tout les sens je l'ai immobilisé et remis en position initiale.

Les valeurs étaient quasiment identiques qu'au départ sur tous les axes (à 0.03 près).

 

Pour les mouvements de lacet, roulis et tangage, les axes sont les suivants :

axes.jpg

 L'axe x correspond à la 1ère colonne dans le moniteur série (lacet), l'axe y à la 2ème (tangage) et l'axe z à la 3ème (roulis).

 

 

Pour la dérive je n'ai pas encore fait le test. Je posterai le résultat dans la journée ;)



#4 mthibs

mthibs

    Nouveau membre

  • Membres
  • 72 messages
  • Gender:Male

Posté 17 février 2017 - 08:39

Pour la dérive j'ai fait un essai en immobilisant l'imu dans une position et j'ai relevé les valeurs toutes

les 5 minutes pendant 1 heure et j'ai tracé la courbe suivante :

 

dérive.png

 

On voit bien que seul un axe (celui de lacet) est soumis à une forte dérive.

Sinon pour les écarts j'ai fait un histogramme et ont obtient sur une heure une variation d'environ 15° sur l'axe de lacet.

 

dérive2.png

 

Finalement l'écart sur une heure sur les deux autres axes est négligeable.



#5 ashira

ashira

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 1 333 messages
  • Gender:Male

Posté 17 février 2017 - 10:32

Impeccables tes relevés! Ça répond exactement à la question. Merci ;)

#6 Ulysse

Ulysse

    Membre passionné

  • Membres
  • PipPipPip
  • 486 messages
  • Gender:Not Telling

Posté 28 février 2017 - 10:34

Une idée sur l'origine de la dérive ?

#7 Mike118

Mike118

    Staff Robot Maker

  • Administrateur
  • PipPipPipPipPip
  • 9 047 messages
  • Gender:Male
  • Location:Anglet
  • Interests:Robotique, Entrepreneuriat, Innovation, Programmation, Résolution de problème, Recherche de solutions, Mécanique, Electronique, Créer, Concevoir

Posté 06 août 2018 - 01:36

Code de test plus simple : 

 

Pour vérifier que l'imu fonctionne bien avec juste 4 fils de branché : 

GND 5V SDA et SCL 

 // MPU-6050 Short Example Sketch
// By Arduino User JohnChi
// August 17, 2014
// Public Domain
#include<Wire.h>
const int MPU_addr=0x68;  // I2C address of the MPU-6050
int16_t AcX,AcY,AcZ,Tmp,GyX,GyY,GyZ;
void setup(){
  Wire.begin();
  Wire.beginTransmission(MPU_addr);
  Wire.write(0x6B);  // PWR_MGMT_1 register
  Wire.write(0);     // set to zero (wakes up the MPU-6050)
  Wire.endTransmission(true);
  Serial.begin(9600);
}
void loop(){
  Wire.beginTransmission(MPU_addr);
  Wire.write(0x3B);  // starting with register 0x3B (ACCEL_XOUT_H)
  Wire.endTransmission(false);
  Wire.requestFrom(MPU_addr,14,true);  // request a total of 14 registers
  AcX=Wire.read()<<8|Wire.read();  // 0x3B (ACCEL_XOUT_H) & 0x3C (ACCEL_XOUT_L)     
  AcY=Wire.read()<<8|Wire.read();  // 0x3D (ACCEL_YOUT_H) & 0x3E (ACCEL_YOUT_L)
  AcZ=Wire.read()<<8|Wire.read();  // 0x3F (ACCEL_ZOUT_H) & 0x40 (ACCEL_ZOUT_L)
  Tmp=Wire.read()<<8|Wire.read();  // 0x41 (TEMP_OUT_H) & 0x42 (TEMP_OUT_L)
  GyX=Wire.read()<<8|Wire.read();  // 0x43 (GYRO_XOUT_H) & 0x44 (GYRO_XOUT_L)
  GyY=Wire.read()<<8|Wire.read();  // 0x45 (GYRO_YOUT_H) & 0x46 (GYRO_YOUT_L)
  GyZ=Wire.read()<<8|Wire.read();  // 0x47 (GYRO_ZOUT_H) & 0x48 (GYRO_ZOUT_L)
  Serial.print("AcX = "); Serial.print(AcX);
  Serial.print(" | AcY = "); Serial.print(AcY);
  Serial.print(" | AcZ = "); Serial.print(AcZ);
  Serial.print(" | Tmp = "); Serial.print(Tmp/340.00+36.53);  //equation for temperature in degrees C from datasheet
  Serial.print(" | GyX = "); Serial.print(GyX);
  Serial.print(" | GyY = "); Serial.print(GyY);
  Serial.print(" | GyZ = "); Serial.println(GyZ);
  delay(333);
}

juste pour vérifier que le câblage est bon et que le capteur répond convenablement =) 

 

 

Après il faut savoir qu'un gyro ça tend naturellement à dériver... On a ici un produit de gamme " hobby", qui marche bien certes mais qui ne rivalise pas avec un produit haut de gamme comme ceux qui sont dans des satellites ou des missiles ... 

Gyro drift and accuracy 


Si mon commentaire vous a plus laissez nous un avis  !  :thank_you:

Nouveau sur Robot Maker ? 

Jetez un oeil aux blogs, aux tutoriels, aux ouvrages, au robotscope  aux articles,  à la boutique  et aux différents services disponible !
En attendant qu'une bibliothèque de fichiers 3D soit mise en place n'hésitez pas à demander si vous avez besoin du fichier 3D d'un des produits de la boutique... On l'a peut être ! 

 

Les réalisations de Mike118  

 

 

 


#8 Oliver17

Oliver17

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 2 758 messages
  • Gender:Male
  • Interests:Glenn

Posté 06 août 2018 - 04:09

15° de dérive en 1 heure, quand même c'est pas rien, est il possible de corriger ça ?


signature_01.png -->

 

Mon Tipeee
 


#9 Mike118

Mike118

    Staff Robot Maker

  • Administrateur
  • PipPipPipPipPip
  • 9 047 messages
  • Gender:Male
  • Location:Anglet
  • Interests:Robotique, Entrepreneuriat, Innovation, Programmation, Résolution de problème, Recherche de solutions, Mécanique, Electronique, Créer, Concevoir

Posté 06 août 2018 - 04:55

Le lacet c'est l'angle le plus compliqué... Il n'y a que de l'intégration pur et dure et pas de points de références ... C'est un problème d'ordre physique plus que de la qualité du composant ..
Pour les deux autres axes la gravité sert de point de repère pour limiter jusqu'à carrément éliminer la dérive avec les accéléromètres ... Tu vois ce que je veux dire ? 

Bon par contre oui il y a des astuces, on peut appliquer des corrections ... 
C'est à dire recalibrer le gyro si jamais on sait qu'on ne bouge pas et que le gyro dit qu'on bouge un petit peu ... 
De plus pour être le plus précis possible il faut prendre des mesures le plus rapidement possible... ça réduit un peu les erreurs d'intégrations.. 
Après il y a aussi le fait d'utiliser des données extérieurs qui aide... Odométrie etc ... 

 

Bref : tu sais que tu peux compter sur un gyro pour te donner un delta à un instant T mais mieux vaut éviter de compter uniquement dessus pour faire de la position angulaire en 3D uniquement par intégration avec une fiabilité extrême...

Le MPU9250 est un peu mieux loti, en SPI il est beaucoup plus rapide, et de base dérive moins ... ça combiné avec une bonne calibration ça tient très bien dans robil =).  Par contre une fois combiné avec le lidar là c'est bon plus de soucis de position angulaire ^^ ... Mais bon là on passe dans un autre domaine ... 

Après il y a des IMU à 199€ voir même plus cher qui intègrent tout le code que je décris, de calibrations avec une très bonne précision etc...

 


Si mon commentaire vous a plus laissez nous un avis  !  :thank_you:

Nouveau sur Robot Maker ? 

Jetez un oeil aux blogs, aux tutoriels, aux ouvrages, au robotscope  aux articles,  à la boutique  et aux différents services disponible !
En attendant qu'une bibliothèque de fichiers 3D soit mise en place n'hésitez pas à demander si vous avez besoin du fichier 3D d'un des produits de la boutique... On l'a peut être ! 

 

Les réalisations de Mike118  

 

 

 


#10 Oliver17

Oliver17

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 2 758 messages
  • Gender:Male
  • Interests:Glenn

Posté 06 août 2018 - 05:13

Ok je pense avoir compris.

 

Et donc des solutions existes pour corriger un minima, c'est cool, effectivement dans le cadre d'un biped on peut très bien recalibrer l'imu lorsqu'il ne bouge pas, ou alors on peut très bien lui dire que tous les X temps il se calibre à nouveau...
...peut on prévoir la dérive ??
Car sinon on peut très bien lui dire que lorsqu'il y a une dérive trop "importante" (là reste à déterminer le niveau pour corriger la dérive), et bien il se calibre à nouveau.

 

Et mais j'y pense, dans le cadre ou on se retrouve avec une boussole sur l'imu, la dérive ne pourrait elle pas être corrigé à partir de l'orientation de celle ci ??
Puisque c'est le lacet qui par en sucette alors que la boussole indique toujours la même position il y a peut être un moyen de faire quelque chose de se coter la, non ??
Ou j'ai dis une connerie ? :)

 

Cool, j'ai un MPU9250 pour Glenn :)

Si un jour Glenn prend de l'importance il aura un IMU digne de se nom, en attendant je jouerai avec le MPU9250 ;)

Merci ^^


signature_01.png -->

 

Mon Tipeee
 


#11 Mike118

Mike118

    Staff Robot Maker

  • Administrateur
  • PipPipPipPipPip
  • 9 047 messages
  • Gender:Male
  • Location:Anglet
  • Interests:Robotique, Entrepreneuriat, Innovation, Programmation, Résolution de problème, Recherche de solutions, Mécanique, Electronique, Créer, Concevoir

Posté 06 août 2018 - 07:09

 

Et mais j'y pense, dans le cadre ou on se retrouve avec une boussole sur l'imu, la dérive ne pourrait elle pas être corrigé à partir de l'orientation de celle ci ??
Puisque c'est le lacet qui par en sucette alors que la boussole indique toujours la même position il y a peut être un moyen de faire quelque chose de se coter la, non ??
Ou j'ai dis une connerie ? :)

 

 

 

Alors non tu ne dis pas une connerie sur le principe car oui justement une boussole en théorie ça aide à compenser de la même façon que l'accéléromètre compense les deux autres axes mais en pratique je trouve que la boussole me perturbe plus qu'elle n'aide à stabiliser le cap ... Surtout dans un environnement humain avec tout plein de choses autour ... Les objets métalliques aux alentours peuvent avoir un tel impacte sur l'organisation du champs magnétique qu'il est difficile de s'y fier ... Sauf si tu es perdu en pleine foret ... 


Si mon commentaire vous a plus laissez nous un avis  !  :thank_you:

Nouveau sur Robot Maker ? 

Jetez un oeil aux blogs, aux tutoriels, aux ouvrages, au robotscope  aux articles,  à la boutique  et aux différents services disponible !
En attendant qu'une bibliothèque de fichiers 3D soit mise en place n'hésitez pas à demander si vous avez besoin du fichier 3D d'un des produits de la boutique... On l'a peut être ! 

 

Les réalisations de Mike118  

 

 

 


#12 gerardosamara

gerardosamara

    Membre passionné

  • Membres
  • PipPipPip
  • 374 messages
  • Gender:Male
  • Location:Costa Rica & Bretagne
  • Interests:La vie sous les tropiques

Posté 30 novembre 2018 - 04:42

Le MPU6050 est un circuit intégré qui est utilisé dans différentes cartes électroniques venant de fabricants différents.

 

Est'il possible d'ajouter le nom du fabricant avec son nom de produit propre ( chez un fabricant le produit s'appelle GY-521 ) au niveau du descriptif dans la boutique  ?

 

 

----------------------------------------------------------------------------------------

 

 

https://playground.a...c/Main/MPU-6050

 

Breakout boards

There are a number of "breakout boards" or "sensor boards" with the MPU-6050. The price dropped fast, only 2.60 dollars in August 2014 on Ebay.

Sparkfun SEN-11028
http://www.sparkfun.com/products/11028
With schematic and full information. This breakout board must be used with 3.3V. There is no voltage regulator and no I2C-level shifter on the board. The pull-up resistors for the I2C-bus are 10k.
Drotek IMU 10DOF - MPU6050 + HMC5883 + MS5611
http://www.drotek.fr/shop/en/62-imu-10dof-mpu6050-hmc5883-ms5611.html
This sensor board contains three sensors. A schematic is not provided. The interrupt ('INT') of the MPU-6050 is not made available. Therefor the FIFO and the Jeff Rowberg library can not be used.
Drotek MPU-6050 Invensense
http://www.drotek.fr/shop/en/42-mpu6050-gyro-accelerometer.html
This breakout board contains a voltage regulator. It can be used with 3.3V and with 5V. A schematic is not provided.
GY-521
This sensor board has a voltage regulator. When using 3.3V to the VCC the resulting voltage (after the onboard voltage regulator) might be too low for a good working I2C bus. It is preferred to apply 5V to the VCC pin of the sensor board. The board has pull-up resistors on the I2C-bus. The value of those pull-up resistors are sometimes 10k and sometimes 2k2. The 2k2 is rather low. If it is combined with other sensor board which have also pull-up resistors, the total pull-up impedance might be too low.
Some GY-521 modules have the wrong capacitor (or a bad capacitor) and that results into a high noise level : http://forum.arduino.cc/index.php?topic=394691.0
This schematic is hard to find, so here is a copy: http://playground.arduino.cc/uploads/Main/MPU6050-V1-SCH.jpg
This part is designed in Fritzing: http://fritzing.org/projects/mpu-6050-board-gy-521-acelerometro-y-giroscopio
A data visualiser that makes life easier when starting out. Also includes an extended version (By http://www.geekmomprojects.com/) of Kordal's code. On GitHub https://github.com/j...a/Gy521-Dev-Kit
GY-52
This sensor board has a voltage regulator. So it can be used with 3.3V and with 5V. The board was originally designed for the MPU-3050, therefor the text "MPU-3050" or "MPU-X050" is sometimes printed on the board. The pull-up resistors are sometimes 10k and sometimes 4k7. If they are 10k, two extra pull-up resistors of 10k to the 3.3V could be added (from the SDA and SCL to the 3.3V of the sensor board or the 3.3V of the Arduino).
Flyduino MPU6050 Break Out onboard 3.3V reg
http://flyduino.net/MPU6050-Break-Out-onboard-33V-reg_1
This sensor board contains a voltage regulator, so it can also be used with 5V. The pull-up resistors of the I2C-bus are 4k7. It is actually a GY-52 breakout board.
Flyduino 10DOF IMU GY-86 MPU6050+HMC5883l+MS5611
A sensor board with the MPU-6050 and a magnetometer and barometer. The sensor board contains a voltage regulator, so it can be used with 5V. There seems to be also a level shifter on the board for the I2C-bus. The pull-up resistors for the I2C-bus seems to be 2k2, which is rather low.
no name breakout board
In august 2012 the cheapest breakout board with the MPU-6050 was a breakout board (for about 12 dollars/ 10euros) without any name or code.
The header is on the right with the pins in this order: "5V", "3V3", "GND", "SCL", "SDA", "INT", "SYNC", "CLK", "ASCL", "ADSA".
There are two pull-up resistors for the SCL and SDA, but the value is unknown. On the back are three solder jumpers, one of them for AD0.
no name breakout board 2
In 2014 a new MPU-6050 appeared without any name or code.
http://www.i2cdevlib.com/forums/topic/8-mpu6050-connection-failed/?p=347
The header is on the left with the pins in this order: "VCC", "GND", "SCL", "SDA", "XDA", "XCL", "AD0", "INT".
It is almost equal to the GY-521 board. There is a voltage regulator on the board for 3.3V. There are two 10k pull-up resistors for the SCL and SDA, and also 330 ohm resistors in the SCL and SDA signal. Because of the voltage regulator, connect 5V to the VCC of this sensor board.

Pura vida

 

Ma chaine youtube  https://www.youtube....EQ5MTR3A/videos

Tutoriel MIT Inventor2  https://www.robot-ma...e-robot-mobile/


#13 Mike118

Mike118

    Staff Robot Maker

  • Administrateur
  • PipPipPipPipPip
  • 9 047 messages
  • Gender:Male
  • Location:Anglet
  • Interests:Robotique, Entrepreneuriat, Innovation, Programmation, Résolution de problème, Recherche de solutions, Mécanique, Electronique, Créer, Concevoir

Posté 01 décembre 2018 - 01:22

Je ne me vois pas mettre "no name breakout board 2 " sur la description de la fiche produit ... 
Par contre je peux éventuellement la compléter avec plus dinfo ...


Si mon commentaire vous a plus laissez nous un avis  !  :thank_you:

Nouveau sur Robot Maker ? 

Jetez un oeil aux blogs, aux tutoriels, aux ouvrages, au robotscope  aux articles,  à la boutique  et aux différents services disponible !
En attendant qu'une bibliothèque de fichiers 3D soit mise en place n'hésitez pas à demander si vous avez besoin du fichier 3D d'un des produits de la boutique... On l'a peut être ! 

 

Les réalisations de Mike118  

 

 

 


#14 gerardosamara

gerardosamara

    Membre passionné

  • Membres
  • PipPipPip
  • 374 messages
  • Gender:Male
  • Location:Costa Rica & Bretagne
  • Interests:La vie sous les tropiques

Posté 01 décembre 2018 - 04:54

Euh .. Désolé @Mike car après réflexion finalement toutes les fabricants utilisent le chip 6050 et ce n'est que du packaging ..

Donc ca n'a pas d'importance sauf si il y a des contraintes sur l'alimentation ou les liaisons I2C etc sont en 3.3v ou 5v


Pura vida

 

Ma chaine youtube  https://www.youtube....EQ5MTR3A/videos

Tutoriel MIT Inventor2  https://www.robot-ma...e-robot-mobile/


#15 Donovandu88

Donovandu88

    Membre chevronné

  • Membres
  • PipPipPipPip
  • 679 messages
  • Gender:Male

Posté 01 décembre 2018 - 11:22

Quelqu'un a déjà utilisé le MPU6050 en tant que capteur de choc?

Si oui, comment?



#16 Mike118

Mike118

    Staff Robot Maker

  • Administrateur
  • PipPipPipPipPip
  • 9 047 messages
  • Gender:Male
  • Location:Anglet
  • Interests:Robotique, Entrepreneuriat, Innovation, Programmation, Résolution de problème, Recherche de solutions, Mécanique, Electronique, Créer, Concevoir

Posté 01 décembre 2018 - 11:51

J'ai posté du code pour de la détection de choc sur ce sujet détection de choc avec un accéléromètre ! cela peut être utilisé indépendamment de l'accéléromètre utilisé à condition qu'il soit suffisament sensible et pas trop bruité. 

 


Si mon commentaire vous a plus laissez nous un avis  !  :thank_you:

Nouveau sur Robot Maker ? 

Jetez un oeil aux blogs, aux tutoriels, aux ouvrages, au robotscope  aux articles,  à la boutique  et aux différents services disponible !
En attendant qu'une bibliothèque de fichiers 3D soit mise en place n'hésitez pas à demander si vous avez besoin du fichier 3D d'un des produits de la boutique... On l'a peut être ! 

 

Les réalisations de Mike118  

 

 

 


#17 Donovandu88

Donovandu88

    Membre chevronné

  • Membres
  • PipPipPipPip
  • 679 messages
  • Gender:Male

Posté 01 décembre 2018 - 01:18

Merci, je vais aller jeter un coup d’œil.



#18 Mike118

Mike118

    Staff Robot Maker

  • Administrateur
  • PipPipPipPipPip
  • 9 047 messages
  • Gender:Male
  • Location:Anglet
  • Interests:Robotique, Entrepreneuriat, Innovation, Programmation, Résolution de problème, Recherche de solutions, Mécanique, Electronique, Créer, Concevoir

Posté 07 mars 2019 - 08:09

15° de dérive en 1 heure, quand même c'est pas rien, est il possible de corriger ça ?

 

Je t'invite à lire l'ouvrage "JEKERT " plus particulièrement : dérive gyroscopique, complément indispensable
 


Si mon commentaire vous a plus laissez nous un avis  !  :thank_you:

Nouveau sur Robot Maker ? 

Jetez un oeil aux blogs, aux tutoriels, aux ouvrages, au robotscope  aux articles,  à la boutique  et aux différents services disponible !
En attendant qu'une bibliothèque de fichiers 3D soit mise en place n'hésitez pas à demander si vous avez besoin du fichier 3D d'un des produits de la boutique... On l'a peut être ! 

 

Les réalisations de Mike118  

 

 

 




Répondre à ce sujet



  



Aussi étiqueté avec au moins un de ces mots-clés : imu, MPU 6050, centrale inertielle, MPU6050

0 utilisateur(s) li(sen)t ce sujet

0 members, 0 guests, 0 anonymous users