Como usar o módulo MPU-6050 (acelerômetro e giroscópio)

Como usar o módulo MPU-6050 (acelerômetro e giroscópio)

O MPU-6050 é um sensor versátil que combina um acelerômetro de 3 eixos e um giroscópio de 3 eixos em um único pacote. Neste tutorial, vamos explorar como conectar este módulo a um Arduino para medir aceleração e velocidade angular. O resultado será um programa simples que exibe dados em tempo real do sensor, permitindo que você monitore tanto a aceleração quanto a orientação do seu dispositivo.

Seguindo este guia, você aprenderá como configurar o hardware, conectar corretamente os componentes e escrever o código necessário para colocar o MPU-6050 em funcionamento. Isso lhe dará uma base para projetos futuros envolvendo detecção de movimento e orientação. Para maior clareza, não deixe de ver o vídeo que acompanha este tutorial (no vídeo em 00:00).

Hardware explicado

O componente principal deste projeto é o sensor MPU-6050, que fornece dados tanto do acelerômetro quanto do giroscópio. O acelerômetro mede a aceleração linear ao longo dos eixos X, Y e Z, enquanto o giroscópio mede as taxas de rotação em torno desses mesmos eixos. Esta combinação torna o MPU-6050 uma excelente escolha para aplicações que requerem rastreamento de movimento.

Além disso, o módulo usa uma interface I2C para comunicação, o que simplifica as ligações e permite que vários dispositivos sejam conectados no mesmo barramento. O sensor é alimentado através do pino VCC, que normalmente requer uma tensão entre 3.3V e 5V. O pino GND está conectado ao terra comum do Arduino.

Detalhes da ficha técnica

FabricanteInvenSense
Número da peçaMPU-6050
Tensão lógica/E/S3.3 - 5 V
Tensão de alimentação3.3 - 5 V
Corrente de saída (por canal)...
Corrente de pico (por canal)...
Orientações sobre a frequência PWM...
Limiares de entrada lógica...
Queda de tensão / RDS(on)/ saturação...
Limites térmicos...
PacoteQFN
Notas / variantes...

  • Conecte o pino VCC a 3,3 V ou 5 V.
  • Conecte o pino GND à terra.
  • Use a comunicação I2C via SDA (dados) e SCL (relógio).
  • Certifique-se de que haja resistores pull-up nas linhas SDA e SCL.
  • Verifique os níveis de tensão adequados para evitar danificar o sensor.

Instruções de fiação

arduino_wiring_MPU-6050

Comece conectando o pino VCC do MPU-6050 ao pino 5V do Arduino. Em seguida, conecte o pino GND do MPU-6050 a um dos pinos GND do Arduino. Para comunicação I2C, conecte o pino SDA do MPU-6050 ao pino A4 do Arduino e o pino SCL ao pino A5. Certifique-se de que seu Arduino esteja configurado para usar comunicação I2C incluindo as bibliotecas apropriadas no seu código.

Verifique novamente suas conexões antes de alimentar o sistema. Se estiver usando uma protoboard, certifique-se de que as conexões estejam seguras e de que não haja curtos-circuitos. Se o módulo não responder como esperado, verifique a fiação e confira o endereço I2C do MPU-6050 no seu código.

Exemplos de código e guia passo a passo

O trecho de código a seguir inicializa o MPU-6050 e começa a ler dados dele. Os identificadores-chave incluemmpu6050, que é a instância da classe MPU6050, etimer, que é usado para controlar a temporização da saída de dados.

MPU6050 mpu6050(Wire);
long timer = 0;

void setup() {
  Serial.begin(9600);
  Wire.begin();
  mpu6050.begin();
  mpu6050.calcGyroOffsets(true);
}

Nesta função setup, inicializamos a comunicação serial e o sensor MPU-6050. Ompu6050.calcGyroOffsets(true)A chamada é crucial, pois calibra os offsets do giroscópio, garantindo leituras precisas.

Na função loop, atualizamos continuamente os dados do sensor e os imprimimos no monitor serial. O trecho de código a seguir mostra como ler e imprimir os dados de temperatura e aceleração:

if(millis() - timer > 1000){
  Serial.print("temp : ");Serial.println(mpu6050.getTemp());
  Serial.print("accX : ");Serial.print(mpu6050.getAccX());
  Serial.print("\taccY : ");Serial.print(mpu6050.getAccY());
  Serial.print("\taccZ : ");Serial.println(mpu6050.getAccZ());
}

Este bloco verifica se passou um segundo desde a última saída. Em seguida, obtém os valores de temperatura e aceleração do MPU-6050 e os imprime no monitor serial. Você pode observar esses valores sendo atualizados em tempo real.

Demonstração / O que Esperar

Uma vez que tudo esteja ligado e o código carregado, você pode esperar ver os dados de temperatura e aceleração exibidos no monitor serial a cada segundo. Se você inclinar ou mover o MPU-6050, os valores de aceleração deverão mudar de acordo. Fique atento: fiação incorreta ou alimentação insuficiente podem resultar em leituras erráticas ou na ausência total de dados (no vídeo em 01:30).

Imagens

arduino_wiring_MPU-6050
arduino_wiring_MPU-6050
MPU-6050-module-1
MPU-6050-module-1
MPU-6050-module-2
MPU-6050-module-2
MPU-6050-module-schematic
MPU-6050-module-schematic
MPU-6050-module-1
MPU-6050-module-1
116-Arduino code for the MPU-6050 accelerometer and gyroscope sensor (all data)
Idioma: C++
117-Arduino code for an MPU-6050 accelerometer and gyroscope sensor (just angle)
Idioma: C++
Copiado!

Coisas que você pode precisar

Recursos e referências

Arquivos📁

Bibliotecas do Arduino (zip)