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

مقدمة#

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

A drivetrain does not use a Gyro Sensor or Inertial 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.

تستخدم هذه الصفحة الاسم 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و 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
    rightMotor, // right motor
    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
    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، أو من 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 الروبوت للأمام أو للخلف لمسافة محددة. سينتظر البرنامج حتى ينتهي الروبوت من الحركة قبل تنفيذ السطر التالي من التعليمات البرمجية.

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، أو من 0 إلى 720 درجة في الثانية عند استخدام dpsفي حال عدم تحديد سرعة، يتحرك الروبوت بسرعة القيادة الحالية.

units_v

velocityUnits

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

waitForCompletion

bool

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

Return Values

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

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

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

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

  • driveFor يستخدم مسافة مستهدفة، لذلك يمكن استخدام isDone و isMoving معه.

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، أو من 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، أو من 0 إلى 720 درجة في الثانية عند استخدام dpsفي حال عدم تحديد سرعة، يدور الروبوت بسرعة الدوران الحالية.

units_v

velocityUnits

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

waitForCompletion

bool

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

Return Values

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

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

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

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

  • turnFor يستخدم زاوية هدف، لذلك يمكن استخدام isDone و 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

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

  • 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 سرعة قيادة الروبوت. كلما زادت النسبة المئوية، زادت سرعة الروبوت، وكلما انخفضت، قلت سرعته.

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

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

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

Parameters

المعلمة

يكتب

وصف

velocity

double

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

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

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

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

Parameters

المعلمة

يكتب

وصف

velocity

double

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

Available Functions
void setStopping(
  brakeType mode );

Parameters

المعلمة

يكتب

وصف

mode

brakeType

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

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

Return Values

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

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

  • إذا لم يتم استخدام هذه الوظيفة، فسيستخدم الروبوت الفرامل brake عند التوقف.

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
// 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 isMoving قيمة منطقية تُشير إلى ما إذا كان الروبوت يتحرك أم لا. ويمكن استخدام هذه القيمة للتحكم في توقيت سلوكيات أخرى بناءً على حركة الروبوت.

Available Functions
virtual bool isMoving( void );

Parameters

لا تقبل هذه الدالة أي معلمات.

Return Values
  • true - الروبوت يتحرك.

  • false - الروبوت لا يتحرك.

Notes
  • isMoving يعمل مع وظائف حركة مجموعة نقل الحركة القائمة على الهدف، مثل driveFor و turnFor.

  • isMoving لا يتم استخدامه مع drive أو turn، لأن هذه الوظائف لا تتحرك إلى هدف.

سرعة#

السرعة velocity تُحددان مدى سرعة قيادة الروبوت.

It can return velocity as a percentage, in rpm, or in dps. A positive value means the robot is driving forward. A negative value means the robot is driving in reverse.

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 voltageUnits::mV تعني ملي فولت.

Return Values

يُعيد جهد مجموعة نقل الحركة كرقم double بالوحدة المحددة.