MPU6050: Accéléromètre Arduino 6 axes + Gyro - Test GY 521 et simulation 3D

Vous cherchez à créer votre propre drone quadcopter ou avion RC avec Arduino, mais vous ne savez pas comment faire fonctionner le gyroscope? Peut-être avez-vous déjà acheté des modules MPU6050 à 6 axes (sur les cartes de dérivation GY-521) pour découvrir qu'ils n'étaient pas aussi simples à utiliser que vous le pensiez? Essayez ceci!

Vous apprendrez à câbler un circuit simple pour tester votre MPU6050 avec un Arduino et simuler le YAW, le PITCH et le ROLL sur un plan de modèle 3D à l'écran. Il s'agit d'un outil d'apprentissage pour vous familiariser avec les modules gyroscopiques, les cartes de dérivation et l'installation des bibliothèques nécessaires sur votre IDE Arduino pour vous permettre de tirer le meilleur parti de votre gyroscope MEMS et de gagner du temps au lieu d'écrire du code complexe à partir de zéro.

Ce dont vous avez besoin se trouve sur eBay (liens ci-dessous):

  • 1 x câble Arduino UNO + USB
  • 1 x mini maquette de prototypage
  • 1 x carte de dérivation GY-521
  • Certains câbles de démarrage mâle à mâle
  • Fer à souder + soudure

Étape 1: Circuit de câblage comme illustré ci-dessous:

*** REMARQUE : tous les câbles rouges sont VCC (+ 5V) et les câbles noirs sont GND, vérifiez soigneusement lors du câblage de votre circuit. La carte de dérivation est livrée avec des broches mais nécessite une soudure. ***

Pour votre propre apprentissage:

  • le module gyroscopique communique avec l'Arduino via la communication série I2C via l'horloge série (SCL) et les données (SDA)
  • la puce MPU6050 a besoin de 3, 3 V mais un régulateur de tension sur la carte GY-521 vous permet de lui donner jusqu'à 5 V
  • Pour plus d'informations sur le module, il existe une excellente ressource sur cette page dans l'Arduino Playground

Étape 2: installer les bibliothèques I2Cdev et MPU6050

Si nous devions écrire le code à partir de zéro, cela prendrait des années et il faudrait beaucoup d'ingénierie inverse pour faire bon usage du moteur DMP (Digital Motion Processing) propriétaire du module, car Invensense a intentionnellement publié des données minimales sur son MPU6050. Heureusement que quelqu'un a déjà travaillé dur pour nous; Jeff Rowberg a écrit quelques bibliothèques Arduino pour obtenir les données de l'accéléromètre / gyroscope et gérer tous les calculs. Ils sont disponibles sous forme de fichier zip à partir d'ici:

//github.com/jrowberg/i2cdevlib/zipball/master

Une fois décompressé, recherchez-y le dossier Arduino et copiez les deux dossiers "I2Cdev" et "MPU6050" dans votre dossier "Bibliothèques" Arduino dans le répertoire suivant:

C: \ Program Files (x86) \ Arduino \ bibliothèques

Ensuite, ouvrez l'IDE Arduino et dans la section des exemples, vous devriez trouver MPU6050_DMP6 dans MPU6050. Ouvrez-le, branchez votre arduino, sélectionnez le port COM approprié et téléchargez le croquis. Dans la fenêtre série, sélectionnez un débit en bauds de 115200. Vous devez être informé que la connexion MPU6050 a réussi. Vous pouvez tester la collecte de données en tapant n'importe quoi dans la barre de texte et en appuyant sur Entrée, les données devraient commencer à apparaître.

Maintenant, nous voulons définir le code pour exécuter la démonstration de la théière pour afficher la simulation 3D. Fermez la fenêtre série, puis recherchez et commentez la ligne #define OUTPUT_READABLE_YAWPITCHROLL et décommentez la ligne // # define OUTPUT_TEAPOT. Sélectionnez "enregistrer sous" et choisissez où vous souhaitez enregistrer le code modifié. Téléchargez à nouveau mais n'ouvrez pas la fenêtre série cette fois.

Étape 3: Téléchargez et installez la dernière version de la bibliothèque Processing & ToxicLibs

Pour exécuter une simulation 3D des valeurs de lacet / tangage / roulis sur un avion à l'écran, nous exécuterons la démonstration de la théière à partir de l'exemple MPU6050_DMP6 du libraire MPU6050 de Jeff Rowberg. Cependant, l'IDE Arduino n'acquerra que les données, pour afficher la simulation 3D, nous aurons besoin d'un logiciel supplémentaire: Traitement. Téléchargez le traitement à partir d'ici, puis décompressez où vous le souhaitez:

//processing.org/download/?processing

Nous aurons besoin d'une bibliothèque finale pour faire fonctionner les choses: ToxicLib. Cette bibliothèque ira dans le dossier des bibliothèques de Processing au lieu d'Arduino. La dernière version de la bibliothèque ToxicLibs est ici:

//bitbucket.org/postspectacular/toxiclibs/downloads/

Le dossier "bibliothèques" de Traitement peut être trouvé en suivant (à partir du dossier de traitement): modes -> java -> bibliothèques. Décompressez ToxicLibs et placez-y TOUT le contenu.

Étape 4: exécuter la simulation

Enfin, ouvrez le fichier d'application Traitement puis

Fichier -> Ouvrir -> suivre ce répertoire C: \ Program Files (x86) \ Arduino \ bibliothèques \ MPU6050 \ Examples \ MPU6050_DMP6 \ Processing \ MPUTeapot

et ouvrez le fichier MPUTeapot.

Cliquez sur le bouton de lecture et le système devrait se calibrer pendant environ 20-30 secondes, laissez le gyroscope immobile pendant cette période.

Maintenant, prenez le gyroscope et testez le lacet / tangage / roulis. Une fois que vous êtes satisfait que tout fonctionne correctement, vous pouvez commencer à l'expérimenter pour vos propres projets. Si vous souhaitez utiliser pleinement les bibliothèques I2Cdev ou MPU6050 et leurs fonctions, consultez leurs fichiers d'en-tête.

J'espère faire un instructable sur la fabrication d'un drone DIY sous peu, donc si vous avez trouvé celui-ci utile, pourquoi ne pas rester à l'écoute pour de futurs projets en me suivant sur Instructables et sur Facebook / Twitter / Google+.

Si vous avez apprécié cet enseignement et que vous souhaitez en voir plus, veuillez envisager de me soutenir en achetant votre matériel pour ce projet via les liens d'affiliation dans la section des matériaux ou en faisant un don ci-dessous:

PayPal : //www.paypal.me/HobbyTransform

Bitcoin : 1Mqe7et24Lz4DY1RUN4iAQVHkvJsdFArKR

Ethereum : 0x6d8248db1cdea6a783cb6b41ae67bb8e6144f479

Litecoin : LW6PWESqsr8xHw6EJ9WLbsQsAyTvPnwnxJ

Dash : Xemv7jud697v8tQmKfNFoMxfkd17ZayH2t

Votre aide est très appréciée! Bricolage heureux!

Articles Connexes