python:hc-sr04
Table des matières
Capteur de distance ultra son HC-SR04
pistes:
avec R1=1K et R2=2K ou R1=330,R2=470, donnant par pont diviseur 3,3V a partir de 5V pour l'alimentation du module
Pour une carte arm , orange Pi Nanopi M1 etc, récupérez les librairies sur https://github.com/duxingkei33/orangepi_PC_gpio_pyH3
git clone https://github.com/duxingkei33/orangepi_PC_gpio_pyH3 apt-get install python-liblo apt-get remove libi2c-dev # car surcharge de definitions cd orangepi_PC_gpio_pyH3 python setup.py install
Lecture simple
#!/usr/bin/python # sonar.py # HC-SR04 mesure de distance ultra son # # Author : Gepeto # Date : 13/01/2017 # test nanopiM1, Orange Pi, gpio style RSP # Trigger sur PG8 (pin16) # Echo sur PG9 (pin18) # librairie necessaire : https://github.com/duxingkei33/orangepi_PC_gpio_pyH3 # python-liblo import time from pyA20.gpio import gpio from pyA20.gpio import port gpio.init() gpio.setcfg(port.PG8,gpio.OUTPUT) # trigger gpio.setcfg(port.PG9,gpio.INPUT) # echo print "mesure de distance HC-SR04" gpio.output(port.PG8,0) time.sleep(0.5) # Send 10us pulse to trigger gpio.output(port.PG8,1) time.sleep(0.00001) gpio.output(port.PG8,0) pulsation = time.time() while gpio.input(port.PG9)==0: pulsation = time.time() while gpio.input(port.PG9)==1: stop = time.time() # Calcul temps de propagation difference = stop-pulsation # distance parcourue dans le temps difference # vitesse du son (cm/s) distance = difference * 34000 # distance est un aller-retour distance = distance / 2 print "Distance : %.1f" % distance # Reset GPIO settings gpio.init()
sonar vers OSC
#!/usr/bin/python # sonar2OSC.py # HC-SR04 mesure de distance ultra son vers OSC # # Author : Gepeto # Date : 13/01/2017 # test nanopiM1, Orange Pi, gpio style RSP # Trigger sur PG8 (pin16) # Echo sur PG9 (pin18) # librairie necessaire : https://github.com/duxingkei33/orangepi_PC_gpio_pyH3 import time import liblo,sys from pyA20.gpio import gpio from pyA20.gpio import port PORTOSC=9001 IPOSC="localhost" TEMPDELECTURE=1 gpio.init() gpio.setcfg(port.PG8,gpio.OUTPUT) # trigger gpio.setcfg(port.PG9,gpio.INPUT) # echo # ouvre le port OSC try: targetOSC = liblo.Address(IPOSC,PORTOSC) except liblo.AddressError, err: print str(err) sys.exit() while True: try: #print "mesure de distance HC-SR04" gpio.output(port.PG8,0) time.sleep(0.5) # Send 10us pulse to trigger gpio.output(port.PG8,1) time.sleep(0.00001) gpio.output(port.PG8,0) pulsation = time.time() while gpio.input(port.PG9)==0: pulsation = time.time() while gpio.input(port.PG9)==1: stop = time.time() # Calcul temps de propagation difference = stop-pulsation # distance parcourue dans le temps difference # vitesse du son (cm/s) distance = difference * 34000 # distance est un aller-retour distance = distance / 2 if distance<150: print "%.1f" % distance #print "Distance : %.1f" % distance # envoi des donnees liblo.send(targetOSC,"/SONARDIST", distance) time.sleep(1) # gpio.init() except KeyError: pass except KeyboardInterrupt: quit()
python/hc-sr04.txt · Dernière modification : 2024/02/09 17:10 de 127.0.0.1