我正在研究如何与Rasberry Pi和PiFace合作。代码是用Python编写的。
我的问题是: 一旦我按下PiFace上的4个开关中的一个,我似乎无法执行任何操作。我设法制作了一个与灯光一起播放的节目。
我们从我们的教授那里得到的文件在这里: https://piface.github.io/pifacedigitalio/example.html
我想要一个带有监听器的中断来触发相应的LED。按下开关1 - > LED 1触发。
到目前为止,这是我的代码(不起作用)。
import pifacedigitalio
def toggle_led0(event):
event.chip.leds[0].toggle()
def toggle_led1(event):
event.chip.leds[1].toggle()
def toggle_led2(event):
event.chip.leds[2].toggle()
def toggle_led3(event):
event.chip.leds[3].toggle()
pifacedigital = pifacedigitalio.PiFaceDigital()
listener = pifacedigitalio.SwitchEventListener(chip=pifacedigital)
listener.register(0, pifacedigitalio.IODIR_FALLING_EDGE, toggle_led0)
listener.register(1, pifacedigitalio.IODIR_FALLING_EDGE, toggle_led1)
listener.register(2, pifacedigitalio.IODIR_FALLING_EDGE, toggle_led2)
listener.register(3, pifacedigitalio.IODIR_FALLING_EDGE, toggle_led3)
listener.activate()
答案 0 :(得分:0)
以下代码适用于我的Pi B
import pifacedigitalio
from time import sleep
def lighton(event):
try:
print("on pressed")
event.chip.relays[0].value = 1
except:
raise KeyboardInterrupt
def lightoff(event):
try:
print("off pressed")
event.chip.relays[0].value = 0
except:
raise KeyboardInterrupt
pfd = pifacedigitalio.PiFaceDigital()
listener = pifacedigitalio.InputEventListener(chip=pfd)
listener.register(0, pifacedigitalio.IODIR_FALLING_EDGE, lighton)
print("Registered listener0")
listener.register(1, pifacedigitalio.IODIR_FALLING_EDGE, lightoff)
print("Registered listener1")
try:
listener.activate()
print("Activated all")
except (KeyboardInterrupt, SystemExit):
print("\n Ending Process")
listener.deactivate()
listener. destroy()