Макро#

Введение#

Макросы VEX AIM на Python — это готовые блоки кода, которые можно перетащить в проект Python. Каждый макрос представляет собой группу команд Python, которые работают вместе, чтобы заставить робота выполнить более сложную задачу.

Это не отдельные методы, вызываемые из кода. Вместо этого каждый макрос вставляется как готовая последовательность кода, которую можно использовать как есть или редактировать после добавления в проект.

На этой странице для каждого блока кода Python показана фактическая последовательность кода, которая вставляется при использовании соответствующего макроса.

Ниже приведён список всех макросов:

Эмоции — Заставьте робота вести себя выразительно.

  • act happy — Заставляет робота действовать счастливо.

  • act sad — Заставляет робота вести себя грустно.

  • act silly — Заставляет робота вести себя глупо.

  • act angry — Заставляет робота действовать сердито.

  • act excited — Заставляет робота проявлять возбуждение.

Искусственный интеллект (спортивный мяч) — Поворачивается к спортивному мячу или подбирает его.

  • turn right until sports ball — Поворачивает направо, пока не будет обнаружен спортивный мяч.

  • turn left until sports ball — Поворачивает налево, пока не будет обнаружен спортивный мяч.

  • get sports ball — Перемещает робота для сбора спортивного мяча.

Искусственный интеллект (Оранжевая бочка) — Повернитесь к оранжевым бочкам или соберите их.

  • turn right until orange barrel — Поворачивает направо, пока не будет обнаружена оранжевая бочка.

  • turn left until orange barrel — Поворачивает налево, пока не будет обнаружена оранжевая бочка.

  • get orange barrel — Перемещает робота, чтобы забрать оранжевую бочку.

Искусственный интеллект (синяя бочка) — Повернитесь к синим бочкам или соберите их.

  • turn right until blue barrel — Поворачивает направо, пока не будет обнаружена синяя бочка.

  • turn left until blue barrel — Поворачивает налево, пока не будет обнаружена синяя бочка.

  • get blue barrel — Перемещает робота, чтобы забрать синюю бочку.

Система компьютерного зрения (робот AIM) — Поворот или движение в направлении других роботов AIM.

  • turn right until AIM robot — Поворачивает направо, пока не будет обнаружен другой робот AIM.

  • turn left until AIM robot — Поворачивает налево, пока не будет обнаружен другой робот AIM.

  • move to AIM robot — Двигается к другому роботу AIM.

AI Vision (AprilTag) — Повернитесь или двигайтесь в направлении AprilTags.

  • turn right until AprilTag — Поворачивает направо до тех пор, пока не будет обнаружен AprilTag.

  • turn left until AprilTag — Поворачивает налево до тех пор, пока не будет обнаружен AprilTag.

  • move to AprilTag — Перемещения к AprilTag.

Эмоции#

act happy#

Этот макрос заставляет робота вести себя радостно, показывая счастливые лица, воспроизводя радостный звук, меняя светодиоды и двигаясь взад-вперед. Используйте его, когда робот должен реагировать весело или позитивно.

Приведённый ниже код показывает последовательность кода Python, которая добавляется в ваш проект при перетаскивании этого макроса из панели инструментов. Вы можете использовать последовательность как есть или отредактировать её после добавления.

# 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#

Этот макрос заставляет робота выглядеть грустным, показывая грустные лица, воспроизводя грустный звук, плавно затухая светодиоды и медленно двигаясь в разных направлениях. Используйте его, когда робот должен демонстрировать разочарование или вялость.

Приведённый ниже код показывает последовательность кода Python, которая добавляется в ваш проект при перетаскивании этого макроса из панели инструментов. Вы можете использовать последовательность как есть или отредактировать её после добавления.

# 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#

Этот макрос заставляет робота вести себя глупо: вращаться, менять выражения лица и мигать светодиодами разных цветов. Используйте его, когда робот должен игриво или неожиданно отреагировать.

