Makro#
Wstęp#
Makra VEX AIM Python to predefiniowane bloki kodu, które można przeciągać do projektu Python. Każde makro to grupa poleceń Pythona, które współdziałają, aby umożliwić robotowi wykonanie większej czynności.
Nie są to pojedyncze metody wywoływane z kodu. Zamiast tego, każde makro jest wstawiane jako gotowa sekwencja kodu, której można używać w obecnej postaci lub edytować po dodaniu do projektu.
Na tej stronie każdy blok kodu Pythona pokazuje faktyczną sekwencję kodu, która jest wstawiana po użyciu danego makra.
Poniżej znajduje się lista wszystkich makr:
Emocje — spraw, by robot zachowywał się ekspresyjnie.
act happy— Sprawia, że robot zachowuje się szczęśliwie.act sad— Sprawia, że robot zachowuje się smutno.act silly— Sprawia, że robot zachowuje się głupio.act angry— Sprawia, że robot zachowuje się źle.act excited— Sprawia, że robot zachowuje się, jakby był podekscytowany.
AI Vision (Piłka sportowa) — Obróć się w stronę piłek sportowych lub je zbierz.
turn right until sports ball— Skręca w prawo, aż wykryje piłkę sportową.turn left until sports ball— Skręca w lewo, aż wykryje piłkę sportową.get sports ball— Przesuwa robota w celu zebrania piłki sportowej.
Wizja AI (pomarańczowa beczka) — zwróć się w stronę pomarańczowych beczek lub je zbierz.
turn right until orange barrel— Skręca w prawo, aż do wykrycia pomarańczowej beczki.turn left until orange barrel— Skręca w lewo, aż do wykrycia pomarańczowej beczki.get orange barrel— Przesuwa robota w celu zebrania pomarańczowej beczki.
Wizja AI (niebieska beczka) — zwróć się w stronę niebieskich beczek lub je zbierz.
turn right until blue barrel— Skręca w prawo, aż do wykrycia niebieskiej beczki.turn left until blue barrel— Skręca w lewo, aż do wykrycia niebieskiej beczki.get blue barrel— Przesuwa robota tak, aby zebrał niebieską beczkę.
AI Vision (robot AIM) — zwróć się lub poruszaj się w kierunku innych robotów AIM.
turn right until AIM robot— Skręca w prawo, aż do wykrycia innego robota AIM.turn left until AIM robot— Skręca w lewo, aż do wykrycia innego robota AIM.move to AIM robot— Ruch w kierunku innego robota AIM.
AI Vision (AprilTag) — Obróć się w stronę AprilTags lub poruszaj się w jej kierunku.
turn right until AprilTag— Skręca w prawo aż do wykrycia AprilTag.turn left until AprilTag— Skręca w lewo aż do wykrycia AprilTag.move to AprilTag— Przesuwa się w kierunku AprilTag.
Emocje#
act happy#
To makro sprawia, że robot zachowuje się radośnie, pokazując radosne miny, odtwarzając radosne dźwięki, zmieniając diody LED i poruszając się w przód i w tył. Użyj go, gdy robot powinien zareagować w radosny lub pozytywny sposób.
Poniższy kod pokazuje sekwencję Pythona dodawaną do projektu po przeciągnięciu tej makry z Przybornika. Możesz użyć tej sekwencji w obecnej postaci lub edytować ją po dodaniu.
# 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#
To makro sprawia, że robot zachowuje się smutno, pokazując smutne miny, odtwarzając smutny dźwięk, przyciemniając diody LED i poruszając się powoli w różnych kierunkach. Użyj go, gdy robot powinien okazać rozczarowanie lub niską energię.
Poniższy kod pokazuje sekwencję Pythona dodawaną do projektu po przeciągnięciu tej makry z Przybornika. Możesz użyć tej sekwencji w obecnej postaci lub edytować ją po dodaniu.
# 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#
To makro sprawia, że robot zachowuje się zabawnie, obracając się, zmieniając twarze i migając diodami LED w różnych kolorach. Użyj go, gdy robot ma wykonać zabawną lub zaskakującą reakcję.
Poniższy kod pokazuje sekwencję Pythona dodawaną do projektu po przeciągnięciu tej makry z Przybornika. Możesz użyć tej sekwencji w obecnej postaci lub edytować ją po dodaniu.
# 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#
To makro sprawia, że robot zachowuje się gniewnie, pokazując gniewne miny, odtwarzając gniewny dźwięk, zmieniając diody LED na czerwone i poruszając się gwałtownie. Użyj go, gdy robot powinien zareagować frustracją lub ostrzeżeniem.
Poniższy kod pokazuje sekwencję Pythona dodawaną do projektu po przeciągnięciu tej makry z Przybornika. Możesz użyć tej sekwencji w obecnej postaci lub edytować ją po dodaniu.
# 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#
To makro sprawia, że robot zachowuje się podekscytowany, pokazując podekscytowaną twarz, odtwarzając dźwięk, poruszając się szybko na boki i migając pomarańczowymi diodami LED. Użyj go, gdy robot powinien świętować lub zareagować z dużą energią.
Poniższy kod pokazuje sekwencję Pythona dodawaną do projektu po przeciągnięciu tej makry z Przybornika. Możesz użyć tej sekwencji w obecnej postaci lub edytować ją po dodaniu.
# 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 (piłka sportowa)#
turn right until sports ball#
Ta makroinstrukcja obraca robota w prawo, aż czujnik wizyjny AI wykryje piłkę sportową, a następnie obraca się w kierunku wykrytego obiektu. Użyj jej, gdy robot musi poszukać piłki sportowej, zanim podejdzie do niej lub ją podniesie.
Uwaga: Jeśli robot ma trudności z wykrywaniem obiektów, spróbuj zmniejszyć prędkość obrotową robota za pomocą set_turn_velocity.
Poniższy kod pokazuje sekwencję Pythona dodawaną do projektu po przeciągnięciu tej makry z Przybornika. Możesz użyć tej sekwencji w obecnej postaci lub edytować ją po dodaniu.
# 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#
Ta makroinstrukcja obraca robota w lewo, aż czujnik wizyjny AI wykryje piłkę sportową, a następnie obraca się w kierunku wykrytego obiektu. Użyj jej, gdy robot musi poszukać piłki sportowej, zanim podejdzie do niej lub ją podniesie.
Uwaga: Jeśli robot ma trudności z wykrywaniem obiektów, spróbuj zmniejszyć prędkość obrotową robota za pomocą set_turn_velocity.
Poniższy kod pokazuje sekwencję Pythona dodawaną do projektu po przeciągnięciu tej makry z Przybornika. Możesz użyć tej sekwencji w obecnej postaci lub edytować ją po dodaniu.
# 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#
To makro przesuwa robota w kierunku wykrytej piłki sportowej, aż ją zbierze. Użyj go, gdy robot wykryje piłkę sportową lub po użyciu makra „obróć, aż piłka sportowa” w celu jej znalezienia.
Uwaga: Jeśli robot ma trudności z wykrywaniem obiektów, spróbuj zmniejszyć prędkość ruchu i obrotu robota za pomocą set_move_velocity i set_turn_velocity.
Poniższy kod pokazuje sekwencję Pythona dodawaną do projektu po przeciągnięciu tej makry z Przybornika. Możesz użyć tej sekwencji w obecnej postaci lub edytować ją po dodaniu.
# 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)
Wizja AI (Pomarańczowa beczka)#
turn right until orange barrel#
Ta makroinstrukcja obraca robota w prawo, aż czujnik wizyjny AI wykryje pomarańczową beczkę, a następnie obraca się w kierunku wykrytego obiektu. Użyj jej, gdy robot musi poszukać pomarańczowej beczki, zanim ruszy w jej kierunku lub ją zbierze.
Uwaga: Jeśli robot ma trudności z wykrywaniem obiektów, spróbuj zmniejszyć prędkość obrotową robota za pomocą set_turn_velocity.
Poniższy kod pokazuje sekwencję Pythona dodawaną do projektu po przeciągnięciu tej makry z Przybornika. Możesz użyć tej sekwencji w obecnej postaci lub edytować ją po dodaniu.
# 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#
Ta makroinstrukcja obraca robota w lewo, aż czujnik wizyjny AI wykryje pomarańczową beczkę, a następnie obraca się w kierunku wykrytego obiektu. Użyj jej, gdy robot musi poszukać pomarańczowej beczki, zanim się do niej zbliży lub ją zbierze.
Uwaga: Jeśli robot ma trudności z wykrywaniem obiektów, spróbuj zmniejszyć prędkość obrotową robota za pomocą set_turn_velocity.
Poniższy kod pokazuje sekwencję Pythona dodawaną do projektu po przeciągnięciu tej makry z Przybornika. Możesz użyć tej sekwencji w obecnej postaci lub edytować ją po dodaniu.
# 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#
Ta makronowa makra przesuwa robota w kierunku wykrytej pomarańczowej beczki, aż ją zbierze. Użyj jej, gdy robot zobaczy pomarańczową beczkę lub po użyciu makra „obróć, aż znajdzie pomarańczową beczkę”, aby ją znaleźć.
Uwaga: Jeśli robot ma trudności z wykrywaniem obiektów, spróbuj zmniejszyć prędkość ruchu i obrotu robota za pomocą set_move_velocity i set_turn_velocity.
Poniższy kod pokazuje sekwencję Pythona dodawaną do projektu po przeciągnięciu tej makry z Przybornika. Możesz użyć tej sekwencji w obecnej postaci lub edytować ją po dodaniu.
# 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)
Wizja AI (Blue Barrel)#
turn right until blue barrel#
Ta makroinstrukcja obraca robota w prawo, aż czujnik wizyjny AI wykryje niebieską beczkę, a następnie obraca się w kierunku wykrytego obiektu. Użyj jej, gdy robot musi poszukać niebieskiej beczki, zanim ruszy w jej kierunku lub ją zbierze.
Uwaga: Jeśli robot ma trudności z wykrywaniem obiektów, spróbuj zmniejszyć prędkość obrotową robota za pomocą set_turn_velocity.
Poniższy kod pokazuje sekwencję Pythona dodawaną do projektu po przeciągnięciu tej makry z Przybornika. Możesz użyć tej sekwencji w obecnej postaci lub edytować ją po dodaniu.
# 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#
Ta makroinstrukcja obraca robota w lewo, aż czujnik wizyjny AI wykryje niebieską beczkę, a następnie obraca się w kierunku wykrytego obiektu. Użyj jej, gdy robot musi poszukać niebieskiej beczki, zanim się do niej zbliży lub ją podniesie.
Uwaga: Jeśli robot ma trudności z wykrywaniem obiektów, spróbuj zmniejszyć prędkość obrotową robota za pomocą set_turn_velocity.
Poniższy kod pokazuje sekwencję Pythona dodawaną do projektu po przeciągnięciu tej makry z Przybornika. Możesz użyć tej sekwencji w obecnej postaci lub edytować ją po dodaniu.
# 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#
To makro przesuwa robota w kierunku wykrytej niebieskiej beczki, aż robot ją zbierze. Użyj tego po tym, jak robot zobaczy niebieską beczkę lub po użyciu makra „obróć do niebieskiej beczki”, aby ją znaleźć.
Uwaga: Jeśli robot ma trudności z wykrywaniem obiektów, spróbuj zmniejszyć prędkość ruchu i obrotu robota za pomocą set_move_velocity i set_turn_velocity.
Poniższy kod pokazuje sekwencję Pythona dodawaną do projektu po przeciągnięciu tej makry z Przybornika. Możesz użyć tej sekwencji w obecnej postaci lub edytować ją po dodaniu.
# 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)
Wizja AI (robot AIM)#
turn right until AIM robot#
Ta makroinstrukcja obraca robota w prawo, aż czujnik wizyjny AI wykryje innego robota VEX AIM Coding Robot, a następnie obraca się w jego kierunku. Użyj jej, gdy robot musi poszukać innego robota, zanim ruszy w jego stronę.
Uwaga: Jeśli robot ma trudności z wykrywaniem obiektów, spróbuj zmniejszyć prędkość obrotową robota za pomocą set_turn_velocity.
Poniższy kod pokazuje sekwencję Pythona dodawaną do projektu po przeciągnięciu tej makry z Przybornika. Możesz użyć tej sekwencji w obecnej postaci lub edytować ją po dodaniu.
# 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#
Ta makroinstrukcja obraca robota w lewo, aż czujnik wizyjny AI wykryje innego robota VEX AIM Coding Robot, a następnie obraca się w jego kierunku. Użyj jej, gdy robot musi poszukać innego robota, zanim ruszy w jego stronę.
Uwaga: Jeśli robot ma trudności z wykrywaniem obiektów, spróbuj zmniejszyć prędkość obrotową robota za pomocą set_turn_velocity.
Poniższy kod pokazuje sekwencję Pythona dodawaną do projektu po przeciągnięciu tej makry z Przybornika. Możesz użyć tej sekwencji w obecnej postaci lub edytować ją po dodaniu.
# 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#
Ta makronowa makra przesuwa robota w kierunku innego robota VEX AIM Coding, aż znajdzie się on wystarczająco blisko, aby się zatrzymać. Użyj jej, gdy robot wykryje innego robota lub po użyciu makra „obróć do robota AIM”, aby go znaleźć.
Uwaga: Jeśli robot ma trudności z wykrywaniem obiektów, spróbuj zmniejszyć prędkość ruchu i obrotu robota za pomocą set_move_velocity i set_turn_velocity.
Poniższy kod pokazuje sekwencję Pythona dodawaną do projektu po przeciągnięciu tej makry z Przybornika. Możesz użyć tej sekwencji w obecnej postaci lub edytować ją po dodaniu.
# 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)
Wizja AI (AprilTag)#
turn right until AprilTag#
Ta makroinstrukcja obraca robota w prawo, aż czujnik AI Vision wykryje AprilTag o ID 0, a następnie obraca się w kierunku wykrytego AprilTag. Użyj jej, gdy robot musi wyszukać AprilTag przed rozpoczęciem ruchu w jego kierunku. Aby zmienić, do którego AprilTag robot będzie się obracał, zamień 0 w TAG0 na dowolną liczbę od 0 do 37 (AprilTagi od 5 do 37 można używać z wydrukowanymi AprilTagami z AIM Printables.)
Uwaga: Jeśli robot ma trudności z wykrywaniem obiektów, spróbuj zmniejszyć prędkość obrotową robota za pomocą set_turn_velocity.
Poniższy kod pokazuje sekwencję Pythona dodawaną do projektu po przeciągnięciu tej makry z Przybornika. Możesz użyć tej sekwencji w obecnej postaci lub edytować ją po dodaniu.
# 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#
Ta makroinstrukcja obraca robota w lewo, aż czujnik wizyjny AI wykryje AprilTag o ID 0, a następnie obraca się w kierunku wykrytego AprilTag. Używaj jej, gdy robot musi wyszukać AprilTag przed rozpoczęciem ruchu w jego kierunku. Aby zmienić, do którego AprilTag robot będzie się obracał, zamień 0 w TAG0 na dowolną liczbę od 0 do 37 (AprilTagi od 5 do 37 można używać z wydrukowanymi AprilTagami z AIM Printables.)
Uwaga: Jeśli robot ma trudności z wykrywaniem obiektów, spróbuj zmniejszyć prędkość obrotową robota za pomocą set_turn_velocity.
Poniższy kod pokazuje sekwencję Pythona dodawaną do projektu po przeciągnięciu tej makry z Przybornika. Możesz użyć tej sekwencji w obecnej postaci lub edytować ją po dodaniu.
# 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#
Ta makroinstrukcja przesuwa robota w kierunku AprilTag ID 0, aż znajdzie się wystarczająco blisko, aby się zatrzymać. Użyj jej po tym, jak robot zobaczy AprilTag lub po użyciu makra „obróć do AprilTag”, aby go znaleźć. Aby zmienić AprilTag, do którego robot się przesunie, zamień 0 w TAG0 na dowolną liczbę od 0 do 37 (AprilTagi od 5 do 37 można używać z wydrukowanymi AprilTagami z AIM Printables.)
Uwaga: Jeśli robot ma trudności z wykrywaniem obiektów, spróbuj zmniejszyć prędkość ruchu i obrotu robota za pomocą set_move_velocity i set_turn_velocity.
Poniższy kod pokazuje sekwencję Pythona dodawaną do projektu po przeciągnięciu tej makry z Przybornika. Możesz użyć tej sekwencji w obecnej postaci lub edytować ją po dodaniu.
# 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)