المدونةالفصل الثالثثالث متوسطمستشعرات المسافة | الوحدة الثالثة | الدرس الأول

مستشعرات المسافة | الوحدة الثالثة | الدرس الأول

مستشعرات المسافة

مستشعرات المسافة هو عنوان الدرس الأول من الوحدة الثالثة التي تحمل اسم “مستشعرات الروبوت” في الفصل الدراسي الثالث من مقرر “ثالث متوسط”.

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

مستشعرات المسافة

لذا قم بقراءة نواتج التعلُّم بعناية، ثم أعد قراءتها وتأكَّد من تحصيل محتوياتها بعد انتهائك من دراسة الموضوع.

نواتج التعلُّم

  • معرفة بيئة “فيكس كود في آر”.
  • التمييز بين مستشعرات روبوت الواقع الافتراضي، وتطبيقاته في الحياة الواقعية.
  • استخدام مستشعر المسافة لبرمجة روبوت الواقع الافتراضي.
  • استخدام لبنات فئة الاستشعار.
  • استخدام لبنة إلى الأبد (Forever).
  • إضافة تعليقات نصية لشاشة المُستخدِم.
  • برمجة الروبوت ليتحرك باتّباع الحائط.

هيا لنبدأ!

مقدمة – مستشعرات المسافة

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

مستشعرات فيكس كود في آر

يمنحك “فيكس كود في آر” القدرة على برمجة روبوت الواقع الافتراضي باستخدام مستشعرات الاصطدام (Bumper) والمسافة (Distance) والعين (Eye)، ومع وجود كل هذه المستشعرات، يمكِنك أن تجعل روبوت الواقع الافتراضي يتصرف مثل المركبة ذاتية القيادة.

في الجدول الآتي، مقارنة بين الحواس البشرية والمستشعرات المطابقة لها المُستخدَمة للتحكُّم في حركة روبوت الواقع الافتراضي:

مستشعرات المسافة

مستشعرات المسافة

يساعِد مستشعر المسافة (Distance Sensor) الروبوت على التنقُّل من خلال اكتشاف موقعه وأي شيء قد يكون في مساره، كما يمكِن للروبوتات قياس المسافة بينها وبين كائن ما في بيئتها باستخدام هذه المستشعرات.

هناك نوعان من مستشعرات المسافة:

  1. مستشعرات المسافة بالموجات فوق الصوتية (Ultrasonic Distance Sensor)

يقيس مستشعر الموجات فوق الصوتية المسافة إلى الجسم المُستهدَف عن طريق إرسال موجات فوق صوتية.

يمكِن استخدام مستشعر المسافة بالموجات فوق الصوتية لقياس منسوب المياه أو السوائل الأخرى في خزان، أو في تقنية الوقوف الذاتي (Self-Parking) وأنظمة السلامة المضادة للتصادم (Anti-Collision Safety) في السيارات.

  1. مستشعر المسافة بالليزر (Laser Distance Sensor)

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

يتم استخدام مستشعرات المسافة بالليزر في تطبيقات مثل مراقبة الجودة وعملية المراقبة (Process Monitoring) وفي التصنيع كوضع المكوِّنات بدقة أثناء عملية التجميع في صناعة السيارات.

مستشعرات المسافة

معلومة

يتم استخدام الموجات فوق الصوتية في مجالات مختلفة، مثل التصوير بالموجات فوق الصوتية أو لتسريع العمليات الكيميائية.

مستشعر المسافة لروبوت الواقع الافتراضي

تم بناء مستشعر المسافة بالليزر (Laser Distance Sensor) على الجزء الأمامي من روبوت الواقع الافتراضي لتوضيح المسافة بين الروبوت وأقرب كائن، وحساب المسافة باستخدام الوقت الذي يستغرقه ضوء الليزر للارتداد من الجسم إلى المستشعر.

يستطيع مستشعر المسافة اكتشاف أي كائن قريب من روبوت الواقع الافتراضي والأشياء البعيدة والجدار على الجانب الآخر في ملاعب “فيكس كود في آر”.

وعندما لا يكون هناك شيء أمام الروبوت، يبلغ مستشعر المسافة أن المسافة أكبر من 3000 مليمتر.

مستشعرات المسافة

معلومة

يركز الليزر على بقعة ضيقة، وهذا يتيح تطبيقات متعدِّدة، مثل: القطع بالليزر، والطباعة الحجرية (Lithography)، ومحركات الأقراص الضوئية، وطابعات الليزر، وماسحات الباركود الضوئية (Barcode Scanners) وغير ذلك.

لاحظ أنه يمكِن اكتشاف الكائنات البعيدة من خلال مستشعر روبوت الواقع الافتراضي عندما تكون زاوية المجال (Angle Field) قريبة من مركز شعاع الليزر.

بإمكانك مراجعة محتوى موضوع “مستشعرات المسافة” من بدايته وحتى نهاية هذا القسم، من خلال الرابط التالي:

