Le GY-521 est un module basé sur le MPU-6050, un capteur combinant accéléromètre et gyroscope. Il permet de mesurer les mouvements et les rotations dans les trois axes (X, Y, Z), ce qui en fait un outil idéal pour les projets d’inertie et de suivi de mouvement. Connexion à la carte ArduinoLe GY-521 communique via le protocole I²C, ce qui facilite son branchement sur une carte Arduino :VCC → 5V (ou 3.3V selon votre modèle Arduino)GND → GNDSCL → A5 (sur Arduino Uno)SDA → A4 (sur Arduino Uno) Schéma du projet Programme du projet Pour ce projet, il vous faudra télécharger la librairie suivante : librairie.Pour l’installer, vous pouvez consulter notre cours dédié aux bibliothèques. #include <Wire.h> // Librairie pour la communication I2C const int MPU_addr = 0x68; // Adresse I2C du MPU-6050 int16_t AcX, AcY, AcZ, Tmp, GyX, GyY, GyZ; // Variables pour stocker les données du capteur void setup() { Wire.begin(); // Initialisation de la communication I2C Wire.beginTransmission(MPU_addr); Wire.write(0x6B); // Sélection du registre PWR_MGMT_1 Wire.write(0); // Mettre à 0 pour réveiller le MPU-6050 Wire.endTransmission(true); Serial.begin(9600); // Initialisation de la communication série pour l'affichage } void loop() { Wire.beginTransmission(MPU_addr); Wire.write(0x3B); // Commence la lecture à partir du registre 0x3B (ACCEL_XOUT_H) Wire.endTransmission(false); Wire.requestFrom(MPU_addr, 14, true); // Demande la lecture de 14 registres // Lecture des valeurs de l'accéléromètre AcX = Wire.read() << 8 | Wire.read(); // ACCEL_XOUT_H & ACCEL_XOUT_L AcY = Wire.read() << 8 | Wire.read(); // ACCEL_YOUT_H & ACCEL_YOUT_L AcZ = Wire.read() << 8 | Wire.read(); // ACCEL_ZOUT_H & ACCEL_ZOUT_L // Lecture de la température Tmp = Wire.read() << 8 | Wire.read(); // TEMP_OUT_H & TEMP_OUT_L // Lecture des valeurs du gyroscope GyX = Wire.read() << 8 | Wire.read(); // GYRO_XOUT_H & GYRO_XOUT_L GyY = Wire.read() << 8 | Wire.read(); // GYRO_YOUT_H & GYRO_YOUT_L GyZ = Wire.read() << 8 | Wire.read(); // GYRO_ZOUT_H & GYRO_ZOUT_L // Affichage des données sur le moniteur série Serial.print(" | AcX = "); Serial.println(AcX); Serial.print(" | AcY = "); Serial.println(AcY); Serial.print(" | AcZ = "); Serial.println(AcZ); Serial.print(" | Température = "); Serial.println(Tmp / 340.0 + 36.53); // Conversion en °C selon la datasheet Serial.print(" | GyX = "); Serial.println(GyX); Serial.print(" | GyY = "); Serial.println(GyY); Serial.print(" | GyZ = "); Serial.println(GyZ); Serial.println(); // Ligne vide pour séparer chaque lecture delay(333); // Pause de 333 ms entre chaque lecture }