Skip to main content

الدرس 2: استخدام كتلة [انتظر حتى]

في هذا الدرس، ستقوم بإنشاء مشروع باستخدام مستشعر المصد وكتلة [انتظر حتى]. في التحدي المصغر، ستطبق هذه المهارات للتنقل من بداية متاهة الجدار إلى الحرف "أ".

منظر جانبي لملعب المتاهة الجدارية مع روبوت الواقع الافتراضي مباشرة أمام الجدار، مما يدل على أن الجدران ثلاثية الأبعاد ويمكن للروبوت أن يصطدم بها.

مخرجات التعلم

  • حدد أن الكتل غير المنتظرة تستمر حتى لو لم يكتمل سلوك الكتلة بعد.
  • حدد أن كتلة الانتظار توقف المكدس مؤقتًا حتى يكتمل سلوك تلك الكتلة.
  • حدد أن تسليط الضوء على تنفيذ المشروع يصور الانتظار مقابل الكتل غير المنتظرة.
  • حدد أن كتلة [انتظر حتى] هي كتلة تحكم تقبل القيم المنطقية.
  • حدد أن كتلة [انتظر حتى] ستتحقق بشكل متكرر من حالة منطقية ولن تنتقل إلى الكتلة التالية حتى يتم الإبلاغ عن الحالة بشكل صحيح.
  • حدد أن كتلة [انتظر حتى] يتم استخدامها مع كتلة غير منتظرة (على سبيل المثال القيادة) من أجل التحقق من حالة المستشعر.
  • حدد أن <Pressing bumper> الكتلة تبلغ عن قيمة صحيحة أو خاطئة في كتلة [انتظر حتى].
  • حدد كيف أن كتلتي [Drive for] و [Turn for] هي كتل خاصة يمكن أن تكون إما في الانتظار أو غير منتظرة.
  • صف كيفية إنشاء مشروع يحتوي على محرك روبوت الواقع الافتراضي للأمام حتى يتم الضغط على مستشعر المصد.

اسم المشروع وحفظه

  • ابدأ مشروعًا جديدًا في VEXcode VR واسم المشروع Unit4Lesson2.
مربع اسم المشروع في منتصف شريط أدوات VEXcode VR، المميز بمربع أحمر، على يسار الزر Select Playground.

[انتظر حتى] كتل

كتلة [انتظر حتى] هي كتلة تحكم تقبل الشروط المنطقية. [انتظر حتى] تتحقق الكتل بشكل متكرر من حالة منطقية وتتحكم في تدفق المشروع. لن ينتقل المشروع إلى الكتلة التالية في المكدس حتى تظهر الحالة في تقارير كتلة [انتظر حتى] على أنها صحيحة. يتم استخدام الكتل [انتظر حتى] جنبًا إلى جنب مع الكتل غير المنتظرة مثل [Drive] أو [Turn].

لمعلوماتك

تحدد الكتل غير المنتظرة والكتل المنتظرة متى تبدأ الكتلة التالية السلوك. تقوم كتل الانتظار، مثل [Drive for] و [Turn for]، بإكمال سلوكياتها قبل الانتقال إلى الكتلة التالية في المجموعة. تستمر الكتل غير المنتظرة، مثل [Drive] و [Turn]، في الانتقال إلى الكتلة التالية في المكدس حتى لو لم يكتمل سلوك الكتلة غير المنتظرة.

يمكن أن تكون كتل معينة، مثل [Drive for] و [Turn for] كتل انتظار أو غير انتظار. سيؤدي تحديد السهم الموجود على الكتلة إلى تحويل الكتلة من الانتظار إلى كتلة غير انتظار.

يظهر محرك للكتلة مع السهم الموجود على يمين الكتلة مغلقًا ومفتوحًا. في الأعلى، يقرأ محرك الأقراص للكتلة محرك الأقراص للأمام لمسافة 200 مم. في الجزء السفلي، يتم تمديد نفس الكتلة لقراءة القيادة للأمام لمسافة 200 مم ولا تنتظر.

استخدام كتل المفاتيح

تضيف كتلة التبديل غير الانتظارية معلمة "wait=False" في نهاية الكتلة. "wait=False" هو أمر Python الذي يخبر الكتلة بعدم الانتظار والاستمرار في الانتقال إلى الكتل التالية في المكدس.