لمعرفة المزيد من المعلومات عن مستشعرات المسافة في VEXcode VR، قم بالاطّلاع على الرابط التالي:

استخدام مستشعرات المسافة في VEXcode VR – vex robotics

لبنات فئة الاستشعار

تتضمن فئة الاستشعار (Sensing) اللبنات التي ستستخدمها لبرمجة روبوت الواقع الافتراضي للتفاعل مع الشروط، واتّخاذ القرارات، وتنفيذ الإجراءات بناءً على البيانات التي يتلقاها من المستشعرات الخاصة به.

لبنات المُراسِل (Reporter Blocks)

لبنة المُراسِل هي لبنة شكل دائري أو سداسي ولا يمكِن استخدامها بمفردها، ولكن يتم استخدام داخل لبنة أخرى، مثل: فئة التحكُّم (Control) أو فئة العمليات (Operators).

لبنات المُراسِل المنطقية (Boolean Reporter)

لبنات المُراسِل المنطقية هي لبنات ذات شكل سداسي يتم استخدامها لتكوين الشروط، وتكون النتائج التي تُرسِلها هذه الشروط هي صوات (True) أو خطأ (False).

مستشعرات المسافة

لبِنَتا مستشعر المسافات (Distance Sensing)

تحتوي فئة الاستشعار على لبنتين أساسيتين من لبنات مستشعر المسافة، وهما:

  • لبنة المسافة الأمامية وجدت كائنًا. (FrontDistance found an object?).
  • لبنة المسافة الأمامية في ( ) (FrontDistance in ( )).

لبنة المسافة الأمامية وجدت كائنًا؟ (FrontDistance found an object?)

لبنة المسافة الأمامية وجدت كائنًا؟ هي لبنة مُراسِل منطقية تُرجع صوابًا أو خطأً إذا اكتشف مستشعر المسافة كائنًا أو لم يكتشفه.

مستشعرات المسافة

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

لبنة المسافة الأمامية في ( ) (FrontDistance in ( ))

لبنة المسافة الأمامية في ( ) هي لبنة مستشعر المسافة (Distance Sensor) والتي تبين المسافة بين روبوت الواقع الافتراضي وأقرب كائن من خلال قيم رقمية بوحدة المليمتر (mm) أو البوصة (Inch).

مستشعرات المسافة

لبنة إلى الأبد

لبنة إلى الأبد (Forever) هي لبنة تكرار الأوامر (Repeat Command) توجد في فئة تحكُّم، وتكرِّر اللبنات الموجودة بداخلها إلى الأبد.

مثال 1: التوقُّف قبل الاصطدام بعائق

ستبرمج روبوت الواقع الافتراضي للتحرُّك نحو القلعة في ملعب القلعة المحطم (Castle Crasher)، بالسرعة الافتراضية، وعندما تصبح المسافة من الروبوت إلى القلعة 50 مليمتر، فإنه يتوقَّف عن الحركة.

مستشعرات المسافة

في هذا المثال، يتم التحقُّق من حالة لبنة إذا ثم آخر (if then else) (المسافة بالمليمتر < 50) بشكل متكرِّر أثناء تحرك الروبوت للأمام، يتم وضع لبنة إذا ثم آخر داخل لبنة إلى الأبد.

عند اختبار هذا المقطع البرمجي، ستلاحظ أن روبوت الواقع الافتراضي يتوقَّف لتجنُّب الاصطدام بالقلعة، عندما تصبح المسافة عن العائق أقل من 50 مليمتر.

مستشعرات المسافة

معلومة

كلما زادت سرعة الروبوت، تأخر في التوقُّف.

مثال 2: تجنُّب العائق مع حدوث تباطؤ متناسب مع المسافة

لتشاهد مثالًا يتباطأ فيه روبوت الواقع الافتراضي عند التحرُّك نحو العائق.

اضبط سرعة الروبوت (المسافة الأمامية في mm /6) لخفض سرعته بشكل مناسب.

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

مستشعرات المسافة

مثال 3: تجنُّب عائق متبوع بقرار الانعطاف

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

ستستخدِم الآن عنصر البرمجة الجديد Turn 90 left or right لجعل الروبوت يتحرَّك بشكل مستمر.

مستشعرات المسافة

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

إضافة تعليقات نصية في البرامج

التعليقات هي لبنات نصية تُضاف إلى المقطع البرمجي لجعله مفهومًا وذلك من خلال وصف اللبنات، كما لا تؤثر التعليقات على المقطع البرمجي؛ بل تساعِد على صيانته أو تطويره في المستقبل.

لإضافة تعليقات في أحد المقاطع البرمجية في بيئة “فيكس كود في آر”، عليك استخدام لبنة تعليق (comment) الموجودة في فئة التعليقات (comments).

أنشئ المقطع البرمجي الآتي الذي يتحرك الروبوت فيه إلى الأمام وأضف تعليقات إليه.

