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

Εισαγωγή#

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

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

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

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

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

  • act happy — Κάνει το ρομπότ να ενεργεί χαρούμενος.

  • act sad — Κάνει το ρομπότ να συμπεριφέρεται λυπημένο.

  • act silly — Κάνει το ρομπότ να ενεργεί ανόητα.

  • act angry — Κάνει το ρομπότ να ενεργεί θυμωμένα.

  • act excited — Κάνει το ρομπότ να ενεργεί διεγερμένο.

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

  • turn right until sports ball — Στρίβει δεξιά μέχρι να ανιχνευθεί μια αθλητική μπάλα.

  • turn left until sports ball — Στρίβει αριστερά μέχρι να ανιχνευθεί μια αθλητική μπάλα.

  • get sports ball — Μετακινεί το ρομπότ για να παραλάβει μια αθλητική μπάλα.

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

  • turn right until orange barrel — Στρίβει δεξιά μέχρι να ανιχνευθεί ένα πορτοκαλί βαρέλι.

  • turn left until orange barrel — Στρίβει αριστερά μέχρι να ανιχνευθεί ένα πορτοκαλί βαρέλι.

  • get orange barrel — Μετακινεί το ρομπότ για να συλλέξει ένα πορτοκαλί βαρέλι.

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

  • turn right until blue barrel — Στρίβει δεξιά μέχρι να ανιχνευθεί ένα μπλε βαρέλι.

  • turn left until blue barrel — Στρίβει αριστερά μέχρι να ανιχνευθεί ένα μπλε βαρέλι.

  • get blue barrel — Μετακινεί το ρομπότ για να συλλέξει ένα μπλε βαρέλι.

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

  • turn right until AIM robot — Στρίβει δεξιά μέχρι να ανιχνευθεί ένα άλλο ρομπότ AIM.

  • turn left until AIM robot — Στρίβει αριστερά μέχρι να ανιχνευθεί ένα άλλο ρομπότ AIM.

  • move to AIM robot — Κινείται προς ένα άλλο ρομπότ 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 να ανιχνεύσει μια αθλητική μπάλα και στη συνέχεια να στραφεί προς το ανιχνευμένο αντικείμενο. Χρησιμοποιήστε την όταν το ρομπότ χρειάζεται να αναζητήσει μια αθλητική μπάλα πριν κινηθεί προς αυτήν ή την παραλάβει.

Σημείωση: Εάν το ρομπότ δυσκολεύεται να εντοπίσει αντικείμενα, δοκιμάστε να μειώσετε την ταχύτητα περιστροφής του ρομπότ με 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 (Μπλε Βαρέλι)#

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 και στη συνέχεια να στραφεί προς το μέρος του. Χρησιμοποιήστε την όταν το ρομπότ χρειάζεται να αναζητήσει ένα άλλο ρομπότ πριν κινηθεί προς το μέρος του.

Σημείωση: Εάν το ρομπότ δυσκολεύεται να εντοπίσει αντικείμενα, δοκιμάστε να μειώσετε την ταχύτητα περιστροφής του ρομπότ με 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 (Ετικέτα Απριλίου)#

turn right until AprilTag#

Αυτή η μακροεντολή στρέφει το ρομπότ προς τα δεξιά μέχρι ο αισθητήρας AI Vision Sensor να ανιχνεύσει το AprilTag ID 0 και στη συνέχεια να στραφεί προς το AprilTag που έχει ανιχνευθεί. Χρησιμοποιήστε την όταν το ρομπότ χρειάζεται να αναζητήσει ένα AprilTag πριν κινηθεί προς αυτό. Για να αλλάξετε το AprilTag μέχρι το οποίο θα στρέφεται το ρομπότ, αντικαταστήστε το 0 σε TAG0 με οποιονδήποτε αριθμό από 0 έως 37 (Οι AprilTags 5 έως 37 μπορούν να χρησιμοποιηθούν με εκτυπωμένες AprilTags από το 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 μπορούν να χρησιμοποιηθούν με εκτυπωμένες AprilTags από το 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 ή αφού χρησιμοποιήσετε μια μακροεντολή turn-until-AprilTag για να βρείτε ένα. Για να αλλάξετε σε ποιο AprilTag θα μετακινηθεί το ρομπότ, αντικαταστήστε το 0 σε TAG0 με οποιονδήποτε αριθμό από 0 έως 37 (Οι AprilTags 5 έως 37 μπορούν να χρησιμοποιηθούν με εκτυπωμένες AprilTags από το 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)