Note

Bonjour, bienvenue dans la communauté SunFounder Raspberry Pi, Arduino et ESP32 sur Facebook ! Plongez plus profondément dans l’univers du Raspberry Pi, Arduino et ESP32 avec d’autres passionnés.

Pourquoi nous rejoindre ?

  • Support d’experts : Résolvez les problèmes post-achat et les défis techniques avec l’aide de notre communauté et de notre équipe.

  • Apprendre & Partager : Échangez des astuces et des tutoriels pour enrichir vos compétences.

  • Aperçus exclusifs : Bénéficiez d’un accès anticipé aux annonces de nouveaux produits et aux avant-premières.

  • Réductions spéciales : Profitez de remises exclusives sur nos derniers produits.

  • Promotions festives et cadeaux : Participez à des concours et promotions spéciales.

👉 Prêt à explorer et créer avec nous ? Cliquez sur [Ici] et rejoignez-nous dès aujourd’hui !

2.2.6 Module MPU6050

Introduction

Le MPU-6050 est le premier et le seul dispositif de suivi de mouvement à 6 axes au monde (gyroscope à 3 axes et accéléromètre à 3 axes), conçu pour les smartphones, les tablettes et les capteurs portables. Il se distingue par ses faibles coûts, sa faible consommation d’énergie et ses performances élevées.

Dans cette expérience, nous utiliserons le bus I2C pour obtenir les valeurs des capteurs d’accélération sur trois axes et du gyroscope sur trois axes pour le module MPU6050 et les afficherons à l’écran.

Composants

../_images/list_2.2.6.png

Schéma de câblage

Le MPU6050 communique avec le microcontrôleur via l’interface de bus I2C. Les broches SDA1 et SCL1 doivent être connectées aux broches correspondantes.

../_images/image330.png

Procédures expérimentales

Étape 1 : Montez le circuit.

../_images/image227.png

Étape 2 : Configurez l’I2C (voir l’annexe I2C Configuration. Si vous avez déjà configuré l’I2C, passez cette étape.)

Étape 3 : Accédez au répertoire du code.

cd ~/davinci-kit-for-raspberry-pi/nodejs/

Étape 4 : Installez les dépendances.

sudo npm install mpu6050-gyro

Étape 5 : Exécutez le code.

sudo node mpu6050_module.js

Une fois le code exécuté, l’angle de déviation sur les axes X et Y, ainsi que l’accélération et la vitesse angulaire sur chaque axe mesurés par le MPU6050 seront affichés à l’écran après le calcul.

Code

var gyro = require("mpu6050-gyro");

var address = 0x68; // Adresse du MPU6050
var bus = 1; // Bus I2C utilisé
var gyro = new gyro(bus, address);

async function update_telemetry() {

    var gyro_xyz = gyro.get_gyro_xyz();
    var accel_xyz = gyro.get_accel_xyz();

    var gyro_data = {
        gyro_xyz: gyro_xyz,
        accel_xyz: accel_xyz,
        rollpitch: gyro.get_roll_pitch( gyro_xyz, accel_xyz )
    }

    console.log(gyro_data);

    setTimeout(update_telemetry, 500);
}

if ( gyro ) {
    update_telemetry();
}

Explication du code

var gyro = require("mpu6050-gyro");

var address = 0x68; //MPU6050 address
var bus = 1; //i2c bus used
var gyro = new gyro( bus,address );

Importer le module mpu6050-gyro, spécifier l’adresse du MPU6050 et créer l’objet gyro pour appeler les fonctions encapsulées dans le module.

Note

About this module, please refer to: https://www.npmjs.com/package/mpu6050-gyro

var gyro_xyz = gyro.get_gyro_xyz();
var accel_xyz = gyro.get_accel_xyz();

var gyro_data = {
    gyro_xyz: gyro_xyz,
    accel_xyz: accel_xyz,
    rollpitch: gyro.get_roll_pitch( gyro_xyz, accel_xyz )
}

console.log(gyro_data);

setTimeout(update_telemetry, 500);

Le module encapsule trois fonctions disponibles :

gyro.get_gyro_xyz() : Renvoie un objet JSON avec les données brutes X, Y, Z du gyroscope.

gyro.get_accel_xyz() : Renvoie un objet JSON avec les données brutes X, Y, Z de l’accéléromètre.

gyro.get_roll_pitch(gyro_xyz, accel_xyz) : Renvoie un objet JSON avec les angles de roulis et de tangage en degrés.

Image du phénomène

../_images/image228.jpeg