def linksInslaan(kanaal=0, tijd=3.1): print('rechts inslaan') global override override = False rightmotorspeed(90) leftmotorspeed(82) time.sleep(1) if adc.getAfstand(kanaal) <= 12: stopMotor() time.sleep(2) rightmotorspeed(90) leftmotorspeed(82) time.sleep(tijd) stopMotor() turnLeftNinety() 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: forward() time.sleep(1) rightmotorspeed(93) leftmotorspeed(60) time.sleep(0.2) rightmotorspeed(80) leftmotorspeed(90) time.sleep(0.2)
from PWM_algoritme import leftmotorspeed from PWM_algoritme import rightmotorspeed from PWM_algoritme import forward from PWM_algoritme import backwards from PWM_algoritme import stopMotor from PWM_algoritme import motorcleanup from PWM_algoritme import motorinitialisatie from runfile_Lijnsensor_pycharm import lijndataTabel forward(30) data = lijndataTabel() CALIBRATEDMINIMUM = data CALIBRATEDMAXIMUM = data for k in range(100): data = lijndataTabel() for i in range(len(data)): if data[i] < CALIBRATEDMINIMUM[i] and data[i] != 0: CALIBRATEDMINIMUM[i] = data[i] if data[i] > CALIBRATEDMAXIMUM: CALIBRATEDMAXIMUM[i] = data[i] time.sleep(0.05) stopMotor() print("minimum:") print(CALIBRATEDMINIMUM) print() print("maximum:") print(CALIBRATEDMAXIMUM)
def main(): # override is en blijft False totdat er een bericht 'start' binnenkomt uit de manuele override override = False kruispuntnr = 1 einde = False # True waarde nog te implementeren GPIO.setmode(GPIO.BOARD) # SPI-object maken voor afstandssensor CE = 0 # Eerste kanaal op ADC selecteren spi = spidev.SpiDev(0, CE) spi.max_speed_hz = 1000000 kanaal = 0 # Eerste analoge signaal # Kleurensensor initialiseren kleurensensor = Adafruit_TCS34725.TCS34725() # Server initialiseren server = Server() last_error = 0 # Nodig voor de eerst keer volglijn uit te voeren while not einde: bericht = server.listen(timeout=0.250) print(bericht) mesg = str(bericht) if mesg.find('start') >= 0: kruispunt_reserve = kruispuntnr override = True # Manuele override while override: msg = str(server.listen(timeout=0.2)) print(msg) if msg.find('vooruit') >= 0: forward() server.send('Vooruit.') elif msg.find('achteruit') >= 0: backwards() server.send('Achteruit.') elif msg.find('links') >= 0: turnLeft() server.send('Links.') elif msg.find('rechts') >= 0: turnRight() server.send('Rechts.') elif msg.find('stop') >= 0: kruispunt_manueel = 0 print(msg[-3]) print(msg[-2]) try: cijfer = int(msg[-3]) kruispunt_manueel += cijfer * 10 except: pass try: cijfer = int(msg[-2]) kruispunt_manueel += cijfer except: pass if kruispunt_manueel != 0: kruispuntnr = kruispunt_manueel else: kruispuntnr = kruispunt_reserve finaalBericht = str(kruispuntnr) server.send('Kruispunt = ' + finaalBericht) override = False else: server.send(str(kruispuntnr)) stopMotor() # Volg de lijn 20 keer for i in range(9): #print("lijnvolg") returnwaarde = lijninterpretatie() if returnwaarde == "stopstreep": print("kruispunt") stopMotor() time.sleep(0.5) print(kruispuntnr) kruispunt(kruispuntnr) kruispuntnr += 1 server.send(str(kruispuntnr)) if kruispuntnr >= 26: einde = True break last_error = 0 # Herinitialisatie van lijnvolgalgoritme else: volglijn(returnwaarde) # Na 20 maal lijn te volgen, check de sensoren if adc.getAfstand(kanaal) < 15: print("afstandssensor") stopMotor() while adc.getAfstand(kanaal) < 20: print('nog steeds') pass raise Exception("Fout in de code.")
GPIO.setmode(GPIO.BOARD) server = Server() override = False while True: bericht = server.listen(timeout=0.250) print(bericht) mesg = str(bericht) if mesg.find('start') >= 0: override = True # Manuele override while override: msg = str(server.listen(timeout=0.2)) print(msg) if msg.find('vooruit') >= 0: forward() server.send('Vooruit.') elif msg.find('achteruit') >= 0: backwards() server.send('Achteruit.') elif msg.find('links') >= 0: turnLeft() server.send('Links.') elif msg.find('rechts') >= 0: turnRight() server.send('Rechts.') elif msg.find('stop') >= 0: