Com
um Arduino em mãos e um sensor de sonar de baixo custo é possível, com
pouquíssima solda e um programa muito pequeno, medir distâncias como faz
uma trena eletrônica.
Você vai precisar de:
Um Arduino:
Um
sensor de sonar ultrassom, que no caso dessa experiência usei um Sonar
Ultrassom Griffus (V9), com custo aproximado de R$60,00 na Tato
Equipamentos Eletrônicos (www.tato.ind.br)
. Com esse mesmo preço é possível encontrar inúmeros outros sonares no
mercado com pinagem e funcionamento idênticos ao que vou utilizar aqui.
O
primeiro passo é soldar alguns fios nos pinos do sensor, para facilitar
a ligação entre ele e o Arduino. Usei um pequeno pedaço de cabo de
rede, removendo os fios internos. A grande sacada é usar fios coloridos,
com cores diferentes, para identificar cada pino do sensor.
Feito
as soldas, agora é só ligar o pino 5V do sensor ao 5V do Arduino, o GND
(terra) ao GND do Arduino, o pino OUT ao pino digital 7 e o pino IN
poderá ficar sem ligação por enquanto, para essa experiência ele não
terá utilidade.
Agora só falta digitar o seguinte código no ambiente de desenvolvimento do Arduino e fazer upload para a placa:
O que fizemos, passo-a-passo:
Coloca o pino digital 13 no modo saída :
pinMode(13, OUTPUT);
Coloca o pino digital 7 como entrada:
pinMode(7, INPUT);
Inicia a comunicação serial em 9600bps:
Serial.begin(9600);
No loop principal:
Declaração das variáveis necessárias:
float tempo, dist;
A
função pulseIn() retorna o tempo em microssegundos entre a mudança de
estado de um determinado pino, ou seja, começa a contar quando o estado
do pino vai a LOW e para quando o estado vai para HIGH e vice-versa,
dependendo dos parâmetros utilizados:
tempo = pulseIn(7, HIGH);
Cálculo
da distância percorrida pelo pulso ultrassonico. Considerei que a
velocidade do som é de aproximadamente 350 metros por segundo:
dist = ((tempo * 350)/1000000)/2;
Envia via porta serial os dados que especifica:
Serial.print(tempo);
Serial.print(" microssegundos, ");
Serial.print(dist);
Serial.print(" metros");
Serial.println();
Faz uma pausa de meio segundo, ou 500 milissegundos:
delay(500);
Compile
e envie o programa para seu Arduino, abra o Serial Monitor e coloque
objetos (pode ser a mão) em frente ao seu sensor de sonar e veja o
resultado:
Há alguns desafios com esse projeto, a saber:
1. Existe um limiar de medição mínimo e máximo para cada tipo de sonar ultrassônico, é preciso identificar esses limites;
2. Há uma latência do próprio Arduino e da execução do programa que deve ser considerado;
3.
A velocidade do som no ar varia de acordo com a temperatura do meio,
talvez para conseguir um máximo de performance deva-se adicionar um
termo sensor ao projeto;
0 comentários:
Postar um comentário