Gabriel RichardyInvenções · Código · Bastidores ← Todos os posts
Hardware · Replay para quadras

Um botão na arquibancada que transforma o lance em vídeo pronto

Você faz o ponto do jogo, alguém aperta um botão e, menos de um minuto depois, o vídeo daquele lance está pronto no celular para postar. É isso que estou construindo — e aqui está como.

16 out 2026 · 7 min de leitura

O problema

Quem joga vôlei de praia conhece a cena: sai um ponto bonito, todo mundo comemora, e ninguém estava filmando. Quando alguém lembra de pegar o celular, a jogada já acabou.

Muitas quadras já têm câmera. O que falta é um jeito simples de transformar aquele lance em um vídeo que dá para postar — sem pedir para o dono da quadra procurar o horário no gravador, cortar e mandar pelo WhatsApp.

A ideia: um botão que olha para trás

Um botão fica perto da arquibancada. Qualquer pessoa aperta quando acontece algo que vale guardar. O sistema pega o minuto anterior ao aperto, monta o vídeo no formato vertical e deixa pronto para baixar.

No primeiro desenho, o vídeo pegava 30 segundos antes e 30 depois do aperto, e o jogador escolhia o trecho numa linha do tempo. Funcionava, mas tinha um erro de raciocínio que só ficou claro quando pensei na pessoa usando:

Se a pessoa fez um bom lance e clicou, a jogada já passou.

Ninguém aperta o botão antes do ponto. Então tirei a prévia, a escolha de trecho e os outros formatos. Ficou uma coisa só: apertou, saiu o clipe 9:16 dos últimos 60 segundos. Menos opções, menos telas, menos coisa para dar errado.

Como funciona por dentro

  1. BotãoUm ESP32 com um botão manda um aviso pelo Wi-Fi da quadra.
  2. Computador da quadraGrava a câmera sem parar, em trechos de 10 s, e guarda 7 dias.
  3. ServidorRecebe o aperto e cria a tarefa: “clipe 9:16 do minuto anterior”.
  4. CelularO jogador lê o QR code, digita o código do dia e baixa o vídeo.

Algumas decisões que valem explicar:

Por baixo: o firmware do botão é C++ no Arduino, o computador da quadra roda Python com ffmpeg, e o servidor é FastAPI com SQLite. Nada exótico — escolhi ferramentas chatas de propósito, para gastar energia no problema e não na tecnologia.

O que já funciona

Até aqui, tudo foi testado no meu notebook, com uma imagem de teste gerada pelo próprio ffmpeg no lugar da câmera:

~55 sdo aperto até o clipe pronto para baixar
~42 ssó para codificar 60 s de vídeo em 1080×1920
98testes automáticos passando

O site do jogador também já existe: código do dia com teclado numérico, lista de lances com selos de “Pronto”, “Preparando” e “Indisponível”, e a página do lance com o vídeo e o botão Baixar vídeo. Ganhou uma identidade própria, chamada “Areia”, pensada para vôlei de praia e com modo noturno automático.

O firmware do botão compila e ocupa 76% da memória de programa do ESP32. Mas compilar não é o mesmo que funcionar — e isso me leva à parte honesta do post.

O que ainda não foi testado

A bancada, que fecha o MVP

  • Gravar o firmware numa placa de verdade e apertar um botão físico.
  • Trocar a imagem de teste por uma webcam real.
  • Deixar tudo rodando 24 horas sem mexer, com a limpeza dos vídeos antigos funcionando.
  • Desligar o servidor no meio e confirmar que nenhum aperto se perde.
  • Postar um clipe no Instagram e mandar no WhatsApp para ver se os dois aceitam.

Já apareceu o primeiro tropeço antes mesmo de ligar a placa: o Wi-Fi aqui de casa é 5 GHz, e o ESP32 só conversa em 2,4 GHz. Problema pequeno, mas é exatamente o tipo de coisa que só aparece quando você sai do código e vai para a mesa.

Depois da bancada vêm as perguntas de instalação: qual gravador a quadra usa e se ele entrega o vídeo pela rede, que computador aguenta a codificação (a conversão para vertical com desfoque é a parte mais pesada), uma caixa que resista a bolada e a criança curiosa, e a placa avisando que há gravação. Uso de imagem tem regra, e uma revisão jurídica é obrigatória antes de oferecer isso a qualquer quadra.

O que aprendi até aqui

O próximo post deste projeto vai ser a bancada: placa gravada, webcam ligada e os números de verdade. Quer receber quando sair?

Acompanhe a bancada →