Hallo Roboternetz Community.
Seit einiger Zeit baue ich nun schon an meinem Raspibot.
Im Moment ist es eine fahrbare, über W-LAN fernsteuerbare Roboexperimentierplattform.
Das ganze basiert auf dem Raspberry Pi B+
programmiert wird es mit Python3
als Erweiterungboard verwende ich das PiFace um die Relais zu schalten http://www.piface.org.uk/
als Fahrwerk dient ein Kettenantrieb von nem Spielzeugroboter
So sieht das ganze in aufgebockter Form derzeit aus
Hier zu sehen das PiFace Board
mit der App SSH-Button wird der Robo über s Tablet ferngesteuert (unter den Buttons habe ich meine Scripts wie vor zurück links rechts abgelegt, und mit Secure Shell an auf dem Pirobo zur ausführung gebracht)
oder mit dem Remotedesktop können die Scripts vom Tablet oder PC aus ausgeführt werden.
Hier einige der Scripts , die zur Zeit verwendet werden
zum geradeausfahren:
Code:
#!/usr/bin/python3
import time
import pifacedigitalio as p
p.init()
p.digital_write(0,1)
p.digital_write(2,1)
time.sleep(3)
p.digital_write(0,0)
p.digital_write(2,0)
time.sleep(0.2)
zum links fahren:
Code:
#!/usr/bin/python3
import time
import pifacedigitalio as p
p.init()
p.digital_write(0,1)
p.digital_write(3,1)
time.sleep(0.2)
p.digital_write(0,0)
p.digital_write(3,0)
time.sleep(0.2)
und hier eines der PIFace Beispielprogramme was mit einem Eventlistener arbeitet und auf einen Tastendruck auf dem PiFaceboard
eines dessen led s leuchten lässt sprich bei mir auf Tastendruck hin dieRelais also die eine Kette hin betätigt.
Code:
import pifacedigitalio
def switch_pressed(event):
event.chip.output_pins[event.pin_num].turn_on()
def switch_unpressed(event):
event.chip.output_pins[event.pin_num].turn_off()
if __name__ == "__main__":
pifacedigital = pifacedigitalio.PiFaceDigital()
listener = pifacedigitalio.InputEventListener(chip=pifacedigital)
for i in range(4):
listener.register(i, pifacedigitalio.IODIR_ON, switch_pressed)
listener.register(i, pifacedigitalio.IODIR_OFF, switch_unpressed)
listener.activate()
Und nun zu guterletzt zu meiner Frage:
Kennt einer von Euch Möglichkeiten wie ich in mein Script eben so einen Eventlistener einbaue.
zum Beispiel soll das Programm nach Aktivierung warten bis es eine Keyboardeingabe gibt.
Und dann zum Beispiel auf die Eingabe hin "Pfeiltaste hoch" beide Motoren vorwärts laufen lassen.
bzw. auf die Eingabe hin "Pfeiltaste links" hin den Befehl zum linksfahren geben.
Danke für Euer Interesse und Eure Antworten
Grüße Andreas
Lesezeichen