Modulo GY-521 MPU-6050

ultimo aggiornamento 9 giugno 2019


 

Indice

Descrizione

Il modulo GY-521 è costruito per gestire il sensore MPU-6050 che è un chip prodotto da Invensense, che combina al suo interno più dispositivi tra i quali notiamo:

Il modulo è di piccole dimensioni: 21.2 x 16.4 x 3.3 mm, ed è molto preciso, consiste in hardware di conversione da analogico a digitale per ciascun canale, acquisendo allo stesso tempo i canali x, y, z. L'uscita può essere interfacciata con il bus I2C di Arduino.

Schema a blocchi del sensore MPU-6050

Accelerometro a 3 assi

L'accelerometro a 3 assi interno all'MPU-6050 è in grado di rilevare l'angolo di inclinazione o l'inclinazione lungo gli assi x, y, z utilizzando una tecnologia del sistema elettromeccanico (Micro Electro-Mechanical Systems MEMS).
L'accelerazione lungo gli assi è ricavata dalla massa in movimento c che viene rilevato con la tecnologia del sistema elettromeccanico (MEMS). L'ampiezza dell'uscita è proporzionale all'accelerazione.
Per la digitalizzare dei valori viene utilizzato un ADC a 16 bit, Gli intervalli di uscita a fondo scala possibili sono: +/- 2g, +/- 4g, +/- 8g, +/- 16g.
In posizione normale, cioè quando il dispositivo è posizionato su una superficie piana, i valori sono 0 g sull'asse x, 0 g sull'asse y e +1 sull'asse z.

Giroscopio a 3 assi

L'MPU-6050 è costituito da un giroscopio a 3 assi in grado di rilevare la velocità di rotazione lungo l'asse x, y, z con la tecnologia del sistema micro elettromeccanico (MEMS). Quando il sensore viene ruotato su qualsiasi asse, viene prodotta una vibrazione, grazie all'effetto Coriolis viene rilevato dal MEMS. L'ADC a 16 bit viene utilizzato per digitalizzare la tensione per campionare ciascun asse. Gli intervalli di uscita a fondo scala sono : +/- 250, +/- 500, +/- 1000, +/- 2000.  La velocità angolare viene misurata lungo ciascun asse in gradi al secondo unità.

Sensore di temperatura

All'interno del chip è presente un sensore di temperatura la cui uscita è digitalizzata tramite ADC e può essere letta dal registro dei dati del sensore.

Oscillatore di clock interno

L'MPU ha uno schema di temporizzazione flessibile, che consente di utilizzare una varietà di sorgenti di clock interne o esterne per i circuiti sincroni interni. Questa circuiteria sincrona include il condizionamento del segnale e gli ADC, il DMP e vari circuiti e registri di controllo. Un PLL su chip offre flessibilità negli input consentiti per generare questo clock.
Le fonti interne consentite per generare l'orologio interno sono:

Digital motion processor (DMP)

Il processore di movimento digitale incorporato viene utilizzato per eseguire calcoli sui dati del sensore. I valori possono essere letti dai registri dmp. I valori grezzi possono essere letti direttamente dall'accelerometro e dai registri del giroscopio tramite Arduino. Il chip MPU-6050 include anche un buffer FIFO da 1024 byte dove i dati possono essere posizionati e letti. L'MPU-6050 funge sempre da slave quando è connesso all'arduino con i pin SDA e SCL collegati al bus I2C. Ma ha anche il proprio controller I2C ausiliario che gli consente di agire come un master su un altro dispositivo come un magnetometro. Il DMP integrato può essere programmato con il firmware per eseguire calcoli complessi con i valori del sensore.
L'AD0 seleziona tra gli indirizzi I2C 0x68 e 0x69 consentendo a 2 di questi sensori di essere connessi nello stesso progetto. La maggior parte delle schede come la GY-521 ha una resistenza pull down o pull up per mantenere il valore predefinito, nel nostro caso al valore 0x68

Dove trovare il modulo sensore

Il modulo sensore può essere acquistato presso il sito Homotix ad un costo di circa 2,65 €, ecco il link. Citando il codice di sconto "ADRIROBOT_19" potrete usufruire di uno speciale sconto.

Schema elettrico del modulo

Lo schema del modulo prevede un riduttore di tensione LDO Q2 tipo LD3985, marcato SMD con la sigla 4A2D, questo permette l'ingresso di una tensione compresa tra 2.5 V to 6 V, fornendo in uscita il valore di 3,3V a 150 mA necessari.
L'accensione del led D1 la cui corrente è limitata da una resistenza da 1Kohm mostra la presenza della tensione di alimentazione.
L'unico altro componete è IC1 il sensore MPU-6050 con le due le due resistenze da 47Kohm sulle linee SDA e SCL, mentre la resisteza su 47K sul pin AD0 mantiene l'indirizzi del modulo al valore di 0x68.

