Skip to main content

الدرس 2: القيادة إلى الرقم '5'

في هذا الدرس، سيقود روبوت الواقع الافتراضي إلى الرقم "5" ويعود إلى الرقم "1" في ملعب خريطة شبكة الأرقام!

صورة من أعلى إلى أسفل لملعب خريطة شبكة الأرقام. يمكن رؤية روبوت الواقع الافتراضي في الزاوية اليسرى السفلية على الرقم 1. يمكن رؤية وسيلة شرح في منتصف الصف السفلي في الرقم 5.

لاحظ أن روبوت الواقع الافتراضي سيسافر على طول المحور X مع زيادة قيم X للانتقال إلى الرقم "5" في ملعب خريطة شبكة الأرقام.

ملعب خريطة شبكة الأرقام مع المحور x المغطى عبر مركز الملعب. يتم تمييز مركز كل مربع بقيمة المحور X، بدءًا من -900 على الجانب الأيسر ويزيد بمقدار 200 لكل مربع إلى 900 على الجانب الأيمن. يمكن رؤية روبوت الواقع الافتراضي على الرقم 1 في الزاوية اليسرى السفلية مع سهم يشير إلى الرقم 5.

سيقود روبوت الواقع الافتراضي إلى موقع الرقم "5" في ملعب خريطة شبكة الأرقام. ومع ذلك، قبل أن يتمكن روبوت الواقع الافتراضي من الانتقال إلى هذا الرقم، يجب إخبار روبوت الواقع الافتراضي بمكان هذا الرقم. بدءًا من وسط الملعب، تكون إحداثيات الرقم "5" هي (-100، -900).

الزاوية اليسرى السفلية من ملعب خريطة شبكة الأرقام من قبل مع تراكب المحور x و y. يظهر سهم من سالب 100 على المحور x إلى الرقم 5 وسالب 900 على المحور y إلى الرقم 5. لا يزال روبوت الواقع الافتراضي على الرقم 1 مع الإحداثيات سالب 900، سالب 900 أسفل الروبوت.

  • للبدء، يجب أن يواجه روبوت الواقع الافتراضي الرقم "5". اسحب أو اكتب turn_for command.
# Add project code in "main"
def main (): drivetrain.turn_for
    (RIGHT, 90, DEGREES)
  • اسحب حلقة بينما تحت الأمر turn_for . يجب أن يبدو مشروعك كما يلي:
# Add project code in "main"
def main (): drivetrain.turn_for
    (RIGHT, 90, DEGREES)

    while condition:
        wait(5, MSEC)
  • تمامًا مثل وحدة مستشعر المسافة، سيستخدم هذا المشروع حالة موضع مستشعر الموقع مع مشغل مقارنة للتنقل في ملعب خريطة شبكة الأرقام. اضبط الشرط للحلقة بينما على الموضع في المحور X أقل من -100 بالملليمتر (مم). يجب أن يبدو مشروعك كما يلي:
# Add project code in "main"
def main (): drivetrain.turn_for
    (RIGHT, 90, DEGREES)

    while location.position (X, MM) < -100:
        wait(5, MSEC)
  • اسحب أو اكتب الأمر الذي لا يحتاج إلى انتظار drive داخل حلقة while. يجب أن يبدو مشروعك كما يلي:
# Add project code in "main"
def main (): drivetrain.turn_for
    (RIGHT, 90, DEGREES)

    while location.position (X, MM) < -100:
        drivetrain.drive(FORWARD)
        wait(5, MSEC)
  • لاحظ أنه يتم استخدام عامل التشغيل "أقل من" بدلاً من عامل التشغيل "أكبر من" لأن روبوت الواقع الافتراضي يقود إلى اليمين من الجانب الأيسر من الملعب. يبدأ روبوت الواقع الافتراضي بقيمة X تبلغ -900 ملليمتر (مم). مع تقدم روبوت الواقع الافتراضي، تزداد قيم X، وبالتالي سيستمر الروبوت في التقدم بينما تكون قيمة X أقل من -100.

