# ĐỊ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)