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)
Example #3
0
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: