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.

Image of Datadog

How to Diagram Your Cloud Architecture

Cloud architecture diagrams provide critical visibility into the resources in your environment and how they’re connected. In our latest eBook, AWS Solution Architects Jason Mimick and James Wenzel walk through best practices on how to build effective and professional diagrams.

Download the Free eBook

Top comments (0)

Billboard image

The Next Generation Developer Platform

Coherence is the first Platform-as-a-Service you can control. Unlike "black-box" platforms that are opinionated about the infra you can deploy, Coherence is powered by CNC, the open-source IaC framework, which offers limitless customization.

Learn more