Μακροεντολή#

Εισαγωγή#

Οι μακροεντολές VEX AIM Python είναι προκατασκευασμένα μπλοκ κώδικα που μπορούν να μεταφερθούν σε ένα έργο Python. Κάθε μακροεντολή είναι μια ομάδα εντολών Python που συνεργάζονται για να κάνουν το ρομπότ να ολοκληρώσει μια μεγαλύτερη συμπεριφορά.

Αυτές δεν είναι μεμονωμένες μέθοδοι που καλούνται από κώδικα. Αντίθετα, κάθε μακροεντολή εισάγεται ως έτοιμη ακολουθία κώδικα που μπορεί να χρησιμοποιηθεί ως έχει ή να υποστεί επεξεργασία αφού προστεθεί σε ένα έργο.

Σε αυτήν τη σελίδα, κάθε μπλοκ κώδικα Python εμφανίζει την πραγματική ακολουθία κώδικα που εισάγεται όταν χρησιμοποιείται η συγκεκριμένη μακροεντολή.

Παρακάτω είναι μια λίστα με όλες τις μακροεντολές:

Συναισθήματα — Κάντε το ρομπότ να ενεργεί εκφραστικά.

AI Vision (Αθλητική Μπάλα) — Στρέψτε προς τις αθλητικές μπάλες ή συλλέξτε τες.

AI Vision (Πορτοκαλί Βαρέλι) — Στρίψτε προς τα πορτοκαλί βαρέλια ή συλλέξτε τα.

AI Vision (Μπλε Βαρέλι) — Στρίψτε προς τα μπλε βαρέλια ή συλλέξτε τα.

Όραση AI (Ρομπότ AIM) — Στρέψτε προς ή μετακινηθείτε προς άλλα ρομπότ AIM.

AI Vision (AprilTag) — Στρίψτε ή μετακινηθείτε προς τα AprilTags.

Συναισθήματα#

act happy#

Αυτή η μακροεντολή κάνει το ρομπότ να συμπεριφέρεται χαρούμενα δείχνοντας χαρούμενα πρόσωπα, αναπαράγοντας έναν χαρούμενο ήχο, αλλάζοντας τα LED και κινούμενο μπρος-πίσω. Χρησιμοποιήστε την όταν το ρομπότ πρέπει να αντιδρά με χαρούμενο ή θετικό τρόπο.

Ο παρακάτω κώδικας δείχνει την ακολουθία 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#

Αυτή η μακροεντολή κάνει το ρομπότ να συμπεριφέρεται λυπημένα δείχνοντας λυπημένα πρόσωπα, αναπαράγοντας έναν λυπηρό ήχο, εξασθενίζοντας τα LED και κινούμενο αργά προς διαφορετικές κατευθύνσεις. Χρησιμοποιήστε την όταν το ρομπότ πρέπει να δείξει μια απογοητευμένη ή χαμηλής ενέργειας αντίδραση.

Ο παρακάτω κώδικας δείχνει την ακολουθία 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#

Αυτή η μακροεντολή κάνει το ρομπότ να συμπεριφέρεται ανόητα περιστρεφόμενο, αλλάζοντας πρόσωπα και αναβοσβήνοντας διαφορετικά χρώματα LED. Χρησιμοποιήστε την όταν το ρομπότ πρέπει να κάνει μια παιχνιδιάρικη ή εκπληκτική αντίδραση.

Ο παρακάτω κώδικας δείχνει την ακολουθία 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#

Αυτή η μακροεντολή κάνει το ρομπότ να συμπεριφέρεται θυμωμένα δείχνοντας θυμωμένα πρόσωπα, αναπαράγοντας έναν θυμωμένο ήχο, ανάβοντας τα LED με κόκκινο χρώμα και κινούμενο απότομα. Χρησιμοποιήστε την όταν το ρομπότ πρέπει να δείξει μια απογοητευμένη ή προειδοποιητική αντίδραση.

Ο παρακάτω κώδικας δείχνει την ακολουθία 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#

Αυτή η μακροεντολή κάνει το ρομπότ να ενεργεί ως διεγερμένο, δείχνοντας ένα διεγερμένο πρόσωπο, αναπαράγοντας έναν διεγερμένο ήχο, κινούμενο γρήγορα από τη μία πλευρά στην άλλη και αναβοσβήνοντας πορτοκαλί LED. Χρησιμοποιήστε την όταν το ρομπότ πρέπει να γιορτάσει ή να αντιδράσει με υψηλή ενέργεια.

Ο παρακάτω κώδικας δείχνει την ακολουθία 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 (Αθλητική μπάλα)#

turn right until sports ball#

Αυτή η μακροεντολή στρέφει το ρομπότ προς τα δεξιά μέχρι ο αισθητήρας AI Vision Sensor να ανιχνεύσει μια αθλητική μπάλα και στη συνέχεια να στραφεί προς το ανιχνευμένο αντικείμενο. Χρησιμοποιήστε την όταν το ρομπότ χρειάζεται να αναζητήσει μια αθλητική μπάλα πριν κινηθεί προς αυτήν ή την παραλάβει.

Note: If the robot has difficulty detecting objects, try lowering the robot’s turn velocity with 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 να ανιχνεύσει μια αθλητική μπάλα και στη συνέχεια να στραφεί προς το ανιχνευμένο αντικείμενο. Χρησιμοποιήστε την όταν το ρομπότ χρειάζεται να αναζητήσει μια αθλητική μπάλα πριν κινηθεί προς αυτήν ή την παραλάβει.

Note: If the robot has difficulty detecting objects, try lowering the robot’s turn velocity with 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#

