Skip to main content

الدرس 3: إدخال مستشعر متعدد

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

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

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

منظر جانبي لروبوت VR على ملعب Dynamic Castle Crasher، يدفع قطعة من القلعة من الجانب وعلى وشك الانطلاق من الحافة نفسها.

هناك حاجة إلى مستشعر آخر حتى يتمكن روبوت الواقع الافتراضي من تحديد ما إذا كان قريبًا من حافة الملعب أم لا. تحتاج سلوكيات القيادة للأمام والانعطاف إلى التكرار فقط حتى يتم اكتشاف الحدود الحمراء. وبالتالي، يمكن استبدال كتلة [Forever] بكتلة [Repeat till]، من أجل تكرار سلوكيات القيادة للأمام والانعطاف حتى يتم استيفاء شرط اكتشاف الحد الأحمر. يمكن استخدام مستشعر العين السفلية لتحديد ما إذا كان روبوت الواقع الافتراضي قريبًا من حافة الملعب من خلال اكتشاف الحدود الحمراء حول الملعب.

كتلة استشعار اللون VEXcode VR تقرأ العين السفلية تكتشف اللون الأحمر ؟.
  • تحميل مشروع Unit9Lesson2 من الدرس السابق.
الوحدة 9 مشروع الدرس 2. يبدأ المشروع بكتلة متى بدأت مع كتلة مرفقة إلى الأبد. داخل كتلة FOREVER توجد كتلة If ثم مع المسافة الأمامية وجدت كائنًا كمعلمة. يحتوي فرع If then على تعليق يقرأ Knock over the building found using the Distance Sensor and a Drive forward block. يحتوي الفرع الآخر على تعليق ينص على الانعطاف للعثور على مبنى باستخدام مستشعر المسافة وكتلة الانعطاف لليمين.
  • إعادة تسمية المشروع Unit9Lesson3.
مربع اسم المشروع في منتصف شريط أدوات VEXcode VR، المميز بمربع أحمر، على يسار الزر Select Playground. اسم المشروع هو الوحدة 9 الدرس 3.
  • هناك حاجة إلى حاجز لفحص مستشعر العين السفلي باستمرار. سيحتاج روبوت الواقع الافتراضي إلى تكرار هذه السلوكيات حتى يكتشف مستشعر العين السفلية اللون الأحمر. أولاً، قم بإزالة كتلة [Forever].
نظرة عامة على إزالة كتلة Forever من المشروع. ينتقل المشروع الجديد من كتلة When started إلى كتلة If then else، دون وجود حلقة Forever.
  • أضف كتلة [Repeat until] (تكرار حتى).
نظرة عامة على إضافة المكوِّن Repeat until حول المكوِّن If then else بأكمله. يبدأ المشروع الجديد بكتلة When Started، ثم يحتوي على Repeat until block مع فتح المعلمة. داخل C للكتلة Repeat until هي كتلة If then else.
  • أضف <Color sensing> كتلة داخل كتلة [Repeat until] واضبط المعلمات على "DownEye" للكشف عن "RED".
نفس المشروع مع العين السفلية يكتشف مجموعة حمراء كمعلمة التكرار حتى الكتلة.

يتم استخدام كتلة [Repeat until] بدلاً من كتلة [Wait until] في هذا المشروع. وذلك لأن كتلة [انتظر حتى] هي كتلة انتظار ستوقف تدفق المشروع مؤقتًا حتى يتم استيفاء الشرط. إذا تم استخدام كتلة [انتظر حتى]، فلن يتم تنفيذ كتلة [إذا كان الأمر كذلك] حتى يتم استيفاء شرط [انتظر حتى] وسيتم تنفيذ كتلة [إذا كان الأمر كذلك] مرة واحدة فقط.

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

باستخدام كتلة [Repeat until]، يتم التحقق من الشرط [If then else] وتنفيذه باستمرار.

رسم تخطيطي لتدفق المشروع مع كتلة Repeat Until، يوضح أن حالة كتلة If else يتم التحقق منها باستمرار، ويتم تنفيذها بناءً على ما إذا كان الكائن موجودًا (صواب) أم غير موجود (خطأ).
  • أضف تعليقًا لتدوين الغرض من استخدام كتلة [Repeat until].
نفس المشروع الذي تم إنشاؤه سابقًا، مع إضافة كتلة تعليق بين كتلة متى بدأت وكتلة التكرار حتى. يقول التعليق "ابحث عن المباني حتى يتم اكتشاف الحدود الحمراء".
  • افتح ملعب Dynamic Castle Crasher وقم بتشغيل المشروع.
  • عند تشغيل هذا المشروع، سيقود روبوت الواقع الافتراضي نحو كائن تم اكتشافه وينعطف يمينًا بخلاف ذلك. ومع ذلك، على الرغم من أن مستشعر العين السفلية يبحث عن الحدود الحمراء، إلا أنه لا يتم إخبار روبوت الواقع الافتراضي بما يجب فعله بمجرد اكتشافه للأحمر، لذلك يستمر في القيادة ويسقط في النهاية من الملعب.

    منظر من أعلى إلى أسفل لنافذة ملعب Dynamic Castle Crasher أثناء تشغيل المشروع، مع تحطم العديد من القلاع وقيادة روبوت VR قبالة الحافة العلوية اليمنى من الملعب بحثًا عن قطعة قلعة.

بمجرد استيفاء شرط كتلة [Repeat until]، سيتم تنفيذ تدفق المشروع من كتلة [Repeat until].

قم بتحديد زر التالي للمتابعة مع بقية هذا الدرس.