Projeto Arduino: Jogo de equilíbrio Deixe um comentário

Neste artigo vamos aprender como montar um jogo baseado em uma das provas do reality show “Hyperdrive”, disponível na Netflix. A prova original consiste em equilibrar uma rampa manobrando o carro pra frente e para trás, da seguinte maneira:

"Hyperdrive”, disponível na Netflix
“Hyperdrive”, disponível na Netflix

A diferença é que, neste projeto, o objetivo é mover a rampa que é controlada por um micro servo para equilibrar o carro no centro e bloquear o diodo laser que está mirando no sensor de luminosidade LDR. O Jogo termina quando o led verde acende:

Jogo de equilíbrio com Arduino
Jogo de equilíbrio com Arduino

No decorrer do artigo será explicado como a estrutura foi montada, mas o divertido desse projeto é usar a criatividade para montar estruturas diferentes. No meu caso eu usei MDF de 25mm de espessura, mas você pode usar chapas de MDF mais finas, peças de LEGO, impressão 3D e até papelão!
E não menos importante, todos os componentes desse projeto estão inclusos no Kit Maker Arduino Iniciante da FilipeFlop!

Materiais necessários:

Programando o Arduino

Antes de colocar a mão na massa e conectar todos os componentes, devemos abrir o Arduino IDE e carregar o seguinte código:

// Jogo de Equilibrio Arduino
// Por Lauro Fava

#include <Servo.h>

int distancia = 0;
int sensorluz = 0;
Servo servo_3;
unsigned long millisTempoled = millis();

void setup()
{
  pinMode(A0, INPUT);
  servo_3.attach(3, 500, 2500);

  Serial.begin(9600);

  pinMode(A1, INPUT);
  pinMode(8, OUTPUT);
  }

void loop()
{	

servo_3.write(map(analogRead(A0), 0, 1023, 40, 140));

Serial.println(sensorluz);
sensorluz = analogRead(A1);
  
   if (sensorluz < 950 && ((millis() - millisTempoled) > 3000)) {	

digitalWrite(8, HIGH);
    }

   else (sensorluz > 950) {

	digitalWrite(8, LOW); 
    	millisTempoled = millis(); 
   }

}

O código é dividido basicamente em duas partes:

  • Controlar o Micro Servo usando o Potenciômetro
  • Condição if-else para acender o LED verde caso o Sensor de Luminosidade LDR não receba a luz do Diodo Laser por um tempo de 3 segundos

Um observação importante: no código foi necessário o uso da função millis() ao invés de delay(), pois, mesmo que o delay() seja inserido dentro na condição if-else, todos os comandos fora do if-else irão sofrer um delay, resultando em um atraso no controle do Micro Servo.
Temos um Artigo no blog ensinando como utilizar a função millis() em seus projetos: Substituindo delay por millis no Arduino.

Para a estrutura, eu comecei revestindo um pedaço de MDF de 30cm x 24 cm usando um tecido que “imita” fibra de carbono. Para isso eu utilizei um grampeador de tapeceiro:

Em seguida, foi necessário furar a chapa da seguinte maneira:

  • 4 furos com broca de 1 mm (indicados em azul na foto) para parafusar a placa Arduino. Para referência dos furos você pode usar a própria placa Arduino.
  • 2 furos com broca de 6mm (indicados em verde na foto) para passar os jumpers que serão conectados no sensor LDR e no Micro Servo.

Com a base pronta, podemos preparar o suporte vertical, também em MDF, onde serão presos o Micro Servo, sensor LDR e eixo da rampa, usando as seguintes medidas:

O parafuso usado para o eixo da rampa tem medidas de 1/4“ x 10 cm e o furo indicado na foto foi feito para passar os fios do Micro Servo. Para fazê-lo foi usado uma broca de 6mm e movimentos horizontais para aumentar a largura do furo

Para a rampa, foram usados 2 pedaços de capa de caderno e duas porcas de 1/4“ no centro, para parafusar o eixo:

E para finalizar a estrutura, foram usados 20cm de espiral de caderno para dar suporte ao diodo laser, como pode ser visto na imagem abaixo.
Para prender a espiral, foram feitos 2 furos de 1mm na base da estrutura.

Montando os componentes

O esquemático do projeto ficou o seguinte (considerar que a lâmpada é o diodo laser):

Esquemático eletrônico - Jogo de equilíbrio
Esquemático eletrônico – Jogo de equilíbrio

O resistor ligado ao LED é de 220 Ω e o ligado ao LDR é de 10k Ω.
Antes de iniciar a ligação dos componentes eu usei os buracos feitos na base para passar e esconder os cabos que vão do micro servo e LDR até o Arduino e a Protoboard. Os jumpers da foto a seguir estão conectados da seguinte maneira:

  • Jumper alaranjado está conectado na entrada sinal do micro servo.
  • Jumper vermelho está conectado na entrada fase do micro servo.
  • Jumper marrom está conectado na entrada GND do micro servo.
  • Jumpers amarelo e verde estão conectados no sensor LDR (O sensor LDR foi posicionado a 4 cm do eixo através de 2 furos de 1mm, um para cada cada terminal do LDR).

A conexão inicial dos componentes Sensor de Luminosidade LDR e Micro servo ficou a seguinte:

E para alcançar a protoboard, foi necessário soldar 2 jumpers nos terminais do diodo laser:

Seguindo o esquemático, devemos conectar o LED, nesse caso ele foi preso à um boneco LEGO:

 

Agora devemos conectar a rampa ao micro servo, para isso foram usados 2 parafusos de 2,5mm x 40mm, 1 palito de picolé e 12cm de corrente para cada lado.
O palito de picolé foi presos ao servo e às corrente usando o grampeador de tapeceiro (mas você pode usar um grampeador de papel):

E as correntes foram presas à rampa através dos parafusos:

E para finalizar, devemos preparar o carrinho. Para isso foi usado um pedaço de palito de picolé e preso ao carrinho com fita crepe. Esta haste tem a função de bloquear o diodo laser:

Funcionamento do projeto:

Conta pra gente o que achou desse projeto aqui nos comentários 🙂 e não esquece de nos seguir no Instagram para ficar por dentro das novidades aqui da FilipeFlop

Faça seu comentário

Acesse sua conta e participe