Boceto de prueba de sensor combinado ARDUINO GY87
Introducción
Si eres un ávido creador o un entusiasta de la robótica, te has topado con este pequeño pero poderoso módulo. Si eres un ávido creador o un entusiasta de la robótica, te has encontrado con este pequeño pero poderoso módulo barómetro BMP085. El módulo IMU GY-87 es una excelente manera de agregar detección de movimiento a sus proyectos, como un robot autoequilibrado o un cuadricóptero.
Pero antes de que pueda comenzar a experimentar con el módulo IMU GY-87, debe saber cómo conectarlo con su placa Arduino. ¡Ahí es donde entra este blog! En los siguientes párrafos, cubriremos los conceptos básicos del módulo IMU GY-87, cómo configurarlo y cómo escribir el código Arduino para leer los datos del sensor. También proporcionaremos algunos consejos y recursos para solucionar problemas comunes.
Entonces, si está listo para comenzar, ¡sumergámonos y aprendamos cómo interconectar el módulo IMU GY-87 con Arduino!
¿Qué es GY-87 IMU MPU6050?
Los módulos de unidad de medición inercial (IMU) como el GY-87 combinan muchos sensores en un solo paquete, como el acelerómetro/giroscopio MPU6050, el magnetómetro HMC5883L y el sensor de presión barométrica BMP085. Por lo tanto, el GY-87 IMU MPU6050 es un módulo de seguimiento de movimiento de 9 ejes todo en uno que combina un giroscopio de 3 ejes, un acelerómetro de 3 ejes, un magnetómetro de 3 ejes y un procesador de movimiento digital. Se usa mucho en proyectos robóticos, como cuadricópteros y otros vehículos aéreos no tripulados (UAV), porque puede medir y rastrear con precisión la orientación y el movimiento. También se utiliza en otras aplicaciones, como navegación, juegos y realidad virtual.
Componentes de hardware
Necesitará el siguiente hardware para interconectar el módulo GY-87 IMU MPU6050 HMC5883L BMP085 con Arduino.
Componentes | Valor | Cantidad |
Arduino UNO | – | 1 |
MPU6050 Módulo Sensor | GY-87 | 1 |
Tablero de circuitos | – | 1 |
Cables puente | – | 1 |
GY-87 con Arduino
Ahora que ha entendido el GY-87, es hora de interactuar con el Arduino. Para hacer eso, siga Ahora que ha entendido el GY-87, es hora de interactuar con el Arduino. Para ello, sigue
Esquemático
Realice las conexiones de acuerdo con el diagrama de circuito que se proporciona a continuación.
GY-87 IMU MPU6050 HMC5883L BMP085 ArduinoCableado / Conexiones
Arduino | Sensor MPU6050 |
5V | CCV |
Tierra | Tierra |
A4 | Adventista del Séptimo Día |
A5 | SCA |
Instalación del IDE de Arduino
Primero, debe instalar el software Arduino IDE desde su versión oficial. websitio Arduino. Aquí hay una guía simple paso a paso sobre "Cómo instalar el IDE de Arduino".
Instalación de bibliotecas
Antes de comenzar a cargar código, descargue y descomprima las siguientes bibliotecas en /Program Files (x86)/Arduino/Libraries (predeterminado) para usar el sensor con la placa Arduino. Aquí hay una guía simple paso a paso sobre "Cómo agregar bibliotecas en el IDE de Arduino".
- MPU6050
- Adafruta_BMP085
- HMC5883L_Simple
Código
Ahora copie el siguiente código y cárguelo en el software Arduino IDE.
#incluye “I2Cdev.h” #incluye “MPU6050.h” #incluye #incluir acelerógrafo MPU085; Adafruit_BMP5883 bmp; HMC6050L_Brújula simple; int085_t hacha, ay, az; int5883_t gx, gy, gz; #define LED_PIN 16 bool estado intermitente = falso; configuración vacía () { Serial.begin (16); Alambre.begin(); // inicializar dispositivos Serial.println(“Inicializando dispositivos I13C…”); // inicializa bmp9600 if (!bmp.begin()) { Serial.println(“No se pudo encontrar un sensor BMP2 válido, verifique (!bmp.begin()) { Serial.println(“No se pudo encontrar un sensor BMP085 válido, check Serial.println(accelgyro.testConnection() ? “MPU085 conexión exitosa” : “MPU085 conexión fallida”); accelgyro.setI6050CBypassEnabled(true); // establece el modo de omisión para la puerta de enlace a hmc6050L // inicializa hmc2l Compass.SetDeclination(5883, 5883, 'E'); Brújula.JuegoSamplingMode(BRÚJULA_ÚNICA);
Brújula.EstablecerEscala(COMPASS_SCALE_130);
Brújula.EstablecerOrientación(COMPASS_HORIZONTAL_X_NORTH); // configurar Arduino LED para verificar la actividad pinMode (LED_PIN, OUTPUT); } bucle vacío() {
Serial.print(“Temperatura = “); Serial.print(bmp.readTemperature());
Serial.println(” *C”); Serial.print(“Presión = “);
Serial.print(bmp.readPressure()); Serial.println(”Pa”); // Calcular la altitud asumiendo una presión barométrica 'estándar' // de 1013.25 milibares = 101325 Pascal Serial.print(“Altitud = “); Serial.print(bmp.readAltitude()); Serial.println(“metros”); Serial.print(“Presión a nivel del mar (calculada) = “);
Serial.print(bmp.readSealevelPressure()); Serial.println(”Pa”);
Serial.print(“Altitud real = “); Serial.print(bmp.readAltitude(101500));
Serial.println(”metros”); // leer medidas de aceleración/girocompás sin procesar desde el dispositivo accelgyro.getMotion6(&ax, &ay, &az, &gx, &gy, &gz); // muestra los valores de aceleración/giro x/y/z separados por tabuladores Serial.print(“a/g:\t”); Serial.print(ax);
Serial.imprimir(“\t”); Serial.print(ay); Serial.imprimir(“\t”); Serial.imprimir(az);
Serial.imprimir(“\t”); Serie.imprimir(gx); Serial.imprimir(“\t”); Serial.print(gy);
Serial.imprimir(“\t”); Serial.println(gz); encabezado flotante =
Brújula.GetHeadingDegrees(); Serial.print(“Título: \t”); Serial.println( encabezado ); // parpadeo del LED para indicar actividad blinkState = !blinkState;
escritura digital (LED_PIN, estado intermitente); retraso (500); }
vamos a probarlo
Una vez que cargue el código, ¡es hora de probar el circuito! El código en el programa Arduino interactúa con los sensores usando sus bibliotecas, lo que le permite leer los datos del sensor y establecer varias configuraciones de los sensores. Luego imprime los datos del sensor a través del puerto serial. El LED se usa para mostrar que el circuito está haciendo algo. Esto significa que el LED parpadea cada vez que se ejecuta la función de bucle, lo que indica que el código está leyendo activamente los valores del sensor.
Explicación de trabajo
El código es lo principal en lo que se basa el funcionamiento del circuito. Entonces, entendamos el código:.
- Primero, incluye varias bibliotecas para interactuar con los sensores:
- "I2Cdev.h" y "MPU6050.h" son bibliotecas para el sensor de acelerómetro/giroscopio de 6050 ejes MPU6
- “Adafruit_BMP085.h” es una biblioteca para el sensor de presión barométrica BMP085.
- “HMC5883L_Simple.h” es una biblioteca para el sensor del magnetómetro HMC5883L.
- Luego, crea objetos globales para los tres sensores: MPU6050 accelgyro, Adafruit_BMP085 bmp y HMC5883L_Simple Compass.
- A continuación, define algunas variables para almacenar los valores del sensor, como ax, ay y az para el acelerómetro de MPU6050 y para el magnetómetro de HMC5883L. Y define una constante LED_PIN y una variable blinkState.
- La función setup () inicia una comunicación en serie y comienza la comunicación I2C. Luego inicializa los tres sensores:
- El sensor BMP085 se inicializa llamando al método begin(). Si esto devuelve falso, lo que indica que no se pudo encontrar el sensor, el programa entra en un bucle infinito e imprime un mensaje de error en el puerto serie.
- El sensor MPU6050 se inicializa llamando al método initialize() y comprobando si funciona correctamente. Y configuró el bypass I2C habilitado para MPU6050.
- El sensor HMC5883L se inicializa llamando a algunas funciones, como SetDeclination, SetSamplingMode, SetScale y SetOrientation, para establecer diferentes configuraciones para el sensor.
- En la función loop(), el código lee los datos de los tres sensores y los imprime en el puerto serie:
- Lee la temperatura, la presión, la altitud y la presión a nivel del mar desde el sensor.
- Lee mediciones de aceleración y giroscopio sin procesar del sensor MPU6050.
- Lee el rumbo del sensor HMC5883L, que es el ángulo entre la dirección en la que apunta el sensor y la dirección en la que se encuentra el norte magnético.
- Finalmente, parpadea el LED para indicar actividad y espera un momento antes de volver a leer los sensores.
Documentos / Recursos
![]() |
Boceto de prueba de sensor combinado ARDUINO GY87 [pdf] Manual del usuario Bosquejo de prueba de sensor combinado GY87, GY87, Bosquejo de prueba de sensor combinado, Bosquejo de prueba de sensor, Bosquejo de prueba |