Skip to main content

الدرس 3: إضافة مستشعر العين السفلية

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

 

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

منظر بزاوية لملعب Dynamic Castle Crasher يظهر روبوت الواقع الافتراضي وهو يدفع كتلة القلعة. توقف روبوت الواقع الافتراضي قبل دفع كتلة القلعة خارج حافة الملعب.

إضافة مستشعر العين السفلية

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

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

  • تحميل مشروع Unit9Lesson2 من الدرس السابق.

    def main ():
    	while True:
    		# هل يكتشف مستشعر المسافة قلعة ؟
    		
    		إذا front_distance.found_object ():
    			# Crash castle تم اكتشافه بواسطة Distance Sensor
    			drivetrain.drive(للأمام)
    		
    		آخر:
    			# Turn للعثور على قلعة باستخدام Distance Sensor drivetrain.turn 			(
    			لليمين)
    			
    		انتظر(5، مللي ثانية)
  • إعادة تسمية المشروع Unit9Lesson3.
    يعرض شريط أدوات VEXcode VR أسماء المشروع المميزة بمربع أحمر. اسم المشروع هو الوحدة 9 الدرس 3.
  • أضف تعليقًا لملاحظة كيفية استخدام الحلقة بينما مع مستشعر العين السفلية. يجب أن يبدو مشروعك الآن كما يلي:

    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 إذا لم يكن مفتوحًا بالفعل، وقم بتشغيل المشروع. هل يتصرف روبوت الواقع الافتراضي كما كنت تنوي ؟ 
  • عند تشغيل هذا المشروع، سيقود روبوت الواقع الافتراضي نحو كائن تم اكتشافه، وينعطف يمينًا بخلاف ذلك. ومع ذلك، على الرغم من أن مستشعر العين السفلية يبحث عن الحدود الحمراء، إلا أنه لا يتم إخبار روبوت الواقع الافتراضي بما يجب فعله بمجرد اكتشافه للأحمر، لذلك يستمر في القيادة ويسقط في النهاية من الملعب.

    منظر من أعلى إلى أسفل لملعب Dynamic Castle Crasher يظهر روبوت الواقع الافتراضي وهو يدفع قلعة من حافة الملعب ولكنه لا يسقط من الملعب أيضًا.

بمجرد استيفاء شرط الحلقة بينما ، سيتم تنفيذ تدفق المشروع خارج الحلقة  بينما.

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