import voor tijdfuncties.from time import sleepdef Rijden(): global

import RPi.GPIO as GPIO# Importeer de time biblotheek voor tijdfuncties.from time import sleepdef Rijden(): global WielPinnen global LinkerWiel global RechterWiel global CheckLinks global CheckRechts global VooruitAchteruitLinks global VooruitAchteruitRechts global StapTeller global StapAantal for WielPinnen in range(0, 4): LinkerPin = LinkerWielWielPinnen RechterPin = RechterWielWielPinnen if WielRechtdoorStapTellerWielPinnen != 0 and CheckLinks == 1 and VooruitAchteruitLinks == 0: GPIO.output(LinkerPin, True) else: GPIO.output(LinkerPin, False) if WielAchteruitStapTellerWielPinnen != 0 and CheckLinks == 1 and VooruitAchteruitLinks == 1: GPIO.output(LinkerPin, True) elif VooruitAchteruitLinks == 1: GPIO.output(LinkerPin, False) if WielRechtdoorStapTellerWielPinnen != 0 and CheckRechts == 1 and VooruitAchteruitRechts == 0: GPIO.output(RechterPin, True) else: GPIO.output(RechterPin, False) if WielAchteruitStapTellerWielPinnen != 0 and CheckRechts == 1 and VooruitAchteruitRechts == 1: GPIO.output(RechterPin, True) elif VooruitAchteruitRechts == 1: GPIO.output(RechterPin, False) StapTeller += 1 # Als we aan het einde van de stappenvolgorde zijn beland start dan opnieuw if (StapTeller == StapAantal): StapTeller = 0 if (StapTeller < 0): StapTeller = StapAantal # Wacht voor de volgende stap (lager = snellere draaisnelheid) sleep(.001)def Keuzenlijst(): global CheckLinks global CheckRechts global VooruitAchteruitLinks global VooruitAchteruitRechts global Midden_Vorige_Status global Links_Vorige_Status global Rechts_Vorige_Status global DrieStatus Midden_Huidige_Status = GPIO.input(Midden) Links_Huidige_Status = GPIO.input(Links) Rechts_Huidige_Status = GPIO.input(Rechts) if (Midden_Huidige_Status != Midden_Vorige_Status): if (Midden_Huidige_Status == 1): event = "MiddenWit" CheckLinks = 1 CheckRechts = 1 VooruitAchteruitLinks = 0 VooruitAchteruitRechts = 0 print event else: event = "MiddenZwart" CheckLinks = 1 CheckRechts = 1 VooruitAchteruitLinks = 0 VooruitAchteruitRechts = 0 print event Midden_Vorige_Status = Midden_Huidige_Status if (Links_Huidige_Status != Links_Vorige_Status): if (Links_Huidige_Status == 1): event = "LinkWit" CheckLinks = 1 CheckRechts = 1 VooruitAchteruitRechts = 1 print event else: event = "LinksZwart" CheckLinks = 1 CheckRechts = 1 VooruitAchteruitRechts = 1 VooruitAchteruitLinks = 0 print event Links_Vorige_Status = Links_Huidige_Status if (Rechts_Huidige_Status != Rechts_Vorige_Status): if (Rechts_Huidige_Status == 1): event = "RechtsWit" CheckLinks = 1 CheckRechts = 1 VooruitAchteruitLinks = 1 print event else: event = "RechtsZwart" CheckLinks = 1 CheckRechts = 1 VooruitAchteruitLinks = 1 VooruitAchteruitRechts = 0 print event Rechts_Vorige_Status = Rechts_Huidige_Status if (Midden_Huidige_Status == 0 and Links_Huidige_Status == 0 and Rechts_Huidige_Status == 0 and DrieStatus == 1): print "einde" CheckLinks = 0 CheckRechts = 0 if (Midden_Huidige_Status == 0 and Links_Huidige_Status == 0 and Rechts_Huidige_Status == 0 and DrieStatus == 0): print "Kruising" DrieStatus = 0 CheckLinks = 1 CheckRechts = 1 VooruitAchteruitLinks = 1 VooruitAchteruitRechts = 0 import time timeout = time.time() + 1.5 # 5 minutes from now while True: Rijden() print "kaas" test = 0 if test == 5 or time.time() > timeout: break test = test – 1 VooruitAchteruitRechts = 0 VooruitAchteruitLinks = 0 CheckLinks = 1 CheckRechts = 1 timeout = time.time() + 1 while True: Rijden() print “kaas” test = 0 if test == 5 or time.time() > timeout: break test = test – 1 # Midden_Huidige_Status = Midden_Vorige_Status # Links_Huidige_Status = Links_Vorige_Status # Rechts_Huidige_Status = Rechts_Vorige_Status DrieStatus = 1# Zet de pinmode op Broadcom SOC.GPIO.setmode(GPIO.BCM)# Zet waarschuwingen uit.GPIO.setwarnings(False)# Stel de GPIO pinnen in voor de stappenmotor:LinkerWiel = 2, 3, 4, 17RechterWiel = 27, 22, 10, 9Midden = 15GPIO.setup(Midden, GPIO.IN, pull_up_down=GPIO.PUD_UP)Links = 14GPIO.setup(Links, GPIO.IN, pull_up_down=GPIO.PUD_UP)Rechts = 18GPIO.setup(Rechts, GPIO.IN, pull_up_down=GPIO.PUD_UP)Button = 26GPIO.setup(Button, GPIO.IN, pull_up_down=GPIO.PUD_UP)# Definieer variabelen.StapTeller = 0# Definieer geadvanceerde volgorde (volgens de datasheet)StapAantal = 8WielRechtdoor = WielRechtdoor = range(0, StapAantal)WielRechtdoor0 = 1, 0, 0, 0WielRechtdoor1 = 1, 1, 0, 0WielRechtdoor2 = 0, 1, 0, 0WielRechtdoor3 = 0, 1, 1, 0WielRechtdoor4 = 0, 0, 1, 0WielRechtdoor5 = 0, 0, 1, 1WielRechtdoor6 = 0, 0, 0, 1WielRechtdoor7 = 1, 0, 0, 1WielAchteruit = WielAchteruit = range(0, StapAantal)WielAchteruit7 = 1, 0, 0, 0WielAchteruit6 = 1, 1, 0, 0WielAchteruit5 = 0, 1, 0, 0WielAchteruit4 = 0, 1, 1, 0WielAchteruit3 = 0, 0, 1, 0WielAchteruit2 = 0, 0, 1, 1WielAchteruit1 = 0, 0, 0, 1WielAchteruit0 = 1, 0, 0, 1Midden_Vorige_Status = 1Links_Vorige_Status = 1Rechts_Vorige_Status = 1CheckLinks = 1CheckRechts = 1# Set alle pinnen als uitgang.for WielPinnen in LinkerWiel: print “Setup pins Linkerwiel” GPIO.setup(WielPinnen, GPIO.OUT) GPIO.output(WielPinnen, False)for WielRechtsPin in RechterWiel: print “Setup pins Rechterwiel” GPIO.setup(WielRechtsPin, GPIO.OUT) GPIO.output(WielRechtsPin, False)VooruitAchteruitLinks = 0VooruitAchteruitRechts = 0DrieStatus = 0CheckButton = 0try: while True: ButtonStatus = GPIO.input(Button) if (ButtonStatus == 0): CheckButton = 1 if (CheckButton == 1): Keuzenlijst() Rijden()except KeyboardInterrupt: # GPIO netjes afsluiten GPIO.cleanup()

x

Hi!
I'm Harold!

Would you like to get a custom essay? How about receiving a customized one?

Check it out