TACO-BIKE - Um
"tacógrafo" para bicicletas
Durante
as férias de Julho, meus filhos costumam "pedalar" em um
parque próximo de casa. No retorno de um destes passeios
meu filho mais novo me fez algumas perguntas:
Pensando nisso, resolvi mostrar a ele que era possível desenvolver um pequeno circuito que lhe daria estas respostas. Você pode até pensar: "Isso tem pronto em uma bicicletaria!!" ou ainda "tem app no celular que faz isso!". É tem tudo isso sim, mas ai eu pergunto: "Qual a graça?!?". Criar/montar sua própria solução é bem mais divertido e de quebra, no meu caso, eu ainda tive a companhia do meu filho que aprendeu algumas coisas que com certeza, ficarão com ele pr muito tempo! INTRODUÇÃO O taco-bike tem alguns recursos interessantes e bem simples:
Tudo
isso apresentado em um display de LEDs com 3 dígitos!
Ele ainda possui uma chave de "PAUSA" que permite parar
a contagem do tempo e as outras medidas enquanto o
"filhão" descansa, recarrega as "energias" ou bate
aquele papo com os amigos.
O CIRCUITO O
circuito pode ser visto na figura acima. U1 é o
microcontrolador AT89C2051 da Atmel que tem as
seguintes características:
Esse
"carinha" fez sucesso há alguns anos atrás e até hoje
pode ser encontrado em alguns projetos atuais! DISP1 a
DISP3 são displays de 7 segmentos com anodo comum modelo
A-551UB. As linhas "a, b, c, d, e, f, g e p" foram
ligadas ao PORT P1 do microcontrolador através dos
resistores limitadores de corrente R4 a R11 de 470R. Os
anodos foram conectados de maneira independente ao
microcontrolador através dos transistores Q1 a Q3.
Observando o circuito você poderá notar que estou
utilizando o método da varredura no controle dos
displays. Para mostrar um valor de 0 a 9 no display 1,
por exemplo, basta colocar o byte correspondente ao
número desejado (dentro de uma matriz no programa) no
PORT P1 e colocar o transistor Q1 em saturação através
do pino P3.7 do microcontrolador. Fazendo isso de uma
forma rápida podemos "varrer" todos os 3 displays cada
qual com seu valor até que voltamos ao ponto inicial.
Devido a "persistência retiniana" o usuário não percebe
essa varredura e o que ele vê são todos os digitos
apresentados no "display". Os pinos do
microcontrolador P3.0 e P3.3 são as "entradas" para o
controle do taco-bike (PAUSA e MUDA),
respectivamente. R17 e R18 são resistores de pull-up
para as portas de entrada. O resistor R12 em conjunto
com o capacitor eletrolítico C4 formam o circuito de
reset do microcontrolador. X1 e os capacitores cerâmicos
C2 e C3 foram o "circuito de clock" para o
microcontrolador que opera a 12MHz. R21 e R22 são
resistores de pull-up para os pinos P1.0 e P1.1
que não possuem resistores de pull-up internos. A entrada
do para que sejam realizadas as medidas é feita através
de U2, um amplificador operacional duplo (apenas um é
utilizado) configurado como comparador. O sensor do tipo
reed switch é ligado ao pino 3 (entrada positiva)
e o pino 2 recebe um divisor de tensão por 2. Sempre que
a tensão aplicada a entrada positiva for maior que a
tensão aplicada a entrada negativa temos na saída o
valor de VCC, e vice-versa. Note que temos na entrada
positiva um resistor de pull-up que garante VCC
a essa entrada. Quando o reed switch fechar,
teremos nessa entrada GND e consequentemente na saída
GND também, e um pulso é enviado ao microcontrolador
através da entrada P3.2. A presença de um comparador
nesse caso pode parecer estranha, mas o mesmo evita que
pulsos muito pequenos disparem o contador no
microcontrolador já que o a saída de U2 só vai a GND
quando a tensão no pino 3 cair abaixo de 2,5V e só volta
a subir quando essa tensão voltar a ser maior que 2,5V. A fonte é
simples e utiliza um regulador de tensão LM317
configurado para uma saída 5VDC (REG1) através dos
resistores R19 e R20. D1 protege o circuito contra uma
possível inversão da bateria. O capacitor C5 é utilizado
como filtro. A bateria utilizada é de 9V, mas pilhas do
tipo recarregáveis como 18650 (2x) também podem ser
utilizadas. A MONTAGEM Na figura acima você pode ver uma imagem com o início do projeto numa protoboard. Costumo usar muito essa ferramenta na bancada, antes de prosseguir para um protótipo. Para
essa montagem eu dividi o circuito em duas placas: uma
para instalar os displays e outra para o restante do
circuito (figura acima). Para a
montagem dos displays eu optei por utilizar uma placa
padrão usando a "técnica do wire warpping"
(figura abaixo). Abaixo você também pode ver as placas
"unidas".
O PROGRAMA/FUNCIONAMENTO O
programa foi desenvolvido utilizando o compilador SDCC, outro
carinha das antigas. Usei bastante esse compilador e
recomendo para microcontroladores e microprocessadores
mais antigos.
Não
pretendo entrar em detalhes sobre o mesmo aqui, mas vou
esclarecer um pouco sobre o funcionamento geral do
taco-bike.
A função principal "main" configura o microcontrolador (pinos de I/O, interrupção externa para o sensor e timers). Em seu laço principal ela distribui os valores para cada display e em seguida liga cada uma das colunas, uma por vez fazendo isso a cada 5ms aproximadamente. Dentro da função "main" também é verificado se o usuário deseja colocar o taco-bike em modo "espera" (PAUSA) ou se deseja trocar o dado visualizado no display (velocidade, distância percorrida ou tempo pedalando). A interrupção externa é a responsável por disparar e parar o timer. Dessa forma é possível contar quanto tempo o sensor levou para dar uma volta completa na roda e usando a velha fórmula: Velocidade
= Espaço / tempo
é
possível saber a velocidade. E para utilizar esse
circuito é preciso saber também o "comprimento da
circunferência" da roda da bike. Para isso basta fazer:
Comprimento
da circunferência = 2 * ¶ * raio (considerando o pneu também!)
Uma
característica interessante nos cálculos é que eu não
usei variáveis do tipo "float" no programa. Isso
porque elas consomem muita memória e processamento. Como
o microcontrolador possui só 2kBytes de espaço para
programa e apenas 128Bytes de RAM, todo cuidado é pouco.
Dessa forma preferi usar valores "inteiros" e a partir
deles obter as casas decimais "manualmente".
Você
deve ter notado que se temos o comprimento da
circunferência, cada volta representa uma "distância
percorrida" exatamente do tamanho do seu comprimento,
certo?!? E sendo assim basta ir somando a cada volta o
valor desse comprimento para se obter a distância total
percorrida. O tempo de pedalada foi obtido através do
timer. Basta ir somando o tempo das interrupções do
mesmo para se obter o tempo total de pedalada.
A CAIXA Eu poderia ter optado por uma caixa comercial para alojar o circuito. Mas confesso que desde a "chegada" da minha impressora 3D eu nunca mais comprei uma caixa. Desenhei a minha utilizando o FreeCad e os arquivos para impressão estão no meu perfil no Thingiverse. CONCLUSÃO Utilizando
um "velho" microcontrolador foi possível desenvolver um
circuito considerado atual. Utilizar velhas tecnologias
pode parecer estranho, mas é bastante interessante do
ponto de vista da aprendizagem já que mantém a mente
"aberta" a um passado não muito distante, mas que pode a
qualquer momento aparecer na sua frente na forma de uma
"atualização de projeto" ou ainda num pedido de
"alteração/implementação simples" em um projeto que
ainda utiliza algum tipo de tecnologia mais antiga.
Mantenha sua mente aberta para o novo e para o "velho"
também! Bons estudos e sucesso em suas montagens!!!
Downloads: - Pacote com programa - compilador SDCC (Arquivo Zip)
|
Copyright deste conteúdo reservado para Márcio José Soares e protegido pela Lei de Direitos Autorais LEI N° 9.610, de 19 de Fevereiro de 1998. É estritamente proibida a reprodução total ou parcial do conteúdo desta página em outros pontos da internet, livros ou outros tipos de publicações comerciais ou não, sem a prévia autorização por escrito do autor. |