Code:
import RPi.GPIO as GPIO
import time
import signal
from pizypwm import *
def endProcess(signalnum = None, handler = None):
first.stop()
second.stop()
third.stop()
fourth.stop()
GPIO.cleanup()
exit(0)
signal.signal(signal.SIGTERM, endProcess)
signal.signal(signal.SIGINT, endProcess)
first = PiZyPwm(19048, 19, GPIO.BOARD)
second = PiZyPwm(19048, 21, GPIO.BOARD)
third = PiZyPwm(19048, 23, GPIO.BOARD)
fourth = PiZyPwm(19048, 24, GPIO.BOARD)
first.start(50)
second.start(50)
third.start(50)
fourth.start(50)
def ControlAPairOfPins(FirstPin,FirstState,SecondPin,SecondState):
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)
return
GPIO.setwarnings(False)
GPIO.setmode(GPIO.BOARD)
GPIO.setup(19,GPIO.OUT)
GPIO.setup(21,GPIO.OUT)
GPIO.setup(23,GPIO.OUT)
GPIO.setup(24,GPIO.OUT)
while True:
ControlAPairOfPins("19","1","21","0")
ControlAPairOfPins("23","1","24","0")
print "Drehung nach rechts"
time.sleep(1)
ControlAPairOfPins("19","0","21","0")
ControlAPairOfPins("23","0","24","0")
print "Stop"
time.sleep(1)
ControlAPairOfPins("19","0","21","1")
ControlAPairOfPins("23","0","24","1")
print "Drehung nach Links"
time.sleep(1)
ControlAPairOfPins("19","0","21","0")
ControlAPairOfPins("23","0","24","0")
print "Stop"
time.sleep(1)
ControlAPairOfPins("19","1","21","0")
ControlAPairOfPins("23","0","24","1")
print "Geradeaus vorwaerts"
time.sleep(1)
ControlAPairOfPins("19","0","21","0")
ControlAPairOfPins("23","0","24","0")
print "Stop"
time.sleep(1)
ControlAPairOfPins("19","0","21","1")
ControlAPairOfPins("23","1","24","0")
print "Geradeaus rueckwaerts"
time.sleep(1)
ControlAPairOfPins("19","0","21","0")
ControlAPairOfPins("23","0","24","0")
print "Stop"
time.sleep(1)
Das Programm läuft zwar ab, der Bot zittert aber wie wild.
Lesezeichen