Αυτή η μακροεντολή μετακινεί το ρομπότ προς μια ανιχνευμένη αθλητική μπάλα μέχρι να την παραλάβει. Χρησιμοποιήστε την αφού το ρομπότ μπορεί να δει μια αθλητική μπάλα ή αφού χρησιμοποιήσετε μια μακροεντολή “στροφή μέχρι να βρεις την αθλητική μπάλα” για να βρείτε μία.

Note: If the robot has difficulty detecting objects, try lowering the robot’s move and turn velocities with set_move_velocity and 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 να ανιχνεύσει ένα πορτοκαλί βαρέλι και στη συνέχεια να στραφεί προς το ανιχνευμένο αντικείμενο. Χρησιμοποιήστε την όταν το ρομπότ χρειάζεται να αναζητήσει ένα πορτοκαλί βαρέλι πριν κινηθεί προς αυτό ή το παραλάβει.

Note: If the robot has difficulty detecting objects, try lowering the robot’s turn velocity with 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 να ανιχνεύσει ένα πορτοκαλί βαρέλι και στη συνέχεια να στραφεί προς το ανιχνευμένο αντικείμενο. Χρησιμοποιήστε την όταν το ρομπότ χρειάζεται να αναζητήσει ένα πορτοκαλί βαρέλι πριν κινηθεί προς αυτό ή το παραλάβει.

Note: If the robot has difficulty detecting objects, try lowering the robot’s turn velocity with 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#

Αυτή η μακροεντολή μετακινεί το ρομπότ προς ένα ανιχνευμένο πορτοκαλί βαρέλι μέχρι να το συλλέξει. Χρησιμοποιήστε την αφού το ρομπότ μπορεί να δει ένα πορτοκαλί βαρέλι ή αφού χρησιμοποιήσετε μια μακροεντολή “στροφή μέχρι να εμφανιστεί το πορτοκαλί βαρέλι” για να βρείτε ένα.

Note: If the robot has difficulty detecting objects, try lowering the robot’s move and turn velocities with set_move_velocity and 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 (Μπλε Βαρέλι)#

turn right until blue barrel#

Αυτή η μακροεντολή στρέφει το ρομπότ προς τα δεξιά μέχρι ο αισθητήρας AI Vision Sensor να ανιχνεύσει ένα μπλε βαρέλι και στη συνέχεια να στραφεί προς το ανιχνευμένο αντικείμενο. Χρησιμοποιήστε την όταν το ρομπότ χρειάζεται να αναζητήσει ένα μπλε βαρέλι πριν κινηθεί προς αυτό ή το παραλάβει.

Note: If the robot has difficulty detecting objects, try lowering the robot’s turn velocity with 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 να ανιχνεύσει ένα μπλε βαρέλι και στη συνέχεια να στραφεί προς το ανιχνευμένο αντικείμενο. Χρησιμοποιήστε την όταν το ρομπότ χρειάζεται να αναζητήσει ένα μπλε βαρέλι πριν κινηθεί προς αυτό ή το παραλάβει.

Note: If the robot has difficulty detecting objects, try lowering the robot’s turn velocity with 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#

Αυτή η μακροεντολή μετακινεί το ρομπότ προς ένα ανιχνευμένο μπλε βαρέλι μέχρι να το συλλέξει. Χρησιμοποιήστε την αφού το ρομπότ μπορεί να δει ένα μπλε βαρέλι ή αφού χρησιμοποιήσετε μια μακροεντολή “στροφή μέχρι να εμφανιστεί το μπλε βαρέλι” για να βρείτε ένα.

Note: If the robot has difficulty detecting objects, try lowering the robot’s move and turn velocities with set_move_velocity and 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 και στη συνέχεια να στραφεί προς το μέρος του. Χρησιμοποιήστε την όταν το ρομπότ χρειάζεται να αναζητήσει ένα άλλο ρομπότ πριν κινηθεί προς το μέρος του.

Note: If the robot has difficulty detecting objects, try lowering the robot’s turn velocity with 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 και στη συνέχεια να στραφεί προς το μέρος του. Χρησιμοποιήστε την όταν το ρομπότ χρειάζεται να αναζητήσει ένα άλλο ρομπότ πριν κινηθεί προς το μέρος του.

Note: If the robot has difficulty detecting objects, try lowering the robot’s turn velocity with 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” για να βρείτε ένα.

Note: If the robot has difficulty detecting objects, try lowering the robot’s move and turn velocities with set_move_velocity and 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 (Ετικέτα Απριλίου)#

turn right until AprilTag#

This macro turns the robot to the right until the AI Vision Sensor detects AprilTag ID 0, then turns toward the detected AprilTag. Use it when the robot needs to search for an AprilTag before moving toward it. To change which AprilTag the robot will turn until, replace the 0 in TAG0 with any number from 0 to 37 (AprilTags 5 through 37 can be used with printed AprilTags from AIM Printables.)

Note: If the robot has difficulty detecting objects, try lowering the robot’s turn velocity with 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#

This macro turns the robot to the left until the AI Vision Sensor detects AprilTag ID 0, then turns toward the detected AprilTag. Use it when the robot needs to search for an AprilTag before moving toward it. To change which AprilTag the robot will turn until, replace the 0 in TAG0 with any number from 0 to 37 (AprilTags 5 through 37 can be used with printed AprilTags from AIM Printables.)

Note: If the robot has difficulty detecting objects, try lowering the robot’s turn velocity with 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#

This macro moves the robot toward AprilTag ID 0 until it is close enough to stop. Use this after the robot can see an AprilTag, or after using a turn-until-AprilTag macro to find one. To change which AprilTag the robot will move to, replace the 0 in TAG0 with any number from 0 to 37 (AprilTags 5 through 37 can be used with printed AprilTags from AIM Printables.)

Note: If the robot has difficulty detecting objects, try lowering the robot’s move and turn velocities with set_move_velocity and 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)