homotix

PCBA

LD3985 Ultra low drop and low noise BiCMOS voltage regulators
Piedinatura Datasheet Foto dell'integrato


MPU6050 3-axis gyroscope, 3-axis accelerometer, and a Digital Motion Processor™ (DMP)

Piedinatura Datasheet Foto dell'integrato

Caratteristica sensore

Descrizione dei pin

 

Pin Descrizione Funzione
1 VCC Alimentazione, è possibile alimentare il modulo direttamente a +5V
2 GND Terminale di massa
3 SCL Serial clock
4 SDA Serial data
5 XDA Serial data per il collegamento a sensori esterni
6 XCL Serial clock per il collegamento a sensori esterni
7 ADO Indirizzo slave I2C LSB (AD0)
8 INT Interrupt digital output (totem pole or open-drain)

Nota: di solito si utilizzano solamente i pin 1-2-3-4

Altri tipi di accelerometri

L'accelerometro triassiale utilizzato nel robot Moway è il tipo MMA7455L prodotto dalla Freescale Semiconductor Accelerometro a due assi ADXL 322 prodotto dalla  ANALOG Devices utilizzato per il robot Robonox L'accelerometro utilizzato all'interno del controller Nunchuck è il tipo LIS3L02 prodotto dalla STMicroelectronics
 
L'accelerometro triassiale usato sulla scheda del robot Robi è il  tipo MMA7660FC prodotto dalla Freescale, il sensore ha una sensibilità di ±1.5 g e ha un'uscita digitale I2C. L’accelerometro triassiale utilizzato sulla scheda ESPLORA, è il tipo MMA7361 LCR2 Il sensore presenta una sensibilità di 800 mV/g a 1.5g o 206 mV/g a 6g  

Collegamento del sensore

In questo esempio vediamo come collegare il Modulo GY-521 MPU-6050 ad una scheda ARDUINO UNO, questo ci permetterà di testare il modulo leggendo i dati in uscita sia dalla sezione Accelerometro sia giroscopio che dalla sezione sensore di temperatura.

Nella foto la scheda Scheda UNO R3 ATmega328P CH340 (vedi link) ha i pin per il collegamento all'interfaccia I2c già predisposti

Come visibile dalla figura il collegamento si limita alla tensione di alimentazione e al collegamento dei 2 pin I2C, ovvero SDA e SCL.
Questi sono per la scheda Arduino UNO i pin A5 e A5, su altre schede sono invece diversi

Tipo di scheda Pin SDA Pin SCL
Uno, Nano, Ethernet A4 A5
Mega 2560 20 21
Leonardo 2 3
Due 20 21

Sketch di prova

Per la lettura dei dati del Modulo GY-521 MPU-6050, occorre, caricare l'apposita libreria, per cui andare al menu Sketch-> #includi libreria  -> Gestione librerie

 

ricercare 6050, saranno mostrate varie librerie, personalmente ho scelto quella denominata "MPU6050_tockn"

Il primo test possibile è quello di verificare se il modulo viene riconosciuto e quale sia l'indirizzo I2C del device, per fare questo potremmo caricare lo Sketch "i2c_scanner"

Sketch i2c_scanner

Una volta caricato lo sketch su Arduino dovrete aprire il Monitor Seriale, sono possibili due messaggi.
Il primo, evidenzia che il device è stato trovato e risponde all'indirizzo 0x68 che corrisponde la valore atteso.

Il secondo messaggi, evidenzia il messaggio che la device non è stata trovata, e se il led è correttamente acceso potrebbe essere dovuto per esempio all'inversione del collegamento dei pin SDA e SCL, per cui provate ad invertirli.

Se la verifica è andata a buon fine, potrete passare al secondo passo, per cui, andando nella sezione Esempi e andando a ricercare la sezione MPU6050_tockn si potrà caricare lo Sketch GetAllDAta.

Questo Sketch permette la lettura dei 3 assi (X,Y,Z) del giroscopio, dell’accelerometro e per finire anche la misurazione della temperatura in gradi celsius (°C).

Esempio di utilizzo del sensore

Il sensore ha molti utilizzi tra cui quello per la gestione dei robot auto bilanciati come il kit proposto da Elegoo denominato Tumbller che è un kit per la costruzione di auto robot di nuova concezione che ha molteplici affascinanti funzioni come controllo IR, auto-follow, evitamento ostacoli, modalità bouncing e incandescente in diversi colori LED.
Si può controllare tramite un telefono cellulare usando la speciale APP ELEGOO TOOL BLE.

 

 

Elenco revisioni:

30/04/2017

Emissione preliminare
Private Policy Cookie Policy