DEV Community

Cover image for Sobre Sensores (Ou Como enganar o Dinossauro do Google)
Johnny Meneses
Johnny Meneses

Posted on • Edited on

Sobre Sensores (Ou Como enganar o Dinossauro do Google)

Os sensores são dispositivos eletrônicos que tem basicamente duas funções: detectar um estímulo e responder a esse estímulo. Há vários tipos de sensores que detectam as mais variadas quantidades de estímulos: sensores de movimento, cheiro, luz, fumaça, e até sensor de cor. A grande sacada está justamente no que você pode fazer com a resposta que o sensor envia. As possibilidades são infinitas!

Sabe a luz que acende quando alguém bate palmas? Sensor de Som. Por baixo dos panos é um programa que fica sempre alerta, esperando detectar o som em um nível pré determinado via programação. Se este nível for atingido, o sensor retorna OK para o programa que toma a ação de, neste caso, ligar uma luz.

Tem um sensor muito bacana que é o LDR, sensor de luminosidade.
É um componente cuja resistência varia de acordo com a intensidade da luz. Quanto mais luz incidir sobre ele, menor a resistência. Pode ser usado em alarmes, luzes de emergência, etc.

Pois bem. Hoje vamos usar esse sensor para enganar o Dinossauro do Google.

Alt Text

Um parênteses. O dinossauro do Google (T-Rex Game) é um jogo integrado ao navegador Google Chrome. O jogo foi criado por Sebastien Gabriel em 2014 e pode ser facilmente acessado pressionando a barra de espaço quando estiver offline no Chrome.

A ideia aqui é fazer justamente como no vídeo: fazer o nosso dinossauro pular sozinho todos os obstáculos.


Vamos precisar de:

1 Arduino Uno R3 (ou similar)
1 Sensor de Luminosidade LDR
1 Resistor de 10 kΩ
1 Micro Servo 9g

O código é extremamente simples:

Incluindo as bibliotecas Arduino e do Micro Servo:

#include <Arduino.h>
#include <Servo.h>
Enter fullscreen mode Exit fullscreen mode

Instalando o Micro Servo e o Sensor LDR:

Servo servo_2;

void setup()
{
  pinMode(A0, INPUT); //Sensor LDR
  Serial.begin(9600);
  servo_2.attach(2); //Micro Servo
}
Enter fullscreen mode Exit fullscreen mode

É neste método que a mágica acontece: O Sensor LDR ligado na porta A0 irá ler a quantidade de luz a que ele está exposto. Se esse número for abaixo de 300 (ou seja, se um obstáculo passou pelo sensor), o Micro Servo é acionado e aperta a barra de espaço:

void acionaServo()
{
  Serial.println(analogRead(A0));
  if (analogRead(A0) < 300) {
    servo_2.write(60);
    delay(150); 
  } else {
    servo_2.write(0);
  }

}

void loop()
{
  acionaServo();
}

Enter fullscreen mode Exit fullscreen mode

O Sketch do projeto ficou assim:

Alt Text

A montagem não tem segredos: basta posicionar o sensor diretamente no Monitor. Eu coloquei bem a esquerda. O Micro servo eu colei com uma fita 3M ao lado da barra de espaço. Agora é só acertar a distância em que o Micro Servo é acionado.

Alt Text

Alt Text

Quem já brincou com este jogo, sabe que também tem obstáculos onde é preciso abaixar, ao invés de pular. Eai, o que fazer?

Implemente, modifique!

Sketch do projeto

Código fonte disponível no meu GitHub

Se quiser saber mais sobre as possibilidades do sensor LDR, aqui está o Datasheet.

E se ficou alguma dúvida, manda seu comentário.

Top comments (0)