- Conversa: chat empurrado por SSE, indicador de "pensando", gesto da resposta com repetir, voz com aviso claro quando o contexto nao e seguro e leitura em voz alta so de respostas novas - Memoria unificada: lembrancas da conversa + rotina/preferencias em abas; apagar tudo com confirmacao inline (sem confirm nativo) - Reacoes: biblioteca com miniaturas estaticas (sem iframe por cartao), busca, mostrar no celular, feedback, editar em <dialog>, duplicar, ativar e excluir com Desfazer no toast; criar com IA; diario; grade de gestos com estrela para favoritos; uma unica previa lateral - treinamento recarrega por evento SSE ao terminar, sem polling - corrige icones encolhidos em botoes .pequeno.icone Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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
- 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.
- 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.
- 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.
- 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.