Σύστημα μετάδοσης κίνησης#

Εισαγωγή#

Η κλάση drivetrain ελέγχει τον τρόπο με τον οποίο ένα ρομπότ κινείται και περιστρέφεται. Ένα σύστημα μετάδοσης κίνησης αποτελείται από κινητήρες και τροχούς που συνεργάζονται για να κινούν το ρομπότ.

Ένα σύστημα μετάδοσης κίνησης drivetrain δεν χρησιμοποιεί Αισθητήρα Αδράνειας ή Αισθητήρα Γυροσκοπίου για στροφές που βασίζονται σε κατεύθυνση ή περιστροφή. Μπορεί να κινείται προς τα εμπρός ή προς τα πίσω και να στρίβει αριστερά ή δεξιά, αλλά δεν μπορεί να στρίψει σε μια συγκεκριμένη κατεύθυνση ή περιστροφή. Για στροφές που βασίζονται σε κατεύθυνση και περιστροφή, χρησιμοποιήστε την κλάση smartdrive.

Παράγωγες Κλάσεις#

Η κλάση drivetrain χρησιμεύει ως βασική κλάση για τις ακόλουθες παράγωγες κλάσεις:

  • smartdrive - Αυτή η κλάση προσθέτει υποστήριξη για Αδρανειακό Αισθητήρα ή Γυροσκοπικό Αισθητήρα για να επιτρέπει στροφές που βασίζονται σε κατεύθυνση και περιστροφή.

Κατασκευαστές κλάσεων#

1 - Δημιουργεί ένα σύστημα μετάδοσης κίνησης χρησιμοποιώντας υπάρχοντα αντικείμενα motor_group για την αριστερή (&l) και τη δεξιά (&r) πλευρά.

drivetrain(
    motor_group      &l,
    motor_group      &r,
    double           wheelTravel = 320,
    double           trackWidth = 320,
    double           wheelBase = 130,
    distanceUnits    unit = mm,
    double           externalGearRatio = 1.0 );

2 - Δημιουργεί ένα σύστημα μετάδοσης κίνησης χρησιμοποιώντας υπάρχοντα αντικείμενα motor για την αριστερή (&l) και τη δεξιά (&r) πλευρά.

drivetrain(
    motor            &l,
    motor            &r,
    double           wheelTravel = 320,
    double           trackWidth = 320,
    double           wheelBase = 130,
    distanceUnits    unit = mm,
    double           externalGearRatio = 1.0 );

Καταστροφέας κλάσης#

Καταστρέφει το αντικείμενο drivetrain και απελευθερώνει τους σχετικούς πόρους.

virtual ~drivetrain();

Παράμετροι#

Παράμετρος

Τύπος

Περιγραφή

&l / &r

motor_group / motor

Οι αριστεροί και δεξιοί κινητήρες ή ομάδες κινητήρων. Και οι δύο παράμετροι πρέπει να χρησιμοποιούν τον ίδιο τύπο: είτε δύο αντικείμενα motor_group είτε δύο αντικείμενα motor.

wheelTravel

double

Η περιφέρεια των τροχών του συστήματος μετάδοσης κίνησης. Η προεπιλογή είναι 320.

trackWidth

double

Η απόσταση μεταξύ του αριστερού και του δεξιού τροχού. Η προεπιλογή είναι 320.

wheelBase

double

Η απόσταση μεταξύ των μπροστινών και των πίσω τροχών. Η προεπιλογή είναι 130.

unit

distanceUnits

The unit for wheelTravel, trackWidth, and wheelBase: mm (millimeters, default) or inches.

externalGearRatio

double

Η σχέση μετάδοσης που χρησιμοποιείται για την προσαρμογή των αποστάσεων οδήγησης εάν χρησιμοποιούνται ταχύτητες. Η προεπιλογή είναι 1.0.

Παράδειγμα#

// 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

Συναρτήσεις Μελών#

Υπάρχουν πολλοί τρόποι για να κωδικοποιήσετε το σύστημα μετάδοσης κίνησης. Παρακάτω είναι μια λίστα με όλες τις συναρτήσεις μέλους drivetrain:

Ενέργειες - Μετακίνηση και περιστροφή του ρομπότ.

  • drive - Μετακινεί το ρομπότ προς τα εμπρός ή προς τα πίσω για πάντα.

  • driveFor - Μετακινεί το ρομπότ προς τα εμπρός ή προς τα πίσω για μια συγκεκριμένη απόσταση.

  • turn - Στρέφει το ρομπότ αριστερά ή δεξιά για πάντα.

  • turnFor - Στρέφει το ρομπότ αριστερά ή δεξιά για έναν συγκεκριμένο αριθμό μοιρών.

  • stop - Σταματά την κίνηση του ρομπότ.