الزاوية اليسرى السفلية من ملعب خريطة شبكة الأرقام من قبل مع تراكب المحور x و y. يظهر سهم من سالب 100 على المحور x إلى الرقم 5 وسالب 900 على المحور y إلى الرقم 5. لا يزال روبوت الواقع الافتراضي على الرقم 1 مع الإحداثيات سالب 900، سالب 900 أسفل الروبوت.

لمعلوماتك

ستحتاج إلى اختيار مشغل المقارنة الذي ستستخدمه في مشروعك، اعتمادًا على الاتجاه الذي تريد أن ينتقل إليه روبوت الواقع الافتراضي على طول المحور X أو Y. عندما يتجه روبوت الواقع الافتراضي نحو قيمة أكبر، سيتم استخدام عامل أقل من (<) مع حلقة بينما ؛ وعندما يتجه روبوت الواقع الافتراضي نحو قيمة أصغر، سيتم استخدام عامل أكبر من (>) مع حلقة بينما .

يتوافق هذا مع الحركات اليسرى واليمنى عند النظر إلى الملعب. إذا كان روبوت الواقع الافتراضي يتحرك من اليسار إلى اليمين أو من الأسفل إلى الأعلى (قيم أكبر)، يتم استخدام عامل التشغيل أقل من للقيادة بينما يكون الموضع أقل من القيمة المستهدفة. 

عرضان من أعلى إلى أسفل لملعب خريطة شبكة الأرقام. في الأول، يظهر روبوت الواقع الافتراضي على الرقم 51 مع سهم يشير إلى أن الروبوت سينتقل إلى اليمين إلى الرقم 60. يقرأ النص أعلاه "drive while position is less than" (محرك الأقراص بينما الموضع أقل من). في الثانية، يظهر روبوت الواقع الافتراضي على الرقم 6 بسهم يشير إلى أن الروبوت سينتقل إلى أعلى الرقم 96. يقرأ النص أعلاه "drive while position is less than" (محرك الأقراص بينما الموضع أقل من).

إذا كان روبوت الواقع الافتراضي يتحرك من اليمين إلى اليسار أو من أعلى إلى أسفل (قيم أصغر)، يتم استخدام أكبر من المشغل للقيادة بينما يكون الموضع أكبر من القيمة المستهدفة.

عرضان من أعلى إلى أسفل لملعب خريطة شبكة الأرقام. في الأول، يظهر روبوت الواقع الافتراضي على الرقم 60 مع سهم يشير إلى أن الروبوت سينتقل إلى اليسار إلى الرقم 51. يقرأ النص أعلاه "drive while position is greater than" (محرك الأقراص بينما الموضع أكبر من). في الثانية، يظهر روبوت الواقع الافتراضي على الرقم 96 مع سهم يشير إلى أن الروبوت سينتقل إلى الأسفل إلى الرقم 6. يقرأ النص أعلاه "drive while position is greater than" (محرك الأقراص بينما الموضع أكبر من).

باستخدام مشغلي المقارنة، سينتقل روبوت الواقع الافتراضي بينما تكون القيمة التي يبلغ عنها مستشعر الموقع أكبر من>() أو أقل من<() قيمة العتبة. في هذا المثال، سينتقل روبوت الواقع الافتراضي إلى موجب 500 ملليمتر (مم) على المحور X. سيقود روبوت الواقع الافتراضي بينما يكون المركز على المحور X في أي مكان من 0 إلى 499 موجب. عندما يبلغ مستشعر الموقع أن الموضع 501 أو أعلى، سيتوقف روبوت الواقع الافتراضي عن القيادة. 

# Add project code in "main"
def main ():
    monitor_sensor(location.position) drivetrain.turn_for
    (RIGHT, 90, DEGREES)

    while location.position(X, MM) < 500:
        drivetrain.drive(FORWARD)
        wait(5, MSEC
    )drivetrain.stop ()

