Macro#

Giới thiệu#

Các macro Python của VEX AIM là các khối mã được xây dựng sẵn có thể được kéo vào dự án Python. Mỗi macro là một nhóm các lệnh Python hoạt động cùng nhau để giúp robot hoàn thành một hành vi lớn hơn.

Đây không phải là các phương thức riêng lẻ được gọi từ mã. Thay vào đó, mỗi macro được chèn vào như một chuỗi mã hoàn chỉnh có thể được sử dụng nguyên trạng hoặc chỉnh sửa sau khi được thêm vào dự án.

Trên trang này, mỗi khối mã Python hiển thị chuỗi mã thực tế được chèn vào khi macro đó được sử dụng.

Dưới đây là danh sách tất cả các macro:

Cảm xúc — Giúp robot thể hiện cảm xúc một cách sinh động.

  • act happy — Khiến robot hành động vui vẻ.

  • act sad — Khiến robot hành động buồn.

  • act silly — Khiến robot hành động ngớ ngẩn.

  • act angry — Khiến robot hành động tức giận.

  • act excited — Khiến robot hành động hào hứng.

AI Vision (Bóng thể thao) — Xoay hướng về phía hoặc thu thập các quả bóng thể thao.

Tầm nhìn AI (Thùng màu cam) — Xoay người về phía hoặc thu thập các thùng màu cam.

Tầm nhìn AI (Thùng màu xanh) — Xoay người về phía hoặc thu thập các thùng màu xanh.

Hệ thống thị giác AI (Robot AIM) — Xoay người hoặc di chuyển về phía các Robot AIM khác.

AI Vision (AprilTag) — Quay mặt về phía hoặc di chuyển về phía AprilTag.

Cảm xúc#

act happy#

Macro này giúp robot thể hiện sự vui vẻ bằng cách hiển thị khuôn mặt tươi cười, phát ra âm thanh vui vẻ, thay đổi đèn LED và di chuyển qua lại. Hãy sử dụng macro này khi robot cần phản hồi một cách vui vẻ hoặc tích cực.

Đoạn mã bên dưới hiển thị chuỗi Python được thêm vào dự án của bạn khi bạn kéo macro này từ Hộp công cụ. Bạn có thể sử dụng chuỗi này nguyên trạng hoặc chỉnh sửa nó sau khi thêm vào.

# act happy
robot.screen.show_emoji(HAPPY)
wait(.5,SECONDS)
robot.sound.play(ACT_HAPPY)
wait(115, MSEC)

robot.screen.show_emoji(HAPPY, LOOK_RIGHT)
robot.led.on(ALL_LEDS, YELLOW)
robot.turn_for(RIGHT, 4, 100)
robot.led.on(ALL_LEDS, WHITE)
robot.screen.show_emoji(HAPPY, LOOK_LEFT)
robot.turn_for(RIGHT, -8, 100)
robot.led.on(ALL_LEDS, YELLOW)
robot.screen.show_emoji(HAPPY, LOOK_RIGHT)
robot.turn_for(RIGHT, 4, 100)

wait(100,MSEC)
for i in range(3):
    robot.screen.show_emoji(QUIET)
    robot.led.on(ALL_LEDS, WHITE)
    robot.move_for(1,-90)
    robot.screen.show_emoji(HAPPY)
    robot.led.on(ALL_LEDS, YELLOW)
    robot.move_for(1,90)

robot.stop_all_movement()
robot.led.off(ALL_LEDS)
wait(.5,SECONDS)

act sad#

Macro này làm cho robot thể hiện sự buồn bã bằng cách hiển thị khuôn mặt buồn, phát ra âm thanh buồn, làm mờ đèn LED và di chuyển chậm theo các hướng khác nhau. Sử dụng macro này khi robot cần thể hiện phản ứng thất vọng hoặc thiếu năng lượng.

