مستشعر الدوران#
مقدمة#
تُستخدم فئة الدوران rotation للتحكم في البيانات والوصول إليها من مستشعر الدوران EXP.
يقيس مستشعر الدوران دوران العمود. ويمكن استخدامه في أي مكان على الروبوت حيث يدور العمود، حتى لو لم يكن هذا العمود متصلاً مباشرة بمحرك.
يحتوي المحرك على مشفر داخلي يمكنه تتبع دورانه. أما مستشعر الدوران فيعمل كمشفر خارجي يمكنه تتبع دوران عمود منفصل.
يُمكن لمستشعر الدوران إرجاع زاوية العمود وموضعه وسرعته. الزاوية هي الموضع المطلق للعمود، وتتراوح من 0 إلى 359.99 درجة. ولا تتم إعادة ضبطها عند بدء مشروع أو عند إيقاف تشغيل الروبوت. أما الموضع، فيتتبع عدد الدرجات أو الدورات التي دارها العمود للأمام أو للخلف أثناء المشروع، ويمكن إعادة ضبطه عند الحاجة.
يتوافق مستشعر الدوران مع أعمدة VEX القياسية مقاس 1/8 بوصة و 1/4 بوصة.
مُنشئات الفئات#
rotation(
int32_t index,
bool reverse = false );
مُدمِّر الفئة#
يقوم بتدمير الكائن ذي الدوران rotation ويحرر الموارد المرتبطة به.
virtual ~rotation();
حدود#
المعلمة |
يكتب |
وصف |
|---|---|---|
|
|
المنفذ الذكي الذي يتصل به مستشعر الدوران، مكتوبًا على النحو التالي: |
|
|
اختياري. عكس اتجاه خرج مستشعر الدوران:
|
أمثلة#
// Create a Rotation Sensor instance in Port 1
rotation Rotation1 = rotation(PORT1);
الدوال الأعضاء#
تتضمن فئة الدوران rotation الدوال الأعضاء التالية:
setPosition— يضبط الموضع الحالي لمستشعر الدوران على قيمة محددة.angle— يعيد الزاوية الحالية للعمود من 0 إلى 359.99 درجة.position— تُرجع هذه الدالة مقدار دوران العمود بالدرجات أو الدورات.velocity— تُرجع مدى سرعة دوران العمود.
قبل استدعاء أي من الدوال الأعضاء ذات الدوران rotation ، يجب إنشاء نسخة ذات دوران rotation ، كما هو موضح أدناه:
/* This constructor is required when using VS Code.
Rotation Sensor configuration is generated automatically
in VEXcode using the Device Menu. Replace the values
as needed. */
// Create a Rotation Sensor instance in Port 1
rotation Rotation1 = rotation(PORT1);
setPosition#
يضبط الموضع الحالي لمستشعر الدوران على قيمة محددة.
يُشير الموضع إلى مدى دوران العمود أثناء المشروع. ويؤدي ضبط الموضع إلى تغيير قيمة الموضع الحالية دون تحريك العمود.
Available Functionsvoid setPosition(
double value,
rotationUnits units );
المعلمة |
يكتب |
وصف |
|---|---|---|
|
|
قيمة الموضع المراد تعيينها لمستشعر الدوران. يمكن أن تكون هذه القيمة عددًا صحيحًا أو عددًا عشريًا. |
|
|
وحدة الموضع:
|
هذه الدالة لا تُرجع قيمة.
angle#
يعيد الزاوية الحالية للعمود.
يُبلغ جهاز Angle عن الموضع المطلق للمحور خلال دورة واحدة، من 0 إلى 359.99 درجة. ولا تتم إعادة ضبطه عند بدء مشروع أو عند إيقاف تشغيل الروبوت.
Available Functionsdouble angle( rotationUnits units = degrees );
المعلمة |
يكتب |
وصف |
|---|---|---|
|
|
اختياري. وحدة الزاوية:
|
يُرجع قيمة double تمثل الزاوية الحالية للعمود بالوحدات المحددة.
// Get the current angle of the shaft
double angle = Rotation1.angle(degrees);
// Print the current angle of the shaft to the
// Brain's screen.
Brain.Screen.print(angle);
position#
يُعيد هذا الأمر مقدار دوران العمود.
على عكس الزاوية، يمكن أن تزيد قيمة الموضع عن 359.99 درجة أو تنخفض عن 0 درجة. يتتبع الموضع مدى دوران العمود للأمام أو للخلف أثناء المشروع، ويمكن إعادة ضبطه حسب الحاجة.
Available Functionsdouble position( rotationUnits units );
المعلمة |
يكتب |
وصف |
|---|---|---|
|
|
وحدة الموضع:
|
تُرجع قيمة double تمثل مقدار دوران العمود بالوحدات المحددة.
velocity#
يُعيد هذا الأمر سرعة دوران العمود.
Available Functionsdouble velocity( velocityUnits units );
المعلمة |
يكتب |
وصف |
|---|---|---|
|
|
وحدة السرعة:
|
تُرجع قيمة double تمثل مدى سرعة دوران العمود بالوحدات المحددة.