【发布时间】:2014-06-22 15:29:37
【问题描述】:
我正在使用 python 代码控制遥控玩具车。截至目前,代码如下:
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()
【问题讨论】:
-
如果没有实际的键盘访问权限,您将无法执行此操作。您的终端仅发送按键,因此您无法判断按键何时被释放。
-
你也许可以使用 PyGame 来做到这一点。
标签: python raspberry-pi gpio