Đoạn mã bên dưới hiển thị chuỗi Python được thêm vào dự án của bạn khi bạn kéo macro này từ Hộp công cụ. Bạn có thể sử dụng chuỗi này nguyên trạng hoặc chỉnh sửa nó sau khi thêm vào.

# act sad
robot.screen.show_emoji(SAD)
wait(.5,SECONDS)
robot.sound.play(ACT_SAD)
wait(115, MSEC)

robot.led.on(ALL_LEDS, Color(0, 0, 250))
robot.screen.show_emoji(SAD, LOOK_RIGHT)
robot.move_for(11, 135, 70)
robot.led.on(ALL_LEDS, Color(0, 0, 100))
robot.screen.show_emoji(SAD, LOOK_FORWARD)
robot.move_for(11, 315, 70)
robot.led.on(ALL_LEDS, Color(0, 0, 50))
robot.screen.show_emoji(SAD, LOOK_LEFT)
robot.move_for(11, 225, 70)
robot.led.on(ALL_LEDS, Color(0, 0, 10))
robot.screen.show_emoji(SAD, LOOK_FORWARD)
robot.move_for(11, 45, 70)
wait(.5,SECONDS)
robot.led.off(ALL_LEDS)

act silly#

Macro này khiến robot hành động ngớ ngẩn bằng cách xoay tròn, thay đổi khuôn mặt và nhấp nháy các màu đèn LED khác nhau. Hãy sử dụng nó khi bạn muốn robot có phản ứng vui nhộn hoặc bất ngờ.

Đoạn mã bên dưới hiển thị chuỗi Python được thêm vào dự án của bạn khi bạn kéo macro này từ Hộp công cụ. Bạn có thể sử dụng chuỗi này nguyên trạng hoặc chỉnh sửa nó sau khi thêm vào.

# act silly
robot.screen.show_emoji(SILLY)
wait(.5,SECONDS)
robot.sound.play(ACT_SILLY)
wait(115,MSEC)

robot.turn_for(RIGHT, 360, 100, wait=False)
face_list = [SILLY, HAPPY, EXCITED, PROUD, THRILLED, LAUGHING]
colors = [BLUE, CYAN, GREEN, ORANGE, PURPLE, RED, WHITE, YELLOW]

while robot.is_turn_active():
    robot.screen.show_emoji(SILLY)
    robot.led.on(ALL_LEDS, random.choice(colors))
    wait(110,MSEC)
    robot.screen.show_emoji(random.choice(face_list))
    wait(110,MSEC)

robot.screen.show_emoji(SILLY)
robot.led.off(ALL_LEDS)
wait(.5,SECONDS)

act angry#

Macro này khiến robot thể hiện sự tức giận bằng cách hiển thị khuôn mặt giận dữ, phát ra âm thanh giận dữ, bật đèn LED màu đỏ và di chuyển đột ngột. Hãy sử dụng nó khi robot cần thể hiện phản ứng bực bội hoặc cảnh báo.

Đoạn mã bên dưới hiển thị chuỗi Python được thêm vào dự án của bạn khi bạn kéo macro này từ Hộp công cụ. Bạn có thể sử dụng chuỗi này nguyên trạng hoặc chỉnh sửa nó sau khi thêm vào.

# act angry
robot.screen.show_emoji(ANGRY)
wait(.5,SECONDS)
robot.sound.play(ACT_ANGRY)
wait(115,MSEC)

robot.led.on(ALL_LEDS, RED)
robot.move_for(25, 0, 50)
wait(50,MSEC)

for i in range(5):
    robot.screen.show_emoji(ANNOYED)
    robot.move_for(5, 180, 50)
    robot.screen.show_emoji(ANGRY)
    wait(50,MSEC)

wait(.5,SECONDS)
robot.led.off(ALL_LEDS)

act excited#

Macro này khiến robot thể hiện sự phấn khích bằng cách hiển thị khuôn mặt vui vẻ, phát ra âm thanh phấn khích, di chuyển nhanh sang hai bên và nhấp nháy đèn LED màu cam. Sử dụng macro này khi robot cần ăn mừng hoặc phản ứng với năng lượng cao.

