Introducción #
El MPU6050 es un sensor de movimiento y orientación ampliamente utilizado en aplicaciones de robótica, drones, juegos, y dispositivos portátiles, entre otros. Es un sensor de seis ejes que combina un acelerómetro de tres ejes y un giroscopio de tres ejes en un solo chip. Esto le permite medir la aceleración lineal y la rotación angular en los tres ejes espaciales (X, Y y Z).
La aceleración que mide está determinada por la aceleración del campo gravitatorio de la tierra. Si está perfectamente alineado el eje Z, este marcará una aceleración de 9,8 m/s2D y el resto de coordenadas, 0 m/s2 . A medida que se incline, siguiendo las razones trigonométricas, esta aceleración se repartirá ene l resto de ejes. Esto tiene implicaciones curiosas, como que si está en caída libre sin rozamiento su aceleración en el eje Z será cero, y si asciende, será negativa.
Sin embargo, permite realizar medidas mas intuitivas como la medida de ángulos de inclinación en grados, en el eje X y en el Y.
La parte de giróscopo permite medir la velocidad con la que se realizan giros, es decir, la velocidad angular.
Esquema de conexión #
Se conecta por I2C, por tanto, tendrá que conectarse a los pines SDA y SCL del microcontrolador. En el caso del esp32 versión 1, estos son el 21 y 22 respectivamente.
Programación #
En el apartado «Sensores» se encuentra el bloque con el que se leen las diferentes magnitudes:
Ejemplos #
Ejemplo 1 #
Con el siguiente programa se muestra la inclinación en grados en el eje X:
Ejemplo 2 #
En el siguiente programa se activa el GPIO15, que puede estar conectado a una alarma, por ejemplo, si la inclinación en el eje Y es superior a 45 grados.
Ejemplo 3 #
En este artículo se muestra cómo encender o apagar una luz de una habitación si se abre una puerta, o desde internet, y monitorizar su valor de apertura en cualquier momento vía web.