المدونةالفصل الثالثسادس ابتدائياتخاذ القرارات | الوحدة الثالثة | الدرس الثاني

اتخاذ القرارات | الوحدة الثالثة | الدرس الثاني

اتخاذ القرارات

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

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

اتخاذ القرارات

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

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

  • برمجة الروبوت لاتخاذ القرارات.
  • برمجة الروبوت ليتحرك مسافات محدَّدة باستخدام الجمل الشرطية.
  • برمجة الروبوت لاكتشاف الأضواء باستخدام الجمل الشرطية.

هيا لنبدأ!

مقدمة – اتخاذ القرارات

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

تستعين السيارة بالمستشعرات لقراءة محيطها واتّخاذ قرارات التحرُّك بأمان.

برمجة الروبوت لاتخاذ القرارات

حتى الآن تمت برمجة الروبوت لتنفيذ مجموعة من التعليمات وفق تسلسل محدَّد سابقًا من أجل أداء مهام محدَّدة.

الخطوات الآتية هي برمجة الروبوت ليعمل بشكل مستقل، وهذا يعني أن الروبوت سيتحقَّق من بيئته باستمرار من خلال المستشعرات، ويتّخذ قرارات من تلقاء نفسه حول المهمة التي يجب تنفيذها بعد ذلك.

لتحقيق عمل الروبوت بشكل مستقل، سيتم برمجة الروبوت للتنقُّل باستخدام لبنات فئة المستشعرات (Sensors)، وتحديدًا لبنتي مستشعر الألوان (Colour sensor) ومستشعر المسافة (Distance sensor).

ستتمكَّن هاتان اللبنتان الروبوت من اكتشاف معالم البيئة المختلفة كالألوان والمسافات والتجاوب معها، والتي سيستخدمها الروبوت لتحديد الإجراء الذي يجب اتّخاذه بعد ذلك.

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

استخدام مستشعر الألوان – VEX Library

برمجة الروبوت للحركة بشكل مستقل

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

  • التحرُّك للأمام.
  • الانعطاف 90 درجة إلى اليمين إذا اكتشف مستشعر الألوان اللون الأبيض.
  • التوقُّف لمدة 1000 مللي ثانية إذا اكتشف مستشعر الألوان اللون الأحمر.
  • الدوران 180 درجة إلى اليمين إذا اكتشف مستشعر الموجات فوق الصوتية عائقًا على مسافة 20 سنتيمتر أو أقل.
  • تشغيل الضوء الأخضر إذا اكتشف مستشعر الألوان اللون الرمادي، وفيما عدا ذلك يكون هناك وميض للضوء الأحمر.

استخدام لبنة تكرار غير محدود (repeat indefinitely)

ستستخدِم لبنة تكرار غير محدود (repeat indefinitely) من فئة التحكم (Control) لبرمجة الروبوت للتحقُّق بشكل متكرِّر من معالم خريطة الطريق.

اتخاذ القرارات

استخدام لبنة إذا.. نفذ (if do)

برمج الروبوت لاكتشاف الألوان

ستبرمِج الروبوت لاكتشاف لون ما، وإذا وجده سينفِّذ جزءًا معيَّنًا من مقطع برمجي باستخدام لبنة إذا..نفّذ (if do) من فئة التحكم (Control).

لإنشاء لبنة إذا..نفّذ (if do) ستستخدِم أيضًا أول لبنة من فئة المنطق (Logic). هذا معامل مقارنة (Comparison operator) يُستخدَم لمقارنة مُدخَلين من نفس النوع مثل الأرقام أو الألوان وغيرها، فإذا كان الشرط صحيحًا فإن معامل المقارنة سيعطي الجواب صواب (True)، وإذا كان الشرط خطأً فإن معامل المقارنة سيعطي الجواب خطأ (False).

اتخاذ القرارات

ستحتاج إلى استخدام لبنة من فئة الألوان (Colours) كمُدخل 2 لإنشاء الشرط المطلوب.

فئة الألوان (Colours) هي لوحة تتكوَّن من 8 لبنات برمجية خاصة بمنتقي الألوان (Colour picker)، يُمكِن مقارنتها بالألوان التي يكتشفها مستشعر الألوان.

لاحظ أن

