예제 #1
0
def do_left_sharp_turn():
    driver.stop()
    driver.reset()
    driver.lr(-SHARP_TURN, SHARP_TURN, TURNING_SPEED)
    driver.block()
    driver.reset()
    driver.lr(FORWARD_SPEED, FORWARD_SPEED, FORWARD_SPEED)
    driver.block()
예제 #2
0
def centralize_axis():
    driver.reset()
    driver.stop_action = 'hold'
    driver.lr(5, 5, 3)

    max_val, pos = 0, (0, 0)
    while driver.running():
        val = 100 - ls.value()
        if val > max_val:
            max_val = val
            pos = driver.position

    driver.lr(*pos, speed=3)
    driver.block()
예제 #3
0
def fine_centralize():
    driver.reset()
    driver.stop_action = 'hold'
    driver.lr(-circ / 6, circ / 6, FC_SPEED)

    pos, error = (0, 0), 100
    while driver.running():
        _, _, _, l, r, _, _, _ = lsa.values()
        new_error = abs(l - r)

        if new_error > error + 10:
            break

        if (l > T or r > T) and new_error < error:
            error = new_error
            pos = driver.position

    driver.lr(*pos, speed=FC_SPEED)

    return pos, error
예제 #4
0
def crossing():
    driver.stop()

    right = 0
    left = 0
    back = 0

    for i in range(10):
        detected_green = [i.is_green() for i in cs]
        if detected_green == [True, True]:
            back += 1
        elif detected_green == [True, False]:
            left += 1
        elif detected_green == [False, True]:
            right += 1

    print(left, back, right)

    line_sensor_value = lsa.values()

    if line_sensor_value[3] > THRESHOLD or line_sensor_value[4] > THRESHOLD:
        if left > 8:
            driver.lr(rs["color sensor y"], rs["color sensor y"],
                      FORWARD_SPEED)
            driver.lr(-SHARP_TURN, SHARP_TURN, TURNING_SPEED)
            driver.lr(FORWARD_DISTANCE, FORWARD_DISTANCE, FORWARD_SPEED)

        elif right > 8:
            driver.lr(rs["color sensor y"], rs["color sensor y"],
                      FORWARD_SPEED)
            driver.lr(SHARP_TURN, -SHARP_TURN, TURNING_SPEED)
            driver.lr(FORWARD_DISTANCE, FORWARD_DISTANCE, FORWARD_SPEED)

        elif back > 8:
            driver.lr(rs["color sensor y"], rs["color sensor y"],
                      FORWARD_SPEED)
            driver.lr(2 * SHARP_TURN, -2 * SHARP_TURN, TURNING_SPEED)

    if line_sensor_value[0] > THRESHOLD or line_sensor_value[
            1] > THRESHOLD or line_sensor_value[2] > THRESHOLD:
        if left > 8:
            driver.lr(rs["color sensor y"], rs["color sensor y"],
                      FORWARD_SPEED)
            driver.lr(-SHARP_TURN, SHARP_TURN, TURNING_SPEED)
            driver.lr(FORWARD_DISTANCE, FORWARD_DISTANCE, FORWARD_SPEED)

    elif line_sensor_value[7] > THRESHOLD or line_sensor_value[
            6] > THRESHOLD or line_sensor_value[5] > THRESHOLD:
        if right > 8:
            driver.lr(rs["color sensor y"], rs["color sensor y"],
                      FORWARD_SPEED)
            driver.lr(SHARP_TURN, -SHARP_TURN, TURNING_SPEED)
            driver.lr(FORWARD_DISTANCE, FORWARD_DISTANCE, FORWARD_SPEED)
예제 #5
0
def crossing():
    right = 0
    left = 0
    back = 0
    for i in range(10):
        detected_green = [i.is_green() for i in cs]
        if detected_green == [True, True]:
            back += 1
        elif detected_green == [True, False]:
            left += 1
        elif detected_green == [False, True]:
            right += 1
    print(left, right, back)
    if left > 8:
        driver.stop()
        driver.reset()
        driver.lr(rs["color sensor y"], rs["color sensor y"], FORWARD_SPEED)
        driver.block()
        driver.reset()
        driver.lr(-SHARP_TURN, SHARP_TURN, TURNING_SPEED)
        driver.block()
        driver.reset()
        driver.lr(0.5, 0.5, FORWARD_SPEED)
    elif right > 8:
        driver.stop()
        driver.reset()
        driver.lr(rs["color sensor y"], rs["color sensor y"], FORWARD_SPEED)
        driver.block()
        driver.reset()
        driver.lr(SHARP_TURN, -SHARP_TURN, TURNING_SPEED)
        driver.block()
        driver.reset()
        driver.lr(0.5, 0.5, FORWARD_SPEED)
    elif back > 8:
        driver.stop()
        driver.reset()
        driver.lr(rs["color sensor y"], rs["color sensor y"], FORWARD_SPEED)
        driver.stop()
        driver.reset()
        driver.lr(2 * SHARP_TURN, -2 * SHARP_TURN, TURNING_SPEED)