Código do Acelerômetro, Giroscópio e Magnetômetro MPU-9250

Código do Acelerômetro, Giroscópio e Magnetômetro MPU-9250

Neste tutorial, iremos explorar como usar o sensor MPU-9250, que combina um acelerômetro, giroscópio e magnetômetro em um único módulo compacto. Ao final deste guia, você será capaz de ler os dados do sensor e interpretar seu significado em seus projetos. Este sensor é particularmente útil para aplicações como robótica e drones, onde a orientação e o rastreamento de movimento são críticos. Você pode consultar o vídeo para mais esclarecimentos sobre a configuração e o código (no vídeo às 00:20).

ELE_MPU6050_208
ELE_MPU6050_208

Hardware Explicado

O módulo MPU-9250 integra três sensores: um acelerômetro, um giroscópio e um magnetômetro. O acelerômetro mede forças de aceleração, permitindo determinar a velocidade e a orientação. O giroscópio fornece velocidade angular, ajudando a entender a mudança de orientação ao longo do tempo. Por fim, o magnetômetro atua como uma bússola, fornecendo dados do campo magnético que auxiliam na navegação.

Esta combinação de sensores é particularmente benéfica em aplicações onde o rastreamento de movimento preciso é necessário, como em drones ou smartphones. O MPU-9250 se comunica via I2C ou SPI, tornando-o versátil para diferentes configurações de microcontroladores.

Detalhes da Ficha Técnica

Fabricante InvenSense
Número da peça MPU-9250
Tensão lógica/IO 1,8 V (I/O), 3,3 V (suprimento)
Tensão de alimentação 2,4 - 3,6 V
Corrente de saída (por canal) 3,2 mA (operação normal)
Corrente de pico (por canal) 19,8 mA (máx)
Orientação sobre frequência PWM N/A
Limiares de lógica de entrada 0,3 * VDD(baixo), 0,7 * VDD(alto)
Queda de tensão / RDS(on)/ saturação N/A
Limites térmicos -40 a 85 °C
Pacote QFN
Notas / variantes Inclui regulador de tensão interno
  • Garanta o fornecimento adequado de tensão (2,4 - 3,6 V) para evitar danificar o módulo.
  • Use um resistor de pull-up para as linhas SDA e SCL, se já não estiver incluído na sua placa de quebra.
  • Verifique o endereço I2C (o padrão é 0x68) e ajuste o pino ADO de acordo para endereços alternativos.
  • Verifique as conexões quanto à estabilidade para evitar leituras errôneas.
  • Calibre os sensores regularmente para medições precisas.

Instruções de Fiação

Fiação Arduino para MPU6050 usando A4 e A4 para SDA e SCL
Fiação do Arduino para MPU6050 usando A4 e A4 para SDA e SCL
Arduino Wiring for MPU-6050
Arduino Wiring for MPU-6050
Arduino wiring for  MPU6050 using A4 and A4 for SDA and SCL
Arduino wiring for MPU6050 using A4 and A4 for SDA and SCL

Para conectar o MPU-9250 ao seu Arduino, comece conectando o pino VCC do MPU-9250 ao pino de 5V do Arduino. O módulo possui um regulador interno, portanto, é seguro alimentá-lo com 5V. Em seguida, conecte o pino GND ao terra (GND) do Arduino. Para comunicação de dados, conecte o pino SDA ao pino A4 do Arduino e o pino SCL ao pino A5. Esta configuração é padrão para muitas placas Arduino.

Se você estiver usando um Arduino Mega, os pinos SDA e SCL estão localizados nos pinos 20 e 21, respectivamente. Certifique-se de que as conexões estejam seguras para evitar erros de comunicação. Se você precisar alterar o endereço I2C do MPU-9250, conecte o pino ADO a 5V para defini-lo como 0x69. Desconectá-lo reverterá para 0x68.

Esquema do Arduino para MPU6050 utilizando A4 e A4 para SDA e SCL.
Esquema Arduino para MPU6050 usando A4 e A4 para SDA e SCL

Exemplos de Código e Guia passo a passo

No esboço do Arduino, começamos incluindo a biblioteca MPU9250 e criando uma instância do sensor:

#include "MPU9250.h"
MPU9250 IMU(Wire,0x68);

O código inicializa o sensor e começa a comunicação nosetup()função:

void setup() {
  Serial.begin(115200);
  status = IMU.begin();
  if (status < 0) {
    Serial.println("IMU initialization unsuccessful");
    while(1) {}
  }
}

Dentro doloop()função, nós continuamente lemos e imprimimos os dados do sensor:

void loop() {
  IMU.readSensor();
  Serial.print("AccelX: ");
  Serial.print(IMU.getAccelX_mss(),6);
  // More print statements for other axes
}

Esta seção lê os valores do acelerômetro, giroscópio e magnetômetro, exibindo-os no Monitor Serial. Certifique-se de verificar o código completo carregado abaixo do artigo para a implementação completa.

Demonstração / O que Esperar

Quando você executar o código, deverá ver os valores do sensor sendo atualizados em tempo real no Monitor Serial. Os valores do acelerômetro vão flutuar à medida que você mover o sensor, enquanto os valores do giroscópio mostrarão a taxa de rotação. O magnetômetro fornecerá a intensidade do campo magnético em três eixos, que podem ser usados para determinar a orientação. Tenha cuidado com entradas flutuantes, pois podem levar a leituras imprecisas (no vídeo às 12:30).

Capítulos

  • Introdução (00:00)
  • Hardware Explicado (01:30)
  • Instruções de Fiação (04:00)
  • Exemplos de Código e Passo a Passo (06:00)
  • Demonstração (10:00)

Imagens

ELE_MPU6050_208
ELE_MPU6050_208
Arduino Wiring for MPU-6050
Arduino Wiring for MPU-6050
Arduino Schematic for  MPU6050 using A4 and A4 for SDA and SCL
Arduino Schematic for MPU6050 using A4 and A4 for SDA and SCL
Arduino wiring for  MPU6050 using A4 and A4 for SDA and SCL
Arduino wiring for MPU6050 using A4 and A4 for SDA and SCL
126-Arduino code for an MPU-9250 accelerometer, gyroscope, and magnetometer
Idioma: C++
Copiado!

Recursos e referências

Arquivos📁

Nenhum arquivo disponível.