Repositório destinado à um dos modelos de supervisório da Supernova.
As atualizações dos dados desse supervisório são recebidas via serial e seguem o caminho:
- Altímetro de voo -> Estação da base -> Supervisório
Esse projeto está adequado para um modelo específico da estrutura de dados (JSON) recebida da estação da base, o que não o impede de ser ajustado manualmente.
O modelo atual recebe e mostra os seguintes dados:
- Timestamp registrado pelo altímetro
- Status do voo
- Latitude
- Longitude
- Altitude do GPS
- Altitude do Barômetro
- Altitude do Filtro de Kalman
- Velocidade do GPS
- Velocidade do Filtro de Kalman
- Módulo da aceleração
- Tensão da bateria
- Rotação em quatérnios
A partir desses dados são registrados:
- Valor máximo do módulo de aceleração
- Valor máximo da altitude do Filtro de Kalman (apogeu)
- Valor máximo da velocidade do Filtro de Kalman
- Retorno visual do acionamento dos paraquedas Principal e Drogue
- Retorno visual do nível lógico do Remove Before Flight (RBF)
- Gráfico interativo do módulo da aceleração em relação ao timestamp
- Gráfico interativo da altitude do Filtro de Kalman em relação ao timestamp
- Mapa interativo com marcadores de coordenadas, do local de lançamento e do local de aterrissagem
- Visualização 3D da posição do veículo em relação ao solo
- Retorno visual do apogeu, com meta definida em 3000m
OBS:
- Os marcadores dos locais de lançamento e aterrissagem são adicionados automaticamente de acordo com o status de voo, podendo diferir da realidade em casos de assincronicidade.
- A visualização 3D importa a malha disponível em
.assets/mesh, que possui a origem deslocada para condizer com a posição real do altímetro no foguete. Caso a malha seja alterada, a origem deve ser ajustada.
Todos os dados recebidos são salvos e organizados em um arquivo .csv disponível em .logs, pasta criada após o primeiro uso. Dentro dela serão criadas subpastas com a data de aquisição no formato AAAA-MM-DD. O nome do arquivo .csv corresponde ao instante em que foi criado, no formato HHMMSSmmmmmm.
Existem 3 modos de funcionamento:
- Start
- Replay log
- View log
Start:
- modo síncrono. Configure a porta serial e o baudrate.
Replay log
- simula o modo síncrono a partir dos dados de um log e segue o intervalo real de tempo entre os dados, salvo quando esse intervalo ultrapassa 5 segundos. Nesse caso, o intervalo é subtituído por 1 segundo.
View log
- carrega os dados de um log e mostra os valores máximos, os gráficos prontos e o mapa com todos os marcadores.
Para o desenvolvimento, foi utilizado o Python 3.9.13. Após realizar o download desse repositório, crie um ambiente virtual e instale as dependências disponíveis em requirements.txt através do comando:
pip install -r requirements.txt
