L'accéléromètre MPU6050
Introduction
Le MPU6050 est un accéléromètre et gyroscope mesurant l'accélération dans les trois axes ainsi que la rotation autours ces trois axes. Le module utilise l'interface I2C.
Exercice 1 : Comprendre le bus I2C
Lire la documentation du bus I2C et les fiches techniques du MPU6050:
Lire les fiches techniques du MPU6050
Le pilote le plus complet que j'ai trouvé sur internet est celui de Jeff Rowberg. Ce pilote est écrit en C++ et il est destiné au SDK Arduino. Pour l'utiliser avec MicroPython il doit être porté de C++ à Python. Ce pilote ne comporte pas seulement l'accès à tous les registres du MPU6050 mais aussi des fonctions pour faire marcher le contrôleur de mouvement digital (DMP: Digital Motion Controller) , pour lequel je n'ai trouvé aucune autre information.
Exercice 2 : Trouver les modules I2C sur le bus
Écrire un programme qui imprime les adresses de toutes le modules présent sur le bus I2C. Ce programme sera utilisé pour tous les modules I2C qui seront utilisé dans le cours. Pour cette raison, le programme doit être soigneusement vérifié. Le résultat du programme doit être formaté comme suit :
La copie d'écrans montre un MPU6050 avec l'adresse I2C de 0x68 connecté sur le bus I2C.
Exercice 3 : Le registre WHO_AM_I
Initialiser le MPU6050 et imprimer le contenu du registre WHO_AM_I. La description des registres nous dit qu'on doit trouver la valeur 0x34.
Exercice 4 : Lire les valeurs de l'accéléromètre ACCEL_XOUT .. ACCEL_ZOUT.
Lire les registres accel_xout_h .. accel_zout_l, combiner les valeurs des registres xxx_H et xxx_L et imprimer les valeurs brutes.
Attention: Il s'agit des valeurs entières 16 bits avec signe !
Convertir ces valeurs en valeurs physiques avec les unités de mg (milli g, On doit trouver des valeurs proches de zéro pour les axes x et y et proche de 1 g pour l'axe z )
--
Uli Raich - 2022-04-27
Comments