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.

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.



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).


Una risposta a "ESP8266 with MPU6050 6-axis MotionTracking device (GY-521 module)"