En este tutorial, vamos a aprender a usar el módulo MPU-6500, uno de los mejores sensores IMU (Unidad de Medición Inercial) compatibles con Arduino. Estos sensores se utilizan en robots de auto-equilibrio, UAVs, smartphones y muchos otros dispositivos electrónicos.
Componentes requeridos
- (1) x Elegoo Uno R3
- (1) x Módulo MPU-6500
- (4) x Cables Hembra-Macho (F-M)
Introducción al componente
SENSOR MPU-6500
El sensor InvenSense MPU-6500 contiene un acelerómetro MEMS y un giroscopio MEMS en un solo chip. Es muy preciso, ya que cuenta con hardware de conversión analógico-digital de 16 bits para cada canal. Por lo tanto, captura los canales x, y, z al mismo tiempo. El sensor utiliza el bus I2C para conectarse con el Arduino.
Los sensores IMU son fundamentales en los dispositivos modernos, como wearables y controladores de juegos. Nos ayudan a obtener la actitud (orientación) de un objeto en el espacio tridimensional. Estos valores suelen expresarse en ángulos, lo que permite determinar su posición, tal como hacen los smartphones para detectar su orientación o los dispositivos deportivos para rastrear el movimiento.
¿Cómo funciona?
Un sensor IMU suele constar de dos o más componentes: acelerómetro, giroscopio, magnetómetro y altímetro. El MPU-6500 es un sensor IMU de seis ejes que entrega seis lecturas en total: tres del acelerómetro y tres del giroscopio, integrados en un solo chip que se comunica vía I2C.
El acelerómetro funciona bajo el principio del efecto piezoeléctrico. Imaginate una caja con una pequeña bola adentro; cuando inclinás la caja, la gravedad empuja la bola contra las paredes de cristales piezoeléctricos, generando corrientes eléctricas que permiten determinar la dirección y magnitud de la inclinación.
El giroscopio funciona mediante la aceleración de Coriolis. Utiliza una estructura tipo horquilla en constante movimiento vibratorio. Al inclinar el sensor, la inercia de la horquilla genera una fuerza que los cristales detectan y convierten en corriente eléctrica, la cual es procesada por el microcontrolador para definir los valores de rotación.
Esquema de conexión y diagrama de cableado
Seguí las indicaciones del diagrama para conectar el módulo MPU-6500 a los pines correspondientes de tu Elegoo Uno R3, asegurando una conexión firme entre los pines VCC, GND, SCL y SDA.
Código
Hacé clic en el enlace para descargar el programa a tu dispositivo. Antes de abrirlo, asegurate de tener instalado el IDE de Arduino y el paquete de soporte para la placa UNO. Si tenés dudas sobre este proceso, fijate en el capítulo "parte 1" del documento para una guía detallada.
📥 DESCARGAR mpu-6500.zip
Antes de ejecutar el programa, es necesario que instales la librería < MPU 6500 >. De lo contrario, el código no va a funcionar correctamente.
#include <Wire.h>
const int MPU_addr=0x68; // Dirección I2C del MPU-6500
int16_t AcX,AcY,AcZ,Tmp,GyX,GyY,GyZ;
Configuración de la librería y el sensor:
- #include <Wire.h>: Incluye la librería para comunicación I2C.
- const int MPU_addr=0x68: Define la dirección I2C por defecto del sensor.
- int16_t: Se utiliza este tipo de dato (entero de 16 bits con signo) porque el MPU-6500 entrega valores con esa resolución, permitiendo un rango de -32768 a 32767.
El protocolo I2C permite que el microcontrolador gestione las lecturas de los ejes de aceleración (AcX, AcY, AcZ), la temperatura (Tmp) y la rotación del giroscopio (GyX, GyY, GyZ) de manera eficiente.
Galería de referencia
Fuente: Adaptado al español desde el wiki oficial Elegoo (licencia CC BY-SA). Revisión técnica por equipo Breva.