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:
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:
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:
- Placa Uno R3 + Cabo USB para Arduino
- Jumpers Macho-Macho
- Potenciômetro Linear 10K
- Micro Servo 9g SG90 TowerPro
- Sensor de Luminosidade LDR 5mm
- Diodo Laser 5v Arduino
- Led Alto Brilho 5mm Verde x5 Unidades\
- Protoboard 400 Pontos
- Resistor 220 Ω
- Resistor 10k Ω
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):
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