Nota

Ciao, benvenuto nella SunFounder Raspberry Pi & Arduino & ESP32 Enthusiasts Community su Facebook! Approfondisci Raspberry Pi, Arduino ed ESP32 insieme ad altri appassionati.

Perché unirti a noi?

  • Supporto esperto: Risolvi i problemi post-vendita e le sfide tecniche con l’aiuto della nostra comunità e del nostro team.

  • Impara e Condividi: Scambia suggerimenti e tutorial per migliorare le tue competenze.

  • Anteprime esclusive: Ottieni accesso anticipato a nuovi annunci di prodotti e anteprime esclusive.

  • Sconti speciali: Approfitta di sconti esclusivi sui nostri prodotti più recenti.

  • Promozioni festive e omaggi: Partecipa a omaggi e promozioni durante le festività.

👉 Pronto per esplorare e creare con noi? Clicca su [Qui] e unisciti oggi stesso!

2.2.9 Modulo MPU6050

Introduzione

Il MPU-6050 è il primo e unico dispositivo di tracciamento del movimento a 6 assi al mondo (giroscopio a 3 assi e accelerometro a 3 assi) progettato per smartphone, tablet e sensori indossabili che richiedono queste caratteristiche, tra cui basso consumo energetico, basso costo e alte prestazioni.

In questo esperimento, utilizziamo I2C per ottenere i valori del sensore di accelerazione a tre assi e del giroscopio a tre assi del MPU6050 e visualizzarli sullo schermo.

Componenti necessari

In questo progetto, abbiamo bisogno dei seguenti componenti.

../_images/list_2.2.6.png

È sicuramente conveniente acquistare un kit completo, ecco il link:

Nome

ELEMENTI IN QUESTO KIT

LINK

Kit Raphael

337

Raphael Kit

Puoi anche acquistarli separatamente dai link qui sotto.

INTRODUZIONE AI COMPONENTI

LINK DI ACQUISTO

Scheda di estensione GPIO

ACQUISTA

Breadboard

ACQUISTA

Cavi Jumper

ACQUISTA

Modulo MPU6050

ACQUISTA

Schema elettrico

MPU6050 comunica con il microcontrollore tramite l’interfaccia bus I2C. SDA1 e SCL1 devono essere collegati al pin corrispondente.

../_images/image330.png

Procedure sperimentali

Passo 1: Costruisci il circuito.

../_images/image227.png

Passo 2: Configura I2C (vedi Appendice Configurazione I²C. Se hai già configurato I2C, salta questo passaggio).

Passo 2: Vai alla cartella del codice.

cd ~/raphael-kit/nodejs/

Passo 3: Installa le dipendenze.

sudo npm install mpu6050-gyro

Passo 4: Esegui il codice.

sudo node mpu6050_module.js

Con l’esecuzione del codice, l’angolo di deviazione degli assi x e y e l’accelerazione e la velocità angolare su ciascun asse letti dal MPU6050 verranno stampati sullo schermo dopo essere stati calcolati.

Codice

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

var address = 0x68; // Indirizzo MPU6050
var bus = 1; // Bus I2C utilizzato
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();
}

Spiegazione del codice

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

var address = 0x68; // Indirizzo MPU6050
var bus = 1; // Bus I2C utilizzato
var gyro = new gyro( bus, address );

Importa il modulo mpu6050-gyro, determina l’indirizzo del MPU6050 e il bus e crea l’oggetto gyro, rendendo conveniente chiamare le funzioni incapsulate nel modulo.

Nota

Per maggiori informazioni su questo modulo, consulta: 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);

Il modulo incapsula tre funzioni disponibili:

gyro.get_gyro_xyz(): Restituisce un oggetto JSON con i dati grezzi x, y, z dal giroscopio.

gyro.get_accel_xyz(): Restituisce un oggetto JSON con i dati grezzi x, y, z dall’accelerometro.

gyro.get_roll_pitch( gyro_xyz, accel_xyz ): Restituisce un oggetto JSON con rollio e beccheggio in gradi.

Immagine del fenomeno

../_images/image228.jpeg