Você está na página 1de 4

Simulador De Largada Para Provas de Arrancada

Gabriel Becon de Vargas


Engenharia de Telecomunicações- UNIPAMPA

1 Como o tempo de reação do piloto mediante a luz verde e


Resumo— No Brasil, as provas de arrancada, drag race, são
bastante comuns, é necessário um equipemnto para a aferição de muito importante para uma corrida, o objetivo do trabalho é
tempo, assim indicando vencedores e aferindo recordes de trazer um simulador de largada para que o piloto antes da
velocidades e tambem de tempos, como a competição ja começa corrida consiga realizar um treino de largada assim ganhando
na largada, ter uma boa relação com as luzes de largada é
pericia em relação ao pinheirinho de arrancada, esse método já
importante, assim resolveu-se projetar um simulador de largada
e bem utilizado, pois em alguns modelos de dashboard vem
para provas de arrancadas para o projeto final da disciplina de
MICROCONTROLADORES. Utilizando linguagem Assembly e incluso o modo treino de largada.
um PIC16F877A display lcd e alguns leds implementaremos um Existem dois tipos de modos de largada, a diferença e o
cronômetro para aferição do controle de largada. acendimento das três luzes amarelas, visto na figura 1,
depende da categoria, o acionamento pró e sequencial, a
Palavra-chave— Tempo de reação, cronometragem de largada do tipo pró e a que acende a as três luzes amarelas por
arrancada, projeto com PIC. um determinado tempo e depois a luz verde se acende
liberando a largada, no modo sequencial, mais utilizado no
Brasil as três luzes amarelas se acendem e apagam
I. INTRODUÇÃO sequencialmente como se tivesse ‘correndo’ para baixo até o
acendimento da luz verde.

NO Brasil as provas de arrancadas são bastante comuns,


várias cidades já contam com investimento em pista próprias
para a prática de provas de arrancadas, visando um mercado
em crescimento trazendo mais opções recreativas tanto para
quem assiste como para quem participa da corrida.
Para que haja controle da corrida e também seja justa, e
segura, por volta de 1950 surgiram os primeiros pinheirinhos
(Christmas Tree), para substituir uma pessoa que ficava com
uma bandeira indicando a largada [2]. Hoje em dia a prova e
cronometrada por meio de fotocélulas que junto de uma
central marcam as parciais e tempo final, a nível de
competição, com disputas acirradas a briga por posições são
decididas por milésimos de segundos, e esse tempo
geralmente e decidido na largada onde e medido o tempo de Figura 1. Imagem do sistema de cronometragem da Produpark, modelo
reação do piloto em relação a luz verde que dá a largada. utilizado na pista do Velopark. [3].
A cronometragem da arrancada é dívida basicamente em
dois tempos, tempo de reação do piloto que vai desde o
acendimento da luz verde do pinheirinho até o sinal livre da O projeto foi feito com um microcontrolador da Microchip
fotocélula; e o tempo de pista que mede o desempenho do e também foram utilizados LEDs que farão o papel das
carro, vai desde o desbloqueio da fotocélula de largada lâmpadas e um display que mostrara os resultados e o menu de
passando pelas fotocélulas de parciais até o limite da pista, escolha do modo de largada e botões para a interação com o
somando os dois tempos temos o tempo da classificatória, na microcontrolador.
largada também é analisado se o piloto não largou antes da luz
verde, caso aconteça e considerado queima de largada e seu
tempo invalidado.

G.Becon de Vargas, Universidade Federal do Pampa, Alegrete, Rio


