Sistema computacional distribuído para aeronaves não tripuladas (UAS), composto por 5 unidades computacionais comunicando via CAN FD com o protocolo Bythos.
| Computador | Função | Plataforma |
|---|---|---|
| Raspberry Pi | Computador de missão | Linux |
| ESP32-S | Aquisição de sensores | ESP32 |
| ESP32-A | Controlo de voo | ESP32 |
| ESP32-FS | Computador de segurança | ESP32 |
| ESP32-FS_A | Controlador de emergência | ESP32 |
- Python 3.8+
- GCC (compilador C/C++) —
sudo apt install build-essential - curl (para instalar o direnv)
As ferramentas de build (CMake, Ninja) estão isoladas numa venv Python, tal como se faz com packages Python. Isto significa:
- Nada é instalado no sistema — tudo fica dentro de
.venv/ - Apaga limpo —
rm -rf .venv/ .tools/remove tudo - Reprodutível — qualquer pessoa pode recriar o ambiente com um comando
# Criar venv + instalar ferramentas + configurar direnv
./setup.shO setup.sh faz:
- Cria a venv em
.venv/ - Instala CMake e Ninja via pip
- Instala o
direnvem.tools/bin/ - Configura o hook do direnv no
~/.bashrc
O projeto usa direnv para ativar/desativar a venv automaticamente:
- Entras na pasta → venv ativa automaticamente
- Saís da pasta → venv desativa automaticamente
Para configurar pela primeira vez:
# 1. Executa o setup (instala direnv + configura hook)
./setup.sh
# 2. Reinicia o terminal ou executa
source ~/.bashrc
# 3. Navega até à pasta do projeto
cd /home/shegapt/Secretária/RC/Coding/AERUS-TELLUS/AERUS
# A venv é ativada automaticamente!Se preferires ativar manualmente:
source .venv/bin/activate # ativar
deactivate # desativar| Comando | Descrição |
|---|---|
./setup.sh |
Criar/recriar ambiente completo |
source .venv/bin/activate |
Ativar venv manualmente |
deactivate |
Desativar venv |
rm -rf .venv/ .tools/ |
Apagar completamente o ambiente |
direnv allow |
Permitir o .envrc (após editar) |
| Ferramenta | Versão | Localização |
|---|---|---|
cmake |
4.4.x | .venv/bin/cmake |
ninja |
1.13.x | .venv/bin/ninja |
direnv |
2.34.x | .tools/bin/direnv |
| Ficheiro | Descrição |
|---|---|
.envrc |
Ativa a venv automaticamente (usado pelo direnv) |
build-requirements.txt |
Versões exatas das dependências de build |
setup.sh |
Script de configuração do ambiente |
O .vscode/settings.json está configurado para apontar para o executável do CMake dentro da venv:
{
"cmake.sourceDirectory": ".../shared/Bythos/c_core",
"cmake.cmakePath": ".../.venv/bin/cmake"
}A extensão CMake Tools deve detetar o toolkit automaticamente.
cd shared/Bythos/c_core
cmake -B build -S .
cmake --build buildAERUS/
├── .venv/ # Ambiente de build (gitignored)
├── .tools/ # Ferramentas locais (gitignored)
│ └── bin/direnv # direnv para ativação automática
├── .envrc # Configuração do direnv
├── .gitmodules # Definição do submodule Bythos
├── setup.sh # Script de configuração
├── build-requirements.txt # Versões das dependências
├── CHANGELOG.md # Histórico de versões
├── README.md # Documentação principal
├── ARQUITETURA_DO_REPOSITORIO.md # Arquitetura do repositório
├── LICENSE # Licença AGPL-3.0
├── shared/ # Código partilhado entre computadores
│ └── Bythos/ # Protocolo de comunicação (submodule)
│ ├── c_core/ # Implementação C (CMake)
│ ├── src/ # Implementação Rust (Cargo)
│ └── docs/ # Documentação do protocolo
├── math/ # Implementações matemáticas (gitignored)
├── especificacoes/ # Especificações técnicas (17 domínios)
├── checklists/ # Checklists de voo (15 ficheiros)
├── hardware/ # Documentação de hardware
│ └── CANBus/ # Documentação CAN Bus
└── docs/ # Documentação do projeto
└── logo/ # Logotipos
AGPL-3.0 — Ver LICENSE