Nota
¡Hola, bienvenido a la comunidad de entusiastas de SunFounder en Facebook sobre Raspberry Pi, Arduino y ESP32! Sumérgete más a fondo en Raspberry Pi, Arduino y ESP32 con otros aficionados.
¿Por qué unirse?
Soporte de Expertos: Resuelve problemas posventa y desafíos técnicos con ayuda de nuestra comunidad y equipo.
Aprender y Compartir: Intercambia consejos y tutoriales para mejorar tus habilidades.
Previsualizaciones Exclusivas: Obtén acceso anticipado a anuncios de nuevos productos y avances exclusivos.
Descuentos Especiales: Disfruta de descuentos exclusivos en nuestros productos más nuevos.
Promociones Festivas y Sorteos: Participa en sorteos y promociones festivas.
👉 ¿Listo para explorar y crear con nosotros? Haz clic en [aquí] ¡y únete hoy!
Lección 05: Módulo de Giroscopio y Acelerómetro (MPU6050)
En esta lección, aprenderás cómo conectar el sensor de acelerómetro y giroscopio MPU6050 a una Placa de Desarrollo ESP32. Revisaremos cómo configurar la biblioteca Adafruit_MPU6050, inicializar el sensor y configurar sus rangos de acelerómetro y giroscopio. También aprenderás a leer datos de aceleración, rotación y temperatura del sensor y mostrar estos valores en el monitor serial. Este proyecto es ideal para aquellos interesados en explorar el seguimiento de movimiento y la detección de orientación en sus proyectos, proporcionando una experiencia práctica trabajando con sensores avanzados en la plataforma compatible con Arduino, ESP32.
Componentes Necesarios
En este proyecto, necesitamos los siguientes componentes.
Es definitivamente conveniente comprar un kit completo, aquí está el enlace:
Nombre |
ARTÍCULOS EN ESTE KIT |
ENLACE |
|---|---|---|
Kit Universal de Sensores para Creadores |
94 |
También puedes comprarlos por separado en los enlaces a continuación.
Introducción al Componente |
Enlace de Compra |
|---|---|
ESP32 & Placa de Desarrollo (Placa ESP32) |
|
Cableado
Código
Nota
Para instalar la biblioteca, utiliza el Administrador de Bibliotecas de Arduino y busca «Adafruit MPU6050» e instálala.
Análisis del Código
El código comienza incluyendo las bibliotecas necesarias y creando un objeto para el sensor MPU6050. Este código utiliza la biblioteca Adafruit_MPU6050, la biblioteca Adafruit_Sensor y la biblioteca Wire. La biblioteca
Adafruit_MPU6050se utiliza para interactuar con el sensor MPU6050 y obtener datos de aceleración, rotación y temperatura. La bibliotecaAdafruit_Sensorproporciona una interfaz común para diversos tipos de sensores. La bibliotecaWirese utiliza para la comunicación I2C, necesaria para comunicarse con el sensor MPU6050.Nota
Para instalar la biblioteca, utiliza el Administrador de Bibliotecas de Arduino y busca «Adafruit MPU6050» e instálala.
#include <Adafruit_MPU6050.h> #include <Adafruit_Sensor.h> #include <Wire.h> Adafruit_MPU6050 mpu;
La función
setup()inicializa la comunicación serial y verifica si se detecta el sensor. Si no se encuentra el sensor, el Arduino entra en un bucle infinito con un mensaje «Failed to find MPU6050 chip». Si se encuentra, se establecen el rango del acelerómetro, el rango del giroscopio y el ancho de banda del filtro, y se agrega un retraso para estabilidad.void setup(void) { // Inicializar la comunicación serial Serial.begin(9600); // Verificar si se detecta el sensor MPU6050 if (!mpu.begin()) { Serial.println("Failed to find MPU6050 chip"); while (1) { delay(10); } } Serial.println("MPU6050 Found!"); // establecer rango del acelerómetro a +-8G mpu.setAccelerometerRange(MPU6050_RANGE_8_G); // establecer rango del giroscopio a +- 500 deg/s mpu.setGyroRange(MPU6050_RANGE_500_DEG); // establecer ancho de banda del filtro a 21 Hz mpu.setFilterBandwidth(MPU6050_BAND_21_HZ); // Agregar un retraso para estabilidad delay(100); }
En la función
loop(), el programa crea eventos para almacenar las lecturas del sensor y luego recupera las lecturas. Se imprimen los valores de aceleración, rotación y temperatura en el monitor serial.void loop() { // Obtener nuevos eventos del sensor con las lecturas sensors_event_t a, g, temp; mpu.getEvent(&a, &g, &temp); // Imprimir las lecturas de aceleración, rotación y temperatura // ... // Agregar un retraso para evitar saturar el monitor serial delay(1000); }