Приведённый ниже код показывает последовательность кода Python, которая добавляется в ваш проект при перетаскивании этого макроса из панели инструментов. Вы можете использовать последовательность как есть или отредактировать её после добавления.

# 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#

Этот макрос заставляет робота проявлять гнев, показывая сердитые выражения лица, воспроизводя гневный звук, включая светодиоды красным цветом и совершая резкие движения. Используйте его, когда робот должен продемонстрировать раздражение или предупреждение.

Приведённый ниже код показывает последовательность кода Python, которая добавляется в ваш проект при перетаскивании этого макроса из панели инструментов. Вы можете использовать последовательность как есть или отредактировать её после добавления.

# 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#

Этот макрос заставляет робота проявлять возбуждение, демонстрируя радостное выражение лица, воспроизводя радостный звук, быстро двигаясь из стороны в сторону и мигая оранжевыми светодиодами. Используйте его, когда робот должен праздновать или реагировать с большой энергией.

Приведённый ниже код показывает последовательность кода Python, которая добавляется в ваш проект при перетаскивании этого макроса из панели инструментов. Вы можете использовать последовательность как есть или отредактировать её после добавления.

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

AI Vision (Sports Ball)#

turn right until sports ball#

Этот макрос поворачивает робота вправо до тех пор, пока датчик AI Vision Sensor не обнаружит спортивный мяч, после чего робот поворачивается в сторону обнаруженного объекта. Используйте его, когда роботу необходимо найти спортивный мяч, прежде чем двигаться к нему или забрать его.

Примечание: Если робот испытывает трудности с обнаружением объектов, попробуйте снизить скорость поворота робота с помощью set_turn_velocity.

Приведённый ниже код показывает последовательность кода Python, которая добавляется в ваш проект при перетаскивании этого макроса из панели инструментов. Вы можете использовать последовательность как есть или отредактировать её после добавления.

# 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#

Этот макрос поворачивает робота влево до тех пор, пока датчик AI Vision Sensor не обнаружит спортивный мяч, после чего робот поворачивается в сторону обнаруженного объекта. Используйте его, когда роботу необходимо найти спортивный мяч, прежде чем двигаться к нему или забрать его.

Примечание: Если робот испытывает трудности с обнаружением объектов, попробуйте снизить скорость поворота робота с помощью set_turn_velocity.

Приведённый ниже код показывает последовательность кода Python, которая добавляется в ваш проект при перетаскивании этого макроса из панели инструментов. Вы можете использовать последовательность как есть или отредактировать её после добавления.

# 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#

Этот макрос перемещает робота к обнаруженному спортивному мячу до тех пор, пока робот его не подберет. Используйте его после того, как робот увидит спортивный мяч, или после использования макроса «повернуть до спортивного мяча», чтобы найти его.

Примечание: Если робот испытывает трудности с обнаружением объектов, попробуйте снизить скорость движения и поворота робота с помощью set_move_velocity и set_turn_velocity.

Приведённый ниже код показывает последовательность кода Python, которая добавляется в ваш проект при перетаскивании этого макроса из панели инструментов. Вы можете использовать последовательность как есть или отредактировать её после добавления.

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

AI Vision (Оранжевый бочонок)#

turn right until orange barrel#

Этот макрос поворачивает робота вправо до тех пор, пока датчик AI Vision Sensor не обнаружит оранжевую бочку, после чего робот поворачивается в сторону обнаруженного объекта. Используйте его, когда роботу необходимо найти оранжевую бочку, прежде чем двигаться к ней или забрать её.

Примечание: Если робот испытывает трудности с обнаружением объектов, попробуйте снизить скорость поворота робота с помощью set_turn_velocity.

Приведённый ниже код показывает последовательность кода Python, которая добавляется в ваш проект при перетаскивании этого макроса из панели инструментов. Вы можете использовать последовательность как есть или отредактировать её после добавления.

# 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#

