نظام نقل الحركة#

مقدمة#

تتحكم فئة نظام الدفع drivetrain كيفية قيادة الروبوت وانعطافه. ويتكون نظام الدفع من محركات وعجلات تعمل معًا لتحريك الروبوت.

A drivetrain does not use an Inertial Sensor, Gyro Sensor, or GPS Sensor for heading-based or rotation-based turns. It can drive forward or reverse and turn left or right, but it cannot turn to a specific heading or rotation. For heading-based and rotation-based turns, use the smartdrive class.

الفئات المشتقة#

تُعتبر فئة drivetrain فئة أساسية للفئات المشتقة التالية:

  • smartdrive - تضيف هذه الفئة دعمًا لمستشعر القصور الذاتي أو مستشعر نظام تحديد المواقع العالمي (GPS) أو مستشعر الجيروسكوب لتمكين الانعطافات القائمة على الاتجاه والانعطافات القائمة على الدوران.

مُنشئات الفئات#

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

وحدة قياس wheelTravelو trackWidthو wheelBase: 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 object
    rightMotor, // right motor object
    259.34,     // wheelTravel
    320,        // trackWidth
    40,         // wheelBase
    mm,         // unit
    1.0 );      // externalGearRatio

الدوال الأعضاء#

The drivetrain class includes the following member functions:

الخطوات - تحريك الروبوت وتدويره.

  • 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 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، أو من 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 الروبوت للأمام أو للخلف لمسافة محددة. وينتظر البرنامج افتراضيًا حتى ينتهي الروبوت من الحركة قبل تنفيذ السطر التالي من التعليمات البرمجية. أما بالنسبة لـ 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، أو من 0 إلى 3600 درجة في الثانية عند استخدام dpsفي حال عدم تحديد سرعة، يتحرك الروبوت بسرعة القيادة الحالية.

units_v

velocityUnits

وحدة السرعة: velocityUnits::pct (نسبة مئوية)، rpm (دورات في الدقيقة)، أو dps (درجات في الثانية).

waitForCompletion

bool

true (الوضع الافتراضي) يجعل المشروع ينتظر حتى ينتهي الروبوت من الحركة قبل تنفيذ السطر التالي من التعليمات البرمجية. false يجعل السطر التالي من التعليمات البرمجية يُنفذ فورًا.

Return Values

تُرجع هذه الدالة ما إذا كان الروبوت قد وصل إلى المسافة المستهدفة، كقيمة منطقية (Boolean).

  • true - وصل الروبوت إلى المسافة المستهدفة.

  • false - لم يكمل الروبوت الحركة، أو تم إرجاع الدالة قبل اكتمال الحركة لأن waitForCompletion تم تعيينها إلى false.

Notes
  • سيؤدي تنفيذ وظيفة حركة أخرى لنظام نقل الحركة (مثل drive أو turnFor) أثناء تنفيذ driveFor إلى مقاطعة الحركة الحالية.

  • لأن driveFor يعتمد على الهدف (يستخدم معلمة مسافة distance )، فإن وظائف مثل isDone و isMoving تعمل مع 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، أو من 0 إلى 3600 درجة في الثانية عند استخدام dpsفي حال عدم تحديد سرعة، يدور الروبوت بسرعة الدوران الحالية.

units

velocityUnits

وحدة السرعة: velocityUnits::pct (نسبة مئوية)، rpm (دورات في الدقيقة)، أو dps (درجات في الثانية).

