MPU6050, un accéléromètre et gyroscope
Introduction
Le MPU6050 est un circuit integré qui contient un accéléromètre pour et un gyroscope. L'accéléromètre mesure l’accélération statique dans les trois axes, tandis que le gyroscope mesure la rotation autour ces trois axes. Pour une description détaillé voir sa
fiche technique
et la
description des régistres
.
Un
pilote très complet
a été écrit pour l’Arduino en C++ par Jeff Rowberg et j’ai transcrit ce pilote en MicroPython. Le pilote est disponible sur github:
https://github.com/uraich/IoT-Course/tree/master/exercises/solutions/exercise_16/mpu6050
.
Exercise 1: I2C scan
Connecter le MPU6050 avec la carte CPU sur les pins Vcc, GND, SDA,SCL et INT.
Exécuter le program
i2cScan.py 
et vérifier que le MPU6050 est reconnu sur le bus I2C.
Exercise 2: Vérification du régistre d'identification
Étudier le pilote du MPU6050 et le comparer avec la documentation des régistres.
Créer un objet MPU6050 et lire le régistre Who_AM_I. Vérifier qu'on lit le code identificateur décrit dans la fiche technique
Exercice 3: Lecture des données
Lire les données brutes de l'accéléromètre et du gyroscope et convertir ces valeurs dans des données physique (unité
g pour l'accélération et
dps: degrées par seconde, pour le gyroscope). Est ce que ces valeurs sont raisonbles?. Pour l'accélération on doit trouver 1g pour la direction vertical, zéro pour les autres.
Exercice 4: Calibration
Calibrer le MPU6050. Voir l'exemple IMU_Zero.py
Exercice 5: Interruptions movement et inactivité
Écrire un program qui détecte le movement et l'inactivité. Générer et capter des interruptions pour les deux cas.
Exercice 6: Lecture du FiFo
Lire l'accélération et rotation en utilisant le FiFo.
--
Uli Raich - 2022-02-21
Comments