Medir a distância.

article featured image

O objetivo desta aula é criar uma ferramenta de medição de distância utilizando um Sensor Ultrasonic. A medição vai ser convertida para um servo com apontador que nos indicará a distância.

O material que vamos necessitar para hoje é: arduíno, breadboard, sensor ultrasonic, servo e 8 jumpers.

Vamos utilizar o seguinte circuito:

Após a construção do circuito vamos passar à programação do mesmo.

Tendo como base as duas aulas anteriores, aula 16 e 17, já sabemos que vamos precisar de incluir a biblioteca <Servo.h>, que nos vai permitir trabalhar com o servo, e definir algumas variáveis:

No void setup() identificamos o pinMode de cada uma dos pinos que estamos a utilizar no arduíno e inicializamos o monitor de série para podermos monitorizar o nosso algoritmo.

No void loop(), utilizando o sensor ultrasonic, vamos medir o tempo que demora a executar um pulso, isto é, o tempo que a onda demora a atingir o objeto e regressar ao sensor:

Tendo o tempo do pulso, em microssegundos , convertemo-lo em horas para em seguida podermos calcular a distância a que o objeto se encontra:

Neste momento, vamos deixar o nosso sensor ultrasonic de parte e vamos começar a pensar como vamos pegar na distância encontrada e a vamos utilizar no servo.

Como sabemos da aula 16, um servo tem teoricamente um 'curso' entre 0 e 180 graus. No entanto, nunca chega a 0º nem a 180º. Assim, para este projeto, vamos criar uma barreira inicial de 30º de partida e de chegada, isto quer dizer que o nosso servo irá apenas trabalhar entre 30 e 150º.

Para efetuar estes cálculos vamos novamente utilizar o gráfico que aprendemos a construir nas últimas aulas:

Agora torna-se fácil calcular o ângulo do servo.

Alguns de vocês devem estar a perguntar o porquê de 37º, ponto inicial, e 143º, ponto final?

Muito bem, a razão é simples. Visto que cada um dos valores lidos vai ter um ângulo entre 0 e 15º, vamos colocar o apontador do servo no meio. Eu defini esse meio como sendo 7º. Daí os 37º (30º ponto de partida + 7º para o meio do valor).

Voltemos ao nosso algoritmo. Para calcular o ângulo usamos a seguinte instrução:

Agora que temos o projeto finalizado, podemos dar alguns retoques, isto é, vamos acrescentar um par de LED's, um verde e um vermelho, para indicar se a distância está dentro dos parâmetros que podem ser considerados no projeto ou não. Queremos dizer com isto que se a distância for superior a 7 polegadas irá sair da escala que preparamos, por este motivo esta não pode ser medida. Nesta situação o LED vermelho deverá acender, caso contrário estará ligado o LED verde.

Vamos ver o circuito a utilizar:

Para dar resposta a todo este problema teremos as seguintes linhas de código:

Finalizamos aqui a nossa aula utilizando servos e sensores de distância. Espero que tenham gostado e cá vos espero na próxima aula.

Até lá, um abraço...