Nota
Ciao, benvenuto nella Community di SunFounder Raspberry Pi & Arduino & ESP32 Enthusiasts su Facebook! Approfondisci le tue conoscenze su Raspberry Pi, Arduino ed ESP32 insieme ad altri appassionati.
Perché Unirsi?
Supporto da Esperti: Risolvi i problemi post-vendita e le sfide tecniche con l’aiuto della nostra community e del nostro team.
Impara e Condividi: Scambia consigli e tutorial per migliorare le tue competenze.
Anteprime Esclusive: Ottieni accesso anticipato agli annunci di nuovi prodotti e anteprime.
Sconti Speciali: Approfitta di sconti esclusivi sui nostri prodotti più recenti.
Promozioni Festive e Giveaway: Partecipa a giveaway e promozioni festive.
👉 Pronto a esplorare e creare con noi? Clicca [Qui] e unisciti oggi stesso!
6.3 Tracciamento del Movimento a 6 Assi
L’MPU-6050 è un dispositivo di tracciamento del movimento a 6 assi (combina un giroscopio a 3 assi e un accelerometro a 3 assi).
Un accelerometro è uno strumento che misura l’accelerazione propria. Ad esempio, un accelerometro a riposo sulla superficie terrestre misurerà un’accelerazione dovuta alla gravità terrestre, verso l’alto[3] (per definizione) di g ≈ 9,81 m/s².
Gli accelerometri hanno molti usi nell’industria e nella scienza. Ad esempio: sistemi di navigazione inerziale per aerei e missili, per mantenere le immagini su tablet e fotocamere digitali verticali, ecc.
I giroscopi vengono utilizzati per misurare l’orientamento e la velocità angolare di un dispositivo o per il mantenimento. Le applicazioni dei giroscopi includono sistemi anti-ribaltamento e airbag per automobili, sistemi di rilevamento del movimento per dispositivi intelligenti, sistemi di stabilizzazione dell’assetto per droni e altro ancora.
Componenti Necessari
In questo progetto, abbiamo bisogno dei seguenti componenti.
È sicuramente conveniente acquistare un kit completo, ecco il link:
Nome |
ELEMENTI IN QUESTO KIT |
LINK |
|---|---|---|
Kepler Kit |
450+ |
Puoi anche acquistarli separatamente dai link sottostanti.
SN |
COMPONENTE |
QUANTITÀ |
LINK |
|---|---|---|---|
1 |
1 |
||
2 |
Cavo Micro USB |
1 |
|
3 |
1 |
||
4 |
Diversi |
||
5 |
1 |
Schema Elettrico

Collegamenti

Codice
Nota
Apri il file
6.3_6axis_motion_tracking.pynel percorsokepler-kit-main/micropythono copia questo codice in Thonny, poi clicca su «Esegui Script Corrente» o semplicemente premi F5 per eseguirlo.Non dimenticare di selezionare l’interprete «MicroPython (Raspberry Pi Pico)» nell’angolo in basso a destra.
Per tutorial dettagliati, fai riferimento a Aprire ed Eseguire Codice Direttamente.
Qui è necessario utilizzare
imu.pyevector3d.py, controlla se sono stati caricati su Pico W, per un tutorial dettagliato fai riferimento a 1.4 Caricare le Librerie su Pico.
from imu import MPU6050
from machine import I2C, Pin
import time
i2c = I2C(1, sda=Pin(6), scl=Pin(7), freq=400000)
mpu = MPU6050(i2c)
while True:
print("x: %s, y: %s, z: %s"%(mpu.accel.x, mpu.accel.y, mpu.accel.z))
time.sleep(0.5)
print("A: %s, B: %s, Y: %s"%(mpu.gyro.x, mpu.gyro.y, mpu.gyro.z))
time.sleep(0.5)
Dopo l’esecuzione del programma, potrai vedere i valori dell’accelerometro a 3 assi e del giroscopio a 3 assi alternarsi nell’output. A questo punto, ruotando l’MPU6050, vedrai che questi valori cambieranno di conseguenza. Per rendere più facile la visualizzazione delle variazioni, puoi commentare una delle linee di stampa e concentrarti su un altro set di dati.
L’unità di misura dei valori di accelerazione è m/s², mentre l’unità dei valori del giroscopio è °/s.
Come funziona?
Nella libreria imu, abbiamo integrato le funzioni rilevanti nella classe MPU6050.
MPU6050 è un modulo I2C e richiede un set di pin I2C da definire per l’inizializzazione.
from imu import MPU6050
from machine import I2C, Pin
i2c = I2C(1, sda=Pin(6), scl=Pin(7), freq=400000)
mpu = MPU6050(i2c)
Successivamente, sarai in grado di ottenere i valori in tempo reale di accelerazione e velocità angolare in mpu.accel.x, mpu.accel.y, mpu.accel.z, mpu.gyro.x, mpu.gyro.y, mpu.gyro.z.
while True:
print("x: %s, y: %s, z: %s"%(mpu.accel.x, mpu.accel.y, mpu.accel.z))
time.sleep(0.5)
print("A: %s, B: %s, Y: %s"%(mpu.gyro.x, mpu.gyro.y, mpu.gyro.z))
time.sleep(0.5)