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

Εισαγωγή#

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

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

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

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

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

  • 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 - Δημιουργεί ένα σύστημα μετάδοσης κίνησης χρησιμοποιώντας υπάρχοντα αντικείμενα motor για την αριστερή και τη δεξιά πλευρά.

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

Η μονάδα για Διαδρομή τροχού wheelTravelΠλάτος τροχού trackWidthwheelBase mm προεπιλογή) ή 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
    rightMotor, // right motor
    259.34,     // wheelTravel
    320,        // trackWidth
    40,         // wheelBase
    mm,         // unit
    1.0 );      // externalGearRatio

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

Η κλάση drivetrain περιλαμβάνει τις ακόλουθες συναρτήσεις-μέλη:

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

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

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

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

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

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

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

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

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

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

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

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

  • 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
    rightMotor, // right motor
    259.34,     // wheelTravel
    320,        // trackWidth
    40,         // wheelBase
    mm,         // unit
    1.0 );      // externalGearRatio

Ενέργειες#

οδηγώ#

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

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 έως 120 rpm όταν χρησιμοποιείται rpmή από 0 έως 720 μοίρες ανά δευτερόλεπτο όταν χρησιμοποιείται dpsΕάν δεν παρέχεται ταχύτητα, το ρομπότ κινείται με την τρέχουσα ταχύτητα κίνησης.

units

velocityUnits

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

Return Values

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

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

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

  • isDone και isMoving δεν χρησιμοποιούνται με drive επειδή drive δεν έχει στοχευμένη απόσταση.

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

driveFor#

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

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 έως 120 rpm όταν χρησιμοποιείται rpmή από 0 έως 720 μοίρες ανά δευτερόλεπτο όταν χρησιμοποιείται dpsΕάν δεν παρέχεται ταχύτητα, το ρομπότ κινείται με την τρέχουσα ταχύτητα κίνησης.

units_v

velocityUnits

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

waitForCompletion

bool

true (προεπιλογή) κάνει το έργο να περιμένει μέχρι το ρομπότ να ολοκληρώσει την κίνησή του πριν εκτελεστεί η επόμενη γραμμή κώδικα. false κάνει την επόμενη γραμμή κώδικα να εκτελεστεί αμέσως.

Return Values

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

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

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

Notes
  • Η εκτέλεση μιας άλλης λειτουργίας κίνησης του συστήματος μετάδοσης κίνησης ενώ εκτελείται driveFor θα διακόψει την τρέχουσα κίνηση.

  • driveFor uses a target distance, so isDone and isMoving can be used with it.

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

σειρά#

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

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 έως 120 rpm όταν χρησιμοποιείται rpmή από 0 έως 720 μοίρες ανά δευτερόλεπτο όταν χρησιμοποιείται dpsΕάν δεν παρέχεται ταχύτητα, το ρομπότ περιστρέφεται με την τρέχουσα ταχύτητα περιστροφής.

units

velocityUnits

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

Return Values

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

Notes
  • Ο γύρος turn δεν είναι σε αναμονή. Το έργο θα εκτελέσει αμέσως την επόμενη γραμμή κώδικα.

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

  • isDone και isMoving δεν χρησιμοποιούνται με turn επειδή turn δεν έχει γωνία στόχου.

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

στροφήΓια#

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

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 έως 120 rpm όταν χρησιμοποιείται rpmή από 0 έως 720 μοίρες ανά δευτερόλεπτο όταν χρησιμοποιείται dpsΕάν δεν παρέχεται ταχύτητα, το ρομπότ περιστρέφεται με την τρέχουσα ταχύτητα περιστροφής.

units_v

velocityUnits

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

waitForCompletion

bool

true (προεπιλογή) κάνει το έργο να περιμένει μέχρι το ρομπότ να ολοκληρώσει την περιστροφή πριν εκτελεστεί η επόμενη γραμμή κώδικα. false κάνει την επόμενη γραμμή κώδικα να εκτελεστεί αμέσως.

Return Values

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

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

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

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

  • turnFor uses a target angle, so isDone and isMoving can be used with it.

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 λέει στο ρομπότ πόσο γρήγορα να οδηγήσει. Ένα υψηλότερο ποσοστό κάνει το ρομπότ να οδηγεί πιο γρήγορα και ένα χαμηλότερο ποσοστό κάνει το ρομπότ να οδηγεί πιο αργά.

Κάθε έργο ξεκινά με το ρομπότ να κινείται με ταχύτητα 50% από προεπιλογή.

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

Available Functions
void setDriveVelocity(
  double velocity,
  velocityUnits units );

Parameters

Παράμετρος

Τύπος

Περιγραφή

velocity

double

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

units

velocityUnits

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

Return Values

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

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

Examples
// Drive forward, then coast to a stop.
myDrivetrain.setDriveVelocity(100, percent);
myDrivetrain.drive(forward);
wait(2, seconds);
myDrivetrain.stop(coast);

setTurnVelocity#

setTurnVelocity λέει στο ρομπότ πόσο γρήγορα να στρίψει. Ένα υψηλότερο ποσοστό κάνει το ρομπότ να στρίψει πιο γρήγορα και ένα χαμηλότερο ποσοστό κάνει το ρομπότ να στρίψει πιο αργά.

Κάθε έργο ξεκινά με το ρομπότ να περιστρέφεται με ταχύτητα 50% από προεπιλογή.

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

Available Functions
void setTurnVelocity(
  double velocity,
  velocityUnits units );

Parameters

Παράμετρος

Τύπος

Περιγραφή

velocity

double

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

units

velocityUnits

Η μονάδα ταχύτητας: 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

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

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

Return Values

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

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

  • Εάν αυτή η λειτουργία δεν χρησιμοποιηθεί, το ρομπότ θα χρησιμοποιήσει το φρένο brake κατά το σταμάτημα.

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

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

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

Parameters

Παράμετρος

Τύπος

Περιγραφή

time

int32_t

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

units

timeUnits

Η μονάδα χρόνου: sec (δευτερόλεπτα) ή msec (χιλιοστά του δευτερολέπτου).

Return Values

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

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

Examples
// Turn right after driving forward.
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 επιστρέφει την ταχύτητα με την οποία κινείται το ρομπότ.

Μπορεί να επιστρέψει την ταχύτητα ως ποσοστό, σε rpmή σε dpsΜια θετική τιμή σημαίνει ότι το ρομπότ κινείται προς τα εμπρός. Μια αρνητική τιμή σημαίνει ότι το ρομπότ κινείται προς τα πίσω.

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.

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. voltageUnits::mV σημαίνει millivolts.

Return Values

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