ARDUINO-lgoo

Esboço de teste de sensor combinado ARDUINO GY87

ARDUINO-GY87-Produto de esboço de teste de sensor combinado

Introdução

Se você é um fabricante ávido ou um entusiasta da robótica, você encontrou este módulo minúsculo, mas poderoso. O módulo GY-085 IMU é uma ótima maneira de adicionar detecção de movimento aos seus projetos, como um robô de autoequilíbrio ou um quadricóptero.
Mas antes de começar a experimentar o módulo GY-87 IMU, você precisa saber como fazer a interface dele com sua placa Arduino. É aí que entra esse blog! Nos parágrafos a seguir, abordaremos o básico do módulo GY-87 IMU, como configurá-lo e como escrever o código do Arduino para ler os dados do sensor. Também forneceremos algumas dicas e recursos para solucionar problemas comuns.
Então, se você está pronto para começar, vamos mergulhar e aprender sobre a interface do módulo GY-87 IMU com o Arduino!

O que é GY-87 IMU MPU6050

Módulos de unidade de medição inercial (IMU) como o GY-87 combinam muitos sensores em um único pacote, como o acelerômetro/giroscópio MPU6050, o magnetômetro HMC5883L e o sensor de pressão barométrica BMP085. Portanto, o GY-87 IMU MPU6050 é um módulo de rastreamento de movimento de 9 eixos tudo-em-um que combina um giroscópio de 3 eixos, acelerômetro de 3 eixos, magnetômetro de 3 eixos e um processador de movimento digital. É muito usado em projetos robóticos, como quadcopters e outros veículos aéreos não tripulados (UAVs), porque pode medir e rastrear com precisão a orientação e o movimento. Também é usado em outras aplicações, como navegação, jogos e realidade virtual.

Componentes de Hardware

Você precisará do seguinte hardware para interface GY-87 IMU MPU6050 HMC5883L Módulo BMP085 com Arduino.

Componentes Valor Qtd.
Arduino UNO 1
MPU6050 Módulo Sensor GY-87 1
Placa de ensaio 1
Fios de ligação 1

GY-87 com Arduino 

Agora que você entendeu o GY-87, é hora de fazer a interface com o Arduino. Para fazer isso, siga Agora que você entendeu o GY-87, é hora de fazer a interface com o Arduino. Para isso, siga

esquemático

Faça as conexões de acordo com o diagrama de circuito abaixo

GY-87 IMU MPU6050 HMC5883L BMP085 ArduinoARDUINO-GY87-Teste de sensor combinado-esboço-fig 1Fiação / Conexões

Arduino Sensor MPU6050
5V VCC
Terra Terra
A4 Adventista do Sétimo Dia
A5 SCA

Instalando o Arduino IDE 

Primeiro, você precisa instalar o software Arduino IDE de seu site oficial website Arduino. Aqui está um guia passo a passo simples sobre “Como instalar o Arduino IDE”.

Instalando Bibliotecas 

Antes de começar a carregar o código, baixe e descompacte as seguintes bibliotecas em /Program Files (x86)/Arduino/Libraries (padrão) para usar o sensor com a placa Arduino. Aqui está um guia passo a passo simples sobre “Como adicionar bibliotecas no Arduino IDE”.

  • MPU6050
  • Adafruit_BMP085
  • HMC5883L_Simples

Código 

Agora copie o código a seguir e faça o upload para o software Arduino IDE.

