O Jogo de Choque é mais um Game Arduino desenvolvido pela Usinainfo que utiliza a nossa famosa placa microcontroladora em conjunto com um Transformador 12V para testar a velocidade de reação de seus jogadores.
Com a necessidade de 4 jogadores para cada partida, o Jogo de Choque possui 4 botões e 4 pares de parafuso, cada jogador deve ficar com um dedo posicionado em cima do par de parafuso e com outro dedo posicionado próximo ao botão para pressioná-lo sempre que o som do buzzer chegar ao fim.
O jogo só inicia quando pressionado o botão localizado no centro do game e ao fazer isto um buzzer irá tocar continuamente até fechar um tempo específico, ao final do som, o último que pressionar o botão leva um choque através dos parafusos e o botão deve ser pressionado novamente para reiniciar o jogo.
O jogo é simples, é fácil de jogar, mas precisa de muita atenção durante o seu desenvolvimento, uma vez que trabalha com um Transformador de Alta Tensão que pode ocasionar danos aos componentes do projeto, além de dar baita susto em quem o estiver desenvolvendo.
Transformador
Os transformadores são equipamentos eletrônicos utilizados para diminuir ou aumentar a tensão e corrente elétrica. Fundamentalmente, os transformadores são constituídos de dois enrolamentos de fios, o primário e o secundário, envolvidos em forma de bobina em um núcleo metálico.
Com a capacidade de transformar energias DC de baterias e demais dispositivos de corrente contínua em corrente elétrica alternada de 127 ou 220V, os transformadores são equipamentos elétricos cada vez mais utilizados em diversos equipamentos.
Para que ocorra uma força eletro motriz na bobina secundária de um transformador , a corrente na bobina primária deve ter um tempo que varie, assim como acontece na aplicação da Lei de Faraday para transformadores.
Quando alimentamos o transformador com alimentações pulsantes de curto período de tempo, geramos uma corrente variável na bobina primária que produz um fluxo magnético sobre a bobina secundária e consequentemente, uma tensão induzida.
Desta maneira, com o auxílio de um transformador, conseguimos produzir através de uma fonte DC de baixa tensão, a produção de um centelhamento de alta tensão induzida produzido com centenas de volts, desde que haja uma diferença de número de expiras da bobina secundária para primária considerável para isto.
Driver Controlador IRF520
Que a eletricidade é um assunto que diverge muitas opiniões é um fato, os conceitos elétricos que temos de alta tensão e correntes alternadas nos preocupam principalmente pelo fato de já termos nos deparado de alguma maneira com traumas ou assuntos envolvendo este tópico.
Porém, vale diferenciar a alta tensão gerada em nosso transformador para a alta tensão obtida em redes elétricas, as quais realmente apresentam um nível de periculosidade extremamente grande devido à alta corrente necessária para distribuição.
Mas mesmo não sendo uma eletricidade perigosa ao corpo humano, certas intensidades podem ser consideradas elevadas de mais por alguns grupos de pessoas, por isto incluímos o Driver controlador PWM que diminuirá a intensidade de saída do gerador e também controlará o pulso da tensão DC necessário para a produção do centelhamento.
Com um sistema de funcionamento extremamente simplificado, o driver escolhido para o desenvolvimento do nosso projeto conta apenas com dois bornes para entrada de energia e dois bornes para saída de energia regulada. Seu sistema de comunicação é também, extremamente simples, sendo necessário apenas a conexão de dois pinos de alimentação e um pino para dados PWM, assim como podemos ver na imagem abaixo:
Através deste equipamento que poderemos controlar a intensidade do centelhamento e do choque que será descarregado nos parafusos, lembrando que por se tratar de um comando PWM, os valores vão de 0 a 255, sendo de acordo com testes, o valor de 100 o mais recomendado por ser um choque de intensidade mediana.
O Jogo de Choque
O Jogo de Choque possui uma jogabilidade extremamente simples, são 5 botões em sua extremidade, sendo os botões 1, 2, 3 e 4 um para cada jogador e o botão central, START, para dar início a cada rodada.
São necessárias quatro pessoas para iniciar o jogo e uma destas ficará responsável por dar start no mesmo, ao apertar no botão que inicia o jogo um buzzer irá começar a soar um som ininterrupto com tempo pré-programado via código.
Ao final do tempo, quando o Buzzer parar de emitir som, todos devem apertar o botão e aquele que apertar por último será o qual irá levar o choque. Lembrando que para levar o choque, o jogador precisa estar com a face do dedo totalmente encostada nos dois parafusos posicionados ao lado do botão, assim como mostra a figura a baixo:
O case MDF do Jogo de Choque foi desenvolvido com todas as furações necessárias para a inclusão do Arduino, Módulo Relé, Driver Controlador PWM e demais componentes, possui uma distribuição favorável à instalação de todos os componentes sem risco de queima dos mesmos, desde que dentro das especificações de uso.
Além disto, possui furações especiais para o Arduino, para sua porta P4 da fonte de alimentação que também será responsável pela alimentação do gerador e para o acesso USB que permitirá alterações no código mesmo que com o produto já finalizado e montado.
Todos os módulos são fixados diretamente na chapa de MDF, que é rosqueável e dispensa o uso de porcas, por exemplo, para fixar os módulos no corpo do produto. Todas as demais peças são facilmente encaixadas, porém caso considerar necessário, é possível incluir uma gota de cola MDF para melhorar o acabamento.
Produtos Utilizados no Projeto
Para a execução dos projetos serão necessários os seguintes itens abaixo:
- Estrutura em MDF para Jogo do Choque com Arduino DIY Storm V1;
- Placa Uno R3 Arduino + Cabo USB;
- Transformador / Trafo 12V / 200mA;
- Módulo Relé 5V 10A 4 Canais com Optoacopladores;
- Driver Controlador para motor DC – IRF520;
- Buzzer Ativo 5V Bip Contínuo;
- 5 Chave Push Button PBS-102 104 Vermelha NF;
- 19 Parafuso Philips M3 x 6mm Metálico;
- 8 Porca M3 x 2,4mm Metálica;
- Cabo Flexível TiaFlex Fio 0,14mm² – Preto;
- Cabo Flexível TiaFlex Fio 0,14mm²;
- 20 Jumper Premium para Protoboard Macho-Fêmea 20 cm;
- 2 Jumper Y 1 Macho x 2 Fêmeas;
- Fonte de Alimentação Chaveada 6VDC 1A Plug P4.
Se preferir, é possível também adquirir o Kit Completo Jogo de Choque com todos os componentes supramencionados já incluídos.
Esquema de Ligação Jogo do Choque
O esquema de ligação deste projeto é um pouco mais complexo, por isto optei em dividi-lo em duas partes, a primeira delas é a parte de conexão dos parafusos com o módulo relé e o transformador.
Nesta primeira fase montaremos o sistema de choque, uma das partes mais delicadas e que mais precisa de atenção para o sucesso do nosso projeto. Todas as conexões de fios foram feitas com ferro de solda, não foi incluído protoboard ao projeto.
As imagens dos esquemas de ligação apresentadas abaixo não apresentam os módulos Arduino e Relé em seus respectivos locais de instalação, foram desenvolvidas da melhor forma para demonstração das ligações.
Como já mencionado anteriormente, a alimentação do Transformador será a mesma que alimentará o Arduino Uno do nosso projeto, por isto teremos que seguir o seguinte esquema de ligação para integração dos componentes, veja:
Para realizar a instalação destes componentes, assim como dos botões que veremos logo abaixo, o case MDF possui uma pequena abertura para a passagem de fios, já que estes componentes estão instalados para o lado de fora da superfície isolada.
Na segunda fase de montagem iremos instalar o Arduino e os componentes de controle como botões, módulo relé e buzzer, veja:
Mesmo que tenhamos apresentados os esquemas de ligação de uma forma isolado, uma ligação é imprescindível para o funcionamento do outra, diferenciamos uma da outra apenas para melhor compreensão.
Código de Funcionamento do Jogo de Choque
O código de funcionamento do Jogo de Choque com Arduino é extremamente simples, uma vez que possui apenas as variáveis comumente utilizadas nos mais diversificados projetos, não sendo necessária nem mesmo a inclusão de bibliotecas.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 |
// Define os pinos dos botões de posição const int rele1 = 4; const int rele2 = 2; const int rele3 = A0; const int rele4 = A1; const int pwmger = 3; const int botao0 = 5; const int botao1 = 6; const int botao2 = 7; const int botao3 = 8; const int botao4 = 9; const int buzzer = 12; // Define o estado lógico dos botões int start = 0; int fixastart = 0; int jogador1 = 0; int jogador2 = 0; int jogador3 = 0; int jogador4 = 0; void setup() { Serial.begin(9600); pinMode(botao0, INPUT_PULLUP); pinMode(botao1, INPUT_PULLUP); pinMode(botao2, INPUT_PULLUP); pinMode(botao3, INPUT_PULLUP); pinMode(botao4, INPUT_PULLUP); pinMode(buzzer, OUTPUT); pinMode(pwmger, OUTPUT); pinMode(rele1, OUTPUT); pinMode(rele2, OUTPUT); pinMode(rele3, OUTPUT); pinMode(rele4, OUTPUT); digitalWrite(rele1, HIGH); digitalWrite(rele2, HIGH); digitalWrite(rele3, HIGH); digitalWrite(rele4, HIGH); } void loop() { int start = digitalRead(botao0); int jogador1 = digitalRead(botao1); int jogador2 = digitalRead(botao2); int jogador3 = digitalRead(botao3); int jogador4 = digitalRead(botao4); if (start == 1) { fixastart = !fixastart; digitalWrite(buzzer, HIGH); delay(4000); // Altera o tempo do buzzer para inicio da rodada digitalWrite(buzzer, LOW); } if (fixastart == 1) { if ((jogador1 == 0) && (jogador2 == 1) && (jogador3 == 1) && (jogador4 == 1)) { digitalWrite(rele1, LOW); analogWrite(pwmger, 100); delay(50); analogWrite(pwmger, 0); delay(1000); digitalWrite(rele1, HIGH); delay(500); fixastart = !fixastart; } if ((jogador1 == 1) && (jogador2 == 0) && (jogador3 == 1) && (jogador4 == 1)) { digitalWrite(rele2, LOW); analogWrite(pwmger, 100); delay(50); analogWrite(pwmger, 0); delay(1000); digitalWrite(rele2, HIGH); delay(500); fixastart = !fixastart; } if ((jogador1 == 1) && (jogador2 == 1) && (jogador3 == 0) && (jogador4 == 1)) { analogWrite(rele3, 0); analogWrite(pwmger, 100); delay(50); analogWrite(pwmger, 0); delay(1000); analogWrite(rele3, 255); delay(500); fixastart = !fixastart; } if ((jogador1 == 1) && (jogador2 == 1) && (jogador3 == 1) && (jogador4 == 0)) { analogWrite(rele4, 0); analogWrite(pwmger, 100); delay(50); analogWrite(pwmger, 0); delay(1000); analogWrite(rele4, 255); delay(500); fixastart = !fixastart; } } } |
Para entendermos um pouco melhor sobre o funcionamento do código, vamos desmembrar a principal parte dele que é a análise dos botões e a reação do transformador, veja:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
// Analisa qual botão não está pressionado, logo analisa o último botão pressionado em cada caso if ((jogador1 == 1) && (jogador2 == 1) && (jogador3 == 1) && (jogador4 == 0)) { // Aciona o Relé 4, mudando o seu estado para 0, ou seja, LOW // Optamos pelos valores ao invés do comando, por estarmos utilizando os pinos analógicos neste caso analogWrite(rele4, 0); // Aciona o pino PWM do Drive e consequentemente dispara o chispa do transformador analogWrite(pwmger, 100); // Valor pode ser alterado para controlar intensidade do choque // Como vimos anteriormente, devemos emitir apenas um pulso rápido para produzir o chispa delay(50); // Após o tempo, colocamos o pino PWM para 0 e desativamos o Transformador. analogWrite(pwmger, 0); delay(1000); // Aguarda 1 segundo // Muda o estado o Relé desligando-o analogWrite(rele4, 255); delay(500); // Altera o estado do botão Start e finaliza a rodada fixastart = !fixastart; } |
A única diferença deste modelo apresentado acima, que seria o de utilização do pino analógico, para o modelo tradicional com modelo digital seria a diferença dos modos de acionamento do relé, ode em um dos casos utilizamos os comandos numéricos e em outro os comandos HIGH e LOW.
Conclusão
O Jogo de Choque com Arduino é um projeto desenvolvido com o intuito de propiciar um ambiente de aprendizado em eletrônica e também, por fim, propiciar um objeto de diversão com os amigos.
O projeto inicialmente parece perigoso por ser desenvolvido com base em um gerador de alta tensão, porém o choque dado como resultado de um atraso no aperto nos botões não causa danos ao corpo, mas não recomendamos para pessoas com problema cardíaco e aparelhos corporais que possam sofrer danos.
Bom dia, sou estudante e pretendo reproduzir este jogo no habitat maker da minha escola. Para isso, gostaria de saber se vocês podem disponibilizar o arquivo com o modelo da caixa para eu poder cortar na CNC. Grata desde já.
Bom dia Luana!
Nós não disponibilizamos nossos projetos para terceiros, temos a venda a estrutura em nossa loja no link abaixo:
https://www.usinainfo.com.br/robotica-educacional/estrutura-em-mdf-para-jogo-do-choque-diy-storm-v1-para-arduino-6315.html