تحتوي فئة الألوان (Colours) على الألوان التالية: الرمادي، والأسود، والأزرق، والاخضر، والأصفر، والأحمر، والأبيض، والبني.

برمج الروبوت للتحرُّك إلى الأمام مع تكرار التحقُّق من وجود اللون الأبيض باستخدام مستشعر الألوان (Colour sensor) ثم الانعطاف بمقدار 90 درجة إلى اليمين عند اكتشاف اللون الأبيض.

للتحرُّك والتحقُّق من وجود اللون الأبيض بشكل متكرِّر:

  1. من فئة Control (التحكم)، أضف لبنة repeat indefinitely (تكرار غير محدود).
  2. من فئة Action (الحدث)، أضف لبنة drive (القيادة) داخل لبنة repeat indefinitely (تكرار غير محدود).
  3. من فئة Control (التحكم)، أضف لبنة if do (إذا..نفّذ).
  4. من فئة Logic (المنطق)، أضف لبنة comparison (المقارنة).
  5. من فئة Sensors (المستشعرات)، أضف لبنة colour colour sensor (لون مستشعر الألوان).
  6. من فئة Colours (الألوان)، أضف لبنة white colour picker (منتقي اللون الأبيض).
  7. من فئة Action (الحدث)، أضف لبنة turn (الانعطاف) داخل لبنة if do (إذا..نفّذ).
  8. اضبط speed % (نسبة السرعة) إلى 10.
  9. اضبط degree (الدرجات) إلى 90.

اتخاذ القرارات

بعد ذلك برمج الروبوت أثناء حركته إلى الأمام لتكرار الفحص باستخدام مستشعر الألوان (Colour sensor) من أجل اكتشاف اللون الأحمر، وعند اكتشافه برمج الروبوت للتوقُّف والانتظار 1000 مللي ثانية.

للتحقُّق من وجود اللون الأحمر:

  1. من فئة Control (التحكم)، أضف لبنة if do (إذا..نفّذ) داخل لبنة repeat indefinitely (تكرار غير محدود).
  2. من فئة Logic (المنطق)، أضف لبنة comparison (المقارنة).
  3. من فئة Sensors (المستشعرات)، أضف لبنة colour colour sensor (لون مستشعر الألوان).
  4. من فئة Colours (الألوان)، أضف لبنة red colour picker (منتقي اللون الأحمر).
  5. من فئة Action (الحدث)، أضف لبنة stop (توقف) داخل لبنة if do (إذا..نفّذ).
  6. من فئة Control (التحكم)، أضف لبنة انتظر مللي ثانية wait ms.
  7. ثم اضبط المدة الزمنية إلى 1000 مللي ثانية.

اتخاذ القرارات

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

برمج الروبوت لاكتشاف المسافة

بعد ذلك أضف لبنة إذا..نفّذ (if do) أخرى لجعل الروبوت ينعطف 180 درجة إلى اليمين إذا اكتشف مستشعر الموجات فوق الصوتية (Ultrasonic sensor) عائقًا على مسافة 10 سنتيمتر أو أقل.

أضف لبنة إذا..نفّذ (if do) داخل لبنة تكرار غير محدود (repeat indefinitely) حتى يتحقَّق الروبوت من المسافة بصورة مكرَّرة.

استخدم لبنة الرقم (number) التي ستجدها في فئة حساب (Math) لإجراء مقارنة بين المسافة الحالية التي يكتشفها مُستشعر المسافة أثناء حركة الروبوت ومسافة 10 سنتيمتر. ستحتفظ لبنة الرقم (number) بقيمة الرقم 10.

للتحقُّق من المسافة بصورة مستمرة:

  1. من فئة Control (التحكم)، أضف لبنة if do (إذا..نفّذ) داخل لبنة repeat indefinitely (تكرار غير محدود).
  2. من فئة Logic (المنطق)، أضف لبنة comparison (المقارنة).
  3. من فئة Sensors (المستشعرات)، أضف Ultrasonic sensor (مستشعر الموجات فوق الصوتية).
  4. اضبط comparison (المقارنة) إلى ≥.
  5. من فئة Math (حساب)، أضف لبنة number (الرقم) واضبط الرقم إلى 10.
  6. من فئة Action (الحدث)، أضف لبنة turn (الانعطاف).
  7. اضبط degree (الدرجة) إلى 180.

اتخاذ القرارات

