001 — Fencing Scoreboard

03/03/2026

Thumbnail de 001 — Fencing Scoreboard

Introdução

Em 2019 comecei a praticar esgrima. É um esporte bem inusitado e peculiar, mas muito interessante. Fiz grandes amigos por conta do esporte. E, para minha felicidade, tem bastante eletrônica envolvida na esgrima. A academia onde eu praticava tinha apenas um placar para registrar os pontos, pois o aparelho é muito caro. Meu objetivo com esse projeto era criar uma versão mais barata do placar.

campeonato na academia

Eu participando de um campeonato amistoso, na minha academia!

Na esgrima, quem decide se um toque valeu não é o olho do árbitro, mas um circuito elétrico. Cada esgrimista fica ligado ao placar por um fio que passa por dentro da manga, e a arma é parte desse circuito. Quando a ponta da arma toca o adversário, o placar acende uma luz e apita. Este projeto é a minha versão desse placar, feita com um Arduino.

Como funciona a espada

Das três armas da esgrima (florete, sabre e espada), a espada é a que tem a regra de pontuação mais simples: vale tocar qualquer parte do corpo do adversário, da cabeça aos pés. Na ponta da arma existe um pequeno botão com mola, e o toque acontece quando esse botão é pressionado. Para quem está montando o circuito, isso é ótimo: a ponta da espada nada mais é do que um botão!

Mas nem todo botão pressionado é um ponto. Existem três situações que o placar precisa saber reconhecer:

  • Toque no copo: o copo é a proteção em forma de concha que fica na frente da mão. Se a ponta acerta o copo do adversário, o toque não vale. Por isso, o copo é ligado ao circuito de forma que o placar perceba quando a ponta encosta nele.
  • Toque duplo: na espada, se os dois esgrimistas se tocam quase ao mesmo tempo, os dois ganham o ponto. “Quase ao mesmo tempo” aqui quer dizer cerca de 40 milissegundos. Para ter uma ideia, um piscar de olhos dura algo entre 100 e 400 milissegundos!
  • Tempo de contato: a ponta precisa ficar pressionada por um tempo mínimo, de alguns milissegundos. Assim, uma ponta que só quica rapidamente no adversário não conta como toque.

Operação

O placar tem uma fita de LED RGB de cada lado e um buzzer. Seguindo o padrão dos placares de esgrima, o lado esquerdo acende em vermelho e o direito em verde: quando um esgrimista acerta o adversário, a fita do seu lado acende e o buzzer apita por um segundo e meio. Se os dois se tocam dentro da janela de 40 milissegundos, as duas fitas acendem juntas. Já um toque no copo não vale ponto, e a fita do esgrimista que teve o copo tocado acende em azul. Depois de cada toque, o placar espera mais um segundo antes de aceitar o próximo, para dar tempo de os esgrimistas se afastarem.

O circuito

Esquema elétrico do placar de esgrima, feito no EasyEDA

Esquema elétrico do placar de esgrima, feito no EasyEDA

O cérebro do placar é um Arduino Nano. Cada esgrimista se liga à placa por um conector de três pinos: um para a ponta da espada, um para o copo e um terra (GND) no meio. A ponta do esgrimista da esquerda vai no pino A0 e o copo dele no A6; do lado direito, a ponta vai no A1 e o copo no A7.

Cada uma dessas quatro entradas tem um resistor de 10 kΩ ligado ao positivo (um resistor de pull-up), que mantém a leitura alta enquanto nada acontece. Nos copos, esses resistores são indispensáveis: no Nano, os pinos A6 e A7 só fazem leitura analógica e, diferente dos outros, não têm um resistor de pull-up interno. Já nas pontas, o resistor externo deixa a leitura mais estável, já que o sinal percorre alguns metros de fio até chegar à placa.

As luzes são duas fitas de LED RGB de 12 V, uma de cada lado, que ficam fora da placa e se ligam a ela por um cabo de rede (conector RJ45). Um pino do Arduino não aguenta a corrente de uma fita de LED, então cada cor é ligada e desligada por um MOSFET IRL540N, que funciona como um interruptor controlado pelo Arduino. Escolhi esse modelo porque ele é “de nível lógico”, ou seja, liga completamente com os 5 V que saem do Arduino. Além disso, cada MOSFET tem um resistor de 100 Ω entre o pino do Arduino e o gate, e outro de 10 kΩ do gate para o terra, que mantém as fitas apagadas enquanto o Arduino ainda está ligando.

A alimentação vem de uma fonte de 12 V, que vai direto para as fitas e passa por um regulador 7805 para gerar os 5 V usados pelo Arduino. O buzzer fica no pino D5.

