def volglijn(tijdsdatalijst): global last_error MINIMUM = CALIBRATEDMINIMUM #nog in te vullen MAXIMUM = CALIBRATEDMAXIMUM #nog in te vullen KP = 80 #nog in te vullen KD = 10 #nog in te vullen SETPOINTPOSITIE = 3500 # 3*1000*sensor3 + 4*1000*sensor4 /(sensor3 + sensor 4) LINKSBASISSPEED = 100 RECHTSBASISSPEED = 100 positie = readpositie(tijdsdatalijst, MINIMUM, MAXIMUM) #de gekalibreerde positiewaarde print("positie:", positie) error = (positie - SETPOINTPOSITIE) / 1000. print("error", error) #print last_error correctiespeedlinks = LINKSBASISSPEED + KP * error + KD * (error - last_error) correctiespeedrechts = RECHTSBASISSPEED - KP * error + KD * (error - last_error) if correctiespeedlinks > 100: correctiespeedlinks = 100 if correctiespeedrechts < 0: correctiespeedrechts = 0 if correctiespeedlinks < 0: correctiespeedlinks = 0 if correctiespeedrechts > 100: correctiespeedrechts = 100 leftmotorspeed(correctiespeedlinks) rightmotorspeed(correctiespeedrechts) last_error = error
def rechtsInslaan(kanaal=0, tijd=1): global override override = False print('rechts inslaan') rightmotorspeed(90) leftmotorspeed(82) time.sleep(2) time.sleep(tijd) stopMotor() turnRightNinety() stopMotor() while not zoeklijn() and override == False: ber5 = server.listen(timeout=0.250) ber5 = str(ber5) if ber5.find('start') >= 0: override = True break if adc.getAfstand(kanaal) <= 12: stopMotor() time.sleep(1) else: rightmotorspeed(93) leftmotorspeed(30) time.sleep(0.2) rightmotorspeed(75) leftmotorspeed(90) time.sleep(0.2)
def oversteken(kanaal=0): global override override = False print('vooruit over stopstreep') for i in range(6): rightmotorspeed(90) leftmotorspeed(80) time.sleep(1) ber3 = server.listen(timeout=0.250) ber3 = str(ber3) if ber3.find('start') >= 0: override = True break print('op kruispunt') while not zoeklijn() and override == False: ber4 = server.listen(timeout=0.250) ber4 = str(ber4) if ber4.find('start') >= 0: override = True break if adc.getAfstand(kanaal) <= 12: print('adc') print(adc.getAfstand(kanaal)) stopMotor() time.sleep(2) else: rightmotorspeed(95) leftmotorspeed(30) time.sleep(0.2) rightmotorspeed(75) leftmotorspeed(90) time.sleep(0.2)