Sélectionner une page

MPU6050, définition, utilisations et projets avec Arduino

Les jeux en 3D, les images en 3D et les vidéos en 3D sont la technologie de choix aujourd’hui. Pour améliorer l’expérience de l’utilisateur final, les fabricants introduisent de nombreuses nouvelles méthodes. Les principales fonctions de la technologie 3D sont la détection de rotation, la détection d’orientation, la détection de mouvement, la détection de geste, ainsi que la reconnaissance, etc. Les appareils qui peuvent mesurer ces fonctions sont des capteurs tels que les gyroscopes et les accéléromètres. Comme la taille du produit final est très petite, les capteurs qui y sont intégrés doivent également répondre aux exigences de la petite taille. Le MPU6050 est venu comme une réponse à ce défi. C‘est en effet le plus petit appareil qui intègre à la fois des gyroscopes et des accéléromètres sur une même puce. Il peut être facilement intégré dans un smartphone grâce à sa petite taille.

Qu’est-ce que le MPU6050 ?

Le MPU6050 est un dispositif de suivi de mouvement à 6 axes basé sur les MEMS. Elle est dotée d’un gyroscope et de capteurs d’accéléromètre sur la puce ainsi que d’un capteur de température. Le MPU6050 est un appareil numérique. Ce module est de très petite taille, a de faibles besoins en consommation d’énergie, est très précis, a une grande répétabilité, une grande tolérance aux chocs, a une programmabilité de performance spécifique à l’application et est peu coûteux à l’achat. Le MPU6050 peut être facilement connecté à d’autres capteurs tels que des magnétomètres et des microcontrôleurs.

C’est le premier dispositif de suivi de mouvement en six dimensions au monde. Il a été conçu pour les smartphones, les tablettes et les capteurs portables à faible coût et à haute performance. Il est capable de traiter des algorithmes à neuf axes, capturant le mouvement dans les axes X, Y et Z en même temps. Le MPU6050 est utilisé dans différents projets industriels et appareils électroniques pour contrôler et détecter le mouvement tridimensionnel de différents objets. Dans le billet d’aujourd’hui, nous allons examiner son fonctionnement, son brochage, son protocole, son interface avec Arduino, ses caractéristiques, ses applications, etc. Commençons par l’introduction de base du MPU6050.

Le module MPU6050 se compose des blocs et fonctions suivants :

  • Un capteur gyroscopique MEMS à 3 axes avec trois CAN 16 bits et conditionnement du signal.
  • Un capteur accélérométrique MEMS à 3 axes avec trois CAN 16 bits et conditionnement du signal
  • Un moteur de processeur de mouvement numérique sur la puce.
  • Interfaces de communication numérique 12C primaires
  • Interfaces I2C auxiliaires pour la communication avec des capteurs externes tels que le magnétomètre
  • Horloge interne.
  • Des journaux de données pour stocker les données des capteurs.
  • Une mémoire FIFO qui permet de réduire la consommation d’énergie.
  • Interruptions programmables par l’utilisateur.
  • Un capteur de température à sortie numérique.
  • Auto-test pour le gyroscope et l’accéléromètre.
  • LDO et partialité.
  • Pompe de chargement.
  • Les fiches de statut.

MPU6050 Pin Out, schéma des broches

Le MPU6050 est disponible sous la forme d’un petit appareil de 4×4×0,9 mm. La structure MEMS est hermétiquement scellée et fixée au niveau de la plaquette. Le MPU6050 est disponible sous forme de boîtier QFN à 24 broches. La description des broches de ce module est la suivante :