Этот макрос поворачивает робота влево до тех пор, пока датчик AI Vision Sensor не обнаружит оранжевую бочку, после чего робот поворачивается к обнаруженному объекту. Используйте его, когда роботу необходимо найти оранжевую бочку, прежде чем двигаться к ней или забрать её.

Примечание: Если робот испытывает трудности с обнаружением объектов, попробуйте снизить скорость поворота робота с помощью set_turn_velocity.

Приведённый ниже код показывает последовательность кода Python, которая добавляется в ваш проект при перетаскивании этого макроса из панели инструментов. Вы можете использовать последовательность как есть или отредактировать её после добавления.

# 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#

Этот макрос перемещает робота к обнаруженной оранжевой бочке до тех пор, пока робот её не подберёт. Используйте его после того, как робот увидит оранжевую бочку, или после использования макроса «повернуть до оранжевой бочки», чтобы найти её.

Примечание: Если робот испытывает трудности с обнаружением объектов, попробуйте снизить скорость движения и поворота робота с помощью set_move_velocity и set_turn_velocity.

Приведённый ниже код показывает последовательность кода Python, которая добавляется в ваш проект при перетаскивании этого макроса из панели инструментов. Вы можете использовать последовательность как есть или отредактировать её после добавления.

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

AI Vision (Blue Barrel)#

turn right until blue barrel#

Этот макрос поворачивает робота вправо до тех пор, пока датчик AI Vision Sensor не обнаружит синюю бочку, после чего робот поворачивается в сторону обнаруженного объекта. Используйте его, когда роботу необходимо найти синюю бочку, прежде чем двигаться к ней или забрать её.

Примечание: Если робот испытывает трудности с обнаружением объектов, попробуйте снизить скорость поворота робота с помощью set_turn_velocity.

Приведённый ниже код показывает последовательность кода Python, которая добавляется в ваш проект при перетаскивании этого макроса из панели инструментов. Вы можете использовать последовательность как есть или отредактировать её после добавления.

# 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#

Этот макрос поворачивает робота влево до тех пор, пока датчик AI Vision Sensor не обнаружит синюю бочку, после чего робот поворачивается к обнаруженному объекту. Используйте его, когда роботу необходимо найти синюю бочку, прежде чем двигаться к ней или забрать её.

Примечание: Если робот испытывает трудности с обнаружением объектов, попробуйте снизить скорость поворота робота с помощью set_turn_velocity.

Приведённый ниже код показывает последовательность кода Python, которая добавляется в ваш проект при перетаскивании этого макроса из панели инструментов. Вы можете использовать последовательность как есть или отредактировать её после добавления.

# 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#

Этот макрос перемещает робота к обнаруженной синей бочке до тех пор, пока робот её не подберёт. Используйте его после того, как робот увидит синюю бочку, или после использования макроса «повернуть до синей бочки», чтобы найти её.

Примечание: Если робот испытывает трудности с обнаружением объектов, попробуйте снизить скорость движения и поворота робота с помощью set_move_velocity и set_turn_velocity.

Приведённый ниже код показывает последовательность кода Python, которая добавляется в ваш проект при перетаскивании этого макроса из панели инструментов. Вы можете использовать последовательность как есть или отредактировать её после добавления.

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

AI Vision (робот AIM)#

turn right until AIM robot#

Этот макрос поворачивает робота вправо до тех пор, пока датчик AI Vision Sensor не обнаружит другого кодирующего робота VEX AIM, после чего поворачивается в его сторону. Используйте его, когда роботу необходимо сначала найти другого робота, прежде чем двигаться к нему.

Примечание: Если робот испытывает трудности с обнаружением объектов, попробуйте снизить скорость поворота робота с помощью set_turn_velocity.

Приведённый ниже код показывает последовательность кода Python, которая добавляется в ваш проект при перетаскивании этого макроса из панели инструментов. Вы можете использовать последовательность как есть или отредактировать её после добавления.

# 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#

