وحدة التحكم#
مقدمة#
يحتوي جهاز التحكم VEX EXP على أزرار وعصا تحكم مزدوجة. يمكن استخدام وظائف جهاز التحكم للتحقق من ضغطات الأزرار، وقراءة حركة عصا التحكم، وتفعيل أو تعطيل إجراءات جهاز التحكم المُهيأة، أو تشغيل وظائف عند وقوع أحداث معينة في جهاز التحكم.
إجراءات وحدة التحكم المُهيأة هي سلوكيات وحدة التحكم المُحددة في قائمة الأجهزة. استخدم الأمر remote_control_code_enabled لتمكين أو تعطيل هذه الإجراءات المُهيأة مؤقتًا أثناء تنفيذ المشروع.
تستخدم هذه الصفحة اسم وحدة التحكم controller كمثال. استبدله بالاسم الذي قمت بتكوينه حسب الحاجة.
فيما يلي قائمة بجميع الطرق المتاحة:
الإجراء — تشغيل أو إيقاف إجراءات وحدة التحكم المُهيأة.
remote_control_code_enabled— تمكين أو تعطيل إجراءات وحدة التحكم التي تم تكوينها في قائمة الأجهزة.
المُستقبِلات — قراءة حالات الأزرار ومواضع عصا التحكم.
الوظائف المستدعاة — تشغيل الوظائف عند تغيير مدخلات وحدة التحكم.
.pressed— يقوم بتشغيل وظيفة عند الضغط على زر محدد..released— يقوم بتشغيل وظيفة عند تحرير زر معين..changed— يقوم بتشغيل وظيفة عندما يتغير موضع عصا التحكم على طول محور محدد.
المنشئ — إنشاء كائن وحدة تحكم يدويًا.
Controller— إنشاء كائن Controller.
فعل#
remote_control_code_enabled#
المتغير remote_control_code_enabled هو متغير يُفعّل أو يُعطّل إجراءات وحدة التحكم المُكوّنة في قائمة الأجهزة. تكون إجراءات وحدة التحكم المُكوّنة مُفعّلة افتراضيًا.
Usage:
remote_control_code_enabled = state
قيمة |
وصف |
|---|---|
|
يُمكّن هذا الخيار الإجراءات المُكوّنة بواسطة وحدة التحكم. |
|
يعطل الإجراءات المُكوّنة بواسطة وحدة التحكم. |
# Drive forward or backward using the left joystick
remote_control_code_enabled = False
while True:
if controller.axis3.position() > 0:
drivetrain.drive(FORWARD)
elif controller.axis3.position() < 0:
drivetrain.drive(REVERSE)
# Press A to use controller configured actions again
elif controller.buttonA.pressing():
break
else:
drivetrain.stop()
wait(20, MSEC)
remote_control_code_enabled = True
المحصلون#
.pressing#
.pressing تُرجع ما إذا كان زر معين على وحدة التحكم مضغوطًا حاليًا. يجب استدعاء هذه الطريقة على كائن زر معين، مثل controller.buttonA.
True— يتم الضغط على الزر المحدد.False— الزر المحدد غير مضغوط.
طريقة الاستخدام:
يمكن استخدام أحد عناصر الزر المتاحة مع هذه الطريقة:
زر |
يأمر |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
حدود |
وصف |
|---|---|
لا تحتوي هذه الطريقة على أي معلمات. |
# Turn right while L1 is pressed
while True:
if controller.buttonL1.pressing():
drivetrain.turn(RIGHT)
else:
drivetrain.stop()
wait(20, MSEC)
.position#
.position تُرجع موضع محور عصا التحكم كرقم من -100 إلى 100.
يجب استدعاء هذه الطريقة على كائن محور محدد، مثل controller.axis1.
طريقة الاستخدام:
يمكن استخدام أحد كائنات المحور المتاحة مع هذه الطريقة:
محور |
يأمر |
|---|---|
|
|
|
|
|
|
|
|
حدود |
وصف |
|---|---|
لا تحتوي هذه الطريقة على أي معلمات. |
# Turn with the left joystick
remote_control_code_enabled = False
while True:
if controller.axis4.position() > 10:
drivetrain.turn(RIGHT)
elif controller.axis4.position() < -10:
drivetrain.turn(LEFT)
else:
drivetrain.stop()
wait(20, MSEC)
معاودة الاتصال#
.pressed#
.pressed يقوم بتشغيل وظيفة عند الضغط على الزر المحدد. بمجرد استخدامه، سيتم تشغيل الوظيفة تلقائيًا في كل مرة يتم فيها الضغط على هذا الزر.
طريقة الاستخدام:
يمكن استخدام أحد عناصر الزر المتاحة مع هذه الطريقة:
زر |
يأمر |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
المعلمة |
وصف |
|---|---|
|
A previously defined function to run each time the specified button is pressed. |
|
اختياري. مجموعة تحتوي على الوسائط التي يتم تمريرها إلى دالة الاستدعاء. راجع استخدام الأحداث مع المعلمات لمزيد من المعلومات. |
# Drive forward when R1 is pressed
def drive_forward():
drivetrain.drive_for(FORWARD, 200, MM)
controller.buttonR1.pressed(drive_forward)
.released#
.released يقوم بتشغيل وظيفة عند تحرير الزر المحدد. بمجرد استخدامه، سيتم تشغيل الوظيفة تلقائيًا في كل مرة يتم فيها تحرير هذا الزر.
طريقة الاستخدام:
يمكن استخدام أحد عناصر الزر المتاحة مع هذه الطريقة:
زر |
يأمر |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
المعلمة |
وصف |
|---|---|
|
A previously defined function to run each time the specified button is released. |
|
اختياري. مجموعة تحتوي على الوسائط التي يتم تمريرها إلى دالة الاستدعاء. راجع استخدام الأحداث مع المعلمات لمزيد من المعلومات. |
# Stop driving when R1 is released
def stop_driving():
drivetrain.stop()
controller.buttonR1.released(stop_driving)
.changed#
.changed يُشغّل وظيفةً عند تغيّر موضع عصا التحكم على طول المحور المُحدّد. بمجرد استخدامه، سيتم تشغيل الوظيفة تلقائيًا في كل مرة يتغيّر فيها موضع عصا التحكم على طول ذلك المحور.
طريقة الاستخدام:
يمكن استخدام أحد كائنات المحور المتاحة مع هذه الطريقة:
محور |
يأمر |
|---|---|
|
|
|
|
|
|
|
|
المعلمة |
وصف |
|---|---|
|
A previously defined function to run each time the joystick’s position changes along the specified axis. |
|
اختياري. مجموعة تحتوي على الوسائط التي يتم تمريرها إلى دالة الاستدعاء. راجع استخدام الأحداث مع المعلمات لمزيد من المعلومات. |
# Play a sound when the left joystick moves
def beep():
brain.play_sound(SoundType.TADA)
controller.axis3.changed(beep)
المُنشئون#
Controller#
يقوم المتحكم Controller متحكم خارج VEXcode.
Usage:
Controller()
حدود |
وصف |
|---|---|
لا يحتوي هذا المُنشئ على أي معلمات. |
# Create a Controller object
my_controller = Controller()