التحكم في الروبوت | الوحدة الثالثة | الدرس الأول

التحكم في الروبوت هو عنوان الدرس الأول من الوحدة الثالثة التي تحمل اسم “برمجة الروبوت” في الفصل الدراسي الثالث من مقرر “ثاني متوسط”.
ستتعرف في هذا الموضوع على كيفية التحكُّم في الروبوت باستخدام المُتغيِّرات والتمييز بينها، وعلى كيفية التحكُّم بحركة الروبوت، وأيضًا على كيفية مراقبة قيم المُتغيِّر، وكيفية التعامل مع العمليات الحسابية في البرمجة، وعرض الأكواد للمشروع، بالإضافة إلى تغيير معاملات بايثون عند استخدام اللبنات في بيئة فيكس كود في آر (VEXcode VR).
لذا قم بقراءة نواتج التعلُّم جيدًا، ثم أعد قراءتها وتأكَّد من تحصيل كافة محتوياتها بعد انتهائك من دراسة الموضوع.
نواتج التعلُّم
- معرفة ماهية المتغيرات وأنواعها الرئيسة.
- معرفة الشروط الواجب مراعاتها عند اختيار اسم لمتغير.
- إنشاء المتغيرات الرقمية.
- إعادة تسمية المتغيرات للتحكُّم في حركات الروبوت.
- تطبيق مراقبة تغيُّر قيم المتغيِّر.
- تنفيذ العمليات الحسابية في بيئة فيكس كود في آر.
- برمجة الروبوت لرسم الأشكال باستخدام العمليات المنطقية.
- عرض أكواد المشروع في نافذة عارض الكود.
- كيفية قراءة الأوامر بلغة بايثون في نافذة عارض الكود.
هيا لنبدأ!
المتغيرات
المُتغيِّر يشبه الاسم المستعار لشيء يجب أن يتذكّره جهاز الحاسب.
تعمل المتغيِّرات مثل الحاويات في المقطع البرمجي للحفاظ على البيانات التي يمكِن أن تكون أرقامًا وأحرفًا.
لتخزين أنواع مختلفة من البيانات هناك، فئتان رئيستان من المتغيِّرات، وهما: المتغيِّرات الرقمية والمتغيِّرات النصية، ويُطلق على المتغيِّرات النصية أيضًا اسم السلاسل النصية (Strings).
يمكِنك العثور على جميع اللبنات الخاصة بالمتغيِّرات في فئة المتغيِّرات (Variables).
لمعرفة المزيد من المعلومات عن المتغيرات في بايثون، قم بالاطّلاع على الرابط التالي:
اسم المتغيِّر
عندما تنشئ متغيِّرًا فإنك تحدِّد اسمه.
- يجب أن يكون اسم كل متغيِّر فريدًا ولم يتم استخدامه سابقًا في نفس المقطع البرمجي.
- يمكِن أن يتكوَّن اسم المتغيِّر من مجموعة أحرف كبيرة وصغيرة، ويمكِنك استخدام أكثر من كلمة مع وجود شرطة سفلية (_) بينهما.
- بعض الكلمات لا يمكِن استخدامها كاسم متغيِّر؛ لأنها كلمات خاصة تستخدمها بالفعل بيئة البرمجة (على سبيل المثال: تكرار، محرك الأقراص، الدوران، بينما، إذا، آخر، إلخ). وتسمى بالكلمات الرئيسة المحجوزة.
- يجب ألا يحتوي اسم المتغيِّر على أحرف خاصة (على سبيل المثال: !، “، إلخ)، وأيضًا لا يبدأ برقم ولا يحتوي على مسافات.
- يُفضَّل أن يمثِّل اسم المتغيِّر محتواه؛ حتى تفهم ما يمثله المتغيِّر عندما تراه في المقطع البرمجي.
إنشاء متغيِّر رقمي
عليك إنشاء متغيِّر قبل استخدامه في بيئة “فيكس كود في آر”، أنشئ متغيِّرًا رقميًّا جديدًا.
لإنشاء متغيِّر رقمي:
- من فئة المتغيرات (Variables).
- اضغط على إنشاء متغير (Make a Variable).
- في نافذة متغير رقمي جديد (New Numeric Variable)، اكتب اسمًا للمتغيِّر، على سبيل المثال “speed”.
- ثم اضغط على إرسال (Submit).
بإمكانك مراجعة محتوى موضوع “التحكم في الروبوت” من بدايته وحتى هذه النقطة، من خلال الرابط التالي:
إعادة تسمية متغيِّر رقمي
يمكِنك إعادة تسمية كل متغيِّر في بيئة فيكس كود في آر، أعد تسمية المتغيِّر الافتراضي “myVariable”.
لإعادة تسمية myVariable:
- من فئة المتغيرات (Variables).
- اضغط بزر الفأرة الأيمن على لبنة myVariable.
- من القائمة المنسدلة، اختر إعادة تسمية المتغير (Rename variable).
- في النافذة إعادة تسمية المتغير (Rename variable)، اضغط على لبنة myVariable.
- اكتب الاسم الجديد للمتغيِّر، على سبيل المثال “newVariable”.
- اضغط على إرسال (Submit).
تم تغيير اسم المتغيِّر إلى (newVariable).
حذف متغير (Delete variable)
يمكِنك حذف المتغيِّر الافتراضي في بيئة “فيكس كود في آر”، احذف المتغيِّر “newVariable”.
لحذف متغير:
- من فئة المتغيرات (Variables).
- اضغط بزر الفأرة الأيمن على لبنة newVariable.
- من القائمة المنسدلة، اختر حذف المتغير “newVariable” (Delete the “newVariable” variable).
الآن، في فئة المتغيرِّات هناك متغيِّر speed.
طريقة استخدام المتغيرات للتحكُّم في حركات روبوت الواقع الافتراضي
باستخدام متغيِّر speed، ستشاهد كيف يمكِنك الاستفادة من استخدامه في بيئة “فيكس كود في آر”.
باستخدام شبكة خريطة (Grid Map)، يمكِنك اختبار روبوت الواقع الافتراضي في المثال التالي، حيث يبدأ الروبوت في التحرُّك للأمام بسرعة 10 %.
باستخدام متغيِّر speed، يمكِنك جعل الروبوت يتسارع بنسبة 20 % كل 200 مليمتر (mm).
مراقبة قيم المتغير
يمكِنك فتح وحدة تحكُّم المراقبة (Monitor Console) لعرض التغييرات التي تحدث للمتغيِّر speed عند تشغيل المقطع البرمجي. ألق نظرة على كيفية تغيُّر قيم المتغيِّر speed أثناء مرحلة التسارع.
لتنفيذ المقطع البرمجي:
- من فئة المتغيرات (Variables).
- حدِّد خانة الاختيار متغيِّر speed.
- حدِّد أيقونة تحكم المراقبة (Monitor Console).
- اضغط على بداية (Start).
بإمكانك مراجعة محتوى موضوع “التحكم في الروبوت” بدايةً من عنوان “إعادة تسمية متغير رقمي” وحتى نهاية هذا القسم، من خلال الرابط التالي:
العمليات الحسابية
في البرمجة، تستخدِم المعاملات الرياضية لإجراء الحسابات.
يمكِنك استخدام “فيكس كود في آر” لإجراء أي عملية حسابية، مثل: الجمع، والطرح، والضرب، والقسمة، وغيرها.
كما تعلَّمت سابقًا، المُعامِل هو رمز يمثِّل إجراءً محددًا، على سبيل المثال: علامة الجمع (+) هي مُعامِل يمثل الجمع.
وتسمى المُعامِلات التي تستخدِمها لإجراء العمليات الحسابية بالمُعامِلات الرياضية، ويمكِنك العثور على المُعامِلات الرياضية في فئة العمليات (Operators).
مثال 2: العمليات الحسابية
في المثال التالي، ستنفِّذ عملية حسابية بسيطة في بيئة فيكس كود في آر.
ستستخدِم المتغيِّر “x” الذي ستعيّنه إلى قيمة 2.
ستستخدِم أيضًا متغيِّر “Multiplication” الذي ستعيّنه إلى قيمة متغيِّر “x” مضروبًا في 6، باستخدام بيئة عملية الضرب (multiplication operator).
عند تنفيذ المقطع البرمجي تتم مراقبة قيم المتغيِّرات “x” و”Multiplication” عن طريق وحدة تحكم المراقبة (Monitor Console) ويتم طباعة قيمة متغيِّر Multiplication إلى وحدة تحكم العرض (Print Console).
لتنفيذ المقطع البرمجي:
- من فئة المتغيرات (Variables).
- حدِّد خانة الاختيار (checkbox) للمتغير x.
- حدِّد خانة الاختيار (checkbox) للمتغير Multiplication.
- ثم حدِّد رمز وحدة تحكم المراقبة (Monitor Console).
- اضغط على زر بداية (Start).
قد ترغب أحيانًا في تنفيذ نفس التعليمات البرمجية عدة مرات، حتى تتمكَّن من استخدام التكرارات (Loops)، والتي تسمح لك بتكرار نفس الأوامر عدة مرات.
يوفر “فيكس كود في آر” 4 أنواع من التكرارات، وهي: تكرار (repeat)، وتكرار حتى (repeat until)، وإلى الأبد (forever) وفي حين (while).
تكرار ( ) مرات (Repeat ( ) times)
مثال 3: العمليات الحسابية في تكرارات
في المثال التالي، ستنفِّذ عملية حسابية 10 مرات باستخدام حلقة تكرار ( ) مرات (Repeat ( ) times).
ستعيِّن المتغيِّر “x” في البداية يساوي 0 وستبرمجه ليتم زيادته بمقدار 1 في كل مرة يتم فيها تنفيذ التكرار.
ستعيِّن متغيِّر “Multiplication” الذي يساوي المتغيِّر “x” مضروبًا في 6، باستخدام بيئة عمليات الضرب.
في كل مرة يتم فيها تنفيذ التكرار، يتم تحديد قيمة متغيِّر “Multiplication” بواسطة القيمة الحالية للمتغيِّر “x” مضروبة في 6.
أثناء تنفيذ المقطع البرمجي، تكون النتيجة هي مخرجات في وحدة تحكُّم العرض (Print Console).
مثال 4: العمليات الحسابية واستخدام الشرطية في الحلقات
في المثال السابق، ستضيف داخل الحلقة لبنة إذا ( ) (if ( )) لفئة التحكُّم (Control) للتحقُّق مما إذا كان الشرط صحيحًا، وذلك عند كل تكرار.
إذا كان الشرط صحيحًا، يتم تنفيذ أمر اللبنة داخل لبنة إذا ( ).
على وجه التحديد، يتحقَّق هذا الجزء من التعليمات البرمجية عند كل تكرار، إذا كانت قيمة متغيِّر “Multiplication” أقل من 30.
إذا كان صحيحًا، فإن قيمة متغيِّر “Multiplication” يتم إخراجها في وحدة تحكم العرض (Print Console).
لبرمجة حالة لبنة إذا، ستقوم باستخدام لبنة ( ) أقل من ( ) من فئة العمليات (Operators).
بإمكانك مراجعة محتوى موضوع “التحكم في الروبوت” بدايةً من عنوان “العمليات الحسابية” وحتى هذه النقطة، من خلال الرابط التالي:
لبنة تكرار حتى (Repeat Until)
في بعض الأحيان تريد تنفيذ مقطع برمجي حتى يكون شرط معيَّن صحيحًا.
للقيام بذلك، يمكِنك استخدام لبنة تكرار حتى (Repeat Until).
تتيح لك الحلقة الشرطية تشغيل المقطع البرمجي عدة مرات؛ بينما يظل الشرط خطأ.
في العديد من الحالات، تريد أن يعتمد هذا الشرط على عدد المرات التي يتم فيها تنفيذ التكرار.
لحساب عدد تكرارات جزء من التعليمات البرمجية، يمكِنك استخدام متغيِّر رقمي يسمى العداد (Counter).
يمكِنك تعريف القيمة الأوَّليَّة للعداد، كما يمكِنك تحديد القيمة التي تتغيَّر من تكرار إلى آخر، كما يمكِنك برمجة الشرط الذي يتحكَّم في التكرار باستخدام العداد (Counter).
في هذه الحالة، عندما يكون للعداد قيمة معيَّنة، يصبح شرط حلقة تكرار حتى ( ) صحيحًا عندها يتوقَّف التكرار.
مثال 5: العدّ
في المثال التالي، ستبرمج Counter ويتم تعيينه على 0 في بداية المقطع البرمجي، وليتم زيادته بمقدار 1 في كل مرة يتم فيها تنفيذ تكرار داخل تكرار، ستضيف لبنة الانتظار (wait) بقيمة زمنية مدتها 1 ثانية.
وأخيرًا، سوف يتم استخدام لبنة أكبر من ( ) من فئة العمليات لبرمجة حالة حلقة تكرار حتى ( ).
عندما يصبح العداد أكبر من 5، تتوقَّف التكرارات.
أثناء تنفيذ المقطع البرمجي، يمكِنك مراقبة متغيِّر العداد (Counter) ليتم زيادته على التوالي من 1 إلى 5، في وحدة تحكم المراقبة (Monitor Console).
لتنفيذ المقطع البرمجي:
- من فئة المتغيرات (Variables).
- حدِّد خانة الاختيار (checkbox) لمتغير العداد (Counter).
- اختر أيقونة وحدة تحكم المراقبة (Monitor Console).
- اضغط على بداية (Start).
مثال 6: رسم مربع
في المثال التالي، ستبرمج روبوت الواقع الافتراضي لرسم مربع الفن قماش (Art Canvas)، باستخدام حلقة تكرار حتى (repeat until)، ومتغيِّر إضافة 1 إلى القيمة المقابلة ستبرمج الحلقة للتكرار 4 مرات، سيتم تعيين العداد في البداية إلى 0 وسيتم زيادته بمقدار 1 في كل تكرار، حتى يأخذ القيمة 4، وهذا هو الشرط الذي سيوقف فيه التكرارات.
في حين أن قيمة العداد هي 0 و1 و2 و3، فإن روبوت الواقع الافتراضي يتحرَّك إلى الأمام لمسافة تساوي قيمة المتغيِّر مسافة_السفر (Travel_distance) ويجعل الانعطافات لليمين مساوية لقيمة المتغيِّر انعطف (Turn).
يتم تعريف قيم هذين المتغيِّرين في بداية المقطع البرمجي.
الأعداد الزوجية والفردية
في بعض الأحيان تريد التمييز بين نتيجة المقطع البرمجي اعتمادًا على عدد حلقة التكرارات. إذا كان رقم التكرار عددًا فرديًا، فأنت تبرمج نتيجة معيَّنة، وإذا كان رقم التكرار عددًا زوجيًا، فأنت تبرمج نتيجة مختلفة.
للقيام بذلك، يجب عليك استخدام متغيِّر العداد (Counter) عند الشرط الذي ينهي الحلقة تكرار حتى ( ). عندما يأخذ متغيِّر Counter قيمة معيَّنة يتم إنهاء المقطع البرمجي.
حتى ذلك الحين، إذا كان متغيِّر Counter عددًا فرديًا، فإن المقطع البرمجي لديه نتيجة معيَّنة، وإذا كان متغيِّر Counter رقمًا زوجيًا، فإن المقطع البرمجي لديه نتيجة مختلفة.
مثال 7: رسم شكل ثماني
في المثال التالي، برمج روبوت الواقع الافتراضي لرسم شكل ثماني في ملعب الفن قماش (Art Canvas)، وغيِّر لون أداة القلم اعتمادًا على عدد متغيِّر Counter.
إذا كان المتغيِّر Counter عددًا زوجيًا، فإنه يغيِّر لون أداة القلم إلى الأسود، وإذا كان المتغيِّر Counter فرديًا فإنه يغيرها إلى الأحمر.
لإنشاء الشرط الذي سيحدِّد ما إذا كانت قيمة العداد هي رقم زوجي أو فردي؛ ستستخدِم لبنة ما تبقى من ( ) / ( ) (remainder of ( ) \ ( )) للعداد مقسومة على 2.
برمج روبوت الواقع الافتراضي لرسم شكل ثماني.
بإمكانك مراجعة محتوى موضوع “التحكم في الروبوت” بدايةً من عنوان “لبنة تكرار حتى” وحتى نهاية هذا القسم، من خلال الرابط التالي:
عارض الكود
عند إنشاء مشروع يتكوَّن من لبنات، يمكِنك رؤية المقطع للمشروع بلغة بايثون في نافذة عارض كود (Code Viewer).
يسمح لك عارض الكود برؤية اللبنات والنصوص البرمجية في نفس الوقت، وبهذه الطريقة يساعدك على فهم طريقة ترجمة كل لبنة إلى مقطع برمجي نصي في بايثون.
معاملات بايثون
عند استخدام اللبنات البرمجية في بيئة “فيكس كود في آر”، يمكِنك تغيير معاملاتها عن طريق اختيار أحد الخيارات المختلفة من القائمة المنسدلة أو تغيير الأرقام داخل المساحة الدائرية، ولكن في بايثون يتم استخدام الفواصل للفصل بين المعاملات المختلفة.
يعرض الجدول التالي 5 لبنات أساسية وأوامر بلغة بايثون في بيئة فيكس كود في آر:
حلقة For
يتم استخدام حلقة for عندما تريد تكرار مجموعة من الأوامر لعدد محدَّد من المرات، ويتم تحديد عدد التكرارات في معامل النطاق ( ) (range ( )).
حلقة While
يتم استخدام حلقة while عندما لا يكون عدد التكرارات معروفًا.
عندما يكون الشرط صحيحًا فإن الحلقة تتكرَّر، ثم يتم فحص الشرط بعد كل تكرار.
وعندما يكون الشرط خطأ يتوقف التكرار ويتم تنفيذ الصف الذي يلي الحلقة في المقطع البرمجي.
أما إذا كان الشرط خطأ من البداية فلن يتم تنفيذ عبارات الحلقة على الإطلاق.
بإمكانك مراجعة محتوى موضوع “التحكم في الروبوت” بدايةً من عنوان “عارض الكود” وحتى نهاية الموضوع، من خلال الرابط التالي:
اختبر تحصيلك لمحتوى الموضوع من خلال الرابط التالي:
الواجب الإلكتروني
إلى هنا يكون قد انتهى موضوع “التحكم في الروبوت“، لا تنسوا مراجعة نواتج التعلُّم أعلى المقال، وانتظرونا في الموضوع القادم!