Skip to main content

الدرس 2: القيادة إلى الحرف "أ"

 استخدام مستشعر المسافة لتجنب الجدران 

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

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

  • ابدأ مشروعًا نصيًا جديدًا وحدد Wall Maze Playground عند مطالبتك بذلك. بلاط اختيار ملعب المتاهة الجدارية.
  • اسم المشروع Unit5Lesson2.
    يقرأ شريط أدوات VEXcode VR ومربع حوار اسم المشروع في المركز الوحدة 5 الدرس 2.
  • اسحب أو اكتب أو انسخ حلقة بينما وقم بإزالة أمر Drivetrain الذي يظهر كجزء من قالب مشروع النص الجديد، حتى يبدو مشروعك بهذا الشكل. لاحظ أن الأمر سوف يملأ حلقة while مع الأمر wait بداخلها. لا تقم بإزالة الأمر wait ، فسوف يضمن ذلك أن يقوم روبوت الواقع الافتراضي بتنفيذ المشروع بشكل صحيح.

    def main ():
        while condition:
            wait(5, MSEC)
  • اسحب أو اكتب أو انسخ الأمر الذي لا يحتاج إلى انتظار drive داخل الحلقة، حتى يبدو مشروعك بهذا الشكل.

    def main ():
        while condition: drivetrain.drive
            (FORWARD)
    
            wait(5, MSEC)
    • تأكد من صحة المسافة البادئة وأن الأمر drive متوافق مع الأمر wait .

أضف الدالة get_distance وعامل أكبر من

  • اسحب أو اكتب الأمر get_distance في "شرط" حلقة while ، حتى يبدو مشروعك بهذا الشكل. اكتب أكبر من المشغل والمعامل الثاني كـ '50. 
  • def main ():
        while front_distance.get_distance (MM) > 50: drivetrain.drive
            (FORWARD)
    
            انتظر(5، مللي ثانية)
  • أضف الأمر stop خارج حلقة while، حتى يبدو مشروعك بهذا الشكل. هناك حاجة إلى الأمر stop بعد الحلقة while لأن روبوت الواقع الافتراضي سيستمر في القيادة حتى يُطلب منه التوقف.

    def main ():
        while front_distance.get_distance (MM) > 50: drivetrain.drive
            (FORWARD)
            انتظر(5، مللي ثانية
            
        )drivetrain.stop ()
  • افتح نافذة Playground إذا لم تكن مفتوحة بالفعل، تأكد من فتح Wall Maze Playground ، ثم قم بتشغيل المشروع.
  • راقب روبوت الواقع الافتراضي وهو يتحرك للأمام حتى يبلغ مستشعر المسافة عن المسافة بين روبوت الواقع الافتراضي والجدار لا تزيد عن 50 ملم (مم).توقف منظر من أعلى إلى أسفل لملعب المتاهة الجدارية مع روبوت الواقع الافتراضي أمام الجدار الأول مقابل موقع البداية.
  • أعد ضبط الملعب لتحريك روبوت الواقع الافتراضي مرة أخرى إلى وضع البداية.

تابع المشروع للقيادة إلى الحرف "أ"

إن استخدام عامل أكبر من (>) مع الأمر get_distance  كشرط للحلقة بينما يعطي تعليمات لروبوت الواقع الافتراضي بالتحرك للأمام طالما أن المسافة بين روبوت الواقع والحائط أكبر من ملم (مم). بمجرد أن يبلغ مستشعر المسافة عن مسافة من روبوت الواقع الافتراضي إلى الجدار لا تزيد عن 50 ملم، سيتوقف روبوت الواقع الافتراضي عن القيادة. للمتابعة إلى الحرف "A"، يحتاج روبوت الواقع الافتراضي إلى الدوران عندما يقترب من الجدار. 

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

  • استبدل الأمر stop بالأمر turn_for ، حتى يبدو مشروعك بهذا الشكل. يعد الأمر turn_for ضروريًا لأنه بمجرد وصول مستشعر المسافة إلى مسافة 50 ملم (مم) من الحائط، سوف يستدير روبوت الواقع الافتراضي إلى اليسار للاستمرار في الاتجاه نحو الحرف "A".

    • اضبط معلمات الانعطاف على "يسار، 90 درجة".
    def main ():
        while front_distance.get_distance (MM) > 50: drivetrain.drive (
            للأمام)
            انتظر(5، مللي ثانية)
    
        drivetrain.turn_for(لليسار، 90، درجة)
    • أضف أخرى بينما حلقة مع أمر drive داخل أسفل أمر turn_for . قم بتعيين الشرط باستخدام الأمر  3 كمتغير أول، كمتغير أكبر من والثابت '50' كمتغير ثان.
        بينما front_distance.get_distance(MM) > 50:
            drivetrain.drive(للأمام)
            انتظر(5، مللي ثانية)
    • أخيرًا، أضف الأوامر التالية أسفل الحلقة الثانية بينما لتوجيه روبوت الواقع الافتراضي لاكتشاف الجدار الأخير خلف الحرف "A" ثم التوقف عن القيادة. تأكد من أن الأمر turn_for والأمر stop خارج حلقاتهما while الخاصة بهما.
        drivetrain.turn_for(يسار، 90، درجة)
    
        بينما front_distance.get_distance(مم) > 50:
            drivetrain.drive(للأمام)
            انتظر(5، مللي ثانية
    
        )drivetrain.stop ()
    • قم بتشغيل ملعب المتاهة الجدارية إذا لم يكن مفتوحًا بالفعل وقم بتشغيل المشروع.
    • شاهد محرك روبوت الواقع الافتراضي من بداية المتاهة الجدارية إلى الحرف "A"، ثم توقف.

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

    • لاحظ أن روبوت الواقع الافتراضي لا يصطدم بأي جدران أثناء قيادته إلى الحرف "أ". عندما تشير قيمة مستشعر المسافة إلى أن روبوت الواقع الافتراضي لا يزيد عن 50 ملم (مم) من الحائط، يُطلب من روبوت الواقع الافتراضي الدوران أو التوقف في المشروع.

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