Files

4.8 KiB

Carinha PC

Servidor no Orange Pi Zero 3, acessado pelo PC, para controlar o Carinha no Galaxy S10 e testar servos. Dashboard: http://192.168.1.35:8100/dashboard.

Desenvolvimento

Pasta criada em 04/10/2026 a pedido do usuário. Código inicial copiado do projeto anterior; o original não será modificado. Design aprovado: controlar rosto, gestos, configurações e visualizar a câmera frontal pelo PC enquanto o celular mantém a carinha na tela.

Usar

  1. Execute iniciar.bat. Verifica e abre http://192.168.1.35:8100/dashboard, sem iniciar servidor no PC. O serviço carinha-pc inicia automaticamente na placa.
  2. No celular, segure a tela do Carinha e altere o servidor para http://192.168.1.35:8100. O botão ADB do antigo servidor Windows não é usado nesta instalação.
  3. Troque rosto, cor e gestos. Use Mostrar boca e Mostrar sobrancelhas para ativar cada uma independentemente. Clique Ligar câmera para vídeo ao vivo com qualidade automática, sem trocar a tela do celular.
  4. Em Comportamento, ajuste som, movimento, volume, sono e economia de tela. Configurações aplicadas no celular depende da resposta do aparelho.

Brilho padrão: 70% ativo / 8% em repouso, com 30 segundos de espera. Retorna com som, movimento ou comando. O brilho do sistema é restaurado ao sair do app.

Configurações ficam em app-config.json e aparencia.json. O vídeo não é gravado: WebRTC transmite diretamente do app ao navegador. O servidor troca apenas sinalização. Logs em runtime/. Qualidade automática busca 30 fps, adaptando resolução e compressão. O painel mostra os fps efetivos. Detalhes do vídeo.

APK: android/carinha-rosto.apk. Guia: android/APP.md.

Verificações

python -m unittest discover -s tests -p test_controle_pc.py
python tests/test_browser.py
python tests/test_rtc_browser.py
node tests/test_qualidade.js
python android/build-apk.py

O teste de navegador usa Playwright e um servidor efêmero próprio, sem alterar o servidor real. Testes Java em tests/ verificam conversão de imagem e brilho; compile-os com o JDK junto das classes correspondentes. O servidor em produção exige somente Python 3.9+.

Validação física em 05/10/2026: S10 conectado à porta 8100, telemetria de câmera/microfone ativa e JPEG recente recebido pelo PC. Configurações confirmadas pelo app e brilho ativo reportado em 70%. Ainda falta observar a orientação da imagem e a transição física do brilho para repouso.

Atualização 0.3 instalada: vídeo contínuo WebRTC automático e boca/sobrancelhas independentes. Teste com câmera simulada recebeu 30 fps. Após atualizar o APK, reabra o Carinha e recarregue o painel; os fps no S10 ainda precisam ser confirmados.

Ferramentas de compilação reutilizadas de C:/Users/JullioPC/Documents/Open/orange-pi-zero3/android/tools (JDK 17 e Android SDK). Não é necessário rodar servidor na placa.

Atualização 0.4 — sensores e câmeras

Controle microfone e câmera separadamente, com permissões específicas durante o sono (padrão: só microfone). Escolha frontal/traseira e qualidade automática, manual ou máxima disponível no painel ou no menu de toque longo do app. Veja detalhes e limites.

Atualização 0.5 — rastreamento de rosto e mãos

O painel agora detecta rosto e mãos no PC, mostra pontos sobre o vídeo e pode fazer os olhos acompanharem o alvo por WebRTC. Os controles estão sob o vídeo. Só funciona com a transmissão ligada e painel aberto; os sensores e regras de sono continuam valendo. Veja uso e validação.

Dashboard e organização

A navegação lateral reúne Visão geral, Câmera e rosto, Conversar, Emojis, Treinamento, Servos, Braço e API. O tema escuro/ciano e os controles são compartilhados em dashboard.css/dashboard.js; CSS próprio de cada página guarda apenas seu layout específico. No celular, o rosto continua em tela cheia.

A biblioteca /emojis permite criar emojis prontos, editar nome e contexto, substituir por emoji, duplicar, ativar/desativar, excluir, dar feedback, desfazer e exportar. Desfazer preserva o desenho original e funciona após reiniciar o serviço. Parar expressão não movimenta motores. Reações desativadas não são escolhidas automaticamente na conversa.

/api gerencia o modelo Gemini e a chave. Campos de chave ficam vazios após salvar e as respostas não retornam credenciais. Alterações são guardadas em api-privada.json (permissão 600 no Linux), ignorado pelo Git e bloqueado no servidor HTTP. A configuração antiga de ambiente continua válida enquanto não houver override.

Revisão, critérios e validação do dashboard.