#region config đến #endregion config """ # NẠP CÁC ĐỐI TƯỢNG TỪ THƯ VIỆN # ================================ from vex import Motor, Ports from vex import DirectionType, DistanceUnits from drivetrain import Drivetrain # KHỞI TẠO CÁC BỘ PHẬN ROBOT # ========================== # khởi tạo các motor tương ứng với các cổng motor_left = Motor(Ports.PORT1, True) motor_right = Motor(Ports.PORT2) # khởi tạo bộ truyền động drive_train = Drivetrain(motor_left, motor_right, 200, 192, DistanceUnits.MM, 1) # CHƯƠNG TRÌNH CHÍNH # ========================== # di chuyển robot đến phía trước 120cm, tốc độ 50% drive_train.drive_for(DirectionType.FWD, 120, DistanceUnits.CM, 50) # di chuyển robot lui về phía sau 120cm, tốc độ 100% drive_train.drive_for(DirectionType.REV, 120, DistanceUnits.CM, 100)
# ĐỊ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()
# 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) # thoát khỏi vòng lặp while True # để dừng chương trình # sau khi về vị trí cũ break