برمجة الروبوت لاستخدام الأضواء الخاصة به

في الختام، أضف جزءًا من المقطع البرمجي إلى لبنة تكرار غير محدود (repeat indefinitely)، والتي ستجعل الروبوت يومض بالضوء الأخضر أو الأحمر أثناء حركته.

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

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

استخدام لبنة إذا..نفّذ..أخرى (if do else)

استخدِم لبنة إذا..نفّذ..أخرى (if do else) من فئة التحكم (Control) لبرمجة الروبوت لتنفيذ إجراءٍ معيَّن في حالة اكتشاف مستشعر الألوان اللون الرمادي، وبرمجته لتنفيذ إجراء آخر إذا لم يكتشف مستشعر الألوان اللون الرمادي.

عليك إضافة لبنة إذا..نفّذ..أخرى (if do else) داخل لبنة تكرار غير محدود (repeat indfinitely) ثم إنشاء تعبير هذه اللبنة، كما يُطلق على هذه التعبير أيضًا اسم شرط (condition)؛ مما يعني أنه وفقًا للشرط يتم تنفيذ الجزء المحدَّد من المقطع البرمجي.

تتكوَّن كل لبنة إذا..نفّذ..أخرى (if do else) من تعبير متعلق بحالة معيَّنة، وتتضمن أيضًا جزأين من المقطع البرمجي، أحدهما يتم تضمينه في جزء نفّذ (do) من اللبنة، والآخر يتم تضمينه في جزء أخرى (else) من اللبنة.

اتخاذ القرارات

لاختيار الأضواء:

  1. من فئة Control (التحكم)، أضف لبنة إذا..نفّذ..أخرى (if do else) داخل لبنة repeat indefinitely (تكرار غير محدود).
  2. من فئة Logic (المنطق)، أضف لبنة comparison (المقارنة).
  3. من فئة Sensors (المستشعرات)، أضف لبنة colour sensor (مستشعر الألوان).
  4. من فئة Colours (الألوان)، أضف لبنة grey colour picker (منتقي اللون الرمادي).

لاحظ أن

لا يؤثر وضع اللبنات البرمجية داخل لبنة تكرار غير محدود (repeat indefinitely) على تسلسل تشغيل اللبنات. لذلك، يمكِنك وضع لبنة إذا..نفّذ..أخرى (if do else) قبل لَبنات إذا..نفّذ (if do) على سبيل المثال.

ستستخدِم اللبنة التي تضبط تشغيل ضوء روبوت المحاكاة.

اتخاذ القرارات

برمج الروبوت ليومض الضوء الأخضر عندما يتحرَّك على طريق باللون الرمادي، ويومض الضوء الأحمر في أي موضع آخر، أي عندما يكتشف مستشعر الألوان اللون الأبيض أو الأحمر.

لبرمجة الأضواء:

  1. من فئة Action (الحدث)، أضف لبنة colour (اللون) في جزء do (نفّذ) من لبنة if do else (إذا..نفّذ..أخرى) بالإعدادات الافتراضية.
  2. من فئة Action (الحدث)، أضف لبنة colour (اللون) في جزء else (أخرى) من لبنة if do else (إذا..نفّذ..أخرى).
  3. حدِّد اللون إلى red (الأحمر).
  4. وضع التشغيل إلى flashing (وميض).

اتخاذ القرارات

لتنفيذ البرنامج، ضع الروبوت عند النقطة A من خريطة الطريق، ثم اضغط على زر بدء (Start)، ولإيقاف تشغيل البرنامج اضغط على نفس الزر.

لتشغيل البرنامج أكثر من مرة، اضغط أولًا على زر إعادة الضبط (reset)، والذي يضع الروبوت عند النقطة A مرة أخرى، ثم اضغط على زر بدء (Start).

لاحظ أن

يتيح هذا البرنامج للروبوت اتّخاذ قرارات بشأن مشكلة معقدة تتعلَّق بوجود أكثر من مشكلة في خريطة الطريق (كانعطاف الطريق بمقدار 90 درجة، ووجود خطوط حمراء ووجود عائق)؛ مما يمكِّن الروبوت من الحركة في خرائط طرق متعدِّدة توجد بها عوائق ومعالم أخرى.

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

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

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

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

روابط هامة

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

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

اترك تعليقاً

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