المدونة الخامسة عشر / التحرك الذكي Intelligent Movement

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

يتم استخدام الأمر Motor Rotation من قائمة الأدوات Sensor وذلك لقياس التحرك للمحرك إما بالدرجات أو الدورات أو قياس قوة اندفاع المحرك .

التحدي 1 : في هذا التحدي اجعل الروبوت يتحرك بمقدار عشوائي من نقطة بداية ومن ثم العودة إلى نقطة البداية وذلك باستخدام التحرك الذكي؟

الأمر الأول : قمنا بوضع أمر متغير عددي من نوع كتابة وكتبا فيه المقدار 0 (استخدمنا المتغير وذلك لتخزين قيمة دوران المحرك بعد قياسه باستخدام الأمر Motor Rotation فقمنا في البداية بتصفير المتغير)

الأمر الثاني :قمنا بعمل Reset للأمر Motor Rotation للمحرك B وذلك لضمان عدم تسجيله لأي دورات أو درجات سابقة (غالباً يتم عمل Reset في البداية لجميع أوامر قياس الحساسات)

الأمر الثالث : استخدمنا الأمر العشوائي Random من نوع عددي ووضعنا في القيمة الصغرى 1 والقيمة العضمى 3 وقمنا بتوصيل القيمة الخارجه منه في الأمر الرابع في مقدار الدورات.

الأمر الرابع : هو أمر التحرك بالدورات للأمام ولكن مقدار الدورات هو مقدار عشوائي مابين 1 إلى 3 دورات في كل مره يتم تشغيل البرنامج يأخذ قيمة معينة لدورات الروبوت مابين 1 و 3 .

الأمر الخامس : أمر الإنتظار لمدة ثانية .

الأمر السادس : أمر Motor Rotation في وضع القياس للدورات للمحرك B لقياس عدد الدورات للمحرك B منذ انطلاق الروبوت .

الأمر السابع : خزنا في المتغير القيمة التي قاسها أمر Motor Rotation للمحرك B منذ انطلاق الروبوت وحتى توقفه. (المتغير من نوع عددي في وضع الكتابة)

الأمر الثامن : قرأنا القيمة المخزن في المتغير وقمنا بتوصيلها إلى الأمر التاسع في مقدار الدورات .

الأمر التاسع : أمر التحرك بالدورات ولكن بالقيمة المخزنة في المتغر والتي قاسها أمر Motor Rotation ، نلاحظ أن التحرك للخلف لأن مقدار القوة ب -50 ونلاحظ أن الروبوت رجع إلى نقطة البداية (نقطة انطلاقته)

التحدي 2 : قم بعمل برنامج ليقوم الروبوت بالتحرك والتقاط جسم أمامه والعوده به إلى نقطة البداية ؟

في البداية لابد من تصميم ذراع لإلتقاط الجسم وذلك باستخدام الـ Medium Motor .

لأمر الأول : قمنا بوضع أمر متغير عددي من نوع كتابة وكتبا فيه المقدار 0 (استخدمنا المتغير وذلك لتخزين قيمة دوران المحرك بعد قياسه باستخدام الأمر Motor Rotation فقمنا في البداية بتصفير المتغير)

الأمر الثاني :قمنا بعمل Reset للأمر Motor Rotation للمحرك B وذلك لضمان عدم تسجيله لأي دورات أو درجات سابقة (غالباً يتم عمل Reset في البداية لجميع أوامر قياس الحساسات)

الأمر الثالث: هو أمر التحرك للأمام بمقدار مفتوح ON.

الأمر الرابع: أمر الإنتظار لحساس المسافه بحيث إذا كانت المسافة بينه وبين الجسم أقل من 5 سم يتوقف الروبوت.

الأمر الخامس: أمر التوقف للمحركات BوC.

الأمر السادس: أمر تنزيل الذراع لإلتقاط الجسم وذلك عن طريق تحريك المحرك الأسوط بالمقدار المناسب على سبيل المثال 150 درجة.

الأمر السابع: أمر Motor Rotation في وضع القياس للدورات للمحرك B لقياس عدد الدورات للمحرك B منذ انطلاق الروبوت .

الأمر الثامن: خزنا في المتغير القيمة التي قاسها أمر Motor Rotation للمحرك B منذ انطلاق الروبوت وحتى توقفه. (المتغير من نوع عددي في وضع الكتابة)

الأمر التاسع: قرأنا القيمة المخزن في المتغير وقمنا بتوصيلها إلى الأمر التاسع في مقدار الدورات .

الأمر العاشر: أمر التحرك بالدورات ولكن بالقيمة المخزنة في المتغر والتي قاسها أمر Motor Rotation ، نلاحظ أن التحرك للخلف لأن مقدار القوة ب -50 ونلاحظ أن الروبوت رجع إلى نقطة البداية (نقطة انطلاقته)
الأمر الحادي عشر: أمر رفع الذراع لوضع الجسم في منطقة البداية وذلك عن طريق تحريك المحرك الأوسط حركة عكسية ليرتفع نلاحظ أن الـ Power -50.

وبهذا أكون قد انتهيت من هذه التدوينه وصل الله على سيدنا محمد وعلى آله وصحبه أجمعين.