Seite 1 von 1
Niko (Roboter) per Tastatur steuern ?
Verfasst: Mittwoch 29. Februar 2012, 20:32
von xXSaschaXx
Hallo Phyton-Forum,
derzeit arbeiten wir in der Schule mit dem Roboter Niko
(NIKO, der objektorientierte Roboter)
und da wir alles derzeit per Befehle schreiben (umdrehen():,..) hatte
ich die Idee den Roboter so umzuprogrammiren das man diesen mit
der Tastatur steuern kann.
Da ich nun ein Anfänger in Sachen Phyton bin habe ich mir erhofft
das die Profis hier unter euch mir da ein wenig helfen können.
Also nun meine Frage: Kann ich den Roboter umprogrammieren so dass man diesen
per Tastatur steuern kann ? (Pfeiltasten zum gehen und eine Taste zum aufheben der Werkzeuge welche man im Mapeditor platzieren kann.)
Ich hoffe das ihr mir weiter helfen könnt

Mfg Sascha
Re: Niko (Roboter) per Tastatur steuern ?
Verfasst: Mittwoch 29. Februar 2012, 20:55
von webspider
Wenn NIKO zusammen mit Tkinter (bzw. einer anderen bekannten GUI) genutzt wird, dürfte dein Vorhaben mithilfe von Keybindings (an welche die entsprechenden Funktionen gebunden werden) lösbar sein. Phyton beherrschen wir hier leider nicht, deswegen musst du selbst nach einer Lösung googeln

Re: Niko (Roboter) per Tastatur steuern ?
Verfasst: Mittwoch 29. Februar 2012, 21:00
von nezzcarth
Ich kenne nur das "alte" NIKI auf Basis von Pascal, ich nehme an, du meinst
diesen. Eingaben kann man in Python normaler Weise mit raw_input/input entgegennehmen, oder so, wie webspider meinte. Allerdings sind diese Umgebungen garnicht für solche Dinge gedacht. Eigentlich steckt da der didaktische Gedanke hinter, in einer stark vereinfachten Umgebungen die Grundlagen zu lernen. 'Mein' Niko kannte zum Beispiel auch keine Variablen. Ich an deiner Stelle würde daher nicht so viel Energie da rein stecken, die Sachen, die der Lehrer euch zeigt, mitmachen und mich auf das 'richtige' programmieren, das danach anfängt freuen
Abgesehen davon gibt es so
Programmierspiele, bei denen man virtuelle Kampfroboter gegeneinander antreten lässt. Für Python habe ich sowas noch nicht gesehen, gibt es aber bestimmt auch.
Re: Niko (Roboter) per Tastatur steuern ?
Verfasst: Mittwoch 29. Februar 2012, 22:20
von Kebap
Hallo Sascha,
ich glaube, das wirst du so nicht so einfach hinbekommen, aber macht auch nix: Niko sollst du ja gar nicht immer nur selbst steuern, sondern du wirst lernen, wie du ihm ein Programm gibst, und mit Schleifen und Abfragen eine durchaus komplexe Steuerung bauen kannst. Dann musst du nur noch starten, kannst dich zurücklehnen und dem Roboter dabei zuschauen, wie er sich selbst seinen Weg sucht.
xXSaschaXx hat geschrieben:Hallo Phyton-Forum,
derzeit arbeiten wir in der Schule mit dem Roboter Niko
(NIKO, der objektorientierte Roboter)
und da wir alles derzeit per Befehle schreiben (umdrehen():,..) hatte
ich die Idee den Roboter so umzuprogrammiren das man diesen mit
der Tastatur steuern kann.
Da ich nun ein Anfänger in Sachen Phyton bin habe ich mir erhofft
das die Profis hier unter euch mir da ein wenig helfen können.
Also nun meine Frage: Kann ich den Roboter umprogrammieren so dass man diesen
per Tastatur steuern kann ? (Pfeiltasten zum gehen und eine Taste zum aufheben der Werkzeuge welche man im Mapeditor platzieren kann.)
Ich hoffe das ihr mir weiter helfen könnt

Mfg Sascha
Re: Niko (Roboter) per Tastatur steuern ?
Verfasst: Donnerstag 1. März 2012, 16:46
von xXSaschaXx
Kebap hat geschrieben:Hallo Sascha,
ich glaube, das wirst du so nicht so einfach hinbekommen, aber macht auch nix: Niko sollst du ja gar nicht immer nur selbst steuern, sondern du wirst lernen, wie du ihm ein Programm gibst, und mit Schleifen und Abfragen eine durchaus komplexe Steuerung bauen kannst. Dann musst du nur noch starten, kannst dich zurücklehnen und dem Roboter dabei zuschauen, wie er sich selbst seinen Weg sucht.
xXSaschaXx hat geschrieben:Hallo Phyton-Forum,
derzeit arbeiten wir in der Schule mit dem Roboter Niko
(NIKO, der objektorientierte Roboter)
und da wir alles derzeit per Befehle schreiben (umdrehen():,..) hatte
ich die Idee den Roboter so umzuprogrammiren das man diesen mit
der Tastatur steuern kann.
Da ich nun ein Anfänger in Sachen Phyton bin habe ich mir erhofft
das die Profis hier unter euch mir da ein wenig helfen können.
Also nun meine Frage: Kann ich den Roboter umprogrammieren so dass man diesen
per Tastatur steuern kann ? (Pfeiltasten zum gehen und eine Taste zum aufheben der Werkzeuge welche man im Mapeditor platzieren kann.)
Ich hoffe das ihr mir weiter helfen könnt

Mfg Sascha
Das ist klar

Haben wir auch bereits alles gmacht. Also wir haben den Roboter halt bestimmte Wege laufen lassen ihn Hindernisse umgehen lassen und so weiter. Da es ja auch irgendwie ein wenig langweilig ist wen er alles selbst macht. Daher kam mir auch die Idee den Roboter mal selbst zu steuern.
Ich habe bereits meinen Lehrer danach gefragt jedoch wusste er es auch nicht genau. Er meinte nur das er vermutet das es geht. Außerdem meinte er auch zu mir das er selbst es gerade versuchst.
Mfg
Re: Niko (Roboter) per Tastatur steuern ?
Verfasst: Donnerstag 1. März 2012, 17:17
von EyDu
Vielleicht genügt das ja als kleine Hilfe:
Code: Alles auswählen
import Queue
import threading
import Tkinter
def robot(queue):
#initialise robot
while True:
command = queue.get()
if command is None:
return
else:
#send command to robot
print command.keycode
def main():
queue = Queue.Queue()
controller = threading.Thread(target=robot, args=(queue,))
controller.start()
root = Tkinter.Tk()
root.bind("<Key>", queue.put)
root.mainloop()
queue.put(None)
if __name__ == "__main__":
main()
Die Steuerung musst du dann in der robot-Funktion umsetzen. Welche Taste gedrückt ist, erfährst du mittels ``command.keycode``. Das ist natürlich weit entfernt von perfekt, aber zum Testen sollte es reichen.
Sebastian
Re: Niko (Roboter) per Tastatur steuern ?
Verfasst: Freitag 2. März 2012, 14:26
von xXSaschaXx
Danke dir.
Ich werde es mal damit versuchen
Mfg