Outils pour utilisateurs

Outils du site


python:hc-sr04

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: 2017/04/11 15:13 (modification externe)