Σύστημα μετάδοσης κίνησης#
Εισαγωγή#
Το ρομπότ VEX IQ (2ης γενιάς) χρησιμοποιεί ένα σύστημα μετάδοσης κίνησης για την οδήγηση και την περιστροφή. Το σύστημα μετάδοσης κίνησης αποτελείται από κινητήρες και τροχούς που συνεργάζονται για την κίνηση του ρομπότ.
Ένα διαμορφωμένο σύστημα μετάδοσης κίνησης μπορεί να χρησιμοποιήσει έναν συνδεδεμένο Γυροσκοπικό Αισθητήρα, τον ενσωματωμένο Αδρανειακό Αισθητήρα του εγκεφάλου ή καθόλου αισθητήρα. Όταν χρησιμοποιείται ένας αισθητήρας, το σύστημα μετάδοσης κίνησης τον χρησιμοποιεί για να βοηθήσει το ρομπότ να κινηθεί και να στρίψει με ακρίβεια. Στην αρχή κάθε έργου, το σύστημα μετάδοσης κίνησης βαθμονομεί αυτόματα τον αισθητήρα. Κρατήστε το ρομπότ ακίνητο για περίπου 2 δευτερόλεπτα κατά τη διάρκεια της βαθμονόμησης, ώστε το ρομπότ να μπορεί να κινηθεί και να στρίψει σωστά.
Αυτή η σελίδα χρησιμοποιεί drivetrain ως παράδειγμα ονόματος συστήματος μετάδοσης κίνησης. Αντικαταστήστε το με το δικό σας διαμορφωμένο όνομα, όπως απαιτείται.
Υπάρχουν πολλοί τρόποι για να κωδικοποιήσετε το σύστημα μετάδοσης κίνησης. Παρακάτω είναι μια λίστα με όλες τις μεθόδους συστήματος μετάδοσης κίνησης:
Ενέργειες — Μετακίνηση και περιστροφή του ρομπότ.
drive— Μετακινεί το ρομπότ προς τα εμπρός ή προς τα πίσω για πάντα.drive_for— Μετακινεί το ρομπότ προς τα εμπρός ή προς τα πίσω για μια συγκεκριμένη απόσταση.turn— Στρέφει το ρομπότ αριστερά ή δεξιά για πάντα.turn_for— Στρέφει το ρομπότ αριστερά ή δεξιά για έναν συγκεκριμένο αριθμό μοιρών.turn_to_heading— Στρέφει το ρομπότ ώστε να βλέπει προς μια συγκεκριμένη κατεύθυνση από -359 σε 359 μοίρες. Το ρομπότ θα στρίψει προς τη συντομότερη κατεύθυνση για να φτάσει στην κατεύθυνση-στόχο.turn_to_rotation— Στρέφει το ρομπότ σε μια συγκεκριμένη περιστροφή.stop— Σταματά την κίνηση του ρομπότ.calibrate_drivetrain— Βαθμονομεί τον αισθητήρα που έχει διαμορφωθεί με το σύστημα μετάδοσης κίνησης.
Μεταλλαγμένοι — Προσαρμόστε τις ρυθμίσεις του συστήματος μετάδοσης κίνησης.
set_drive_velocity— Υποδεικνύει στο ρομπότ πόσο γρήγορα πρέπει να οδηγήσει.set_turn_velocity— Υποδεικνύει στο ρομπότ πόσο γρήγορα πρέπει να στρίψει.set_stopping— Υποδεικνύει πώς το ρομπότ θα σταματήσει να κινείται: φρενάροντας, κάνοντας ελεύθερη κίνηση ή κρατώντας το.set_timeout— Ορίζει τον χρόνο που θα προσπαθήσει το ρομπότ να ολοκληρώσει μια κίνηση.set_heading— Αλλάζει την τρέχουσα κατεύθυνση του ρομπότ σε νέα.set_rotation— Αλλάζει την τρέχουσα περιστροφή του ρομπότ σε μια νέα περιστροφή.set_turn_threshold— Υποδεικνύει πόσο κοντά πρέπει να φτάσει το ρομπότ σε μια γωνία-στόχο πριν ολοκληρωθεί μια στροφή.set_turn_constant— Αλλάζει την ένταση με την οποία το ρομπότ διορθώνει τις στροφές του.
Λήψη κωδικών πρόσβασης — Ελέγξτε την κατάσταση της κίνησης.
heading— Επιστρέφει την τρέχουσα κατεύθυνση του ρομπότ από 0 έως 359 μοίρες.rotation— Επιστρέφει την τρέχουσα περιστροφή του ρομπότ.velocity— Επιστρέφει την ταχύτητα με την οποία κινείται το ρομπότ.current— Επιστρέφει την ποσότητα ηλεκτρικού ρεύματος που χρησιμοποιεί το σύστημα μετάδοσης κίνησης.is_moving— Επιστρέφει εάν το ρομπότ κινείται, ως λογική τιμή.is_done— Επιστρέφει εάν το ρομπότ έχει ολοκληρώσει την κίνησή του, ως λογική τιμή.is_turning— Επιστρέφει εάν το ρομπότ γυρίζει, ως λογική τιμή.power— Επιστρέφει την ταχύτητα με την οποία το σύστημα μετάδοσης κίνησης χρησιμοποιεί ενέργεια.torque— Επιστρέφει τη ροπή που χρησιμοποιεί το σύστημα μετάδοσης κίνησης.efficiency— Επιστρέφει πόσο αποτελεσματικά χρησιμοποιεί την ισχύ το σύστημα μετάδοσης κίνησης.temperature— Επιστρέφει πόσο ζεστό είναι το σύστημα μετάδοσης κίνησης.
Κατασκευαστές — Δημιουργήστε και διαμορφώστε χειροκίνητα το σύστημα μετάδοσης κίνησης.
DriveTrain— Δημιουργεί ένα σύστημα μετάδοσης κίνησης χωρίς γυροσκοπικό ή αδρανειακό αισθητήρα.SmartDrive— Δημιουργεί ένα σύστημα μετάδοσης κίνησης με γυροσκοπικό ή αδρανειακό αισθητήρα.
Ενέργειες#
drive#
drive κινεί το ρομπότ προς τα εμπρός ή προς τα πίσω για πάντα. Το ρομπότ θα συνεχίσει να κινείται μέχρι να του δοθεί μια άλλη ενέργεια, όπως στροφή ή στάση.
Usage:
drivetrain.drive(direction, velocity, units)
Παράμετροι |
Περιγραφή |
|---|---|
|
Η κατεύθυνση κίνησης του ρομπότ: |
|
Προαιρετικά. Η ταχύτητα με την οποία θα κινείται το ρομπότ κυμαίνεται από 0% έως 100% όταν χρησιμοποιείται |
|
Προαιρετικά. Η μονάδα ταχύτητας: |
# Drive forward then stop
drivetrain.drive(FORWARD)
wait(2, SECONDS)
drivetrain.stop()
# Drive slowly in reverse then stop
drivetrain.drive(REVERSE, 20, PERCENT)
wait(2, SECONDS)
drivetrain.stop()
drive_for#
Η συνάρτηση drive_for μετακινεί το ρομπότ προς τα εμπρός ή προς τα πίσω για μια συγκεκριμένη απόσταση. Το έργο θα περιμένει μέχρι να ολοκληρωθεί η κίνηση του ρομπότ πριν εκτελεστεί η επόμενη γραμμή κώδικα.
Usage:
drivetrain.drive_for(direction, distance, units, velocity, units_v, wait)
Παράμετροι |
Περιγραφή |
|---|---|
|
Η κατεύθυνση κίνησης του ρομπότ: |
|
Η απόσταση που διανύει το ρομπότ. Αυτή μπορεί να είναι ένας ακέραιος αριθμός |
|
Προαιρετικά. Η μονάδα απόστασης: |
|
Προαιρετικά. Η ταχύτητα με την οποία θα κινείται το ρομπότ κυμαίνεται από 0% έως 100% όταν χρησιμοποιείται |
|
Προαιρετικά. Η μονάδα ταχύτητας: |
|
Προαιρετικό. |
# Drive forward and backward
drivetrain.drive_for(FORWARD, 10)
drivetrain.drive_for(REVERSE, 10)
# Quickly drive forward and backward
drivetrain.drive_for(FORWARD, 200, MM, 100, PERCENT)
drivetrain.drive_for(REVERSE, 200, MM, 100, PERCENT)
turn#
turn γυρίζει το ρομπότ αριστερά ή δεξιά για πάντα. Το ρομπότ θα συνεχίσει να γυρίζει μέχρι να του δοθεί μια άλλη ενέργεια, όπως οδήγηση ή στάση.
Usage:
drivetrain.turn(direction, velocity, units)
Παράμετροι |
Περιγραφή |
|---|---|
|
Η κατεύθυνση που γυρίζει το ρομπότ: |
|
Προαιρετικά. Η ταχύτητα περιστροφής κυμαίνεται από 0% έως 100% όταν χρησιμοποιείται |
|
Προαιρετικά. Η μονάδα ταχύτητας: |
# Turn right and left, then stop
drivetrain.turn(RIGHT)
wait(2, SECONDS)
drivetrain.turn(LEFT)
wait(2, SECONDS)
drivetrain.stop()
# Quickly turn right and left, then stop
drivetrain.turn(RIGHT, 100, PERCENT)
wait(2, SECONDS)
drivetrain.turn(LEFT, 100, PERCENT)
wait(2, SECONDS)
drivetrain.stop()
turn_for#
turn_for γυρίζει το ρομπότ αριστερά ή δεξιά για έναν συγκεκριμένο αριθμό μοιρών ή στροφών. Η στροφή είναι σχετική με την τρέχουσα θέση του ρομπότ. Το έργο θα περιμένει μέχρι το ρομπότ να ολοκληρώσει την στροφή πριν εκτελεστεί η επόμενη γραμμή κώδικα.
Usage:
drivetrain.turn_for(direction, angle, units, velocity, units_v, wait)
Παράμετροι |
Περιγραφή |
|---|---|
|
Η κατεύθυνση που γυρίζει το ρομπότ: |
|
Η ποσότητα που γυρίζει το ρομπότ. Αυτή μπορεί να είναι ένας ακέραιος αριθμός |
|
Προαιρετικά. Η μονάδα στροφής: |
|
Προαιρετικά. Η ταχύτητα περιστροφής κυμαίνεται από 0% έως 100% όταν χρησιμοποιείται |
|
Προαιρετικά. Η μονάδα ταχύτητας: |
|
Προαιρετικό. |
# Turn the robot right and left
drivetrain.turn_for(RIGHT, 90, DEGREES)
wait(1, SECONDS)
drivetrain.turn_for(LEFT, 90, DEGREES)
# Quickly turn the robot right and left
drivetrain.turn_for(RIGHT, 90, DEGREES, 100, PERCENT)
wait(1, SECONDS)
drivetrain.turn_for(LEFT, 90, DEGREES, 100, PERCENT)
turn_to_heading#
Μια κατεύθυνση είναι η κατεύθυνση προς την οποία είναι στραμμένο το ρομπότ, μετρούμενη σε μοίρες. turn_to_heading γυρίζει το ρομπότ ώστε να στραφεί προς μια συγκεκριμένη κατεύθυνση από -359 σε 359 μοίρες. Το ρομπότ θα στρίψει προς τη συντομότερη κατεύθυνση για να φτάσει στην κατεύθυνση-στόχο.
Η αρχική κατεύθυνση του ρομπότ είναι 0 μοίρες.
Το έργο θα περιμένει μέχρι να ολοκληρώσει την περιστροφή του ρομπότ προτού εκτελεστεί η επόμενη γραμμή κώδικα.
Usage:
drivetrain.turn_to_heading(angle, units, velocity, units_v, wait)
Παράμετροι |
Περιγραφή |
|---|---|
|
Η κατεύθυνση προς την οποία πρέπει να είναι στραμμένο το ρομπότ, σε μοίρες. Αυτή μπορεί να είναι ένας ακέραιος αριθμός |
|
Προαιρετικό. Η μονάδα επικεφαλίδας: |
|
Προαιρετικά. Η ταχύτητα περιστροφής κυμαίνεται από 0% έως 100% όταν χρησιμοποιείται |
|
Προαιρετικά. Η μονάδα ταχύτητας: |
|
Προαιρετικό. |
# Turn to face the cardinal directions
drivetrain.turn_to_heading(90, DEGREES)
wait(1, SECONDS)
drivetrain.turn_to_heading(180, DEGREES)
wait(1, SECONDS)
drivetrain.turn_to_heading(270, DEGREES)
wait(1, SECONDS)
drivetrain.turn_to_heading(0, DEGREES)
# Turn twice slowly
drivetrain.turn_to_heading(90, DEGREES, 20, PERCENT)
wait(1, SECONDS)
drivetrain.turn_to_heading(180, DEGREES, 20, PERCENT)
turn_to_rotation#
turn_to_rotation γυρίζει το ρομπότ σε μια συγκεκριμένη περιστροφή.
Η περιστροφή είναι η περιστροφή του ρομπότ, μετρούμενη σε μοίρες ή στροφές. Στην αρχή ενός έργου, η τιμή περιστροφής ορίζεται σε 0 μοίρες. Η περιστροφή μπορεί επίσης να οριστεί χρησιμοποιώντας τη μέθοδο set_rotation.
Οι τιμές περιστροφής είναι απόλυτες. Αυτό σημαίνει ότι η κατεύθυνση της στροφής εξαρτάται από την τρέχουσα περιστροφή του ρομπότ. Η στροφή προς τα δεξιά αυξάνει την περιστροφή και η στροφή προς τα αριστερά τη μειώνει.
Για παράδειγμα, αν το ρομπότ ξεκινήσει από 0 μοίρες και στρίψετε σε περιστροφή 720 μοιρών, θα στρίψει δεξιά δύο φορές. Αν στη συνέχεια στρίψετε σε περιστροφή 360 μοιρών, θα στρίψει αριστερά μία φορά, επειδή οι 360 μοίρες είναι μικρότερες από 720 μοίρες.
Το έργο θα περιμένει μέχρι να ολοκληρώσει την περιστροφή του ρομπότ προτού εκτελεστεί η επόμενη γραμμή κώδικα.
Usage:
drivetrain.turn_to_rotation(angle, units, velocity, units_v, wait)
Παράμετροι |
Περιγραφή |
|---|---|
|
Η τιμή περιστροφής, σε μοίρες ή στροφές, στην οποία θα στραφεί το ρομπότ. Αυτή μπορεί να είναι ένας ακέραιος αριθμός |
|
Προαιρετικά. Η μονάδα περιστροφής: |
|
Προαιρετικά. Η ταχύτητα περιστροφής κυμαίνεται από 0% έως 100% όταν χρησιμοποιείται |
|
Προαιρετικά. Η μονάδα ταχύτητας: |
|
Προαιρετικό. |
# Turn left, then spin in a circle
# clockwise and face right
drivetrain.turn_to_rotation(-90, DEGREES)
wait(1, SECONDS)
drivetrain.turn_to_rotation(450, DEGREES)
# Turn left then slowly spin in a
# circle clockwise
drivetrain.turn_to_rotation(-90, DEGREES)
wait(1, SECONDS)
drivetrain.turn_to_rotation(450, DEGREES, 20, PERCENT)
stop#
stop σταματά την κίνηση του ρομπότ.
Usage:
drivetrain.stop(mode)
Παράμετροι |
Περιγραφή |
|---|---|
|
Προαιρετικά. Πώς θα σταματήσει το ρομπότ:
|
# Drive forward then stop
drivetrain.drive(FORWARD)
wait(2, SECONDS)
drivetrain.stop()
# Drive forward and coast to a stop
drivetrain.set_drive_velocity(100, PERCENT)
drivetrain.drive(FORWARD)
wait(2, SECONDS)
drivetrain.stop(COAST)
calibrate_drivetrain#
calibrate_drivetrain είναι μια ενσωματωμένη συνάρτηση που βαθμονομεί τον Γυροσκοπικό Αισθητήρα ή τον Αισθητήρα Αδράνειας που έχει διαμορφωθεί με το σύστημα μετάδοσης κίνησης.
Η βαθμονόμηση βοηθά τον αισθητήρα να μετρήσει σωστά την κίνηση. Κρατήστε το ρομπότ ακίνητο για περίπου 2 δευτερόλεπτα κατά τη διάρκεια της βαθμονόμησης. Εάν το ρομπότ κινηθεί κατά τη διάρκεια της βαθμονόμησης, ο αισθητήρας ενδέχεται να μην μετρήσει σωστά την κίνηση.
Το έργο θα περιμένει μέχρι να ολοκληρωθεί η βαθμονόμηση πριν εκτελεστεί η επόμενη γραμμή κώδικα.
Σημείωση: Αυτή η συνάρτηση δεν μπορεί να χρησιμοποιηθεί εντός του VS Code.
Usage:
calibrate_drivetrain()
Παράμετροι |
Περιγραφή |
|---|---|
Αυτή η συνάρτηση δεν έχει παραμέτρους. |
Μεταλλάκτες#
set_drive_velocity#
set_drive_velocity λέει στο ρομπότ πόσο γρήγορα πρέπει να οδηγήσει. Ένα υψηλότερο ποσοστό κάνει το ρομπότ να οδηγεί πιο γρήγορα και ένα χαμηλότερο ποσοστό κάνει το ρομπότ να οδηγεί πιο αργά.
Κάθε έργο ξεκινά με το ρομπότ να κινείται με ταχύτητα 50% από προεπιλογή.
Σημείωση: Μια υψηλότερη ταχύτητα κάνει το ρομπότ να κινείται πιο γρήγορα, αλλά μπορεί να είναι λιγότερο ακριβές. Μια χαμηλότερη ταχύτητα κάνει το ρομπότ να κινείται πιο αργά, αλλά μπορεί να είναι πιο ακριβές.
Usage:
drivetrain.set_drive_velocity(velocity, units)
Παράμετροι |
Περιγραφή |
|---|---|
|
Η ταχύτητα οδήγησης κυμαίνεται από 0% έως 100% όταν χρησιμοποιείται |
|
Προαιρετικά. Η μονάδα ταχύτητας: |
# Drive forward at different velocities
# Default velocity
drivetrain.drive_for(FORWARD, 150, MM)
wait(1, SECONDS)
# Drive slower
drivetrain.set_drive_velocity(20, PERCENT)
drivetrain.drive_for(FORWARD, 150, MM)
wait(1, SECONDS)
# Drive faster
drivetrain.set_drive_velocity(100, PERCENT)
drivetrain.drive_for(FORWARD, 150, MM)
set_turn_velocity#
set_turn_velocity λέει στο ρομπότ πόσο γρήγορα να στρίψει. Ένα υψηλότερο ποσοστό κάνει το ρομπότ να στρίψει πιο γρήγορα και ένα χαμηλότερο ποσοστό το κάνει να στρίψει πιο αργά.
Κάθε έργο ξεκινά με το ρομπότ να περιστρέφεται με ταχύτητα 50% από προεπιλογή.
Σημείωση: Μια υψηλότερη ταχύτητα κάνει το ρομπότ να περιστρέφεται πιο γρήγορα, αλλά μπορεί να είναι λιγότερο ακριβής. Μια χαμηλότερη ταχύτητα κάνει το ρομπότ να περιστρέφεται πιο αργά, αλλά μπορεί να είναι πιο ακριβής.
Usage:
drivetrain.set_turn_velocity(velocity, units)
Παράμετροι |
Περιγραφή |
|---|---|
|
Η ταχύτητα περιστροφής κυμαίνεται από 0% έως 100% όταν χρησιμοποιείται |
|
Προαιρετικά. Η μονάδα ταχύτητας: |
# Turn at different velocities
# Default velocity
drivetrain.turn_for(RIGHT, 360)
wait(1, SECONDS)
# Turn slower
drivetrain.set_turn_velocity(20, PERCENT)
drivetrain.turn_for(RIGHT, 360)
wait(1, SECONDS)
# Turn faster
drivetrain.set_turn_velocity(100, PERCENT)
drivetrain.turn_for(RIGHT, 360)
set_stopping#
set_stopping ορίζει τον τρόπο με τον οποίο το ρομπότ θα σταματήσει να κινείται: φρενάροντας, κινούμενο με ταχύτητα χωρίς κίνηση ή κρατώντας το.
Usage:
drivetrain.set_stopping(mode)
Παράμετροι |
Περιγραφή |
|---|---|
|
Πώς θα σταματήσει το ρομπότ:
|
Εάν δεν χρησιμοποιηθεί αυτή η μέθοδος, το ρομπότ θα χρησιμοποιήσει BRAKE κατά το σταμάτημα.
set_timeout#
set_timeout ορίζει τον χρόνο που το ρομπότ θα προσπαθήσει να ολοκληρώσει μια κίνηση. Εάν το ρομπότ δεν μπορεί να ολοκληρώσει σε αυτόν τον χρόνο, θα σταματήσει την προσπάθεια και θα προχωρήσει στην επόμενη γραμμή κώδικα. Αυτό εμποδίζει το ρομπότ να κολλήσει σε μια κίνηση.
Usage:
drivetrain.set_timeout(value, units)
Παράμετροι |
Περιγραφή |
|---|---|
|
Ο χρόνος που μπορεί να προσπαθήσει το ρομπότ για να ολοκληρώσει μια κίνηση. Αυτός μπορεί να είναι ένας θετικός |
|
Προαιρετικά. Η μονάδα χρόνου: |
# Turn right after driving forward
drivetrain.set_timeout(1, SECONDS)
drivetrain.drive_for(FORWARD, 25, INCHES)
drivetrain.turn_for(RIGHT, 90)
set_heading#
Μια κατεύθυνση είναι η κατεύθυνση που βλέπει το ρομπότ, μετρούμενη σε μοίρες. set_heading αλλάζει την τρέχουσα κατεύθυνση του ρομπότ σε μια νέα τιμή κατεύθυνσης.
Για παράδειγμα, εάν το ρομπότ έχει στραφεί προς τα δεξιά, η ρύθμιση της κατεύθυνσης σε 0 μοίρες καθιστά αυτή τη θέση προς τα δεξιά τις νέες 0 μοίρες. Στη συνέχεια, το ρομπότ μπορεί να στραφεί σε άλλες θέσεις με βάση αυτήν τη νέα κατεύθυνση.
Usage:
drivetrain.set_heading(heading, units)
Παράμετροι |
Περιγραφή |
|---|---|
|
Η τιμή κατεύθυνσης, σε μοίρες ή στροφές, που θα οριστεί για το ρομπότ. Αυτή μπορεί να είναι ένας ακέραιος αριθμός |
|
Προαιρετικό. Η μονάδα κατεύθυνσης: |
# Face the new 0 degrees
drivetrain.set_heading(90, DEGREES)
drivetrain.turn_to_heading(0, DEGREES)
set_rotation#
Η περιστροφή είναι η περιστροφή του ρομπότ, μετρούμενη σε μοίρες ή στροφές. Στην αρχή ενός έργου, η τιμή περιστροφής ορίζεται σε 0 μοίρες. set_rotation αλλάζει την τρέχουσα περιστροφή του ρομπότ σε μια νέα τιμή.
Για παράδειγμα, αν το ρομπότ έχει κάνει δύο πλήρεις στροφές προς τα δεξιά, η τιμή περιστροφής του θα είναι 720 μοίρες. Αν ορίσετε την περιστροφή σε 0 μοίρες, η περιστροφή θα επαναφερθεί από 720 σε 0 μοίρες. Στη συνέχεια, το ρομπότ μπορεί να στραφεί σε περιστροφές με βάση αυτήν τη νέα τιμή.
Usage:
drivetrain.set_rotation(rotation, units)
Παράμετροι |
Περιγραφή |
|---|---|
|
Η τιμή περιστροφής, σε μοίρες ή στροφές, που θα οριστεί για το ρομπότ. Αυτή μπορεί να είναι ένας ακέραιος αριθμός |
|
Προαιρετικά. Η μονάδα περιστροφής: |
# Spin counterclockwise two times
drivetrain.set_rotation(720, DEGREES)
drivetrain.turn_to_rotation(0, DEGREES)
set_turn_threshold#
set_turn_threshold ορίζει πόσο κοντά πρέπει να φτάσει το ρομπότ σε μια γωνία-στόχο πριν ολοκληρωθεί μια στροφή.
Ένα μικρότερο κατώφλι μπορεί να κάνει τις στροφές πιο ακριβείς, αλλά το ρομπότ μπορεί να χρειαστεί περισσότερο χρόνο για να ολοκληρώσει τις στροφές. Ένα μεγαλύτερο κατώφλι μπορεί να κάνει τις στροφές να ολοκληρωθούν νωρίτερα, αλλά μπορεί να είναι λιγότερο ακριβείς.
Usage:
drivetrain.set_turn_threshold(value)
Παράμετροι |
Περιγραφή |
|---|---|
|
Το όριο στροφής, σε μοίρες. Αυτό μπορεί να είναι ένας ακέραιος αριθμός |
# Set the turn threshold to 5 degrees
drivetrain.set_turn_threshold(5)
set_turn_constant#
set_turn_constant αλλάζει την ένταση με την οποία το ρομπότ διορθώνει τις στροφές του.
Μια υψηλότερη τιμή κάνει το ρομπότ να στρέφεται σωστά πιο δυνατά. Μια χαμηλότερη τιμή κάνει το ρομπότ να στρέφεται σωστά πιο ομαλά. Η προεπιλεγμένη τιμή είναι 1,0.
Usage:
drivetrain.set_turn_constant(value)
Παράμετροι |
Περιγραφή |
|---|---|
|
Η σταθερά στροφής. Αυτή μπορεί να είναι δεκαδική ( |
# Increase the turn constant to 2.0
drivetrain.set_turn_constant(2.0)
Αποκτητές#
heading#
Η κατεύθυνση είναι η κατεύθυνση προς την οποία είναι στραμμένο το ρομπότ, μετρούμενη σε μοίρες. Η κατεύθυνση heading επιστρέφει την τρέχουσα κατεύθυνση του ρομπότ από 0 σε 359 μοίρες.
Η αρχική κατεύθυνση του ρομπότ είναι 0 μοίρες.
Usage:
drivetrain.heading(units)
Παράμετροι |
Περιγραφή |
|---|---|
|
Προαιρετικά. Η μονάδα επιστροφής της κατεύθυνσης: |
# Display the heading after turning
drivetrain.turn_for(RIGHT, 450, DEGREES)
brain.screen.print("Heading: ")
brain.screen.print(drivetrain.heading())
rotation#
Η περιστροφή είναι η περιστροφή του ρομπότ, μετρούμενη σε μοίρες ή στροφές. Στην αρχή ενός έργου, η τιμή περιστροφής ορίζεται σε 0 μοίρες. Η περιστροφή rotation επιστρέφουν την τρέχουσα περιστροφή του ρομπότ.
Η δεξιά στροφή αυξάνει την περιστροφή και η αριστερά τη μειώνει. Για παράδειγμα, κάνοντας δύο πλήρεις στροφές προς τα δεξιά θα επιστρέψει μια περιστροφή 720 μοιρών.
Usage:
drivetrain.rotation(units)
Παράμετροι |
Περιγραφή |
|---|---|
|
Προαιρετικό. Η μονάδα επιστροφής της περιστροφής σε: |
# Display the rotation after turning
drivetrain.turn_for(RIGHT, 450, DEGREES)
brain.screen.print("Rotation: ")
brain.screen.print(drivetrain.rotation())
velocity#
Η τιμή velocity επιστρέφει την ταχύτητα με την οποία κινείται το ρομπότ.
Μπορεί να επιστρέψει την ταχύτητα ως ποσοστό από -100% έως 100%, σε RPM από -127 rpm έως 127 rpm ή σε VelocityUnits.DPSΜια θετική τιμή σημαίνει ότι το ρομπότ κινείται προς τα εμπρός. Μια αρνητική τιμή σημαίνει ότι το ρομπότ κινείται προς τα πίσω.
Usage:
drivetrain.velocity(units)
Παράμετροι |
Περιγραφή |
|---|---|
|
Προαιρετικό. Η μονάδα μέτρησης της ταχύτητας σε: |
current#
Το current επιστρέφει την ποσότητα ηλεκτρικού ρεύματος που χρησιμοποιεί το σύστημα μετάδοσης κίνησης, μετρούμενη σε αμπέρ (αμπέρ). Το ρεύμα είναι η ποσότητα ηλεκτρικού ρεύματος που ρέει μέσω του συστήματος μετάδοσης κίνησης.
Μια υψηλότερη τιμή ρεύματος σημαίνει ότι το σύστημα μετάδοσης κίνησης χρησιμοποιεί περισσότερο ηλεκτρικό ρεύμα. Αυτό μπορεί να συμβεί όταν το ρομπότ πιέζει ένα αντικείμενο ή προσπαθεί να κινηθεί όταν αυτό έχει κολλήσει.
Αυτό μπορεί να χρησιμοποιηθεί για να ελέγξετε εάν το σύστημα μετάδοσης κίνησης παρουσιάζει δυσκολίες κατά τη διάρκεια μιας κίνησης. Εάν το ρεύμα παραμείνει υψηλό, το σύστημα μετάδοσης κίνησης μπορεί να θερμανθεί ή να χρησιμοποιήσει την ισχύ λιγότερο αποτελεσματικά.
Usage:
drivetrain.current(units)
Παράμετροι |
Περιγραφή |
|---|---|
|
Προαιρετικό. Η μονάδα επιστροφής ρεύματος: |
is_moving#
is_moving επιστρέφει εάν το ρομπότ κινείται, ως λογική τιμή. Αυτό μπορεί να χρησιμοποιηθεί για τον έλεγχο του χρονισμού άλλων συμπεριφορών με βάση την κίνηση του ρομπότ.
True— Το ρομπότ κινείται.False— Το ρομπότ δεν κινείται.
Αυτή η μέθοδος λειτουργεί σε συνδυασμό με τις ακόλουθες μεθόδους Drivetrain που έχουν την παράμετρο wait : drive_for, turn_for, turn_to_heading και turn_to_rotation.
Usage:
drivetrain.is_moving()
Παράμετροι |
Περιγραφή |
|---|---|
Αυτή η μέθοδος δεν έχει παραμέτρους. |
is_done#
Η συνάρτηση is_done επιστρέφει εάν το ρομπότ έχει ολοκληρώσει την κίνησή του, ως λογική τιμή. Αυτή μπορεί να χρησιμοποιηθεί για τον έλεγχο του χρονισμού άλλων συμπεριφορών με βάση την κίνηση του ρομπότ.
True— Το ρομπότ έχει ολοκληρώσει την κίνηση.False— Το ρομπότ εξακολουθεί να κινείται.
Αυτή η μέθοδος λειτουργεί σε συνδυασμό με τις ακόλουθες μεθόδους Drivetrain που έχουν την παράμετρο wait : drive_for, turn_for, turn_to_heading και turn_to_rotation.
Usage:
drivetrain.is_done()
Παράμετροι |
Περιγραφή |
|---|---|
Αυτή η μέθοδος δεν έχει παραμέτρους. |
is_turning#
is_turning επιστρέφει εάν το ρομπότ γυρίζει, ως λογική τιμή. Αυτό μπορεί να χρησιμοποιηθεί για τον έλεγχο του χρονισμού άλλων συμπεριφορών με βάση την κίνηση του ρομπότ.
True— Το ρομπότ γυρίζει.False— Το ρομπότ δεν γυρίζει.
Αυτή η μέθοδος λειτουργεί σε συνδυασμό με τις ακόλουθες μεθόδους Drivetrain που έχουν την παράμετρο wait : turn_for, turn_to_heading και turn_to_rotation.
Usage:
drivetrain.is_turning()
Παράμετροι |
Περιγραφή |
|---|---|
Αυτή η μέθοδος δεν έχει παραμέτρους. |
power#
power επιστρέφει την ισχύ που χρησιμοποιεί το σύστημα μετάδοσης κίνησης, μετρούμενη σε watt. Η ισχύς δείχνει πόσο γρήγορα χρησιμοποιεί ενέργεια το σύστημα μετάδοσης κίνησης.
Μια υψηλότερη τιμή ισχύος σημαίνει ότι το σύστημα μετάδοσης κίνησης χρησιμοποιεί ενέργεια πιο γρήγορα. Αυτό μπορεί να συμβεί όταν το ρομπότ πιέζει ένα αντικείμενο ή προσπαθεί να κινηθεί όταν αυτό έχει κολλήσει.
Αυτό μπορεί να χρησιμοποιηθεί για να συγκρίνετε κινήσεις ή να ελέγξετε αν το σύστημα μετάδοσης κίνησης παρουσιάζει δυσκολίες. Εάν η ισχύς παραμείνει υψηλή, το σύστημα μετάδοσης κίνησης μπορεί να θερμανθεί ή να χρησιμοποιήσει την ενέργεια λιγότερο αποτελεσματικά.
Usage:
drivetrain.power()
Παράμετροι |
Περιγραφή |
|---|---|
Αυτή η μέθοδος δεν έχει παραμέτρους. |
torque#
Η ροπή δείχνει πόσο δυνατά μπορεί να σπρώξει ή να τραβήξει το σύστημα μετάδοσης κίνησης ενώ οι τροχοί σπινάρουν.
Η τιμή torque επιστρέφει την ποσότητα ροπής που χρησιμοποιεί το σύστημα μετάδοσης κίνησης, μετρούμενη σε Newton-μέτρα (Nm) ή ίντσες-λίβρες (InLb).
Μια υψηλότερη τιμή ροπής σημαίνει ότι το σύστημα μετάδοσης κίνησης πιέζει ή τραβάει πιο δυνατά. Αυτό μπορεί να συμβεί όταν το ρομπότ πιέζει ένα αντικείμενο ή προσπαθεί να κινηθεί όταν αυτό έχει κολλήσει.
Αυτό μπορεί να χρησιμοποιηθεί για να ελεγχθεί εάν το σύστημα μετάδοσης κίνησης δυσκολεύεται ή για να συγκριθεί η ώθηση που χρειάζονται οι διαφορετικές κινήσεις.
Usage:
drivetrain.torque(units)
Παράμετροι |
Περιγραφή |
|---|---|
|
Προαιρετικά. Η μονάδα επιστροφής ροπής: |
efficiency#
Η απόδοση efficiency επιστρέφει την αποτελεσματικότητα της χρήσης ισχύος από το σύστημα μετάδοσης κίνησης, ως ποσοστό από 0% έως 100%.
Η απόδοση δείχνει πόση από την ισχύ του συστήματος μετάδοσης κίνησης χρησιμοποιείται για κίνηση. Μια υψηλότερη τιμή απόδοσης σημαίνει ότι περισσότερη από την ισχύ του συστήματος μετάδοσης κίνησης χρησιμοποιείται για κίνηση. Μια χαμηλότερη τιμή απόδοσης μπορεί να συμβεί όταν το σύστημα μετάδοσης κίνησης λειτουργεί σκληρά αλλά δεν κινείται πολύ, όπως όταν το ρομπότ έχει κολλήσει ή πιέζει ένα αντικείμενο.
Αυτό μπορεί να χρησιμοποιηθεί για τη σύγκριση κινήσεων ή για τον έλεγχο εάν το σύστημα μετάδοσης κίνησης σπαταλά ενέργεια αντί να τη χρησιμοποιεί για κίνηση.
Usage:
drivetrain.efficiency()
Παράμετροι |
Περιγραφή |
|---|---|
Αυτή η μέθοδος δεν έχει παραμέτρους. |
temperature#
Η τιμή temperature επιστρέφει τη μέση θερμοκρασία του συστήματος μετάδοσης κίνησης στην επιλεγμένη μονάδα θερμοκρασίας.
Η θερμοκρασία δείχνει πόσο ζεστοί είναι οι κινητήρες του συστήματος μετάδοσης κίνησης. Μια υψηλότερη θερμοκρασία σημαίνει ότι οι κινητήρες θερμαίνονται ενώ λειτουργούν. Οι κινητήρες θα πρέπει να παραμένουν κάτω από τους 55°C για να συνεχίσουν να λειτουργούν σε πλήρη απόδοση.
Εάν οι κινητήρες υπερθερμανθούν, θα μειώσουν το μέγιστο ρεύμα τους για να προστατευτούν. Στους 70°C, οι κινητήρες θα σταματήσουν να λειτουργούν μέχρι να κρυώσουν.
Αυτό μπορεί να χρησιμοποιηθεί για να ελέγξετε εάν το σύστημα μετάδοσης κίνησης υπερθερμαίνεται κατά τη διάρκεια επαναλαμβανόμενων κινήσεων, μεγάλων διαδρομών ή όταν πιέζει ένα αντικείμενο.
Usage:
drivetrain.temperature(units)
Παράμετροι |
Περιγραφή |
|---|---|
|
Προαιρετικά. Η μονάδα μέτρησης για την επιστροφή της θερμοκρασίας: |
Κατασκευαστές#
Οι κατασκευαστές χρησιμοποιούνται για τη δημιουργία DriveTrain και SmartDrive στον κώδικα. Αυτό είναι χρήσιμο κατά τη διαμόρφωση ενός συστήματος μετάδοσης κίνησης χωρίς τη χρήση του παραθύρου Συσκευές.
Πρέπει να δημιουργηθούν τουλάχιστον δύο αντικείμενα Motor ή MotorGroup πριν από τη δημιουργία ενός συστήματος μετάδοσης κίνησης.
DriveTrain#
DriveTrain δημιουργεί ένα σύστημα μετάδοσης κίνησης χωρίς Αισθητήρα Αδράνειας ή Αισθητήρα Γυροσκοπίου.
Usage:
DriveTrain(lm, rm, wheelTravel, trackWidth, wheelBase, units, externalGearRatio)
Παράμετρος |
Περιγραφή |
|---|---|
|
Ο αριστερός κινητήρας ή ομάδα κινητήρων. |
|
Ο δεξιός κινητήρας ή ομάδα κινητήρων. |
|
Προαιρετικά. Η περιφέρεια των τροχών του συστήματος μετάδοσης κίνησης. Η προεπιλογή είναι 300 χιλιοστά. |
|
Προαιρετικό. Το πλάτος μεταξύ του αριστερού και του δεξιού τροχού. Η προεπιλογή είναι 320 χιλιοστά. |
|
Προαιρετικά. Η απόσταση μεταξύ των μπροστινών και των πίσω τροχών. Η προεπιλογή είναι 320 χιλιοστά. |
|
Προαιρετικά. Η μονάδα για |
|
Προαιρετικό. Η σχέση μετάδοσης που χρησιμοποιείται για την προσαρμογή των αποστάσεων οδήγησης εάν χρησιμοποιούνται ταχύτητες. Αυτή μπορεί να είναι ένας ακέραιος αριθμός |
# Create left and right drive motor objects
left_drive_smart = Motor(Ports.PORT1, 1.0, False)
right_drive_smart = Motor(Ports.PORT2, 1.0, True)
'''
Create a Drivetrain with the following values:
wheelTravel: 200
trackWidth: 173
wheelBase: 76
units: MM
externalGearRatio: 1
'''
drivetrain = DriveTrain(left_drive_smart, right_drive_smart, 200, 173, 76, MM, 1)
# Create two motor group objects for left and right motors
left_motor_a = Motor(Ports.PORT1, 1.0, False)
left_motor_b = Motor(Ports.PORT2, 1.0, False)
left_drive_smart = MotorGroup(left_motor_a, left_motor_b)
right_motor_a = Motor(Ports.PORT3, 1.0, True)
right_motor_b = Motor(Ports.PORT4, 1.0, True)
right_drive_smart = MotorGroup(right_motor_a, right_motor_b)
'''
Create a Drivetrain with the following values:
wheelTravel: 200
trackWidth: 173
wheelBase: 76
units: MM
externalGearRatio: 1
'''
drivetrain = DriveTrain(left_drive_smart, right_drive_smart, 200, 173, 76, MM, 1)
SmartDrive#
SmartDrive δημιουργεί ένα σύστημα μετάδοσης κίνησης διαμορφωμένο με έναν Αισθητήρα Αδράνειας ή έναν Αισθητήρα Γυροσκοπίου.
Usage:
SmartDrive(lm, rm, g, wheelTravel, trackWidth, wheelBase, units, externalGearRatio)
Παράμετρος |
Περιγραφή |
|---|---|
|
Ο αριστερός κινητήρας ή ομάδα κινητήρων. |
|
Ο δεξιός κινητήρας ή ομάδα κινητήρων. |
|
Ο Αισθητήρας Αδράνειας ή Γυροσκοπικός Αισθητήρας που χρησιμοποιείται από το σύστημα μετάδοσης κίνησης. |
|
Προαιρετικά. Η περιφέρεια των τροχών του συστήματος μετάδοσης κίνησης. Η προεπιλογή είναι 300 χιλιοστά. |
|
Προαιρετικό. Το πλάτος μεταξύ του αριστερού και του δεξιού τροχού. Η προεπιλογή είναι 320 χιλιοστά. |
|
Προαιρετικά. Η απόσταση μεταξύ των μπροστινών και των πίσω τροχών. Η προεπιλογή είναι 320 χιλιοστά. |
|
Προαιρετικά. Η μονάδα για διαδρομή τροχού |
|
Προαιρετικό. Η σχέση μετάδοσης που χρησιμοποιείται για την προσαρμογή των αποστάσεων οδήγησης εάν χρησιμοποιούνται ταχύτητες. Αυτή μπορεί να είναι ένας ακέραιος αριθμός |
# Create the Inertial Sensor
brain_inertial = Inertial()
# Make left and right drive motors
left_drive_smart = Motor(Ports.PORT1, 1.0, False)
right_drive_smart = Motor(Ports.PORT6, 1.0, True)
# Create a SmartDrive object with wheelTravel 200
drivetrain = SmartDrive(left_drive_smart, right_drive_smart, brain_inertial, 200)
Εάν δημιουργείτε ένα έξυπνο σύστημα μετάδοσης κίνησης με πολλαπλούς κινητήρες, πρέπει να δημιουργήσετε τους κινητήρες ξεχωριστά πριν τους ομαδοποιήσετε σε μια ομάδα κινητήρων.
# Create the Inertial Sensor
brain_inertial = Inertial()
# Create two motor groups for left and right motors
left_motor_a = Motor(Ports.PORT1, 1.0, False)
left_motor_b = Motor(Ports.PORT2, 1.0, False)
left_drive_smart = MotorGroup(left_motor_a, left_motor_b)
right_motor_a = Motor(Ports.PORT5, 1.0, True)
right_motor_b = Motor(Ports.PORT6, 1.0, True)
right_drive_smart = MotorGroup(right_motor_a, right_motor_b)
# Create a SmartDrive object with wheelTravel 200 mm
drivetrain = SmartDrive(left_drive_smart, right_drive_smart, brain_inertial, 200)