لإضافة تعليق:

  1. من فئة التعليقات (Comments).
  2. اسحب لبنة تعليق (comment).
  3. ضعها قبل أمر اللبنة.
  4. اضغط على لبنة تعليق (comment).
  5. ثم اكتب “يتحرك الروبوت إلى الأمام مسافة 200 مليمتر.”.

معلومة

في جميع لغات البرمجة توجد رموز تسبق التعليقات أو يمكِن تضمينها، وتخبر هذه الرموز المحول البرمجي (Compiler) الذي يحول لغة البرمجة إلى لغة يفهمها الحاسب بأن يتجاهل النص الذي يليها.

برمجة الروبوت ليتحرك باتّباع الحائط

بعد أن تعرَّفت على مستشعرات المسافة الخاصة بالتحكُّم في حركة روبوت الواقع الافتراضي في بيئة “فيكس كود في آر”؛ ستبرمج الروبوت ليتحرك ويتبع حائط الملعب، ويستمر في التحرُّك إلى الأمام وينعطف عندما يجد عوائق أمامه.

مستشعرات المسافة

ستنشئ عنصر البرمجة الجديد Follow the wall، وستقسِّم مشروعك إلى وحدات أصغر.

لإنشاء عنصر البرمجة الجديد Follow the wall:

  1. من فئة عناصر البرمجة الجديدة (My blocks).
  2. اضغط على إنشاء عنصر (Make a block).
  3. اضغط على عنصر البرمجة الجديد الذي تم إنشاؤه واكتب اسمه “Follow the wall”.
  4. اضغط على موافق (OK).

مستشعرات المسافة

ستنشئ الآن المقطع البرمجي لعنصر البرمجة الجديد Follow the wall، وتضيفه أسفل اللبنة المحدَّدة التي تم إنشاؤها.

لإضافة المقطع البرمجي إلى عنصر البرمجة الجديد Follow the wall:

  1. من فئة التحكم (Control)، أضف لبنة إذا ( ) ثم ( ) آخر ( ) (if ( ) then ( ) else ( )) ضمن لبنة تعريف عنصر البرمجة الجديد Follow the wall.
  2. من فئة العمليات (Operators)، أضف لبنة أكبر من (Greater than).
  3. من فئة الاستشعار (Sensing)، أضف لبنة المسافة الأمامية في ( ) (FrontDistance in ( )) في الجانب الأيمن من لبنة ( ) أكبر من ( ) (( ) greater than ( )).
  4. ثم اكتب “200” في الجانب الأيسر.
  5. من فئة نظام الدفع (Drivetrain)، أضف لبنة تحرك ( ) عدد ( ) (drive ( ) for ( )) داخل حالة لبنة إذا ( ) ثم ( ) آخر ( ) (if ( ) then ( ) else ( )).
  6. من فئة نظام الدفع (Drivetrain)، أضف لبنة انعطف ( ) لمدة ( ) (turn ( ) for ( )) بعد لبنة تحرك ( ) عدد ( ) (drive ( ) for ( )).
  7. ثم اضغط على القائمة المنسدلة واختر اليسار (left).
  8. من فئة نظام الدفع (Drivetrain)، أضف لبنة انعطف ( ) لمدة ( ) (turn ( ) for ( ))، داخل حالة آخر (else) للبنة إذا ( ) ثم ( ) آخر ( ) (if ( ) then ( ) else ( )).
  9. ثم اضغط على القائمة المنسدلة واختر يمين (right).

مستشعرات المسافة

الآن في منطقة البرمجة وبعد لبنة عندما بدأت (when started)، ستنشئ الآن في منطقة البرمجة وبعد لبنة عندما بدأت (when started)، ستنشئ البرنامج الرئيس، باستخدام عنصر البرمجة الجديد Follow the wall.

الرئيس، باستخدام عنصر البرمجة الجديد Follow the wall.

لإنشاء المقطع البرمجي الرئيس:

  1. من فئة التحكم (Control)، بعد لبنة عندما بدأت (when started) أضف لبنة إلى الأبد (forever).
  2. من فئة عناصر برمجة جديدة (My blocks) أضف عنصر البرمجة الجديد Follow the wall.
  3. من فئة التعليقات (Comments)، أضف لبِنات تعليق (comment) إلى المقطع البرمجي الخاصة بك.

مستشعرات المسافة

بإمكانك مراجعة محتوى موضوع “مستشعرات المسافة” بدايةً من عنوان “إضافة تعليقات نصية في البرامج” وحتى نهاية الموضوع، من خلال الرابط التالي:

اختبر تحصيلك لمحتوى الموضوع من خلال الرابط التالي:

الواجب الإلكتروني

إلى هنا يكون قد انتهى موضوع “مستشعرات المسافة“، لا تنسوا مراجعة نواتج التعلُّم أعلى المقال، وانتظرونا في الموضوع القادم!

روابط هامة

مقررات الفصل الدراسي الثالث

مشاركة المقال عبر:

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *