Raspberry e sensor Ultra-Sonico HC-SR04
Continuando com a interação de componentes eletronicos com Raspberry, vamos aprender a montar um medidor de distâncias utilizando ultrasom.
Vamos fazer o Raspberry conversar com o sensor HC-SR04, da foto abaixo:
Com esse sensor e algumas linhas em Python, podemos medir a distancia de qualquer objeto.
Vamos começar conectando o sensor a GPIOs do Raspberry, conforme layout abaixo. Existem varios tipos de conexão na interrnet, optei por fazer um mais simples utilizando apenas 1 resistor de 1K e mais nada. O desenho nao ficou muito bo mas ja da uma base, lembrando que essa é a pinagem para o Modelo B do Raspberry.
Com o sensor ligado ao Raspberry vamos ao código:
nome do arquivo: distancia.py
--------------------------------------
#!/usr/bin/python def reading(sensor): import time import RPi.GPIO as GPIO GPIO.setwarnings(False) GPIO.setmode(GPIO.BCM) if sensor == 0: GPIO.setup(17,GPIO.OUT) GPIO.setup(27,GPIO.IN) GPIO.output(17, GPIO.LOW) time.sleep(0.3) GPIO.output(17, True) time.sleep(0.00001) GPIO.output(17, False) while GPIO.input(27) == 0: signaloff = time.time() while GPIO.input(27) == 1: signalon = time.time() timepassed = signalon - signaloff distance = timepassed * 17000 return distance GPIO.cleanup() else: print "Erro ou funcao incorreta." distancia = reading(0) distanciaCentimetros = distancia distanciaMetros = distancia / 100 print "A distancia e de:" print str(distanciaMetros) + " Metros." print "ou" print str(distanciaCentimetros) + " Centimetros." --------------------------------------------
Depois de salvo, vamos setar como executável:
sudo chmod +x distancia.py
sudo ./distancia.py
Esse sera o resultado:
*** Obs:
A maneira correta é medir um objeto com inclinação sempre de 90°, isso é para evitar com que o sinal do ultrasom reflita no objeto e nao volte ao sensor, indo rebater em outro lugar, como ilustrado na figura abaixo:
Referencia: http://www.bytecreation.com
Abaixo segue a foto da plaquinha que montei para o sensor.














