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

إضافة مستشعر العين السفلية
هناك حاجة إلى مستشعر آخر حتى يتمكن روبوت الواقع الافتراضي من تحديد ما إذا كان قريبًا من حافة
الملعب أم لا. يمكن استخدام مستشعر العين السفلية لتحديد ما إذا كان روبوت الواقع الافتراضي
قريبًا من حافة الملعب من خلال اكتشاف الحدود الحمراء حول الملعب.
تحتاج سلوكيات القيادة للأمام والانعطاف فقط إلى التكرار حتى يبلغ مستشعر العين السفلية عن اكتشاف الحدود الحمراء. وبالتالي، يمكن استبدال الحلقة اللانهائية بينما بحلقة بينما بشرط وليس ، من أجل تكرار سلوكيات القيادة للأمام والانعطاف حتى يتم استيفاء شرط اكتشاف الحد الأحمر.
-
تحميل مشروع Unit9Lesson2 من الدرس السابق.
def main (): while True: # هل يكتشف مستشعر المسافة قلعة ؟ إذا front_distance.found_object (): # Crash castle تم اكتشافه بواسطة Distance Sensor drivetrain.drive(للأمام) آخر: # Turn للعثور على قلعة باستخدام Distance Sensor drivetrain.turn ( لليمين) انتظر(5، مللي ثانية)
- إعادة تسمية المشروع Unit9Lesson3.
-
أضف تعليقًا لملاحظة كيفية استخدام الحلقة بينما مع مستشعر العين السفلية. يجب أن يبدو مشروعك الآن كما يلي:
def main (): # ابحث عن مبنى بينما لم يتم اكتشاف الحد الأحمر بينما True: # هل يكتشف مستشعر المسافة قلعة ؟ إذا front_distance.found_object (): # Crash castle تم اكتشافه بواسطة Distance Sensor drivetrain.drive(للأمام) آخر: # Turn للعثور على قلعة باستخدام Distance Sensor drivetrain.turn ( لليمين) انتظر(5، مللي ثانية)
-
هناك حاجة إلى أمر للتحقق باستمرار من مستشعر العين السفلي. سيحتاج روبوت الواقع الافتراضي إلى تكرار هذه السلوكيات بينما لا يكتشف مستشعر العين السفلية اللون الأحمر. قم بتغيير شرط الحلقة بينما عن طريق وضع الكلمة الأساسية وليس أمام الشرط. يجب أن يبدو مشروعك الآن كما يلي:
def main (): # ابحث عن مبنى بينما لم يتم اكتشاف الحد الأحمر بينما ليس صحيحًا: # هل يكتشف مستشعر المسافة قلعة ؟ إذا front_distance.found_object (): # Crash castle تم اكتشافه بواسطة Distance Sensor drivetrain.drive(للأمام) آخر: # Turn للعثور على قلعة باستخدام Distance Sensor drivetrain.turn ( لليمين) انتظر(5، مللي ثانية)
-
ثم، قم بتغيير الشرط من True إلى الأمر down_eye.detect. اضبط المعلمة على "أحمر". يجب أن يبدو مشروعك الآن كما يلي:
def main (): # ابحث عن مبنى بينما لم يتم اكتشاف الحد الأحمر بينما لم يتم اكتشافه down_eye.detect (أحمر): # هل يكتشف مستشعر المسافة قلعة ؟ إذا front_distance.found_object (): # Crash castle تم اكتشافه بواسطة Distance Sensor drivetrain.drive(للأمام) آخر: # Turn للعثور على قلعة باستخدام Distance Sensor drivetrain.turn ( لليمين) انتظر(5، مللي ثانية)
- افتح ملعب Dynamic Castle Crasher إذا لم يكن مفتوحًا بالفعل، وقم بتشغيل المشروع. هل يتصرف روبوت الواقع الافتراضي كما كنت تنوي ؟
-
عند تشغيل هذا المشروع، سيقود روبوت الواقع الافتراضي نحو كائن تم اكتشافه، وينعطف يمينًا بخلاف ذلك. ومع ذلك، على الرغم من أن مستشعر العين السفلية يبحث عن الحدود الحمراء، إلا أنه لا يتم إخبار روبوت الواقع الافتراضي بما يجب فعله بمجرد اكتشافه للأحمر، لذلك يستمر في القيادة ويسقط في النهاية من الملعب.
بمجرد استيفاء شرط الحلقة بينما ، سيتم تنفيذ تدفق المشروع خارج الحلقة بينما.
قم باختيار الزر التالي لمواصلة بقية هذا الدرس.