هيا بنا نتعلم EV3/ المدونة الثامنة/ البرمجة6

في هذه التدوينة إن شاء الله وما يليها من تدوينات سوف نتعرف على أوامر برمجية متقدمة يمكن الإستفادة منها في البرمجة مع ضرب الأمثلة والتحديات التي سوف نستخدم فيها هذه الأوامر البرمجية . فلنبدء على بركة الله ….
أوامر القرائة من الحساس :
تعلمنا سابقاً أوامر الإنتظار للحساسات والتي تكون باللون البرتقالي وهذه الأوامر كانت فائدتها هي إنتظار قيمة معينة للحساس عند الوصول إليها نقوم بعمل “أكشن ” حدث معين ، جميل! …. ولكن إذا أردت أن أتعامل مع قيم الحساسات أو أن ابقيها دائماً في وضع قرائة وعمل حسابات على هذه القيم أو تخزينها في متغيرمعين!، في هذه الحالة سوف نستخدم أوامر القرائة من الحساس وهي تكون في القائمة ذات اللون الأصفر كما هو موضح في الصورة.
التحدي1: في هذا التحدي اجعل الروبوت يقوم بعرض المسافة بينه وبين جسم بوحدة السنتي متر  بحيث تظهر المسافة على شاشة معالج الـ EV3.
 


  • في هذا البرنامج استخدمنا أول أمر باللون الأصفر هو أمر قراءة بيانات حساس المسافة من نوع Measure أي قياس .
  • ثاني أمر باللون الأحمر هو أمر التحويل للبيانات من رقم إلى نص حيث أن القيم الخارجة من حساس المسافة هي أرقام وعملية عرض البيانات على الشاشة لابد أن تكون أحد الأنواع التالية : نص ،شكل أو صورة ، إذن لايمكنني عرض رقم ! فنقوم باستخدام هذا الأمر لتحويل البيانات الخارجة من رقم إلى نص لكي نستطيع عرضها على شاشة معالج EV3 وسوف تظهر هذه البيانات أرقام على شاشة المعالج ولكنها تكون محولة إلى النوع نص فقط لمقدرتنا لعرضها على الشاشة، نلاحظ أننا قمنا بالتوصيل بين أمر قراءة البيانات وبين أمر التحويل في الخانة A وفي الخانة C قمنا بكتابة وحدة المسافة CM لكي يتم عرضها بجانب القيم الخارجة من حساس المسافة.
  • الأمر الثالث باللون الأخضر هو أمر العرض على شاشة EV3 حيث نقوم بالتوصيل بين الخارج من أمر التحويل إلى النوع “Text  “T أي نص في أمر العرض وذلك بعد اختيار نوع العرض أن يكون Text نص واختياره أيضا من نوع Wired .
  • قمنا في النهاية بوضع أمر التكرار Loop على الأوامر جميعاً وذلك لتكرار عملية قراءة البيانات من حساس المسافة وعرضها على شاشة EV3.
التحدي2قم بعمل البرنامج السابق ولكن اجعل الروبوت يتحرك أثناء عرض القيم على الشاشة.
 
في هذا البرنامج سوف نضيف فقط أمر الحركة على التوازي مع أوامر عرض قيم حساس المسافة على الشاشة وذلك لعرض القيم أثناء الحركة .
التحدي3: قم بعمل برنامج لروبوت عندما يقترب منه جسم ما يقوم  بعرض المسافة التي بينه وبين الجسم بوحدة السنتي مترعلى شاشة الـ EV3 وعندما تصل المسافة أقل من 8 سم يقوم بعرض صورة على شاشة الـ EV3  ويقوم بإصدار صوت :
 


  • الأمر الأول هو أمر قراءة قيم حساس المسافة من نوع مقارنة بالسنتي متر بحيث إذا كانت أقل من 8 سم يخرج من عملية التكرار التي هي من نوع Logic منطق.
  • الأمر الثاني هو أمر التحويل من رقم إلى نص كما ذكرنا سابقاً.
  • الأمر الثالث هو أمر العرض على شاشة EV3 كما ذكرنا سابقاً.
  • الأمر الرابع هو أمر التكرار من نوع منطق ليتم توصيله بشرط تحقق أن المسافة التي يقرؤها حساس المسافة أقل من 8 سم بحيث إذا تحقق هذا الشرط وأصبح صحيحاً يتم الخروج من أمر التكرار وينتقل البرنامج إلى الأمر الخامس ومن ثم السادس والسابع.
  • الأمر الخامس هو أمر عرض شكل عابس كما هو موضح وذلك في حالة كانت المسافة بين الحاس والجسم أقل من 8 سم.
  • الأمر السادس هو أمر إصدار صوت “Hi” بعد عرض الوجه العابس :).
  • الأمر السابع هو أمر الإنتضار 3 ثوان وذلك لمشاهدة الوجه العابس لمدة 3 ثوان لأنه إذا لم يتم وضع هذا الأمر سوف يظهر الوجه ويختفي بسرعه  ربما تكون غير ملحوظة.
التحدي: قم ببرمجة الروبوت ليتحرك ببطئ تدريجياً عندما يقترب من جسم معين حتى يتوقف قبل  الإصطدام  بهذا الجسم بمسافة 10 سم.
  • الأمر الأول هو أمرالقراءة من حساس المسافة في وضع القياس.
  • الأمر الثاني بالون الأحمر من القائمة الحمراء هو أمر العملية الرياضية Math لعمل عملية طرح بمقدار 10 من القيمة التي يقرءها حساس المسافة ، نلاحظ تم توصيل القيم الخارجة من حساس المسافة بالخانة a وتم كتابة المقدار الذي نريد طرحة في الخانة b.
  • الأمر الثالث أمر الحركة ولكن قدرة الحركة للمحركات تعتمد على المقدار الناتج من أمر العملية الرياضية كما نلاحظ التوصيل بين الناتج من العملية الرياضية وبين الـ Power للمحركات ، ونلاحظ هنا أن قدرة المحركات سوف تعتمد على المسافة التي يقرؤها حساس المسافة بحيث إذا زادة المسافة بينه وبين الجسم تزيد قدرة المحركات وبالتالي قوة إندفاعه وكلما قلت المسافة كلما قلت القدرة إلى أن تصل المسافة بينه وبين الجسم 10 سم فيصبح الناتج الواصل إلى قدرة المحركات 0 وبالتالي عدم تحرك المحركات وبالتالي توقف الروبوت وهذا هو المطلوب .
  • الأمر الرابع هو أمر التكرار ليستمر بتكرار الأوامر .
يمكن أن نطور على البرنامج ونجعل الروبوت أثناء سيره يقوم بعرض المسافة على شاشة ال EV3 كما تعلمنا سابقاً.



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