لغة بايثون الخاصة بالروبوتات#
مقدمة#
يشتمل الروبوت البطل، سويش، على خيار محرك واحد، وخيار مجموعة محركات واحدة، والمستشعر البصري.
جميع طرق VEXcode VR القياسية متاحة للاستخدام في IQ 24-25 Rapid Relay Playground.
فيما يلي قائمة بجميع الطرق المتاحة الخاصة بالروبوت:
نظام الحركة – تحريك الروبوت وتدويره.
الإجراءات
drive— يحرك الروبوت للأمام أو للخلف إلى الأبد.drive_for— يحرك الروبوت للأمام أو للخلف لمسافة محددة.turn— يقوم بتدوير الروبوت إلى اليسار أو اليمين إلى الأبد.turn_for— يقوم بتدوير الروبوت إلى اليسار أو اليمين لعدد محدد من الدرجات.turn_to_heading— يقوم بتدوير الروبوت لمواجهة اتجاه محدد من -359 إلى 359 درجة.turn_to_rotation— يقوم بتدوير الروبوت إلى دوران محدد.stop— يوقف حركة الروبوت.
المُحَوِّرون
set_heading— يغير اتجاه الروبوت الحالي إلى اتجاه جديد.set_rotation— يغير دوران الروبوت الحالي إلى دوران جديد.set_timeout— يحدد مقدار الوقت الذي سيحاول فيه الروبوت إنهاء الحركة.set_drive_velocity— يخبر الروبوت بالسرعة التي يجب أن يقود بها.set_turn_velocity— يخبر الروبوت بمدى سرعة الدوران.
المُنجزون
الحركة - تحريك وتتبع محرك الروبوت ومجموعة المحركات.
الإجراءات
spin— يدور محرك أو مجموعة محركات للأمام أو للخلف إلى الأبد.spin_for— يدور محركًا أو مجموعة محركات لمسافة محددة.spin_to_position— يقوم بتدوير محرك أو مجموعة محركات إلى موضع محدد.stop— يوقف محركًا أو مجموعة محركات من الدوران.
المُحَوِّرون
set_position— يغير الموضع الحالي للمحرك أو مجموعة المحركات إلى قيمة جديدة.set_velocity— يخبر المحرك أو مجموعة المحركات بمدى سرعة الدوران.set_timeout— يحدد مقدار الوقت الذي سيحاول فيه المحرك أو مجموعة المحركات إنهاء الحركة.
المُنجزون
is_done— تُرجع ما إذا كان المحرك أو مجموعة المحركات قد انتهى من الحركة، كقيمة منطقية.is_spinning— تُرجع ما إذا كان المحرك أو مجموعة المحركات يدور، كقيمة منطقية.position— يعيد الموضع الحالي للمحرك أو مجموعة المحركات.velocity— تُرجع مدى سرعة دوران المحرك أو مجموعة المحركات.
وحدة التحكم – اطبع على وحدة التحكم وراقب القيم.
مطبعة
brain.screen.print— يعرض النص أو الأرقام أو قيم المتغيرات في وحدة التحكم.brain.screen.next_row— ينقل مؤشر وحدة التحكم إلى بداية الصف التالي.brain.screen.clear_screen— يمسح جميع الصفوف من وحدة التحكم.
شاشة
monitor_variable— يضيف متغيرًا واحدًا أو أكثر من المتغيرات المحددة مسبقًا إلى علامة التبويب Monitor.monitor_sensor— يضيف قيمة واحدة أو أكثر من قيم المستشعر إلى علامة التبويب Monitor.
الاستشعار - استخدم أجهزة الاستشعار المختلفة للروبوت.
بصري
is_near_object– تُرجع ما إذا كان المستشعر البصري يكتشف وجود جسم ضمن النطاق.color– يعيد اللون الذي تم اكتشافه بواسطة المستشعر البصري.brightness– تُرجع كمية الضوء المنعكس من الجسم.hue– تُرجع اللون الذي تم اكتشافه بواسطة المستشعر البصري.object_detected– يسجل دالة ليتم استدعاؤها عندما يكتشف المستشعر البصري وجود جسم.object_lost– يسجل دالة يتم استدعاؤها عندما يفقد المستشعر البصري كائنًا.
تستخدم الأمثلة الموجودة في هذه الصفحة موضع البداية الافتراضي في ساحة اللعب.
نظام نقل الحركة#
يتحكم نظام الحركة في كيفية قيادة الروبوت الواقع الافتراضي وانعطافه. يمكن لنظام الحركة التحرك للأمام أو للخلف، والانعطاف يمينًا أو يسارًا، والانعطاف باتجاهات محددة، وتتبع دورانه.
الإجراءات#
يقود#
يُحرّك الأمر drive الروبوت للأمام أو للخلف باستمرار. سيستمر الروبوت في الحركة حتى يُعطى أمرًا آخر، مثل الانعطاف أو التوقف.
Usage:
drivetrain.drive(direction)
حدود |
وصف |
|---|---|
|
اتجاه حركة الروبوت: |
def main():
# Drive forward then stop
drivetrain.drive(FORWARD)
wait(2, SECONDS)
drivetrain.stop()
# VR threads — Do not delete
vr_thread(main)
drive_for#
يُحرّك drive_for الروبوت للأمام أو للخلف لمسافة محددة. سينتظر البرنامج حتى ينتهي الروبوت من الحركة قبل تنفيذ السطر التالي من التعليمات البرمجية.
Usage:
drivetrain.drive_for(direction, distance, units, wait)
حدود |
وصف |
|---|---|
|
اتجاه حركة الروبوت: |
|
المسافة التي يقطعها الروبوت. يمكن أن تكون هذه القيمة |
|
وحدة قياس المسافة: |
|
اختياري. |
def main():
# Drive forward and backward
drivetrain.drive_for(FORWARD, 200, MM)
drivetrain.drive_for(REVERSE, 200, MM)
# VR threads — Do not delete
vr_thread(main)
دور#
يؤدي الضغط على زر turn إلى تدوير الروبوت يمينًا أو يسارًا بشكل دائم. سيستمر الروبوت في الدوران حتى يتم إعطاؤه إجراءً آخر، مثل القيادة أو التوقف.
Usage:
drivetrain.turn(direction)
حدود |
وصف |
|---|---|
|
اتجاه دوران الروبوت: |
def main():
# Turn right and left, then stop
drivetrain.turn(RIGHT)
wait(2, SECONDS)
drivetrain.turn(LEFT)
wait(2, SECONDS)
drivetrain.stop()
# VR threads — Do not delete
vr_thread(main)
turn_for#
يُدير turn_for الروبوت يسارًا أو يمينًا بزاوية محددة. وتُحسب زاوية الدوران بالنسبة إلى الموضع الحالي للروبوت. سينتظر البرنامج حتى ينتهي الروبوت من الدوران قبل تنفيذ السطر التالي من التعليمات البرمجية.
Usage:
drivetrain.turn_for(direction, angle, units, wait)
حدود |
وصف |
|---|---|
|
اتجاه دوران الروبوت: |
|
عدد الدرجات التي يدور بها الروبوت. يمكن أن يكون هذا العدد |
|
وحدة الدوران: |
|
اختياري. |
def main():
# Turn the robot right and left
drivetrain.turn_for(RIGHT, 90, DEGREES)
wait(1, SECONDS)
drivetrain.turn_for(LEFT, 90, DEGREES)
# VR threads — Do not delete
vr_thread(main)
انتقل إلى العنوان#
الاتجاه هو المسار الذي يواجهه الروبوت، ويُقاس بالدرجات. يُشير الأمر turn_to_heading إلى توجيه الروبوت نحو اتجاه محدد من -359 إلى 359 درجة. سيسلك الروبوت أقصر مسار للوصول إلى الاتجاه المستهدف.
اتجاه بدء الروبوت هو 0 درجة.
سينتظر المشروع حتى ينتهي الروبوت من الدوران قبل تشغيل سطر التعليمات البرمجية التالي.
Usage:
drivetrain.turn_to_heading(angle, units, wait)
حدود |
وصف |
|---|---|
|
الاتجاه الذي يجب أن يواجهه الروبوت، بالدرجات. يمكن أن يكون هذا الاتجاه عددًا |
|
وحدة الدوران: |
|
اختياري. |
def main():
# Turn to face the cardinal directions
drivetrain.turn_to_heading(90, DEGREES)
wait(1, SECONDS)
drivetrain.turn_to_heading(180, DEGREES)
wait(1, SECONDS)
drivetrain.turn_to_heading(270, DEGREES)
wait(1, SECONDS)
drivetrain.turn_to_heading(0, DEGREES)
# VR threads — Do not delete
vr_thread(main)
قم بالتدوير#
turn_to_rotation يقوم بتدوير الروبوت إلى دوران محدد.
الدوران هو مقدار دوران الروبوت، ويُقاس بالدرجات. في بداية المشروع، تُضبط قيمة الدوران على صفر درجة. كما يمكن ضبط الدوران باستخدام الدالة set_rotation.
قيم الدوران مطلقة. وهذا يعني أن اتجاه الدوران يعتمد على دوران الروبوت الحالي. الدوران إلى اليمين يزيد من الدوران، والدوران إلى اليسار يقلل منه.
على سبيل المثال، إذا بدأ الروبوت من زاوية صفر درجة، ثم قمت بتدويره بزاوية 720 درجة، فسيدور إلى اليمين مرتين. وإذا قمت بعد ذلك بتدويره بزاوية 360 درجة، فسيدور إلى اليسار مرة واحدة، لأن 360 درجة أقل من 720 درجة.
سينتظر المشروع حتى ينتهي الروبوت من الدوران قبل تشغيل سطر التعليمات البرمجية التالي.
Usage:
drivetrain.turn_to_rotation(angle, units, wait)
حدود |
وصف |
|---|---|
|
قيمة الدوران، بالدرجات، التي سيدور إليها الروبوت. يمكن أن تكون هذه القيمة عددًا |
|
وحدة الدوران: |
|
اختياري. |
def main():
# Turn left, then spin in a circle
# clockwise and face right
drivetrain.turn_to_rotation(-90, DEGREES)
wait(1, SECONDS)
drivetrain.turn_to_rotation(450, DEGREES)
# VR threads — Do not delete
vr_thread(main)
قف#
stop يوقف حركة الروبوت.
Usage:
drivetrain.stop()
حدود |
وصف |
|---|---|
لا تحتوي هذه الطريقة على أي معلمات. |
def main():
# Drive forward then stop
drivetrain.drive(FORWARD)
wait(2, SECONDS)
drivetrain.stop()
# VR threads — Do not delete
vr_thread(main)
المتحولون#
تعيين_العنوان#
الاتجاه هو المسار الذي يواجهه الروبوت، ويُقاس بالدرجات. يُغيّر set_heading الاتجاه الحالي للروبوت إلى قيمة اتجاه جديدة.
على سبيل المثال، إذا استدار الروبوت ليواجه اليمين، فإن ضبط اتجاهه على صفر درجة يجعل وضعية مواجهة اليمين هي الصفر الجديدة. بعد ذلك، يمكن للروبوت أن يستدير إلى أوضاع أخرى بناءً على هذا الاتجاه الجديد.
Usage:
drivetrain.set_heading(heading, units)
حدود |
وصف |
|---|---|
|
قيمة الاتجاه، بالدرجات، التي سيتم ضبطها للروبوت. يمكن أن تكون هذه القيمة عددًا |
|
وحدة العنوان: |
def main():
# Face the new 0 degrees
drivetrain.set_heading(90, DEGREES)
drivetrain.turn_to_heading(0, DEGREES)
# VR threads — Do not delete
vr_thread(main)
ضبط الدوران#
الدوران هو مقدار دوران الروبوت، ويُقاس بالدرجات. في بداية المشروع، تُضبط قيمة الدوران على صفر درجة. يُغيّر set_rotation قيمة الدوران الحالية للروبوت إلى قيمة جديدة.
على سبيل المثال، إذا أكمل الروبوت دورتين كاملتين إلى اليمين، ستكون قيمة دورانه 720 درجة. ضبط قيمة الدوران على 0 درجة سيعيد ضبطها من 720 إلى 0 درجة. بعد ذلك، يمكن للروبوت الدوران وفقًا لهذه القيمة الجديدة.
Usage:
drivetrain.set_rotation(rotation, units)
حدود |
وصف |
|---|---|
|
قيمة الدوران، بالدرجات، التي سيتم ضبطها للروبوت. يمكن أن تكون هذه القيمة عددًا |
|
وحدة الدوران: |
def main():
# Spin counterclockwise two times
drivetrain.set_rotation(720, DEGREES)
drivetrain.turn_to_rotation(0, DEGREES)
# VR threads — Do not delete
vr_thread(main)
set_timeout#
يُحدد set_timeout المدة الزمنية التي سيحاول فيها الروبوت إنهاء حركة معينة. إذا لم يتمكن الروبوت من إكمال الحركة خلال هذه المدة، فسيتوقف عن المحاولة وينتقل إلى السطر التالي من التعليمات البرمجية. هذا يمنع الروبوت من التوقف في حركة معينة.
Usage:
drivetrain.set_timeout(value, units)
حدود |
وصف |
|---|---|
|
مقدار الوقت الذي يمكن للروبوت أن يحاول فيه إنهاء حركة ما. يمكن أن يكون هذا عددًا صحيحًا موجبًا |
|
وحدة الزمن: |
def main():
# Turn right after driving forward
drivetrain.set_timeout(1, SECONDS)
drivetrain.drive_for(FORWARD, 25, INCHES)
drivetrain.turn_for(RIGHT, 90)
# VR threads — Do not delete
vr_thread(main)
ضبط سرعة القيادة#
يُحدد set_drive_velocity سرعة قيادة الروبوت. كلما زادت النسبة المئوية، زادت سرعة الروبوت، وكلما انخفضت، قلت سرعته.
يبدأ كل مشروع بالروبوت وهو يقود بسرعة 50% بشكل افتراضي.
ملاحظة: السرعة العالية تجعل الروبوت يتحرك بسرعة أكبر، لكنها قد تكون أقل دقة. السرعة المنخفضة تجعل الروبوت يتحرك ببطء، لكنها قد تكون أكثر دقة.
Usage:
drivetrain.set_drive_velocity(velocity, units)
حدود |
وصف |
|---|---|
|
السرعة التي يجب القيادة بها تتراوح من 0% إلى 100%. يمكن أن تكون هذه القيمة عددًا |
|
وحدة السرعة: |
def main():
# Drive forward at different velocities
# Default velocity
drivetrain.drive_for(FORWARD, 150, MM)
wait(1, SECONDS)
# Drive slower
drivetrain.set_drive_velocity(20, PERCENT)
drivetrain.drive_for(FORWARD, 150, MM)
wait(1, SECONDS)
# Drive faster
drivetrain.set_drive_velocity(100, PERCENT)
drivetrain.drive_for(FORWARD, 150, MM)
# VR threads — Do not delete
vr_thread(main)
ضبط سرعة الدوران#
يُحدد set_turn_velocity سرعة دوران الروبوت. كلما زادت النسبة المئوية، زادت سرعة الدوران، وكلما انخفضت، قلت السرعة.
يبدأ كل مشروع بالروبوت وهو يدور بسرعة 50% بشكل افتراضي.
ملاحظة: السرعة العالية تجعل الروبوت يدور بشكل أسرع، لكنها قد تكون أقل دقة. السرعة المنخفضة تجعل الروبوت يدور بشكل أبطأ، لكنها قد تكون أكثر دقة.
Usage:
drivetrain.set_turn_velocity(velocity, units)
حدود |
وصف |
|---|---|
|
سرعة الدوران من 0% إلى 100%. يمكن أن تكون هذه القيمة عددًا |
|
وحدة السرعة: |
def main():
# Turn at different velocities
# Default velocity
drivetrain.turn_for(RIGHT, 120, DEGREES)
wait(1, SECONDS)
# Turn slower
drivetrain.set_turn_velocity(20, PERCENT)
drivetrain.turn_for(RIGHT, 120, DEGREES)
wait(1, SECONDS)
# Turn faster
drivetrain.set_turn_velocity(100, PERCENT)
drivetrain.turn_for(RIGHT, 120, DEGREES)
# VR threads — Do not delete
vr_thread(main)
المحصلون#
عنوان#
الاتجاه هو المسار الذي يواجهه الروبوت، ويُقاس بالدرجات. يُعيد الأمر heading اتجاه الروبوت الحالي من 0 إلى 359.99 درجة.
اتجاه بدء الروبوت هو 0 درجة.
Usage:
drivetrain.heading(units)
حدود |
وصف |
|---|---|
|
وحدة العنوان: |
def main():
# Display the heading after turning
drivetrain.turn_for(RIGHT, 450, DEGREES)
brain.screen.print("Heading: ")
brain.screen.print(drivetrain.heading(DEGREES))
# VR threads — Do not delete
vr_thread(main)
تناوب#
الدوران هو مقدار دوران الروبوت، ويُقاس بالدرجات. في بداية المشروع، تُضبط قيمة الدوران على صفر درجة. يُشير rotation إلى الدوران الحالي للروبوت.
يؤدي الانعطاف يمينًا إلى زيادة الدوران، بينما يؤدي الانعطاف يسارًا إلى تقليله. على سبيل المثال، يؤدي القيام بدورتين كاملتين إلى اليمين إلى دوران مقداره 720 درجة.
Usage:
drivetrain.rotation(units)
حدود |
وصف |
|---|---|
|
وحدة الدوران: |
def main():
# Display the rotation after turning
drivetrain.turn_for(RIGHT, 450, DEGREES)
brain.screen.print("Rotation: ")
brain.screen.print(drivetrain.rotation(DEGREES))
# VR threads — Do not delete
vr_thread(main)
تم الانتهاء#
تُشير القيمة المنطقية is_done إلى ما إذا كان الروبوت قد انتهى من الحركة. ويمكن استخدام هذه القيمة للتحكم في توقيت سلوكيات أخرى بناءً على حركة الروبوت.
True— انتهى الروبوت من الحركة.False— الروبوت لا يزال يتحرك.
تعمل هذه الطريقة جنبًا إلى جنب مع طرق Drivetrain التالية التي تحتوي على المعلمة wait : drive_for, turn_for, turn_to_heading, و turn_to_rotation.
Usage:
drivetrain.is_done()
حدود |
وصف |
|---|---|
لا تحتوي هذه الطريقة على أي معلمات. |
is_moving#
تُشير القيمة المنطقية is_moving . ويمكن استخدام هذه القيمة للتحكم في توقيت سلوكيات أخرى بناءً على حركة الروبوت.
True— الروبوت يتحرك.False— الروبوت لا يتحرك.
Usage:
drivetrain.is_moving()
حدود |
وصف |
|---|---|
لا تحتوي هذه الطريقة على أي معلمات. |
سرعة#
velocity تُرجع مدى سرعة قيادة الروبوت، كنسبة مئوية من -100% إلى 100%.
Usage:
drivetrain.velocity(units)
حدود |
وصف |
|---|---|
|
وحدة السرعة: |
مثال
def main():
# Display the velocity after driving
drivetrain.drive_for(FORWARD, 150, MM)
brain.screen.print("Velocity: ")
brain.screen.print(drivetrain.velocity(PERCENT))
حركة#
تستخدم لعبة سويش محرك السحب لجمع الكرات ونقلها إلى المنجنيق. تقوم مجموعة محركات المنجنيق بخفض ذراع المنجنيق وإطلاقه لإطلاق الكرات.
لكل محرك ومجموعة محركات سلوك اتجاهي خاص بها. تشرح أوصاف الاتجاهات كيفية تحريك كل اتجاه لهذا المحرك أو مجموعة المحركات على منصة Swish.
الإجراءات#
يلف#
spin المحرك أو مجموعة المحركات للأمام أو للخلف باستمرار. سيستمر المحرك أو مجموعة المحركات في الدوران حتى يتم إعطاؤه إجراءً آخر، مثل الدوران في اتجاه مختلف أو التوقف.
طريقة الاستخدام:
يمكن استخدام أحد كائنين متاحين للمحرك أو مجموعة المحركات مع هذه الطريقة، كما هو موضح أدناه:
محرك |
يأمر |
|---|---|
|
|
|
|
حدود |
وصف |
|---|---|
|
اتجاه دوران المحرك أو مجموعة المحركات:
|
def main():
# Spin the Intake Motor to bring a Ball onto the Catapult
intake_motor.spin(FORWARD)
wait(2, SECONDS)
intake_motor.stop()
# VR threads — Do not delete
vr_thread(main)
spin_for#
يؤدي الأمر spin_for spin_for الدوران قبل تنفيذ السطر التالي من التعليمات البرمجية.
طريقة الاستخدام:
يمكن استخدام أحد كائنين متاحين للمحرك أو مجموعة المحركات مع هذه الطريقة، كما هو موضح أدناه:
محرك |
يأمر |
|---|---|
|
|
|
|
حدود |
وصف |
|---|---|
|
اتجاه دوران المحرك أو مجموعة المحركات:
|
|
المسافة التي يدورها المحرك أو مجموعة المحركات. |
|
اختياري. وحدة المسافة: |
|
اختياري.
|
def main():
# Release the preloaded Ball
catapult_group.spin_for(REVERSE, 5, DEGREES)
# Lower the Catapult to prepare to load another Ball
catapult_group.spin_for(FORWARD, 1350, DEGREES)
# VR threads — Do not delete
vr_thread(main)
spin_to_position#
spin_to_position يقوم بتدوير محرك أو مجموعة محركات إلى موضع محدد.
A motor or motor group’s position is how far it has spun, measured in DEGREES or TURNS. One turn is equal to 360 degrees. At the beginning of a project, the motor or motor group position is set to 0 degrees. The motor or motor group position can also be set using the set_position method.
قيم الموضع مطلقة. وهذا يعني أن اتجاه الدوران يعتمد على الموضع الحالي للمحرك أو مجموعة المحركات.
على سبيل المثال، إذا بدأ المحرك أو مجموعة المحركات من الصفر درجة ثم دار إلى موضع 720 درجة، فسيدور دورتين للأمام. وإذا دار بعد ذلك إلى موضع 360 درجة، فسيدور دورة واحدة للخلف، لأن 360 أقل من 720.
طريقة الاستخدام:
يمكن استخدام أحد كائنين متاحين للمحرك أو مجموعة المحركات مع هذه الطريقة، كما هو موضح أدناه:
محرك |
يأمر |
|---|---|
|
|
|
|
حدود |
وصف |
|---|---|
|
قيمة الموضع الذي سيدور إليه المحرك أو مجموعة المحركات. |
|
اختياري. وحدة تحديد الموضع: |
|
اختياري.
|
def main():
# Release the preloaded Ball
catapult_group.spin_to_position(-90, DEGREES)
# Lower the Catapult to prepare to load another Ball
catapult_group.spin_to_position(1260, DEGREES)
# VR threads — Do not delete
vr_thread(main)
أوقف المحرك#
stop يوقف دوران المحرك أو مجموعة المحركات.
طريقة الاستخدام:
يمكن استخدام أحد كائنين متاحين للمحرك أو مجموعة المحركات مع هذه الطريقة، كما هو موضح أدناه:
محرك |
يأمر |
|---|---|
|
|
|
|
حدود |
وصف |
|---|---|
لا تحتوي هذه الطريقة على أي معلمات. |
def main():
# Spin the Intake Motor to bring a Ball onto the Catapult
intake_motor.spin(FORWARD)
wait(2, SECONDS)
intake_motor.stop()
# VR threads — Do not delete
vr_thread(main)
المتحولون#
تحديد_الموضع#
موضع المحرك أو مجموعة المحركات هو مقدار دورانه، ويُقاس بـ DEGREES أو TURNSالدورة الواحدة تساوي 360 درجة. يُغيّر set_position موضع المحرك أو مجموعة المحركات الحالي إلى قيمة جديدة.
على سبيل المثال، إذا دار محرك أو مجموعة محركات بزاوية 180 درجة، فإن ضبط الموضع على 0 درجة سيعيد ضبط هذا الموضع من 180 إلى 0 درجة. بعد ذلك، يمكن للمحرك أو مجموعة المحركات الدوران إلى مواضع بناءً على هذه القيمة الجديدة.
طريقة الاستخدام:
يمكن استخدام أحد كائنين متاحين للمحرك أو مجموعة المحركات مع هذه الطريقة، كما هو موضح أدناه:
محرك |
يأمر |
|---|---|
|
|
|
|
حدود |
وصف |
|---|---|
|
قيمة الموضع المراد ضبطها للمحرك أو مجموعة المحركات. |
|
اختياري. وحدة تحديد الموضع: |
def main():
# Lower the Catapult to prepare to load another Ball
catapult_group.spin_to_position(1260, DEGREES)
# Set the new Catapult position to be 0 degrees
catapult_group.set_position(0, DEGREES)
# VR threads — Do not delete
vr_thread(main)
ضبط السرعة#
يُحدد set_velocity سرعة دوران المحرك أو مجموعة المحركات. كلما زادت النسبة المئوية، زادت سرعة دوران المحرك أو مجموعة المحركات، وكلما انخفضت النسبة المئوية، قلت سرعة دوران المحرك أو مجموعة المحركات.
يبدأ كل مشروع بدوران كل محرك أو مجموعة محركات بسرعة 50% بشكل افتراضي.
ملاحظة: السرعة العالية تجعل المحرك أو مجموعة المحركات تدور بسرعة أكبر، ولكنها قد تكون أقل دقة. السرعة المنخفضة تجعل المحرك أو مجموعة المحركات تدور ببطء، ولكنها قد تكون أكثر دقة.
طريقة الاستخدام:
يمكن استخدام أحد كائنين متاحين للمحرك أو مجموعة المحركات مع هذه الطريقة، كما هو موضح أدناه:
محرك |
يأمر |
|---|---|
|
|
|
|
حدود |
وصف |
|---|---|
|
سرعة الدوران من -100% إلى 100%. يمكن أن تكون هذه القيمة عددًا |
|
وحدة السرعة: |
def main():
# Start spinning the Intake Motor to prepare for picking up a Ball
intake_motor.set_velocity(100, PERCENT)
intake_motor.spin(FORWARD)
# VR threads — Do not delete
vr_thread(main)
set_timeout#
يُحدد set_timeout المدة الزمنية التي سيحاول فيها المحرك أو مجموعة المحركات إكمال الحركة. إذا لم يتمكن المحرك أو مجموعة المحركات من إكمال الحركة خلال هذه المدة، فسيتوقف عن المحاولة وينتقل إلى السطر التالي من التعليمات البرمجية. هذا يمنع المحرك أو مجموعة المحركات من التوقف أثناء الحركة.
طريقة الاستخدام:
يمكن استخدام أحد كائنين متاحين للمحرك أو مجموعة المحركات مع هذه الطريقة، كما هو موضح أدناه:
محرك |
يأمر |
|---|---|
|
|
|
|
حدود |
وصف |
|---|---|
|
مقدار الوقت الذي يمكن للمحرك أو مجموعة المحركات فيه محاولة إنهاء الحركة. يمكن أن يكون هذا عددًا صحيحًا موجبًا |
|
وحدة الزمن: |
def main():
# Limit how long the Catapult waits to reach its target
catapult_group.set_timeout(2, SECONDS)
catapult_group.spin_for(FORWARD, 2160, DEGREES)
# VR threads — Do not delete
vr_thread(main)
المحصلون#
تم الانتهاء#
تُشير القيمة المنطقية is_done للتحكم في توقيت العمليات الأخرى بناءً على حركة المحرك أو مجموعة المحركات.
True— انتهى المحرك أو مجموعة المحركات من الحركة.False— لا يزال المحرك أو مجموعة المحركات يتحرك.
تعمل هذه الطريقة جنبًا إلى جنب مع طرق الحركة التالية التي تحتوي على المعلمة wait : spin_for و spin_to_position.
طريقة الاستخدام:
يمكن استخدام أحد كائنين متاحين للمحرك أو مجموعة المحركات مع هذه الطريقة، كما هو موضح أدناه:
محرك |
يأمر |
|---|---|
|
|
|
|
حدود |
وصف |
|---|---|
لا تحتوي هذه الطريقة على أي معلمات. |
is_spinning#
تُشير القيمة المنطقية is_spinning . ويمكن استخدام هذه القيمة للتحكم في توقيت سلوكيات أخرى بناءً على حركة المحرك أو مجموعة المحركات.
True— المحرك أو مجموعة المحركات تدور.False— المحرك أو مجموعة المحركات لا تدور.
تعمل هذه الطريقة جنبًا إلى جنب مع طرق الحركة التالية التي تحتوي على المعلمة wait : spin_for و spin_to_position.
طريقة الاستخدام:
يمكن استخدام أحد كائنين متاحين للمحرك أو مجموعة المحركات مع هذه الطريقة، كما هو موضح أدناه:
محرك |
يأمر |
|---|---|
|
|
|
|
حدود |
وصف |
|---|---|
لا تحتوي هذه الطريقة على أي معلمات. |
موضع#
A motor or motor group’s position is how far it has spun, measured in DEGREES or TURNS. One turn is equal to 360 degrees. position returns the motor or motor group’s current position.
في بداية المشروع، يتم ضبط موضع المحرك أو مجموعة المحركات على صفر درجة. إذا دار المحرك أو مجموعة المحركات دورة كاملة للأمام، فسيكون الموضع 360 درجة أو دورة واحدة. أما إذا دار المحرك أو مجموعة المحركات في الاتجاه المعاكس، فسيكون الموضع سالبًا.
طريقة الاستخدام:
يمكن استخدام أحد كائنين متاحين للمحرك أو مجموعة المحركات مع هذه الطريقة، كما هو موضح أدناه:
محرك |
يأمر |
|---|---|
|
|
|
|
حدود |
وصف |
|---|---|
|
الوحدة لإعادة وضع المحرك أو مجموعة المحركات في: |
def main():
# Lower the Catapult to prepare to load another Ball
while not catapult_group.position(DEGREES) == 1260:
catapult_group.spin(FORWARD)
# VR threads — Do not delete
vr_thread(main)
سرعة#
السرعة velocity تُحددان مدى سرعة دوران المحرك أو مجموعة المحركات.
تشير القيمة الموجبة إلى أن المحرك أو مجموعة المحركات تدور للأمام. وتشير القيمة السالبة إلى أن المحرك أو مجموعة المحركات تدور للخلف.
طريقة الاستخدام:
يمكن استخدام أحد كائنين متاحين للمحرك أو مجموعة المحركات مع هذه الطريقة، كما هو موضح أدناه:
محرك |
يأمر |
|---|---|
|
|
|
|
حدود |
وصف |
|---|---|
|
وحدة السرعة للعودة: |
def main():
# Print the current Catapult velocity
brain.screen.print(catapult_group.velocity(PERCENT))
# VR threads — Do not delete
vr_thread(main)
وحدة التحكم#
تعرض وحدة التحكم النصوص والأرقام وقيم المتغيرات أثناء تشغيل المشروع. كما يمكن لوظائف وحدة التحكم نقل المؤشر إلى صف جديد، ومسح وحدة التحكم، وإضافة متغيرات أو قيم مستشعرات إلى علامة تبويب المراقبة.
مطبعة#
طباعة على الشاشة#
يعرض brain.screen.print brain.screen.print` النص أو الأرقام أو قيم المتغيرات في وحدة التحكم باستخدام موضع المؤشر الحالي. وهو يعمل تمامًا مثل print في صفحة واجهة برمجة تطبيقات وحدة التحكم.
استخدم brain.screen.next_row عندما تريد أن تبدأ القيمة المطبوعة التالية في صف جديد.
Usage:
brain.screen.print(value)
حدود |
وصف |
|---|---|
|
النص أو الرقم أو قيمة المتغير المراد عرضها في وحدة التحكم. |
def main():
# Display a message in the Console
brain.screen.print("Hello, robot!")
# VR threads — Do not delete
vr_thread(main)

brain.screen.next_row#
يؤدي الأمر brain.screen.next_row إلى نقل المؤشر إلى العمود 1 في الصف التالي في وحدة التحكم. ستظهر القيمة التالية المطبوعة في ذلك الصف.
Usage:
brain.screen.next_row()
حدود |
وصف |
|---|---|
لا تحتوي هذه الطريقة على أي معلمات. |
def main():
# Print on two rows
brain.screen.print("Row 1")
brain.screen.next_row()
brain.screen.print("Row 2")
# VR threads — Do not delete
vr_thread(main)

brain.screen.clear_screen#
brain.screen.clear_screen يمسح جميع الصفوف من وحدة التحكم ويعيد المؤشر إلى الصف 1.
Usage:
brain.screen.clear_screen()
حدود |
وصف |
|---|---|
لا تحتوي هذه الطريقة على أي معلمات. |
def main():
# Display text, then clear it after two seconds
brain.screen.print("This will disappear...")
wait(2, SECONDS)
brain.screen.clear_screen()
# VR threads — Do not delete
vr_thread(main)
شاشة#
متغير المراقبة#
يُضيف الأمر monitor_variable متغيرًا واحدًا أو أكثر من المتغيرات المُعرّفة مسبقًا إلى علامة التبويب “المراقبة” في VEXcode. يتيح لك هذا مراقبة تغير قيمة المتغير أثناء تشغيل المشروع.
يجب أن تكون المتغيرات monitor_variable نصية.
Usage:
monitor_variable(“variable”)
monitor_variable(“variable1”, “variable2”)
حدود |
وصف |
|---|---|
|
اسم متغير عام مُعرَّف مسبقًا للمراقبة، يُعطى كسلسلة نصية. لمراقبة أكثر من متغير، افصل بين أسماء المتغيرات بفاصلة. |
def main():
# Monitor the amount of loops
global loops
monitor_variable("loops")
# Drive in a square 3 times
for loops in range(12):
drivetrain.turn_for(RIGHT, 90, DEGREES)
drivetrain.drive_for(FORWARD, 150, MM)
# VR threads — Do not delete
vr_thread(main)
مستشعر_المراقبة#
يُضيف الأمر monitor_sensor قيمة مستشعر واحد أو أكثر إلى علامة التبويب “المراقبة” في VEXcode. يتيح لك هذا مراقبة تغير قيم المستشعر أثناء تشغيل المشروع.
قم بتوفير قيمة كل مستشعر كسلسلة نصية.
Usage:
monitor_sensor(“sensor”)
monitor_sensor(“sensor1”, “sensor2”)
حدود |
وصف |
|---|---|
|
The sensor value to monitor, given as a string. To monitor more than one sensor value, separate each sensor value with a comma. Supported sensor identifiers include:
|
def main():
# Monitor the robot's heading
monitor_sensor("drivetrain.heading")
drivetrain.turn_for(RIGHT, 450, DEGREES)
# VR threads — Do not delete
vr_thread(main)
الاستشعار#
بصري#
كائن قريب#
is_near_object تُرجع قيمة منطقية تشير إلى ما إذا كان المستشعر البصري يكتشف وجود جسم ضمن النطاق أم لا.
True– يكتشف المستشعر البصري وجود جسم.False– لا يكتشف المستشعر البصري أي جسم.
Usage:
intake_optical.is_near_object()
حدود |
وصف |
|---|---|
لا تحتوي هذه الطريقة على أي معلمات. |
def main():
# Launch a loaded Ball once the Intake Optical Sensor detects a Ball
if intake_optical.is_near_object():
catapult_group.spin_for(REVERSE, 5, DEGREES)
# VR threads — Do not delete
vr_thread(main)
لون#
color returns an instance of a Color class, based on the detected hue value. These can be compared to predefined Color objects to create conditional statements.
الألوان الممكنة هي:
NONERED- قيمة لونية بين 340° - 20°GREEN- قيمة لونية بين 80° - 140°BLUE- قيمة لونية بين 200° - 240°YELLOW- قيمة لونية بين 40° - 60°ORANGE- قيمة لونية بين 20° - 40°PURPLE- قيمة لونية بين 240° - 280°CYAN- قيمة لونية بين 140° - 200°
ملاحظة: يبحث المستشعر البصري عن نطاقات ألوان تتطابق مع اللون المحدد. لاكتشاف نطاقات ألوان محددة، انظر hue.
Usage:
intake_optical.color()
حدود |
وصف |
|---|---|
لا تحتوي هذه الطريقة على أي معلمات. |
def main():
# Launch a loaded Ball once yellow is detected in the Intake
if intake_optical.color() == YELLOW:
catapult_group.spin_for(REVERSE, 5, DEGREES)
# VR threads — Do not delete
vr_thread(main)
سطوع#
brightness يعيد كمية الضوء المنعكس من الجسم كعدد عشري (float) يمثل نسبة مئوية.
نسبة أعلى تعني انعكاس المزيد من الضوء إلى المستشعر البصري. نسبة أقل تعني انعكاس كمية أقل من الضوء.
Usage:
intake_optical.brightness()
حدود |
وصف |
|---|---|
لا تحتوي هذه الطريقة على أي معلمات. |
def main():
# Launch a loaded Ball once the Intake Optical Sensor sees a Ball
if intake_optical.brightness() > 0:
catapult_group.spin_for(REVERSE, 5, DEGREES)
# VR threads — Do not delete
vr_thread(main)
لون#
hue تُرجع قيمة اللون المكتشف كعدد عشري (float) من 0 إلى 359.
اللون هو طريقة لوصف اللون باستخدام الأرقام الموجودة على عجلة الألوان.

Usage:
intake_optical.hue()
حدود |
وصف |
|---|---|
لا تحتوي هذه الطريقة على أي معلمات. |
def main():
# Launch a loaded Ball once the Intake Optical Sensor reports a hue value
if intake_optical.hue() > 100:
catapult_group.spin_for(REVERSE, 5, DEGREES)
# VR threads — Do not delete
vr_thread(main)
تم اكتشاف الكائن#
object_detected يسجل دالة ليتم استدعاؤها كلما اكتشف المستشعر البصري جسمًا جديدًا.
Usage:
intake_optical.object_detected(callback, arg)
حدود |
وصف |
|---|---|
|
A previously defined function that executes when the Optical Sensor detects a new object. |
|
Optional. A tuple containing arguments to pass to the callback function. See Using Functions with Parameters for more information. |
def launch_ball():
catapult_group.spin_for(REVERSE, 5, DEGREES)
def main():
# Launch the Ball when the Intake Optical Sensor detects an object
intake_optical.object_detected(launch_ball)
# VR threads — Do not delete
vr_thread(main)
الكائن_المفقود#
object_lost يسجل دالة يتم استدعاؤها كلما فقد المستشعر البصري جسمًا تم اكتشافه.
Usage:
intake_optical.object_lost(callback, arg)
حدود |
وصف |
|---|---|
|
A previously defined function that executes when the Optical Sensor loses a detected object. |
|
Optional. A tuple containing arguments to pass to the callback function. See Using Functions with Parameters for more information. |
def lower_catapult():
catapult_group.spin_to_position(1260, DEGREES)
def main():
# Lower the Catapult when the Intake Optical Sensor no longer detects an object
intake_optical.object_lost(lower_catapult)
# VR threads — Do not delete
vr_thread(main)