mpu6050 PIN out - MPU6050, Diagrama de pines, circuito y conexión con Arduino

  • Pin-1- CLKIN- est l’entrée optionnelle pour l’horloge de référence externe. Cette broche est mise à la terre lorsqu’elle n’est pas utilisée.
  • Pin-2, Pin-3, Pin-4, Pin-5 sont les broches NC. Ces broches ne sont pas connectées en interne.
  • La broche 6, AUX_DA, est la broche de données de la série maîtresse de I2C. Cette broche est utilisée pour connecter des capteurs externes.
  • La broche 7, AUX_CL, est l’horloge série principale de I2C. Cette broche est utilisée pour connecter des capteurs externes.
  • La broche 8, VLOGIC, est la broche de tension d’alimentation des E/S numériques.
  • La broche 9, AD0, est la broche LSB de l’adresse de l’esclave I2C.
  • La broche 10, REGOUT, est la connexion du condensateur du filtre régulateur.
  • La broche 11, FSYNC, est l’entrée de synchronisation de la trame numérique. Cette broche est mise à la terre lorsqu’elle n’est pas utilisée.
  • La broche 12, INT, est la broche d’interruption de la sortie numérique.
  • La broche 13, VDD, est la broche de tension de l’alimentation électrique.
  • Les broches 14, 15, 16 et 17 sont les broches NC. Ces broches ne sont pas connectées en interne.
  • La broche 18, GND, est la masse de l’alimentation électrique.
  • Les broches 19 et 21 sont les broches RESV. Ces pins sont réservés.
  • La broche 20, CPOUT, est la connexion du condensateur de la pompe de charge.
  • La broche 22, est RESV, la broche réservée.
  • Le Pin-23, SCL, est l’horloge série I2C.
  • La broche 24, SDA, est la broche de données série de I2C.

Spécifications du MPU6050

Le MPU6050 est le premier dispositif de suivi de mouvement 6 axes intégré au monde. Certaines des spécifications de ce module sont données ci-dessous :

  • Le MPU6050 possède un gyroscope 3 axes, un accéléromètre 3 axes et un processeur de mouvement numérique intégré sur une seule puce.
  • Il fonctionne avec l’alimentation électrique 3V-5V.
  • Le MPU6050 utilise le protocole I2C pour la communication et le transfert de données.
  • Ce module possède un CAN 16 bits intégré qui offre une grande précision.
  • Le MPU6050 peut être interfacé avec d’autres dispositifs IIC tels que des magnétomètres.
  • Le MPU6050 possède également un capteur de température intégré.
  • Le bus de capteurs I2C vous aide à recueillir des données directement à partir de la boussole externe à 3 axes, qu’il utilise pour fournir une sortie MotionFusion 9 axes complète.
  • Pour les utilisateurs, le MPU6050 élimine le besoin de sélection, de qualification et d’intégration au niveau du système des dispositifs discrets.
  • Grâce à son port I2C, des capteurs non inertiels tels que le capteur de pression peuvent être interconnectés.
  • Le MPU6050 se compose de trois CAN 16 bits pour numériser les sorties du gyro 0 et de trois CAN 16 bits pour numériser les sorties de l’accéléromètre.
  • Une gamme de gyroscopes et une gamme d’accéléromètres programmables par l’utilisateur sont disponibles pour le suivi précis des mouvements rapides et lents.
  • Un tampon FIFO de 1024 octets est disponible sur la puce, ce qui contribue à réduire la consommation d’énergie du module.
  • La nécessité de regrouper fréquemment les sorties des capteurs est réduite au minimum grâce au DMP de la puce.
  • Le MPU6050 possède également un oscillateur sur puce avec une variation de ±1%.
  • Le MPU6050 est équipé de filtres passe-bas pour le gyroscope, l’accéléromètre et le capteur de température.
  • La broche de référence VLOGIC est utilisée pour définir les niveaux logiques de l’interface I2C.
  • La plage programmable par l’utilisateur du gyroscope présent dans le MPU6050 est de ±250, ±500, ±1000 et ±2000°/sec.
  • La synchronisation des images, des vidéos et du GPS est compatible avec la prise de synchronisation gyroscopique externe.
  • Ce gyroscope a amélioré les performances du bruit à basse fréquence.
  • Le gyroscope a besoin de 3,6 mA de courant pour fonctionner.
  • Le filtre passe-bas du gyroscope est programmable numériquement.
  • L’accéléromètre présent dans le MPU6050 fonctionne sur 500μA current.
  • La gamme programmable de cet accéléromètre est de ±2g, ±4g, ±8g et 16g.
  • L’accéléromètre peut également détecter l’orientation, la détection de robinet.
  • Des interruptions programmables par l’utilisateur sont présentes pour l’accéléromètre.
  • Entre les axes de l’accéléromètre et du gyroscope, il y a une sensibilité minimale dans les axes croisés.
  • Le mode rapide I2C à 400 kHz est utilisé pour communiquer avec tous les registres.
  • Le DMP du MPU6050 prend en charge le traitement des mouvements 3D et les algorithmes de reconnaissance des gestes.
  • Une lecture en rafale est fournie pour le processeur du système. Après avoir lu les données de la FIFO, le processeur système se met en mode veille à faible puissance tandis que le MPU collecte davantage de données.
  • Les interruptions programmables prennent en charge des fonctions telles que la reconnaissance des gestes, le défilement, le zoom, le défilement, la détection des touches et la détection des cabines.
  • Le MPU6050 dispose également d’une entrée d’horloge externe optionnelle de 32,768 kHz ou 19,2 Mhz.

