Roboter über Tastatur steuern

L I V E Stammtisch ab 20:30 Uhr im Chat
  • Hallo,

    ich bin neu hier und kenne mich mit Python noch nicht gut aus, ich möchte einen Raspberry Pi-Roboter von meinem Laptop aus mit der Tastatur steuern. Auf vielen Seiten habe ich schon gelesen, dass man dies mit Keyboard Events macht jedoch habe ich für mich keine verständliche Erklärung gefunden. Über eine ausführliche Erklärung und eventuell ein Beispielprogramm würde ich mich sehr freuen.


    mfg Sebebe

  • Hallo,

    Erstmal danke für die schnelle Antwort. Leider habe ich zum Thema Tkinter nicht sehr viele hilfreiche Informationen gefunden, könntest du mir vielleicht mal so ein Beispiel Programm mit solchen Befehlen zeigen, dass wär sehr hilfreich.


    mfg Sebebe

  • Naja, dann klatsch dir das mal so vorn Latz :D
    Wenn Fragen sind dann bitte gezielt fragen.

    "tkinter"

    [code=php]#!/usr/bin/python3
    # coding: utf-8
    import time, os
    from tkinter import *
    #------------------------------------------------------------------------
    def keyup(e):
    print ("STOP")

    def keydown(e):
    key = e.keysym
    if key == "Up":
    print ("Vorwaerts")
    elif key == "Down":
    print ("Rueckwaerts")
    elif key == "Left":
    print ("Links")
    elif key == "Right":
    print ("Rechts")
    #-------------------------------------------------------------------------
    os.system('xset r off')
    root = Tk()
    frame = Frame(root, width=600, height=400)
    frame.bind("<KeyPress>", keydown)
    frame.bind("<KeyRelease>", keyup)
    frame.pack()
    frame.focus_set()
    root.mainloop()
    [/php]

    Es gäbe aber auch noch Möglichkeiten über pygame oder curses (auch alles mit Python). Und last but not least könnte man das auch über ein Web-Interface realisieren und mithilfe HTML5 auch auf Tastendruck Befehle ausführen..

    • Offizieller Beitrag

    Programmieren ist wie z.B. Skateboard fahren. Man kann es zum Anfang nicht und man muss es zum Überleben nicht können. Wenn man sich entscheidet es zu lernen, fängt man klein an und ist froh man sich auf das Brett stellen kann ohne runter zu fallen. Jehr mehr Übung desto besser wird man...und irgendwann kann man Tricks und sonstigen Kram. Dergrösste Fehler den die meisten begehen ist: Ich will programmieren lernen...hmm ein spiel wäre super....oh es gibt gar kein Tutorial wie man spiele programmiert...programmieren ist doof. Ergo fängt man "klein", ohne Youtube und Co....mühsam ernährt sich das Einchhörnchen...was ist ein String...was ist ein int....und warum ist das nicht das selbe. Das alles kostet Zeit, viel Zeit

    Der Unterschied zwischen Genie und Wahnsinn definiert sich im Erfolg.

  • Ok dass Programm funktioniert jetzt soweit, der Roboter lässt sich über die Tastatur an meinem Raspberry Pi steuern. Wenn ich jedoch das selbe Programm über Putty an meinem PC ausführen lasse, zeigt es mir immer folgende Fehlermeldung:

    sh: 1: xset: not found
    Traceback (most recent call last):
    File "Taste.py", line 37, in <module>
    root=Tk()
    File "/usr/lib/python2.7/lib-tk/Tkinter.py", line 1712, in __init__
    self.tk = _tkinter.create(screenName, baseName, className, interactive, wantobjects, useTk, sync, use)
    _tkinter.TclError: no display name and no $DISPLAY environment variable

    Fehlt mir da ein Programm auf dem PC oder wie lässt sich das Problem beheben? :helpnew:


    [/quote]

  • Leider kann ich das Programm jetzt immer noch nicht von meinem PC ausführen ich habe mehrere Terminal Programme ausprobiert, die in dem von dir verlinktem Thema standen und X11 Forwarding unterstützen. Außerdem hab ich es nochmals mit Putty und Xming
    nach deiner Anleitung probiert, jedoch kam immer wieder die Gleiche Meldung:

    sh: 1: xset: not found
    X11 connection rejected because of wrong authentication.
    Traceback (most recent call last):
    File "Taste.py", line 37, in <module>
    root=Tk()
    File "/usr/lib/python2.7/lib-tk/Tkinter.py", line 1712, in __init__
    self.tk = _tkinter.create(screenName, baseName, className, interactive, wantobjects, useTk, sync, use)
    _tkinter.TclError: couldn't connect to display "localhost:10.0"

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!