Đoạn mã bên dưới hiển thị chuỗi Python được thêm vào dự án của bạn khi bạn kéo macro này từ Hộp công cụ. Bạn có thể sử dụng chuỗi này nguyên trạng hoặc chỉnh sửa nó sau khi thêm vào.

# act excited
robot.screen.show_emoji(EXCITED)
wait(.5,SECONDS)
robot.sound.play(ACT_EXCITED)
wait(115, MSEC)

for angle in [3,-3,2,-2,2,-2,2,-2,1,-1]:
    if angle > 0:
        robot.screen.show_emoji(EXCITED, LOOK_RIGHT)
        robot.led.on(LED4, ORANGE)
        robot.led.on(LED5, ORANGE)
        robot.led.on(LED6, ORANGE)
        robot.led.off(LED1)
    else:
        robot.screen.show_emoji(EXCITED, LOOK_LEFT)
        robot.led.on(LED1, ORANGE)
        robot.led.on(LED2, ORANGE)
        robot.led.on(LED3, ORANGE)
        robot.led.off(LED6)
    robot.turn_for(RIGHT, angle)
    robot.led.off(ALL_LEDS)

robot.screen.show_emoji(EXCITED, LOOK_FORWARD)
wait(.5,SECONDS)

Thị giác AI (Bóng thể thao)#

turn right until sports ball#

Macro này sẽ xoay robot sang phải cho đến khi cảm biến thị giác AI phát hiện ra một quả bóng thể thao, sau đó xoay về phía vật thể đã phát hiện. Sử dụng macro này khi robot cần tìm kiếm một quả bóng thể thao trước khi di chuyển về phía nó hoặc thu thập nó.

Lưu ý: Nếu robot gặp khó khăn trong việc phát hiện vật thể, hãy thử giảm vận tốc quay của robot bằng set_turn_velocity.

Đoạn mã bên dưới hiển thị chuỗi Python được thêm vào dự án của bạn khi bạn kéo macro này từ Hộp công cụ. Bạn có thể sử dụng chuỗi này nguyên trạng hoặc chỉnh sửa nó sau khi thêm vào.

# Turn right until sports ball is detected
robot.turn(RIGHT)
while True:
    vision_data = robot.vision.get_data(SPORTS_BALL)

    if vision_data[0].exists:
        # Turn to the object by adding your current heading and the vision bearing offset
        robot.turn_to(robot.inertial.get_heading() + vision_data[0].bearing)
        break
    wait(20, MSEC)

turn left until sports ball#

Macro này sẽ xoay robot sang trái cho đến khi cảm biến thị giác AI phát hiện ra một quả bóng thể thao, sau đó xoay về phía vật thể đã phát hiện. Sử dụng macro này khi robot cần tìm kiếm một quả bóng thể thao trước khi di chuyển về phía nó hoặc thu thập nó.

Lưu ý: Nếu robot gặp khó khăn trong việc phát hiện vật thể, hãy thử giảm vận tốc quay của robot bằng set_turn_velocity.

Đoạn mã bên dưới hiển thị chuỗi Python được thêm vào dự án của bạn khi bạn kéo macro này từ Hộp công cụ. Bạn có thể sử dụng chuỗi này nguyên trạng hoặc chỉnh sửa nó sau khi thêm vào.

# Turn left until sports ball is detected
robot.turn(LEFT)
while True:
    vision_data = robot.vision.get_data(SPORTS_BALL)

    if vision_data[0].exists:
        # Turn to the object by adding your current heading and the vision bearing offset
        robot.turn_to(robot.inertial.get_heading() + vision_data[0].bearing)
        break
    wait(20, MSEC)

get sports ball#

Macro này di chuyển robot về phía quả bóng thể thao đã được phát hiện cho đến khi robot thu thập được nó. Sử dụng macro này sau khi robot có thể nhìn thấy quả bóng thể thao, hoặc sau khi sử dụng macro “quay cho đến khi tìm thấy bóng thể thao” để tìm một quả bóng.

