حماية المحركات الذكية Rev 10 V5 (11 واط) باستخدام الكود

ينطبق هذا فقط على Rev 10 للمحرك الذكي V5 (11 واط).  لمعرفة المزيد انتقل إلى rev10rma.vex.com

ما هي الأوامر التي تحتاج إلى الحماية

لقد حددنا مشكلة يمكن أن تتسبب في فشل هذه المحركات. تظهر المشكلة عندما يُطلب من المحرك أن يعمل بجهد أعلى من 11 فولت ثم يتم إرسال أمر آخر إلى المحرك للدوران في الاتجاه المعاكس. يتسبب تسلسل الأوامر هذا في ارتفاع الجهد الكهربائي مما يؤدي إلى إتلاف المكونات الموجودة على لوحة الكمبيوتر الخاصة بالمحرك.

تستخدم معظم أوامر المحرك منطق التحكم الداخلي للمحرك والذي لا يسمح للمحرك بالوصول إلى 11 فولت من طاقة الخرج. أوامر المحرك مثل "motor.spinto(...)" و"motor.spinfor(...)" تستخدم PID للحفاظ على السرعات ولا تسمح للمحرك بالعمل فوق 11 فولت. الأمر الوحيد الذي يمكن استخدامه لإرسال أمر جهد محدد إلى المحرك هو "motor.spin(...)". هناك عدة إصدارات من motor.spin():

أمثلة على أوامر وضع الجهد

 الإصدار المحدد من motor.spin() الذي يحدد جهد المحركات هو:

ج++:

المحرك m1 = المحرك (PORT1، نسبة 18_1، خطأ)؛

m1.spin(forward, CommandedVolts, volt);

بايثون:

m1 = المحرك (Ports.PORT1، GearSetting.RATIO_18_1، False)

m1.spin (إلى الأمام، فولتات الأمر، فولت)

حماية أوامر وضع الجهد

إن إصدار motor.spin() الذي يأخذ وحدات الجهد هو الأمر الوحيد الذي يمكن أن يتسبب في تشغيل المحرك عند 11 فولت أو أعلى. ستحتاج إلى التأكد من تمرير القيم الأقل من 11.0 إلى هذه الوظيفة فقط. مثال:

C++
if( CommandedVolts >= 11.0) {
CommandedVolts = 10.9;
}
else if( CommandedVolts <= -11.0) {
CommandedVolts = -10.9;
}
m1.spin(forward, commandedVolts, volt);

بايثون
إذا( فولت أمر >= 11.0 ):
فولت أمر = 10.9
إليف ( فولت أمر <= -11.0 ):
فولت أمر = -10.9
م 1. تدور (إلى الأمام، فولت، فولت)

إذا كنت تستخدم أي وحدات أخرى غير وحدات الجهد في أمر الدوران، فلن تحتاج إلى إجراء فحص القيمة الموجه هذا. تأكد من عدم قيادة محركات Rev 10 الخاصة بك أبدًا بأكثر من 11 فولت أو أكثر، مما يمنع محركاتك من التعطل. 

مرجع أمر C++

/**
* @brief يشغل المحرك ويدوره في الاتجاه المحدد.
* @paramdir اتجاه دوران المحرك.
*/
باطلةتدور( اتجاه نوعدير );

/**
* @brief يشغل المحرك ويدوره في اتجاه محدد وبسرعة
* محددة.
* @paramdir اتجاه دوران المحرك.
* @paramالسرعة يضبط مقدار السرعة.
* @paramوحدة وحدة قياس قيمة السرعة.
*/
الفراغالدوران( اتجاه النوعدير، مزدوجالسرعة، السرعة الوحداتوحدات
فراغدوران( اتجاه النوع120 دير، مزدوجالسرعة، بالمائةالوحداتوحدة ){
( دير, السرعة, static_cast<>وحدات السرعة(وحدة) ) ؛
}


/**
* @brief يشغل المحرك ويدوره في اتجاه محدد وبجهد محدد
*.

* @paramdir اتجاه دوران المحرك.
* @paramالجهد يضبط مقدار الفولت.
* @paramوحدات وحدة قياس قيمة الجهد.
*/

باطلةتدور( اتجاه النوعدير227 ،
مزدوججهد، وحدات الجهدوحدات ؛

 

مرجع أمر بايثون

defتدور(ذاتي, اتجاه: نوع الاتجاه.نوع الاتجاه, *args, **kwargs):
'''### قم بتدوير المحرك باستخدام الوسيطات المتوفرة

#### الوسيطات:
الاتجاه: اتجاه دوران المحرك، للأمام أو للخلف
السرعة (اختياري): الدوران المحرك الذي يستخدم هذه السرعة، سيتم استخدام السرعة الافتراضية
التي تم تحديدها بواسطة set_velocity إذا لم يتم توفيرها.
وحدة (اختياري): وحدات السرعة المقدمة، الافتراضية هي دورة في الدقيقة

#### الإرجاعات:
لا شيء

#### أمثلة:
# دوران المحرك للأمام عند مجموعة السرعة مع set_velocity\\
motor1.spin(FORWARD)\n

# محرك يدور للأمام عند 50 دورة في الدقيقة\\
motor1.spin(FORWARD, 50)\n

# تدور بسرعة سلبية، أي. إلى الخلف\\
motor1.spin(FORWARD, -20)\n

# محرك يدور للأمام بسرعة 100%\\
motor1.spin(FORWARD, 100, PERCENT)\n

# محرك الدوران للأمام عند 50 دورة في الدقيقة\\
المحرك 1. الدوران (الأمام، 50، دورة في الدقيقة)\n

# محرك الدوران للأمام عند 360 ديسيبل في الثانية\\
المحرك 1. تدور (إلى الأمام، 360.0، وحدات السرعة. DPS)

'''


 



For more information, help, and tips, check out the many resources at VEX Professional Development Plus

Last Updated: