En este tutorial vamos a aprender a usar el módulo MPU-6500, uno de los mejores sensores de unidad de medición inercial (IMU) compatibles con Arduino. Estos sensores son fundamentales en robots de auto-equilibrio, drones y smartphones para detectar movimiento y orientación en el espacio.
Componentes Necesarios
(1) x Elegoo Mega 2560 R3
(1) x Módulo MPU-6500
(4) x Cables Hembra-Macho (F-M)
Introducción del Componente
SENSOR MPU-6500: Este sensor de InvenSense integra un acelerómetro MEMS y un giroscopio MEMS en un solo chip. Es extremadamente preciso ya que incluye hardware de conversión analógica a digital de 16 bits para cada canal, permitiendo capturar los ejes X, Y y Z en simultáneo. El sensor utiliza el bus I2C para comunicarse con el Arduino.
Los sensores IMU son indispensables hoy en día y están presentes en casi todos los dispositivos electrónicos, como celulares, wearables y joysticks. Nos permiten obtener la "actitud" de un objeto en un espacio tridimensional, entregando valores (generalmente en ángulos) que sirven para determinar su orientación exacta.
¿Cómo funciona?
El sensor (basado en el modelo GY-521) es una unidad de 6 grados de libertad (DOF). Entrega seis lecturas en total: tres del acelerómetro y tres del giroscopio. Utiliza tecnología MEMS (Sistemas Microelectromecánicos) y se comunica a través del protocolo I2C.
Acelerómetro: Funciona bajo el principio del efecto piezoeléctrico. Imaginate una caja con una pequeña bola adentro. Las paredes están hechas de cristales piezoeléctricos; al inclinar la caja, la gravedad empuja la bola contra una pared, generando una corriente eléctrica mínima. Según qué pared reciba la presión (ejes X, Y o Z), se determina la dirección y magnitud de la inclinación.
Giroscopio: Se basa en la aceleración de Coriolis. Imaginate una estructura tipo diapasón que vibra constantemente. Al intentar inclinar este mecanismo, los cristales detectan una fuerza en la dirección de la inclinación debido a la inercia del movimiento. Esa corriente generada se amplifica y el microcontrolador se encarga de procesar los valores finales.
Esquema de Conexión y Código
Hacé clic en el enlace de texto azul para descargar el programa en tu equipo y dale doble clic al archivo para abrirlo. Antes de empezar, fijate de tener instalado el Arduino IDE y los componentes necesarios para la placa 2560. Si tenés dudas, podés consultar el capítulo "Part 1" de la documentación para guiarte.
📥 DESCARGAR mpu-6500.zip
Aviso: Antes de correr el programa, asegurate de haber instalado la librería MPU 6500, de lo contrario el código no va a funcionar.
#include <Wire.h>
const int MPU_addr=0x68; // Dirección I2C del MPU-6500
Configuración de Librería y Sensor:
El código incluye la librería Wire para la comunicación I2C y define la dirección por defecto del sensor (0x68). Se declaran variables de tipo int16_t para almacenar los datos de los ejes (AcX, AcY, AcZ para el acelerómetro y GyX, GyY, GyZ para el giroscopio) junto con la temperatura. Usamos enteros de 16 bits porque el MPU-6500 entrega los datos con esa resolución, permitiendo un balance ideal entre precisión y uso de memoria.
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.