Sensor de Distância Ultrassônico com o Raspberry

Fala galera,
hoje vou explicar um sensor um pouco mais difícil de utilizar, que é o sensor Ultrassônico comprado no FilipeFlop.850xN

Faremos a conexão do seguinte modo:

  1. VCC – entrada de energia ativa do Raspberry de 3.3v à 5v (pino 1 ou pino2 )
  2. Trigger – Pino transmissor da onda de som
  3. Echo – Pino receptor da onda
  4. GND – Ground.

Basicamente o sensor funciona da seguinte forma:

O Transmissor manda uma onda de som que vai ate algum objeto ou algum bloqueio que retorna para o receptor, essa diferença de entrada é saída da onda é chamada de  distância de deslocamento.
Sabemos (ou não) que a velocidade do som é igual a 340 m/s,

Convertendo 340m para cm  dará

velocidade do som = 34000cm/s

porém esses 34000cm/s se dá para ida+volta pois a onda precisa IR e VOLTAR, então dividimos por 2

então:

Proximidade = (distância de deslocamento * velocidade do som) / 2

Utilizaremos para a conexão 2 resistores, um para o Trigger e outro para o Ground como de padrão de utilização.

 

DSC_0102 DSC_0103

Utilizaremos os pinos 11 e 12 para fazer o transmissor e o receptor

Raspberry-Pi-GPIO-Layout-Revision-2 A precisão dele é bem confiável de 2 , 3 ,4 cm bem precisos.
Faremos um script para rodar somente uma vez porém pode ser facilmente adicionado um While(True):

import time
import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BOARD);
GPIO.setwarnings(False);
GPIO.setup(12,GPIO.IN);      # PIN QUE VAI CAPTAR
GPIO.setup(11,GPIO.OUT);  # PIN QUE VAI ENVIAR O SOM
GPIO.output(11, False);
time.sleep(3);
GPIO.output(11, True);
time.sleep(0.00001);
GPIO.output(11, False);
tempoInicio = time.time();

while GPIO.input(12)==0:
  tempoInicio = time.time();

while GPIO.input(12)==1:
  tempoFinal = time.time();

variacaoTempo = tempoFinal-tempoInicio;
somVolta = variacaoTempo * 17000;
somVolta = round(somVolta, 2);
print "Distancia do objeto : %.2f cm " %  somVolta;
GPIO.cleanup();

Espero que tenham gostado e até a próxima!