Python Clés de la presse et de la Clé de déverrouillage d'Écouteur

Je suis un contrôle à distance de voiture de jouet à l'aide de code python .À compter de maintenant, le code est comme ci-dessous

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

Lorsque j'appuie sur 'w' méthode forward() est appelée et la voiture se déplace vers l'avant, mais wont stop jusqu'à ce que je
quitter le programme ou appelez le GPIO.de sortie(11,Flase) à partir d'une autre méthode.

Est-il un Écouteur qui détecte la clé de sortie de n'importe quelle touche particulière .

Par exemple , si " w " pressé appelé cette méthode et si elle est rejetée appel à une autre méthode

Sudo code

if w_isPressed()
   forward()
else if w_isReleased()
    stop()
  • Vous ne pouvez pas faire cela sans réel accès au clavier. Votre terminal envoie uniquement les touches, de sorte que vous ne pouvez pas dire si une touche a été relâchée.
  • Vous pourriez être en mesure de le faire à l'aide de PyGame.
InformationsquelleAutor Giridhar | 2014-06-22