ESP8266 with MPU6050 6-axis MotionTracking device (GY-521 module)

Il sensore  MPU-6050 prodotto da Invensense contiene un accelerometro MEMS a 3 assi ed un giroscopio MEMS a 3 assi.

https://www.invensense.com/products/motion-tracking/6-axis/mpu-6050/

Il giroscopio permette di misurare l’accelerazione angolare di un corpo sui tre assi di rotazione, mentre con l’accelerometro possiamo misurare l’accelerazione rispetto ai tre assi di traslazione. Il chip include anche un sensore di temperatura necessario per compensare le misure rispetto alla temperatura.

mpu6050-assi
MPU-6050 reference axis

Considerando che integra accelerometro e giroscopio in un singolo prodotto, questo sensore è molto economico (pochi euro su e-bay) e piuttosto preciso (dispone di un convertitore A/D a 16bit per ogni canale).

La comunicazione è realizzata con protocollo I²C ed è quindi facile da utilizzare con la maggior parte dei microcontrollori sul mercato. Nel caso dell’ESP8266, che non dispone di una porta I²C  hardware dedicata, è possibile riservare due pin GPIO qualsiasi ed utilizzare l’implementazione software del protocollo della libreria Wire.

Modulo GY-521

Acquistando il modulo GY-521 si ottiene un MPU-6050 pronto all’uso senza dover aggiungere componenti aggiuntivi.

gy521-mod-1
GY-521 Module (Front)
gy-521_2
GY-521 Module (Back)
gy-521
GY-521  Module (schema)

 

Connessione ad ESP8266

Leggere i valori di accelerazione misurati da questo sensore (specialmente partendo da un modulo come GY-521) è banale… utilizzare questo componente all’interno di un sistema di navigazione inerziale è decisamente più complesso.

Il minimo necessario per connettere il modulo GY-521 è descritto in http://playground.arduino.cc/Main/MPU-6050 . Per l’utilizzo di base è sufficiente connettere solo i pin VCC, GROUND, SDA e SCL.

Come sempre è necessario qualche piccolo adattamento per utilizzarlo su ESP8266 ed in particolare inizializzare la libreria Wire passando come parametri GPIO da utilizzare come linee SDA e SCL. Nell’esempio per NodeMCU DevBoard ho utilizzato le seguenti connessioni:

  •  SDA–> D1
  • SCL–>D2
  • VCC–> uno dei pin di avlimentazione della scheda con tensione 3.3V
  • GND –> uno dei pin ground della scheda

Il modulo che ho testato funziona correttamente con alimentazione a 3.3V. Nei forum sono riportati casi di moduli che funzionano solo quando connessi con alimentazione 5V. Probabilmente il diverso comportamento dipende dal tipo di regolatore di tensione utilizzato per realizzare il modulo (vedi schema elettrico).

gy-510_sketch
GY-510 test sketch
gy-510_data
GY-510 test data

 

 

Annunci

One thought on “ESP8266 with MPU6050 6-axis MotionTracking device (GY-521 module)

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...