Python ειδικά για ρομπότ#
Εισαγωγή#
Το Hero Bot, Flex, περιλαμβάνει έναν κινητήρα με νύχια, έναν κινητήρα με βραχίονα, έναν αισθητήρα όρασης AI, έναν αισθητήρα απόστασης και έναν αισθητήρα συστήματος εντοπισμού θέσης παιχνιδιού (GPS).
Όλες οι τυπικές μέθοδοι VR VEXcode είναι διαθέσιμες για χρήση στην παιδική χαρά V5 26-27 Override.
Παρακάτω είναι μια λίστα με όλες τις διαθέσιμες μεθόδους ειδικά για ρομπότ:
Σύστημα μετάδοσης κίνησης – Μετακινήστε και περιστρέψτε το ρομπότ.
Ενέργειες
drive— Μετακινεί το ρομπότ προς τα εμπρός ή προς τα πίσω για πάντα.drive_for— Μετακινεί το ρομπότ προς τα εμπρός ή προς τα πίσω για μια συγκεκριμένη απόσταση.turn— Στρέφει το ρομπότ αριστερά ή δεξιά για πάντα.turn_for— Στρέφει το ρομπότ αριστερά ή δεξιά για έναν συγκεκριμένο αριθμό μοιρών.turn_to_heading— Στρέφει το ρομπότ ώστε να κοιτάζει προς μια συγκεκριμένη κατεύθυνση από -359 σε 359 μοίρες.turn_to_rotation— Στρέφει το ρομπότ σε μια συγκεκριμένη περιστροφή.stop— Σταματά την κίνηση του ρομπότ.
Μεταλλαγμένοι
set_heading— Αλλάζει την τρέχουσα κατεύθυνση του ρομπότ σε νέα.set_rotation— Αλλάζει την τρέχουσα περιστροφή του ρομπότ σε μια νέα περιστροφή.set_timeout— Ορίζει τον χρόνο που θα προσπαθήσει το ρομπότ να ολοκληρώσει μια κίνηση.set_drive_velocity— Υποδεικνύει στο ρομπότ πόσο γρήγορα πρέπει να οδηγήσει.set_turn_velocity— Υποδεικνύει στο ρομπότ πόσο γρήγορα πρέπει να στρίψει.
Αποκτητές
heading— Επιστρέφει την τρέχουσα κατεύθυνση του ρομπότ από 0 έως 359,99 μοίρες.rotation— Επιστρέφει την τρέχουσα περιστροφή του ρομπότ.is_done— Επιστρέφει εάν το ρομπότ έχει ολοκληρώσει την κίνησή του, ως λογική τιμή.is_moving— Επιστρέφει εάν το ρομπότ κινείται, ως λογική τιμή.velocity— Επιστρέφει την ταχύτητα με την οποία κινείται το ρομπότ.
Κίνηση – Μετακίνηση και παρακολούθηση των κινητήρων του ρομπότ.
Ενέργειες
spin— Περιστρέφει έναν κινητήρα προς τα εμπρός ή προς τα πίσω για πάντα.spin_for— Περιστρέφει έναν κινητήρα για μια συγκεκριμένη απόσταση.spin_to_position— Περιστρέφει έναν κινητήρα σε μια συγκεκριμένη θέση.stop— Σταματά την περιστροφή ενός κινητήρα.
Μεταλλαγμένοι
set_position— Αλλάζει την τρέχουσα θέση του κινητήρα σε μια νέα τιμή.set_velocity— Υποδεικνύει σε έναν κινητήρα πόσο γρήγορα πρέπει να περιστραφεί.set_timeout— Ορίζει τον χρόνο που ένας κινητήρας θα προσπαθήσει να ολοκληρώσει μια κίνηση.
Αποκτητές
is_done— Επιστρέφει εάν ο κινητήρας έχει ολοκληρώσει την κίνηση, ως λογική τιμή.is_spinning— Επιστρέφει εάν ο κινητήρας περιστρέφεται, ως λογική τιμή.position— Επιστρέφει την τρέχουσα θέση του κινητήρα.velocity— Επιστρέφει την ταχύτητα περιστροφής του κινητήρα.
AI Vision – Καταγραφή και ανάλυση αντικειμένων χρησιμοποιώντας τον αισθητήρα AI Vision.
Αποκτητές
take_snapshot– Επιστρέφει μια πλειάδα ανιχνευμένων αντικειμένων για μια συγκεκριμένη υπογραφή.
Σκηνικά θέατρου
.width– Πλάτος του ανιχνευμένου αντικειμένου σε pixel..height– Ύψος του ανιχνευμένου αντικειμένου σε pixel..centerX– Η θέση X του κέντρου του αντικειμένου σε pixel..centerY– Θέση Y του κέντρου του αντικειμένου σε pixel..originX– X position of the object’s top-left corner in pixels..originY– Y position of the object’s top-left corner in pixels..id– Classification ID of the detected object.
Κονσόλα – Εκτύπωση στην Κονσόλα και παρακολούθηση τιμών.
Αποτύπωμα
brain.screen.print— Εμφανίζει κείμενο, αριθμούς ή τιμές μεταβλητών στην Κονσόλα.brain.screen.next_row— Μετακινεί τον κέρσορα της κονσόλας στην αρχή της επόμενης γραμμής.brain.screen.clear_screen— Διαγράφει όλες τις γραμμές από την Κονσόλα.
Ελεγκτής εκπομπών
monitor_variable— Προσθέτει μία ή περισσότερες προκαθορισμένες μεταβλητές στην καρτέλα Monitor.monitor_sensor— Προσθέτει μία ή περισσότερες τιμές αισθητήρα στην καρτέλα Monitor.
Αισθητήρες – Χρησιμοποιήστε τους διάφορους αισθητήρες του ρομπότ.
Απόσταση
found_object– Επιστρέφει εάν ο αισθητήρας απόστασης ανιχνεύει ένα αντικείμενο εντός εμβέλειας.object_distance– Επιστρέφει την απόσταση μεταξύ του αισθητήρα απόστασης και του πλησιέστερου αντικειμένου που ανιχνεύθηκε.
GPS
x_position– Επιστρέφει την τρέχουσα συντεταγμένη x του αισθητήρα GPS στο πεδίο.y_position– Επιστρέφει την τρέχουσα συντεταγμένη y του αισθητήρα GPS στο πεδίο.heading– Επιστρέφει την κατεύθυνση προς την οποία βρίσκεται το ρομπότ αυτήν τη στιγμή, με βάση τον αισθητήρα GPS.
Τα παραδείγματα σε αυτήν τη σελίδα χρησιμοποιούν την Τοποθεσία Εκκίνησης C από τη Λίστα Ελέγχου Πριν τον Αγώνα του Playground.
Σύστημα μετάδοσης κίνησης#
Το σύστημα μετάδοσης κίνησης ελέγχει τον τρόπο με τον οποίο το ρομπότ εικονικής πραγματικότητας (VR) κινείται και στρίβει. Το σύστημα μετάδοσης κίνησης μπορεί να κινείται προς τα εμπρός ή προς τα πίσω, να στρίβει αριστερά ή δεξιά, να στρίβει προς τις κατευθύνσεις και να παρακολουθεί την περιστροφή του.
Ενέργειες#
οδηγώ#
drive κινεί το ρομπότ προς τα εμπρός ή προς τα πίσω για πάντα. Το ρομπότ θα συνεχίσει να κινείται μέχρι να του δοθεί μια άλλη ενέργεια, όπως στροφή ή στάση.
Usage:
drivetrain.drive(direction)
Παράμετροι |
Περιγραφή |
|---|---|
|
Η κατεύθυνση κίνησης του ρομπότ: |
def main():
# Raise the Arm, drive to the Goal, release the Pin
arm_motor.spin_for(FORWARD, 300, DEGREES)
drivetrain.drive(FORWARD)
wait(0.5, SECONDS)
drivetrain.stop()
claw_motor.spin_for(REVERSE, 180, DEGREES)
# VR threads — Do not delete
vr_thread(main)
μονάδα_δίσκου#
Η συνάρτηση drive_for μετακινεί το ρομπότ προς τα εμπρός ή προς τα πίσω για μια συγκεκριμένη απόσταση. Το έργο θα περιμένει μέχρι να ολοκληρωθεί η κίνηση του ρομπότ πριν εκτελεστεί η επόμενη γραμμή κώδικα.
Usage:
drivetrain.drive_for(direction, distance, units, wait)
Παράμετροι |
Περιγραφή |
|---|---|
|
Η κατεύθυνση κίνησης του ρομπότ: |
|
Η απόσταση που διανύει το ρομπότ. Αυτή μπορεί να είναι ένας ακέραιος αριθμός |
|
Προαιρετικά. Η μονάδα απόστασης: |
|
Προαιρετικό. |
def main():
# Raise the Arm, drive to the Goal, release the Pin
arm_motor.spin_for(FORWARD, 300, DEGREES)
drivetrain.drive_for(FORWARD, 10, INCHES)
claw_motor.spin_for(REVERSE, 180, DEGREES)
# VR threads — Do not delete
vr_thread(main)
σειρά#
turn γυρίζει το ρομπότ αριστερά ή δεξιά για πάντα. Το ρομπότ θα συνεχίσει να γυρίζει μέχρι να του δοθεί μια άλλη ενέργεια, όπως οδήγηση ή στάση.
Usage:
drivetrain.turn(direction)
Παράμετροι |
Περιγραφή |
|---|---|
|
Η κατεύθυνση που γυρίζει το ρομπότ: |
def main():
# Score a Pin in a Neutral Goal
drivetrain.turn(LEFT)
wait(0.78, SECONDS)
drivetrain.stop()
arm_motor.spin_for(FORWARD, 800, DEGREES)
drivetrain.drive_for(FORWARD, 25, INCHES)
claw_motor.spin_for(REVERSE, 180, DEGREES)
# VR threads — Do not delete
vr_thread(main)
στροφή_για#
turn_for γυρίζει το ρομπότ αριστερά ή δεξιά για έναν συγκεκριμένο αριθμό μοιρών. Η στροφή είναι σχετική με την τρέχουσα θέση του ρομπότ. Το έργο θα περιμένει μέχρι το ρομπότ να ολοκληρώσει την στροφή πριν εκτελεστεί η επόμενη γραμμή κώδικα.
Usage:
drivetrain.turn_for(direction, angle, units, wait)
Παράμετροι |
Περιγραφή |
|---|---|
|
Η κατεύθυνση που γυρίζει το ρομπότ: |
|
Ο αριθμός των μοιρών που περιστρέφεται το ρομπότ. Αυτός μπορεί να είναι ένας ακέραιος αριθμός |
|
Προαιρετικά. Η μονάδα γωνίας: |
|
Προαιρετικό. |
def main():
# Score a Pin in a Neutral Goal
drivetrain.turn_for(LEFT, 110, DEGREES)
arm_motor.spin_for(FORWARD, 800, DEGREES)
drivetrain.drive_for(FORWARD, 25, INCHES)
claw_motor.spin_for(REVERSE, 180, DEGREES)
# VR threads — Do not delete
vr_thread(main)
στροφή_προς_την_κατεύθυνση#
Μια κατεύθυνση είναι η κατεύθυνση προς την οποία είναι στραμμένο το ρομπότ, μετρούμενη σε μοίρες. turn_to_heading γυρίζει το ρομπότ ώστε να στραφεί προς μια συγκεκριμένη κατεύθυνση από -359 σε 359 μοίρες. Το ρομπότ θα στρίψει προς τη συντομότερη κατεύθυνση για να φτάσει στην κατεύθυνση-στόχο.
Η αρχική κατεύθυνση είναι 0 μοίρες.
Usage:
drivetrain.turn_to_heading(heading, units, wait)
Παράμετροι |
Περιγραφή |
|---|---|
|
Η κατεύθυνση προς την οποία πρέπει να είναι στραμμένη το ρομπότ, από -359 έως 359 μοίρες. |
|
Προαιρετικά. Η μονάδα γωνίας: |
|
Προαιρετικό. |
def main():
# Score a Pin in a Neutral Goal
drivetrain.turn_to_heading(-110, DEGREES)
arm_motor.spin_for(FORWARD, 800, DEGREES)
drivetrain.drive_for(FORWARD, 25, INCHES)
claw_motor.spin_for(REVERSE, 180, DEGREES)
# VR threads — Do not delete
vr_thread(main)
στροφή_σε_περιστροφή#
turn_to_rotation γυρίζει το ρομπότ σε μια συγκεκριμένη περιστροφή.
Η περιστροφή είναι η περιστροφή του ρομπότ, μετρούμενη σε μοίρες. Στην αρχή ενός έργου, η τιμή περιστροφής ορίζεται σε 0 μοίρες. Η περιστροφή προς τα δεξιά αυξάνει την περιστροφή και η περιστροφή προς τα αριστερά τη μειώνει.
Για παράδειγμα, αν το ρομπότ ξεκινήσει από 0 μοίρες και περιστραφεί σε 720 μοίρες, θα στρίψει δεξιά δύο φορές. Αν στη συνέχεια περιστραφεί σε 360 μοίρες, θα στρίψει αριστερά μία φορά, επειδή οι 360 μοίρες είναι μικρότερες από τις 720.
Usage:
drivetrain.turn_to_rotation(rotation, units, wait)
Παράμετροι |
Περιγραφή |
|---|---|
|
Η τιμή περιστροφής, σε μοίρες, στην οποία θα στραφεί το ρομπότ. Αυτή μπορεί να είναι ένας ακέραιος αριθμός |
|
Προαιρετικά. Η μονάδα γωνίας: |
|
Προαιρετικό. |
def main():
# Score a Pin in a Neutral Goal
drivetrain.turn_to_rotation(-110, DEGREES)
arm_motor.spin_for(FORWARD, 800, DEGREES)
drivetrain.drive_for(FORWARD, 25, INCHES)
claw_motor.spin_for(REVERSE, 180, DEGREES)
# VR threads — Do not delete
vr_thread(main)
στάση#
stop σταματά την κίνηση του ρομπότ.
Usage:
drivetrain.stop()
Παράμετροι |
Περιγραφή |
|---|---|
Αυτή η μέθοδος δεν έχει παραμέτρους. |
def main():
# Score a Pin in a Neutral Goal
drivetrain.turn(LEFT)
wait(0.78, SECONDS)
drivetrain.stop()
arm_motor.spin_for(FORWARD, 800, DEGREES)
drivetrain.drive_for(FORWARD, 25, INCHES)
claw_motor.spin_for(REVERSE, 180, DEGREES)
# VR threads — Do not delete
vr_thread(main)
Μεταλλάκτες#
set_heading#
Μια κατεύθυνση είναι η κατεύθυνση που βλέπει το ρομπότ, μετρούμενη σε μοίρες. set_heading αλλάζει την τρέχουσα κατεύθυνση του ρομπότ σε μια νέα τιμή κατεύθυνσης.
Για παράδειγμα, εάν το ρομπότ έχει στραφεί προς τα δεξιά, η ρύθμιση της κατεύθυνσης σε 0 μοίρες καθιστά αυτή τη θέση προς τα δεξιά τις νέες 0 μοίρες. Στη συνέχεια, το ρομπότ μπορεί να στραφεί σε άλλες θέσεις με βάση αυτήν τη νέα κατεύθυνση.
Usage:
drivetrain.set_heading(heading, units)
Παράμετροι |
Περιγραφή |
|---|---|
|
Η τιμή κατεύθυνσης, σε μοίρες, που θα οριστεί για το ρομπότ. |
|
Προαιρετικά. Η μονάδα γωνίας: |
def main():
# Make facing the Neutral Goal the new heading
drivetrain.set_heading(110, DEGREES)
drivetrain.turn_to_heading(0, DEGREES)
# VR threads — Do not delete
vr_thread(main)
set_rotation#
Η περιστροφή είναι η περιστροφή του ρομπότ, μετρούμενη σε μοίρες. set_rotation αλλάζει την τρέχουσα περιστροφή του ρομπότ σε μια νέα τιμή.
Usage:
drivetrain.set_rotation(rotation, units)
Παράμετροι |
Περιγραφή |
|---|---|
|
Η τιμή περιστροφής, σε μοίρες, που θα οριστεί για το ρομπότ. Αυτή μπορεί να είναι ένας ακέραιος αριθμός |
|
Προαιρετικά. Η μονάδα γωνίας: |
def main():
# Make facing the Neutral Goal the new rotation
drivetrain.set_rotation(110, DEGREES)
drivetrain.turn_to_rotation(0, DEGREES)
# VR threads — Do not delete
vr_thread(main)
set_timeout#
set_timeout ορίζει πόσα δευτερόλεπτα θα προσπαθήσει το ρομπότ να ολοκληρώσει μια κίνηση. Εάν το ρομπότ δεν μπορεί να ολοκληρώσει σε αυτό το χρονικό διάστημα, θα σταματήσει την προσπάθεια και θα προχωρήσει στην επόμενη γραμμή κώδικα. Αυτό εμποδίζει το ρομπότ να κολλήσει σε μια κίνηση.
Usage:
drivetrain.set_timeout(time, units)
Παράμετροι |
Περιγραφή |
|---|---|
|
Ο αριθμός των δευτερολέπτων που μπορεί να προσπαθήσει το ρομπότ για να ολοκληρώσει μια κίνηση. Αυτός μπορεί να είναι ένας θετικός |
|
Προαιρετικά. Η μονάδα χρόνου: |
def main():
# Turn to face the Neutral Goal
drivetrain.set_timeout(0.8, SECONDS)
drivetrain.turn_for(LEFT, 180, DEGREES)
# VR threads — Do not delete
vr_thread(main)
set_drive_velocity#
set_drive_velocity λέει στο ρομπότ πόσο γρήγορα πρέπει να οδηγήσει. Ένα υψηλότερο ποσοστό κάνει το ρομπότ να οδηγεί πιο γρήγορα και ένα χαμηλότερο ποσοστό κάνει το ρομπότ να οδηγεί πιο αργά.
Κάθε έργο ξεκινά με το ρομπότ να κινείται με ταχύτητα 50% από προεπιλογή.
Σημείωση: Μια υψηλότερη ταχύτητα κάνει το ρομπότ να κινείται πιο γρήγορα, αλλά μπορεί να είναι λιγότερο ακριβές. Μια χαμηλότερη ταχύτητα κάνει το ρομπότ να κινείται πιο αργά, αλλά μπορεί να είναι πιο ακριβές.
Usage:
drivetrain.set_drive_velocity(velocity, units)
Παράμετροι |
Περιγραφή |
|---|---|
|
Η ταχύτητα με την οποία θα οδηγηθεί το μηχάνημα κυμαίνεται από 0% έως 100%. Αυτή μπορεί να είναι ένας ακέραιος αριθμός |
|
Προαιρετικό. Η μονάδα ταχύτητας: |
def main():
# Score a Pin in a Neutral Goal
drivetrain.turn_for(LEFT, 110, DEGREES)
arm_motor.spin_for(FORWARD, 800, DEGREES)
drivetrain.set_drive_velocity(100, PERCENT)
drivetrain.drive_for(FORWARD, 25, INCHES)
claw_motor.spin_for(REVERSE, 180, DEGREES)
# VR threads — Do not delete
vr_thread(main)
ορισμός_ταχύτητας_στροφής#
set_turn_velocity λέει στο ρομπότ πόσο γρήγορα να στρίψει. Ένα υψηλότερο ποσοστό κάνει το ρομπότ να στρίψει πιο γρήγορα και ένα χαμηλότερο ποσοστό το κάνει να στρίψει πιο αργά.
Κάθε έργο ξεκινά με το ρομπότ να περιστρέφεται με ταχύτητα 50% από προεπιλογή.
Σημείωση: Μια υψηλότερη ταχύτητα κάνει το ρομπότ να περιστρέφεται πιο γρήγορα, αλλά μπορεί να είναι λιγότερο ακριβής. Μια χαμηλότερη ταχύτητα κάνει το ρομπότ να περιστρέφεται πιο αργά, αλλά μπορεί να είναι πιο ακριβής.
Usage:
drivetrain.set_turn_velocity(velocity, units)
Παράμετροι |
Περιγραφή |
|---|---|
|
Η ταχύτητα με την οποία θα περιστραφεί η περιστροφή κυμαίνεται από 0% έως 100%. Αυτή μπορεί να είναι ένας ακέραιος αριθμός |
|
Προαιρετικό. Η μονάδα ταχύτητας: |
def main():
# Turn to face the Neutral Goal faster
drivetrain.set_turn_velocity(100, PERCENT)
drivetrain.turn_for(LEFT, 110, DEGREES)
# VR threads — Do not delete
vr_thread(main)
Αποκτητές#
επικεφαλίδα#
Η κατεύθυνση είναι η κατεύθυνση προς την οποία είναι στραμμένο το ρομπότ, μετρούμενη σε μοίρες. Η κατεύθυνση heading επιστρέφει την τρέχουσα κατεύθυνση του ρομπότ από 0 σε 359,99 μοίρες.
Η αρχική κατεύθυνση του ρομπότ είναι 0 μοίρες.
Usage:
drivetrain.heading(units)
Παράμετροι |
Περιγραφή |
|---|---|
|
Προαιρετικό. Η μονάδα επικεφαλίδας: |
def main():
# Turn to the Goal, then show heading
drivetrain.turn_for(LEFT, 110, DEGREES)
brain.screen.print("Heading: ")
brain.screen.print(drivetrain.heading(DEGREES))
# VR threads — Do not delete
vr_thread(main)
περιστροφή#
Η περιστροφή είναι η περιστροφή του ρομπότ, μετρούμενη σε μοίρες. Στην αρχή ενός έργου, η τιμή περιστροφής ορίζεται σε 0 μοίρες. Η περιστροφή rotation επιστρέφουν την τρέχουσα περιστροφή του ρομπότ.
Η δεξιά στροφή αυξάνει την περιστροφή και η αριστερά τη μειώνει. Για παράδειγμα, κάνοντας δύο πλήρεις στροφές προς τα δεξιά θα επιστρέψει μια περιστροφή 720 μοιρών.
Usage:
drivetrain.rotation(units)
Παράμετροι |
Περιγραφή |
|---|---|
|
Προαιρετικά. Η μονάδα περιστροφής: |
def main():
# Spin to find a Pin, then show rotation
drivetrain.turn_for(RIGHT, 450, DEGREES)
brain.screen.print("Rotation: ")
brain.screen.print(drivetrain.rotation(DEGREES))
# VR threads — Do not delete
vr_thread(main)
είναι_ολοκληρωμένο#
Η συνάρτηση is_done επιστρέφει εάν το ρομπότ έχει ολοκληρώσει την κίνησή του, ως δυαδική τιμή. Αυτή μπορεί να χρησιμοποιηθεί για τον έλεγχο του χρονισμού άλλων συμπεριφορών με βάση την κίνηση του ρομπότ.
True— Το ρομπότ έχει ολοκληρώσει την κίνηση.False— Το ρομπότ εξακολουθεί να κινείται.
Αυτή η μέθοδος λειτουργεί σε συνδυασμό με τις ακόλουθες μεθόδους Drivetrain που έχουν την παράμετρο wait : drive_for, turn_for, turn_to_heading και turn_to_rotation.
Usage:
drivetrain.is_done()
Παράμετροι |
Περιγραφή |
|---|---|
Αυτή η μέθοδος δεν έχει παραμέτρους. |
def main():
# Score a Pin in a Neutral Goal
drivetrain.turn_for(LEFT, 110, DEGREES)
arm_motor.spin_for(FORWARD, 800, DEGREES)
drivetrain.drive_for(FORWARD, 25, INCHES, wait=False)
wait(0.5, SECONDS)
while not drivetrain.is_done():
wait(5, MSEC)
claw_motor.spin_for(REVERSE, 180, DEGREES)
# VR threads — Do not delete
vr_thread(main)
is_moving#
is_moving επιστρέφει εάν το ρομπότ κινείται, ως λογική τιμή. Αυτή μπορεί να χρησιμοποιηθεί για τον έλεγχο του χρονισμού άλλων συμπεριφορών με βάση την κίνηση του ρομπότ.
True— Το ρομπότ κινείται.False— Το ρομπότ δεν κινείται.
Usage:
drivetrain.is_moving()
Παράμετροι |
Περιγραφή |
|---|---|
Αυτή η μέθοδος δεν έχει παραμέτρους. |
def main():
# Raise the Arm once stopped near the Goal
drivetrain.turn_for(LEFT, 110, DEGREES)
drivetrain.drive_for(FORWARD, 25, INCHES, wait=False)
wait (0.5, SEC)
while drivetrain.is_moving():
wait(5, MSEC)
arm_motor.spin_for(FORWARD, 800, DEGREES)
# VR threads — Do not delete
vr_thread(main)
ταχύτητα#
Η τιμή velocity επιστρέφει την ταχύτητα με την οποία κινείται το ρομπότ, ως ποσοστό από -100% έως 100%.
Usage:
drivetrain.velocity(units)
Παράμετροι |
Περιγραφή |
|---|---|
|
Προαιρετικό. Η μονάδα ταχύτητας: |
def main():
# Show speed while driving to the Goal
drivetrain.drive_for(FORWARD, 150, MM)
brain.screen.print("Velocity: ")
brain.screen.print(drivetrain.velocity(PERCENT))
# VR threads — Do not delete
vr_thread(main)
Κίνηση#
Το Flex χρησιμοποιεί τον κινητήρα του βραχίονα για να ανυψώσει και να κατεβάσει τον βραχίονα και τον κινητήρα της δαγκάνας για να ανοίξει και να κλείσει τη δαγκάνα.
Κάθε κινητήρας έχει τη δική του συμπεριφορά κατεύθυνσης. Οι περιγραφές κατεύθυνσης εξηγούν πώς κάθε κατεύθυνση κινεί τον κινητήρα στο Flex.
Ενέργειες#
γνέθω#
spin spins a motor in one of two directions forever. The motor will continue to spin until it is given another action, like spinning in a different direction or stopping.
Χρήση:
Ένα από τα δύο διαθέσιμα αντικείμενα κινητήρα μπορεί να χρησιμοποιηθεί με αυτήν τη μέθοδο, όπως φαίνεται παρακάτω:
μοτέρ |
Εντολή |
|---|---|
|
|
|
|
Παράμετροι |
Περιγραφή |
|---|---|
|
Η κατεύθυνση περιστροφής του κινητήρα:
|
def main():
# Raise the Arm before driving toward a Pin
arm_motor.spin(FORWARD)
wait(1, SECONDS)
arm_motor.stop()
# VR threads — Do not delete
vr_thread(main)
περιστροφή_για#
Η συνάρτηση spin_for περιστρέφει έναν κινητήρα για μια συγκεκριμένη απόσταση. Η περιστροφή είναι σχετική με την τρέχουσα θέση του κινητήρα. Το έργο θα περιμένει μέχρι να ολοκληρωθεί η περιστροφή του κινητήρα πριν εκτελεστεί η επόμενη γραμμή κώδικα.
Χρήση:
Ένα από τα δύο διαθέσιμα αντικείμενα κινητήρα μπορεί να χρησιμοποιηθεί με αυτήν τη μέθοδο, όπως φαίνεται παρακάτω:
μοτέρ |
Εντολή |
|---|---|
|
|
|
|
Παράμετροι |
Περιγραφή |
|---|---|
|
Η κατεύθυνση περιστροφής του κινητήρα:
|
|
Η απόσταση που περιστρέφεται ο κινητήρας. |
|
Προαιρετικά. Η μονάδα απόστασης: |
|
Προαιρετικό.
|
def main():
# Raise the Arm to carry the Pin to the Goal
arm_motor.spin_for(FORWARD, 800, DEGREES)
# VR threads — Do not delete
vr_thread(main)
περιστροφή_σε_θέση#
spin_to_position περιστρέφει έναν κινητήρα σε μια συγκεκριμένη θέση.
Η θέση ενός κινητήρα είναι η απόσταση περιστροφής του, μετρούμενη σε DEGREES ή TURNSΜία στροφή ισούται με 360 μοίρες. Στην αρχή ενός έργου, η θέση του κινητήρα βραχίονα ορίζεται στις 0 μοίρες. Ο κινητήρας με δαγκάνα αποτελεί εξαίρεση — ξεκινά στις 467 μοίρες (πλήρως κλειστός). Η θέση του κινητήρα μπορεί επίσης να οριστεί χρησιμοποιώντας τη μέθοδο set_position.
Οι τιμές θέσης είναι απόλυτες. Αυτό σημαίνει ότι η κατεύθυνση της περιστροφής εξαρτάται από την τρέχουσα θέση του κινητήρα.
Για παράδειγμα, αν ο κινητήρας ξεκινήσει στις 0 μοίρες και περιστραφεί σε μια θέση 720 μοιρών, θα περιστραφεί προς τα εμπρός κατά δύο στροφές. Αν στη συνέχεια περιστραφεί σε μια θέση 360 μοιρών, θα περιστραφεί προς τα πίσω κατά μία στροφή, επειδή οι 360 μοίρες είναι μικρότερες από τις 720.
Χρήση:
Ένα από τα δύο διαθέσιμα αντικείμενα κινητήρα μπορεί να χρησιμοποιηθεί με αυτήν τη μέθοδο, όπως φαίνεται παρακάτω:
μοτέρ |
Εντολή |
|---|---|
|
|
|
|
Παράμετροι |
Περιγραφή |
|---|---|
|
Η τιμή θέσης στην οποία θα περιστραφεί ο κινητήρας. |
|
Προαιρετικά. Η μονάδα θέσης: |
|
Προαιρετικό.
|
def main():
# Raise the Arm, then release the Pin
arm_motor.spin_to_position(800, DEGREES)
claw_motor.spin_for(REVERSE, 180, DEGREES)
# VR threads — Do not delete
vr_thread(main)
στάση#
stop σταματά την περιστροφή ενός κινητήρα.
Χρήση:
Ένα από τα δύο διαθέσιμα αντικείμενα κινητήρα μπορεί να χρησιμοποιηθεί με αυτήν τη μέθοδο, όπως φαίνεται παρακάτω:
μοτέρ |
Εντολή |
|---|---|
|
|
|
|
Παράμετροι |
Περιγραφή |
|---|---|
Αυτή η μέθοδος δεν έχει παραμέτρους. |
def main():
# Raise the Arm partway to hold the Pin
arm_motor.spin(FORWARD)
wait(1, SECONDS)
arm_motor.stop()
# VR threads — Do not delete
vr_thread(main)
Μεταλλάκτες#
ορισμός_θέσης#
Η θέση ενός κινητήρα είναι η απόσταση περιστροφής του, μετρούμενη σε DEGREES ή TURNSΜία στροφή ισούται με 360 μοίρες. set_position αλλάζει την τρέχουσα θέση του κινητήρα σε μια νέα τιμή.
Για παράδειγμα, εάν ένας κινητήρας έχει περιστραφεί στις 180 μοίρες, η ρύθμιση της θέσης σε 0 μοίρες θα επαναφέρει αυτήν τη θέση από 180 σε 0 μοίρες. Στη συνέχεια, ο κινητήρας μπορεί να περιστραφεί σε θέσεις με βάση αυτήν τη νέα τιμή.
Χρήση:
Ένα από τα δύο διαθέσιμα αντικείμενα κινητήρα μπορεί να χρησιμοποιηθεί με αυτήν τη μέθοδο, όπως φαίνεται παρακάτω:
μοτέρ |
Εντολή |
|---|---|
|
|
|
|
Παράμετροι |
Περιγραφή |
|---|---|
|
Η τιμή θέσης που θα οριστεί για τον κινητήρα. |
|
Προαιρετικά. Η μονάδα θέσης: |
def main():
# Reset encoder, raise Arm, place Pin
arm_motor.set_position(0, DEGREES)
arm_motor.spin_to_position(800, DEGREES)
claw_motor.spin_for(REVERSE, 180, DEGREES)
# VR threads — Do not delete
vr_thread(main)
set_velocity#
set_velocity λέει σε έναν κινητήρα πόσο γρήγορα πρέπει να περιστραφεί. Ένα υψηλότερο ποσοστό κάνει τον κινητήρα να περιστρέφεται πιο γρήγορα και ένα χαμηλότερο ποσοστό κάνει τον κινητήρα να περιστρέφεται πιο αργά.
Κάθε έργο ξεκινά με κάθε κινητήρα να περιστρέφεται με ταχύτητα 50% από προεπιλογή.
Σημείωση: Μια υψηλότερη ταχύτητα κάνει τον κινητήρα να περιστρέφεται πιο γρήγορα, αλλά μπορεί να είναι λιγότερο ακριβής. Μια χαμηλότερη ταχύτητα κάνει τον κινητήρα να περιστρέφεται πιο αργά, αλλά μπορεί να είναι πιο ακριβής.
Χρήση:
Ένα από τα δύο διαθέσιμα αντικείμενα κινητήρα μπορεί να χρησιμοποιηθεί με αυτήν τη μέθοδο, όπως φαίνεται παρακάτω:
μοτέρ |
Εντολή |
|---|---|
|
|
|
|
Παράμετροι |
Περιγραφή |
|---|---|
|
Η ταχύτητα περιστροφής κυμαίνεται από 0% έως 100%. Αυτή μπορεί να είναι ένας ακέραιος αριθμός |
|
Η μονάδα ταχύτητας: |
def main():
# Raise the Arm fast to release the Pin
arm_motor.set_velocity(100, PERCENT)
arm_motor.spin_for(FORWARD, 800, DEGREES)
claw_motor.spin_for(REVERSE, 180, DEGREES)
# VR threads — Do not delete
vr_thread(main)
set_timeout#
set_timeout ορίζει τον χρόνο που ένας κινητήρας θα προσπαθήσει να ολοκληρώσει μια κίνηση. Εάν ο κινητήρας δεν μπορεί να ολοκληρώσει σε αυτό το χρονικό διάστημα, θα σταματήσει να προσπαθεί και θα προχωρήσει στην επόμενη γραμμή κώδικα. Αυτό εμποδίζει τον κινητήρα να κολλήσει σε μια κίνηση.
Χρήση:
Ένα από τα δύο διαθέσιμα αντικείμενα κινητήρα μπορεί να χρησιμοποιηθεί με αυτήν τη μέθοδο, όπως φαίνεται παρακάτω:
μοτέρ |
Εντολή |
|---|---|
|
|
|
|
Παράμετροι |
Περιγραφή |
|---|---|
|
Ο χρόνος που μπορεί να προσπαθήσει ο κινητήρας για να ολοκληρώσει μια κίνηση. Αυτός μπορεί να είναι ένας θετικός |
|
Η μονάδα χρόνου: |
def main():
# Score a Pin in a Neutral Goal
drivetrain.turn_for(LEFT, 110, DEGREES)
arm_motor.set_timeout(1, SECONDS)
arm_motor.spin_for(FORWARD, 1800, DEGREES)
drivetrain.drive_for(FORWARD, 25, INCHES)
claw_motor.spin_for(REVERSE, 180, DEGREES)
# VR threads — Do not delete
vr_thread(main)
Αποκτητές#
είναι_ολοκληρωμένο#
Η συνάρτηση is_done επιστρέφει εάν ο κινητήρας έχει ολοκληρώσει την κίνησή του, ως δυαδική τιμή. Αυτή μπορεί να χρησιμοποιηθεί για τον έλεγχο του χρονισμού άλλων συμπεριφορών με βάση την κίνηση του κινητήρα.
True— Ο κινητήρας έχει ολοκληρώσει την κίνηση.False— Ο κινητήρας εξακολουθεί να κινείται.
Αυτή η μέθοδος λειτουργεί σε συνδυασμό με τις ακόλουθες μεθόδους κίνησης που έχουν την παράμετρο wait : spin_for και spin_to_position.
Χρήση:
Ένα από τα δύο διαθέσιμα αντικείμενα κινητήρα μπορεί να χρησιμοποιηθεί με αυτήν τη μέθοδο, όπως φαίνεται παρακάτω:
μοτέρ |
Εντολή |
|---|---|
|
|
|
|
Παράμετροι |
Περιγραφή |
|---|---|
Αυτή η μέθοδος δεν έχει παραμέτρους. |
def main():
# Raise the Arm while driving to the Goal
arm_motor.spin_to_position(800, DEGREES, wait=False)
wait(0.1, SECONDS)
while not arm_motor.is_done():
drivetrain.drive(FORWARD)
wait(5, MSEC)
drivetrain.stop()
# VR threads — Do not delete
vr_thread(main)
περιστρέφεται#
is_spinning επιστρέφει εάν ο κινητήρας περιστρέφεται, ως δυαδική τιμή. Αυτό μπορεί να χρησιμοποιηθεί για τον έλεγχο του χρονισμού άλλων συμπεριφορών με βάση την κίνηση του κινητήρα.
True— Ο κινητήρας περιστρέφεται.False— Ο κινητήρας δεν περιστρέφεται.
Αυτή η μέθοδος λειτουργεί σε συνδυασμό με τις ακόλουθες μεθόδους κίνησης που έχουν την παράμετρο wait : spin_for και spin_to_position.
Χρήση:
Ένα από τα δύο διαθέσιμα αντικείμενα κινητήρα μπορεί να χρησιμοποιηθεί με αυτήν τη μέθοδο, όπως φαίνεται παρακάτω:
μοτέρ |
Εντολή |
|---|---|
|
|
|
|
Παράμετροι |
Περιγραφή |
|---|---|
Αυτή η μέθοδος δεν έχει παραμέτρους. |
def main():
# Raise the Arm while driving to the Goal, then release the Pin
arm_motor.spin_to_position(800, DEGREES, wait=False)
wait(0.1, SECONDS)
while arm_motor.is_spinning():
drivetrain.drive_for(FORWARD, 25, MM)
claw_motor.spin_for(REVERSE, 180, DEGREES)
# VR threads — Do not delete
vr_thread(main)
θέση#
Η θέση ενός κινητήρα είναι η απόσταση περιστροφής του, μετρούμενη σε DEGREES ή TURNSΜία στροφή ισούται με 360 μοίρες. Η θέση position επιστρέφει την τρέχουσα θέση του κινητήρα.
Στην αρχή ενός έργου, η θέση του μοτέρ βραχίονα ορίζεται στις 0 μοίρες. Ο μοτέρ με δαγκάνα αποτελεί εξαίρεση — ξεκινά στις 467 μοίρες (πλήρως κλειστός). Εάν ο μοτέρ περιστραφεί μία πλήρη στροφή προς τα εμπρός, η θέση αυξάνεται. Εάν ο μοτέρ περιστραφεί προς την αντίθετη κατεύθυνση, η θέση μειώνεται.
Χρήση:
Ένα από τα δύο διαθέσιμα αντικείμενα κινητήρα μπορεί να χρησιμοποιηθεί με αυτήν τη μέθοδο, όπως φαίνεται παρακάτω:
μοτέρ |
Εντολή |
|---|---|
|
|
|
|
Παράμετροι |
Περιγραφή |
|---|---|
|
Η μονάδα για την επιστροφή της θέσης του κινητήρα σε: |
def main():
# Raise the Arm, then release the Pin
while arm_motor.position(DEGREES) < 800:
arm_motor.spin(FORWARD)
wait(2, MSEC)
arm_motor.stop()
claw_motor.spin_for(REVERSE, 180, DEGREES)
# VR threads — Do not delete
vr_thread(main)
ταχύτητα#
Η ταχύτητα velocity επιστρέφει την ταχύτητα περιστροφής του κινητήρα.
Μια θετική τιμή σημαίνει ότι ο κινητήρας περιστρέφεται προς τα εμπρός. Μια αρνητική τιμή σημαίνει ότι ο κινητήρας περιστρέφεται προς τα πίσω.
Χρήση:
Ένα από τα δύο διαθέσιμα αντικείμενα κινητήρα μπορεί να χρησιμοποιηθεί με αυτήν τη μέθοδο, όπως φαίνεται παρακάτω:
μοτέρ |
Εντολή |
|---|---|
|
|
|
|
Παράμετροι |
Περιγραφή |
|---|---|
|
Η μονάδα ταχύτητας που θα επιστραφεί: |
def main():
# Show Arm Motor velocity while raising
arm_motor.set_velocity(100, PERCENT)
arm_motor.spin_to_position(800, DEGREES, wait=False)
wait(0.2, SECONDS)
brain.screen.print(arm_motor.velocity(PERCENT))
# VR threads — Do not delete
vr_thread(main)
Όραμα Τεχνητής Νοημοσύνης#
Αποκτητές#
λήψη_στιγμιότυπου#
take_snapshot φιλτράρει δεδομένα από το πλαίσιο του αισθητήρα AI Vision Sensor σε μία μόνο υπογραφή — μια αποθηκευμένη περιγραφή κάποιου πράγματος που μπορεί να αναγνωρίσει ο αισθητήρας, όπως ένα στοιχείο παιχνιδιού στο γήπεδο — και επιστρέφει μια πλειάδα.
Η πλειάδα αποθηκεύει αντικείμενα ταξινομημένα από το μεγαλύτερο στο μικρότερο κατά πλάτος, ξεκινώντας από τον δείκτη 0. Η πρόσβαση στις ιδιότητες κάθε αντικειμένου είναι δυνατή χρησιμοποιώντας τον δείκτη του. Επιστρέφεται μια κενή πλειάδα εάν δεν εντοπιστούν αντικείμενα που να ταιριάζουν.
Usage:
ai_vision.take_snapshot(signature)
Παράμετροι |
Περιγραφή |
|---|---|
|
Φιλτράρει το σύνολο δεδομένων ώστε να περιλαμβάνει μόνο δεδομένα της δεδομένης υπογραφής. Οι διαθέσιμες υπογραφές είναι:
|
def main():
# Raise the Arm, drive to the Goal, release the Pin
arm_motor.spin_for(FORWARD, 300, DEGREES)
drivetrain.drive_for(FORWARD, 10, INCHES)
claw_motor.spin_for(REVERSE, 180, DEGREES)
drivetrain.turn_for(LEFT, 70, DEGREES)
# Turn to face the Pin
drivetrain.set_turn_velocity(30, PERCENT)
while True:
ai_objects = ai_vision.take_snapshot(AiVision.ALL_AIOBJS)
if ai_objects:
if ai_objects[0].centerX < 140:
drivetrain.turn(LEFT)
elif ai_objects[0].centerX > 180:
drivetrain.turn(RIGHT)
else:
drivetrain.stop()
break
# VR threads — Do not delete
vr_thread(main)
Σκηνικά θέατρου#
Υπάρχουν επτά ιδιότητες που περιλαμβάνονται σε κάθε αντικείμενο που αποθηκεύεται σε μια πλειάδα μετά τη χρήση της take_snapshot.
Όλες οι τιμές ιδιοτήτων εκτός από .id περιγράφουν τη θέση και το μέγεθος του ανιχνευμένου αντικειμένου στην προβολή του αισθητήρα AI Vision Sensor τη στιγμή που χρησιμοποιήθηκε take_snapshot Αυτές οι τιμές μετριούνται σε pixel, με βάση την ανάλυση 320 επί 240 pixel του αισθητήρα.
.πλάτος#
Η συνάρτηση .width επιστρέφει το πλάτος του ανιχνευμένου αντικειμένου σε pixel, το οποίο είναι ένας ακέραιος αριθμός μεταξύ 1 και 320.
def main():
# Raise the Arm, drive to the Goal, release the Pin
arm_motor.spin_for(FORWARD, 300, DEGREES)
drivetrain.drive_for(FORWARD, 10, INCHES)
claw_motor.spin_for(REVERSE, 180, DEGREES)
drivetrain.turn_for(LEFT, 70, DEGREES)
# Approach the next Cup and Pin
drivetrain.set_drive_velocity(30, PERCENT)
while True:
ai_objects = ai_vision.take_snapshot(AiVision.ALL_AIOBJS)
if ai_objects:
if ai_objects[0].width > 140:
drivetrain.stop()
break
else:
drivetrain.drive(FORWARD)
# VR threads — Do not delete
vr_thread(main)
.ύψος#
Η συνάρτηση .height επιστρέφει το ύψος του ανιχνευμένου αντικειμένου σε pixel, το οποίο είναι ένας ακέραιος αριθμός μεταξύ 1 και 240.
def main():
# Raise the Arm, drive to the Goal, release the Pin
arm_motor.spin_for(FORWARD, 300, DEGREES)
drivetrain.drive_for(FORWARD, 10, INCHES)
claw_motor.spin_for(REVERSE, 180, DEGREES)
drivetrain.turn_for(LEFT, 70, DEGREES)
# Approach the next Cup and Pin
drivetrain.set_drive_velocity(30, PERCENT)
while True:
ai_objects = ai_vision.take_snapshot(AiVision.ALL_AIOBJS)
if ai_objects:
if ai_objects[0].height > 200:
drivetrain.stop()
break
else:
drivetrain.drive(FORWARD)
# VR threads — Do not delete
vr_thread(main)
.centerX#
.centerX επιστρέφει τη συντεταγμένη x του κέντρου του ανιχνευμένου αντικειμένου σε pixel, η οποία είναι ένας ακέραιος αριθμός μεταξύ 0 και 320.
def main():
# Raise the Arm, drive to the Goal, release the Pin
arm_motor.spin_for(FORWARD, 300, DEGREES)
drivetrain.drive_for(FORWARD, 10, INCHES)
claw_motor.spin_for(REVERSE, 180, DEGREES)
drivetrain.turn_for(LEFT, 70, DEGREES)
# Turn and approach the next Cup and Pin
drivetrain.set_turn_velocity(30, PERCENT)
while True:
ai_objects = ai_vision.take_snapshot(AiVision.ALL_AIOBJS)
if ai_objects:
if ai_objects[0].centerX < 140:
drivetrain.turn_for(LEFT, 5, DEGREES)
else:
drivetrain.drive_for(FORWARD, 25, INCHES)
break
# VR threads — Do not delete
vr_thread(main)
.centerY#
.centerY επιστρέφει τη συντεταγμένη y του κέντρου του ανιχνευμένου αντικειμένου σε pixel, η οποία είναι ένας ακέραιος αριθμός μεταξύ 0 και 240.
def main():
# Raise the Arm, drive to the Goal, release the Pin
arm_motor.spin_for(FORWARD, 300, DEGREES)
drivetrain.drive_for(FORWARD, 10, INCHES)
claw_motor.spin_for(REVERSE, 180, DEGREES)
drivetrain.turn_for(LEFT, 70, DEGREES)
# Approach the next Cup and Pin
drivetrain.set_drive_velocity(30, PERCENT)
while True:
ai_objects = ai_vision.take_snapshot(AiVision.ALL_AIOBJS)
if ai_objects:
if ai_objects[0].centerY > 230:
drivetrain.stop()
break
else:
drivetrain.drive(FORWARD)
# VR threads — Do not delete
vr_thread(main)
.originX#
.originX επιστρέφει τη συντεταγμένη x της επάνω αριστερής γωνίας του πλαισίου οριοθέτησης του ανιχνευμένου αντικειμένου σε pixel, η οποία είναι ένας ακέραιος αριθμός μεταξύ 0 και 320.
def main():
# Raise the Arm, drive to the Goal, release the Pin
arm_motor.spin_for(FORWARD, 300, DEGREES)
drivetrain.drive_for(FORWARD, 10, INCHES)
claw_motor.spin_for(REVERSE, 180, DEGREES)
drivetrain.turn_for(LEFT, 70, DEGREES)
# Turn and approach the next Cup and Pin
drivetrain.set_turn_velocity(30, PERCENT)
while True:
ai_objects = ai_vision.take_snapshot(AiVision.ALL_AIOBJS)
if ai_objects:
if ai_objects[0].originX < 100:
drivetrain.turn_for(LEFT, 5, DEGREES)
else:
drivetrain.drive_for(FORWARD, 25, INCHES)
break
# VR threads — Do not delete
vr_thread(main)
.originY#
.originY επιστρέφει τη συντεταγμένη y της επάνω αριστερής γωνίας του πλαισίου οριοθέτησης του ανιχνευμένου αντικειμένου σε pixel, η οποία είναι ένας ακέραιος αριθμός μεταξύ 0 και 240.
def main():
# Raise the Arm, drive to the Goal, release the Pin
arm_motor.spin_for(FORWARD, 300, DEGREES)
drivetrain.drive_for(FORWARD, 10, INCHES)
claw_motor.spin_for(REVERSE, 180, DEGREES)
drivetrain.turn_for(LEFT, 70, DEGREES)
# Approach the next Cup and Pin
drivetrain.set_drive_velocity(30, PERCENT)
while True:
ai_objects = ai_vision.take_snapshot(AiVision.ALL_AIOBJS)
if ai_objects:
if ai_objects[0].originY > 140:
drivetrain.stop()
break
else:
drivetrain.drive(FORWARD)
# VR threads — Do not delete
vr_thread(main)
.ταυτότητα#
Η συνάρτηση .id επιστρέφει το ID της ανιχνευμένης ταξινόμησης AI ως ακέραιο αριθμό.
Ταξινόμηση Τεχνητής Νοημοσύνης |
ταυτότητα |
Υπογραφή |
|---|---|---|
ΚόκκινοΜπλεΚαρφίτσα |
0 |
|
ΜπλεΚίτρινηΚαρφίτσα |
1 |
|
ΚόκκινοΚίτρινοΚαρφίτσα |
2 |
|
Κίτρινη καρφίτσα |
3 |
|
Φλιτζάνι |
4 |
|
def main():
# Raise the Arm, drive to the Goal, release the Pin
arm_motor.spin_for(FORWARD, 300, DEGREES)
drivetrain.drive_for(FORWARD, 10, INCHES)
claw_motor.spin_for(REVERSE, 180, DEGREES)
drivetrain.turn_for(LEFT, 70, DEGREES)
# Display the ID of the next closest object
while True:
ai_objects = ai_vision.take_snapshot(AiVision.ALL_AIOBJS)
if ai_objects:
brain.screen.print(ai_objects[0].id)
break
# VR threads — Do not delete
vr_thread(main)
Κονσόλα#
Η Κονσόλα εμφανίζει κείμενο, αριθμούς και τιμές μεταβλητών ενώ εκτελείται ένα έργο. Οι μέθοδοι κονσόλας μπορούν επίσης να μετακινήσουν τον κέρσορα σε μια νέα γραμμή, να διαγράψουν την Κονσόλα και να προσθέσουν μεταβλητές ή τιμές αισθητήρων στην καρτέλα Παρακολούθηση.
Αποτύπωμα#
εγκέφαλος.οθόνη.εκτύπωση#
brain.screen.print εμφανίζει κείμενο, αριθμούς ή τιμές μεταβλητών στην Κονσόλα χρησιμοποιώντας την τρέχουσα θέση του κέρσορα.
Χρησιμοποιήστε την συνάρτηση brain.screen.next_row όταν θέλετε η επόμενη εκτυπωμένη τιμή να ξεκινά σε μια νέα γραμμή.
Usage:
brain.screen.print(value)
Παράμετροι |
Περιγραφή |
|---|---|
|
Το κείμενο, ο αριθμός ή η τιμή μεταβλητής που θα εμφανίζεται στην Κονσόλα. |
def main():
# Display a message in the Console
brain.screen.print("Hello, robot!")
# VR threads — Do not delete
vr_thread(main)
brain.screen.next_row#
brain.screen.next_row μετακινεί τον κέρσορα στη στήλη 1 στην επόμενη γραμμή στην Κονσόλα. Η επόμενη τιμή που θα εκτυπωθεί θα εμφανιστεί σε αυτήν τη γραμμή.
Usage:
brain.screen.next_row()
Παράμετροι |
Περιγραφή |
|---|---|
Αυτή η μέθοδος δεν έχει παραμέτρους. |
def main():
# Print on two rows
brain.screen.print("Row 1")
brain.screen.next_row()
brain.screen.print("Row 2")
# VR threads — Do not delete
vr_thread(main)
brain.screen.clear_screen#
brain.screen.clear_screen διαγράφει όλες τις γραμμές από την Κονσόλα και μετακινεί τον κέρσορα πίσω στη Γραμμή 1.
Usage:
brain.screen.clear_screen()
Παράμετροι |
Περιγραφή |
|---|---|
Αυτή η μέθοδος δεν έχει παραμέτρους. |
def main():
# Display text, then clear it after two seconds
brain.screen.print("This will disappear...")
wait(2, SECONDS)
brain.screen.clear_screen()
# VR threads — Do not delete
vr_thread(main)
Ελεγκτής εκπομπών#
μεταβλητή_παρακολούθησης#
monitor_variable προσθέτει μία ή περισσότερες προκαθορισμένες μεταβλητές στην καρτέλα Monitor στο VEXcode. Αυτό σας επιτρέπει να παρακολουθείτε την αλλαγή της τιμής μιας μεταβλητής ενώ εκτελείται ένα έργο.
Οι μεταβλητές πρέπει να είναι καθολικές για να είναι δυνατή η επιτυχής παρακολούθησή τους από την παράμετρο monitor_variable Δώστε το όνομα κάθε μεταβλητής ως συμβολοσειρά.
Usage:
monitor_variable(“variable”)
monitor_variable(“variable1”, “variable2”)
Παράμετροι |
Περιγραφή |
|---|---|
|
Το όνομα μιας προκαθορισμένης καθολικής μεταβλητής προς παρακολούθηση, που δίνεται ως συμβολοσειρά. Για να παρακολουθείτε περισσότερες από μία μεταβλητές, διαχωρίστε κάθε όνομα μεταβλητής με κόμμα. |
def main():
# Monitor the number of loops
global loops
monitor_variable("loops")
# Turn in a full circle 3 times
for loops in range(12):
drivetrain.turn_for(RIGHT, 90, DEGREES)
# VR threads — Do not delete
vr_thread(main)
αισθητήρας_παρακολούθησης#
monitor_sensor προσθέτει μία ή περισσότερες τιμές αισθητήρων στην καρτέλα Monitor στο VEXcode. Αυτό σας επιτρέπει να παρακολουθείτε τις τιμές αισθητήρων να αλλάζουν ενώ εκτελείται ένα έργο.
Παρέχετε κάθε τιμή αισθητήρα ως συμβολοσειρά.
Usage:
monitor_sensor(“sensor”)
monitor_sensor(“sensor1”, “sensor2”)
Παράμετροι |
Περιγραφή |
|---|---|
|
The sensor value to monitor, given as a string. To monitor more than one sensor value, separate each sensor value with a comma. Supported sensor identifiers include:
|
def main():
# Monitor the robot's heading
monitor_sensor("drivetrain.heading")
drivetrain.turn_for(RIGHT, 450, DEGREES)
# VR threads — Do not delete
vr_thread(main)
Εξεύρεση της φόρας#
Απόσταση#
βρέθηκε_αντικείμενο#
Η συνάρτηση found_object επιστρέφει εάν ο αισθητήρας απόστασης ανιχνεύει αυτήν τη στιγμή ένα αντικείμενο εντός 2000 mm.
True— Ο αισθητήρας απόστασης ανιχνεύει ένα αντικείμενο.False— Ο αισθητήρας απόστασης δεν ανιχνεύει αντικείμενο.
Usage:
distance.found_object()
Παράμετροι |
Περιγραφή |
|---|---|
Αυτή η μέθοδος δεν έχει παραμέτρους. |
def main():
# Turn until something is detected, then release the Pin
drivetrain.turn(RIGHT)
while True:
wait(5, MSEC)
if distance.found_object():
drivetrain.stop()
break
arm_motor.spin_for(FORWARD, 300, DEGREES)
drivetrain.drive_for(FORWARD, 10, INCHES)
claw_motor.spin_for(REVERSE, 180, DEGREES)
# VR threads — Do not delete
vr_thread(main)
απόσταση_αντικειμένου#
object_distance επιστρέφει την απόσταση μεταξύ του αισθητήρα απόστασης και του πλησιέστερου αντικειμένου που ανιχνεύθηκε.
Usage:
distance.object_distance(units)
Παράμετροι |
Περιγραφή |
|---|---|
|
Η μονάδα απόστασης: |
def main():
# Drive until 200 mm from the Goal, then release the Pin
while distance.object_distance(MM) > 200:
wait(5, MSEC)
drivetrain.drive(FORWARD)
drivetrain.stop()
arm_motor.spin_for(FORWARD, 300, DEGREES)
drivetrain.drive_for(FORWARD, 10, INCHES)
claw_motor.spin_for(REVERSE, 180, DEGREES)
# VR threads — Do not delete
vr_thread(main)
GPS#
x_θέση#
x_position επιστρέφει την τρέχουσα συντεταγμένη x ενός αισθητήρα GPS (Game Positioning System™) στο γήπεδο.
Usage:
gps.x_position(units)
Παράμετροι |
Περιγραφή |
|---|---|
μονάδες |
Η μονάδα της τιμής μετατόπισης: |
def main():
# Raise the Arm, drive to the Goal, release the Pin
arm_motor.spin_for(FORWARD, 300, DEGREES)
drivetrain.drive(FORWARD)
while not gps.x_position(MM) > -1370:
wait(2, MSEC)
drivetrain.stop()
claw_motor.spin_for(REVERSE, 180, DEGREES)
# VR threads — Do not delete
vr_thread(main)
y_θέση#
y_position επιστρέφει την τρέχουσα συντεταγμένη y ενός αισθητήρα GPS (Game Positioning System™) στο γήπεδο.
Usage:
gps.y_position(units)
Παράμετροι |
Περιγραφή |
|---|---|
μονάδες |
Η μονάδα της τιμής μετατόπισης: |
def main():
# Raise the Arm, drive to the Goal, release the Pin
arm_motor.spin_for(FORWARD, 300, DEGREES)
drivetrain.drive(FORWARD)
while not gps.y_position(MM) < -450:
wait(2, MSEC)
drivetrain.stop()
claw_motor.spin_for(REVERSE, 180, DEGREES)
# VR threads — Do not delete
vr_thread(main)
επικεφαλίδα#
Η heading επιστρέφει την κατεύθυνση προς την οποία είναι στραμμένο το ρομπότ τη δεδομένη στιγμή, με βάση τις ενδείξεις του αισθητήρα GPS (Game Positioning System™) από 0 έως 359 μοίρες.
Usage:
gps.heading()
Παράμετροι |
Περιγραφή |
|---|---|
Αυτή η μέθοδος δεν έχει παραμέτρους. |
def main():
# Raise the Arm, drive to the Goal, release the Pin
monitor_sensor("gps.heading")
arm_motor.spin_for(FORWARD, 300, DEGREES)
drivetrain.drive_for(FORWARD, 10, INCHES)
claw_motor.spin_for(REVERSE, 180, DEGREES)
# Turn left to face the Neutral Goal
drivetrain.set_turn_velocity(30, PERCENT)
drivetrain.turn(LEFT)
while not gps.heading() < 18:
wait(2, MSEC)
drivetrain.stop()
# VR threads — Do not delete
vr_thread(main)