Descripción
Modelo módulo: GY-521 (GY521)
El MPU6050 es un acelerómetro de 6 ejes: acelerómetro de 3 ejes (x-y-z) y giróscopo de 3 ejes (velocidad angular, x-y-z).
El acelerómetro permite medir la aceleración en cualquiera de los ejes, incluida la aceleración de la gravedad. Así, un acelerómetro, con el código adecuado, permite medir un montón de cosas: aceleración, fuerza de frenado, inclinación, fuerza de impacto, etc. El acelerómetro del MPU6050, además, es de gran precisión, pues permite ajustar el rango de medida para una máxima calidad de la señal. Los rangos que se pueden ajustar son +/- 2 / 4 / 8 / 16 G.
El giróscopo permite medir velocidad angular (velocidad de giro) en los 3 ejes. El rango de medida es también configurable. Los rangos que se pueden ajustar con +/- 250 / 500 / 1000 / 2000 º/s.
Además, una de las prestaciones más interesantes del MPU6050 es el DMP (Digital Motion Processor) que permite fusionar la información de ambos sensores para dar medidas de gran calidad. Esto es muy importante, pues los acelerómetros dan medidas con alto nivel de ruido, mientras que los giróscopos dan medidas muy limpias, pero acumulan error con el tiempo. Así, el DMP permite unir las ventajas de ambos dispositivos.
Este módulo se puede alimentar en el rango: 3-5 V
El protocolo de comunicación utilizado es: i2c
El conexionado del MPU6050 debe realizarse como en la siguiente figura (click en la imagen para ampliar). El pin AD0 no es necesario usarlo, a no ser que conectemos dos MPU6050 en el mismo bus i2c. Los pines XDA y XCL son para conectar dispositivos i2c esclavos del MPU6050.
Respecto al código para utilizarlo, existen un par de ejemplos muy completos. Para usarlos lo primero es instalar las librerías I2Cdev y MPU6050 (contraseña: eperdido). Para instalar las liberías descomprime su contenido en la carpeta «Libraries» de tu instalación de Arduino y reinicia el programa. Ahora, en los ejemplos te aparecerán un par acerca del MPU6050.
El primero de ellos (MPU6050_RAW) nos muestra los datos de los 6 ejes del MPU6050 sin procesar (datos «RAW»). Para ver los datos en la consola debemos abrirla y configurarla a 38400 baudios. Aparecerán 3 columnas de datos en la consola: las tres primeras para las lecturas del acelerómetro, las 3 últimas para las lecturas del giróscopo.
Si todo ha ido bien ya estarás seguro de que tu MPU6050 está correctamente conectado. Podrás girar el MPU6050 y ver cómo cambian los valores mostrados en pantalla por efecto de la gravedad.
El segundo de ellos (MPU6050_DMP6), permite usar el DMP para procesar los datos de los 6 ejes y obtener datos calculados como, por ejemplo, la inclinación. Y esta aplicación es justo la que viene por defecto configurada, aunque se podrán configurar rápidamente otras opciones a partir de la información que el ejemplo contiene en los comentarios.
En este caso, para ver los datos por consola, debemos configurarla a 115200 baudios. Veremos cómo la consola, tras comprobar que las conexiones son correctas, nos pide que enviemos un carácter cualquiera para empezar a calcular. Entonces corren por pantalla tres columnas (yaw-pitch-roll) que corresponden a la inclinación respecto a los tres ejes (ver figura a continuación). Así, si movemos el acelerómetro veremos cómo los números varían en función de cómo lo inclinemos.
Sin embargo, el valor que nos da no se corresponde exactamente con los grados de inclinación. Esto se debe a que es necesario calibrar cada unidad por separado. Si tu proyecto necesita ese cálculo de manera precisa deberás jugar con los valores mpu.setXGyroOffset(), mpu.setYGyroOffset(), mpu.setZGyroOffset(), mpu.setZAccelOffset(). Pero, como en muchos proyectos es suficiente con saber si está horizontal o no, esto lo dejamos para usuarios avanzados.
Incluye tira de pin para conexionado
Más información: Hoja de datos MPU6050 / MPU6050-Register-Map
Nuestros acelerómetros:
Valoraciones
No hay valoraciones aún.