Этот макрос поворачивает робота влево до тех пор, пока датчик AI Vision Sensor не обнаружит другого робота VEX AIM Coding Robot, после чего поворачивается в его сторону. Используйте его, когда роботу необходимо сначала найти другого робота, прежде чем двигаться к нему.

Примечание: Если робот испытывает трудности с обнаружением объектов, попробуйте снизить скорость поворота робота с помощью set_turn_velocity.

Приведённый ниже код показывает последовательность кода Python, которая добавляется в ваш проект при перетаскивании этого макроса из панели инструментов. Вы можете использовать последовательность как есть или отредактировать её после добавления.

# 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#

Этот макрос перемещает робота к другому программируемому роботу VEX AIM до тех пор, пока тот не окажется достаточно близко, чтобы остановиться. Используйте его после того, как робот увидит другого робота, или после использования макроса «повернуться до робота AIM», чтобы найти его.

Примечание: Если робот испытывает трудности с обнаружением объектов, попробуйте снизить скорость движения и поворота робота с помощью set_move_velocity и set_turn_velocity.

Приведённый ниже код показывает последовательность кода Python, которая добавляется в ваш проект при перетаскивании этого макроса из панели инструментов. Вы можете использовать последовательность как есть или отредактировать её после добавления.

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

AI Vision (AprilTag)#

turn right until AprilTag#

Этот макрос поворачивает робота вправо до тех пор, пока датчик AI Vision Sensor не обнаружит AprilTag с ID 0, а затем поворачивает в сторону обнаруженного AprilTag. Используйте его, когда роботу нужно найти AprilTag, прежде чем двигаться к нему. Чтобы изменить, к какому AprilTag робот будет поворачиваться, замените 0 в TAG0 любым числом от 0 до 37 (AprilTags с 5 по 37 можно использовать с напечатанными AprilTag из AIM Printables.)

Примечание: Если робот испытывает трудности с обнаружением объектов, попробуйте снизить скорость поворота робота с помощью set_turn_velocity.

Приведённый ниже код показывает последовательность кода Python, которая добавляется в ваш проект при перетаскивании этого макроса из панели инструментов. Вы можете использовать последовательность как есть или отредактировать её после добавления.

# 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#

Этот макрос поворачивает робота влево до тех пор, пока датчик AI Vision Sensor не обнаружит AprilTag с ID 0, а затем поворачивает в сторону обнаруженного AprilTag. Используйте его, когда роботу нужно найти AprilTag, прежде чем двигаться к нему. Чтобы изменить, к какому AprilTag робот будет поворачиваться, замените 0 в TAG0 любым числом от 0 до 37 (AprilTags с 5 по 37 можно использовать с напечатанными AprilTag из AIM Printables.)

Примечание: Если робот испытывает трудности с обнаружением объектов, попробуйте снизить скорость поворота робота с помощью set_turn_velocity.

Приведённый ниже код показывает последовательность кода Python, которая добавляется в ваш проект при перетаскивании этого макроса из панели инструментов. Вы можете использовать последовательность как есть или отредактировать её после добавления.

# 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#

Этот макрос перемещает робота к AprilTag с ID 0, пока тот не окажется достаточно близко, чтобы остановиться. Используйте его после того, как робот увидит AprilTag, или после использования макроса «повернуться к AprilTag», чтобы найти его. Чтобы изменить, к какому AprilTag будет двигаться робот, замените 0 в TAG0 любым числом от 0 до 37 (AprilTags с 5 по 37 можно использовать с распечатанными AprilTag из AIM Printables.)

Примечание: Если робот испытывает трудности с обнаружением объектов, попробуйте снизить скорость движения и поворота робота с помощью set_move_velocity и set_turn_velocity.

Приведённый ниже код показывает последовательность кода Python, которая добавляется в ваш проект при перетаскивании этого макроса из панели инструментов. Вы можете использовать последовательность как есть или отредактировать её после добавления.

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