Escolar Documentos
Profissional Documentos
Cultura Documentos
Jogo Genius com Arduino
Integrantes R.A.
Airton Orlandini Junior 78582
Luis Gustavo Beligante 80385
Wilde Augusto Picciani Rossi 77350
Descrição do Projeto
Genius foi um brinquedo muito popular na década de 1980 distribuído pela
Brinquedos Estrela.
O brinquedo buscava estimular a memorização de cores e sons. Com um formato
semelhante a um OVNI, possuía botões coloridos que emitiam sons harmônicos e se
iluminavam em seqüência. Cabia aos jogadores repetir o processo sem errar.
Nosso projeto, consiste em implementar a logica deste jogo utilizando um Arduino.
Montagem do Projeto
Para a montagem do projeto, serão necessários:
● 4 botões
● 4 leds (vermelho, amarelo, verder e azul)
● 1 speaker
● 1 arduino Uno
● 1 protoboard
● 8 resistores 220ohms
● 25 Cabos jumpers (este valor pode variar caso sua protoboard não seja dividida)
Abaixo, segue o esquematico de como fica o circuito final
Codigo Fonte
/*
*
Indicao pino de
á
udio
,leds e bot
õ
es.
*
Ospinos de leds e bot
õ
es est
ã
o em ordem
,relacionados uns aos outros
,ou
*seja
,o primeiro led est
árelacionado ao primeiro bot
ã
o
.A ordem destas
*sequ
ê
ncias tamb
é
m est
ã
o relacionadas a ordem dos tons.
*/
intpinoAudio
=
12;
intpinosLeds
[
4
]
=
{
7
,
8
,
9
,
10
};
intpinosBotoes
[
4
]
=
{
2
,
3
,
4
,
5
};
voidsetup
(){
voidloop
(){
// Toca um som de início para anúnicar que o jogo está começando quando é a primeira
rodada.
if
(
rodada_atual
==
0
){
tocarSomDeInicio
();
delay
(
500
);
}
for
(
inti
=
0
;i
<rodada_atual
;i
++){
aguardarJogada
();
verificarJogada
();
if
(
perdeu_o_jogo
){
break;
}
passo_atual_na_sequencia
++;
}
voidaguardarJogada
(){
ooleanjogada_efetuada
b =
false;
while
(!
jogada_efetuada
){
for
(
inti
=
0
;i
<=
3
;i
++){
if
(
digitalRead
(
pinosBotoes
[
i
])
==HIGH
){
tone
(
pinoAudio
,tons
[
i
]);
digitalWrite
(
pinosLeds
[
i
],HIGH
);
delay
(
300
);
digitalWrite
(
pinosLeds
[
i
],LOW
);
noTone
(
pinoAudio
);
jogada_efetuada
=
true;
}
}
delay
(
10
);
}
}
voidverificarJogada
(){
if
(
sequencia
[
passo_atual_na_sequencia
]
!=botao_pressionado
){
// GAME OVER.
for
(
inti
=
0
;i
<=
3
;i
++){
tone
(
pinoAudio
,tons
[
i
]);
digitalWrite
(
pinosLeds
[
i
],HIGH
);
delay
(
200
);
digitalWrite
(
pinosLeds
[
i
],LOW
);
noTone
(
pinoAudio
);
}
tone
(
pinoAudio
,tons
[
3
]);
for
(
inti
=
0
;i
<=
3
;i
++){
digitalWrite
(
pinosLeds
[
0
],HIGH
);
digitalWrite
(
pinosLeds
[
1
],HIGH
);
digitalWrite
(
pinosLeds
[
2
],HIGH
);
digitalWrite
(
pinosLeds
[
3
],HIGH
);
delay
(
100
);
digitalWrite
(
pinosLeds
[
0
],LOW
);
digitalWrite
(
pinosLeds
[
1
],LOW
);
digitalWrite
(
pinosLeds
[
2
],LOW
);
digitalWrite
(
pinosLeds
[
3
],LOW
);
delay
(
100
);
}
noTone
(
pinoAudio
);
perdeu_o_jogo
=
true;
}
}
voidtocarSomDeInicio
(){
tone
(
pinoAudio
,tons
[
0
]);
digitalWrite
(
pinosLeds
[
0
],HIGH
);
digitalWrite
(
pinosLeds
[
1
],HIGH
);
digitalWrite
(
pinosLeds
[
2
],HIGH
);
digitalWrite
(
pinosLeds
[
3
],HIGH
);
delay
(
500
);
digitalWrite
(
pinosLeds
[
0
],LOW
);
digitalWrite
(
pinosLeds
[
1
],LOW
);
digitalWrite
(
pinosLeds
[
2
],LOW
);
digitalWrite
(
pinosLeds
[
3
],LOW
);
delay
(
500
);
noTone
(
pinoAudio
);
}
Referência
http://labdegaragem.com/profiles/blogs/arduinogeniusjogodamemria