Пример #1
0
def linksInslaan(kanaal=0, tijd=3.1):
    motor.rightmotorspeed(90)
    motor.leftmotorspeed(82)
    time.sleep(1)

    while adc.getAfstand(kanaal) <= 12:
        motor.stopMotor()
        time.sleep(1)

    time.sleep(tijd)
    motor.stopMotor()
    motor.turnLeftNinety()
    motor.stopMotor()

    while not zoeklijn():

        while adc.getAfstand(kanaal) <= 12:
            motor.stopMotor()
            time.sleep(1)

        motor.forward()
        time.sleep(1)
        motor.rightmotorspeed(93)
        motor.leftmotorspeed(60)
        time.sleep(0.2)
        motor.rightmotorspeed(80)
        motor.leftmotorspeed(90)
        time.sleep(0.2)
Пример #2
0
def rechtsInslaan(kanaal=0, tijd=1):
    motor.rightmotorspeed(90)
    motor.leftmotorspeed(82)
    time.sleep(2)

    while adc.getAfstand(kanaal) <= 12:
        motor.stopMotor()
        time.sleep(1)

    time.sleep(tijd)
    motor.stopMotor()
    motor.turnRightNinety()
    motor.stopMotor()

    while not zoeklijn():

        while adc.getAfstand(kanaal) <= 12:
            motor.stopMotor()
            time.sleep(1)

        motor.rightmotorspeed(93)
        motor.leftmotorspeed(30)
        time.sleep(0.2)
        motor.rightmotorspeed(75)
        motor.leftmotorspeed(90)
        time.sleep(0.2)
Пример #3
0
def oversteken(kanaal=0):
    print('vooruit over stopstreep')
    motor.rightmotorspeed(90)
    motor.leftmotorspeed(82)
    time.sleep(3)
    print('uit zoeklijn')

    while not zoeklijn():
        while adc.getAfstand(kanaal) <= 12:
            print('adc')
            print(adc.getAfstand(kanaal))
            motor.stopMotor()
            time.sleep(1)
        motor.rightmotorspeed(90)
        motor.leftmotorspeed(82)
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)
Пример #5
0
def oversteken(kanaal=0):
    while zoeklijn():
        motor.forward(30)

    while not zoeklijn():
        while adc.getAfstand(kanaal) <= 12:
            motor.stopMotor()
            time.sleep(1)
        motor.forward(30)
Пример #6
0
def linksInslaan(kanaal=0, tijd=3):
    while zoeklijn():
        motor.forward(30)

    motor.forward(30)

    while adc.getAfstand(kanaal) <= 12:
        motor.stopMotor()
        time.sleep(1)

    time.sleep(tijd)
    motor.stopMotor()
    motor.turnLeftNinety()
    motor.stopMotor()

    while not zoeklijn():

        while adc.getAfstand(kanaal) <= 12:
            motor.stopMotor()
            time.sleep(1)
        motor.forward(30)
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)
Пример #8
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.")