我正在使用Python代码控制远程玩具车。目前,代码如下所示:
当我按下 'w' 键时,将调用
是否有任何键侦听器可以检测特定键的释放?
例如,如果按下 'w' 键调用此方法,松开时调用另一个方法。
伪代码:
def getkey():
fd = sys.stdin.fileno()
old = termios.tcgetattr(fd)
new = termios.tcgetattr(fd)
new[3] = new[3] & ~TERMIOS.ICANON & ~TERMIOS.ECHO
new[6][TERMIOS.VMIN] = 1
new[6][TERMIOS.VTIME] = 0
termios.tcsetattr(fd, TERMIOS.TCSANOW, new)
c = None
try:
c = os.read(fd, 1)
finally:
termios.tcsetattr(fd, TERMIOS.TCSAFLUSH, old)
return c
def car():
while True:
key = getkey()
if key == 's': #Down arrow
print "Down"
Backward()
elif key == 'w': #Up arrow
print "Up"
forward()
elif key == 'a':
print "left"
Left()
elif key == 'd':
print "Right"
Right()
elif key == 'q': #Quit
print "That's It"
break
def forward():
GPIO.output(11,True) #Move forward
当我按下 'w' 键时,将调用
forward()
方法并使汽车向前移动,但汽车不会停下,直到我退出程序或从其他方法中调用 GPIO.output(11, False)
。是否有任何键侦听器可以检测特定键的释放?
例如,如果按下 'w' 键调用此方法,松开时调用另一个方法。
伪代码:
if w_isPressed()
forward()
else if w_isReleased()
stop()