وحدة التحكم#

مقدمة#

يحتوي جهاز التحكم VEX AIM One Stick على أربعة أزرار وعصا تحكم. يمكن تحريك عصا التحكم على محورين، كما يمكن الضغط عليها كزر.

يمكن استخدام أساليب وحدة التحكم للتحقق من ضغطات الأزرار، وقراءة حركة عصا التحكم، والتحقق من حالة الاتصال والبطارية، أو تشغيل الوظائف عند حدوث أحداث وحدة التحكم.

فيما يلي قائمة بجميع الطرق:

أجهزة الاستقبال — قراءة حالة الزر، وعصا التحكم، والاتصال، والبطارية.

  • .pressing — تُرجع ما إذا كان يتم الضغط على زر معين.

  • .position — تُرجع موضع عصا التحكم على طول محور محدد.

  • is_connected — تُرجع ما إذا كان المتحكم متصلاً.

  • get_battery_level — يُرجع مستوى بطارية وحدة التحكم.

الوظائف المستدعاة — تشغيل الوظائف عند تغيير مدخلات وحدة التحكم.

  • .pressed — يقوم بتشغيل وظيفة عند الضغط على زر محدد.

  • .released — يقوم بتشغيل وظيفة عند تحرير زر معين.

  • .changed — يقوم بتشغيل وظيفة عندما يتغير موضع عصا التحكم على طول محور محدد.

المحصلون#

.pressing#

.pressing تُرجع ما إذا كان زر معين على وحدة التحكم مضغوطًا حاليًا. يجب استدعاء هذه الطريقة على كائن زر معين، مثل controller.button_up.

  • True — يتم الضغط على الزر المحدد.

  • False — الزر المحدد غير مضغوط.

طريقة الاستخدام:
يمكن استخدام أحد عناصر الزر الخمسة المتاحة مع هذه الطريقة:

زر

يأمر

button_up

controller.button_up.pressing() — زر أعلى

button_down

controller.button_down.pressing() — زر الأسفل

button_left

controller.button_left.pressing() — الزر الأيسر

button_right

controller.button_right.pressing() — الزر اليمين

button_stick

controller.button_stick.pressing() — زر عصا التحكم

وحدة تحكم VEX AIM One Stick مزودة بعصا تحكم على اليسار وأربعة أزرار على اليمين. عصا التحكم والأزرار الأربعة مُظللة.

حدود

وصف

لا تحتوي هذه الطريقة على أي معلمات.

# Move forward while the Up button is being pressed
while True:
    if controller.button_up.pressing():
        robot.move_at(0)
    else:
        robot.stop_all_movement()

    wait(20, MSEC)

.position#

.position تُرجع موضع محور عصا التحكم كرقم من -100 إلى 100.

يجب استدعاء هذه الطريقة على كائن محور محدد، مثل controller.axis1.

طريقة الاستخدام:
يمكن استخدام أحد كائنَي المحور المتاحين مع هذه الطريقة:

محور

يأمر

axis1

controller.axis1.position() — المحور الرأسي

axis2

controller.axis2.position() — المحور الأفقي

وحدة تحكم VEX AIM مزودة بعصا تحكم على اليسار وأربعة أزرار على اليمين. تم تمييز المحورين 1 و2 لعصا التحكم.

حدود

وصف

لا تحتوي هذه الطريقة على أي معلمات.

# Move forward when the joystick is moved up
while True:
    if controller.axis1.position() > 0:
        robot.move_at(0)
    else:
        robot.stop_all_movement()

    wait(20, MSEC)

is_connected#

is_connected تُرجع ما إذا كان المتحكم متصلاً أم لا.

  • True — وحدة التحكم متصلة.

  • False — وحدة التحكم غير متصلة.

Usage:
controller.is_connected()

حدود

وصف

لا تحتوي هذه الطريقة على أي معلمات.

# Stop the robot if the controller disconnects
robot.move_at(0)

while True:
    if not controller.is_connected():
        robot.stop_all_movement()

    wait(100, MSEC)

get_battery_level#

get_battery_level تُرجع مستوى بطارية وحدة التحكم كرقم من 0 إلى 100.

Usage:
controller.get_battery_level()

حدود

وصف

