Guten Abend,
ich bin dabei mir einen kleinen Miniroboter zu bauen. Hier habe ich schon angefangen im Bereich Hardware mich zu informieren. Da dies nun abgeschlossen ist widme ich mich nun dem Softwarebereich. Dafür entwickle ich gerade eine Steuerung um ihn vorwärts/rückwärts/seitwärts etc. fahren zu lassen.
Hier einmal mein bisheriger Code:
import RPi.GPIO as GPIO
import time
import sys, os
import termios, fcntl
#A routine to control a pair of pins
def ControlAPairOfPins(FirstPin,FirstState,SecondPin,SecondState):
print "Controlling them pins"
if FirstState == "1":
GPIO.output(int(FirstPin),True)
else:
GPIO.output(int(FirstPin),False)
if SecondState == "1":
GPIO.output(int(SecondPin),True)
else:
GPIO.output(int(SecondPin),False)
#Just return
return
####Main body of code
#Get rid of warnings
GPIO.setwarnings(False)
#Set the GPIO mode
GPIO.setmode(GPIO.BOARD)
#Set the pins to be outputs
GPIO.setup(19,GPIO.OUT)
GPIO.setup(21,GPIO.OUT)
GPIO.setup(23,GPIO.OUT)
GPIO.setup(24,GPIO.OUT)
while 1:
c = sys.stdin.read(1)
if c == "w":
ControlAPairOfPins("19","1","21","0")
ControlAPairOfPins("23","0","24","1")
print "Forward"
if c == "s":
ControlAPairOfPins("19","0","21","0")
ControlAPairOfPins("23","0","24","0")
print "Stop"
if c == "x":
ControlAPairOfPins("19","0","21","1")
ControlAPairOfPins("23","1","24","0")
print ("Back")
if c == "a":
ControlAPairOfPins("19","0","21","1")
ControlAPairOfPins("23","0","24","1")
print "Left"
if c == "d":
ControlAPairOfPins("19","1","21","0")
ControlAPairOfPins("23","1","24","0")
print "Right"
Alles anzeigen
Ich bin in Python nicht besonders gut, und bringe Grundkenntnisse des C# mit. Bis hierhin kein Problem, der Code funktioniert. Jedoch führt er die Befehle erst nach dem Drücken auf den Enterbutton aus, was ich recht schade finde (vor allem für den dynamischen Betrieb).
Jetzt zu meinen 2 Fragen an euch Experten:
1. ist es möglich nur mithilfe der Tasten die Befehle ausführen zu lassen? D.h. ohne die ENTER-Funktion?.
2. durch einen Webserver soll das ganze später per browser gesteuert werden. Ist es möglich die Befehle in das laufende Programm über den Webserver anzusteuern? So eine Funktion wäre mir für andere Projekte auch sehr wichtig bin aber beim Suchen nicht sonderlich fündig geworden.
Schon einmal im Vorraus bedanke ich mich für die Hilfe
Liebe Grüße
Neolinga