Lưu ý: Nếu robot gặp khó khăn trong việc phát hiện vật thể, hãy thử giảm vận tốc di chuyển và quay của robot bằng set_move_velocity và set_turn_velocity.

Đoạn mã bên dưới hiển thị chuỗi Python được thêm vào dự án của bạn khi bạn kéo macro này từ Hộp công cụ. Bạn có thể sử dụng chuỗi này nguyên trạng hoặc chỉnh sửa nó sau khi thêm vào.

# Get sports ball
while True:
    vision_data = robot.vision.get_data(SPORTS_BALL)

    if vision_data[0].exists:
        if robot.has_sports_ball():
            robot.stop_all_movement()
            break
        else:
            robot.move_at(vision_data[0].bearing)
    else:
        robot.move_at(0)
    wait(20, MSEC)

Tầm nhìn AI (Thùng màu cam)#

turn right until orange barrel#

Macro này sẽ điều khiển robot xoay sang phải cho đến khi cảm biến thị giác AI phát hiện một thùng màu cam, sau đó xoay về phía vật thể đã phát hiện. Hãy sử dụng macro này khi robot cần tìm kiếm một thùng màu cam trước khi di chuyển về phía nó hoặc thu thập nó.

Lưu ý: Nếu robot gặp khó khăn trong việc phát hiện vật thể, hãy thử giảm vận tốc quay của robot bằng set_turn_velocity.

Đoạn mã bên dưới hiển thị chuỗi Python được thêm vào dự án của bạn khi bạn kéo macro này từ Hộp công cụ. Bạn có thể sử dụng chuỗi này nguyên trạng hoặc chỉnh sửa nó sau khi thêm vào.

# Turn right until orange barrel is detected
robot.turn(RIGHT)
while True:
    vision_data = robot.vision.get_data(ORANGE_BARREL)

    if vision_data[0].exists:
        # Turn to the object by adding your current heading and the vision bearing offset
        robot.turn_to(robot.inertial.get_heading() + vision_data[0].bearing)
        break
    wait(20, MSEC)

turn left until orange barrel#

Macro này sẽ điều khiển robot xoay sang trái cho đến khi cảm biến thị giác AI phát hiện một thùng màu cam, sau đó xoay về phía vật thể đã phát hiện. Hãy sử dụng macro này khi robot cần tìm kiếm một thùng màu cam trước khi di chuyển về phía nó hoặc thu thập nó.

Lưu ý: Nếu robot gặp khó khăn trong việc phát hiện vật thể, hãy thử giảm vận tốc quay của robot bằng set_turn_velocity.

Đoạn mã bên dưới hiển thị chuỗi Python được thêm vào dự án của bạn khi bạn kéo macro này từ Hộp công cụ. Bạn có thể sử dụng chuỗi này nguyên trạng hoặc chỉnh sửa nó sau khi thêm vào.

# Turn left until orange barrel is detected
robot.turn(LEFT)
while True:
    vision_data = robot.vision.get_data(ORANGE_BARREL)

    if vision_data[0].exists:
        # Turn to the object by adding your current heading and the vision bearing offset
        robot.turn_to(robot.inertial.get_heading() + vision_data[0].bearing)
        break
    wait(20, MSEC)

get orange barrel#

Macro này di chuyển robot về phía thùng màu cam đã được phát hiện cho đến khi robot thu thập được nó. Sử dụng macro này sau khi robot có thể nhìn thấy thùng màu cam, hoặc sau khi sử dụng macro xoay cho đến khi tìm thấy thùng màu cam để tìm một thùng.

Lưu ý: Nếu robot gặp khó khăn trong việc phát hiện vật thể, hãy thử giảm vận tốc di chuyển và quay của robot bằng set_move_velocity và set_turn_velocity.

