from RPi import GPIO as GPIO
import time
GPIO.setmode(GPIO.BCM)
GPIO.setwarnings(False)
linksFwd = 8
linksRev = 7
rechtsFwd = 10
rechtsRev = 9
REVS = 10
GPIO.setup(linksFwd, GPIO.OUT)
GPIO.setup(linksRev, GPIO.OUT)
GPIO.setup(rechtsFwd, GPIO.OUT)
GPIO.setup(rechtsRev, GPIO.OUT)
lf = GPIO.PWM(linksFwd, REVS)
rf = GPIO.PWM(rechtsFwd, REVS)
rb = GPIO.PWM(rechtsRev, REVS)
lb = GPIO.PWM(linksRev, REVS)
lf.start(0)
rf.start(0)
rb.start(0)
lb.start(0)
'''
Duty cycle korter -> langzamger
'''
def init():
GPIO.output(linksFwd, 0)
GPIO.output(linksRev, 0)
GPIO.output(rechtsFwd, 0)
GPIO.output(rechtsRev, 0)
def forward(dutyCycle):
lf.ChangeDutyCycle(dutyCycle)
rf.ChangeDutyCycle(dutyCycle)
def backward(dutyCycle):
lb.ChangeDutyCycle(dutyCycle)
rb.ChangeDutyCycle(dutyCycle)
def leftF(dutyCycle):
lf.ChangeDutyCycle(dutyCycle)
def rightF(dutyCycle):
rf.ChangeDutyCycle(dutyCycle)
def leftB(dutyCycle):
lb.ChangeDutyCycle(dutyCycle)# Importeren van de GPIO module
from RPi import GPIO as GPIO
import time
# Instellen van de modus op 'board'
GPIO.setmode(GPIO.BCM)
GPIO.setwarnings(False)
# Zet variabelen voor de pinnen
linksFwd = 8
linksRev = 7
rechtsFwd = 10
rechtsRev = 9
# Zet een variabele voor de Frequency van de PWM
REVS = 10
# Maak de juiste GPIO pinnen gereed
GPIO.setup(linksFwd, GPIO.OUT)
GPIO.setup(linksRev, GPIO.OUT)
GPIO.setup(rechtsFwd, GPIO.OUT)
GPIO.setup(rechtsRev, GPIO.OUT)
# Maak objecten van de GPIO PWM functies
lf = GPIO.PWM(linksFwd, REVS)
rf = GPIO.PWM(rechtsFwd, REVS)
rb = GPIO.PWM(rechtsRev, REVS)
lb = GPIO.PWM(linksRev, REVS)
# Start alle PWM cyclussen maar zet deze op 0
# dit omdat het starten en stoppen via 'ChangeDutyCycle'
# problemen oplevert
lf.start(0)
rf.start(0)
rb.start(0)
lb.start(0)
'''
Duty cycle korter -> langzamger
'''
# De init functie. Dit maakt alle
# pinnen leeg
def init():
GPIO.output(linksFwd, 0)
GPIO.output(linksRev, 0)
GPIO.output(rechtsFwd, 0)
GPIO.output(rechtsRev, 0)
# Stuurt de pinnen voor vooruit aan met een
# PWM duty-cycle die wordt meegegeven
def forward(dutyCycle):
lf.ChangeDutyCycle(dutyCycle)
rf.ChangeDutyCycle(dutyCycle)
# Stuurt de pinnen voor achteruit aan met
# een PWM duty-cycle die wordt meegeven
def backward(dutyCycle):
lb.ChangeDutyCycle(dutyCycle)
rb.ChangeDutyCycle(dutyCycle)
# Stuurt de pinnen voor linksvooruit aan met
# een PWM duty-cycle die wordt meegeven
def leftF(dutyCycle):
lf.ChangeDutyCycle(dutyCycle)
# Stuurt de pinnen voor rechtsvooruit aan met
# een PWM duty-cycle die wordt meegeven
def rightF(dutyCycle):
rf.ChangeDutyCycle(dutyCycle)
# Stuurt de pinnen voor linksachteruit aan met
# een PWM duty-cycle die wordt meegeven
def leftB(dutyCycle):
lb.ChangeDutyCycle(dutyCycle)
# Stuurt de pinnen voor rechtsachteruit aan met
# een PWM duty-cycle die wordt meegeven
def rightB(dutyCycle):
rb.ChangeDutyCycle(dutyCycle)
# Zet alle dutycycles op 0
def halt():
lf.ChangeDutyCycle(0)
rf.ChangeDutyCycle(0)
lb.ChangeDutyCycle(0)
rb.ChangeDutyCycle(0)
init()
# Zodra de file wordt aangeroepen wordt de init
# init functie aangeroepen
init()
def rightB(dutyCycle):
rb.ChangeDutyCycle(dutyCycle)
def halt():
lf.ChangeDutyCycle(0)
rf.ChangeDutyCycle(0)
lb.ChangeDutyCycle(0)
rb.ChangeDutyCycle(0)
init()
init()