Grande do Sul, Brasil, gabrielbeconv@gmail.com.
A ligação entre LEDs, botões, LCD e PIC foram feitos por
II. MATERIAIS E MÉTODOS fios (jumpers) na protoboard, foi utilizado um circuito pull-
down com resistores de 10K Ohms para que limite a corrente
Para a construção do sistema de largada foram utilizados na portas I/Os do PIC.
um PIC16F877A um display LCD modelo 1602B oito LEDs No desenvolvimento do projeto foi utilizado o MPLAB X
de cores variadas e três puch button e resistores para limitar IDE fornecido pela MICROCHIP, software grátis
corrente nos LEDs e nos botões. disponibilizado para a programação de microcontroladores da
O PIC de 8 bits e com núcleo de 14bits, foi colocado em companhia, na programação utilizou-se a linguagem de
uma placa de desenvolvimento fornecida em aula, acoplado a programação Assembly[4].
essa PCB já continham os componentes básicos para que o
PIC ligue, o cristal oscilador utilizado foi de 4Mhz, e também
contendo os pinos para utilização do PICKIT3, assim Programação do PIC
possibilitando a gravação ICSP sem interferências, também na
placa de desenvolvimento já continham os polos para No desenvolvimento do projeto foi utilizado o MPLAB X
alimentação do PIC e também da protoboard. IDE fornecido pela MICROCHIP, software grátis
disponibilizado para a programação de microcontroladores da
companhia, na programação utilizou-se a linguagem de
programação Assembly[4].
Na programação foram feitas primeiro as configuração
iniciais de portas do microcontrolador criação de variáveis
auxiliares, e logo que inicia o micro programa ele já manda
escrever no display o menu de escolha de modo de largada
onde entra uma rotina de loop esperando o acionamento do
botão especificado para o modo de largada desejado.
Após a escolha do modo o código manda escrever no
display a frase que indica o modo selecionado e redireciona o
microprograma ao código do acionamento dos LEDs que foi
escolhido, antes de acionar, o programa entra em loop
Figura 2. Imagem coletado da internet que mostra o microcontrolador novamente esperando a interação do usuário com o botão de
utilizado.
largada, que esse ao ser pressionado ira ligar os LEDS
Para a exibição do menu de escolha do modo de largada e simulando o alinhamento do carro, irá entrar uma rotina de
também para mostrar o resultado, foi utilizado um display DELAY de um segundo assim acionando os leds de largada
LCD modelo 1602B com que responde a caracteres na caso o botão seja solto antes acenderá o LED de cor vermelho
codificação ASCII, para comunicação entre PIC e LCD foi indicando queima de largada.
utilizado todas as portas do PORTD do PIC assim fazendo Após o acendimento do LED verde inicia-se um contador
uma transmissão paralela de dados e mais duas portas do capaz de representar um valor até 60000 implementando junto
PORTE para o envio de controle de gravação. a isso um DELAY de um milissegundo (1ms) teremos um
contador de até um minuto, muito maior que o necessário, pois
tempos de reações são bem baixos com no máximo um
segundo.
Como o contador correndo, cada um milissegundo o
código testa a entrada do PIC correspondente ao botão de
largada, caso ainda esteja pressionado, ele seguira contando os
milissegundos até que o botão seja solto e para o contador
redirecionando para a escrito no LCD com o resultado do
tempo, e entrando em loop esperando o acionamento do botão
voltando ao menu de escolha de modo de largada.

Figura 3. Display utilizado para mostras os resultados e escolha de opções no


