Skip to main content

الدرس 4: تدفق المشروع مع الحلقات المتداخلة

جمع القرصين التاليين

  • الآن بعد أن واجه روبوت الواقع الافتراضي الأقراص الحمراء، سيحتاج روبوت الواقع الافتراضي إلى تكرار نفس السلوكيات التي تم استخدامها لجمع القرص الأزرق، من أجل التقاط القرص الأحمر وتحريكه. سلوكيات القيادة للأمام لالتقاط القرص والاستدارة والعودة إلى نفس الهدف الملون لإسقاط القرص.

    منظر من أعلى لأسفل لملعب Disk Mover مع أسهم منقطة تشير إلى مسار روبوت الواقع الافتراضي من الهدف الأحمر لجمع القرص الأحمر وإسقاطه في الهدف، ثم الإشارة إلى اليمين للانتقال إلى الهدف الأخضر.
  • بمجرد نقل القرص الأحمر الأول، سيحتاج روبوت الواقع الافتراضي بعد ذلك إلى القيادة إلى الهدف الأخضر وتنفيذ نفس الإجراءات التي تم استخدامها لتحريك القرص الأزرق والأحمر، لتحريك القرص الأخضر الأول.

    عرض من أعلى لأسفل لملعب Disk Mover في البداية، مع أسهم منقط تشير إلى المسار الذي يحتاج الروبوت إلى تحريكه لجمع كل قرص. تشير الأسهم من وإلى كل هدف إلى القرص الأول، وتشير الأسهم اليمنى الإضافية بين كل منطقة من مناطق الهدف.
  • لتكرار السلوكيات عدة مرات، يمكن استخدام حلقة لـ.
    VEXcode VR Python لأمر الحلقة ضمن التعريف الرئيسي. يقرأ الأمر للقيمة في النطاق مع فاصلة 10 بين قوسين في السطر الأول، ثم يتم وضع مسافة بادئة أسفل أمر انتظار يقرأ انتظر مع 5، مللي ثانية بين قوسين.
  • أضف حلقة لـ إلى أعلى المشروع، فوق التعليق الأول، واضبط معلمة الدالة ذات النطاق على '3'. تأكد من أن الحلقة لـ مسننة داخل التعريف الرئيسي.

    def main ():
        for repeat_count in range(3):
            انتظر(5، مللي ثانية)
  • لنسخ الكود في الحلقة لـ ، يجب الانتباه جيدًا إلى المسافة البادئة. أولاً، أضف مسافة قبل الأمر wait ، حتى تبدو الحلقة بهذا الشكل:

    def main ():
        for repeat_count in range(3):
    
    
            
            انتظر(5، مللي ثانية)
  • بعد ذلك، حدد الأوامر التي تريد وضعها في الحلقة لـ ، ثم انسخها وألصقها أعلى الأمر wait . لاحظ أن المسافة البادئة ستكون غير صحيحة بعد النسخ واللصق ببساطة. تم كسر خط المؤشر الرمادي للحلقة لـ ، وتم فصله عن أمر الانتظار  . هذه إشارة مرئية لن ينفذها مشروعك على النحو المنشود.يتم لصق المشروع من الأعلى في حلقة for، مع وجود مسافة بادئة غير صحيحة. تظهر المسافة البادئة الصحيحة في كتلة التعليمات البرمجية التالية.
  • قم بتحديد الأوامر الموجودة داخل الحلقة لـ ، واستخدم "Tab" لوضع مسافة بادئة صحيحة للأوامر الموجودة داخل الحلقة. عند وضع المسافة البادئة بشكل صحيح، يجب أن يربط خط المؤشر الرمادي بين الحلقة لـ والأمر wait  لإظهار حدود الحلقة الخارجية. عند الانتهاء، يجب أن يبدو مشروعك كما يلي: 

    def main ():
        for repeat_count in range(3):
            # 1. قم بالقيادة إلى القرص باستخدام مستشعر العين السفلي
            بينما لا يكون down_eye.near_object ():
                drivetrain.drive(للأمام)
                انتظر(5، مللي ثانية
            )drivetrain.stop ()
    
            # 2. التقط مغناطيس القرص.
            قم بتنشيط (تعزيز)
    
            رقم 3. القيادة إلى المرمى باستخدام مستشعر المسافة
            drivetrain.turn_to_heading(180 درجة)
            بينما front_distance.get_distance(MM) > 200:
                drivetrain.drive(للأمام)
                انتظر(5 مللي ثانية
            ). stop
    
            ()# 4. إسقاط القرص في الهدف
            magnet.energize(إسقاط)
            drivetrain.drive_for(عكس، 100، مم)
    
            # 5. انتقل إلى الهدف التالي drivetrain.turn_to_heading
            (90 درجة) drivetrain.drive_for (
            إلى الأمام، 800، مم)
    
            # 6. انتقل إلى الأقراص
            drivetrain.turn_to_heading(0، درجة)  
    
        انتظر(5، مللي ثانية)
  • شاهد الفيديو أدناه لمعرفة كيفية نقل الأوامر وضبط المسافة البادئة كما هو موضح أعلاه. في مقطع الفيديو، يتم تمييز أقسام التعليقات الستة للمشروع، ويتم فتح قائمة السياق. يتم تحديد خيار "القص"، ثم يتم وضع المؤشر أسفل أمر الحلقة. يتم فتح قائمة السياق مرة أخرى، ويتم تحديد "لصق". ثم تصبح الأوامر داخل الحلقة لـ ، ولكن مسافتها البادئة غير صحيحة. يتم تمييز أقسام التعليقات الستة مرة أخرى ويتم الضغط على "Tab" على لوحة المفاتيح لإزاحة المشروع بشكل صحيح داخل الحلقة.
ملف فيديو
  • افتح Disk Mover Playground إذا لم يكن مفتوحًا بالفعل، وقم بتشغيل المشروع.
  • عند تشغيل هذا المشروع، يلتقط روبوت الواقع الافتراضي ويسقط قرصًا واحدًا من كل لون في هدفه الملون المقابل.

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

لمعلوماتك

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

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

 

 

الأسئلة

يرجى تحديد رابط أدناه للوصول إلى اختبار الدرس.

Google Doc / .docx / .pdf