الدرس 3: إضافة أوامر مجموعة نقل الحركة لحل متاهة الجدار
حل مشكلة متاهة الجدار
الآن بعد أن انتقل روبوت الواقع الافتراضي إلى الحرف "A" وكذلك إلى الرقم "2" على ملعب جدار المتاهة، كيف يمكنك إنشاء مشروع حيث ينتقل روبوت الواقع الافتراضي إلى مواقع أخرى، مثل الحرف "B "؟ حتى الآن، استخدمنا بيانات من مستشعر المصد للقيادة إلى الجدار، ثم ننتقل للانتقال إلى الجدار التالي. للانتقال إلى الحرف "B"، نحتاج إلى أن نكون قادرين على نقل روبوت الواقع الافتراضي إلى نقطة في منتصف سطح المتاهة، حتى يتمكن من الوصول إلى مسار مختلف نحو وجهتنا.
إذا كان الكود يحتوي فقط على الأوامر drive و
turn_for ، فإن روبوت الواقع قد "يتعطل" في القسم رقم "2" من
متاهة الحائط، لأنه سيستمر في الدوران إلى اليسار أو اليمين دون الرجوع إلى الخلف
أبدًا.
بدلاً من ذلك، يمكننا تقدير المسافة من آخر جدار لمسه روبوت الواقع الافتراضي إلى المكان الذي يحتاج إلى الدوران فيه. يمكننا بعد ذلك استخدام أوامر Drivetrain، مثل drive_for و turn_for، مع بينما حلقات وبيانات مستشعر المصد في مشروعنا لحل المتاهة!
-
ابدأ بتعديل مشروعك السابق، أو أنشئ مشروعًا جديدًا، أو حدد "نسخ" والصق هذا الرمز في VEXcode VR لمطابقة هذا المشروع الأساسي.
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) while not left_bumper.pressed (): drivetrain.drive (FORWARD) wait(5, MSEC) drivetrain.turn_for (LEFT, 90, DEGREES) while not left_bumper.pressed (): drivetrain.drive (FORWARD) wait(5, MSEC ) drivetrain.stop ()
- يبدأ المشروع أعلاه في دفع روبوت الواقع الافتراضي إلى الحرف "B"، ومع ذلك، لكي يفعل
روبوت الواقع الافتراضي ذلك، سيحتاج أولاً إلى النسخ الاحتياطي ثم الانعطاف
يسارًا.
- قم بتعديل الكود عن طريق إزالة الأمر stop
واستبداله بالأوامر drive_for و turn_for
- يمكننا تقدير أن روبوت الواقع الافتراضي يحتاج إلى القيادة في الاتجاه المعاكس لحوالي 300 ملليمتر (ملم). أولاً، اضبط معلمات DRIVE_FOR COMMAND على "الرجوع للخلف" لـ 300 ملليمتر (مم).
-
ثم قم بضبط معلمات الأمر turn_for للانعطاف إلى اليسار بمقدار 90 درجة. يجب أن يبدو مشروعك الآن كما يلي:
def main (): while not left_bumper.pressed (): 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) while not left_bumper.pressed (): drivetrain.drive ( FORWARD ) wait( 5, MSEC) drivetrain.turn_for ( LEFT, 90, DEGREES) while not left_bumper.pressed (): drivetrain.drive ( FORWARD) wait( 5, MSEC) drivetrain.drive_for (REVERSE, 300, MM) drivetrain.turn_for (LEFT, 90, DEGREES)
- قم بتشغيل متاهة الجدار ملعب إذا لم تكن مفتوحة بالفعل وقم بتشغيل المشروع.
-
ستؤدي إضافة هذه الأوامر إلى توجيه روبوت الواقع الافتراضي في الاتجاه الصحيح لقيادة الحرف "B".
- حدد الزر "إعادة الضبط" لإعادة ضبط الملعب وحرك روبوت الواقع الافتراضي مرة أخرى إلى وضع البداية.
-
الآن بعد أن تم توجيه روبوت الواقع الافتراضي في الاتجاه الصحيح، أضف الأوامر التالية أسفل الأمر الأخير turn_for ، لقيادة روبوت الواقع الافتراضي إلى الحرف 'B' على متاهة الحائط ساحة اللعب. تأكد من أن الأوامر مزودة بمسافة بادئة بشكل صحيح في مشروعك.
while not left_bumper.pressed (): drivetrain.drive ( للأمام) انتظر(5، مللي ثانية) drivetrain.turn_for(يمين، 90، درجة) while not left_bumper.pressed (): drivetrain.drive (للأمام) انتظر(5، مللي ثانية) drivetrain.turn_for(يمين، 90، درجة) while not left_bumper.pressed (): drivetrain.drive (للأمام) انتظر(5، مللي ثانية ) drivetrain.stop ()
- قم بتشغيل متاهة الجدار ملعب إذا لم تكن مفتوحة بالفعل وقم بتشغيل المشروع.
-
سيقود روبوت الواقع الافتراضي الآن إلى الحرف "B" في Wall Maze Playground.
تحدي صغير
في هذا التحدي، يجب أن يتنقل روبوت الواقع الافتراضي إلى الرقم "3" في متاهة الحائط ساحة اللعب باستخدام حلقات متعددة بينما ، وأوامر Drivetrain، ومستشعر المصد.

اتبع هذه الخطوات لإكمال التحدي المصغر:
-
شاهد فيديو الحل أدناه وراجع كيف يجب أن يقود روبوت الواقع الافتراضي من أجل إكمال التحدي المصغر. في مقطع الفيديو أدناه، يبدأ روبوت الواقع الافتراضي في موقع البدء ويتبع نفس نمط القيادة إلى الحائط حتى يتم الضغط على المصد ثم الدوران. يقود الروبوت نفس المسار للبدء، كما فعل للقيادة إلى الحرف B. عند نقطة التحول بعيدًا عن الجدار، يستدير الروبوت يمينًا للمتابعة إلى الرقم 3. من تلك النقطة، يتحرك إلى الأمام وينعطف يسارًا مرتين للالتفاف حول المجموعة التالية من الجدران، متجاوزًا الحرف B. وأخيرًا، يتحرك الروبوت إلى الأمام وينعطف يمينًا مرتين للالتفاف حول الجدران النهائية للوصول إلى الرقم 3.
- قم بإنشاء مشروع عن طريق إضافة أو إزالة الأوامر اللازمة إلى مشروع Unit4Lesson3 لقيادة روبوت VR إلى الرقم "3" على Wall Maze Playground.
- ابدأ المشروع لاختبار ما إذا كان يعمل.
- إذا لم ينجح المشروع، فقم بالتعديل وحاول مرة أخرى. استمر في هذه العملية حتى يكتمل التحدي.
- بمجرد أن يقود روبوت الواقع الافتراضي بنجاح إلى الرقم "3" على Wall Maze Playground، احفظ المشروع.
تهانينا! لقد أكملت بنجاح تحدي المتاهة الجدارية!