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()
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
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()
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)