Quem joga tênis conhece bem a sequência:
0 → 15 → 30 → 40 → game.
Parece simples quando acompanhamos uma partida, mas transformar essa pontuação em um placar eletrônico cria um projeto muito interessante de eletrônica e programação.
Foi justamente essa a ideia deste projeto: construir um placar eletrônico para jogo de tênis utilizando Arduino Nano, display LCD e comunicação por rádio em 433 MHz.
Além de ser uma aplicação prática, o projeto permite trabalhar vários conceitos ao mesmo tempo:
microcontroladores;
displays;
entradas digitais;
comunicação sem fio;
lógica de programação;
alimentação de circuitos.
E tudo começa com uma pergunta simples:
como transformar os pontos de uma partida de tênis em informações que um circuito eletrônico consiga controlar e exibir?
A ideia do placar eletrônico
Um placar precisa realizar basicamente três tarefas.
Primeiro, alguém precisa informar ao sistema que:
um jogador marcou um ponto.
Depois, o circuito precisa:
processar essa informação.
Finalmente, precisa:
mostrar o novo placar.
Podemos representar:
comando
↓
recepção
↓
Arduino
↓
processamento da pontuação
↓
display LCD.
Neste projeto, há ainda uma característica que torna tudo mais interessante:
o comando pode ser enviado por rádio.
Assim não precisamos necessariamente estar fisicamente junto ao placar para alterar a pontuação.
Veja o placar eletrônico funcionando
No vídeo abaixo apresento o projeto utilizando Arduino Nano, mostrador LCD e rádio controle em 433 MHz.
Depois de conhecer o projeto, podemos entender melhor cada uma das partes que tornam esse sistema possível.
O Arduino Nano como cérebro do projeto
O Arduino Nano é uma pequena placa baseada em microcontrolador.
Sua função no projeto é executar o programa responsável por controlar o placar.
Podemos pensar nele como o:
cérebro do sistema.
Ele recebe informações, executa a lógica que programamos e determina aquilo que deve aparecer no display.
Por exemplo, imagine que o placar esteja:
Jogador A: 15
Jogador B: 30
O sistema recebe a informação:
ponto para o jogador A.
O Arduino precisa interpretar isso e modificar o placar para:
Jogador A: 30
Jogador B: 30.
Parece uma operação simples.
Mas existe uma lógica interessante por trás dela.
A pontuação do tênis não é uma contagem comum
Se estivéssemos fazendo um placar para simplesmente contar pontos, poderíamos programar:
0 → 1 → 2 → 3 → 4…
No tênis não funciona assim.
Temos inicialmente:
0
↓
15
↓
30
↓
40
↓
game.
Isso significa que não podemos simplesmente somar 1 ao número apresentado no display.
Precisamos criar uma:
regra de pontuação.
Podemos separar valor interno e valor mostrado
Uma maneira interessante de programar isso é manter internamente uma variável simples.
Por exemplo:
0 = zero
1 = 15
2 = 30
3 = 40.
O programa recebe um novo ponto e incrementa a variável.
Depois traduz o valor interno para aquilo que deverá aparecer no display.
Assim:
variável = 0 → mostra 0
variável = 1 → mostra 15
variável = 2 → mostra 30
variável = 3 → mostra 40.
Esse é um conceito muito útil em programação:
o valor utilizado internamente não precisa ser exatamente igual à informação apresentada ao usuário.
Mas existe o 40 × 40
E aqui a lógica começa a ficar mais interessante.
Quando os dois jogadores chegam a 40, dependendo das regras adotadas para a partida, entramos na situação conhecida como:
deuce — igualdade.
Depois disso, normalmente um jogador precisa conquistar vantagem e então vencer o game, desde que mantenha a diferença necessária.
Portanto, um placar completo precisa considerar mais do que simplesmente:
0 → 15 → 30 → 40 → game.
Precisamos criar condições.
Algo conceitualmente semelhante a:
se ambos chegaram a 40 → igualdade
se A ganha o próximo ponto → vantagem A
se B ganha em seguida → igualdade novamente
se A ganha novamente tendo vantagem → game A.
Agora nosso pequeno placar começa a se transformar em um interessante exercício de:
lógica de programação.
O display LCD apresenta as informações
O segundo elemento importante é o:
LCD — Liquid Crystal Display.
Um display permite transformar as variáveis existentes dentro do programa em informações visíveis para quem está acompanhando a partida.
Podemos apresentar, dependendo da programação:
nome dos jogadores;
pontos;
games;
sets;
mensagens.
Isso é muito mais interessante do que simplesmente acender alguns LEDs.
Temos uma verdadeira:
interface entre o circuito e o usuário.
O display não sabe nada sobre tênis
Esse conceito é importante.
O LCD não sabe:
quem marcou o ponto;
o que significa 15;
o que significa 40;
quem venceu o game.
Ele simplesmente mostra aquilo que o Arduino manda apresentar.
Portanto:
Arduino decide
↓
LCD apresenta.
Essa separação entre processamento e interface aparece em inúmeros equipamentos eletrônicos.
Por que utilizar comunicação sem fio?
Agora chegamos a outra parte muito interessante do projeto.
Imagine um placar colocado próximo à quadra.
Se precisássemos ir até ele para apertar um botão a cada ponto, o sistema não seria muito prático.
Uma solução é utilizar:
comunicação por rádio.
No projeto, a comunicação utiliza a faixa de:
433 MHz.
Assim podemos enviar comandos ao sistema sem uma ligação física por fios entre o controle e o placar.
O que significa 433 MHz?
MHz significa:
megahertz.
Um megahertz corresponde a:
1 milhão de ciclos por segundo.
Portanto:
433 MHz ≈ 433 milhões de ciclos por segundo.
Esse valor se refere à frequência de rádio utilizada pelo sistema.
Mas é importante entender que a frequência da portadora não é simplesmente a quantidade de comandos que enviamos ao Arduino por segundo.
Ela faz parte do processo utilizado para transportar a informação pelo:
sinal de rádio.