Skip to main content

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

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

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

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

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

الانتقال إلى الأقراص الأربعة الأولى

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

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

لمعلوماتك

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

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

استخدام حلقة While مع بيانات مستشعر العين

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

 منظر من أعلى إلى أسفل لروبوت الواقع الافتراضي على ملعب متاهة القرص بسهم أسود يشير إلى أن الروبوت سيقود إلى القرص الأخضر مباشرة من موقع البداية ثم انعطف يمينًا.

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

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

لنبدأ ببناء المشروع الحلقة بينما  لتوجيه روبوت الواقع الافتراضي للدوران عندما يكتشف مستشعر العين الأمامي القرص الأول الملون (الأخضر) في ساحة لعب متاهة الأقراص .

  • ابدأ مشروعًا جديدًا وحدد Disk Maze Playground عند مطالبتك بذلك. لوحة اختيار ملعب متاهة القرص من VEXcode VR.
  • اسم المشروع Unit7Lesson2.شريط أدوات VEXcode VR مع استدعاء مربع اسم المشروع. اسم المشروع هو الوحدة 7 الدرس 2.

     

  • للبدء، أضف تعليقًا لوصف سلوك روبوت الواقع الافتراضي. سيستخدم هذا المشروع التعليقات لتذكير المستخدم بالهدف من سلوكيات روبوت الواقع الافتراضي خلال القسم التالي من المشروع. تذكر أن التعليقات في VEXcode VR Python تبدأ برمز # (رطل). 
def main ():
    # القيادة إلى القرص الأول (أخضر)، انعطف يمينًا
  • سيحتاج روبوت الواقع الافتراضي إلى القيادة نحو القرص الأول على Disk Maze Playground. اسحب أو اكتب حلقة بينما مع شرط وليس في مساحة العمل. تذكر تضمين الأمر  wait كجزء من حلقة while ، لضمان قيام روبوت الواقع الافتراضي بتنفيذ المشروع بشكل صحيح.
def main ():
    # Drive to 1st disk (green), turn right
    while not condition:
        wait(5, MSEC)
  • اضبط حالة الحلقة على أمر مستشعر العين الأمامية detect ، واضبط المعلمة على "أخضر".
def main():# Drive
    to 1st disk (green), turn right
    while not front_eye.detect(GREEN):
        wait(5, MSEC)
  • داخل الحلقة while ، اسحب أو اكتب الأمر غير المنتظر drive حتى يبدو مشروعك مثل هذا:
def main ():
    # Drive to 1st disk (green), turn right
    while not front_eye.detect(GREEN): drivetrain.drive
        (FORWARD)
        wait(5, MSEC)
  • خارج الحلقة بينما ، اسحب أو اكتب الأمر turn_for  لتوجيه روبوت الواقع الافتراضي للانعطاف إلى اليمين بمقدار 90 درجة عندما يكتشف قرصًا أخضر. يجب أن يبدو مشروعك كما يلي:
def main():# Drive to
    1st disk (green), turn right
    while not front_eye.detect (GREEN): drivetrain.drive (
        FORWARD)
        wait(5, MSEC) drivetrain.turn_for

    (RIGHT, 90, DEGREES)
  • افتح نافذة الملعب إذا لم تكن مفتوحة بالفعل. تأكد من فتح Disk Maze Playground ،قم بتشغيل المشروع.
  • راقب روبوت الواقع الافتراضي وهو يتقدم إلى القرص الأخضر الأول ثم انعطف يمينًا.

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

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