Code de l'accéléromètre, du gyroscope et du magnétomètre MPU-9250

Code de l'accéléromètre, du gyroscope et du magnétomètre MPU-9250

Dans ce tutoriel, nous allons explorer comment utiliser le capteur MPU-9250, qui combine un accéléromètre, un gyroscope et un magnétomètre dans un seul module compact. À la fin de ce guide, vous serez en mesure de lire les données du capteur et d'interpréter leur signification dans vos projets. Ce capteur est particulièrement utile pour des applications comme la robotique et les drones, où l'orientation et le suivi des mouvements sont essentiels. Vous pouvez vous référer à la vidéo pour des précisions supplémentaires sur l'installation et le code (dans la vidéo à 00:20).

ELE_MPU6050_208
ELE_MPU6050_208

Matériel expliqué

Le module MPU-9250 intègre trois capteurs : un accéléromètre, un gyroscope et un magnétomètre. L'accéléromètre mesure les forces d'accélération, vous permettant de déterminer la vitesse et l'orientation. Le gyroscope fournit la vitesse angulaire, vous aidant à comprendre le changement d'orientation dans le temps. Enfin, le magnétomètre agit comme une boussole, fournissant des données sur le champ magnétique qui aident à la navigation.

Cette combinaison de capteurs est particulièrement bénéfique dans les applications où un suivi de mouvement précis est requis, comme dans les drones ou les smartphones. Le MPU-9250 communique via I2C ou SPI, ce qui le rend polyvalent pour différentes configurations de microcontrôleurs.

Détails de la fiche technique

Fabricant InvenSense
Numéro de pièce MPU-9250
Tension logique/IO 1,8 V (I/O), 3,3 V (alimentation)
Tension d'alimentation 2,4 - 3,6 V
Courant de sortie (par canal) 3,2 mA (fonctionnement normal)
Courant de crête (par canal) 19,8 mA (max)
Directives de fréquence PWM N/A
Seuils de logique d'entrée 0,3 * VDD(bas), 0,7 * VDD(haut)
Chute de tension / RDS(on)/ saturation N/A
Limites thermiques -40 à 85 °C
Paquet QFN
Remarques / variantes Inclut un régulateur de tension interne
  • Assurez-vous d'une alimentation en tension appropriée (2,4 - 3,6 V) pour éviter d'endommager le module.
  • Utilisez une résistance de tirage pour les lignes SDA et SCL si elle n'est pas déjà incluse sur votre carte d'extension.
  • Vérifiez l'adresse I2C (la valeur par défaut est 0x68) et ajustez le broche ADO en conséquence pour les adresses alternatives.
  • Vérifiez les connexions pour leur stabilité afin de prévenir les lectures erronées.
  • Calibrer les capteurs régulièrement pour des mesures précises.

Instructions de câblage

Câblage Arduino pour MPU6050 utilisant A4 et A4 pour SDA et SCL
Câblage Arduino pour le MPU6050 utilisant A4 et A5 pour SDA et SCL
Arduino Wiring for MPU-6050
Arduino Wiring for MPU-6050
Arduino wiring for  MPU6050 using A4 and A4 for SDA and SCL
Arduino wiring for MPU6050 using A4 and A4 for SDA and SCL

Pour câbler le MPU-9250 à votre Arduino, commencez par connecter la broche VCC sur le MPU-9250 à la broche 5V sur l'Arduino. Le module a un régulateur interne, donc il est sûr de l'alimenter avec 5V. Ensuite, connectez la broche GND à la masse (GND) sur l'Arduino. Pour la communication de données, connectez la broche SDA à la broche A4 sur l'Arduino et la broche SCL à la broche A5. Cette configuration est standard pour de nombreuses cartes Arduino.

Si vous utilisez un Arduino Mega, les broches SDA et SCL se trouvent respectivement aux broches 20 et 21. Assurez-vous que les connexions sont sécurisées pour éviter toute erreur de communication. Si vous devez changer l'adresse I2C du MPU-9250, connectez la broche ADO à 5V pour la définir sur 0x69. La déconnexion la ramènera à 0x68.

Schéma Arduino pour MPU6050 utilisant A4 et A5 pour SDA et SCL
Schéma Arduino pour MPU6050 utilisant A4 et A4 pour SDA et SCL

Exemples de code et guide étape par étape

Dans le croquis Arduino, nous commençons par inclure la bibliothèque MPU9250 et créer une instance du capteur :

#include "MPU9250.h"
MPU9250 IMU(Wire,0x68);

Le code initialise le capteur et commence la communication dans lesetup()fonction :

void setup() {
  Serial.begin(115200);
  status = IMU.begin();
  if (status < 0) {
    Serial.println("IMU initialization unsuccessful");
    while(1) {}
  }
}

Dans leloop()fonction, nous lisons et imprimons en continu les données du capteur :

void loop() {
  IMU.readSensor();
  Serial.print("AccelX: ");
  Serial.print(IMU.getAccelX_mss(),6);
  // More print statements for other axes
}

Cette section lit les valeurs de l'accéléromètre, du gyroscope et du magnétomètre, les affichant dans le moniteur série. Assurez-vous de vérifier le code complet chargé sous l'article pour l'implémentation complète.

Démonstration / Que Sattendre

Lorsque vous exécutez le code, vous devriez voir les valeurs des capteurs se mettre à jour en temps réel sur le Moniteur Série. Les valeurs de l'accéléromètre fluctueront à mesure que vous déplacerez le capteur, tandis que les valeurs du gyroscope afficheront le taux de rotation. Le magnétomètre vous donnera la force du champ magnétique sur trois axes, ce qui peut être utilisé pour déterminer l'orientation. Faites attention aux entrées flottantes, car elles peuvent entraîner des lectures inexactes (dans la vidéo à 12:30).

Chapitres

  • Introduction (00:00)
  • Matériel expliqué (01:30)
  • Instructions de câblage (04:00)
  • Exemples de code et explication (06:00)
  • Démonstration (10:00)

Images

ELE_MPU6050_208
ELE_MPU6050_208
Arduino Wiring for MPU-6050
Arduino Wiring for MPU-6050
Arduino Schematic for  MPU6050 using A4 and A4 for SDA and SCL
Arduino Schematic for MPU6050 using A4 and A4 for SDA and SCL
Arduino wiring for  MPU6050 using A4 and A4 for SDA and SCL
Arduino wiring for MPU6050 using A4 and A4 for SDA and SCL
126-Arduino code for an MPU-9250 accelerometer, gyroscope, and magnetometer
Langue: C++
Copié !

Ressources et références

Fichiers📁

Aucun fichier disponible.