Skip to content

Repositório contendo os arquivos de realização do Item 4 da tarefa da Unidade 3 do programa EmbarcaTech - Residência Tecnológica em Sistemas Embarcados

Notifications You must be signed in to change notification settings

Xamacardoso/picow_mpu6050

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🚨 Sistema de Monitoramento de Inclinação (MPU6050) + Controle de Servo Motor + Alerta Visual OLED

Este projeto implementa um sistema de monitoramento de inclinação utilizando o sensor MPU6050 (acelerômetro/giroscópio), um servo motor SG90 e um display OLED SSD1306, rodando em um Raspberry Pi Pico W (RP2040) da BitDogLab. O sistema lê a inclinação do dispositivo, ajusta o ângulo do servo motor proporcionalmente e exibe informações no display OLED, incluindo um alerta visual caso o ângulo ultrapasse um limite definido.

🛠️ Funcionalidades

  • Leitura de inclinação (ângulo) com sensor MPU6050 via I2C
  • Controle de servo motor SG90 via PWM
  • Mapeamento automático do ângulo de inclinação para o ângulo do servo (0° a 180°)
  • Exibição do ângulo atual no display OLED SSD1306
  • Alerta visual no display caso o ângulo ultrapasse o limite configurado (ex: 60°)
  • Mensagens de status e leitura exibidas no terminal serial

📁 Estrutura do Projeto

  • src/main.c: Código principal do sistema
  • src/drivers/mpu6050/mpu6050.h e .c: Interface e implementação do sensor MPU6050
  • src/drivers/servo/servo.h e .c: Interface e implementação do controle do servo motor
  • src/drivers/display/display.h e .c: Interface e implementação do display OLED SSD1306

🔗 Dependências

  • Pico SDK
  • Sensor MPU6050 (I2C0)
  • Servo motor SG90 (PWM) no GPIO 28
  • Display OLED SSD1306 (I2C1)

💻 Como compilar e executar

✅ Pré-requisitos

  • Raspberry Pi Pico (RP2040)
  • Sensor MPU6050 conectado via I2C (padrão: SDA=0, SCL=1)
  • Servo motor SG90 conectado ao pino PWM do Pico (padrão: GPIO 28)
  • Display OLED SSD1306 conectado via I2C (padrão: SDA=14, SCL=15)
  • Ambiente de desenvolvimento C/C++ para Pico (Pico SDK)

📋 Passos

  1. Clone o repositório e configure o Pico SDK:

    git clone https://github.com/Xamacardoso/picow_mpu6050.git
    cd picow_mpu6050
    mkdir build && cd build
    cmake ..
    make
  2. Grave o arquivo .uf2 gerado na Pico:

    • Conecte a Pico em modo BOOTSEL
    • Copie o arquivo .uf2 para a unidade USB que aparecer
  3. Conecte o hardware:

    • Sensor MPU6050 nos pinos I2C do Pico (SDA=0, SCL=1)
    • Servo motor SG90 no pino PWM (GPIO 28)
    • Display OLED SSD1306 nos pinos I2C (SDA=14, SCL=15)
  4. Execute:

    • O sistema iniciará automaticamente, exibindo as leituras de inclinação, o ângulo do servo e alertas no display OLED e no terminal serial.

🔎 Observações

  • Certifique-se de que todos os dispositivos estejam corretamente conectados e alimentados.
  • O limite de alerta pode ser ajustado na constante ANGLE_ALERT_THRESHOLD em main.c.
  • O mapeamento de ângulo pode ser ajustado conforme necessário no código principal.

About

Repositório contendo os arquivos de realização do Item 4 da tarefa da Unidade 3 do programa EmbarcaTech - Residência Tecnológica em Sistemas Embarcados

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published