Đoạn mã bên dưới hiển thị chuỗi Python được thêm vào dự án của bạn khi bạn kéo macro này từ Hộp công cụ. Bạn có thể sử dụng chuỗi này nguyên trạng hoặc chỉnh sửa nó sau khi thêm vào.

# Get orange barrel
while True:
    vision_data = robot.vision.get_data(ORANGE_BARREL)

    if vision_data[0].exists:
        if robot.has_orange_barrel():
            robot.stop_all_movement()
            break
        else:
            robot.move_at(vision_data[0].bearing)
    else:
        robot.move_at(0)
    wait(20, MSEC)

Tầm nhìn AI (Thùng màu xanh)#

turn right until blue barrel#

Macro này sẽ điều khiển robot xoay sang phải cho đến khi cảm biến thị giác AI phát hiện ra một thùng màu xanh lam, sau đó xoay về phía vật thể đã phát hiện. Hãy sử dụng macro này khi robot cần tìm kiếm một thùng màu xanh lam trước khi di chuyển về phía nó hoặc thu thập nó.

Lưu ý: Nếu robot gặp khó khăn trong việc phát hiện vật thể, hãy thử giảm vận tốc quay của robot bằng set_turn_velocity.

Đoạn mã bên dưới hiển thị chuỗi Python được thêm vào dự án của bạn khi bạn kéo macro này từ Hộp công cụ. Bạn có thể sử dụng chuỗi này nguyên trạng hoặc chỉnh sửa nó sau khi thêm vào.

# Turn right until blue barrel is detected
robot.turn(RIGHT)
while True:
    vision_data = robot.vision.get_data(BLUE_BARREL)

    if vision_data[0].exists:
        # Turn to the object by adding your current heading and the vision bearing offset
        robot.turn_to(robot.inertial.get_heading() + vision_data[0].bearing)
        break
    wait(20, MSEC)

turn left until blue barrel#

Macro này sẽ điều khiển robot xoay sang trái cho đến khi cảm biến thị giác AI phát hiện ra một thùng màu xanh lam, sau đó xoay về phía vật thể đã phát hiện. Hãy sử dụng macro này khi robot cần tìm kiếm một thùng màu xanh lam trước khi di chuyển về phía nó hoặc thu thập nó.

Lưu ý: Nếu robot gặp khó khăn trong việc phát hiện vật thể, hãy thử giảm vận tốc quay của robot bằng set_turn_velocity.

Đoạn mã bên dưới hiển thị chuỗi Python được thêm vào dự án của bạn khi bạn kéo macro này từ Hộp công cụ. Bạn có thể sử dụng chuỗi này nguyên trạng hoặc chỉnh sửa nó sau khi thêm vào.

# Turn left until blue barrel is detected
robot.turn(LEFT)
while True:
    vision_data = robot.vision.get_data(BLUE_BARREL)

    if vision_data[0].exists:
        # Turn to the object by adding your current heading and the vision bearing offset
        robot.turn_to(robot.inertial.get_heading() + vision_data[0].bearing)
        break
    wait(20, MSEC)

get blue barrel#

Macro này di chuyển robot về phía thùng màu xanh lam đã được phát hiện cho đến khi robot thu thập được nó. Sử dụng macro này sau khi robot có thể nhìn thấy thùng màu xanh lam, hoặc sau khi sử dụng macro xoay cho đến khi tìm thấy thùng màu xanh lam để tìm một thùng.

Lưu ý: Nếu robot gặp khó khăn trong việc phát hiện vật thể, hãy thử giảm vận tốc di chuyển và quay của robot bằng set_move_velocity và set_turn_velocity.

Đoạn mã bên dưới hiển thị chuỗi Python được thêm vào dự án của bạn khi bạn kéo macro này từ Hộp công cụ. Bạn có thể sử dụng chuỗi này nguyên trạng hoặc chỉnh sửa nó sau khi thêm vào.

# Get blue barrel
while True:
    vision_data = robot.vision.get_data(BLUE_BARREL)

    if vision_data[0].exists:
        if robot.has_blue_barrel():
            robot.stop_all_movement()
            break
        else:
            robot.move_at(vision_data[0].bearing)
    else:
        robot.move_at(0)
    wait(20, MSEC)