Μεταλλαγμένοι - Προσαρμόστε τις ρυθμίσεις του συστήματος μετάδοσης κίνησης.

  • setDriveVelocity - Υποδεικνύει στο ρομπότ πόσο γρήγορα να οδηγήσει.

  • setTurnVelocity - Υποδεικνύει στο ρομπότ πόσο γρήγορα να στρίψει.

  • setStopping - Υποδεικνύει πώς το ρομπότ θα σταματήσει να κινείται: φρενάροντας, κάνοντας ελεύθερη κίνηση ή κρατώντας το.

  • setTimeout - Ορίζει πόσα δευτερόλεπτα θα προσπαθήσει το ρομπότ να ολοκληρώσει μια κίνηση.

Getters - Ελέγξτε την κατάσταση της κίνησης.

  • isDone - Επιστρέφει εάν το ρομπότ έχει ολοκληρώσει την κίνησή του, ως λογική τιμή.

  • isMoving - Επιστρέφει εάν το ρομπότ κινείται, ως λογική τιμή.

  • velocity - Επιστρέφει την ταχύτητα με την οποία κινείται το ρομπότ.

  • current - Επιστρέφει την ποσότητα ηλεκτρικού ρεύματος που χρησιμοποιεί το σύστημα μετάδοσης κίνησης.

  • power - Επιστρέφει την ταχύτητα με την οποία το σύστημα μετάδοσης κίνησης χρησιμοποιεί ενέργεια.

  • torque - Επιστρέφει τη ροπή που χρησιμοποιεί το σύστημα μετάδοσης κίνησης.

  • efficiency - Επιστρέφει πόσο αποτελεσματικά χρησιμοποιεί την ισχύ το σύστημα μετάδοσης κίνησης.

  • temperature - Επιστρέφει πόσο ζεστό είναι το σύστημα μετάδοσης κίνησης.

  • voltage - Επιστρέφει την ηλεκτρική τάση που παρέχεται στο σύστημα μετάδοσης κίνησης.

Πριν από την κλήση οποιασδήποτε συνάρτησης μέλους 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

Ενέργειες#

οδηγώ#

drive κινεί το ρομπότ προς τα εμπρός ή προς τα πίσω για πάντα. Το ρομπότ θα συνεχίσει να κινείται μέχρι να του δοθεί μια άλλη ενέργεια, όπως στροφή ή στάση. Για RPM ή DPS, το όριο αλλάζει από την σχέση μετάδοσης του συστήματος μετάδοσης κίνησης.

Available Functions

1 - Οδηγεί χρησιμοποιώντας την τρέχουσα ρυθμισμένη ταχύτητα οδήγησης.

void drive(
    directionType dir );

2 - Οδηγεί με την καθορισμένη ταχύτητα.

void drive(
    directionType dir,
    double        velocity,
    velocityUnits units );

Parameters

Παράμετρος

Τύπος

Περιγραφή

dir

directionType

Η κατεύθυνση κίνησης του ρομπότ: forward ή reverse.

velocity

double

Η ταχύτητα με την οποία θα κινείται το ρομπότ κυμαίνεται από 0% έως 100% όταν χρησιμοποιείται velocityUnits::pct, από 0 έως 600 rpm όταν χρησιμοποιείται rpmή από 0 έως 3600 μοίρες ανά δευτερόλεπτο όταν χρησιμοποιείται dpsΕάν δεν παρέχεται ταχύτητα, το ρομπότ κινείται με την τρέχουσα ταχύτητα κίνησης.

units

velocityUnits

Η μονάδα ταχύτητας: velocityUnits::pct (ποσοστό), rpm (περιστροφές ανά λεπτό) ή dps (μοίρες ανά δευτερόλεπτο).

Return Values

Αυτή η συνάρτηση δεν επιστρέφει τιμή.

Notes
  • drive δεν είναι σε αναμονή. Το έργο θα συνεχίσει να εκτελεί την επόμενη γραμμή κώδικα αμέσως μετά την κλήση.

  • Το σύστημα μετάδοσης κίνησης θα συνεχίσει να κινείται μέχρι να κληθεί η συνάρτηση stop ή να εκτελεστεί κάποια άλλη συνάρτηση κίνησης του συστήματος μετάδοσης κίνησης (όπως driveFor ή turn).

  • Συναρτήσεις όπως isDone και isMoving δεν εφαρμόζονται στο drive, καθώς δεν χρησιμοποιεί κίνηση βάσει στόχου (δεν έχει παράμετρο distance).