لاحظ أن القيمة التي أبلغ عنها مستشعر الموقع ليست بالضبط 500 ملليمتر (مم). مثل مستشعر المسافة، يتم استخدام مشغلي المقارنة بسبب الوقت الذي يستغرقه روبوت الواقع الافتراضي للتكرار من خلال المشروع وقيم التقرير.

  • اسحب أو اكتب الأمر stop خارج الحلقة while. يجب أن يبدو مشروعك كما يلي:
# Add project code in "main"
def main (): drivetrain.turn_for
    (RIGHT, 90, DEGREES)

    while location.position(X, MM) < -100:
        drivetrain.drive(FORWARD)
        wait(5, MSEC
    )drivetrain.stop ()
  • افتح نافذة الملعب  إذا لم تكن مفتوحة بالفعل. تأكد من فتح خريطة شبكة الأرقام Playground ، ثم قم بتشغيل المشروع.
  • شاهد روبوت الواقع الافتراضي يقود إلى الرقم "5" في ملعب خريطة شبكة الأرقام.

صورة من أعلى إلى أسفل لملعب خريطة شبكة الأرقام. يمكن رؤية روبوت الواقع الافتراضي في الجزء السفلي من الرقم 5.

  • في هذا المشروع، ينتقل روبوت الواقع الافتراضي إلى الرقم "5" في ملعب خريطة شبكة الأرقام. يتم استخدام الحلقة بينما حتى يستمر روبوت الواقع الافتراضي في التحرك للأمام بينما تكون قيمة X أقل بمقدار من قيمة X للإحداثيات التي يوجد عليها الرقم المشار إليه.
  • بمجرد أن تصبح قيمة X أكبر من -100، ينتقل المشروع إلى الأمر التالي خارج الحلقة، وهو أمر stop. نظرًا لأن قيمة X للرقم "5" هي -100، سيتوقف روبوت الواقع الافتراضي عن القيادة بمجرد أن تكون قيمة X أكبر من -100.

تدفق مشروع الثعبان الذي تم تشغيله للتو. يشير السهم إلى أن الروبوت يتحرك إلى حلقة بينما بمجرد اكتمال الانعطاف إلى اليمين بمقدار 90 درجة. يوجد سهم دوري بجوار حلقة while مع النص الذي يقرأ "قيمة x أقل من سالب 100 ترجع True، VR Robot يدفع للأمام". أسفل ذلك يوجد سهم أحمر مع نص يقرأ قيمة x أكبر من سالب 100، ترجع False. يتوقف روبوت الواقع الافتراضي عن القيادة.

لمعلوماتك

لاحظ أن القيمة التي أبلغ عنها مستشعر الموقع قد لا تكون بالضبط -100 مليمتر (مم). مثل مستشعر المسافة، يتم استخدام مشغلي المقارنة بسبب الوقت الذي يستغرقه روبوت الواقع الافتراضي للتكرار من خلال المشروع وقيم التقرير.

تم تكبير لوحة المعلومات في نافذة الملعب لإظهار أن قيمة x المبلغ عنها لمستشعر الموقع هي سالب 90 ملم.

في VEXcode VR Python، يمكنك استخدام عامل مقارنة أكبر من أو يساوي >(=) أو أقل من أو يساوي <(=) في مشروعك للحصول على دقة إضافية في تحركاتك.

# Add project code in "main"
def main ():
    drivetrain.turn_for(RIGHT, 90, DEGREES)

    while location.position (X, MM <)=-100:
        drivetrain.drive(FORWARD)
        wait(5, MSEC
    )drivetrain.stop ()

اعتمادًا على سرعة روبوت الواقع الافتراضي ومدى سرعة تكرار المشروع خلال الحلقة، قد ترى أن روبوت الواقع الافتراضي قادر على التوقف بالقرب من قيمة العتبة عندما تتم إضافة أو يساوي (<= أو >=) إلى المشغل.

قم باختيار الزر التالي لمواصلة بقية هذا الدرس.