PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Raspberry Pi Roboter - Frage zur Programmiersprache Python



Evolver
15.07.2015, 20:43
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 ;)

30476


So sieht das ganze in aufgebockter Form derzeit aus

30477


Hier zu sehen das PiFace Board


30478


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)


30479

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:


#!/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:



#!/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.


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=pifacedigi tal)
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. :confused::confused::confused:



Danke für Euer Interesse und Eure Antworten
Grüße Andreas