domingo, 9 de setembro de 2012

Reaction Time - com Teensy / Arduino

-->



Esta barra, indica o nível de dificuldade encontrado para cada experiência realizada.
sendo:
"VERDE", indicação de nível 1 a 5 (Fácil);
"AMARELO", indicação de nível 6 a 8 (Médio);
VERMELHO, indicação de nível 9 e 10 (Difícil);



Reaction Time - JOGO, Tempo de Reação

Um joguinho para medir o tempo de reação de uma pessoa entre o surgimento de um aviso luminoso e o apertar de um botão.
O tempo é medido em milisegundos, que seria o tempo normal de reação da maioria das pessoas...

O funcionamento é o seguinte:

Ao iniciar o Teensy, é mostrado no display de LCD 16x2, uma mensagem de inicialização.
Após isto é mostrado no display a mensagem "Teste de Reação!", "Aperte Botão"
Ao ser pressionado o botão, primeiramente toca uma música de inicio e acende os LEDs no ritmo da música; começa então, uma temporização aleatória (0-10s) para ser gerado o aviso luminoso inicial (em relação ao qual a pessoa deve ver e apertat novamente o botão para ver o seu tempo de reação ao aviso).
Antes de aparecer o aviso luminoso (LED azul) e durante o tempo aleatório, é mostrado as mensagens no LCD: "Preparado?", "... Aperte:..."; quando finalizar o tempo aleatório, será acionado o LED azul e mostrado a mensagem "<<<< AGORA! >>>>" no LCD.
Se a pessoa apertar o botão antes de 5000ms, será tocado uma música de parabenização, piscando os LEDs no ritmo da música e será mostrado uma mensagem com o tempo da pessoa em (ms), por exemplo "Seu tempo: 253ms", essa mensagem permanecerá por 2s na tela.
E o sistema voltará ao inicio esperando que seja apertado o botão, para começar novamente.

Condições extras:
1. Se a pessoa ficar apertando o botão (durante os 10s aleatórios) para burlar e quando vier o aviso o botão ja estar apertado???
Se você tiver um tempo de reação 0ms (não é impossível eu já consegui), ou você é um "SUPERMAN", ou você está trapasseando "Travessura", essas são as mensagem exibidas neste caso.
2. Caso a pessoa não aperte antes dos 5000 ms... ou o tempo de reação da pessoa é muito ruím, foi esquecido de apertar.... de qualquer forma "Falhou Feio!", "RIDICULO" são as mensagens exibidas e uma música de erro para finalizar.

HARDWARE & MATERIAL:
1 x Teensy ou Arduino UNO/MEGA/Duemilanove
1 x BreadBoard
1 x Buzzer
1 x Display LCD 16x2 I2C
1 x LED RGB
3 x Resistores de  330Ω
1 x Resistor de 10KΩ
1 x Botão Tactil
1 x Capacitor Eletrolítico 10uFx16V
Fios e cabos para as ligações



ESQUEMA & LAYOUT:

Abaixo as interligações necessárias, com Arduino e Teensy.

Notar que o Botão tem um Capacitor Eletrolítico em paralelo com os seus terminais, para o Debounce do chavemaento.


                        pino
                           |
                           |
+5V <-----/\/\/\/\/\---|---o/ o--|-----|GND
                           |           |
                           |---| (-----|

Cada terminal do LED RGB, tem um resistor de 330Ω em série com a ligação ao processador. E o Catodo Comum ligado ao GND.

O Buzzer, tem seu terminal - (negativo), ligado ao GND e o terminal + (positivo), em série com um resistor de 150Ω, ligado ao processador.



Ligação com o Arduino:

LED vermelho, pino 13;
LED verde, pino 11;
LED azul, pino 10;
Botão, pino 9;
Buzzer, pino 12;
LCD_SDA, pino A4;
LCD_SCL, pino A5.



Conexões com o Arduino

Para o Teensy foram usados os seguintes pinos:
LED vermelho, pino 12;
LED verde, pino 14;
LED azul, pino 15;
Botão, pino 7;
Buzzer, pino 13;
LCD_SDA, pino 1;
LCD_SCL, pino 0.

Conexões com o Teensy


PROGRAMAÇÃO & SOFTWARE:

Obtenha o arquivo (.pde) diretamente do 4shared:

  http://www.4shared.com/file/1c7mBavR/Arduino_Reaction_Timer_2.html

http://www.4shared.com/file/haSv9q3Z/Teensy_Reaction_Timer_2.html



VIDEO:

Dúvidas e sugestões enviem para: arduinobymyself@gmail.com

Youtube:  http://www.youtube.com/watch?v=-1nVPamC-5o



2 comentários:

  1. Este comentário foi removido pelo autor.

    ResponderExcluir
  2. O codigo esta a dar erro quando passo para o arduino . Diz 'Tone' does not a name a type, depois tmb da erro no lcd . Pode me ajudar?

    ResponderExcluir