O MPU-6050 é um dispositivo de rastreamento de movimento de 6 eixos com um giroscópio e acelerômetro, tornando-o ideal para aplicativos de detecção de movimento, como robótica, drones e projetos de IoT. Neste guia, você aprenderá como conectar e usar o MPU-6050 com um Raspberry Pi para capturar dados de movimento e orientação.
O que você precisará
- Raspberry Pi (Qualquer modelo com suporte GPIO, por exemplo, PI 3, PI 4)
- Módulo MPU-6050
- Fios de pão e jumper
- Um computador com acesso SSH ao Raspberry Pi ou um teclado conectado e monitor
- Python instalado no Raspberry Pi
Etapa 1: Fiação do MPU-6050 para o Raspberry Pi
O MPU-6050 se comunica com o Raspberry Pi usando o protocolo I2C.
Conexões
| Pino MPU-6050 | Pino de framboesa pi | 
|---|---|
| VCC | 3.3V (pino 1) | 
| Gnd | Terra (pino 6) | 
| SDA | SDA (pino 3, gpio2) | 
| SCL | SCL (pino 5, gpio3) | 
Observação: Verifique se o módulo MPU-6050 opera a 3,3V. A maioria dos módulos inclui um regulador de tensão, permitindo que eles sejam alimentados com 5V.
Etapa 2: Ative a interface I2C no Raspberry Pi
- Abra a ferramenta de configuração do Raspberry Pi:
sudo raspi-config
- Navegar para Opções de interface> i2c e ativá -lo.
- Reinicie o Raspberry Pi:
sudo reboot
Etapa 3: Instale as ferramentas e bibliotecas necessárias
- Atualize seu Raspberry Pi:
sudo apt update && sudo apt upgrade -y
- Instale as ferramentas i2C:
sudo apt install -y i2c-tools
- Instale as bibliotecas Python para a comunicação e processamento de dados I2C:
pip install smbus2
Etapa 4: verifique a conexão
- Usar i2cdetectPara verificar se o MPU-6050 é detectado no barramento i2C:sudo i2cdetect -y 1
- Você deve ver o MPU-6050 no endereço 0x68(ou0x69Se o pino AD0 for puxado alto). Se não:- Verifique sua fiação.
- Verifique se o MPU-6050 está alimentado.
 
Etapa 5: Lendo dados do MPU-6050
O script Python a seguir lê dados de acelerômetro e giroscópio do MPU-6050.
Exemplo de código Python
import smbus2
import time
# MPU-6050 Registers and Address
MPU6050_ADDR = 0x68
PWR_MGMT_1 = 0x6B
ACCEL_XOUT_H = 0x3B
GYRO_XOUT_H = 0x43
# Initialize I2C bus
bus = smbus2.SMBus(1)
# Wake up the MPU-6050
bus.write_byte_data(MPU6050_ADDR, PWR_MGMT_1, 0)
def read_raw_data(addr):
    # Read two bytes of data from the given address
    high = bus.read_byte_data(MPU6050_ADDR, addr)
    low = bus.read_byte_data(MPU6050_ADDR, addr+1)
    value = (high << 8) | low
    # Convert to signed value
    if value > 32767:
        value -= 65536
    return value
try:
    while True:
        # Read accelerometer data
        accel_x = read_raw_data(ACCEL_XOUT_H)
        accel_y = read_raw_data(ACCEL_XOUT_H + 2)
        accel_z = read_raw_data(ACCEL_XOUT_H + 4)
        # Read gyroscope data
        gyro_x = read_raw_data(GYRO_XOUT_H)
        gyro_y = read_raw_data(GYRO_XOUT_H + 2)
        gyro_z = read_raw_data(GYRO_XOUT_H + 4)
        # Convert raw data to meaningful values (optional scaling may be needed)
        accel_x_scaled = accel_x / 16384.0
        accel_y_scaled = accel_y / 16384.0
        accel_z_scaled = accel_z / 16384.0
        gyro_x_scaled = gyro_x / 131.0
        gyro_y_scaled = gyro_y / 131.0
        gyro_z_scaled = gyro_z / 131.0
        print(f"Accelerometer: X={accel_x_scaled:.2f}, Y={accel_y_scaled:.2f}, Z={accel_z_scaled:.2f}")
        print(f"Gyroscope: X={gyro_x_scaled:.2f}, Y={gyro_y_scaled:.2f}, Z={gyro_z_scaled:.2f}")
        time.sleep(1)
except KeyboardInterrupt:
    print("Exiting...")
Etapa 6: Aplicações do MPU-6050
- Rastreamento de movimento: Rastrear movimento e orientação em robótica ou vestível.
- Sistemas de estabilização: Implemente a estabilização giroscópica para drones ou gimbals.
- Jogos: Crie controladores de jogo baseados em movimento.
- Projetos de IoT: Use dados de movimento para acionar eventos de automação.
Solução de problemas
- 
Dispositivo não detectado: - Verifique as conexões SDA e SCL.
- Verifique se a interface I2C está ativada no Raspberry Pi.
- Verifique a fonte de alimentação para o MPU-6050.
 
- 
Leituras imprecisas: - Calibre o sensor implementando um deslocamento para cada eixo.
- Verifique se o sensor é colocado em uma superfície estável.
 
- 
Erros i2c: - Certifique -se de que não haja dispositivos conflitantes no barramento i2C.
 
Conclusão
O MPU-6050 é um sensor de movimento versátil que pode adicionar recursos precisos de rastreamento de movimento aos seus projetos de Raspberry Pi. Seguindo este guia, você pode configurar e usar o MPU-6050 para aplicações como robótica, sistemas de estabilização e automação de IoT. Experimente os dados de escala e filtragem para ajustar o sensor para suas necessidades!
 
            
 
      
 
      
 
      
 
      
 
       
         
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
   
   
   
   
   
   
   
   
   
   
   
   
  