Esboço de teste de sensor combinado ARDUINO GY87
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 ArduinoFiaçã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 |