【问题标题】:Reading multiple ultrasonic sensors with BBB using python使用 python 用 BBB 读取多个超声波传感器
【发布时间】:2017-08-28 01:58:59
【问题描述】:

所以我开始使用 hc-sr04 超声波传感器并遇到了问题。我想读取多个传感器(两个用于初学者),但我在两者上都得到相同的距离值。代码如下:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import Adafruit_BBIO.GPIO as GPIO
import time

def distanceMeasurement(TRIG,ECHO):

    GPIO.output(TRIG, True)
    time.sleep(0.00001)
    GPIO.output(TRIG, False)

    while GPIO.input(ECHO) == 0:
        pulseStart = time.time()
    while GPIO.input(ECHO) == 1:
        pulseEnd = time.time()

    pulseDuration = pulseEnd - pulseStart
    distance = pulseDuration * 17150
    distance = round(distance, 2)
    return distance

#Configuration
GPIO.setup("P9_15",GPIO.OUT) #Trigger
GPIO.setup("P9_12",GPIO.IN)  #Echo
GPIO.setup("P9_11",GPIO.OUT)
GPIO.setup("P9_13",GPIO.IN)

#Security
GPIO.output("P9_11", False)
GPIO.output("P9_15", False)
time.sleep(0.5)

#main Loop
try:
    while True:
       for i in range(2):
           if i == 0:
               recoveredDistance = distanceMeasurement("P9_11","P9_13")
               print "Distance1: ",recoveredDistance,"cm"
           elif i == 1:
               recoveredDIstance = distanceMeasurement("P9_15","P9_12")
               print "Distance2: ",recoveredDistance,"cm"
       time.sleep(1)
except KeyboardInterrupt:
    print "Measurement stopped by user"
    GPIO.cleanup()

无论到传感器 2 上的物体的距离如何,我都得到相同的读数,传感器 1 中读取的距离是两者显示的;似乎sensor2被忽略了。

进行一些“手动调试”(即打印 TRIG、ECHO)我注意到该函数接收到正确的参数,这是“调试”的输出:

P9_11
P9_13

Distance1:  20.79 cm
P9_15
P9_12

Distance2:  20.79 cm
P9_11
P9_13

Distance1:  20.13 cm
P9_15
P9_12

我想用那个函数来读取所有传感器。提前谢谢你

【问题讨论】:

  • recoveredDIstance 中有一个简单的错字。 for / if / else 也没有任何意义。

标签: python sensors beagleboneblack


【解决方案1】:

您将相同的结果打印两次,因为第二次测量保存为recoveredDIstance。所以recoveredDistance 不变。 Python 区分大小写。

while True:
    recoveredDistance = distanceMeasurement("P9_11","P9_13")
    print "Distance1: ", recoveredDistance, "cm"
    recoveredDistance = distanceMeasurement("P9_15","P9_12")
    print "Distance2: ", recoveredDistance, "cm"
    time.sleep(1)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多