Démarrage avec un Capteur de Mouvement IMU 6-DOF (MPU-6050)
Composants et Fournitures
| Composant | Description | Qté |
|---|---|---|
| Arduino UNO | 1 | |
| Module IMU MPU-6050 (6 axes) | Accéléromètre 3 axes + Gyroscope 3 axes + DMP | 1 |
À Propos du Projet
Le MPU-6050 combine accéléromètre et gyroscope sur une même puce avec un processeur de mouvement numérique (DMP) exécutant des algorithmes MotionFusion 6 axes. Idéal pour smartphones, tablettes, wearables.
Communication : Bus I2C (SDA → A4, SCL → A5, VCC → 5V ou 3,3V selon module, GND → GND, INT → Pin 2).
Installation des Bibliothèques
- Télécharger
MPU6050.zipetI2Cdev.zip. - Extraire et copier les dossiers dans
Arduino/libraries/. - Redémarrer l'IDE Arduino.
Test avec l'Exemple DMP
- Ouvrir
Fichier > Exemples > MPU6050 > MPU6050_DMP6. - Inclure
I2Cdev.hetMPU6050_6Axis_MotionApps20.h. - Compiler et téléverser.
- Ouvrir le Moniteur Série à 115200 bauds.
- Envoyer un caractère pour lancer la démo DMP.
Le DMP (Digital Motion Processing) fusionne accéléromètre et gyroscope pour donner Yaw, Pitch, Roll précis.
Comprendre l'I2C
Bus 2 fils (SDA données, SCL horloge) + masse. Multi-maître, adressage 7 bits. Arduino = maître, MPU-6050 = esclave.
Code Principal (Extrait MPU6050_DMP6)
#include "I2Cdev.h"
#include "MPU6050_6Axis_MotionApps20.h"
#if I2CDEV_IMPLEMENTATION == I2CDEV_ARDUINO_WIRE
#include "Wire.h"
#endif
MPU6050 mpu; // AD0 bas = 0x68
#define OUTPUT_READABLE_YAWPITCHROLL
#define LED_PIN 13
// ... variables DMP, FIFO, quaternions, vecteurs ...
void setup() {
Wire.begin();
TWBR = 24; // 400 kHz I2C
Serial.begin(115200);
while (!Serial);
mpu.initialize();
if (mpu.testConnection()) Serial.println("MPU6050 OK");
else Serial.println("Échec connexion");
// Offsets gyro/accel (à calibrer)
mpu.setXGyroOffset(220);
mpu.setYGyroOffset(76);
mpu.setZGyroOffset(-85);
mpu.setZAccelOffset(1788);
// Initialisation DMP
if (mpu.dmpInitialize() == 0) {
mpu.setDMPEnabled(true);
attachInterrupt(0, dmpDataReady, RISING);
dmpReady = true;
packetSize = mpu.dmpGetFIFOPacketSize();
}
pinMode(LED_PIN, OUTPUT);
}
void loop() {
if (!dmpReady) return;
// Attente interruption ou FIFO
// Lecture paquet FIFO → quaternions → Yaw/Pitch/Roll
// Affichage série selon #define
// Clignotement LED activité
}
Schéma de Câblage
Voir image : MPU-6050 VCC→5V/3.3V, GND→GND, SDA→A4, SCL→A5, INT→Pin 2.
Processus de fabrication
- Capteur de suivi de ligne KY‑033 avec Raspberry Pi : Détecteur de porte/lignes simple
- Créer une API robuste de température et capteurs sur Raspberry Pi avec le module GY‑91
- Contrôler une LED avec un capteur de mouvement PIR sur Raspberry Pi
- Maîtriser le GPIO Raspberry Pi : Interfacer un capteur PIR de mouvement sur B+/Modèle 2
- Comment connecter, calibrer et programmer le capteur de mouvement PIR HC‑SR501 avec un Raspberry Pi
- Démarrage avec TJBot : Construire, Configurer et Contrôler par la Voix Votre Propre Robot IA
- Guide Pas à Pas pour Déployer une Passerelle LoRa RAK 831 sur Raspberry Pi 3
- Construire une passerelle LoRa avec le module RAK831 sur Raspberry Pi 3 – Guide pas à pas
- IA dans l'assurance : Guide pratique de démarrage pour une implémentation réelle