موتور ومجموعة المحركات#
مقدمة#
Motors and motor groups control how parts of a robot move. A motor object controls one configured IQ Smart Motor, while a motor_group object controls multiple configured IQ Smart Motors together so they move in tandem. Motors and motor groups can be used to raise an arm, turn a claw, spin a wheel, or move another part of a build. Two motors can work together as a drivetrain to move and turn the whole robot.
يتم تكوين كل محرك أو مجموعة محركات في نافذة الأجهزة. قد تختلف أسماء المحركات ومجموعات المحركات باختلاف الإصدار. تستخدم هذه الصفحة الأسماء Motor1 و MotorGroup1 كمثال. استبدلها بالأسماء التي قمت بتكوينها حسب الحاجة.
افتراضياً، يشير forward إلى دوران المحرك عكس اتجاه عقارب الساعة، بينما يشير reverse إلى دورانه مع اتجاه عقارب الساعة. إذا تم ضبط المحرك على الدوران العكسي، فسيتم عكس هذه الاتجاهات.
محرك#
Class Constructors#
1 — يُنشئ كائن محرك
motorلمحرك IQ الذكي المتصل بالمنفذ الذكي المحدد. يستخدم المحرك تلقائيًا إعداد التروس الداخليgearSetting.motor( int32_t index );
2 — يُنشئ كائن محرك
motorويُمكنه عكس اتجاهه. يستخدم المحرك تلقائيًا إعداد التروس الداخليgearSetting.motor( int32_t index, bool reverse );
3 — يقوم بإنشاء كائن محرك
motorعلى المنفذ الذكي المحدد مع إعداد التروسgearSetting.motor( int32_t index, gearSetting gears );
4 — يقوم بإنشاء كائن محرك
motorعلى المنفذ الذكي المحدد مع إعداد التروسgearSettingوالاتجاه العكسي الاختياري.motor( int32_t index, gearSetting gears, bool reverse );
Class Destructor#
يقوم بتدمير الكائن motor ويحرر الموارد المرتبطة به.
~motor();
Parameters#
المعلمة |
يكتب |
وصف |
|---|---|---|
|
|
المنفذ الذكي الذي يتصل به المحرك، مكتوبًا على النحو التالي: |
|
|
يُحدد ما إذا كان اتجاه دوران المحرك معكوسًا:
|
|
|
يحدد نسبة تروس خرطوشة التروس الداخلية.
|
Notes#
يجب أن تتطابق إعدادات التروس مع الخرطوشة الفعلية المثبتة في المحرك.
Example#
// Create the motor instance in Smart Port 1
motor LeftMotor = motor(PORT1);
// Creates the motor instance with different settings
motor RightMotor = motor(
PORT2, // Smart Port 2
ratio2_1, // Gear ratio is 2:1
true);
مجموعة موتور#
Class Constructors#
motor_group( motor &m1, Args&... m2 );
Class Destructor#
يقوم بتدمير الكائن motor_group وتحرير الموارد المرتبطة به.
~motor_group();
Parameters#
المعلمة |
يكتب |
وصف |
|---|---|---|
|
|
أول محرك تمت إضافته إلى المجموعة. |
|
|
تمت إضافة محركات إضافية إلى المجموعة. الحد الأقصى هو أربعة محركات في مجموعة محركات واحدة. |
Example#
// Create individual motor instances
motor LeftMotor = motor(PORT1);
motor RightMotor = motor(PORT2);
// Create a motor group with both motors
motor_group DriveMotors = motor_group(LeftMotor, RightMotor);
الدوال الأعضاء#
توجد طرق عديدة لبرمجة المحركات ومجموعات المحركات. فيما يلي قائمة بجميع الدوال الأعضاء في مجموعة المحركات : motor and motor_group 3:
الإجراءات — إيقاف وتدوير المحركات ومجموعات المحركات.
spin— يدور محرك أو مجموعة محركات للأمام أو للخلف إلى الأبد.spinFor— يدور محركًا أو مجموعة محركات لمسافة محددة أو لفترة زمنية محددة.spinToPosition— يقوم بتدوير محرك أو مجموعة محركات إلى موضع محدد.stop— يوقف محركًا أو مجموعة محركات من الدوران.
المُعدِّلات — اضبط إعدادات المحرك ومجموعة المحركات.
setVelocity— يخبر المحرك أو مجموعة المحركات بمدى سرعة الدوران.setMaxTorque— يحدد مدى قوة الدفع المسموح بها للمحرك أو مجموعة المحركات أثناء الدوران.setPosition— يغير الموضع الحالي للمحرك أو مجموعة المحركات إلى قيمة جديدة.setStopping— يحدد كيفية توقف المحرك أو مجموعة المحركات عن الحركة: عن طريق الكبح أو الانزلاق أو التثبيت.setTimeout— يحدد مقدار الوقت الذي سيحاول فيه المحرك أو مجموعة المحركات إنهاء الحركة.
أجهزة الاستشعار — تحقق من حالة المحرك ومجموعة المحركات.
isDone— تُرجع ما إذا كان المحرك أو مجموعة المحركات قد انتهى من الحركة، كقيمة منطقية.isSpinning— تُرجع ما إذا كان المحرك أو مجموعة المحركات يدور، كقيمة منطقية.position— يعيد الموضع الحالي للمحرك أو مجموعة المحركات.velocity— تُرجع مدى سرعة دوران المحرك أو مجموعة المحركات.current— إرجاع مقدار التيار الكهربائي الذي يستخدمه المحرك أو مجموعة المحركات.power— تُرجع مقدار الطاقة التي يستخدمها المحرك أو مجموعة المحركات.torque— تُرجع مقدار عزم الدوران الذي يستخدمه المحرك أو مجموعة المحركات.efficiency— تُرجع مدى كفاءة المحرك أو مجموعة المحركات في استخدام الطاقة.temperature— تُرجع درجة حرارة المحرك أو مجموعة المحركات.voltage— يعيد الجهد الكهربائي المزود للمحرك أو مجموعة المحركات.direction— يعيد اتجاه دوران المحرك أو مجموعة المحركات.installed— إرجاع ما إذا كان المحرك أو مجموعة المحركات متصلة بالدماغ.count— تُرجع عدد المحركات في مجموعة المحركات.
قبل استدعاء أي من الدوال الأعضاء motor أو motor_group ، يجب إنشاء مثيل، كما هو موضح أدناه:
/* This constructor is required when using VS Code.
Motor and Motor Group configuration is generated automatically
in VEXcode using the Device Menu. Replace the values
as needed. */
// Create the motor instance in Smart Port 1
motor Motor1 = motor(PORT1);
الإجراءات#
spin#
spin المحرك أو مجموعة المحركات للأمام أو للخلف باستمرار. سيستمر المحرك أو مجموعة المحركات في الدوران حتى يتم إعطاؤه إجراءً آخر، مثل الدوران في اتجاه مختلف أو التوقف.
1 — يقوم بتدوير المحرك أو مجموعة المحركات باستخدام سرعة المحرك المُهيأة حاليًا.
void spin( directionType dir );
2 — يقوم بتدوير المحرك أو مجموعة المحركات بالسرعة المحددة.
void spin( directionType dir, double velocity, velocityUnits units );
Parameters3 — يقوم بتدوير المحرك أو مجموعة المحركات باستخدام الجهد المحدد.
void spin( directionType dir, double voltage, voltageUnits units );
المعلمة |
يكتب |
وصف |
|---|---|---|
|
|
اتجاه دوران المحرك أو مجموعة المحركات: |
|
|
سرعة الدوران من 0% إلى 100% عند استخدام |
|
|
The unit used to represent velocity:
|
|
|
الجهد المطلوب للدوران. القيمة السالبة تعني الدوران في الاتجاه المعاكس للاتجاه المعطى |
|
|
الوحدة المستخدمة لتمثيل الجهد:
|
هذه الدالة لا تُرجع قيمة.
Notesهذه الوظيفة لا تتطلب انتظارًا، وسيستمر المشروع في التنفيذ فورًا بعد الاستدعاء.
سيستمر المحرك أو مجموعة المحركات في الدوران حتى يتم استدعاء
stopأو يتم تنفيذ وظيفة حركة أخرى.لا تنطبق وظائف مثل
isDoneوisSpinningعلىspin، لأنها لا تستخدم الحركة القائمة على الهدف (لا تحتوي علىrotationأوtimeمعلمة).
// Spin forward, then stop
Motor1.spin(forward);
wait(1, seconds);
Motor1.stop();
spinFor#
يُشغّل الأمر spinFor محركًا أو مجموعة محركات لمسافة أو مدة زمنية محددة. ويكون الدوران مرتبطًا بالموضع الحالي للمحرك أو مجموعة المحركات. افتراضيًا، ينتظر البرنامج حتى ينتهي المحرك أو مجموعة المحركات من الدوران قبل تنفيذ السطر التالي من التعليمات البرمجية.
1 — يدور لمسافة محددة بالسرعة المحددة في استدعاء الدالة.
bool spinFor( double rotation, rotationUnits units, double velocity, velocityUnits units_v, bool waitForCompletion = true );
2 — يقبل معلمة اتجاه ويدور لمسافة محددة بالسرعة المحددة في استدعاء الدالة.
bool spinFor( directionType dir, double rotation, rotationUnits units, double velocity, velocityUnits units_v, bool waitForCompletion = true );
3 — يدور لمسافة محددة باستخدام سرعة المحرك المُهيأة حاليًا.
bool spinFor( double rotation, rotationUnits units, bool waitForCompletion = true );
4 — يقبل معلمة اتجاه ويدور لمسافة محددة باستخدام سرعة المحرك المُكوّنة حاليًا.
bool spinFor( directionType dir, double rotation, rotationUnits units, bool waitForCompletion = true );
5 — يدور لفترة زمنية محددة بالسرعة المحددة في استدعاء الدالة.
bool spinFor( double time, timeUnits units, double velocity, velocityUnits units_v );
6 — يقبل معلمة اتجاه ويدور لفترة زمنية محددة بالسرعة المحددة في استدعاء الدالة.
bool spinFor( directionType dir, double time, timeUnits units, double velocity, velocityUnits units_v );
7 — يدور لفترة زمنية محددة باستخدام سرعة المحرك المُهيأة حاليًا.
bool spinFor( double time, timeUnits units );
Parameters8 — يقبل معلمة اتجاه ويدور لفترة زمنية محددة باستخدام سرعة المحرك المُكوّنة حاليًا.
bool spinFor( directionType dir, double time, timeUnits units );
المعلمة |
يكتب |
وصف |
|---|---|---|
|
|
اتجاه دوران المحرك أو مجموعة المحركات: |
|
|
المسافة التي يدورها المحرك أو مجموعة المحركات. |
|
|
وحدة الدوران:
|
|
|
مقدار الوقت الذي يدور فيه المحرك أو مجموعة المحركات. |
|
|
The unit of time:
|
|
|
سرعة الدوران من 0% إلى 100% عند استخدام |
|
|
الوحدة المستخدمة لتمثيل السرعة
|
|
|
|
تُرجع قيمة منطقية تُظهر ما إذا كان المحرك أو مجموعة المحركات قد وصل إلى القيمة المستهدفة.
true— The motor or motor group reached the target value.false— The motor or motor group was not able to reach the target value orwaitForCompletionis set tofalse.
سيؤدي تنفيذ وظيفة حركة محرك أخرى (مثل
spinأوstop) أثناء تنفيذspinForإلى مقاطعة الحركة الحالية.لأن
spinForيعتمد على الهدف (يستخدمrotationأوtimeمعلمة)، فإن وظائف مثلisDoneوisSpinningتعمل معspinFor.
// Spin 1 turn fast, then 1 turn slow
Motor1.spinFor(forward, 1, turns, true);
Motor1.spinFor(reverse, 1, turns, 20, velocityUnits::pct, true);
spinToPosition#
spinToPosition يقوم بتدوير محرك أو مجموعة محركات إلى موضع محدد.
A motor or motor group’s position is how far it has spun, measured in degrees or turns. One turn is equal to 360 degrees. At the beginning of a project, the motor or motor group position is set to 0 degrees. The motor or motor group position can also be set using the setPosition function.
قيم الموضع مطلقة. وهذا يعني أن اتجاه الدوران يعتمد على الموضع الحالي للمحرك أو مجموعة المحركات.
على سبيل المثال، إذا بدأ المحرك أو مجموعة المحركات من الصفر درجة ثم دار إلى موضع 720 درجة، فسيدور دورتين للأمام. وإذا دار بعد ذلك إلى موضع 360 درجة، فسيدور دورة واحدة للخلف، لأن 360 أقل من 720.
Available Functions1 — يدور إلى موضع محدد بالسرعة المحددة في استدعاء الدالة.
bool spinToPosition( double rotation, rotationUnits units, double velocity, velocityUnits units_v, bool waitForCompletion = true );
Parameters2 — يدور إلى موضع محدد باستخدام سرعة المحرك المُهيأة حاليًا.
bool spinToPosition( double rotation, rotationUnits units, bool waitForCompletion = true );
المعلمة |
يكتب |
وصف |
|---|---|---|
|
|
قيمة الموضع الذي سيدور إليه المحرك أو مجموعة المحركات. |
|
|
وحدة الدوران:
|
|
|
سرعة الدوران من 0% إلى 100% عند استخدام |
|
|
The unit used to represent
|
|
|
|
تُرجع قيمة منطقية تُظهر ما إذا كان المحرك أو مجموعة المحركات قد بدأ الحركة المطلوبة القائمة على الهدف.
true— The motor or motor group begins the requested target-based movement.false— The call fails orwaitForCompletionis set tofalse.
سيؤدي تنفيذ وظيفة حركة محرك أخرى (مثل
spinأوspinFor) أثناء تنفيذspinToPositionإلى مقاطعة الحركة الحالية.لأن
spinToPositionيعتمد على الهدف (يستخدم معلمة دورانrotation)، فإن وظائف مثلisDoneوisSpinningتعمل معspinToPosition.
// Spin forward, then go to 90°
Motor1.spin(forward);
wait(1, seconds);
Motor1.spinToPosition(90, degrees);
stop#
stop يوقف دوران المحرك أو مجموعة المحركات.
1 — يوقف المحرك أو مجموعة المحركات باستخدام وضع الفرامل المُكوّن حاليًا.
void stop();
Parameters2 — يوقف المحرك أو مجموعة المحركات باستخدام وضع الفرامل المقدم في استدعاء الوظيفة.
void stop( brakeType mode );
المعلمة |
يكتب |
وصف |
|---|---|---|
|
|
اختياري. كيفية توقف المحرك أو مجموعة المحركات:
|
هذه الدالة لا تُرجع قيمة.
Notesيؤدي استدعاء الأمر
stopإلى إيقاف أي حركة حالية للمحرك أو مجموعة المحركات على الفور.إذا لم يتم تحديد وضع الفرامل، فإن المحرك أو مجموعة المحركات تستخدم وضع الفرامل المُكوّن حاليًا.
stopيقاطع أي حركة نشطة تعتمد على الهدف (مثلspinForأوspinToPosition).
// Spin and coast to a stop
Motor1.setVelocity(100, percent);
Motor1.spin(forward);
wait(1, seconds);
Motor1.stop(coast);
المتحولون#
setVelocity#
يُحدد setVelocity سرعة دوران المحرك أو مجموعة المحركات. كلما زادت النسبة المئوية، زادت سرعة دوران المحرك أو مجموعة المحركات، وكلما انخفضت النسبة المئوية، قلت سرعة دوران المحرك أو مجموعة المحركات.
يبدأ كل مشروع بدوران كل محرك أو مجموعة محركات بسرعة 50% بشكل افتراضي.
ملاحظة: السرعة العالية تجعل المحرك أو مجموعة المحركات تدور بسرعة أكبر، ولكنها قد تكون أقل دقة. السرعة المنخفضة تجعل المحرك أو مجموعة المحركات تدور ببطء، ولكنها قد تكون أكثر دقة.
Available Functionsvoid setVelocity(
double velocity,
velocityUnits units );
المعلمة |
يكتب |
وصف |
|---|---|---|
|
|
سرعة الدوران من 0% إلى 100% عند استخدام |
|
|
الوحدة المستخدمة لتمثيل السرعة
|
هذه الدالة لا تُرجع قيمة.
Notesأي وظيفة حركة محرك لاحقة (مثل
spin،spinFor، أوspinToPosition) التي لا تحدد السرعة بشكل صريح ستستخدم هذه القيمة.
// Try default, then slow, then fast
Motor1.spinFor(forward, 180, degrees);
wait(1, seconds);
Motor1.setVelocity(20, percent);
Motor1.spinFor(reverse, 180, degrees);
wait(1, seconds);
Motor1.setVelocity(100, percent);
Motor1.spinFor(forward, 180, degrees);
setMaxTorque#
يوضح عزم الدوران مدى قوة الدفع أو السحب التي يمكن أن يقوم بها محرك أو مجموعة محركات أثناء دورانها.
setMaxTorque يحدد أقصى عزم دوران يُسمح للمحرك أو مجموعة المحركات باستخدامه.
نسبة أعلى تسمح للمحرك أو مجموعة المحركات بالدفع بقوة أكبر، كما هو الحال عند رفع جسم ثقيل. أما نسبة أقل فتحدّ من قوة الدفع التي يمكن للمحرك أو مجموعة المحركات القيام بها. وهذا يساعد على حماية الروبوت في حال تعطل المحرك أو مجموعة المحركات أو وصولها إلى أقصى مدى يمكنها التحرك فيه.
يبدأ كل مشروع بعزم دوران كل محرك أو مجموعة محركات بنسبة 50% بشكل افتراضي.
Available Functions1 — يحدد الحد الأقصى لعزم الدوران كنسبة مئوية من عزم الدوران المقدر للمحرك أو مجموعة المحركات.
void setMaxTorque( double value, percentUnits units );
2 — يحدد الحد الأقصى لعزم الدوران باستخدام وحدات عزم الدوران الفيزيائية.
void setMaxTorque( double value, torqueUnits units );
Parameters3 — يحدد الحد الأقصى لعزم الدوران عن طريق الحد من تيار المحرك.
void setMaxTorque( double value, currentUnits units );
المعلمة |
يكتب |
وصف |
|---|---|---|
|
|
أقصى عزم دوران يمكن للمحرك أو مجموعة المحركات استخدامه. |
|
|
يحدد عزم الدوران كنسبة مئوية: |
|
|
يحدد عزم الدوران بوحدات فيزيائية مثل:
|
|
|
يحدد عزم الدوران عن طريق الحد من تيار المحرك:
|
هذه الدالة لا تُرجع قيمة.
Notesعند استخدام
currentUnits، يتم تقييد عزم الدوران عن طريق تقييد مقدار التيار الكهربائي الذي يمكن للمحرك أو مجموعة المحركات استخدامه.
setPosition#
موضع المحرك أو مجموعة المحركات هو مقدار دورانه، ويُقاس بالدرجات degrees أو turns. الدورة الواحدة تساوي 360 درجة. يُغيّر setPosition موضع المحرك أو مجموعة المحركات الحالي إلى قيمة جديدة.
على سبيل المثال، إذا دار محرك أو مجموعة محركات بزاوية 180 درجة، فإن ضبط الموضع على 0 درجة سيعيد ضبط هذا الموضع من 180 إلى 0 درجة. بعد ذلك، يمكن للمحرك أو مجموعة المحركات الدوران إلى مواضع بناءً على هذه القيمة الجديدة.
Available Functionsvoid setPosition(
double value,
rotationUnits units );
المعلمة |
يكتب |
وصف |
|---|---|---|
|
|
قيمة الموضع المراد ضبطها للمحرك أو مجموعة المحركات. |
|
|
وحدة الموضع:
|
هذه الدالة لا تُرجع قيمة.
Notesبعد استدعاء
setPosition، ستستخدم الاستدعاءات اللاحقة لـspinToPositionالموضع المحدث كمرجع.
setStopping#
setStopping يحدد كيفية توقف المحرك أو مجموعة المحركات عن الحركة: عن طريق الكبح أو الانزلاق أو الثبات.
void setStopping(
brakeType mode );
المعلمة |
يكتب |
وصف |
|---|---|---|
|
|
كيفية توقف المحرك أو مجموعة المحركات:
|
هذه الدالة لا تُرجع قيمة.
Notesأي استدعاء لاحق لـ
stopبدون وضع فرامل محدد سيستخدم هذه القيمة.
setTimeout#
يُحدد setTimeout المدة الزمنية التي سيحاول فيها المحرك أو مجموعة المحركات إكمال الحركة. إذا لم يتمكن المحرك أو مجموعة المحركات من إكمال الحركة خلال هذه المدة، فسيتوقف عن المحاولة وينتقل إلى سطر التعليمات البرمجية التالي. هذا يمنع المحرك أو مجموعة المحركات من التوقف أثناء الحركة.
void setTimeout(
int32_t time,
timeUnits units );
المعلمة |
يكتب |
وصف |
|---|---|---|
|
|
مقدار الوقت الذي يمكن للمحرك أو مجموعة المحركات فيه محاولة إنهاء حركة ما. يجب أن يكون هذا عددًا صحيحًا موجبًا. |
|
|
وحدة الزمن:
|
قيم الإرجاع
هذه الدالة لا تُرجع قيمة.
Notesيتم استخدام مهلة المحرك أو مجموعة المحركات لمنع الحركات التي لا تصل إلى موضعها المستهدف من إيقاف تنفيذ الأوامر الأخرى في المكدس.
إذا لم يصل المحرك أو مجموعة المحركات إلى موضعها المستهدف قبل انتهاء المهلة الزمنية، فسيتوقف عن المحاولة وينتقل إلى السطر التالي من التعليمات البرمجية.
ينطبق المهلة الزمنية على الوظائف التي لها قيمة مستهدفة مثل
spinForوspinToPosition.
// Stop a long move after 1 second
Motor1.setTimeout(1, seconds);
Motor1.spinFor(forward, 2, turns);
Motor1.spinToPosition(0, degrees);
المحصلون#
isDone#
تُعيد isDone قيمة منطقية تُشير إلى ما إذا كان المحرك أو مجموعة المحركات قد انتهى من الحركة. ويمكن استخدام هذه القيمة للتحكم في توقيت العمليات الأخرى بناءً على حركة المحرك أو مجموعة المحركات.
true— انتهى المحرك أو مجموعة المحركات من الحركة.false— لا يزال المحرك أو مجموعة المحركات يتحرك.
This function works together with the following Motion functions that have the waitForCompletion parameter: spinFor and spinToPosition.
bool isDone();
لا تقبل هذه الدالة أي معلمات.
Return Valuesتُرجع هذه الدالة ما إذا كان المحرك أو مجموعة المحركات قد انتهى من الحركة، كقيمة منطقية (Boolean).
true— The motor or motor group is finished moving.false— The motor or motor group is still moving.
isDoneيعمل مع وظائف الحركة التالية التي تحتوي على المعلمةwaitForCompletion:spinForوspinToPosition.
// Spin forward until the motor is done spinning
Motor1.spinFor(forward, 200, degrees, false);
while (true) {
if (Motor1.isDone()) {
Drivetrain.stop();
} else {
Drivetrain.drive(forward);
}
}
isSpinning#
تُعيد الدالة isSpinning isSpinning قيمة منطقية تُشير إلى ما إذا كان المحرك أو مجموعة المحركات يدور أم لا. ويمكن استخدام هذه القيمة للتحكم في توقيت سلوكيات أخرى بناءً على حركة المحرك أو مجموعة المحركات.
true— المحرك أو مجموعة المحركات تدور.false— المحرك أو مجموعة المحركات لا تدور.
تعمل هذه الوظيفة جنبًا إلى جنب مع وظائف الحركة مثل spin، spinFor، و spinToPosition.
bool isSpinning();
لا تقبل هذه الدالة أي معلمات.
Return Valuesتُرجع هذه الدالة ما إذا كان المحرك أو مجموعة المحركات يدور، كقيمة منطقية (Boolean).
true— The motor or motor group is spinning.false— The motor or motor group is not spinning.
isSpinningيعمل مع وظائف الحركة مثلspin،spinFor، وspinToPosition.
// Spin forward until the motor is done spinning
Motor1.spinFor(forward, 200, degrees, false);
while (true) {
if (Motor1.isSpinning()) {
Drivetrain.drive(forward);
} else {
Drivetrain.stop();
}
}
position#
موضع المحرك أو مجموعة المحركات هو مقدار دورانه، ويُقاس بالدرجات degrees أو turns. الدورة position للمحرك أو مجموعة المحركات.
في بداية المشروع، يتم ضبط موضع المحرك أو مجموعة المحركات على صفر درجة. إذا دار المحرك أو مجموعة المحركات دورة كاملة للأمام، فسيكون الموضع 360 درجة أو دورة واحدة. أما إذا دار المحرك أو مجموعة المحركات في الاتجاه المعاكس، فسيكون الموضع سالباً.
Available Functionsdouble position(
rotationUnits units );
المعلمة |
يكتب |
وصف |
|---|---|---|
|
|
The unit to return the motor or motor group position in:
|
يُرجع قيمة double تمثل الموضع الحالي للمحرك أو مجموعة المحركات بالوحدات المحددة.
يؤدي استدعاء
setPositionإلى تغيير نقطة المرجع لهذه القيمة.تعكس القيمة المُعادة قراءة المشفر الحالية ولا تشير إلى ما إذا كان المحرك أو مجموعة المحركات تتحرك بنشاط.
عند استدعاء هذه الدالة على مجموعة المحركات
motor_group، فإنها تُرجع موضع المحرك الأول في المجموعة.
// Spin, then show the final position
Motor1.spin(forward);
wait(1, seconds);
Motor1.stop();
Brain.Screen.print("Pos: %f", Motor1.position(degrees));
velocity#
السرعة velocity تُحددان مدى سرعة دوران المحرك أو مجموعة المحركات.
تشير القيمة الموجبة إلى أن المحرك أو مجموعة المحركات تدور للأمام. وتشير القيمة السالبة إلى أنها تدور للخلف.
Available Functionsdouble velocity(
velocityUnits units );
المعلمة |
يكتب |
وصف |
|---|---|---|
|
|
The unit used to represent velocity:
|
تُرجع قيمة double تمثل سرعة دوران المحرك أو مجموعة المحركات بالوحدات المحددة.
ملاحظات
عند استدعاء هذه الدالة على مجموعة المحركات
motor_group، فإنها تُرجع سرعة المحرك الأول في المجموعة.
current#
يُشير الرقم current
تشير قيمة التيار الأعلى إلى أن المحرك أو مجموعة المحركات تستهلك تيارًا كهربائيًا أكبر. قد يحدث هذا عندما يرفع المحرك أو مجموعة المحركات شيئًا ثقيلًا، أو يدفع جسمًا ما، أو يحاول التحرك وهو عالق.
يمكن استخدام هذا للتحقق مما إذا كان المحرك أو مجموعة المحركات يواجه صعوبة أثناء الحركة. إذا ظل التيار مرتفعًا، فقد يسخن المحرك أو يستهلك الطاقة بكفاءة أقل.
Available Functions1 — يعيد التيار الكهربائي للمحرك أو مجموعة المحركات بالأمبير.
double current( currentUnits units = amp );
Parameters2 — يعيد التيار الكهربائي للمحرك أو مجموعة المحركات كنسبة مئوية من الحد الأقصى للتيار المقنن.
double current( percentUnits units );
المعلمة |
يكتب |
وصف |
|---|---|---|
|
|
الوحدة المستخدمة لتمثيل التيار: |
|
|
يمثل التيار كنسبة مئوية من الحد الأقصى للتيار المقنن للمحرك: |
تُرجع قيمة double تمثل مقدار التيار الكهربائي الذي يسحبه المحرك أو مجموعة المحركات بالوحدات المحددة.
ملاحظات
عند استدعاء هذه الدالة على مجموعة المحركات
motor_groupفإنها تُرجع إجمالي التيار الكهربائي لجميع المحركات في المجموعة.
power#
يُظهر الخيار power مقدار الطاقة التي يستهلكها المحرك أو مجموعة المحركات بالواط. أما الخيار power فيُظهر سرعة استهلاك المحرك أو مجموعة المحركات للطاقة.
تشير قيمة الطاقة الأعلى إلى أن المحرك أو مجموعة المحركات تستهلك الطاقة بسرعة أكبر. قد يحدث هذا عندما يرفع المحرك أو مجموعة المحركات شيئًا ثقيلًا، أو يدفع جسمًا ما، أو يحاول التحرك وهو عالق.
يمكن استخدام هذا لمقارنة الحركات أو التحقق مما إذا كان المحرك أو مجموعة المحركات يعاني من صعوبة. إذا ظلت الطاقة عالية، فقد يسخن المحرك أو يستخدم الطاقة بكفاءة أقل.
Available Functionsdouble power(
powerUnits units = watt );
معلمات
المعلمة |
يكتب |
وصف |
|---|---|---|
|
|
الوحدة المستخدمة لتمثيل قدرة المحرك:
|
قيم الإرجاع
تُرجع قيمة double تمثل مقدار الطاقة التي يستخدمها المحرك أو مجموعة المحركات بالواط.
ملاحظات
عند استدعاء هذه الدالة على مجموعة المحركات
motor_group، فإنها تُرجع الطاقة الكهربائية للمحرك الأول في المجموعة.
torque#
يوضح عزم الدوران مدى قوة دوران المحرك أو مجموعة المحركات، سواء باللف أو الدفع أو السحب.
torque يُظهر مقدار عزم الدوران الذي يستخدمه المحرك أو مجموعة المحركات.
تشير قيمة عزم الدوران الأعلى إلى أن المحرك أو مجموعة المحركات تبذل جهدًا أكبر في الدفع أو السحب. وقد يحدث هذا عندما يرفع المحرك أو مجموعة المحركات شيئًا ثقيلًا، أو يدفع جسمًا ما، أو يحاول التحرك وهو عالق.
يمكن استخدام هذا للتحقق مما إذا كان المحرك أو مجموعة المحركات يعاني من صعوبة أو لمقارنة مقدار الدفع الذي تحتاجه الحركات المختلفة.
لضبط عزم دوران محرك أو مجموعة محركات، استخدم setMaxTorque.
double torque(
torqueUnits units = Nm );
معلمات
المعلمة |
يكتب |
وصف |
|---|---|---|
|
|
الوحدة المستخدمة لتمثيل عزم دوران المحرك:
|
قيم الإرجاع
تُرجع قيمة double تمثل مقدار عزم الدوران الذي يستخدمه المحرك أو مجموعة المحركات بالوحدات المحددة.
ملاحظات
عند استدعاء هذه الدالة على مجموعة المحركات
motor_group، فإنها تُرجع عزم الدوران الميكانيكي الناتج للمحرك الأول في المجموعة.
efficiency#
efficiency تُظهر مدى كفاءة المحرك أو مجموعة المحركات في استخدام الطاقة، كنسبة مئوية من 0% إلى 100%.
تُشير الكفاءة إلى مقدار الطاقة المُستخدمة من المحرك أو مجموعة المحركات في الحركة. فكلما ارتفعت قيمة الكفاءة، زادت الطاقة المُستخدمة في الحركة. أما انخفاض قيمة الكفاءة فيحدث عندما يبذل المحرك أو مجموعة المحركات جهدًا كبيرًا دون أن يتحرك كثيرًا، كما في حالة تعطل المحرك أو دفعه لجسم ما.
يمكن استخدام هذا لمقارنة الحركات أو التحقق مما إذا كان المحرك أو مجموعة المحركات يهدر الطاقة بدلاً من استخدامها للحركة.
Available Functionsdouble efficiency(
percentUnits units = percent );
معلمات
المعلمة |
يكتب |
وصف |
|---|---|---|
|
|
The unit used to represent motor efficiency:
|
قيم الإرجاع
Returns a double representing how efficiently the motor or motor group is using power as a percentage.
ملاحظات
عند استدعاء هذه الدالة على مجموعة المحركات
motor_group، فإنها تُرجع كفاءة المحرك الأول في المجموعة.
temperature#
temperature تُرجع درجة حرارة المحرك أو مجموعة المحركات.
تُشير درجة حرارة المحرك إلى مدى سخونة المحرك أو مجموعة المحركات. ارتفاع درجة الحرارة يعني أن المحرك أو مجموعة المحركات يسخن أثناء التشغيل. يجب أن تبقى درجة حرارة المحرك أقل 55°C للحفاظ على أدائه الأمثل.
If the motor or motor group gets too hot, it will lower its maximum current to protect itself. At 70°C, a motor will stop running until it cools down.
يمكن استخدام هذا للتحقق مما إذا كان المحرك أو مجموعة المحركات يسخن بشكل مفرط أثناء الحركات المتكررة أو الجري لمسافات طويلة أو عندما يدفع ضد جسم ما.
Available Functions1 — يعيد درجة حرارة المحرك أو مجموعة المحركات كنسبة مئوية من درجة حرارة التشغيل القصوى.
double temperature( percentUnits units = percent );
2 — يعيد درجة حرارة المحرك أو مجموعة المحركات بوحدات درجة الحرارة الفيزيائية.
double temperature( temperatureUnits units );
معلمات
المعلمة |
يكتب |
وصف |
|---|---|---|
|
|
The unit used to represent motor or motor group temperature as a percentage:
|
|
|
الوحدة المستخدمة لتمثيل درجة حرارة المحرك أو مجموعة المحركات بالدرجات:
|
قيم الإرجاع
تُرجع قيمة double تمثل درجة حرارة المحرك أو مجموعة المحركات بالوحدات المحددة.
ملاحظات
يتراوح نطاق درجة حرارة التشغيل للمحرك تقريبًا
20°C(68°F) إلى70°C(158°F)).عند استدعاء هذه الدالة على مجموعة المحركات
motor_group، فإنها تُرجع درجة حرارة المحرك الأول في المجموعة.
voltage#
الجهد voltage يعيد الجهد الكهربائي المزوّد للمحرك أو مجموعة المحركات.
double voltage(
voltageUnits units = volt );
معلمات
المعلمة |
يكتب |
وصف |
|---|---|---|
|
|
وحدة تمثيل الجهد:
|
قيم الإرجاع
تُرجع قيمة double تمثل الجهد الكهربائي المزود للمحرك أو مجموعة المحركات بالوحدات المحددة.
ملاحظات
عند استدعاء هذه الدالة على مجموعة المحركات
motor_group، فإنها تُرجع الجهد الكهربائي للمحرك الأول في المجموعة.
direction#
الاتجاه direction يُعيد الاتجاه الذي يدور فيه المحرك أو مجموعة المحركات.
directionType direction();
معلمات
لا تأخذ هذه الدالة أي معلمات.
قيم الإرجاع
يُرجع قيمة directionType مما يشير إلى الاتجاه الحالي للمحرك أو مجموعة المحركات:
forward— The motor or motor group is spinning forward.reverse— The motor or motor group is spinning in reverse.
installed#
installed يُرجع ما إذا كان المحرك أو مجموعة المحركات متصلة بدماغ IQ (الجيل الأول).
bool installed();
معلمات
لا تأخذ هذه الدالة أي معلمات.
قيم الإرجاع
يُرجع قيمة منطقية bool تشير إلى ما إذا كان المحرك أو مجموعة المحركات متصلة.
true— The motor or motor group is connected.false— The motor or motor group is not connected.
count#
count تُرجع عدد المحركات في مجموعة المحركات.
int32_t count();
معلمات
لا تأخذ هذه الدالة أي معلمات.
قيم الإرجاع
Returns an int32_t representing the number of motors in the motor group.