Sobre Sensores (Ou Como enganar o Dinossauro do Google)
Published: 2021-07-11 00:05:06

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](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0rfkgl9xzljrqn0spnst.jpg)

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. 

<a href="http://www.youtube.com/watch?feature=player_embedded&v=KoRzZxjjHNs" target="_blank"> 
<img width="440" height="380" border="10" src="https://i9.ytimg.com/vi/KoRzZxjjHNs/mq3.jpg?sqp=CNDfqIcG&rs=AOn4CLA2CTI4EbDtOnQ-RnzUap8GtZ6nHQ"></a>

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:

```java
#include <Arduino.h>
#include <Servo.h>
```

Instalando o Micro Servo e o Sensor LDR:

```java
Servo servo_2;

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

É 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:

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

}

void loop()
{
  acionaServo();
}

```

O Sketch do projeto ficou assim: 

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gi79482awjnxrzefrtfh.png)


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](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/aall4ql705lpsqwfz99n.jpg)

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/edocklmuuxdqbn7wa53g.jpg)



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] (https://www.tinkercad.com/things/aSOvYvSSUyk-dinossaurogoogle)

[Código fonte disponível no meu GitHub] (
https://github.com/johnnymeneses/iot-projetos/tree/main/googleDinosaur)

Se quiser saber mais sobre as possibilidades do sensor LDR, aqui está o [Datasheet] (https://pdf1.alldatasheet.com/datasheet-pdf/view/1131892/ETC2/GL5516.html). 

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