Skip to content

ZeniteSolar/RASP26

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

RASP26 - Central de Telemetria e Voz (Raspberry Pi)

Este repositorio contem a imagem de backup de sistema e os scripts de provisionamento automatizado da Raspberry Pi 4 (hardware codinome RASP26) da equipe Zenite Solar.

A Raspberry Pi 4 hospeda e executa os seguintes sistemas independentes:

  1. Zenira (mcv25): Assistente e sistema de reconhecimento de voz embarcado offline rodando Vosk API + classificação TinyML com Edge Impulse.
  2. can_monitor: Servico de monitoramento CAN que disponibiliza uma interface Web na porta 3000 para exibição de parâmetros do barco em tempo real.
  3. Log de Barramento: Registro inteligente de frames CAN em arquivos de log em formato SocketCAN acionados por chave física.

Este repositorio serve como um ponto de controle e restaurabilidade do sistema operacional da Raspberry Pi 4, permitindo reconstruir as configurações e as aplicações acima em um novo cartão SD do zero em caso de falha de hardware.

Conteudo do Repositorio

  • zenira_core_backup_2026-07-16_11-35-23.tar.gz: Backup compacto contendo todas as pastas da aplicação (zenira/, zenira-voice/, MCV25-main/), modelos acústicos de IA e as configurações dos daemons.
  • install_zenira.sh: Script de instalação limpa que fornece todas as dependências (APT, Python, rede, GPIO e overlays).
  • backup_zenira.sh: Script auxiliar para gerar novos checkpoints de backup.
  • can_logger_control.py: Script Python para gerenciar o log CAN por meio de chave física.
  • can-logger-control.service: Unidade systemd para iniciar o script de controle de log.

Requisitos de Hardware

  • Raspberry Pi 4 Model B (Recomendado 4GB de RAM).
  • Shield CAN MCP2515 com cristal oscilador de 16 MHz e interrupção conectada na GPIO 25 (Pino físico 22 da Pi).
  • Placa/Dispositivo de Som USB (ex: Headset Jabra EVOLVE 30 II) conectado à porta USB.
  • Cartão MicroSD de no mínimo 16 GB classe 10.

Guia de Instalacao e Restauracao (Passo a Passo)

Passo 1: Instalacao Limpa do Sistema Operacional

Grave em seu cartão SD a imagem oficial do Raspberry Pi OS (64-bit, Debian 12 Bookworm) via Raspberry Pi Imager. Configure o usuário padrão como zenitesolar com a senha de desenvolvimento.

Passo 2: Copiar os arquivos para a Raspberry Pi

Como o arquivo de backup completo possui 672 MB, ele foi dividido em partes de 80 MB para respeitar o limite de tamanho do GitHub. Envie todos os arquivos deste repositorio para o diretório /home/zenitesolar/ na Raspberry Pi:

scp install_zenira.sh backup_zenira.sh can_logger_control.py can-logger-control.service zenira_core_backup_2026-07-16_11-35-23.tar.gz.part_* zenitesolar@<IP_DA_RASPBERRY>:~/

Passo 3: Executar a Instalacao Automatizada

Acesse a Raspberry Pi via SSH e execute o instalador com privilégios de administrador:

ssh zenitesolar@<IP_DA_RASPBERRY>
chmod +x install_zenira.sh backup_zenira.sh
sudo ./install_zenira.sh

O script automatizado instalara as dependências de sistema do Linux (compiladores, utilitários CAN, dependências de áudio do ALSA/Pipewire, navegador Chromium e pacotes Python), alem de escrever a linha de carregamento do overlay do MCP2515 em /boot/firmware/config.txt e registrar os serviços no gerenciador de inicialização do sistema (systemd).

Passo 4: Unificar e Extrair o Backup das Aplicacoes

Primeiro, junte as partes do backup para reconstruir o arquivo tar.gz completo na Raspberry Pi:

cat zenira_core_backup_2026-07-16_11-35-23.tar.gz.part_* > zenira_core_backup_2026-07-16_11-35-23.tar.gz

Em seguida, extraia os binários, modelos de IA e códigos-fonte para a raiz do sistema operacional da Pi:

sudo tar -xzvf zenira_core_backup_2026-07-16_11-35-23.tar.gz -C /

Apos a extração, você pode remover os arquivos temporários do backup para economizar espaço:

rm zenira_core_backup_2026-07-16_11-35-23.tar.gz*

Passo 5: Reiniciar o Sistema

Reinicie a placa para carregar os drivers físicos do shield CAN:

sudo reboot

Verificacao de Funcionamento

Apos a reinicialização, verifique se a rede CAN e os serviços estão ativos executando os seguintes diagnósticos:

Verificar Interface CAN0

ip link show can0

Diagnostico dos Servicos em Execucao

systemctl status can-setup.service
systemctl status mcv25.service
systemctl status can-logger-control.service

Logs de Audio da Zenira

journalctl -u mcv25.service -f

Estrutura de Arquivos e Scripts do Repositorio

A tabela abaixo descreve a finalidade de cada script e arquivo que compõe o repositório RASP26 e como eles devem ser utilizados:

Nome do Arquivo Tipo Descrição Como/Quando Executar
zenira_core_backup_2026-07-16_11-35-23.tar.gz Arquivo Compactado Imagem de backup compactada do sistema contendo os executáveis compilados, modelos acústicos de fala, dependências registradas e a arvore de diretórios. Extraído com tar -xzvf ... -C / durante o Passo 4 da instalação.
install_zenira.sh Shell Script Script de provisionamento automático que instala dependências APT e pip, ativa a SPI no firmware e registra os daemons no systemd. Executado com sudo ./install_zenira.sh durante o Passo 3 em novas instalações.
backup_zenira.sh Shell Script Script para gerar novos snapshots de backup na própria Raspberry Pi de forma seletiva (excluindo logs históricos pesados e gravações temporárias). Executado com sudo ./backup_zenira.sh na Raspberry Pi quando novas alterações permanentes forem feitas.
can_logger_control.py Python Script Daemon de execução contínua que escuta o frame CAN 0x29 e aciona os scripts de log de acordo com a chave física no conector J106 (PC4). Iniciado automaticamente em segundo plano pelo systemd.
can-logger-control.service Arquivo Systemd Definição de unidade systemd para iniciar o script de controle de log Python de forma automática no boot. Copiado para /etc/systemd/system/ e ativado pelo instalador.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors