0. Componentes e programação necessários para usar o módulo GY-91 MPU-9250 + BMP280

Componentes necessários:

{Produto: 2.000}
{Produto: 1338}

I. Como usar o sensor de inércia com o Arduino GY-91 e Arduino

Este módulo IMU é uma pequena placa na qual todos os sensores necessários para 10 graus de liberdade são colocados. Este módulo se comunica com Arduino ou microcontroladores através da interface I2C. Com o código-fonte e funções existentes do FreeIMU, você pode facilmente usar este IMU como um sistema AHRS em controles de vôo. Você pode usar este módulo em VTOL, aeromodelos, UAVS e também em dispositivos industriais e médicos.

Este sensor possui 8 pinos:

  • - VIN: Fonte de alimentação do módulo - 5 V
  • - GND: terreno
  • - 3V3: Fonte de alimentação do módulo - 3,3 V
  • - SLC: I2C Clock / SPI Clock
  • - SDA: pino de dados I2C / MOSI para SPI
  • - SAO / SDO: pino de configuração de endereço para pino I2C / MISO para SPI
  • - NCS: PIN de seleção de chip apenas para sensor MPU-9250
  • - CSB: Pino de seleção de chip apenas para sensor BMP280

Você pode ver a pinagem deste módulo na imagem abaixo:

II. Procedimentos experimentais

Conexão

O módulo é alimentado diretamente por Arduino , portanto, não precisamos de uma fonte de alimentação externa.

Os pinos são conectados de acordo com a tabela:

Módulo Pin

Pino de Arduino UNO

VCC

5V

GND

GND

SCL

PARA 5

SDA

A4

Conforme indicado na figura a seguir:

Código

Abra Arduino IDE e instale as seguintes bibliotecas:

Em primeiro lugar, você deve adicionar as bibliotecas " Adafruit_BMP280_Library " e " MPU9250_asukiaaa " no IDE Arduino . Para fazer isso, baixe-os clicando em seus nomes e, depois de entrar no GitHub, baixe-o. Instale-os mais tarde em Programa -> Incluir Biblioteca -> Adicionar Biblioteca .ZIP ...), encontre o tablet baixado e aceite.

Agora, abra um novo esboço e cole o seguinte código:

/ *

por MohammedDamirchi

https://electropeak.com/learn/

* /

#include <MPU9250_asukiaaa.h>

#include <Adafruit_BMP280.h>

Adafruit_BMP280 bme; // I2C

MPU9250_asukiaaa mySensor;

float aX, aY, aZ, aSqrt, gX, gY, gZ, mDirection, mX, mY, mZ;

void setup () {

Serial.begin (115200);

while (! Serial);

#ifdef _ESP32_HAL_I2C_H_ // Para ESP32

Wire.begin (SDA_PIN, SCL_PIN);

mySensor.setWire (& Wire);

#fim se

bme.begin ();

mySensor.beginAccel ();

mySensor.beginGyro ();

mySensor.beginMag ();

// Você pode definir seu próprio deslocamento para valores mag

// mySensor.magXOffset = -50;

// mySensor.magYOffset = -55;

// mySensor.magZOffset = -10;

}

void loop () {

if (mySensor.accelUpdate () == 0) {

aX = mySensor.accelX ();

aY = mySensor.accelY ();

aZ = mySensor.accelZ ();

aSqrt = mySensor.accelSqrt ();

Serial.print ("accelX:" + String (aX));

Serial.print ("\ taccelY:" + String (aY));

Serial.print ("\ taccelZ:" + String (aZ));

Serial.print ("\ taccelSqrt:" + String (aSqrt));

}

if (mySensor.gyroUpdate () == 0) {

gX = mySensor.gyroX ();

gY = meuSensor.gyroY ();

gZ = mySensor.gyroZ ();

Serial.print ("\ tgyroX:" + String (gX));

Serial.print ("\ tgyroY:" + String (gY));

Serial.print ("\ tgyroZ:" + String (gZ));

}

if (mySensor.magUpdate () == 0) {

mX = mySensor.magX ();

mY = mySensor.magY ();

mZ = mySensor.magZ ();

mDirection = mySensor.magHorizDirection ();

Serial.print ("\ tmagX:" + String (mX));

Serial.print ("\ tmaxY:" + String (mY));

Serial.print ("\ tmagZ:" + String (mZ));

Serial.print ("\ thorizontalDirection:" + String (mDirection));

}

Serial.print ("\ tTemperatura (* C):");

Serial.print (bme.readTemperature ());

Serial.print ("\ tPressure (Polegadas (Hg)):");

Serial.print (bme.readPressure () / 3377);

Serial.print ("\ tApproxAltitude (m):");

Serial.print (bme.readAltitude (1013,25)); // isso deve ser ajustado para sua forcase local

Serial.println (""); // Adicione uma linha vazia

}

Depois de ter tudo conectado, a porta e a placa estão bem, faça o upload do código para a placa e agora você pode abrir o "Serial Plotter" (ou com o Serial Monitor, na aba Ferramentas) para ver os movimentos registrados. Você pode filtrá-los e tentar modificar o código de exemplo. Claro, você pode tentar os exemplos das bibliotecas.

Para obter mais informações sobre acelerômetros, você pode consultar os seguintes tutoriais: