Σύστημα μετάδοσης κίνησης#
Εισαγωγή#
Η κλάση σύστημα μετάδοσης κίνησης ελέγχει τον τρόπο με τον οποίο ένα ρομπότ κινείται και περιστρέφεται. Ένα σύστημα μετάδοσης κίνησης αποτελείται από κινητήρες και τροχούς που συνεργάζονται για να κινούν το ρομπότ.
Ένα σύστημα μετάδοσης κίνησης δεν χρησιμοποιεί Αισθητήρα Αδράνειας ή Αισθητήρα Γυροσκοπίου για στροφές που βασίζονται σε κατεύθυνση ή περιστροφή. Μπορεί να κινείται προς τα εμπρός ή προς τα πίσω και να στρίβει αριστερά ή δεξιά, αλλά δεν μπορεί να στρίψει σε μια συγκεκριμένη κατεύθυνση ή περιστροφή. Για στροφές που βασίζονται σε κατεύθυνση και περιστροφή, χρησιμοποιήστε την κλάση smartdrive.
Παράγωγες Κλάσεις#
Η κλάση συστήματος μετάδοσης κίνησης χρησιμεύει ως βασική κλάση για τις ακόλουθες παράγωγες κλάσεις:
smartdrive- Αυτή η κλάση προσθέτει υποστήριξη για Αδρανειακό Αισθητήρα ή Γυροσκοπικό Αισθητήρα για να επιτρέπει στροφές που βασίζονται σε κατεύθυνση και περιστροφή.
Κατασκευαστές κλάσεων#
1 - Δημιουργεί ένα σύστημα μετάδοσης κίνησης χρησιμοποιώντας υπάρχοντα αντικείμενα
motor_groupγια την αριστερή (&) και τη δεξιά (&) πλευρά.drivetrain( motor_group &l, motor_group &r, double wheelTravel = 320, double trackWidth = 320, double wheelBase = 130, distanceUnits unit = mm, double externalGearRatio = 1.0 );
2 - Δημιουργεί ένα σύστημα μετάδοσης κίνησης χρησιμοποιώντας υπάρχοντα αντικείμενα
κινητήραγια την αριστερή (&) και τη δεξιά (&) πλευρά.drivetrain( motor &l, motor &r, double wheelTravel = 320, double trackWidth = 320, double wheelBase = 130, distanceUnits unit = mm, double externalGearRatio = 1.0 );
Καταστροφέας κλάσης#
Καταστρέφει το αντικείμενο σύστημα μετάδοσης κίνησης και απελευθερώνει τους σχετικούς πόρους.
virtual ~drivetrain();
Παράμετροι#
Παράμετρος |
Τύπος |
Περιγραφή |
|---|---|---|
|
|
Οι αριστεροί και δεξιοί κινητήρες ή ομάδες κινητήρων. Και οι δύο παράμετροι πρέπει να χρησιμοποιούν τον ίδιο τύπο: είτε δύο αντικείμενα |
|
|
Η περιφέρεια των τροχών του συστήματος μετάδοσης κίνησης. Η προεπιλογή είναι |
|
|
Η απόσταση μεταξύ του αριστερού και του δεξιού τροχού. Η προεπιλογή είναι |
|
|
Η απόσταση μεταξύ των μπροστινών και των πίσω τροχών. Η προεπιλογή είναι |
|
|
Η μονάδα για διαδρομή τροχού |
|
|
Η σχέση μετάδοσης που χρησιμοποιείται για την προσαρμογή των αποστάσεων οδήγησης εάν χρησιμοποιούνται ταχύτητες. Η προεπιλογή είναι |
Παράδειγμα#
// Create the left and right motor objects
motor leftMotor = motor(PORT1, false);
motor rightMotor = motor(PORT9, true);
// Create the drivetrain object
drivetrain myDrivetrain = drivetrain(
leftMotor, // left motor object
rightMotor, // right motor object
259.34, // wheelTravel
320, // trackWidth
40, // wheelBase
mm, // unit
1.0 ); // externalGearRatio
Συναρτήσεις Μελών#
Υπάρχουν πολλοί τρόποι για να κωδικοποιήσετε το σύστημα μετάδοσης κίνησης. Παρακάτω είναι μια λίστα με όλες τις συναρτήσεις μέλους συστήματος μετάδοσης κίνησης:
Ενέργειες - Μετακίνηση και περιστροφή του ρομπότ.
drive- Μετακινεί το ρομπότ προς τα εμπρός ή προς τα πίσω για πάντα.driveFor- Μετακινεί το ρομπότ προς τα εμπρός ή προς τα πίσω για μια συγκεκριμένη απόσταση.στροφή- Στρέφει το ρομπότ αριστερά ή δεξιά για πάντα.turnFor- Στρέφει το ρομπότ αριστερά ή δεξιά για έναν συγκεκριμένο αριθμό μοιρών.stop- Σταματά την κίνηση του ρομπότ.
Μεταλλαγμένοι - Προσαρμόστε τις ρυθμίσεις του συστήματος μετάδοσης κίνησης.
setDriveVelocity- Υποδεικνύει στο ρομπότ πόσο γρήγορα να οδηγήσει.setTurnVelocity- Υποδεικνύει στο ρομπότ πόσο γρήγορα να στρίψει.setStopping- Υποδεικνύει πώς το ρομπότ θα σταματήσει να κινείται: φρενάροντας, κάνοντας ελεύθερη κίνηση ή κρατώντας το.setTimeout- Ορίζει πόσα δευτερόλεπτα θα προσπαθήσει το ρομπότ να ολοκληρώσει μια κίνηση.
Getters - Ελέγξτε την κατάσταση της κίνησης.
isDone- Επιστρέφει εάν το ρομπότ έχει ολοκληρώσει την κίνησή του, ως λογική τιμή.isMoving- Επιστρέφει εάν το ρομπότ κινείται, ως λογική τιμή.ταχύτητα- Επιστρέφει την ταχύτητα με την οποία κινείται το ρομπότ.ρεύμα- Επιστρέφει την ποσότητα ηλεκτρικού ρεύματος που χρησιμοποιεί το σύστημα μετάδοσης κίνησης.power- Επιστρέφει την ταχύτητα με την οποία το σύστημα μετάδοσης κίνησης χρησιμοποιεί ενέργεια.ροπή- Επιστρέφει τη ροπή που χρησιμοποιεί το σύστημα μετάδοσης κίνησης.απόδοση- Επιστρέφει πόσο αποτελεσματικά χρησιμοποιεί την ισχύ το σύστημα μετάδοσης κίνησης.θερμοκρασία- Επιστρέφει πόσο ζεστό είναι το σύστημα μετάδοσης κίνησης.τάση- Επιστρέφει την ηλεκτρική τάση που παρέχεται στο σύστημα μετάδοσης κίνησης.
Πριν από την κλήση οποιασδήποτε συνάρτησης μέλους drivetrain , πρέπει να δημιουργηθεί ένα αντικείμενο drivetrain , όπως φαίνεται παρακάτω:
/* This constructor is required when using VS Code.
Drivetrain configuration is generated automatically
in VEXcode using the Device Menu. Replace the values
as needed. */
// Create the left and right motor objects
motor leftMotor = motor(PORT1, false);
motor rightMotor = motor(PORT9, true);
// Create the drivetrain object
drivetrain myDrivetrain = drivetrain(
leftMotor, // left motor object
rightMotor, // right motor object
259.34, // wheelTravel
320, // trackWidth
40, // wheelBase
mm, // unit
1.0 ); // externalGearRatio
Ενέργειες#
οδηγώ#
κίνηση κινεί το ρομπότ προς τα εμπρός ή προς τα πίσω για πάντα. Το ρομπότ θα συνεχίσει να κινείται μέχρι να του δοθεί μια άλλη ενέργεια, όπως στροφή ή στάση. Για RPM ή DPS, το όριο αλλάζει από την σχέση μετάδοσης του συστήματος μετάδοσης κίνησης.
1 - Οδηγεί χρησιμοποιώντας την τρέχουσα ρυθμισμένη ταχύτητα οδήγησης.
void drive( directionType dir );
Parameters2 - Οδηγεί με την καθορισμένη ταχύτητα.
void drive( directionType dir, double velocity, velocityUnits units );
Παράμετρος |
Τύπος |
Περιγραφή |
|---|---|---|
|
|
Η κατεύθυνση κίνησης του ρομπότ: |
|
|
Η ταχύτητα με την οποία θα κινείται το ρομπότ κυμαίνεται από 0% έως 100% όταν χρησιμοποιείται |
|
|
Η μονάδα ταχύτητας: |
Αυτή η συνάρτηση δεν επιστρέφει τιμή.
Notesη μονάδα δίσκουδεν είναι σε αναμονή. Το έργο θα συνεχίσει να εκτελεί την επόμενη γραμμή κώδικα αμέσως μετά την κλήση.Το σύστημα μετάδοσης κίνησης θα συνεχίσει να κινείται μέχρι να κληθεί η συνάρτηση
stopή να εκτελεστεί κάποια άλλη συνάρτηση κίνησης του συστήματος μετάδοσης κίνησης (όπωςdriveForήturn).Συναρτήσεις όπως
isDoneκαιisMovingδεν εφαρμόζονται στοdrive, καθώς δεν χρησιμοποιεί κίνηση βάσει στόχου (δεν έχει παράμετροdistance).
// Drive forward and back
myDrivetrain.drive(forward);
wait(2, seconds);
myDrivetrain.drive(reverse, 25, rpm);
wait(2, seconds);
myDrivetrain.stop();
driveFor#
Η συνάρτηση driveFor κινεί το ρομπότ προς τα εμπρός ή προς τα πίσω για μια συγκεκριμένη απόσταση. Το έργο θα περιμένει μέχρι το ρομπότ να ολοκληρώσει την κίνησή του πριν εκτελεστεί η επόμενη γραμμή κώδικα από προεπιλογή. Για RPM ή DPS, το όριο αλλάζει από την σχέση μετάδοσης του συστήματος μετάδοσης κίνησης.
1 - Οδηγεί στην καθορισμένη κατεύθυνση για μια απόσταση χρησιμοποιώντας την τρέχουσα ρυθμισμένη ταχύτητα οδήγησης.
bool driveFor( directionType dir, double distance, distanceUnits units, bool waitForCompletion = true );
2 - Οδηγεί σε μια κατεύθυνση που εξαρτάται από την απόσταση χρησιμοποιώντας την τρέχουσα ρυθμισμένη ταχύτητα οδήγησης.
bool driveFor( double distance, distanceUnits units, bool waitForCompletion = true );
3 - Οδηγεί σε κατεύθυνση που εξαρτάται από την απόσταση με την καθορισμένη ταχύτητα.
bool driveFor( double distance, distanceUnits units, double velocity, velocityUnits units_v, bool waitForCompletion = true );
Parameters4 - Οδηγεί στην καθορισμένη κατεύθυνση για μια απόσταση με την καθορισμένη ταχύτητα.
bool driveFor( directionType dir, double distance, distanceUnits units, double velocity, velocityUnits units_v, bool waitForCompletion = true );
Παράμετρος |
Τύπος |
Περιγραφή |
|---|---|---|
|
|
Η κατεύθυνση κίνησης του ρομπότ: |
|
|
Η απόσταση που διανύει το ρομπότ. |
|
|
Η μονάδα απόστασης: |
|
|
Η ταχύτητα με την οποία θα κινείται το ρομπότ κυμαίνεται από 0% έως 100% όταν χρησιμοποιείται |
|
|
Η μονάδα ταχύτητας: |
|
|
|
Επιστρέφει εάν το ρομπότ έφτασε στην απόσταση-στόχο, ως λογική τιμή.
σωστό- Το ρομπότ έφτασε στην απόσταση-στόχο.false- Το ρομπότ δεν ολοκλήρωσε την κίνηση ή η συνάρτηση επέστρεψε πριν ολοκληρωθεί η κίνηση επειδή η τιμήwaitForCompletionείχε οριστεί σεfalse.
Η εκτέλεση μιας άλλης λειτουργίας κίνησης του συστήματος μετάδοσης κίνησης (όπως
driveήturnFor) ενώ η κίνησηdriveForβρίσκεται σε εξέλιξη θα διακόψει την τρέχουσα κίνηση.Επειδή#ismovingσυνάρτηση
driveForβασίζεται σε στόχο (χρησιμοποιεί μια παράμετροdistance), συναρτήσεις όπως [](#isdoneκαιλειτουργούν με την συνάρτηση.
Examples
// Drive 200 mm, then back 200 mm
myDrivetrain.driveFor(forward, 200, mm);
myDrivetrain.driveFor(reverse, 200, mm);
σειρά#
Η στροφή γυρίζει το ρομπότ αριστερά ή δεξιά για πάντα. Το ρομπότ θα συνεχίσει να περιστρέφεται μέχρι να του δοθεί μια άλλη ενέργεια, όπως οδήγηση ή στάση. Για RPM ή DPS, το όριο αλλάζει από την σχέση μετάδοσης του συστήματος μετάδοσης κίνησης.
Available Functions
1 - Στροφές χρησιμοποιώντας την τρέχουσα ρυθμισμένη ταχύτητα στροφής.
void turn(
turnType dir );
2 - Στρέφεται με την καθορισμένη ταχύτητα.
void turn(
turnType dir,
double velocity,
velocityUnits units );
Parameters
Παράμετρος
Τύπος
Περιγραφή
dir
turnType
Η κατεύθυνση που γυρίζει το ρομπότ: αριστερά ή δεξιά.
velocity
double
Η ταχύτητα περιστροφής κυμαίνεται από 0% έως 100% όταν χρησιμοποιείται velocityUnits::pct, από 0 έως 600 rpm όταν χρησιμοποιείται rpmή από 0 έως 3600 μοίρες ανά δευτερόλεπτο όταν χρησιμοποιείται dpsΕάν δεν παρέχεται ταχύτητα, το ρομπότ περιστρέφεται με την τρέχουσα ταχύτητα περιστροφής.
units
velocityUnits
Η μονάδα ταχύτητας: velocityUnits::pct (ποσοστό), rpm (περιστροφές ανά λεπτό) ή dps (μοίρες ανά δευτερόλεπτο).
Return Values
This function does not return a value.
Notes
Ο γύρος
δεν είναι σε αναμονή. Το έργο θα συνεχίσει να εκτελεί την επόμενη γραμμή κώδικα αμέσως μετά την κλήση.Το σύστημα μετάδοσης κίνησης θα συνεχίσει να περιστρέφεται μέχρι να κληθεί η
στάσηή να εκτελεστεί κάποια άλλη συνάρτηση κίνησης του συστήματος μετάδοσης κίνησης (όπωςturnForήdrive).Συναρτήσεις όπως [](#isdoneκαι [](#ismovingδεν εφαρμόζονται στηνκαθώς δεν χρησιμοποιεί κίνηση βασισμένη σε στόχο (δεν έχει παράμετρο).
Examples
// Turn right, then left, then stop
myDrivetrain.turn(right);
wait(2, seconds);
myDrivetrain.turn(left);
wait(2, seconds);
myDrivetrain.stop();
στροφήΓια#
στροφήΓια στρέφει το ρομπότ αριστερά ή δεξιά για έναν συγκεκριμένο αριθμό μοιρών. Η στροφή είναι σχετική με την τρέχουσα θέση του ρομπότ. Το έργο θα περιμένει μέχρι το ρομπότ να ολοκληρώσει την στροφή πριν εκτελεστεί η επόμενη γραμμή κώδικα από προεπιλογή. Για RPM ή DPS, το όριο αλλάζει από την σχέση μετάδοσης του συστήματος μετάδοσης κίνησης.
Available Functions
1 - Στροφές για την καθορισμένη γωνία χρησιμοποιώντας την τρέχουσα ρυθμισμένη ταχύτητα στροφής.
bool turnFor(
double angle,
rotationUnits units,
bool waitForCompletion = true );
2 - Στρέφεται στην καθορισμένη κατεύθυνση για μια γωνία χρησιμοποιώντας την τρέχουσα ρυθμισμένη ταχύτητα στροφής.
bool turnFor(
turnType dir,
double angle,
rotationUnits units,
bool waitForCompletion = true );
3 - Στρέφεται για την καθορισμένη γωνία με την καθορισμένη ταχύτητα.
bool turnFor(
double angle,
rotationUnits units,
double velocity,
velocityUnits units_v,
bool waitForCompletion = true );
4 - Στρέφεται προς την καθορισμένη κατεύθυνση για μια γωνία με την καθορισμένη ταχύτητα.
bool turnFor(
turnType dir,
double angle,
rotationUnits units,
double velocity,
velocityUnits units_v,
bool waitForCompletion = true );
Parameters
Παράμετρος
Τύπος
Περιγραφή
dir
turnType
Η κατεύθυνση που γυρίζει το ρομπότ: αριστερά ή δεξιά.
angle
double
Η γωνία περιστροφής του ρομπότ.
units
rotationUnits
Η μονάδα στροφής: μοίρες (μοίρες), περιστροφές (περιστροφές) ή ακατέργαστες (ακατέργαστες μονάδες). Μία περιστροφή ισούται με 360 μοίρες.
velocity
double
Η ταχύτητα περιστροφής κυμαίνεται από 0% έως 100% όταν χρησιμοποιείται velocityUnits::pct, από 0 έως 600 rpm όταν χρησιμοποιείται rpmή από 0 έως 3600 μοίρες ανά δευτερόλεπτο όταν χρησιμοποιείται dpsΕάν δεν παρέχεται ταχύτητα, το ρομπότ περιστρέφεται με την τρέχουσα ταχύτητα περιστροφής.
units_v
velocityUnits
Η μονάδα ταχύτητας: velocityUnits::pct (ποσοστό), rpm (περιστροφές ανά λεπτό) ή dps (μοίρες ανά δευτερόλεπτο).
waitForCompletion
bool
true (προεπιλογή) κάνει το έργο να περιμένει μέχρι το ρομπότ να ολοκληρώσει την περιστροφή πριν εκτελεστεί η επόμενη γραμμή κώδικα. false κάνει την επόμενη γραμμή κώδικα να εκτελεστεί αμέσως.
Return Values
Επιστρέφει εάν το ρομπότ έφτασε στη γωνία-στόχο, ως λογική τιμή.
σωστό - Το ρομπότ έφτασε στη γωνία-στόχο.
false - Το ρομπότ δεν ολοκλήρωσε τον γύρο ή η συνάρτηση επέστρεψε πριν ολοκληρωθεί ο γύρος επειδή η τιμή waitForCompletion είχε οριστεί σε false.
Notes
Η εκτέλεση μιας άλλης λειτουργίας κίνησης του συστήματος μετάδοσης κίνησης (όπως στροφή ή οδήγηση) ενώ βρίσκεται σε εξέλιξη η στροφή για θα διακόψει την τρέχουσα κίνηση.
Επειδή#isdoneσυνάρτηση turnFor βασίζεται σε στόχο (χρησιμοποιεί μια παράμετρο angle ), συναρτήσεις όπως και λειτουργούν με#ismovingσυνάρτηση .
Examples
// Turn right then left
myDrivetrain.turnFor(right, 90, degrees);
wait(1, seconds);
myDrivetrain.turnFor(left, 90, degrees);
στάση#
Η εντολή stop σταματά την κίνηση του ρομπότ. Εάν παρέχεται λειτουργία διακοπής, ελέγχει τον τρόπο με τον οποίο το ρομπότ σταματά για αυτήν την κλήση συνάρτησης.
Available Functions
1 - Σταματάει το σύστημα μετάδοσης κίνησης χρησιμοποιώντας την τρέχουσα διαμορφωμένη λειτουργία διακοπής.
void stop();
2 - Σταματά το σύστημα μετάδοσης κίνησης χρησιμοποιώντας την καθορισμένη λειτουργία πέδησης.
void stop(
brakeType mode );
Parameters
Παράμετρος
Τύπος
Περιγραφή
mode
brakeType
Πώς θα σταματήσει το ρομπότ:
φρένο - Σταματάει αμέσως.ακινητοποίηση - Επιβραδύνει μέχρι να σταματήσει.κράτημα - Σταματάει αμέσως και διατηρεί τη θέση των τροχών.
Return Values
Αυτή η συνάρτηση δεν επιστρέφει τιμή.
Examples
// Drive forward, then coast to a stop
myDrivetrain.setDriveVelocity(100, percent);
myDrivetrain.drive(forward);
wait(2, seconds);
myDrivetrain.stop(coast);
Μεταλλάκτες#
setDriveVelocity#
setDriveVelocity λέει στο ρομπότ πόσο γρήγορα να οδηγήσει. Ένα υψηλότερο ποσοστό κάνει το ρομπότ να οδηγεί πιο γρήγορα και ένα χαμηλότερο ποσοστό κάνει το ρομπότ να οδηγεί πιο αργά. Για RPM ή DPS, το όριο αλλάζει από την σχέση μετάδοσης του συστήματος μετάδοσης κίνησης.
Κάθε έργο ξεκινά με το ρομπότ να κινείται με ταχύτητα 50% από προεπιλογή.
Σημείωση: Μια υψηλότερη ταχύτητα κάνει το ρομπότ να κινείται πιο γρήγορα, αλλά μπορεί να είναι λιγότερο ακριβές. Μια χαμηλότερη ταχύτητα κάνει το ρομπότ να κινείται πιο αργά, αλλά μπορεί να είναι πιο ακριβές.
Available Functions
void setDriveVelocity(
double velocity,
velocityUnits units );
Parameters
Παράμετρος
Τύπος
Περιγραφή
velocity
double
Η ταχύτητα οδήγησης κυμαίνεται από 0% έως 100% όταν χρησιμοποιείται velocityUnits::pct, από 0 έως 600 rpm όταν χρησιμοποιείται rpmή από 0 έως 3600 μοίρες ανά δευτερόλεπτο όταν χρησιμοποιείται dps.
units
velocityUnits
Η μονάδα ταχύτητας: velocityUnits::pct (ποσοστό), rpm (περιστροφές ανά λεπτό) ή dps (μοίρες ανά δευτερόλεπτο).
Return Values
Αυτή η συνάρτηση δεν επιστρέφει τιμή.
Notes
Η ταχύτητα κίνησης ισχύει για όλες τις επόμενες συναρτήσεις κίνησης του συστήματος κίνησης (όπως drive και driveFor) εκτός εάν παρέχεται συγκεκριμένη ταχύτητα στην κλήση της συνάρτησης.
Examples
// Drive forward, then coast to a stop
myDrivetrain.setDriveVelocity(100, percent);
myDrivetrain.drive(forward);
wait(2, seconds);
myDrivetrain.stop(coast);
setTurnVelocity#
setTurnVelocity λέει στο ρομπότ πόσο γρήγορα να στρίψει. Ένα υψηλότερο ποσοστό κάνει το ρομπότ να στρίψει πιο γρήγορα και ένα χαμηλότερο ποσοστό το κάνει να στρίψει πιο αργά. Για RPM ή DPS, το όριο αλλάζει από την σχέση μετάδοσης του συστήματος μετάδοσης κίνησης.
Κάθε έργο ξεκινά με το ρομπότ να περιστρέφεται με ταχύτητα 50% από προεπιλογή.
Σημείωση: Μια υψηλότερη ταχύτητα κάνει το ρομπότ να περιστρέφεται πιο γρήγορα, αλλά μπορεί να είναι λιγότερο ακριβής. Μια χαμηλότερη ταχύτητα κάνει το ρομπότ να περιστρέφεται πιο αργά, αλλά μπορεί να είναι πιο ακριβής.
Available Functions
void setTurnVelocity(
double velocity,
velocityUnits units );
Parameters
Παράμετρος
Τύπος
Περιγραφή
velocity
double
Η ταχύτητα περιστροφής κυμαίνεται από 0% έως 100% όταν χρησιμοποιείται velocityUnits::pct, από 0 έως 600 rpm όταν χρησιμοποιείται rpmή από 0 έως 3600 μοίρες ανά δευτερόλεπτο όταν χρησιμοποιείται dps.
units
velocityUnits
Η μονάδα ταχύτητας: τοις εκατό ή pct (ποσοστό), rpm (περιστροφές ανά λεπτό) ή dps (μοίρες ανά δευτερόλεπτο).
Return Values
Αυτή η συνάρτηση δεν επιστρέφει τιμή.
Notes
Η ταχύτητα στροφής ισχύει για όλες τις επόμενες συναρτήσεις στροφής του συστήματος μετάδοσης κίνησης (όπως στροφή και στροφήΓια) εκτός εάν παρέχεται συγκεκριμένη ταχύτητα στην κλήση της συνάρτησης.
Examples
// Try default, slow, then fast
myDrivetrain.turnFor(right, 360, degrees);
wait(1, seconds);
myDrivetrain.setTurnVelocity(20, percent);
myDrivetrain.turnFor(right, 360, degrees);
wait(1, seconds);
myDrivetrain.setTurnVelocity(100, percent);
myDrivetrain.turnFor(right, 360, degrees);
setStopping#
setStopping Η τιμή ορίζει τον τρόπο με τον οποίο το ρομπότ θα σταματήσει να κινείται: φρενάροντας, κινούμενο με ταχύτητα χωρίς κίνηση ή κρατώντας το.
Available Functions
void setStopping(
brakeType mode );
Parameters
Παράμετρος
Τύπος
Περιγραφή
mode
brakeType
Πώς θα σταματήσει το ρομπότ:
φρένο - Σταματάει αμέσως.ακινητοποίηση - Επιβραδύνει μέχρι να σταματήσει.κράτημα - Σταματάει αμέσως και διατηρεί τη θέση των τροχών.
Return Values
Αυτή η συνάρτηση δεν επιστρέφει τιμή.
Notes
Η λειτουργία διακοπής ισχύει για όλες τις επόμενες κλήσεις διακοπή, εκτός εάν παρέχεται συγκεκριμένη λειτουργία διακοπής στην κλήση της συνάρτησης.
ορισμός χρονικού ορίου#
setTimeout ορίζει σε πόσα δευτερόλεπτα το ρομπότ θα προσπαθήσει να ολοκληρώσει μια κίνηση. Εάν το ρομπότ δεν μπορεί να ολοκληρώσει σε αυτό το χρονικό διάστημα, θα σταματήσει την προσπάθεια και θα προχωρήσει στην επόμενη γραμμή κώδικα. Αυτό εμποδίζει το ρομπότ να κολλήσει σε μια κίνηση.
Available Functions
void setTimeout(
int32_t time,
timeUnits units );
Parameters
Παράμετρος
Τύπος
Περιγραφή
time
int32_t
Ο χρόνος που μπορεί να προσπαθήσει το ρομπότ για να ολοκληρώσει μια κίνηση. Αυτός θα πρέπει να είναι ένας θετικός ακέραιος αριθμός.
units
timeUnits
Η μονάδα χρόνου: δευτ. (δευτερόλεπτα) ή msec (χιλιοστά του δευτερολέπτου).
Return Values
Αυτή η συνάρτηση δεν επιστρέφει τιμή.
Notes
Το χρονικό όριο ισχύει μόνο για συναρτήσεις κίνησης συστήματος μετάδοσης κίνησης που βασίζονται σε στόχο (όπως driveFor και turnFor).
Examples
// Start turning if driving takes too long
myDrivetrain.setTimeout(1, seconds);
myDrivetrain.driveFor(forward, 25, inches);
myDrivetrain.turnFor(right, 90, degrees);
Αποκτητές#
είναιΟλοκληρωμένο#
Η συνάρτηση isDone επιστρέφει εάν το ρομπότ έχει ολοκληρώσει την κίνησή του, ως λογική τιμή. Αυτή μπορεί να χρησιμοποιηθεί για τον έλεγχο του χρονισμού άλλων συμπεριφορών με βάση την κίνηση του ρομπότ.
Available Functions
bool isDone( void );
Parameters
Αυτή η συνάρτηση δεν δέχεται καμία παράμετρο.
Return Values
σωστό - Το ρομπότ έχει ολοκληρώσει την κίνηση.
λάθος - Το ρομπότ εξακολουθεί να κινείται.
Notes
Μετακινείται#
Η συνάρτηση isMoving επιστρέφει εάν το ρομπότ κινείται, ως λογική τιμή. Αυτή μπορεί να χρησιμοποιηθεί για τον έλεγχο του χρονισμού άλλων συμπεριφορών με βάση την κίνηση του ρομπότ.
Available Functions
virtual bool isMoving( void );
Parameters
Αυτή η συνάρτηση δεν δέχεται καμία παράμετρο.
Return Values
σωστό - Το ρομπότ κινείται.
λάθος - Το ρομπότ δεν κινείται.
Notes
ταχύτητα#
Η τιμή ταχύτητα επιστρέφει την ταχύτητα με την οποία κινείται το ρομπότ.
Μια θετική τιμή σημαίνει ότι το ρομπότ κινείται προς τα εμπρός. Μια αρνητική τιμή σημαίνει ότι το ρομπότ κινείται προς τα πίσω.
Available Functions
double velocity(
velocityUnits units );
Parameters
Παράμετρος
Τύπος
Περιγραφή
units
velocityUnits
Η μονάδα ταχύτητας: τοις εκατό ή pct (ποσοστό), rpm (περιστροφές ανά λεπτό) ή dps (μοίρες ανά δευτερόλεπτο).
Return Values
Επιστρέφει την ταχύτητα του συστήματος μετάδοσης κίνησης ως διπλό στην επιλεγμένη μονάδα.
Examples
// Show velocity before and during motion
Brain.Screen.print("Resting: %f", myDrivetrain.velocity(percent));
myDrivetrain.drive(forward, 100, velocityUnits::pct);
wait(1, seconds);
Brain.Screen.newLine();
Brain.Screen.print("Moving: %f", myDrivetrain.velocity(percent));
myDrivetrain.stop();
ρεύμα#
Το ρεύμα επιστρέφει την ποσότητα ηλεκτρικού ρεύματος που χρησιμοποιεί το σύστημα μετάδοσης κίνησης. Το ρεύμα είναι η ποσότητα ηλεκτρικής ενέργειας που ρέει μέσω του συστήματος μετάδοσης κίνησης. Μπορεί να επιστραφεί σε αμπέρ (αμπέρ) ή ως ποσοστό, ανάλογα με τη μονάδα.
Μια υψηλότερη τιμή ρεύματος σημαίνει ότι το σύστημα μετάδοσης κίνησης χρησιμοποιεί περισσότερο ηλεκτρικό ρεύμα. Αυτό μπορεί να συμβεί όταν το ρομπότ πιέζει ένα αντικείμενο ή προσπαθεί να κινηθεί όταν αυτό έχει κολλήσει.
Αυτό μπορεί να χρησιμοποιηθεί για να ελέγξετε εάν το σύστημα μετάδοσης κίνησης παρουσιάζει δυσκολίες κατά τη διάρκεια μιας κίνησης. Εάν το ρεύμα παραμείνει υψηλό, το σύστημα μετάδοσης κίνησης μπορεί να θερμανθεί ή να χρησιμοποιήσει την ισχύ λιγότερο αποτελεσματικά.
Available Functions
1 - Επιστρέφει το ηλεκτρικό ρεύμα του συστήματος μετάδοσης κίνησης σε αμπέρ.
double current(
currentUnits units = currentUnits::amp );
2 - Επιστρέφει το ηλεκτρικό ρεύμα του συστήματος μετάδοσης κίνησης ως ποσοστό του μέγιστου.
double current(
percentUnits units );
Parameters
Παράμετρος
Τύπος
Περιγραφή
units
currentUnits
Η μονάδα επιστροφής ρεύματος: αμπέρ (αμπέρ, προεπιλογή).
units
percentUnits
Η μονάδα επιστροφής ρεύματος: τοις εκατό ή τοις εκατό.
Return Values
Επιστρέφει το ρεύμα του συστήματος μετάδοσης κίνησης ως διπλό στην επιλεγμένη μονάδα.
εξουσία#
ισχύς επιστρέφει την ισχύ που χρησιμοποιεί το σύστημα μετάδοσης κίνησης, μετρούμενη σε watt. Η ισχύς δείχνει πόσο γρήγορα χρησιμοποιεί ενέργεια το σύστημα μετάδοσης κίνησης.
Μια υψηλότερη τιμή ισχύος σημαίνει ότι το σύστημα μετάδοσης κίνησης χρησιμοποιεί ενέργεια πιο γρήγορα. Αυτό μπορεί να συμβεί όταν το ρομπότ πιέζει ένα αντικείμενο ή προσπαθεί να κινηθεί όταν αυτό έχει κολλήσει.
Αυτό μπορεί να χρησιμοποιηθεί για να συγκρίνετε κινήσεις ή να ελέγξετε αν το σύστημα μετάδοσης κίνησης παρουσιάζει δυσκολίες. Εάν η ισχύς παραμείνει υψηλή, το σύστημα μετάδοσης κίνησης μπορεί να θερμανθεί ή να χρησιμοποιήσει την ενέργεια λιγότερο αποτελεσματικά.
Available Functions
double power(
powerUnits units = powerUnits::watt );
Parameters
Παράμετρος
Τύπος
Περιγραφή
units
powerUnits
Η μονάδα ισχύος: watt (watt, προεπιλογή).
Return Values
Επιστρέφει την ισχύ του συστήματος μετάδοσης κίνησης ως διπλό σε watt.
ροπή#
Η ροπή δείχνει πόσο δυνατά μπορεί να σπρώξει ή να τραβήξει το σύστημα μετάδοσης κίνησης ενώ οι τροχοί σπινάρουν.
Η τιμή ροπή επιστρέφει την ποσότητα ροπής που χρησιμοποιεί το σύστημα μετάδοσης κίνησης, μετρούμενη σε Newton-μέτρα (Nm) ή ίντσες-λίβρες (InLb).
Μια υψηλότερη τιμή ροπής σημαίνει ότι το σύστημα μετάδοσης κίνησης πιέζει ή τραβάει πιο δυνατά. Αυτό μπορεί να συμβεί όταν το ρομπότ πιέζει ένα αντικείμενο ή προσπαθεί να κινηθεί όταν αυτό έχει κολλήσει.
Αυτό μπορεί να χρησιμοποιηθεί για να ελεγχθεί εάν το σύστημα μετάδοσης κίνησης δυσκολεύεται ή για να συγκριθεί η ώθηση που χρειάζονται οι διαφορετικές κινήσεις.
Available Functions
double torque(
torqueUnits units = torqueUnits::nm );
Parameters
Παράμετρος
Τύπος
Περιγραφή
units
torqueUnits
Η μονάδα επιστροφής ροπής: Nm (νιούτον μέτρα, προεπιλογή) ή InLb (ίντσες λίβρες).
Return Values
Επιστρέφει τη ροπή του συστήματος μετάδοσης κίνησης ως διπλό στην επιλεγμένη μονάδα.
αποδοτικότητα#
Η απόδοση επιστρέφει την αποτελεσματικότητα της χρήσης ισχύος από το σύστημα μετάδοσης κίνησης, ως ποσοστό από 0% έως 100%.
Η απόδοση δείχνει πόση από την ισχύ του συστήματος μετάδοσης κίνησης χρησιμοποιείται για κίνηση. Μια υψηλότερη τιμή απόδοσης σημαίνει ότι περισσότερη από την ισχύ του συστήματος μετάδοσης κίνησης χρησιμοποιείται για κίνηση. Μια χαμηλότερη τιμή απόδοσης μπορεί να συμβεί όταν το σύστημα μετάδοσης κίνησης λειτουργεί σκληρά αλλά δεν κινείται πολύ, όπως όταν το ρομπότ έχει κολλήσει ή πιέζει ένα αντικείμενο.
Αυτό μπορεί να χρησιμοποιηθεί για τη σύγκριση κινήσεων ή για τον έλεγχο εάν το σύστημα μετάδοσης κίνησης σπαταλά ενέργεια αντί να τη χρησιμοποιεί για κίνηση.
Available Functions
double efficiency(
percentUnits units = percentUnits::pct );
Parameters
Παράμετρος
Τύπος
Περιγραφή
units
percentUnits
Η μονάδα που θα επιστρέφει την απόδοση σε: τοις εκατό ή τοις εκατό (προεπιλογή).
Return Values
Επιστρέφει την απόδοση του συστήματος μετάδοσης κίνησης ως διπλό στην επιλεγμένη μονάδα.
θερμοκρασία#
Η τιμή θερμοκρασία επιστρέφει τη μέση θερμοκρασία του συστήματος μετάδοσης κίνησης ως ποσοστό από 0% έως 100%.
Η θερμοκρασία δείχνει πόσο ζεστοί είναι οι κινητήρες του συστήματος μετάδοσης κίνησης. Μια υψηλότερη θερμοκρασία σημαίνει ότι οι κινητήρες θερμαίνονται ενώ λειτουργούν. Οι κινητήρες θα πρέπει να παραμένουν κάτω από τους 55°C για να συνεχίσουν να λειτουργούν σε πλήρη απόδοση.
Εάν οι κινητήρες υπερθερμανθούν, θα μειώσουν το μέγιστο ρεύμα τους για να προστατευτούν. Στους 70°C, οι κινητήρες θα σταματήσουν να λειτουργούν μέχρι να κρυώσουν.
Αυτό μπορεί να χρησιμοποιηθεί για να ελέγξετε εάν το σύστημα μετάδοσης κίνησης υπερθερμαίνεται κατά τη διάρκεια επαναλαμβανόμενων κινήσεων, μεγάλων διαδρομών ή όταν πιέζει ένα αντικείμενο.
Available Functions
double temperature(
percentUnits units );
Parameters
Παράμετρος
Τύπος
Περιγραφή
units
percentUnits
Η μονάδα επιστροφής της θερμοκρασίας: τοις εκατό ή τοις εκατό.
Return Values
Επιστρέφει τη μέση θερμοκρασία του συστήματος μετάδοσης κίνησης ως διπλάσια από στην επιλεγμένη μονάδα.
Notes
Μια επιστρεφόμενη τιμή 50% υποδεικνύει ότι η μέση θερμοκρασία του κινητήρα είναι περίπου 45°C (113°F).
Το τυπικό εύρος θερμοκρασίας λειτουργίας για το σύστημα μετάδοσης κίνησης είναι περίπου 20°C (68°F) έως 70°C (158°F).
δυναμικό#
Η τάση επιστρέφει την ηλεκτρική τάση που παρέχεται στο σύστημα μετάδοσης κίνησης.
Η τάση είναι η ηλεκτρική πίεση που παρέχεται στους κινητήρες του συστήματος μετάδοσης κίνησης. Αυτή μπορεί να χρησιμοποιηθεί με τιμές ρεύματος και ισχύος για να κατανοηθεί ο τρόπος με τον οποίο το σύστημα μετάδοσης κίνησης χρησιμοποιεί την ηλεκτρική ενέργεια.
Available Functions
double voltage(
voltageUnits units = voltageUnits::volt );
Parameters
Παράμετρος
Τύπος
Περιγραφή
units
voltageUnits
Η μονάδα επιστροφής τάσης: βολτ (βολτ, προεπιλογή) ή voltageUnits::mV (χιλιοστόβολτ).
Return Values
Επιστρέφει την τάση του συστήματος μετάδοσης κίνησης ως διπλό στην επιλεγμένη μονάδα.