Thị giác AI (Robot AIM)#

turn right until AIM robot#

Macro này sẽ xoay robot sang phải cho đến khi Cảm biến Thị giác AI phát hiện ra một Robot Lập trình VEX AIM khác, sau đó sẽ xoay về phía robot đó. Hãy sử dụng macro này khi robot cần tìm kiếm một robot khác trước khi di chuyển về phía nó.

Lưu ý: Nếu robot gặp khó khăn trong việc phát hiện vật thể, hãy thử giảm vận tốc quay của robot bằng set_turn_velocity.

Đoạn mã bên dưới hiển thị chuỗi Python được thêm vào dự án của bạn khi bạn kéo macro này từ Hộp công cụ. Bạn có thể sử dụng chuỗi này nguyên trạng hoặc chỉnh sửa nó sau khi thêm vào.

# Turn right until AIM robot is detected
robot.turn(RIGHT)
while True:
    vision_data = robot.vision.get_data(AIM_ROBOT)

    if vision_data[0].exists:
        # Turn to the object by adding your current heading and the vision bearing offset
        robot.turn_to(robot.inertial.get_heading() + vision_data[0].bearing)
        break
    wait(20, MSEC)

turn left until AIM robot#

Macro này sẽ xoay robot sang trái cho đến khi Cảm biến Thị giác AI phát hiện ra một Robot Lập trình VEX AIM khác, sau đó sẽ xoay về phía robot đó. Sử dụng macro này khi robot cần tìm kiếm một robot khác trước khi di chuyển về phía nó.

Lưu ý: Nếu robot gặp khó khăn trong việc phát hiện vật thể, hãy thử giảm vận tốc quay của robot bằng set_turn_velocity.

Đoạn mã bên dưới hiển thị chuỗi Python được thêm vào dự án của bạn khi bạn kéo macro này từ Hộp công cụ. Bạn có thể sử dụng chuỗi này nguyên trạng hoặc chỉnh sửa nó sau khi thêm vào.

# Turn left until AIM robot is detected
robot.turn(LEFT)
while True:
    vision_data = robot.vision.get_data(AIM_ROBOT)

    if vision_data[0].exists:
        # Turn to the object by adding your current heading and the vision bearing offset
        robot.turn_to(robot.inertial.get_heading() + vision_data[0].bearing)
        break
    wait(20, MSEC)

move to AIM robot#

Macro này di chuyển robot về phía một robot VEX AIM Coding Robot khác cho đến khi đủ gần để dừng lại. Sử dụng macro này sau khi robot có thể nhìn thấy một robot khác, hoặc sau khi sử dụng macro “quay cho đến khi gặp robot AIM” để tìm thấy một robot.

Lưu ý: Nếu robot gặp khó khăn trong việc phát hiện vật thể, hãy thử giảm vận tốc di chuyển và quay của robot bằng set_move_velocity và set_turn_velocity.

Đoạn mã bên dưới hiển thị chuỗi Python được thêm vào dự án của bạn khi bạn kéo macro này từ Hộp công cụ. Bạn có thể sử dụng chuỗi này nguyên trạng hoặc chỉnh sửa nó sau khi thêm vào.

# Move to AIM robot
while True:
    vision_data = robot.vision.get_data(AIM_ROBOT)

    if vision_data[0].exists:
        if vision_data[0].width >= 140:
            robot.stop_all_movement()
            break
        else:
            robot.move_at(vision_data[0].bearing)
    else:
        robot.move_at(0)
    wait(20, MSEC)

Thị giác AI (AprilTag)#

turn right until AprilTag#