#include “I2Cdev.h” #include “MPU6050.h” #include #incluir giroscópio MPU085; Adafruit_BMP5883 bmp; HMC6050L_Simple Compass; int085_t ax, ay, az; int5883_t gx, gy, gz; #define LED_PIN 16 bool blinkState = false; void setup() { Serial.begin(16); Wire.begin(); // inicializa dispositivos Serial.println(“Inicializando dispositivos I13C…”); // inicializar bmp9600 if (!bmp.begin()) { Serial.println(“Não foi possível encontrar um sensor BMP2 válido, verifique (!bmp.begin()) { Serial.println(“Não foi possível encontrar um sensor BMP085 válido, check Serial.println(accelgyro.testConnection() ? “MPU085 connection success” : “MPU085 connection failed”); accelgyro.setI6050CBypassEnabled(true); // define o modo bypass do gateway para hmc6050L // inicializa hmc2l Compass.SetDeclination(5883, 5883, 'E'); Compass.SetSamplingMode(COMPASS_SINGLE);
Bússola.SetScale(COMPASS_SCALE_130);
Compass.SetOrientation(COMPASS_HORIZONTAL_X_NORTH); // configura o LED do Arduino para verificar a atividade pinMode(LED_PIN, OUTPUT); } loop void() {
Serial.print("Temperatura = "); Serial.print(bmp.readTemperature());
Serial.println(”*C”); Serial.print("Pressão = ");
Serial.print(bmp.readPressure()); Serial.println("Pa"); // Calcula a altitude assumindo pressão barométrica 'padrão' // de 1013.25 milibar = 101325 Pascal Serial.print(“Altitude = “); Serial.print(bmp.readAltitude()); Serial.println(“metros”); Serial.print(“Pressão ao nível do mar (calculada) = “);
Serial.print(bmp.readSealevelPressure()); Serial.println("Pa");
Serial.print("Altitude real = "); Serial.print(bmp.readAltitude(101500));
Serial.println("metros"); // lê medições brutas de aceleração/giroscópio do dispositivo accelgyro.getMotion6(&ax, &ay, &az, &gx, &gy, &gz); // exibe valores de aceleração/giroscópio x/y/z separados por tabulações Serial.print(“a/g:\t”); Serial.print(ax);
Serial.print(“\t”); Serial.print(ay); Serial.print(“\t”); Serial.print(az);
Serial.print(“\t”); Serial.print(gx); Serial.print(“\t”); Serial.print(gy);
Serial.print(“\t”); Serial.println(gz); título flutuante =
Compass.GetHeadingDegrees(); Serial.print("Cabeçalho: \t"); Serial.println(cabeçalho); // LED pisca para indicar atividade blinkState = !blinkState;
digitalWrite(LED_PIN, blinkState); atraso(500); }

Vamos Testar 

Depois de carregar o código, é hora de testar o circuito! O código no programa Arduino faz interface com os sensores usando suas bibliotecas, o que permite ler os dados do sensor e definir várias configurações dos sensores. Em seguida, ele imprime os dados do sensor pela porta serial. O LED é usado para mostrar que o circuito está fazendo algo. Isso significa que o LED pisca toda vez que a função de loop é executada, indicando que o código está lendo ativamente os valores do sensor.

Explicação de trabalho 

O código é a principal coisa em que se baseia o funcionamento do circuito. Então, vamos entender o código:.

  • Em primeiro lugar, inclui várias bibliotecas para interface com os sensores:
  • “I2Cdev.h” e “MPU6050.h” são bibliotecas para o sensor acelerômetro/giroscópio MPU6050 de 6 eixos
  • “Adafruit_BMP085.h” é uma biblioteca para o sensor de pressão barométrica BMP085.
  • “HMC5883L_Simple.h” é uma biblioteca para o sensor magnetômetro HMC5883L.
  • Em seguida, ele cria objetos globais para os três sensores: MPU6050 accelgyro, Adafruit_BMP085 bmp e HMC5883L_Simple Compass.
  • Em seguida, define algumas variáveis ​​para armazenar os valores do sensor, como ax, ay e az para o acelerômetro do MPU6050 e para caber no magnetômetro do HMC5883L. E define uma constante LED_PIN e uma variável blinkState.
  • A função setup() inicia uma comunicação serial e inicia a comunicação I2C. Em seguida, inicializa os três sensores:
  • O sensor BMP085 é inicializado chamando o método begin(). Se retornar falso, indicando que o sensor não foi encontrado, o programa entra em loop infinito e imprime uma mensagem de erro na porta serial.
  • O sensor MPU6050 é inicializado chamando o método initialize() e verificando se está funcionando corretamente. E definiu o bypass I2C habilitado para MPU6050.
  • O sensor HMC5883L é inicializado chamando algumas funções, como SetDeclination, SetSamplingMode, SetScale e SetOrientation, para definir diferentes configurações para o sensor.
  • Na função loop(), o código lê os dados dos três sensores e os imprime pela porta serial:
  • Ele lê temperatura, pressão, altitude e pressão ao nível do mar do sensor.
  • Ele lê medições brutas de aceleração e giroscópio do sensor MPU6050.
  • Ele lê a direção do sensor HMC5883L, que é o ângulo entre a direção na qual o sensor está apontando e a direção na qual se encontra o norte magnético.
  • Por fim, pisca o LED para indicar atividade e aguarda um momento antes de reler os sensores.

Documentos / Recursos

Esboço de teste de sensor combinado ARDUINO GY87 [pdf] Manual do Usuário
Esboço de teste de sensor combinado GY87, GY87, Esboço de teste de sensor combinado, Esboço de teste de sensor, Esboço de teste

Referências

Deixe um comentário

Seu endereço de e-mail não será publicado. Os campos obrigatórios estão marcados *