يتم عرض كتلة التبديل المكافئة مع محرك الأقراص للأمر كأمر انتظار وعدم انتظار. في الأعلى، يقرأ أمر Python في كتلة Switch مجموعة نقل الحركة DOT DRIVE_FOR (FORWORD، 200، MM).. في الجزء السفلي، يتم توسيع نفس الأمر لقراءة مجموعة نقل الحركة DOT DRIVE _ FOR (FORWORD، 200، MM، WAIT = FALSE).

  • اسحب كتلة [Drive] غير المنتظرة إلى مساحة العمل.

    مشروع VEXcode VR جديد مع كتلة عند البدء مع كتلة محرك أقراص مرفقة ومضبوطة لإعادة التوجيه.
  • قم بإرفاق كتلة [انتظر حتى] أسفل كتلة [Drive].

    نفس المشروع مع الانتظار حتى تتم إضافة الكتلة إلى أسفل المكدس. معلمة الانتظار حتى يصبح المكوِّن فارغًا.
  • تقبل كتلة [انتظر حتى] الشروط المنطقية. سيستخدم هذا المشروع مستشعر الصدمات للقيادة عبر متاهة الحائط ساحة اللعب. اسحب الكتلة <Pressing bumper> المنطقية إلى كتلة [انتظر حتى].

    نفس المشروع مع كتلة الضغط على المصد المضافة إلى معلمة كتلة الانتظار حتى. يقرأ المشروع الآن عند البدء، قم بالقيادة للأمام، وانتظر حتى يتم الضغط على المصد الأيسر.
  • اسحب كتلة [Stop driving] وأضفها إلى المشروع.

    نفس المشروع مع كتلة توقف القيادة المضافة تحت الانتظار حتى الكتلة. يقرأ المشروع الآن عند البدء، قم بالقيادة للأمام، وانتظر حتى يتم الضغط على المصد الأيسر، ثم توقف عن القيادة.
  • قم بتشغيل Wall Maze Playground إذا لم تكن مفتوحة بالفعل وقم بتشغيل المشروع.
  • شاهد محرك روبوت الواقع الافتراضي من بداية متاهة الحائط وتوقف عند الضغط على مستشعر المصد بواسطة الحائط.
  • تسمح كتلة [القيادة] لروبوت الواقع الافتراضي بمواصلة القيادة إلى الأمام أثناء التحقق من حالة مستشعر المصد مع <Pressing bumper> الكتلة. بمجرد أن تكون <Pressing bumper> التقارير صحيحة، سينتقل روبوت الواقع الافتراضي إلى الكتلة التالية في المجموعة ويتوقف عن القيادة.

    تم تقسيم مشروع VEXcode VR من هذا الدرس لإظهار تدفق المشروع. يتبع كتلة متى بدأت كتلة القيادة للأمام. يشير السهم الذهبي إلى الأسفل من كتلة الدفع إلى الأمام في كتلة الانتظار حتى يتم الضغط على المصد الأيسر. على يمين الكتلة يوجد سهمان أحمران منحنيان يشيران إلى حركة دائرية والكلمات التي "لم يتم الضغط عليها (خطأ)" توضح ما يحدث عندما يتحرك الروبوت للأمام ولا يتم الضغط على مفتاح المصد. أسفل كتلة الانتظار حتى، يشير السهم الأخضر الذي يشير إلى الأسفل عند كتلة التوقف مع "الضغط على الكلمات (TRUE)" إلى أن المشروع سينتقل إلى كتلة التوقف عند الضغط على مفتاح المصد.

    لمعلوماتك

    لمتابعة تصور كتل الانتظار مقابل كتل عدم الانتظار، شاهد وظيفة تمييز تنفيذ التعليمات البرمجية في VEXcode VR. في بداية هذا المشروع، ستظهر العلامة الخضراء حول كتلة [انتظر حتى] حتى يتم استيفاء الشرط. وذلك لأن كتلة [انتظر حتى] هي كتلة انتظار. سيظهر التمييز الأخضر لتخطي الكتل غير المنتظرة لأنه يتم تنفيذ هذه الأوامر بسرعة.

    مشروع VEXcode VR من هذا الدرس مع مربع شرح أحمر حول كتلة الانتظار حتى، مما يشير إلى أنه كتلة انتظار.

     

    استخدام كتل المفاتيح 

    هذا هو كتلة التبديل التي تحتوي على الأمر [انتظر حتى] مع <Bumper pressed>  مراسل منطقي.

    مشروع VEXcode VR على النحو الوارد أعلاه، ولكن مع الانتظار حتى يتم استبدال الكتلة بكتلة التبديل. يقرأ أمر Python في كتلة Switch بينما لم يتم left_bumper.press (): في السطر الأول. ثم يتم وضع بادئة أسفل كتلة Python لقراءة الانتظار (5، مللي ثانية).

    while notleft_bumper.pressed (): هو أمر Python الذي يتحقق مما إذا كان المصد الأيسر مضغوطًا حاليًا.

    الانتظار (5، مللي ثانية) هو أمر Python الذي يوقف تنفيذ الشيك مؤقتًا لمدة 5 مللي ثانية (مللي ثانية)، لذلك يتحقق المشروع مما إذا كان يتم الضغط على المصد الأيسر كل 5 مللي ثانية أم لا. يتم وضع مسافة بادئة لهذا السطر من التعليمات البرمجية أسفل السطر الأول من التعليمات البرمجية لأن هذا الأمر هو السلوك الذي سيتكرر حتى يتم استيفاء الشرط (في هذه الحالة، يتم الضغط على المصد الأيسر).

    في VEXcode VR، يتم دائمًا إضافة أمر wait مع حلقة شرطية. الغرض من أمر الانتظار هو التأكد من أن VEXcode VR يمكنه تشغيل المشروع بشكل صحيح على النحو المنشود، نظرًا للطبيعة المستندة إلى الويب لمنصة VEXcode VR. لا ينبغي أبدًا حذف أمر wait عند استخدام حلقة شرطية، لأن مشروعك قد لا يعمل كما هو مقصود.

    بمجرد الضغط على المصد الأيسر، سيتوقف الروبوت عن القيادة.

قم بتحديد زر التالي للمتابعة مع بقية هذا الدرس.