Examples
// Drive forward and back
myDrivetrain.drive(forward);
wait(2, seconds);
myDrivetrain.drive(reverse, 25, rpm);
wait(2, seconds);
myDrivetrain.stop();

driveFor#

Η συνάρτηση driveFor κινεί το ρομπότ προς τα εμπρός ή προς τα πίσω για μια συγκεκριμένη απόσταση. Το έργο θα περιμένει μέχρι το ρομπότ να ολοκληρώσει την κίνησή του πριν εκτελεστεί η επόμενη γραμμή κώδικα από προεπιλογή. Για RPM ή DPS, το όριο αλλάζει από την σχέση μετάδοσης του συστήματος μετάδοσης κίνησης.

Available Functions

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 );

4 - Οδηγεί στην καθορισμένη κατεύθυνση για μια απόσταση με την καθορισμένη ταχύτητα.

bool driveFor(
    directionType dir,
    double        distance,
    distanceUnits units,
    double        velocity,
    velocityUnits units_v,
    bool          waitForCompletion = true );

Parameters

Παράμετρος

Τύπος

Περιγραφή

dir

directionType

Η κατεύθυνση κίνησης του ρομπότ: forward ή reverse.

distance

double

Η απόσταση που διανύει το ρομπότ.

units

distanceUnits

Η μονάδα απόστασης: mm (χιλιοστά), inchesή cm (εκατοστά).

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

Επιστρέφει εάν το ρομπότ έφτασε στην απόσταση-στόχο, ως λογική τιμή.

  • true - Το ρομπότ έφτασε στην απόσταση-στόχο.

  • false - Το ρομπότ δεν ολοκλήρωσε την κίνηση ή η συνάρτηση επέστρεψε πριν ολοκληρωθεί η κίνηση επειδή η τιμή waitForCompletion είχε οριστεί σε false.

Notes
  • Η εκτέλεση μιας άλλης λειτουργίας κίνησης του συστήματος μετάδοσης κίνησης (όπως drive ή turnFor) ενώ η κίνηση driveFor βρίσκεται σε εξέλιξη θα διακόψει την τρέχουσα κίνηση.

  • Because driveFor is target-based (uses a distance parameter), functions such as isDone and isMoving work with driveFor.

Examples
// Drive 200 mm, then back 200 mm
myDrivetrain.driveFor(forward, 200, mm);
myDrivetrain.driveFor(reverse, 200, mm);

σειρά#

Η στροφή turn γυρίζει το ρομπότ αριστερά ή δεξιά για πάντα. Το ρομπότ θα συνεχίσει να περιστρέφεται μέχρι να του δοθεί μια άλλη ενέργεια, όπως οδήγηση ή στάση. Για RPM ή DPS, το όριο αλλάζει από την σχέση μετάδοσης του συστήματος μετάδοσης κίνησης.

Available Functions

1 - Στροφές χρησιμοποιώντας την τρέχουσα ρυθμισμένη ταχύτητα στροφής.

void turn(
    turnType dir );

2 - Στρέφεται με την καθορισμένη ταχύτητα.

void turn(
    turnType     dir,
    double       velocity,
    velocityUnits units );

Parameters

Παράμετρος

Τύπος

Περιγραφή

dir

turnType

Η κατεύθυνση που γυρίζει το ρομπότ: left ή right.

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
  • Ο γύρος turn δεν είναι σε αναμονή. Το έργο θα συνεχίσει να εκτελεί την επόμενη γραμμή κώδικα αμέσως μετά την κλήση.

  • Το σύστημα μετάδοσης κίνησης θα συνεχίσει να περιστρέφεται μέχρι να κληθεί η stop ή να εκτελεστεί κάποια άλλη συνάρτηση κίνησης του συστήματος μετάδοσης κίνησης (όπως turnFor ή drive).

  • Functions such as isDone and isMoving are not applicable to turn, since it does not use target-based movement (doesn’t have an angle parameter).

Examples
// Turn right, then left, then stop
myDrivetrain.turn(right);
wait(2, seconds);
myDrivetrain.turn(left);
wait(2, seconds);
myDrivetrain.stop();

στροφήΓια#