Return Values This function does not return a value. Notes
  • turn هو عدم انتظار؛ سيستمر المشروع في تنفيذ سطر التعليمات البرمجية التالي مباشرة بعد الاستدعاء.

  • سيستمر نظام نقل الحركة في الدوران حتى يتم استدعاء stop أو يتم تنفيذ وظيفة حركة أخرى لنظام نقل الحركة (مثل turnFor أو drive).

  • لا تنطبق وظائف مثل isDone و isMoving على turn، لأنها لا تستخدم الحركة القائمة على الهدف (لا تحتوي على 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، أو من 0 إلى 3600 درجة في الثانية عند استخدام dpsفي حال عدم تحديد سرعة، يدور الروبوت بسرعة الدوران الحالية.

units_v

velocityUnits

وحدة السرعة: velocityUnits::pct (نسبة مئوية)، rpm (دورات في الدقيقة)، أو dps (درجات في الثانية).

waitForCompletion

bool

true (الوضع الافتراضي) يجعل المشروع ينتظر حتى ينتهي الروبوت من الدوران قبل تنفيذ سطر التعليمات البرمجية التالي. false يجعل سطر التعليمات البرمجية التالي يُنفذ فورًا.

Return Values

تُرجع هذه الدالة ما إذا كان الروبوت قد وصل إلى الزاوية المستهدفة، كقيمة منطقية (Boolean).

  • true - وصل الروبوت إلى الزاوية المستهدفة.

  • false - لم يكمل الروبوت الدور، أو تم إرجاع الدالة قبل اكتمال الدور لأن waitForCompletion تم تعيينها إلى false.

Notes
  • سيؤدي تنفيذ وظيفة حركة أخرى لنظام نقل الحركة (مثل turn أو drive) أثناء تنفيذ turnFor إلى مقاطعة الحركة الحالية.

  • لأن turnFor يعتمد على الهدف (يستخدم معلمة زاوية angle )، فإن وظائف مثل isDone و isMoving تعمل مع turnFor.

Examples
// Turn right then left
myDrivetrain.turnFor(right, 90, degrees);
wait(1, seconds);
myDrivetrain.turnFor(left, 90, degrees);

قف#

يؤدي الأمر stop إلى إيقافها. في حال توفير وضع إيقاف، فإنه يتحكم في كيفية توقف الروبوت عند استدعاء هذه الدالة.

Available Functions

1 - Stops the drivetrain using the currently configured stopping mode.

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 سرعة قيادة الروبوت. فزيادة النسبة المئوية تُسرّع من سرعة الروبوت، بينما تُبطئها النسبة المئوية الأقل. أما بالنسبة لعدد دورات المحرك في الدقيقة (RPM)، فيتم تغيير الحد الأقصى له بنسبة تروس نظام نقل الحركة.

يبدأ كل مشروع بالروبوت وهو يقود بسرعة 50% بشكل افتراضي.

ملاحظة: السرعة العالية تجعل الروبوت يتحرك بسرعة أكبر، لكنها قد تكون أقل دقة. السرعة المنخفضة تجعل الروبوت يتحرك ببطء، لكنها قد تكون أكثر دقة.

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

Parameters

المعلمة

يكتب

وصف

velocity

double

السرعة التي يتم القيادة بها من 0% إلى 100% عند استخدام velocityUnits::pct، ومن 0 إلى 600 دورة في الدقيقة عند استخدام 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 سرعة دوران الروبوت. كلما زادت النسبة المئوية، زادت سرعة الدوران، وكلما انخفضت، قلت السرعة.

يبدأ كل مشروع بالروبوت وهو يدور بسرعة 50% بشكل افتراضي.

ملاحظة: السرعة العالية تجعل الروبوت يدور بشكل أسرع، لكنها قد تكون أقل دقة. السرعة المنخفضة تجعل الروبوت يدور بشكل أبطأ، لكنها قد تكون أكثر دقة.

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

Parameters

المعلمة

يكتب

وصف

velocity

double

سرعة الدوران من 0% إلى 100% عند استخدام velocityUnits::pct، ومن 0 إلى 600 دورة في الدقيقة عند استخدام 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 يحدد كيفية توقف الروبوت عن الحركة: عن طريق الكبح، أو الانزلاق، أو الثبات.

Available Functions
void setStopping(
  brakeType mode );

Parameters

المعلمة

يكتب

وصف

mode

brakeType

كيفية توقف الروبوت:

  • brake - يتوقف فورًا.
  • coast - يتباطأ حتى يتوقف.
  • hold - يتوقف فورًا ويثبت موضع العجلات.

Return Values

هذه الدالة لا تُرجع قيمة.

Notes
  • ينطبق وضع الإيقاف على جميع الاستدعاءات اللاحقة stop ما لم يتم توفير وضع إيقاف محدد في استدعاء الدالة.

setTimeout#

يُحدد 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 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

Returns the drivetrain velocity as a double in the selected unit.

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 returns how much power the drivetrain is using, measured in watts. Power shows how quickly the drivetrain is using energy.

تشير قيمة الطاقة الأعلى إلى أن نظام نقل الحركة يستهلك الطاقة بشكل أسرع. قد يحدث هذا عندما يدفع الروبوت جسمًا ما أو يحاول التحرك وهو عالق.

يمكن استخدام هذا لمقارنة الحركات أو التحقق مما إذا كان نظام نقل الحركة يعاني من مشكلة. إذا استمرت الطاقة مرتفعة، فقد يسخن نظام نقل الحركة أو يستهلك الطاقة بكفاءة أقل.

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

Parameters

المعلمة

يكتب

وصف

units

powerUnits

وحدة الطاقة: watt (واط، الوضع الافتراضي).

Return Values

يعيد طاقة مجموعة نقل الحركة على شكل double بالواط.

عزم الدوران#

يوضح عزم الدوران مدى قوة دفع أو سحب مجموعة نقل الحركة أثناء دوران العجلات.

torque يعيد مقدار عزم الدوران الذي يستخدمه نظام نقل الحركة، مقاسًا بالنيوتن متر (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 درجة مئوية لضمان استمرار عملها بكامل طاقتها.

إذا ارتفعت درجة حرارة المحركات بشكل مفرط، فإنها ستخفض الحد الأقصى للتيار لحماية نفسها. عند 70 درجة مئوية، ستتوقف المحركات عن العمل حتى تبرد.

يمكن استخدام هذا للتحقق مما إذا كان نظام نقل الحركة يسخن بشكل مفرط أثناء الحركات المتكررة أو الجري لمسافات طويلة أو عندما يضغط على جسم ما.

Available Functions
double temperature(
  percentUnits units );

Parameters

المعلمة

يكتب

وصف

units

percentUnits

وحدة قياس درجة الحرارة العائدة: percent أو pct.

Return Values

Returns the average drivetrain temperature as a double in the selected unit.

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 بالوحدة المحددة.