feat: initial commit - Carinha Control Panel v1.0 com UI glassmorphism, watch-bar, emojis, braco robotico e conversa IA
This commit is contained in:
@@ -0,0 +1,31 @@
|
||||
# Aba de testes de servos
|
||||
|
||||
## Controle ao vivo
|
||||
|
||||
Opção disponível acima dos cartões, desmarcada ao abrir a página. Ativar a opção não movimenta: arrastar um deslizador envia o pulso respeitando os limites salvos. No máximo 10 solicitações por segundo, uma em andamento por vez; valores intermediários são substituídos pela posição mais recente. O watchdog do servidor desliga o canal até cerca de 2,1 segundos após o último comando recebido.
|
||||
|
||||
Desmarcar Controle ao vivo ou clicar Desligar todos cancela a fila, aguarda a solicitação em andamento e desliga os canais. Ocultar a página também solicita desligamento. Falha de rede continua coberta pelo watchdog. Alterações não salvas bloqueiam o modo. O motor não fornece confirmação da posição física.
|
||||
|
||||
Verificado no navegador com API simulada: ativação sem movimento, arraste desativado sem comandos, frequência limitada, entrega da última posição, cancelamento ao parar e bloqueio com configurações não salvas. Testes da página original continuam passando. Movimento físico depende da observação do usuário.
|
||||
|
||||
Correção em 2026-10-05: removida a escrita de zero em ALL_LED_OFF_H após escrever o pulso individual. Esse registrador replica o byte nos 16 canais, sobrescrevendo o pulso (1500 µs acabava com 51 ticks em vez de 307) e retirando o desligamento dos outros canais. Teste de regressão emula essa replicação e confirma o valor correto e isolamento dos canais. Correção instalada e serviço reiniciado. Movimento físico ainda precisa ser observado pelo usuário.
|
||||
|
||||
Disponível em http://192.168.1.35:8100/servos e no link Servos do painel. Instalada no Orange Pi em 2026-10-05.
|
||||
|
||||
Começa com seis cartões, canais 0–5, e permite adicionar até 16. Cada cartão configura nome, canal físico, mínimo, máximo e centro em microssegundos. Canal 1 corresponde inicialmente ao cartão Servo 2: o nome do cartão não é a numeração da placa.
|
||||
|
||||
Configurações são gravadas em /opt/carinha-pc/servos.json ao clicar Salvar configurações. Enquanto há alterações não salvas, os testes ficam bloqueados. Abrir a página, mover o slider ou salvar não envia movimento. Não existe leitura da posição real do eixo.
|
||||
|
||||
Testar por 2 s envia o pulso escolhido; Testar centro envia o centro configurado. O backend desliga automaticamente esse canal em até aproximadamente 2,1 segundos. Desligar todos os sinais desliga os 16 canais. Isso não corta a fonte externa e pode remover a sustentação de um braço montado: nesta etapa usar braço apoiado ou servo sem carga. Não é botão de emergência elétrica.
|
||||
|
||||
Limites iniciais 1400–1600 µs, centro 1500 µs; limites absolutos aceitos pela API 1000–2000 µs. Não ampliar sem calibração da montagem. A duração máxima não limita velocidade nem esforço mecânico. Nenhuma sincronização de servos pareados nesta etapa.
|
||||
|
||||
PCA9685 em 0x40, /dev/i2c-2, configurado por Environment=CARINHA_I2C=/dev/i2c-2 no drop-in /etc/systemd/system/carinha-pc.service.d/i2c.conf. O driver usa biblioteca padrão Linux, 50 Hz aproximados (prescale 121; oscilador nominal 25 MHz). Somente o primeiro teste configura a frequência: desliga primeiro os canais antigos antes de liberar o canal solicitado. Inicialização do servidor não envia pulsos.
|
||||
|
||||
O servidor Windows exibe configurações mas não controla hardware. Usar a aba hospedada no Orange Pi. Nenhum motor foi acionado nos testes automatizados da implantação. Alimentação informada: 6 V; corrente da fonte ainda não confirmada. Dimensionar a fonte conforme os motores antes de testar carga ou vários simultaneamente.
|
||||
|
||||
Verificado: testes de validação e persistência, até 16 canais, duplicatas rejeitadas, duração máxima, sequência de inicialização, regressão do servidor (12 testes), página real no navegador desktop/mobile, rejeição de pulso inválido e origem externa. Pendentes: movimento físico, calibração e mapeamento do braço conforme os arquivos que o usuário fornecerá.
|
||||
|
||||
Arquivos: servos.py, servos.html, servos.js. API: GET /servos/status; POST JSON /servos/config {servos:[...]}, /servos/mover {indice:0,pulso:1500}, /servos/parar {}. O índice é o cartão na lista, começando em zero; canal é configurável. Comandos inválidos recebem HTTP 400 e indisponibilidade I²C HTTP 503.
|
||||
|
||||
Retorno: parar serviço; restaurar kiosk-server.py e painel.html de /opt/carinha-pc/backup-servos-20261005; remover drop-in i2c.conf; systemctl daemon-reload; iniciar serviço. Preservar servos.json. O servidor anterior em 8099 permanece disponível.
|
||||
Reference in New Issue
Block a user