Connexion du MPU6050 à Arduino

Le MPU6050 communique avec la carte Arduino via le protocole I2C. Le MPU6050 est connecté à Arduino comme indiqué dans le schéma ci-dessous. Si votre module MPU6050 a une prise de 5V, vous pouvez le connecter à la prise 5V d’Arduino. Sinon, vous devrez le connecter à la broche 3,3V. Ensuite, le GND de l’Arduino est connecté au GND du MPU6050.

como conectar mpu6050 con arduino - MPU6050, Diagrama de pines, circuito y conexión con Arduino

Le programme que nous allons exécuter ici tire également parti de la broche d’interruption Arduino. Connectez la broche numérique 2 de votre Arduino (broche d’interruption 0) à la broche marquée INT dans le MPU6050.

Ensuite, nous devons configurer les lignes I2C. Pour ce faire, connectez la broche marquée SDA dans le MPU6050 à la broche analogique 4 (SDA) d’Arduino, et la broche marquée SCL dans le MPU6050 à la broche analogique 5 (SCL) d’Arduino. Vous venez de câbler le MPU 6050 d’Arduino.

Chargement du code et test du MPU6050 avec Arduino

Pour tester le MPU6050 avec Arduino, téléchargez d’abord la bibliothèque Arduino pour le MPU6050, développée par Jeff Rowberg. Vous pouvez trouver la bibliothèque à ce lien. Ensuite, vous devez décompresser/extraire cette bibliothèque, prendre le dossier appelé « MPU6050 », et le coller dans le dossier « library » d’Arduino. Pour ce faire, rendez-vous à l’endroit où vous avez installé Arduino (Arduino -> libraries) et collez-le dans le dossier « libraries ». Vous devrez peut-être aussi faire de même pour installer la bibliothèque I2Cdev si vous ne l’avez pas déjà pour votre Arduino. Pour l’installer, procédez de la même manière que ci-dessus. Vous pouvez trouver le dossier ici.

Si vous l’avez fait correctement, lorsque vous ouvrez l’IDE Arduino, vous verrez « MPU6050 » dans Fichier -> Exemples. Ensuite, ouvrez le programme d’exemple depuis Fichier -> Exemples -> MPU6050 -> Exemples -> MPU6050_DMP6.

codigo MPU6050 - MPU6050, Diagrama de pines, circuito y conexión con Arduino

Vous devez ensuite télécharger ou charger ce code sur votre Arduino. Après avoir téléchargé le code, ouvrez le moniteur série et réglez le débit en bauds sur 115200. Vérifiez ensuite si vous voyez quelque chose comme « Starting I2C devices… » dans le moniteur série. Si vous ne le voyez pas, appuyez simplement sur le bouton de réinitialisation. Maintenant, vous verrez une ligne qui dit : « Envoyez n’importe quel personnage pour commencer la programmation et la démonstration du DMP ». Il suffit de taper n’importe quel caractère dans le moniteur série et de l’envoyer, et vous devriez commencer à voir les valeurs de lacet, de tangage et de roulis provenant du MPU6050.

arduino monitor serial MPU6050 - MPU6050, Diagrama de pines, circuito y conexión con Arduino

DMP signifie Digital Motion Processing. Le MPU6050 possède un processeur de mouvement intégré. Il traite les valeurs de l’accéléromètre et du gyroscope pour nous donner des valeurs 3D précises.

En outre, vous devrez attendre environ 10 secondes avant d’obtenir des valeurs précises de l’Arduino MPU6050, après quoi les valeurs commenceront à se stabiliser.