Skip to main content

الدرس 2: استخدام حلقات متعددة أثناء التكرار

الاستمرار عبر متاهة الجدار

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

  • للبدء، قم بإزالة الأمر stop خارج حلقة while ، واستبدله بالأمر turn_for . اضبط المعلمات بحيث يتحول روبوت الواقع الافتراضي إلى اليسار لمدة 90 درجة. يجب أن يبدو مشروعك الآن كما يلي:

    def main ():
    	while not left_bumper.pressed ():drivetrain.drive (للأمام
    		)
    		انتظر(		5، مللي ثانية) drivetrain.turn_for
    	(لليسار، 90، درجة)
  • قم بتشغيل متاهة الجدار ملعب إذا لم تكن مفتوحة بالفعل وقم بتشغيل المشروع.
  • شاهد محرك روبوت الواقع الافتراضي من بداية متاهة الحائط، وتوقف عند الضغط على مستشعر المصد بواسطة الحائط، وانعطف يسارًا بزاوية 90 درجة.

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

الحلقات المتعددة ومشكلة متاهة الجدار

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

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

    def main ():
    	while not left_bumper.press (): drivetrain.drive (FORWARD
    		)
    		wait(		5, MSEC) drivetrain.turn_for 		 	(
    		
    	LEFT, 90, DEGREES)
    	
    	while not left_bumper.pressed (): drivetrain.drive (
    		FORWARD)
    		wait(5, MSEC) drivetrain.turn_for
    		
    	(RIGHT, 90, DEGREES)
  • قم بإعادة تعيين Wall Maze Playground وقم بتشغيل المشروع مرة أخرى.
  • راقب محرك روبوت الواقع الافتراضي من بداية متاهة الجدار، وتوقف عند الضغط على مستشعر المصد بواسطة الجدار، واستدر يسارًا 90 درجة، وقم بالقيادة للأمام حتى يتم الضغط على مستشعر المصد مرة أخرى بواسطة جدار، ثم استدر يمينًا 90 درجة وتوقف.

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

تحدي صغير

بالنسبة لهذا التحدي الصغير، قم بإنشاء مشروع حيث يتحرك روبوت VR من البداية إلى الحرف "A" على متاهة الحائط ساحة اللعب باستخدام حلقات متعددة بينما حلقات ومستشعر المصد!

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

اتبع هذه الخطوات لإكمال التحدي المصغر:

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

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

تهانينا! لقد حللت التحدي الصغير!

الأسئلة

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

Google Doc / .docx / .pdf