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:
- Zenira (mcv25): Assistente e sistema de reconhecimento de voz embarcado offline rodando Vosk API + classificação TinyML com Edge Impulse.
- 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.
- 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.
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.
- 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.
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.
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>:~/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.shO 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).
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.gzEm 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*Reinicie a placa para carregar os drivers físicos do shield CAN:
sudo rebootApos a reinicialização, verifique se a rede CAN e os serviços estão ativos executando os seguintes diagnósticos:
ip link show can0systemctl status can-setup.service
systemctl status mcv25.service
systemctl status can-logger-control.servicejournalctl -u mcv25.service -fA 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. |