====== Capteur de distance ultra son HC-SR04 ====== pistes: * http://www.manuel-esteban.com/lire-un-capteur-ultrason-hc-sr04-avec-un-raspberry-pi/ * https://www.framboise314.fr/mesure-de-distance-par-ultrasons-avec-le-raspberry-pi/ {{:python:mesure_ultrasons_03.jpg?200|}} 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()