turnFor στρέφει το ρομπότ αριστερά ή δεξιά για έναν συγκεκριμένο αριθμό μοιρών. Η στροφή είναι σχετική με την τρέχουσα θέση του ρομπότ. Το έργο θα περιμένει μέχρι το ρομπότ να ολοκληρώσει την στροφή πριν εκτελεστεί η επόμενη γραμμή κώδικα από προεπιλογή. Για 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

Η κατεύθυνση που γυρίζει το ρομπότ: left ή right.

angle

double

Η γωνία περιστροφής του ρομπότ.

units

rotationUnits

Η μονάδα στροφής: deg (μοίρες), rev (περιστροφές) ή raw (ακατέργαστες μονάδες). Μία περιστροφή ισούται με 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

Επιστρέφει εάν το ρομπότ έφτασε στη γωνία-στόχο, ως λογική τιμή.

  • true - Το ρομπότ έφτασε στη γωνία-στόχο.

  • false - Το ρομπότ δεν ολοκλήρωσε τον γύρο ή η συνάρτηση επέστρεψε πριν ολοκληρωθεί ο γύρος επειδή η τιμή waitForCompletion είχε οριστεί σε false.

Notes
  • Η εκτέλεση μιας άλλης λειτουργίας κίνησης του συστήματος μετάδοσης κίνησης (όπως turn ή drive) ενώ βρίσκεται σε εξέλιξη η στροφή turnFor θα διακόψει την τρέχουσα κίνηση.

  • Because turnFor is target-based (uses an angle parameter), functions such as isDone and isMoving work with turnFor.

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

Πώς θα σταματήσει το ρομπότ:

  • brake - Σταματάει αμέσως.
  • coast - Επιβραδύνει μέχρι να σταματήσει.
  • hold - Σταματάει αμέσως και διατηρεί τη θέση των τροχών.

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

Η μονάδα ταχύτητας: percent ή pct (ποσοστό), rpm (περιστροφές ανά λεπτό) ή dps (μοίρες ανά δευτερόλεπτο).

Return Values

Αυτή η συνάρτηση δεν επιστρέφει τιμή.

Notes
  • Η ταχύτητα στροφής ισχύει για όλες τις επόμενες συναρτήσεις στροφής του συστήματος μετάδοσης κίνησης (όπως turn και turnFor) εκτός εάν παρέχεται συγκεκριμένη ταχύτητα στην κλήση της συνάρτησης.

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

Πώς θα σταματήσει το ρομπότ:

  • brake - Σταματάει αμέσως.
  • coast - Επιβραδύνει μέχρι να σταματήσει.
  • hold - Σταματάει αμέσως και διατηρεί τη θέση των τροχών.

Return Values

Αυτή η συνάρτηση δεν επιστρέφει τιμή.

Notes
  • Η λειτουργία διακοπής ισχύει για όλες τις επόμενες κλήσεις stop, εκτός εάν παρέχεται συγκεκριμένη λειτουργία διακοπής στην κλήση της συνάρτησης.

ορισμός χρονικού ορίου#

setTimeout ορίζει σε πόσα δευτερόλεπτα το ρομπότ θα προσπαθήσει να ολοκληρώσει μια κίνηση. Εάν το ρομπότ δεν μπορεί να ολοκληρώσει σε αυτό το χρονικό διάστημα, θα σταματήσει την προσπάθεια και θα προχωρήσει στην επόμενη γραμμή κώδικα. Αυτό εμποδίζει το ρομπότ να κολλήσει σε μια κίνηση.

Available Functions
void  setTimeout(
  int32_t time,
  timeUnits units );

Parameters

Παράμετρος

Τύπος

Περιγραφή

time

int32_t

Ο χρόνος που μπορεί να προσπαθήσει το ρομπότ για να ολοκληρώσει μια κίνηση. Αυτός θα πρέπει να είναι ένας θετικός ακέραιος αριθμός.

units

timeUnits

Η μονάδα χρόνου: sec (δευτερόλεπτα) ή 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
  • true - Το ρομπότ έχει ολοκληρώσει την κίνηση.

  • false - Το ρομπότ εξακολουθεί να κινείται.

Notes
  • isDone είναι συμβατό με κινήσεις συστήματος μετάδοσης κίνησης που βασίζονται σε στόχο (λειτουργίες που κινούνται προς έναν στόχο, όπως driveFor και turnFor).

  • isDone δεν είναι συμβατό με συναρτήσεις όπως drive και turn, καθώς δεν χρησιμοποιούν κίνηση βάσει στόχου.

Μετακινείται#

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

Available Functions
virtual bool isMoving( void );

Parameters