لا تحتوي هذه الطريقة على أي معلمات.

# Display the controller's battery level
robot.screen.print(controller.get_battery_level())

معاودة الاتصال#

.pressed#

.pressed يقوم بتشغيل وظيفة عند الضغط على الزر المحدد. بمجرد استخدامه، سيتم تشغيل الوظيفة تلقائيًا في كل مرة يتم فيها الضغط على هذا الزر.

طريقة الاستخدام:
يمكن استخدام أحد عناصر الزر الخمسة المتاحة مع هذه الطريقة:

زر

يأمر

button_up

controller.button_up.pressed(callback, arg) — زر أعلى

button_down

controller.button_down.pressed(callback, arg) — زر الأسفل

button_left

controller.button_left.pressed(callback, arg) — الزر الأيسر

button_right

controller.button_right.pressed(callback, arg) — الزر اليمين

button_stick

controller.button_stick.pressed(callback, arg) — زر عصا التحكم

وحدة تحكم VEX AIM One Stick مزودة بعصا تحكم على اليسار وأربعة أزرار على اليمين. عصا التحكم والأزرار الأربعة مُظللة.

المعلمة

وصف

callback

A previously defined function to run each time the specified button is pressed.

arg

اختياري. مجموعة تحتوي على الوسائط التي يتم تمريرها إلى دالة الاستدعاء. راجع استخدام الأحداث مع المعلمات لمزيد من المعلومات.

# Kick hard when the Up button is pressed
def kick_object():
    robot.kicker.kick(HARD)

controller.button_up.pressed(kick_object)

.released#

.released يقوم بتشغيل وظيفة عند تحرير الزر المحدد. بمجرد استخدامه، سيتم تشغيل الوظيفة تلقائيًا في كل مرة يتم فيها تحرير هذا الزر.

طريقة الاستخدام:
يمكن استخدام أحد عناصر الزر الخمسة المتاحة مع هذه الطريقة:

زر

يأمر

button_up

controller.button_up.released(callback, arg) — زر أعلى

button_down

controller.button_down.released(callback, arg) — زر الأسفل

button_left

controller.button_left.released(callback, arg) — زر اليسار

button_right

controller.button_right.released(callback, arg) — الزر اليمين

button_stick

controller.button_stick.released(callback, arg) — زر عصا التحكم

وحدة تحكم VEX AIM One Stick مزودة بعصا تحكم على اليسار وأربعة أزرار على اليمين. عصا التحكم والأزرار الأربعة مُظللة.

المعلمة

وصف

callback

A previously defined function to run each time the specified button is released.

arg

اختياري. مجموعة تحتوي على الوسائط التي يتم تمريرها إلى دالة الاستدعاء. راجع استخدام الأحداث مع المعلمات لمزيد من المعلومات.

# Clear the screen after the Up button is released
def clear_screen():
    robot.screen.clear_screen()

controller.button_up.released(clear_screen)

robot.screen.print("Press Up, then")
robot.screen.next_row()
robot.screen.print("Release Up!")

.changed#

.changed يُشغّل وظيفةً عند تغيّر موضع عصا التحكم على طول المحور المُحدّد. بمجرد استخدامه، سيتم تشغيل الوظيفة تلقائيًا في كل مرة يتغيّر فيها موضع عصا التحكم على طول ذلك المحور.

طريقة الاستخدام:
يمكن استخدام أحد كائنَي المحور المتاحين مع هذه الطريقة:

محور

يأمر

axis1

controller.axis1.changed(callback, arg) — المحور الرأسي

axis2

controller.axis2.changed(callback, arg) — المحور الأفقي

وحدة تحكم VEX AIM مزودة بعصا تحكم على اليسار وأربعة أزرار على اليمين. تم تمييز المحورين 1 و2 لعصا التحكم.

المعلمة

وصف

callback

A previously defined function to run each time the joystick’s position changes along the specified axis.

arg

اختياري. مجموعة تحتوي على الوسائط التي يتم تمريرها إلى دالة الاستدعاء. راجع استخدام الأحداث مع المعلمات لمزيد من المعلومات.

# Show an emoji when the joystick moves up or down
def move_joystick():
    robot.screen.show_emoji(CONFUSED)

controller.axis1.changed(move_joystick)