A placa também tem lugar para um display OLED e para um módulo de rádio nRF24L01 (com um regulador de 3,3 V só para ele), que a versão atual do código ainda não usa.

O código

Quando a ponta da espada é pressionada, o circuito se fecha e a leitura, que fica alta por causa do resistor de pull-up, cai para perto de zero. O código usa analogRead e considera que houve um toque quando o valor fica abaixo de 100.

O desafio mais interessante foi o toque duplo. Quando um esgrimista toca primeiro, o código anota o momento do toque e passa a contar o tempo a partir dali:

if(r_val < thresh && previous_r_val == HIGH && !l_first){
  r_points++;
  prt = ct;
  r_first = true;
  previous_r_val = LOW;
}

r_timer = ct - prt;

Enquanto esse cronômetro não passa de 40 milissegundos, o placar ainda aceita um toque do outro lado, que vira um toque duplo. Só depois que a janela fecha é que ele decide quais luzes acender. É como uma porta que fica aberta por um instante depois que alguém passa: quem chegar antes de ela fechar também entra.

Nos primeiros milissegundos depois do toque, o código também confere se a ponta continuou pressionada e se ela não estava encostada no copo. Se a ponta soltou cedo demais ou se o toque foi no copo, o ponto é cancelado antes de qualquer luz acender.

Versões

1- Teste da conexão da espada

Nesse estágio testei em uma protoboard a conexão e detecção de toques da espada. Como o conector fêmea do fio de corpo (fio que conecta a espada à enroladeira) é caro e difícil de encontrar, consegui criar meu próprio usando conectores banana fêmea com um espaçamento compatível com o do conector da espada. Segui com essa adaptação nas versões seguintes. Também pude ver questões de detecção do toque, sinalização sonora e temporização do toque.

teste de conexão da espada em protoboard

Teste de conexão da espada em protoboard

com a espada conectada

Com a espada conectada!

2- Protótipo funcional, com conexões mais bem definidas

Criei esse protótipo para testar na academia. Nos lados conectamos a enroladeira, que vai para as espadas. Em uma das quinas tem um conector para fonte de 12V, e na parte de baixo um conector que vai para uma fita de LED que indica os toques. Nessa etapa pude testar a circuitaria de MOSFETs para controlar os LEDs a partir de sinais do Arduino e aprendi a usar um regulador de tensão para converter os 12V em 5V que vão para o Arduino.

protótipo em papelão

Protótipo em papelão

3- Falha! PCB com chip SMD deu totalmente errado

Com o sucesso da versão em papelão, me senti confiante para tentar uma versão mais definitiva. Projetei uma PCB seguindo o circuito usado na versão de papelão, mas quis incorporar o Arduino diretamente na placa, então decidi usar o chip SMD do Arduino, o ATMega328, soldado diretamente na placa. Mas essa versão tinha falhas de conexão e a soldagem do chip SMD ficou horrível. Das próximas vezes que for usar algum componente SMD vou optar por soldar com ar quente. Mas por enquanto vou seguir nos through-hole. Ainda assim, gostei bastante de como ficou o layout, e usei muitas coisas dessa versão para a versão final do projeto!

PCB com chip SMD

PCB com chip SMD

4- PCB final (por enquanto)

Corrigi alguns erros da PCB anterior e troquei o ATMega SMD por um Arduino Nano. Essa PCB ficou sendo a placa final do projeto, com regulador de tensão, conectores para as espadas, MOSFETs para os LEDs, um buzzer e um RJ45 na parte inferior para conectar extensões das fitas de LED. Esse projeto ainda conta com a possibilidade de se utilizar um transceptor NRF24L01 para fazermos um sistema wireless, mas isso exige uma eletrônica mais complicada, possivelmente envolvendo geradores de altas frequências. Essa versão ainda tinha um erro na ligação dos MOSFETs, cujas perninhas eu tive que trocar para fazer funcionar.

PCB final

PCB final

5- Case impressa em 3D

Imprimi uma caixinha em 3D para o projeto, adicionei pequenas fitas de LED para indicar os pontos e um display de 7 segmentos para realizar a contagem.

placar pronto

Placar pronto

Conclusão

O projeto funcionou super bem, e eu até vendi um deles para comprar uma espada! Notei que o uso do analogRead() para detectar os toques funciona melhor que o digitalRead(). Além disso, o placar já tem toda a eletrônica para funcionar sem fio. Falta adaptar a eletrônica da caixa que vai no bolso de cada esgrimista. Aqui vai uma foto com o racional do placar wireless (feito há uns 5 anos).

ideia do placar sem fio

Ideia do placar sem fio