Αυτή η συνάρτηση δεν δέχεται καμία παράμετρο.

Return Values
  • true - Το ρομπότ κινείται.

  • false - Το ρομπότ δεν κινείται.

Notes
  • isMoving είναι συμβατό με κινήσεις συστήματος μετάδοσης κίνησης που βασίζονται σε στόχο (λειτουργίες που μετακινούνται προς έναν στόχο, όπως driveFor και turnFor).

  • Η συνάρτηση isMoving δεν είναι συμβατή με συναρτήσεις όπως drive και turn, καθώς δεν χρησιμοποιούν κίνηση βάσει στόχου.

ταχύτητα#

Η τιμή velocity επιστρέφει την ταχύτητα με την οποία κινείται το ρομπότ.

Μια θετική τιμή σημαίνει ότι το ρομπότ κινείται προς τα εμπρός. Μια αρνητική τιμή σημαίνει ότι το ρομπότ κινείται προς τα πίσω.

Available Functions
double velocity(
  velocityUnits units );

Parameters

Παράμετρος

Τύπος

Περιγραφή

units

velocityUnits

Η μονάδα ταχύτητας: percent ή pct (ποσοστό), rpm (περιστροφές ανά λεπτό) ή dps (μοίρες ανά δευτερόλεπτο).

Return Values

Επιστρέφει την ταχύτητα του συστήματος μετάδοσης κίνησης ως double στην επιλεγμένη μονάδα.

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();

ρεύμα#

Το current επιστρέφει την ποσότητα ηλεκτρικού ρεύματος που χρησιμοποιεί το σύστημα μετάδοσης κίνησης. Το ρεύμα είναι η ποσότητα ηλεκτρικής ενέργειας που ρέει μέσω του συστήματος μετάδοσης κίνησης. Μπορεί να επιστραφεί σε αμπέρ (αμπέρ) ή ως ποσοστό, ανάλογα με τη μονάδα.

Μια υψηλότερη τιμή ρεύματος σημαίνει ότι το σύστημα μετάδοσης κίνησης χρησιμοποιεί περισσότερο ηλεκτρικό ρεύμα. Αυτό μπορεί να συμβεί όταν το ρομπότ πιέζει ένα αντικείμενο ή προσπαθεί να κινηθεί όταν αυτό έχει κολλήσει.

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

Available Functions

1 - Επιστρέφει το ηλεκτρικό ρεύμα του συστήματος μετάδοσης κίνησης σε αμπέρ.

double current(
    currentUnits units = currentUnits::amp );

2 - Επιστρέφει το ηλεκτρικό ρεύμα του συστήματος μετάδοσης κίνησης ως ποσοστό του μέγιστου.

double current(
    percentUnits units );

Parameters

Παράμετρος

Τύπος

Περιγραφή

units

currentUnits

Η μονάδα επιστροφής ρεύματος: amp (αμπέρ, προεπιλογή).

units

percentUnits

Η μονάδα επιστροφής ρεύματος: percent ή pct.

Return Values

Επιστρέφει το ρεύμα του συστήματος μετάδοσης κίνησης ως double στην επιλεγμένη μονάδα.

εξουσία#

power επιστρέφει την ισχύ που χρησιμοποιεί το σύστημα μετάδοσης κίνησης, μετρούμενη σε watt. Η ισχύς δείχνει πόσο γρήγορα χρησιμοποιεί ενέργεια το σύστημα μετάδοσης κίνησης.

Μια υψηλότερη τιμή ισχύος σημαίνει ότι το σύστημα μετάδοσης κίνησης χρησιμοποιεί ενέργεια πιο γρήγορα. Αυτό μπορεί να συμβεί όταν το ρομπότ πιέζει ένα αντικείμενο ή προσπαθεί να κινηθεί όταν αυτό έχει κολλήσει.

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

Available Functions
double power(
  powerUnits units = powerUnits::watt );

Parameters

Παράμετρος

Τύπος

Περιγραφή

units

powerUnits

Η μονάδα ισχύος: watt (watt, προεπιλογή).

Return Values

Επιστρέφει την ισχύ του συστήματος μετάδοσης κίνησης ως double σε watt.

ροπή#

Η ροπή δείχνει πόσο δυνατά μπορεί να σπρώξει ή να τραβήξει το σύστημα μετάδοσης κίνησης ενώ οι τροχοί σπινάρουν.

Η τιμή torque επιστρέφει την ποσότητα ροπής που χρησιμοποιεί το σύστημα μετάδοσης κίνησης, μετρούμενη σε Newton-μέτρα (Nm) ή ίντσες-λίβρες (InLb).