Macro này xoay robot sang phải cho đến khi Cảm biến Thị giác AI phát hiện ID AprilTag 0, sau đó xoay về phía AprilTag đã phát hiện. Sử dụng nó khi robot cần tìm kiếm AprilTag trước khi di chuyển về phía nó. Để thay đổi AprilTag mà robot sẽ xoay cho đến khi, hãy thay thế 0 trong TAG0 bằng bất kỳ số nào từ 0 đến 37 (AprilTags từ 5 đến 37 có thể được sử dụng với AprilTags được in từ AIM Printables.)

Lưu ý: Nếu robot gặp khó khăn trong việc phát hiện vật thể, hãy thử giảm vận tốc quay của robot bằng set_turn_velocity.

Đoạn mã bên dưới hiển thị chuỗi Python được thêm vào dự án của bạn khi bạn kéo macro này từ Hộp công cụ. Bạn có thể sử dụng chuỗi này nguyên trạng hoặc chỉnh sửa nó sau khi thêm vào.

# Turn right until AprilTag ID 0 is detected
robot.turn(RIGHT)
while True:
    vision_data = robot.vision.get_data(TAG0)

    if vision_data[0].exists:
        # Turn to the object by adding your current heading and the vision bearing offset
        robot.turn_to(robot.inertial.get_heading() + vision_data[0].bearing)
        break
    wait(20, MSEC)

turn left until AprilTag#

Macro này xoay robot sang trái cho đến khi Cảm biến Thị giác AI phát hiện ID AprilTag 0, sau đó xoay về phía AprilTag đã phát hiện. Sử dụng nó khi robot cần tìm kiếm AprilTag trước khi di chuyển về phía nó. Để thay đổi AprilTag mà robot sẽ xoay cho đến khi, hãy thay thế 0 trong TAG0 bằng bất kỳ số nào từ 0 đến 37 (AprilTags từ 5 đến 37 có thể được sử dụng với AprilTags được in từ AIM Printables.)

Lưu ý: Nếu robot gặp khó khăn trong việc phát hiện vật thể, hãy thử giảm vận tốc quay của robot bằng set_turn_velocity.

Đoạn mã bên dưới hiển thị chuỗi Python được thêm vào dự án của bạn khi bạn kéo macro này từ Hộp công cụ. Bạn có thể sử dụng chuỗi này nguyên trạng hoặc chỉnh sửa nó sau khi thêm vào.

# Turn left until AprilTag ID 0 is detected
robot.turn(LEFT)
while True:
    vision_data = robot.vision.get_data(TAG0)

    if vision_data[0].exists:
        # Turn to the object by adding your current heading and the vision bearing offset
        robot.turn_to(robot.inertial.get_heading() + vision_data[0].bearing)
        break
    wait(20, MSEC)

move to AprilTag#

Macro này di chuyển robot về phía AprilTag ID 0 cho đến khi đủ gần để dừng lại. Sử dụng macro này sau khi robot có thể nhìn thấy AprilTag, hoặc sau khi sử dụng macro quay cho đến khi tìm thấy AprilTag để tìm một AprilTag. Để thay đổi AprilTag mà robot sẽ di chuyển đến, hãy thay thế 0 trong TAG0 bằng bất kỳ số nào từ 0 đến 37 (AprilTags từ 5 đến 37 có thể được sử dụng với AprilTags được in từ AIM Printables.)

Lưu ý: Nếu robot gặp khó khăn trong việc phát hiện vật thể, hãy thử giảm vận tốc di chuyển và quay của robot bằng set_move_velocity và set_turn_velocity.

Đoạn mã bên dưới hiển thị chuỗi Python được thêm vào dự án của bạn khi bạn kéo macro này từ Hộp công cụ. Bạn có thể sử dụng chuỗi này nguyên trạng hoặc chỉnh sửa nó sau khi thêm vào.

# Move to AprilTag ID 0
while True:
    vision_data = robot.vision.get_data(TAG0)

    if vision_data[0].exists:
        if vision_data[0].width >= 60:
            robot.stop_all_movement()
            break
        else:
            robot.move_at(vision_data[0].bearing)
    else:
        robot.move_at(0)
    wait(20, MSEC)