Я пытаюсь использовать Raspberry Pi Model B + для создания программы, которая использует модуль ультразвукового измерения для управления модулем реле. Я буду использовать эту вещь, чтобы создать, когда конвейер перестает двигаться.
Моя программа будет опираться на модуль ультразвукового определения дальности для непрерывного измерения расстояния. Поскольку на конвейерной ленте находятся объекты, расстояние будет непрерывно изменяться при прохождении объектов мимо модуля ультразвукового измерения. Таким образом, если конвейерная лента перестает двигаться, расстояние, измеренное модулем ультразвукового измерения, останется неизменным. Когда это произойдет в течение 5 секунд, моя программа отключит релейный модуль.
Мой код сейчас не работает. В чем проблема? Вот что у меня так далеко. (Также обратите внимание, что я использую плату расширения GPIO для модуля ультразвукового позиционирования и модуля реле.)
#!/usr/bin/env python
import RPi.GPIO as GPIO
import time
TRIG = 11
ECHO = 12
RelayPin = 11 # pin11
def setup():
GPIO.setmode(GPIO.BOARD)
GPIO.setup(TRIG, GPIO.OUT)
GPIO.setup(ECHO, GPIO.IN)
GPIO.setup(RelayPin, GPIO.OUT)
GPIO.output(RelayPin, GPIO.HIGH)
def distance():
GPIO.output(TRIG, 0)
time.sleep(0.000002)
GPIO.output(TRIG, 1)
time.sleep(0.00001)
GPIO.output(TRIG, 0)
while GPIO.input(ECHO) == 0:
a = 0
time1 = time.time()
while GPIO.input(ECHO) == 1:
a = 1
time2 = time.time()
during = time2 - time1
return during * 340 / 2 * 100
def loop():
while True:
dis = distance()
print dis, 'cm'
print ''
time.sleep(5)
dis12 = distance()
if dis = dis2
GPIO.output(RelayPin, GPIO.LOW);
def destroy():
GPIO.output(RelayPin, GPIO.HIGH)
GPIO.cleanup() # Release resource
if __name__ == '__main__': # Program start from here
setup()
try:
loop()
except KeyboardInterrupt: # When 'Ctrl+C' is pressed, the child program destroy() will be executed.
destroy()