Μια υψηλότερη τιμή ροπής σημαίνει ότι το σύστημα μετάδοσης κίνησης πιέζει ή τραβάει πιο δυνατά. Αυτό μπορεί να συμβεί όταν το ρομπότ πιέζει ένα αντικείμενο ή προσπαθεί να κινηθεί όταν αυτό έχει κολλήσει.

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

Available Functions
double torque(
  torqueUnits units = torqueUnits::nm );

Parameters

Παράμετρος

Τύπος

Περιγραφή

units

torqueUnits

Η μονάδα επιστροφής ροπής: Nm (νιούτον μέτρα, προεπιλογή) ή InLb (ίντσες λίβρες).

Return Values

Επιστρέφει τη ροπή του συστήματος μετάδοσης κίνησης ως double στην επιλεγμένη μονάδα.

αποδοτικότητα#

Η απόδοση efficiency επιστρέφει την αποτελεσματικότητα της χρήσης ισχύος από το σύστημα μετάδοσης κίνησης, ως ποσοστό από 0% έως 100%.

Η απόδοση δείχνει πόση από την ισχύ του συστήματος μετάδοσης κίνησης χρησιμοποιείται για κίνηση. Μια υψηλότερη τιμή απόδοσης σημαίνει ότι περισσότερη από την ισχύ του συστήματος μετάδοσης κίνησης χρησιμοποιείται για κίνηση. Μια χαμηλότερη τιμή απόδοσης μπορεί να συμβεί όταν το σύστημα μετάδοσης κίνησης λειτουργεί σκληρά αλλά δεν κινείται πολύ, όπως όταν το ρομπότ έχει κολλήσει ή πιέζει ένα αντικείμενο.

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

Available Functions
double efficiency(
  percentUnits units = percentUnits::pct );

Parameters

Παράμετρος

Τύπος

Περιγραφή

units

percentUnits

Η μονάδα που θα επιστρέφει την απόδοση σε: percent ή pct (προεπιλογή).

Return Values

Επιστρέφει την απόδοση του συστήματος μετάδοσης κίνησης ως double στην επιλεγμένη μονάδα.

θερμοκρασία#

Η τιμή temperature επιστρέφει τη μέση θερμοκρασία του συστήματος μετάδοσης κίνησης ως ποσοστό από 0% έως 100%.

Η θερμοκρασία δείχνει πόσο ζεστοί είναι οι κινητήρες του συστήματος μετάδοσης κίνησης. Μια υψηλότερη θερμοκρασία σημαίνει ότι οι κινητήρες θερμαίνονται ενώ λειτουργούν. Οι κινητήρες θα πρέπει να παραμένουν κάτω από τους 55°C για να συνεχίσουν να λειτουργούν σε πλήρη απόδοση.

Εάν οι κινητήρες υπερθερμανθούν, θα μειώσουν το μέγιστο ρεύμα τους για να προστατευτούν. Στους 70°C, οι κινητήρες θα σταματήσουν να λειτουργούν μέχρι να κρυώσουν.

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

Available Functions
double temperature(
  percentUnits units );

Parameters

Παράμετρος

Τύπος

Περιγραφή

units

percentUnits

Η μονάδα επιστροφής της θερμοκρασίας: percent ή pct.

Return Values

Επιστρέφει τη μέση θερμοκρασία του συστήματος μετάδοσης κίνησης ως double στην επιλεγμένη μονάδα.

Notes
  • Μια επιστρεφόμενη τιμή 50% υποδεικνύει ότι η μέση θερμοκρασία του κινητήρα είναι περίπου 45°C (113°F).

  • Το τυπικό εύρος θερμοκρασίας λειτουργίας για το σύστημα μετάδοσης κίνησης είναι περίπου 20°C (68°F) έως 70°C (158°F).

δυναμικό#

Η τάση voltage επιστρέφει την ηλεκτρική τάση που παρέχεται στο σύστημα μετάδοσης κίνησης.

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

Available Functions
double  voltage(
  voltageUnits units = voltageUnits::volt );

Parameters

Παράμετρος

Τύπος

Περιγραφή

units

voltageUnits

Η μονάδα επιστροφής τάσης: volt (βολτ, προεπιλογή) ή voltageUnits::mV (χιλιοστόβολτ).

Return Values

Επιστρέφει την τάση του συστήματος μετάδοσης κίνησης ως double στην επιλεγμένη μονάδα.