Loading repository data…
Loading repository data…
lucasmarques594 / repository
ECU Modular é um sistema embarcado profissional para monitoramento e processamento de sensores automotivos em tempo real. O projeto foi construído seguindo os princípios de MISRA-C:2012 para garantir código limpo, seguro e pronto para certificação.
Sistema embarcado para monitoramento de sensores automotivos em tempo real com arquitetura modular e filtros digitais (DSP).
✅ Status: Funcional com sensores de Temperatura, Pressão de Óleo e RPM. Disponível em versões terminal e GUI. Pronto para hardware real (Arduino/STM32).
flowchart TD
A[main.c] -->|usa| B[sensors]
B -->|usa| C[filters/moving_avg]
B -->|usa| D[filters/low_pass]
B -->|usa| E[alerts]
C --> F[common]
D --> F
E --> F
Camadas:
Pré-requisitos:
Instalar (Ubuntu/Debian):
sudo apt-get install build-essential
Compilar e Executar:
git clone https://github.com/lucasmarques594/ecu_modular.git
cd ecu_modular
make run
Pré-requisitos:
Instalar Raylib:
macOS:
brew install raylib
Ubuntu/Debian:
sudo apt-get install libraylib-dev
Ou compile do source:
git clone --depth 1 https://github.com/raysan5/raylib.git
cd raylib/src
make PLATFORM=PLATFORM_DESKTOP
sudo make install
Compilar e Executar GUI:
cd ecu_modular
make -f Makefile.gui run
Visual da Interface:
┌────────────────────────────────────────────────────┐
│ ECU SENSOR MONITOR - Real-Time Dashboard │
│ │
│ 85.3°C 2.15 bar 2650 RPM │
│ ┌─────┐ ┌─────┐ ┌─────┐ │
│ │ ● │ │ ● │ │ ● │ Gauges │
│ └─────┘ └─────┘ └─────┘ │
│ TEMP C OIL bar RPM x1000 │
│ │
│ Temperatura (C) │
│ ▁▂▃▅▆▇█▇▆▅▃▂▁ ← Gráfico em tempo real │
│ │
│ Pressão Óleo (bar) │
│ ▔▔▔▔▔▔▔▔▔▔▔▔▔ │
│ │
│ RPM Motor │
│ ▁▃▅▇█▇▅▃▁▃▅▇▅▃▁ │
│ FPS: 60 │
└────────────────────────────────────────────────────┘
Recursos da GUI:
Saída do programa:
Tempo: 5.00 s
-----------------------------------------------------------------
Temperatura Motor | Raw: 85.30 | MA: 84.50 | LP: 84.80 | Status: OK
Pressão de Óleo | Raw: 2.15 | MA: 2.20 | LP: 2.18 | Status: OK
RPM Motor | Raw: 2650.40 | MA: 2648.10 | LP: 2649.30 | Status: OK
⚠️ ALERTA: Temperatura WARNING! (96.2°C)
Simplesmente execute e visualize os dados em tempo real com gráficos e gauges!
Configurar parâmetros:
Edite include/common/config.h:
#define SAMPLE_RATE_HZ 100U // Taxa de amostragem
#define MOVING_AVG_WINDOW 10U // Janela do filtro
#define LOW_PASS_ALPHA 0.2f // Coeficiente IIR
#define TEMP_WARNING 95 // Limite de alerta
ecu_modular/
├── include/
│ ├── common/ # Tipos e configurações
│ ├── filters/ # APIs dos filtros
│ ├── alerts/ # API de alertas
│ └── sensors/ # API de sensores
├── src/
│ ├── filters/ # Implementação FIR/IIR
│ ├── alerts/ # Implementação debounce
│ ├── sensors/ # Gerenciamento
│ └── main.c # Versão terminal
├── gui/
│ └── main_gui.c # Versão gráfica (Raylib)
├── Makefile # Build terminal
└── Makefile.gui # Build GUI
Módulos:
make # Compilar
make run # Compilar e executar
make clean # Limpar build
make debug # Build com debug
make info # Informações
make -f Makefile.gui # Compilar GUI
make -f Makefile.gui run # Compilar e executar GUI
make -f Makefile.gui clean # Limpar build GUI
✅ Filtros digitais (FIR/IIR)
✅ Processamento real-time (100 Hz)
✅ Arquitetura modular
✅ MISRA-C:2012
✅ Sem alocação dinâmica
✅ Código testável
✅ Interface gráfica moderna (Raylib)
✅ RPM realístico com comportamento natural
Arduino: Substitua simulador por analogRead()
STM32: Use timers + DMA
ESP32: Configure com FreeRTOS
=================================================================
ECU Sensor Monitor - Sistema de Monitoramento v1.0
=================================================================
Tempo: 5.00 s
-----------------------------------------------------------------
Temperatura Motor | Raw: 85.30 | MA: 84.50 | LP: 84.80
Pressão de Óleo | Raw: 2.15 | MA: 2.20 | LP: 2.18
RPM Motor | Raw: 2650.40 | MA: 2648.10 | LP: 2649.30
=================================================================
Interface gráfica moderna com: