Κινητήρας και Ομάδα Κινητήρων#
Εισαγωγή#
Οι κινητήρες και οι ομάδες κινητήρων ελέγχουν τον τρόπο με τον οποίο κινούνται τα μέρη ενός ρομπότ. Ένα αντικείμενο motor ελέγχει έναν διαμορφωμένο IQ Smart Motor, ενώ ένα αντικείμενο motor_group ελέγχει πολλούς διαμορφωμένους IQ Smart Motors μαζί, ώστε να κινούνται παράλληλα. Οι κινητήρες και οι ομάδες κινητήρων μπορούν να χρησιμοποιηθούν για την ανύψωση ενός βραχίονα, την περιστροφή ενός νυχιού, την περιστροφή ενός τροχού ή την κίνηση ενός άλλου μέρους μιας κατασκευής. Δύο κινητήρες μπορούν να λειτουργήσουν μαζί ως σύστημα μετάδοσης κίνησης για να κινούν και να περιστρέφουν ολόκληρο το ρομπότ.
Κάθε κινητήρας ή ομάδα κινητήρων διαμορφώνεται στο παράθυρο Συσκευές. Ανάλογα με την έκδοση, τα ονόματα του κινητήρα και της ομάδας κινητήρων μπορούν να αλλάξουν. Αυτή η σελίδα χρησιμοποιεί Motor1 και MotorGroup1 ως παραδείγματα ονομάτων. Αντικαταστήστε τα με τα δικά σας διαμορφωμένα ονόματα, όπως απαιτείται.
Από προεπιλογή, η ρύθμιση forward περιστρέφει τον κινητήρα αριστερόστροφα και η ρύθμιση reverse περιστρέφει τον κινητήρα δεξιόστροφα. Εάν ένας κινητήρας έχει ρυθμιστεί σε αντίστροφη κίνηση, αυτές οι κατευθύνσεις θα αλλάξουν.
Μοτέρ#
Class Constructors#
1 — Δημιουργεί ένα αντικείμενο
motorγια τον κινητήρα IQ Smart που είναι συνδεδεμένος στην καθορισμένη θύρα Smart. Ο κινητήρας χρησιμοποιεί αυτόματα την ανιχνευμένη εσωτερική ταχύτηταgearSetting.motor( int32_t index );
2 — Δημιουργεί ένα αντικείμενο
motorστην καθορισμένη Έξυπνη Θύρα και προαιρετικά αντιστρέφει την κατεύθυνσή του. Ο κινητήρας χρησιμοποιεί αυτόματα την ανιχνευμένη εσωτερική ταχύτηταgearSetting.motor( int32_t index, bool reverse );
3 — Δημιουργεί ένα αντικείμενο
motorστην καθορισμένη Έξυπνη Θύρα με την καθορισμένη ρύθμιση ταχύτηταςgearSettingmotor( int32_t index, gearSetting gears );
4 — Δημιουργεί ένα αντικείμενο
motorστην καθορισμένη Έξυπνη Θύρα με την καθορισμένη ΡύθμισηgearSettingκαι προαιρετικά αντίστροφη κατεύθυνση.motor( int32_t index, gearSetting gears, bool reverse );
Class Destructor#
Καταστρέφει το αντικείμενο motor και απελευθερώνει τους σχετικούς πόρους.
~motor();
Parameters#
Παράμετρος |
Τύπος |
Περιγραφή |
|---|---|---|
|
|
Η Έξυπνη Θύρα στην οποία είναι συνδεδεμένος ο κινητήρας, γράφεται ως |
|
|
Ορίζει εάν η κατεύθυνση περιστροφής του κινητήρα αντιστρέφεται:
|
|
|
Καθορίζει την εσωτερική σχέση μετάδοσης του φυσιγγίου γραναζιών.
|
Notes#
Η ρύθμιση του γραναζιού πρέπει να ταιριάζει με το φυσικό φυσίγγιο που είναι εγκατεστημένο στον κινητήρα.
Example#
// Create the motor instance in Smart Port 1
motor LeftMotor = motor(PORT1);
// Creates the motor instance with different settings
motor RightMotor = motor(
PORT2, // Smart Port 2
ratio2_1, // Gear ratio is 2:1
true);
Ομάδα Μηχανοκίνητων#
Class Constructors#
motor_group( motor &m1, Args&... m2 );
Class Destructor#
Καταστρέφει το αντικείμενο motor_group και απελευθερώνει τους σχετικούς πόρους.
~motor_group();
Parameters#
Παράμετρος |
Τύπος |
Περιγραφή |
|---|---|---|
|
|
Ο πρώτος κινητήρας προστέθηκε στην ομάδα. |
|
|
Προστέθηκαν επιπλέον κινητήρες στην ομάδα. Ο μέγιστος αριθμός είναι τέσσερις κινητήρες σε μία ομάδα κινητήρων. |
Example#
// Create individual motor instances
motor LeftMotor = motor(PORT1);
motor RightMotor = motor(PORT2);
// Create a motor group with both motors
motor_group DriveMotors = motor_group(LeftMotor, RightMotor);
Συναρτήσεις Μελών#
Υπάρχουν πολλοί τρόποι κωδικοποίησης κινητήρων και ομάδων κινητήρων. Παρακάτω είναι μια λίστα με όλες τις συναρτήσεις-μέλη motor και motor_group:
Ενέργειες — Διακοπή και περιστροφή κινητήρων και ομάδων κινητήρων.
spin— Περιστρέφει έναν κινητήρα ή μια ομάδα κινητήρων προς τα εμπρός ή προς τα πίσω για πάντα.spinFor— Περιστρέφει έναν κινητήρα ή μια ομάδα κινητήρων για μια συγκεκριμένη απόσταση ή χρονικό διάστημα.spinToPosition— Περιστρέφει έναν κινητήρα ή μια ομάδα κινητήρων σε μια συγκεκριμένη θέση.stop— Διακόπτει την περιστροφή ενός κινητήρα ή μιας ομάδας κινητήρων.
Μεταλλαγμένοι — Προσαρμόστε τις ρυθμίσεις του κινητήρα και της ομάδας κινητήρων.
setVelocity— Υποδεικνύει σε έναν κινητήρα ή σε μια ομάδα κινητήρων πόσο γρήγορα πρέπει να περιστραφεί.setMaxTorque— Ορίζει την ισχύ με την οποία επιτρέπεται να πιέζει ένας κινητήρας ή μια ομάδα κινητήρων κατά την περιστροφή.setPosition— Αλλάζει την τρέχουσα θέση του κινητήρα ή της ομάδας κινητήρων σε μια νέα τιμή.setStopping— Ορίζει τον τρόπο με τον οποίο ένας κινητήρας ή μια ομάδα κινητήρων θα σταματήσει να κινείται: με φρενάρισμα, ελεύθερη κίνηση ή συγκράτηση.setTimeout— Ορίζει τον χρόνο που ένας κινητήρας ή μια ομάδα κινητήρων θα προσπαθήσει να ολοκληρώσει μια κίνηση.
Λήπτες — Έλεγχος κατάστασης κινητήρα και ομάδας κινητήρων.
isDone— Returns whether the motor or motor group is finished moving, as a Boolean value.isSpinning— Επιστρέφει εάν ο κινητήρας ή η ομάδα κινητήρων περιστρέφεται, ως λογική τιμή.position— Επιστρέφει την τρέχουσα θέση του κινητήρα ή της ομάδας κινητήρων.velocity— Επιστρέφει την ταχύτητα περιστροφής του κινητήρα ή της ομάδας κινητήρων.current— Επιστρέφει την ποσότητα ηλεκτρικού ρεύματος που χρησιμοποιεί ο κινητήρας ή η ομάδα κινητήρων.power— Επιστρέφει την ισχύ που χρησιμοποιεί ο κινητήρας ή η ομάδα κινητήρων.torque— Επιστρέφει τη ροπή που χρησιμοποιεί ο κινητήρας ή η ομάδα κινητήρων.efficiency— Επιστρέφει πόσο αποτελεσματικά χρησιμοποιεί ισχύ ο κινητήρας ή η ομάδα κινητήρων.temperature— Επιστρέφει τη θερμοκρασία του κινητήρα ή της ομάδας κινητήρων.voltage— Επιστρέφει την ηλεκτρική τάση που παρέχεται στον κινητήρα ή στην ομάδα κινητήρων.direction— Επιστρέφει την κατεύθυνση περιστροφής του κινητήρα ή της ομάδας κινητήρων.installed— Επιστρέφει εάν ο κινητήρας ή η ομάδα κινητών είναι συνδεδεμένη με τον εγκέφαλο.count— Επιστρέφει τον αριθμό των κινητήρων σε μια ομάδα κινητήρων.
Πριν από την κλήση οποιασδήποτε συνάρτησης μέλους motor ή motor_group , πρέπει να δημιουργηθεί μια παρουσία, όπως φαίνεται παρακάτω:
/* This constructor is required when using VS Code.
Motor and Motor Group configuration is generated automatically
in VEXcode using the Device Menu. Replace the values
as needed. */
// Create the motor instance in Smart Port 1
motor Motor1 = motor(PORT1);
Ενέργειες#
spin#
Η περιστροφή spin ομάδα κινητήρων προς τα εμπρός ή προς τα πίσω για πάντα. Ο κινητήρας ή η ομάδα κινητήρων θα συνεχίσει να περιστρέφεται μέχρι να του δοθεί μια άλλη ενέργεια, όπως περιστροφή προς διαφορετική κατεύθυνση ή στάση.
1 — Περιστρέφει τον κινητήρα ή την ομάδα κινητήρων χρησιμοποιώντας την τρέχουσα διαμορφωμένη ταχύτητα κινητήρα.
void spin( directionType dir );
2 — Περιστρέφει τον κινητήρα ή την ομάδα κινητήρων με την καθορισμένη ταχύτητα.
void spin( directionType dir, double velocity, velocityUnits units );
Parameters3 — Περιστρέφει τον κινητήρα ή την ομάδα κινητήρων χρησιμοποιώντας την καθορισμένη τάση.
void spin( directionType dir, double voltage, voltageUnits units );
Παράμετρος |
Τύπος |
Περιγραφή |
|---|---|---|
|
|
Η κατεύθυνση περιστροφής του κινητήρα ή της ομάδας κινητήρων: |
|
|
Η ταχύτητα περιστροφής κυμαίνεται από 0% έως 100% όταν χρησιμοποιείται |
|
|
Η μονάδα που χρησιμοποιείται για την αναπαράσταση της ταχύτητας:
|
|
|
Η τάση με την οποία θα περιστρέφεται. Μια αρνητική τιμή περιστρέφεται αντίθετα από τη δεδομένη κατεύθυνση |
|
|
Η μονάδα που χρησιμοποιείται για την αναπαράσταση της τάσης:
|
Αυτή η συνάρτηση δεν επιστρέφει τιμή.
NotesΑυτή η συνάρτηση δεν είναι σε αναμονή και το έργο θα συνεχίσει να εκτελείται αμέσως μετά την κλήση.
Ο κινητήρας ή η ομάδα κινητήρων θα συνεχίσει να περιστρέφεται μέχρι να κληθεί το
stopή να εκτελεστεί κάποια άλλη συνάρτηση κίνησης.Συναρτήσεις όπως
isDoneκαιisSpinningδεν εφαρμόζονται στην περιστροφήspin, καθώς δεν χρησιμοποιεί κίνηση βασισμένη σε στόχο (δεν έχει παράμετρο περιστροφήςrotationήtime).
// Spin forward, then stop
Motor1.spin(forward);
wait(1, seconds);
Motor1.stop();
spinFor#
Η συνάρτηση spinFor περιστρέφει έναν κινητήρα ή μια ομάδα κινητήρων για μια συγκεκριμένη απόσταση ή χρονικό διάστημα. Μια περιστροφή που βασίζεται στην περιστροφή είναι σχετική με την τρέχουσα θέση του κινητήρα ή της ομάδας κινητήρων. Από προεπιλογή, το έργο θα περιμένει μέχρι να ολοκληρωθεί η περιστροφή του κινητήρα ή της ομάδας κινητήρων πριν εκτελεστεί η επόμενη γραμμή κώδικα.
1 — Περιστρέφεται για μια συγκεκριμένη απόσταση με την ταχύτητα που παρέχεται στην κλήση της συνάρτησης.
bool spinFor( double rotation, rotationUnits units, double velocity, velocityUnits units_v, bool waitForCompletion = true );
2 — Δέχεται μια παράμετρο κατεύθυνσης και περιστρέφεται για μια συγκεκριμένη απόσταση με την ταχύτητα που παρέχεται στην κλήση της συνάρτησης.
bool spinFor( directionType dir, double rotation, rotationUnits units, double velocity, velocityUnits units_v, bool waitForCompletion = true );
3 — Περιστρέφεται για μια συγκεκριμένη απόσταση χρησιμοποιώντας την τρέχουσα διαμορφωμένη ταχύτητα κινητήρα.
bool spinFor( double rotation, rotationUnits units, bool waitForCompletion = true );
4 — Δέχεται μια παράμετρο κατεύθυνσης και περιστρέφεται για μια συγκεκριμένη απόσταση χρησιμοποιώντας την τρέχουσα διαμορφωμένη ταχύτητα κινητήρα.
bool spinFor( directionType dir, double rotation, rotationUnits units, bool waitForCompletion = true );
5 — Περιστρέφεται για ένα συγκεκριμένο χρονικό διάστημα με την ταχύτητα που παρέχεται στην κλήση της συνάρτησης.
bool spinFor( double time, timeUnits units, double velocity, velocityUnits units_v );
6 — Δέχεται μια παράμετρο κατεύθυνσης και περιστρέφεται για ένα συγκεκριμένο χρονικό διάστημα με την ταχύτητα που παρέχεται στην κλήση της συνάρτησης.
bool spinFor( directionType dir, double time, timeUnits units, double velocity, velocityUnits units_v );
7 — Περιστρέφεται για συγκεκριμένο χρονικό διάστημα χρησιμοποιώντας την τρέχουσα διαμορφωμένη ταχύτητα κινητήρα.
bool spinFor( double time, timeUnits units );
Parameters8 — Δέχεται μια παράμετρο κατεύθυνσης και περιστρέφεται για ένα συγκεκριμένο χρονικό διάστημα χρησιμοποιώντας την τρέχουσα διαμορφωμένη ταχύτητα κινητήρα.
bool spinFor( directionType dir, double time, timeUnits units );
Παράμετρος |
Τύπος |
Περιγραφή |
|---|---|---|
|
|
Η κατεύθυνση περιστροφής του κινητήρα ή της ομάδας κινητήρων: |
|
|
Η απόσταση που περιστρέφεται ο κινητήρας ή η ομάδα κινητήρων. |
|
|
Η μονάδα περιστροφής:
|
|
|
Ο χρόνος που περιστρέφεται ο κινητήρας ή η ομάδα κινητήρων. |
|
|
Η μονάδα χρόνου:
|
|
|
Η ταχύτητα περιστροφής κυμαίνεται από 0% έως 100% όταν χρησιμοποιείται |
|
|
Η μονάδα που χρησιμοποιείται για να αναπαραστήσει την ταχύτητα
|
|
|
|
Επιστρέφει μια δυαδική τιμή που δείχνει εάν ο κινητήρας ή η ομάδα κινητήρων έφτασε την τιμή-στόχο.
true— The motor or motor group reached the target value.false— The motor or motor group was not able to reach the target value orwaitForCompletionis set tofalse.
Η εκτέλεση μιας άλλης συνάρτησης κινητικής κίνησης (όπως
spinήstop) ενώ βρίσκεται σε εξέλιξη η λειτουργίαspinForθα διακόψει την τρέχουσα κίνηση.Because
spinForis target-based (uses arotationortimeparameter), functions such asisDoneandisSpinningwork withspinFor.
// Spin 1 turn fast, then 1 turn slow
Motor1.spinFor(forward, 1, turns, true);
Motor1.spinFor(reverse, 1, turns, 20, velocityUnits::pct, true);
spinToPosition#
spinToPosition περιστρέφει έναν κινητήρα ή μια ομάδα κινητήρων σε μια συγκεκριμένη θέση.
Η θέση ενός κινητήρα ή ομάδας κινητήρων είναι η απόσταση περιστροφής του, μετρούμενη σε degrees ή turnsΜία στροφή ισούται με 360 μοίρες. Στην αρχή ενός έργου, η θέση του κινητήρα ή της ομάδας κινητήρων ορίζεται σε 0 μοίρες. Η θέση του κινητήρα ή της ομάδας κινητήρων μπορεί επίσης να οριστεί χρησιμοποιώντας τη συνάρτηση setPosition.
Οι τιμές θέσης είναι απόλυτες. Αυτό σημαίνει ότι η κατεύθυνση της περιστροφής εξαρτάται από την τρέχουσα θέση του κινητήρα ή της ομάδας κινητήρων.
Για παράδειγμα, εάν ο κινητήρας ή η ομάδα κινητήρων ξεκινήσει από τις 0 μοίρες και περιστραφεί σε μια θέση 720 μοιρών, θα περιστραφεί προς τα εμπρός κατά δύο στροφές. Εάν στη συνέχεια περιστραφεί σε μια θέση 360 μοιρών, θα περιστραφεί προς τα πίσω κατά μία στροφή, επειδή οι 360 μοίρες είναι μικρότερες από 720 μοίρες.
Available Functions1 — Περιστρέφεται σε μια συγκεκριμένη θέση με την ταχύτητα που παρέχεται στην κλήση της συνάρτησης.
bool spinToPosition( double rotation, rotationUnits units, double velocity, velocityUnits units_v, bool waitForCompletion = true );
Parameters2 — Περιστρέφεται σε μια συγκεκριμένη θέση χρησιμοποιώντας την τρέχουσα διαμορφωμένη ταχύτητα κινητήρα.
bool spinToPosition( double rotation, rotationUnits units, bool waitForCompletion = true );
Παράμετρος |
Τύπος |
Περιγραφή |
|---|---|---|
|
|
Η τιμή θέσης στην οποία θα περιστραφεί ο κινητήρας ή η ομάδα κινητήρων. |
|
|
Η μονάδα περιστροφής:
|
|
|
Η ταχύτητα περιστροφής κυμαίνεται από 0% έως 100% όταν χρησιμοποιείται |
|
|
Η μονάδα που χρησιμοποιείται για να αναπαραστήσει την ταχύτητα
|
|
|
|
Επιστρέφει μια δυαδική τιμή που δείχνει εάν ο κινητήρας ή η ομάδα κινητήρων ξεκίνησε την αιτούμενη κίνηση βάσει στόχου.
true— The motor or motor group begins the requested target-based movement.false— The call fails orwaitForCompletionis set tofalse.
Η εκτέλεση μιας άλλης συνάρτησης κινητικής κίνησης (όπως
spinήspinFor) ενώ η λειτουργίαspinToPositionβρίσκεται σε εξέλιξη θα διακόψει την τρέχουσα κίνηση.Because
spinToPositionis target-based (uses arotationparameter), functions such asisDoneandisSpinningwork withspinToPosition.
// Spin forward, then go to 90°
Motor1.spin(forward);
wait(1, seconds);
Motor1.spinToPosition(90, degrees);
stop#
stop σταματά την περιστροφή ενός κινητήρα ή μιας ομάδας κινητήρων.
1 — Διακόπτει τον κινητήρα ή την ομάδα κινητήρων χρησιμοποιώντας την τρέχουσα διαμορφωμένη λειτουργία πέδησης.
void stop();
Parameters2 — Διακόπτει τον κινητήρα ή την ομάδα κινητήρων χρησιμοποιώντας τη λειτουργία πέδησης που παρέχεται στην κλήση συνάρτησης.
void stop( brakeType mode );
Παράμετρος |
Τύπος |
Περιγραφή |
|---|---|---|
|
|
Προαιρετικά. Πώς θα σταματήσει ο κινητήρας ή η ομάδα κινητήρων:
|
Αυτή η συνάρτηση δεν επιστρέφει τιμή.
NotesΗ κλήση του
stopδιακόπτει αμέσως οποιαδήποτε τρέχουσα κίνηση του κινητήρα ή της ομάδας κινητήρων.Εάν δεν έχει καθοριστεί λειτουργία πέδησης, ο κινητήρας ή η ομάδα κινητήρων χρησιμοποιεί την τρέχουσα διαμορφωμένη λειτουργία πέδησης.
stopinterrupts any active target-based movement (such asspinFororspinToPosition).
// Spin and coast to a stop
Motor1.setVelocity(100, percent);
Motor1.spin(forward);
wait(1, seconds);
Motor1.stop(coast);
Μεταλλάκτες#
setVelocity#
setVelocity λέει σε έναν κινητήρα ή μια ομάδα κινητήρων πόσο γρήγορα πρέπει να περιστραφεί. Ένα υψηλότερο ποσοστό κάνει τον κινητήρα ή την ομάδα κινητήρων να περιστρέφεται πιο γρήγορα και ένα χαμηλότερο ποσοστό κάνει τον κινητήρα ή την ομάδα κινητήρων να περιστρέφεται πιο αργά.
Κάθε έργο ξεκινά με κάθε κινητήρα ή ομάδα κινητήρων να περιστρέφεται με ταχύτητα 50% από προεπιλογή.
Σημείωση: Μια υψηλότερη ταχύτητα κάνει τον κινητήρα ή την ομάδα κινητήρων να περιστρέφεται πιο γρήγορα, αλλά μπορεί να είναι λιγότερο ακριβής. Μια χαμηλότερη ταχύτητα κάνει τον κινητήρα ή την ομάδα κινητήρων να περιστρέφεται πιο αργά, αλλά μπορεί να είναι πιο ακριβής.
Available Functionsvoid setVelocity(
double velocity,
velocityUnits units );
Παράμετρος |
Τύπος |
Περιγραφή |
|---|---|---|
|
|
Η ταχύτητα περιστροφής κυμαίνεται από 0% έως 100% όταν χρησιμοποιείται |
|
|
Η μονάδα που χρησιμοποιείται για να αναπαραστήσει την ταχύτητα
|
Αυτή η συνάρτηση δεν επιστρέφει τιμή.
NotesΟποιαδήποτε επακόλουθη συνάρτηση κινητική κίνηση (όπως
spin,spinForήspinToPosition) που δεν καθορίζει ρητά μια ταχύτητα θα χρησιμοποιήσει αυτήν την τιμή.
// Try default, then slow, then fast
Motor1.spinFor(forward, 180, degrees);
wait(1, seconds);
Motor1.setVelocity(20, percent);
Motor1.spinFor(reverse, 180, degrees);
wait(1, seconds);
Motor1.setVelocity(100, percent);
Motor1.spinFor(forward, 180, degrees);
setMaxTorque#
Η ροπή δείχνει πόσο δυνατά μπορεί να ωθήσει ή να έλξει ένας κινητήρας ή μια ομάδα κινητήρων ενώ περιστρέφεται.
setMaxTorque ορίζει τη μέγιστη ροπή που επιτρέπεται να χρησιμοποιήσει ένας κινητήρας ή μια ομάδα κινητήρων.
Ένα υψηλότερο ποσοστό επιτρέπει στον κινητήρα ή την ομάδα κινητήρων να πιέζει πιο δυνατά, όπως κατά την ανύψωση ενός βαρέος αντικειμένου. Ένα χαμηλότερο ποσοστό περιορίζει την ισχύ που μπορεί να πιέσει ο κινητήρας ή η ομάδα κινητήρων. Αυτό μπορεί να βοηθήσει στην προστασία του ρομπότ εάν ο κινητήρας ή η ομάδα κινητήρων κολλήσει ή φτάσει στο όριο της απόστασης που μπορεί να κινηθεί.
Κάθε έργο ξεκινά με τη ροπή κάθε κινητήρα ή ομάδας κινητήρων στο 50% από προεπιλογή.
Available Functions1 — Ορίζει τη μέγιστη ροπή ως ποσοστό της ονομαστικής ροπής του κινητήρα ή της ομάδας κινητήρων.
void setMaxTorque( double value, percentUnits units );
2 — Ορίζει τη μέγιστη ροπή χρησιμοποιώντας φυσικές μονάδες ροπής.
void setMaxTorque( double value, torqueUnits units );
Parameters3 — Ορίζει τη μέγιστη ροπή περιορίζοντας το ρεύμα του κινητήρα.
void setMaxTorque( double value, currentUnits units );
Παράμετρος |
Τύπος |
Περιγραφή |
|---|---|---|
|
|
Η μέγιστη ροπή που μπορεί να χρησιμοποιήσει ο κινητήρας ή η ομάδα κινητήρων. |
|
|
Καθορίζει τη ροπή ως ποσοστό: |
|
|
Καθορίζει τη ροπή σε φυσικές μονάδες όπως:
|
|
|
Καθορίζει τη ροπή περιορίζοντας το ρεύμα του κινητήρα:
|
Αυτή η συνάρτηση δεν επιστρέφει τιμή.
NotesWhen using
currentUnits, torque is limited by restricting how much electrical current the motor or motor group can use.
setPosition#
Η θέση ενός κινητήρα ή ομάδας κινητήρων είναι η απόσταση περιστροφής του, μετρούμενη σε degrees ή turnsΜία στροφή ισούται με 360 μοίρες. setPosition αλλάζει την τρέχουσα θέση του κινητήρα ή της ομάδας κινητήρων σε μια νέα τιμή.
Για παράδειγμα, εάν ένας κινητήρας ή μια ομάδα κινητήρων έχει περιστραφεί στις 180 μοίρες, η ρύθμιση της θέσης σε 0 μοίρες θα επαναφέρει αυτήν τη θέση από 180 σε 0 μοίρες. Στη συνέχεια, ο κινητήρας ή η ομάδα κινητήρων μπορεί να περιστραφεί σε θέσεις με βάση αυτήν τη νέα τιμή.
Available Functionsvoid setPosition(
double value,
rotationUnits units );
Παράμετρος |
Τύπος |
Περιγραφή |
|---|---|---|
|
|
Η τιμή θέσης που θα οριστεί για τον κινητήρα ή την ομάδα κινητήρων. |
|
|
Η μονάδα θέσης:
|
Αυτή η συνάρτηση δεν επιστρέφει τιμή.
NotesΜετά την κλήση της συνάρτησης
setPosition, οι επόμενες κλήσεις στην συνάρτησηspinToPositionθα χρησιμοποιήσουν την ενημερωμένη θέση ως αναφορά.
setStopping#
setStopping ορίζει τον τρόπο με τον οποίο ένας κινητήρας ή μια ομάδα κινητήρων θα σταματήσει να κινείται: με φρενάρισμα, ελεύθερη κίνηση ή συγκράτηση.
void setStopping(
brakeType mode );
Παράμετρος |
Τύπος |
Περιγραφή |
|---|---|---|
|
|
Πώς θα σταματήσει ο κινητήρας ή η ομάδα κινητήρων:
|
Αυτή η συνάρτηση δεν επιστρέφει τιμή.
NotesΟποιαδήποτε επακόλουθη κλήση στο
stopχωρίς καθορισμένη λειτουργία πέδησης θα χρησιμοποιήσει αυτήν την τιμή.
setTimeout#
setTimeout ορίζει τον χρόνο που ένας κινητήρας ή μια ομάδα κινητήρων θα προσπαθήσει να ολοκληρώσει μια κίνηση. Εάν ο κινητήρας ή η ομάδα κινητήρων δεν μπορεί να ολοκληρώσει σε αυτό το χρονικό διάστημα, θα σταματήσει την προσπάθεια και θα προχωρήσει στην επόμενη γραμμή κώδικα. Αυτό εμποδίζει τον κινητήρα ή την ομάδα κινητήρων να κολλήσει σε μια κίνηση.
void setTimeout(
int32_t time,
timeUnits units );
Παράμετρος |
Τύπος |
Περιγραφή |
|---|---|---|
|
|
Ο χρόνος που μπορεί να προσπαθήσει η μηχανή ή η ομάδα κινητών για να ολοκληρώσει μια κίνηση. Πρέπει να είναι θετικός ακέραιος αριθμός. |
|
|
Η μονάδα χρόνου:
|
Επιστρεφόμενες τιμές
Αυτή η συνάρτηση δεν επιστρέφει τιμή.
NotesΤο χρονικό όριο του κινητήρα ή της ομάδας κινητήρων χρησιμοποιείται για να εμποδίσει τις κινήσεις που δεν φτάνουν στη θέση-στόχο τους να σταματήσουν την εκτέλεση άλλων εντολών στη στοίβα.
Εάν ο κινητήρας ή η ομάδα κινητήρων δεν φτάσει στη θέση-στόχο του πριν από τη λήξη του χρονικού ορίου, θα σταματήσει την προσπάθεια και θα προχωρήσει στην επόμενη γραμμή κώδικα.
Το χρονικό όριο ισχύει για συναρτήσεις που έχουν τιμή-στόχο όπως
spinForκαιspinToPosition.
// Stop a long move after 1 second
Motor1.setTimeout(1, seconds);
Motor1.spinFor(forward, 2, turns);
Motor1.spinToPosition(0, degrees);
Αποκτητές#
isDone#
Η συνάρτηση isDone επιστρέφει εάν ο κινητήρας ή η ομάδα κινητήρων έχει ολοκληρώσει την κίνησή του, ως λογική τιμή. Αυτή μπορεί να χρησιμοποιηθεί για τον έλεγχο του χρονισμού άλλων συμπεριφορών με βάση την κίνηση του κινητήρα ή της ομάδας κινητήρων.
true— Ο κινητήρας ή η ομάδα κινητήρων έχει ολοκληρώσει την κίνηση.false— Ο κινητήρας ή η ομάδα κινητήρων εξακολουθεί να κινείται.
Αυτή η συνάρτηση λειτουργεί σε συνδυασμό με τις ακόλουθες συναρτήσεις κίνησης που έχουν την παράμετρο waitForCompletion : spinFor και spinToPosition.
bool isDone();
Αυτή η συνάρτηση δεν δέχεται καμία παράμετρο.
Return ValuesΕπιστρέφει εάν ο κινητήρας ή η ομάδα κινητήρων έχει ολοκληρώσει την κίνηση, ως λογική τιμή.
true— The motor or motor group is finished moving.false— The motor or motor group is still moving.
Η συνάρτηση
isDoneλειτουργεί μαζί με τις ακόλουθες συναρτήσεις Motion που έχουν την παράμετροwaitForCompletion:spinForκαιspinToPosition.
// Spin forward until the motor is done spinning
Motor1.spinFor(forward, 200, degrees, false);
while (true) {
if (Motor1.isDone()) {
Drivetrain.stop();
} else {
Drivetrain.drive(forward);
}
}
isSpinning#
Η συνάρτηση isSpinning επιστρέφει εάν ο κινητήρας ή η ομάδα κινητήρων περιστρέφεται, ως λογική τιμή. Αυτή μπορεί να χρησιμοποιηθεί για τον έλεγχο του χρονισμού άλλων συμπεριφορών με βάση την κίνηση του κινητήρα ή της ομάδας κινητήρων.
true— Ο κινητήρας ή η ομάδα κινητήρων περιστρέφεται.false— Ο κινητήρας ή η ομάδα κινητήρων δεν περιστρέφεται.
Αυτή η συνάρτηση λειτουργεί σε συνδυασμό με συναρτήσεις κίνησης όπως spin, spinFor και spinToPosition.
bool isSpinning();
Αυτή η συνάρτηση δεν δέχεται καμία παράμετρο.
Return ValuesΕπιστρέφει εάν ο κινητήρας ή η ομάδα κινητήρων περιστρέφεται, ως λογική τιμή.
true— The motor or motor group is spinning.false— The motor or motor group is not spinning.
isSpinningλειτουργεί με συναρτήσεις κίνησης όπωςspin,spinForκαιspinToPosition.
// Spin forward until the motor is done spinning
Motor1.spinFor(forward, 200, degrees, false);
while (true) {
if (Motor1.isSpinning()) {
Drivetrain.drive(forward);
} else {
Drivetrain.stop();
}
}
position#
Η θέση ενός κινητήρα ή μιας ομάδας κινητήρων είναι η απόσταση περιστροφής του, μετρούμενη σε degrees ή turnsΜία στροφή ισούται με 360 μοίρες. Η θέση position επιστρέφει την τρέχουσα θέση του κινητήρα ή της ομάδας κινητήρων.
Στην αρχή ενός έργου, η θέση του κινητήρα ή της ομάδας κινητήρων ορίζεται σε 0 μοίρες. Εάν ο κινητήρας ή η ομάδα κινητήρων περιστραφεί μία στροφή προς τα εμπρός, η θέση θα είναι 360 μοίρες ή 1 στροφή. Εάν ο κινητήρας ή η ομάδα κινητήρων περιστραφεί προς την αντίθετη κατεύθυνση, η θέση θα είναι αρνητική.
Available Functionsdouble position(
rotationUnits units );
Παράμετρος |
Τύπος |
Περιγραφή |
|---|---|---|
|
|
Η μονάδα για την επιστροφή της θέσης του κινητήρα ή της ομάδας κινητήρων σε:
|
Επιστρέφει ένα double που αντιπροσωπεύει την τρέχουσα θέση του κινητήρα ή της ομάδας κινητήρων στις καθορισμένες μονάδες.
Η κλήση της συνάρτησης
setPositionαλλάζει το σημείο αναφοράς για αυτήν την τιμή.Η επιστρεφόμενη τιμή αντικατοπτρίζει την τρέχουσα ένδειξη του κωδικοποιητή και δεν υποδεικνύει εάν ο κινητήρας ή η ομάδα κινητήρων κινείται ενεργά.
When called on a
motor_group, this function returns the position of the first motor in the group.
// Spin, then show the final position
Motor1.spin(forward);
wait(1, seconds);
Motor1.stop();
Brain.Screen.print("Pos: %f", Motor1.position(degrees));
velocity#
Η τιμή velocity επιστρέφει την ταχύτητα περιστροφής του κινητήρα ή της ομάδας κινητήρων.
Μια θετική τιμή σημαίνει ότι ο κινητήρας ή η ομάδα κινητήρων περιστρέφεται προς τα εμπρός. Μια αρνητική τιμή σημαίνει ότι περιστρέφεται προς τα πίσω.
Available Functionsdouble velocity(
velocityUnits units );
Παράμετρος |
Τύπος |
Περιγραφή |
|---|---|---|
|
|
Η μονάδα που χρησιμοποιείται για την αναπαράσταση της ταχύτητας:
|
Επιστρέφει ένα double που αντιπροσωπεύει την ταχύτητα περιστροφής του κινητήρα ή της ομάδας κινητήρων στις καθορισμένες μονάδες.
Σημειώσεις
When called on a
motor_group, this function returns the velocity of the first motor in the group.
current#
current επιστρέφει την ποσότητα ηλεκτρικού ρεύματος που χρησιμοποιεί ο κινητήρας ή η ομάδα κινητήρων. Το ρεύμα είναι η ποσότητα ηλεκτρικής ενέργειας που ρέει μέσω του κινητήρα ή της ομάδας κινητήρων. Όταν επιστρέφεται σε αμπέρ, το ρεύμα αναφέρεται από 0,0 έως 1,2 A.
Μια υψηλότερη τιμή ρεύματος σημαίνει ότι ο κινητήρας ή η ομάδα κινητήρων χρησιμοποιεί περισσότερο ηλεκτρικό ρεύμα. Αυτό μπορεί να συμβεί όταν ο κινητήρας ή η ομάδα κινητήρων σηκώνει κάτι βαρύ, πιέζει ένα αντικείμενο ή προσπαθεί να κινηθεί όταν αυτό έχει κολλήσει.
Αυτό μπορεί να χρησιμοποιηθεί για να ελεγχθεί εάν ο κινητήρας ή η ομάδα κινητήρων παρουσιάζει δυσκολίες κατά τη διάρκεια μιας κίνησης. Εάν το ρεύμα παραμείνει υψηλό, ο κινητήρας μπορεί να θερμανθεί ή να χρησιμοποιήσει την ισχύ λιγότερο αποτελεσματικά.
Available Functions1 — Επιστρέφει το ηλεκτρικό ρεύμα του κινητήρα ή της ομάδας κινητήρων σε αμπέρ.
double current( currentUnits units = amp );
Parameters2 — Επιστρέφει το ηλεκτρικό ρεύμα του κινητήρα ή της ομάδας κινητήρων ως ποσοστό του μέγιστου ονομαστικού ρεύματος.
double current( percentUnits units );
Παράμετρος |
Τύπος |
Περιγραφή |
|---|---|---|
|
|
Η μονάδα που χρησιμοποιείται για την αναπαράσταση του ρεύματος: |
|
|
Αντιπροσωπεύει το ρεύμα ως ποσοστό του μέγιστου ονομαστικού ρεύματος του κινητήρα: |
Επιστρέφει ένα double που αντιπροσωπεύει την ποσότητα ηλεκτρικού ρεύματος που καταναλώνει ο κινητήρας ή η ομάδα κινητήρων στις καθορισμένες μονάδες.
Σημειώσεις
When called on a
motor_group, this function returns the total electrical current for all motors in the group.
power#
power επιστρέφει την ισχύ που χρησιμοποιεί ο κινητήρας ή η ομάδα κινητήρων σε watt. Η ισχύς δείχνει πόσο γρήγορα χρησιμοποιεί ενέργεια ο κινητήρας ή η ομάδα κινητήρων.
Μια υψηλότερη τιμή ισχύος σημαίνει ότι ο κινητήρας ή η ομάδα κινητήρων χρησιμοποιεί ενέργεια πιο γρήγορα. Αυτό μπορεί να συμβεί όταν ο κινητήρας ή η ομάδα κινητήρων σηκώνει κάτι βαρύ, πιέζει ένα αντικείμενο ή προσπαθεί να κινηθεί όταν αυτό έχει κολλήσει.
Αυτό μπορεί να χρησιμοποιηθεί για τη σύγκριση κινήσεων ή για τον έλεγχο αν ο κινητήρας ή η ομάδα κινητήρων αντιμετωπίζει δυσκολίες. Εάν η ισχύς παραμείνει υψηλή, ο κινητήρας μπορεί να θερμανθεί ή να χρησιμοποιήσει την ενέργεια λιγότερο αποτελεσματικά.
Available Functionsdouble power(
powerUnits units = watt );
Παράμετροι
Παράμετρος |
Τύπος |
Περιγραφή |
|---|---|---|
|
|
Η μονάδα που χρησιμοποιείται για την αναπαράσταση της ισχύος του κινητήρα:
|
Επιστρεφόμενες τιμές
Επιστρέφει ένα double που αντιπροσωπεύει την ισχύ που χρησιμοποιεί ο κινητήρας ή η ομάδα κινητήρων σε watt.
Σημειώσεις
When called on a
motor_group, this function returns the electrical power of the first motor in the group.
torque#
Η ροπή δείχνει πόσο δυνατά περιστρέφεται, σπρώχνει ή τραβάει ένας κινητήρας ή μια ομάδα κινητήρων ενώ περιστρέφεται.
torque επιστρέφει τη ροπή που χρησιμοποιεί ο κινητήρας ή η ομάδα κινητήρων.
Μια υψηλότερη τιμή ροπής σημαίνει ότι ο κινητήρας ή η ομάδα κινητήρων πιέζει ή τραβάει πιο δυνατά. Αυτό μπορεί να συμβεί όταν ο κινητήρας ή η ομάδα κινητήρων σηκώνει κάτι βαρύ, πιέζει ένα αντικείμενο ή προσπαθεί να κινηθεί όταν αυτό έχει κολλήσει.
Αυτό μπορεί να χρησιμοποιηθεί για να ελέγξετε αν ο κινητήρας ή η ομάδα κινητήρων δυσκολεύεται ή για να συγκρίνετε πόση ώθηση χρειάζονται οι διαφορετικές κινήσεις.
Για να ορίσετε τη ροπή ενός κινητήρα ή μιας ομάδας κινητήρων, χρησιμοποιήστε την συνάρτηση setMaxTorque.
double torque(
torqueUnits units = Nm );
Παράμετροι
Παράμετρος |
Τύπος |
Περιγραφή |
|---|---|---|
|
|
Η μονάδα που χρησιμοποιείται για την αναπαράσταση της ροπής του κινητήρα:
|
Επιστρεφόμενες τιμές
Επιστρέφει ένα double που αντιπροσωπεύει την ποσότητα ροπής που χρησιμοποιεί ο κινητήρας ή η ομάδα κινητήρων στις καθορισμένες μονάδες.
Σημειώσεις
When called on a
motor_group, this function returns the mechanical output torque of the first motor in the group.
efficiency#
efficiency επιστρέφει πόσο αποτελεσματικά χρησιμοποιεί την ισχύ ο κινητήρας ή η ομάδα κινητήρων, ως ποσοστό από 0% έως 100%.
Η απόδοση δείχνει πόση από την ισχύ του κινητήρα ή της ομάδας κινητήρων χρησιμοποιείται για κίνηση. Μια υψηλότερη τιμή απόδοσης σημαίνει ότι περισσότερη από την ισχύ του κινητήρα ή της ομάδας κινητήρων χρησιμοποιείται για κίνηση. Μια χαμηλότερη τιμή απόδοσης μπορεί να συμβεί όταν ο κινητήρας ή η ομάδα κινητήρων εργάζεται σκληρά αλλά δεν κινείται πολύ, όπως όταν έχει κολλήσει ή πιέζει ένα αντικείμενο.
Αυτό μπορεί να χρησιμοποιηθεί για τη σύγκριση κινήσεων ή για τον έλεγχο εάν ο κινητήρας ή η ομάδα κινητήρων σπαταλά ενέργεια αντί να τη χρησιμοποιεί για κίνηση.
Available Functionsdouble efficiency(
percentUnits units = percent );
Παράμετροι
Παράμετρος |
Τύπος |
Περιγραφή |
|---|---|---|
|
|
Η μονάδα που χρησιμοποιείται για την αναπαράσταση της απόδοσης του κινητήρα:
|
Επιστρεφόμενες τιμές
Επιστρέφει ένα double που αντιπροσωπεύει την αποτελεσματικότητα της χρήσης ισχύος από τον κινητήρα ή την ομάδα κινητήρων ως ποσοστό.
Σημειώσεις
When called on a
motor_group, this function returns the efficiency of the first motor in the group.
temperature#
Η τιμή temperature επιστρέφει τη θερμοκρασία του κινητήρα ή της ομάδας κινητήρων.
Η θερμοκρασία του κινητήρα δείχνει πόσο ζεστός είναι ο κινητήρας ή η ομάδα κινητήρων. Μια υψηλότερη θερμοκρασία σημαίνει ότι ο κινητήρας ή η ομάδα κινητήρων θερμαίνεται ενώ λειτουργεί. Ο κινητήρας θα πρέπει να παραμένει κάτω από 55°C για να συνεχίσει να λειτουργεί σε πλήρη απόδοση.
Εάν ο κινητήρας ή η ομάδα κινητήρων υπερθερμανθεί, θα μειώσει το μέγιστο ρεύμα του για να προστατευτεί. Στους 70°C, ένας κινητήρας θα σταματήσει να λειτουργεί μέχρι να κρυώσει.
Αυτό μπορεί να χρησιμοποιηθεί για να ελέγξετε εάν ο κινητήρας ή η ομάδα κινητήρων υπερθερμαίνεται κατά τη διάρκεια επαναλαμβανόμενων κινήσεων, μεγάλων διαδρομών ή όταν πιέζει ένα αντικείμενο.
Available Functions1 — Επιστρέφει τη θερμοκρασία του κινητήρα ή της ομάδας κινητήρων ως ποσοστό της μέγιστης θερμοκρασίας λειτουργίας.
double temperature( percentUnits units = percent );
2 — Επιστρέφει τη θερμοκρασία του κινητήρα ή της ομάδας κινητήρων σε φυσικές μονάδες θερμοκρασίας.
double temperature( temperatureUnits units );
Παράμετροι
Παράμετρος |
Τύπος |
Περιγραφή |
|---|---|---|
|
|
Η μονάδα που χρησιμοποιείται για την αναπαράσταση της θερμοκρασίας του κινητήρα ή της ομάδας κινητήρων ως ποσοστό:
|
|
|
Η μονάδα που χρησιμοποιείται για την αναπαράσταση της θερμοκρασίας του κινητήρα ή της ομάδας κινητήρων σε βαθμούς:
|
Επιστρεφόμενες τιμές
Επιστρέφει ένα double που αντιπροσωπεύει τη θερμοκρασία του κινητήρα ή της ομάδας κινητήρων στις καθορισμένες μονάδες.
Σημειώσεις
Το εύρος θερμοκρασίας λειτουργίας του κινητήρα είναι περίπου
20°C(68°F) έως70°C(158°F).When called on a
motor_group, this function returns the temperature of the first motor in the group.
voltage#
Η τάση voltage επιστρέφει την ηλεκτρική τάση που παρέχεται στον κινητήρα ή στην ομάδα κινητήρων.
double voltage(
voltageUnits units = volt );
Παράμετροι
Παράμετρος |
Τύπος |
Περιγραφή |
|---|---|---|
|
|
Η μονάδα που αντιπροσωπεύει την τάση:
|
Επιστρεφόμενες τιμές
Επιστρέφει ένα double που αντιπροσωπεύει την ηλεκτρική τάση που παρέχεται στον κινητήρα ή την ομάδα κινητήρων στις καθορισμένες μονάδες.
Σημειώσεις
When called on a
motor_group, this function returns the electrical voltage of the first motor in the group.
direction#
direction επιστρέφει την κατεύθυνση περιστροφής του κινητήρα ή της ομάδας κινητήρων.
directionType direction();
Παράμετροι
Αυτή η συνάρτηση δεν δέχεται καμία παράμετρο.
Επιστρεφόμενες τιμές
Επιστρέφει μια τιμή directionType που υποδεικνύει την τρέχουσα κατεύθυνση του κινητήρα ή της ομάδας κινητήρων:
forward— The motor or motor group is spinning forward.reverse— The motor or motor group is spinning in reverse.
installed#
installed επιστρέφει εάν η κινητική ή η κινητική ομάδα είναι συνδεδεμένη με τον εγκέφαλο IQ (2ης γενιάς).
bool installed();
Παράμετροι
Αυτή η συνάρτηση δεν δέχεται καμία παράμετρο.
Επιστρεφόμενες τιμές
Επιστρέφει μια τιμή bool που υποδεικνύει εάν ο κινητήρας ή η ομάδα κινητήρων είναι συνδεδεμένη.
true— The motor or motor group is connected.false— The motor or motor group is not connected.
count#
Η συνάρτηση count επιστρέφει τον αριθμό των κινητήρων σε μια ομάδα κινητήρων.
int32_t count();
Παράμετροι
Αυτή η συνάρτηση δεν δέχεται καμία παράμετρο.
Επιστρεφόμενες τιμές
Επιστρέφει μια τιμή int32_t που αντιπροσωπεύει τον αριθμό των κινητήρων στην ομάδα κινητήρων.