ja sterowania zdalnego samochodzik użyciu kodu Pythona .Jak na razie kodu jest jak poniżejPython Klawisz i Key Release Listener
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
po naciśnięciu „w” forward() wywoływana jest metoda i samochód porusza się do przodu, ale nie zatrzyma się, dopóki nie odejdę z programu ani nie zadzwonię do GPIO.output (11, Flase) z innej metody.
Czy jest jakiś kluczowy odbiornik, który wykrywa zwolnienie klawisza dowolnego klucza.
Na przykład, jeśli „w” wciśnięty nazywa ta metoda i jeśli wydany wywołania innej metody kodu
Sudo
if w_isPressed()
forward()
else if w_isReleased()
stop()
Nie można tego zrobić bez faktycznego dostępu do klawiatury. Twój terminal wysyła tylko naciśnięcia klawiszy, więc nie możesz stwierdzić, kiedy został zwolniony klucz. – Blender
Możesz to zrobić za pomocą PyGame. – kindall