menu.
III. RESULTADOS E DISCUSSÃO MOVF VAR1CMS,W ; MOVEU VAR1 PARA WORK
MOVWF VAR3CMS ; MANDA PRO 7SEGUIMENTOS
DECFSZ VAR2CMS,0X01 ;DECREMENTA 1 DE VAR2
GOTO CONTADOR1MS
Dois dos principais partes dos códigos para GOTO CONTADORUS
funcionamento do programa são os códigos de delay e o
contador de milissegundos, os códigos de escrita de display CONTADORUS
CLRF VAR3CMS
são padrões, assim só alterando o que vai ser escrito no
CLRF VAR1CMS
display. MOVLW B'00001001' ;MOVE 10 VARIAVAS 2
MOVWF VAR2CMS
INCF VAR1US,1 ; INCREMENTOU +1 VAR1
Código do contador de milissegundos MOVF VAR1US,W ; MOVEU VAR1 PARA WORK
MOVWF VAR3US; MANDA PRO 7SEGUIMENTOS
O grande desafio do código para realização da tarefa de DECFSZ VAR2MS,0X01 ;DECREMENTA 1 DE VAR2
cronometrar o tempo de reação na largada foi o contador de GOTO CONTADOR1MS
milissegundos, onde foi implementado um contador em GOTO CONTADORDS
cascata que quando chega a 9 pula para outra rotina de outro
contador até 9 que zera o contador anterior pra 0 e
CONTADORDS
incrementa um nessa rotina voltando ao contador anterior,
CLRF VAR3US
mostrado no código abaixo.
CLRF VAR1US
MOVLW B'00001001'
MOVWF VAR2MS
INCF VAR1DS,1 ; INCREMENTOU +1 VAR1
CONTADOR1MS MOVF VAR1DS,W ; MOVEU VAR1 PARA WORK
INCF VAR1MS,1 ; INCREMENTOU +1 VAR1 MOVWF VAR3DS; MANDA PRO 7SEGUIMENTOS
MOVF VAR1MS,W ; MOVEU VAR1 PARA WORK DECFSZ VAR2DS,0X01 ;DECREMENTA 1 DE VAR2
MOVWF VAR3MS GOTO CONTADOR1MS
CLRWDT GOTO ESCREVETEMPO ;DA ESTOURO 60s
MOVLW .1
CALL DELAY_MS
BTFSS PORTC,RC3 ;TESTE SE O BOTÃO ESTA SOLTO
Os resultados do tempo de reação, quando e solto o botão
CALL ESCREVETEMPO
DECFSZ VAR2MS,0X01 ;DECREMENTA 1 DE VAR2 . de largada, ficam salvos nas variáveis VAR3 que contem em
GOTO CONTADOR1MS todos os níveis do contador, para a exibição do display é
GOTO CONTADORDMS necessário a conversão do número binário de 8bits para a
codificação ASCII de 1byte, isso ocorre somando o decimal
48 ao número binário, assim resultando em um decimal no
CONTADORDMS formato ASCII de 8 bits que será interpretado pelo display.
CLRF VAR1MS
CLRF VAR3MS
MOVLW B'00001001' ;MOVE 10 VARIAVAS 2
MOVWF VAR2MS
INCF VAR1DMS,1 ; INCREMENTOU +1 VAR1
MOVF VAR1DMS,W ; MOVEU VAR1 PARA WORK Código de delay de milissegundos
MOVWF VAR3DMS
DECFSZ VAR2DMS,0X01 ;DECREMENTA 1 DE VAR2 Para a implementação do tempo de espera de 1ms foi
GOTO CONTADOR1MS utilizado um código de delay gerado no site [5], que calcula
GOTO CONTADORCMS esse código ao adicionarmos clock do PIC e algumas variáveis
ao gerarmos o código abaixo, o resultado teve 0% de erro,
claro que ou adicionarmos mais algum comando para chamar
CONTADORCMS
o delay e também o tempo de cada instrução do contador
CLRF VAR1DMS
CLRF VAR3DMS haverá um erro na casa dos microsengundos.
MOVLW B'00001001' ;MOVE 10 VARIAVAS 2 Antes de chamarmos o delay devemos mover um decimal,
MOVWF VAR2DMS que indicara o número de vezes que será chamado o delay,
INCF VAR1CMS,1 ; INCREMENTOU +1 VAR1 para o registrado W.
DELAY_MS
MOVWF TEMPO1
DELAY_MSB
MOVLW .250
MOVWF TEMPO0
DELAY_MSA
NOP
DECFSZ TEMPO0,F
GOTO DELAY_MSA
DECFSZ TEMPO1,F
GOTO DELAY_MSB
RETURN

Figura 5. Circuito que foi montado na matriz de contatos utilizado para


Montagem do protótipo na matriz de contatos simulação a construção do código.

A montagem do protótipo se deu de forma rápida e sem IV. CONCLUSÃO


muita complexidade, pois a ideia do trabalho e simples, um
cronometro que se inicia após o acendimento do LED verde e O projeto teve o resultado esperado, mas poderia conter
se finda ao soltar o botão de largada assim mostrando esse mais opções de configuração como uma entrada para um
tempo no LCD. segundo delay configurável pelo usuário, esse atraso de tempo
O resultado da montagem se encontra na figura 4 e seu faria o papel das interferências da físicas impostas ao carro ao
circuito simulado na figura 5. arrancar. E essa interferência varia bastante, dependo de
tamanho de pneu da tração entre carro e solo por isso seria um
tempo inserido pelo usuário. A nível de código a maior
dificuldade foi a construção do contador, poderia ter utilizado
o modo CCP do PIC junto de interrupção que parasse o
registrador TIMR0 que marcaria o tempo e depois
decrementa-lo em unidades, dezenas e centenas para mostrar
no display. Para a correção do efeito bouncing dos botões foi
utilizado a mesma rotina de delay de milissegundos só que
carregando esse atraso duas vezes.

A utilização do software PROTEUS para a simulação foi de


grande importância, pois ao ir construindo o código, foi
possível sua simulação não sendo necessário a montagem do
circuito do PIC em no laboratório de eletrotécnica.

Figura 4. Circuito do projeto montado na matriz de contatos. REFERÊNCIAS

Para a simulação do circuito foi utilizado o software


PROTEUS, pois e possível carregar o arquivo .hex gerado [1] https://www.nhra.com/news/2013/more-tall-tales-tree.
pelo MPLAB.
[2] https://timeslipcharts.com/drag-racing-christmas-tree.

[3] http://www.produpark.com.br.

[4] https://www.microchip.com/mplab/mplab-x-ide.

[5] http://www.piclist.com/techref/piclist/codegen/delay.htm

Você também pode gostar