Données du filtre I2C
Dans le système de communication à circuit intégré (I2C), un dispositif maître peut communiquer avec un maximum de 128 appareils esclaves. Chaque esclave est identifié par une adresse unique et le transfert de données s'effectue sur la ligne de données bidirectionnelle (SDA). L'autre ligne correspond à la ligne de l'horloge de synchronisation bidirectionnelle (SCL). I2C est également connu sous le nom d'interface à deux fils (TWI).
Dans cet exemple, le code est déployé sur un Arduino Nano pour lire les données de l'accéléromètre et du gyroscope d'un capteur I2C MPU-6050. L'angle d'orientation du capteur peut être calculé à partir des lectures de l'accéléromètre ou du gyroscope. Ces calculs sont inexacts car le premier est bruité et le second dérive à l'état stable. Ainsi, un filtre complémentaire est également déployé pour mélanger les deux valeurs. Les valeurs non filtrées et filtrées seront renvoyées sur le bus en série et visualisées.
L'accélération le long des axes et , la température et la vitesse angulaire le long de l'axe sont sauvegardées dans deux octets, chacun commençant à l'adresse 0x3D. Voici les caractéristiques pour obtenir ces 8 octets.
Les caractéristiques d'initialisation.
L'adresse du MPU-6050 est 0x68. Voici ses caractéristiques complètes.
La conversion pour chaque canal d'entrée.
Les caractéristiques complètes du microcontrôleur.
Un préfiltre calcule l'angle en degrés à partir des données de l'accéléromètre ainsi que la vitesse angulaire en degrés par seconde à partir des données du gyroscope.
Un filtre complémentaire calcule une valeur d'angle filtrée à partir des sorties du préfiltre.
Un intégrateur calcule l'angle simplement en intégrant la vitesse d'angle.
Le modèle du système complet.
Déployez le code.
Établissez une connexion avec l'Arduino Nano.
Créez une tâche pour lire les données.
Analysez les données et représentez-les dans un graphique.
Supprimez la tâche et mettez fin à la connexion avec l'appareil.