Пример #1
0

# ĐỊNH NGHĨA CÁC HÀM
# ==================
def flash_led(color, duration_in_seconds):
    touch_led.on_hue(color)
    sys.sleep(duration_in_seconds)


def dance():
    for _ in range(2):
        flash_led(ColorHue.YELLOW, 0.3)
        flash_led(ColorHue.RED, 0.3)


# CHƯƠNG TRÌNH CHÍNH
# ==================
# Luôn thực hiện cho đến khi bấm kết thúc chương trình
while True:
    # Robot di chuyển về phía trước
    drivetrain.drive(DirectionType.FWD)

    # Khi cảm biến va chạm được nhấn
    if bumper_front.pressing():
        # đi lùi 20 cm
        drivetrain.drive_for(REVERSE, 20, DistanceUnits.CM)
        # Robot rẽ trái 60 độ
        drivetrain.turn_for(LEFT, 120)
        # nhảy múa
        dance()
distance_front = Sonar(Ports.PORT7)

# ĐỊNH NGHĨA HẰNG SỐ, THAM SỐ
# ===========================
drivetrain.set_drive_velocity(100)

# Dòng này gây lỗi, bạn có biết nguyên nhân là gì không?
# distance_start = distance_front.distance(DistanceUnits=DistanceUnits.CM)
distance_start = distance_front.distance(DistanceUnits.CM)
print('Ban dau, robot cach tuong so CM la:', distance_start)

# CHƯƠNG TRÌNH CHÍNH
# ==================
while True:
    # Robot di chuyển về phía trước
    drivetrain.drive(FORWARD)

    # Khoảng cách distance cảm biến khoảng cách
    # đọc được cách vật đối diện
    distance_value = distance_front.distance(DistanceUnits.CM)
    print('Robot cach tuong so CM la:', distance_value)

    # Nếu khoảng cách nhỏ hơn hoặc bằng 20 CM thì:
    if distance_value <= 20:
        # Xác định khoảng cách cần lùi
        reverse_value = distance_start - distance_value
        print('Robot can di lui so CM la:', reverse_value)

        # Robot đi lùi
        drivetrain.drive_for(REVERSE, reverse_value, DistanceUnits.CM)