مستشعر الدوران#

مقدمة#

تُستخدم فئة الدوران rotation للتحكم في البيانات والوصول إليها من مستشعر الدوران V5.

يقيس مستشعر الدوران دوران العمود. ويمكن استخدامه في أي مكان على الروبوت حيث يدور العمود، حتى لو لم يكن هذا العمود متصلاً مباشرة بمحرك.

يحتوي المحرك على مشفر داخلي يمكنه تتبع دورانه. أما مستشعر الدوران فيعمل كمشفر خارجي يمكنه تتبع دوران عمود منفصل.

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

يتوافق مستشعر الدوران مع أعمدة VEX القياسية مقاس 1/8 بوصة و 1/4 بوصة.

مُنشئ الفئة#

rotation(
    int32_t index,
    bool    reverse = false );

مُدمِّر الفئة#

يقوم بتدمير الكائن ذي الدوران rotation ويحرر الموارد المرتبطة به.

virtual ~rotation();

حدود#

المعلمة

يكتب

وصف

index

int32_t

المنفذ الذكي الذي يتصل به مستشعر الدوران، مكتوبًا على النحو التالي: PORTx، حيث x هو رقم المنفذ (على سبيل المثال، PORT1).

reverse

bool

اختياري. عكس اتجاه خرج مستشعر الدوران:

  • true — يعكس اتجاه قيم الزاوية والموضع المُبلغ عنها.
  • false (افتراضي) — يُبلغ عن قيم الزاوية والموضع في الاتجاه القياسي.

أمثلة#

// Create a Rotation Sensor instance in Port 1
rotation Rotation1 = rotation(PORT1);

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

تتضمن فئة الدوران rotation الدوال الأعضاء التالية:

  • setPosition — يضبط الموضع الحالي لمستشعر الدوران على قيمة محددة.

  • angle — يعيد الزاوية الحالية للعمود من 0 إلى 359.99 درجة.

  • position — تُرجع هذه الدالة مقدار دوران العمود بالدرجات أو الدورات.

  • velocity — تُرجع مدى سرعة دوران العمود.

قبل استدعاء أي من الدوال الأعضاء ذات الدوران rotation ، يجب إنشاء نسخة ذات دوران rotation ، كما هو موضح أدناه:

// Create a Rotation Sensor instance in Port 1
rotation Rotation1 = rotation(PORT1);

setPosition#

يضبط الموضع الحالي لمستشعر الدوران على قيمة محددة.

يُشير الموضع إلى مدى دوران العمود أثناء المشروع. ويؤدي ضبط الموضع إلى تغيير قيمة الموضع الحالية دون تحريك العمود.

Available Functions
void setPosition(
    double        value,
    rotationUnits units );

Parameters

المعلمة

يكتب

وصف

value

double

قيمة الموضع المراد تعيينها لمستشعر الدوران. يمكن أن تكون هذه القيمة عددًا صحيحًا أو عددًا عشريًا.

units

rotationUnits

وحدة الموضع:

  • deg / degrees — درجات
  • turns / rev — دورات

Return Values

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

angle#

يعيد الزاوية الحالية للعمود.

يُبلغ جهاز Angle عن الموضع المطلق للمحور خلال دورة واحدة، من 0 إلى 359.99 درجة. ولا تتم إعادة ضبطه عند بدء مشروع أو عند إيقاف تشغيل الروبوت.

Available Functions
double angle( rotationUnits units = degrees );

Parameters

المعلمة

يكتب

وصف

units

rotationUnits

اختياري. وحدة الزاوية:

  • deg / degrees (افتراضي) — درجات
  • turns / rev — دورات

Return Values

يُرجع قيمة double تمثل الزاوية الحالية للعمود بالوحدات المحددة.

Examples
// 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 Functions
double position( rotationUnits units );

Parameters

المعلمة

يكتب

وصف

units

rotationUnits

وحدة الموضع:

  • deg / degrees — درجات
  • turns / rev — دورات

Return Values

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

velocity#

يُعيد هذا الأمر سرعة دوران العمود.

Available Functions
double velocity( velocityUnits units );

Parameters

المعلمة

يكتب

وصف

units

velocityUnits

وحدة السرعة:

  • rpm — دورات في الدقيقة
  • dps — درجات في الثانية

Return Values

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