وحدة التحكم#
مقدمة#
يحتوي جهاز التحكم VEX AIM One Stick على أربعة أزرار وعصا تحكم. يمكن تحريك عصا التحكم على محورين، كما يمكن الضغط عليها كزر.
يمكن استخدام أساليب وحدة التحكم للتحقق من ضغطات الأزرار، وقراءة حركة عصا التحكم، والتحقق من حالة الاتصال والبطارية، أو تشغيل الوظائف عند حدوث أحداث وحدة التحكم.
فيما يلي قائمة بجميع الطرق:
أجهزة الاستقبال — قراءة حالة الزر، وعصا التحكم، والاتصال، والبطارية.
.pressing— تُرجع ما إذا كان يتم الضغط على زر معين..position— تُرجع موضع عصا التحكم على طول محور محدد.is_connected— تُرجع ما إذا كان المتحكم متصلاً.get_battery_level— يُرجع مستوى بطارية وحدة التحكم.
الوظائف المستدعاة — تشغيل الوظائف عند تغيير مدخلات وحدة التحكم.
المحصلون#
.pressing#
.pressing تُرجع ما إذا كان زر معين على وحدة التحكم مضغوطًا حاليًا. يجب استدعاء هذه الطريقة على كائن زر معين، مثل controller.button_up.
True— يتم الضغط على الزر المحدد.False— الزر المحدد غير مضغوط.
طريقة الاستخدام:
يمكن استخدام أحد عناصر الزر الخمسة المتاحة مع هذه الطريقة:
زر |
يأمر |
|---|---|
|
|
|
|
|
|
|
|
|
|
حدود |
وصف |
|---|---|
لا تحتوي هذه الطريقة على أي معلمات. |
# 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.
طريقة الاستخدام:
يمكن استخدام أحد كائنَي المحور المتاحين مع هذه الطريقة:
محور |
يأمر |
|---|---|
|
|
|
|
حدود |
وصف |
|---|---|
لا تحتوي هذه الطريقة على أي معلمات. |
# 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 يقوم بتشغيل وظيفة عند الضغط على الزر المحدد. بمجرد استخدامه، سيتم تشغيل الوظيفة تلقائيًا في كل مرة يتم فيها الضغط على هذا الزر.
طريقة الاستخدام:
يمكن استخدام أحد عناصر الزر الخمسة المتاحة مع هذه الطريقة:
زر |
يأمر |
|---|---|
|
|
|
|
|
|
|
|
|
|
المعلمة |
وصف |
|---|---|
|
A previously defined function to run each time the specified button is pressed. |
|
اختياري. مجموعة تحتوي على الوسائط التي يتم تمريرها إلى دالة الاستدعاء. راجع استخدام الأحداث مع المعلمات لمزيد من المعلومات. |
# Kick hard when the Up button is pressed
def kick_object():
robot.kicker.kick(HARD)
controller.button_up.pressed(kick_object)
.released#
.released يقوم بتشغيل وظيفة عند تحرير الزر المحدد. بمجرد استخدامه، سيتم تشغيل الوظيفة تلقائيًا في كل مرة يتم فيها تحرير هذا الزر.
طريقة الاستخدام:
يمكن استخدام أحد عناصر الزر الخمسة المتاحة مع هذه الطريقة:
زر |
يأمر |
|---|---|
|
|
|
|
|
|
|
|
|
|
المعلمة |
وصف |
|---|---|
|
A previously defined function to run each time the specified button is released. |
|
اختياري. مجموعة تحتوي على الوسائط التي يتم تمريرها إلى دالة الاستدعاء. راجع استخدام الأحداث مع المعلمات لمزيد من المعلومات. |
# 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 يُشغّل وظيفةً عند تغيّر موضع عصا التحكم على طول المحور المُحدّد. بمجرد استخدامه، سيتم تشغيل الوظيفة تلقائيًا في كل مرة يتغيّر فيها موضع عصا التحكم على طول ذلك المحور.
طريقة الاستخدام:
يمكن استخدام أحد كائنَي المحور المتاحين مع هذه الطريقة:
محور |
يأمر |
|---|---|
|
|
|
|
المعلمة |
وصف |
|---|---|
|
A previously defined function to run each time the joystick’s position changes along the specified axis. |
|
اختياري. مجموعة تحتوي على الوسائط التي يتم تمريرها إلى دالة الاستدعاء. راجع استخدام الأحداث مع المعلمات لمزيد من المعلومات. |
# Show an emoji when the joystick moves up or down
def move_joystick():
robot.screen.show_emoji(CONFUSED)
controller.axis1.changed(move_joystick)