Modulo GY-521 MPU-6050 ultimo aggiornamento 9 giugno 2019 |
|
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:
un accelerometro a 3 assi
un giroscopio a 3 assi
un sensore di temperatura
un oscillare di clock interno
un processore di movimento digitale
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
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.
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à.
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.
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:
Un oscillatore di rilassamento interno
Qualunque giroscopio X, Y o Z (oscillatori MEMS con una variazione di ± 1% rispetto alla temperatura)
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.
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.
MPU6050 3-axis gyroscope, 3-axis accelerometer, and a Digital Motion Processor™ (DMP) | ||
|
||
Piedinatura | Datasheet | Foto dell'integrato |
Alimentazione a 5Vcc
Fondo scala giroscopio selezionabile tra ± 250, ± 500, ± 1000, e ± 2000°/sec
Fondo scala accelerometro selezionabile tra ± 2g, ± 4g, 8g ± e ± 16g
Interfaccia I2C
Assorbimento durante la misura inferiore a 10mA
|
Nota: di solito si utilizzano solamente i pin 1-2-3-4
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 |
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
|
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"
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).
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 |