Beispiel #1
0
def move_forward():
    #Moving forward code
    #test.turnOn()
    #forward_message = "Moving Forward..."
    drive.moveForward()
    #return render_template('articles.html', message=forward_message)
    return ('', 204)
    def checkObject(self):
        self.closeToObject = False
        self.positionSet = False
        self.ScanValues[1] = 0
        self.ScanValues[0] = 0
        self.ScanValues[2] = 0
        self.rightScanArray = []
        self.leftScanArray = []

        uValue = self.getUltrasonic()

        p = -1
        error = (uValue - 15) * p
        if (uValue > 200):
            BP.set_motor_power(BP.PORT_A, -20)
            BP.set_motor_power(BP.PORT_D, -20)
        elif (self.direction == 0):
            BP.set_motor_power(BP.PORT_A, -speed - (error * 0.8))
            BP.set_motor_power(BP.PORT_D, -speed + (error * 0.8))
        else:
            BP.set_motor_power(BP.PORT_A, -speed + (error * 0.8))
            BP.set_motor_power(BP.PORT_D, -speed - (error * 0.8))
        print(uValue)

        if (uValue > 70 and uValue < 200):
            self.switcher = 2
            self.h.returnCentre()
            drive.moveForward()
def passingTime():
    before = time.time()
    uValueC = 60
    while(round(time.time() - before,1) <= 2.1):
        if(uValueC <= 3 or uValueC == 255):
            break
        try:
            uValueC = BP.get_sensor(BP.PORT_2)               
        except brickpi3.SensorError as error:
            print(error)
        drive.moveForward()
Beispiel #4
0
def flagRelease():
    drive.moveBackward()
    time.sleep(1)
    drive.stop()
    drive.turnLeft90()
    drive.turnLeft90()
    drive.moveBackward()
    time.sleep(1.5)
    drive.stop()
    release()
    drive.moveForward()
    time.sleep(1)
    drive.stop()
    grab()
def main():
    while True:
        try:
            uValueC = BP.get_sensor(BP.PORT_2)               
        except brickpi3.SensorError as error:
            print(error)
        if(uValueC == 0):
            drive.stop()
        else:
            if(uValueC <= 5):
                drive.turnLeft90()
                checkObject()
            else:
                drive.moveForward()
    time.sleep(0.02)
def avoidance():
    uValueC = 70
    try:
        uValueC = BP.get_sensor(BP.PORT_2)
    except brickpi3.SensorError as error:
        print(error)
    if (uValueC == 0):
        drive.stop()
        return False
    else:
        if (uValueC <= 5):
            drive.turnLeft90()
            return True
        else:
            drive.moveForward()
            return False
Beispiel #7
0
    def checkObject(self):

        uValue = self.getUltrasonic()

        p = -1
        error = (uValue - 10) * p
        if (self.direction == 0):
            BP.set_motor_power(BP.PORT_A, -speed - (error * 0.8))
            BP.set_motor_power(BP.PORT_D, -speed + (error * 0.8))
        else:
            BP.set_motor_power(BP.PORT_A, -speed + (error * 0.8))
            BP.set_motor_power(BP.PORT_D, -speed - (error * 0.8))
        print(uValue)

        if (uValue > 40):
            self.switcher = 2
            self.h.returnCenter()
            drive.moveForward()
Beispiel #8
0
    def avoidance(self):
        uValue = 70
        uValue = self.getUltrasonic()
        if (uValue == 0):
            drive.stop()
        else:
            if (uValue <= 3):
                self.direction = random.randint(0, 1)
                if (self.direction == 0):
                    drive.turnLeft45()
                    drive.pivotTurn45(30, 10)
                    self.h.turnRight()
                    time.sleep(1)
                else:
                    drive.turnRight45()
                    drive.pivotTurn45(10, 30)
                    self.h.turnLeft()
                    time.sleep(1)

                self.switcher = 1
            else:
                drive.moveForward()
def passingTime():
    before = time.time()
    uValueC = 60
    while (round(time.time() - before, 1) <= 2.1):
        colourValue = 0
        try:
            BP.set_sensor_type(BP.PORT_3, BP.SENSOR_TYPE.EV3_COLOR_COLOR)
            colourValue = BP.get_sensor(BP.PORT_3)
        except brickpi3.SensorError as error:
            print(error)

        if (uValueC <= 3 or uValueC == 255 or colour[colourValue] == "Red"):
            break
        try:
            uValueC = BP.get_sensor(BP.PORT_2)
        except brickpi3.SensorError as error:
            print(error)
        drive.moveForward()

    BP.set_motor_power(BP.PORT_A, 0)
    BP.set_motor_power(BP.PORT_D, 0)
    drive.turnRight90()
    def avoidance(self):
        uValue = 70
        uValue = self.getUltrasonic()
        print("Avoidance:" + str(uValue))
        if (uValue <= 10):
            self.closeToObject = True
        if (uValue == 0):
            drive.stop()
        else:
            if (self.closeToObject == True):
                if (self.ScanValues[2] == 0):
                    self.h.returnCentre()
                    drive.stop()
                    time.sleep(1)
                    self.ScanValues[2] = self.getUltrasonic()
                    print("Centre Scan Value:" + str(uValue))
                if (self.i <= 9 and self.ScanValues[1] == 0):
                    if (self.i == 0):
                        scanV = self.h.scan(0)
                    else:
                        scanV = 3
                    if (scanV == 2):
                        self.leftScanArray.append(self.getUltrasonic())
                    elif (scanV == 3):
                        if (self.ScanValues[0] == 0):
                            self.ScanValues[0] = self.getLowest(
                                self.leftScanArray)
                            print("Left Scan Value:" + str(self.ScanValues[0]))

                        self.rightScanArray.insert(self.i,
                                                   self.getUltrasonic())
                        self.i += 1
                        print("i = " + str(self.i))
                        # print("Right Scan Value:" + str(self.getUltrasonic()))
                elif (self.ScanValues[1] == 0):
                    self.ScanValues[1] = self.getLowest(self.rightScanArray)
                    print("Right Scan Value:" + str(self.ScanValues[1]))
                    self.i = 0

                elif (self.positionSet == False):
                    if (self.ScanValues[1] > 60):
                        self.h.turnLeft(0.7)
                        self.direction = 1
                        self.headAngle = 1
                    elif (self.ScanValues[0] > 60):
                        self.h.turnRight(0.7)
                        self.direction = 0
                        self.headAngle = 2
                    else:
                        self.h.returnCentre()
                        self.direction = random.randint(0, 1)
                        self.headAngle = 0
                    self.positionSet = True
                else:
                    if (uValue < 5):
                        if (self.headAngle == 0):
                            if (self.direction == 0):
                                drive.turnLeft90()
                                self.h.turnRight(1)
                            else:
                                drive.turnRight90()
                                self.h.turnLeft(1)
                        elif (self.headAngle == 1):
                            drive.turnRight45()
                            self.h.returnCentre()
                            self.h.turnLeft(1)
                        else:
                            drive.turnLeft45()
                            self.h.returnCentre()
                            self.h.turnRight(1)
                        self.switcher = 1
                    else:
                        drive.moveForward()
            else:
                drive.moveForward()
                self.h.scan(1)