Skip to main content

وحدة التحكم: استكشاف محرك الخزان - C++

أيقونة صندوق أدوات المعلم صندوق أدوات المعلم - الغرض من هذا النشاط

يتيح استخدام مشروع التحكم في الخزان للطلاب التحكم في Clawbot باستخدام وحدة التحكم. سوف يحتاج الطلاب إلى ضبط المعلمات في LeftMotor.setVelocity() و RightMotor.setVelocity() و LeftMotor.spin()RightMotor.spin() و leftMotorSpeed = Controller1.Axis3.position) و = Controller1.Axis2.position( للتحكم في سرعة من محركاتوتمكين وحدة التحكم من التحكم في وظائف المحرك.

لمزيد من المعلومات حول أي من الإرشادات، قم بزيارة التعليمات في قسم C++  في VEXcode V5.

وفيما يلي مخطط لما سيفعله الطلاب في هذا النشاط:

  • استكشف مشروع التحكم في الخزان كمثال.

  • فهم استخدام بنية الحلقة اللانهائية بينما True  .

  • أكمل تحدي Robo-Slalom!

أيقونة نصائح المعلم نصائح للمعلم

إذا كانت هذه هي المرة الأولى التي يستخدم فيها الطالب VEXcode V5، فيمكنه الوصول إلى العديد من المقالات المفيدة  في قاعدة بيانات المعرفة VEX.

المواد المطلوبة:
كمية المواد المطلوبة
1

مجموعة أدوات بدء تشغيل VEX V5 Classroom (مع البرامج الثابتة المحدثة)

1

VEXcode V5 (أحدث إصدار، Windows، macOS)

1

دفتر الهندسة

1

مشروع مثال للتحكم في الخزانات

2 أو أكثر

أدوات الفصل الدراسي التي يمكن استخدامها كعقبات

أيقونة نصائح المعلم نصائح للمعلمين - باستخدام الإكمال التلقائي

الإكمال التلقائي هو ميزة في VEXcode V5 تتنبأ ببقية الأمر الذي تكتبه. بينما يعمل الطلاب في VEXcode V5، شجعهم على استخدام ميزة الإكمال التلقائي للمساعدة في بناء الجملة  تتناول المقالة الإكمال التلقائي كيفية استخدام ميزة الإكمال التلقائي.

VEXcode V5 مع جزء Drivetrain من الأمر المكتوب على اليسار، وعلى اليمين، يتم عرض قائمة قابلة للتمرير من خيارات الإكمال التلقائي لهذا الأمر.

 

سيمنحك هذا النشاط الأدوات اللازمة لبرمجة جهاز التحكم الخاص بك.

الخطوة 1: لنبدأ برمجة وحدة التحكم.

  • افتح مشروع المثال Tank Control .
  • مثال على أيقونة مشروع لدبابة موضوعة فوق وحدة تحكم اللعبة، مع تسمية "التحكم في الدبابة" أسفلها.

    قم بما يلي في دفتر الهندسة الخاص بك:

    توقع ما سيفعله هذا المشروع باستخدام Clawbot. اشرح أكثر من حقيقة أن المشروع يستخدم جهاز التحكم.
    كيف تحرك عصي التحكم الروبوت؟ ماذا يفعل Clawbot؟

    
    	int main() {
    		// Initializing Robot Configuration. DO NOT REMOVE!
    		vexcodeInit();
    		// Begin project code.
    		
    		// Main Controller loop to set motors to controller axis positions
    		while (true) {
    		  LeftMotor.setVelocity(Controller1.Axis3.position(), percent);
    		  RightMotor.setVelocity(Controller1.Axis2.position(), percent);
    		  LeftMotor.spin(forward);
    		  RightMotor.spin(forward);
    	  
    		  wait(5, msec);
    		}
    	  
    		return 0;
    	}
    

 

أيقونة صندوق أدوات المعلم صندوق أدوات المعلم - إجابات

  1. سيستخدم هذا المشروع بنية الحلقة اللانهائية بينما True للتحقق بشكل مستمر من موضع عصا التحكم اليمنى واليسرى. عند دفع عصا التحكم اليسرى (أو اليمنى) لأعلى، يتم ضبط السرعة بناءً على مدى دفع عصا التحكم للأمام. 
  2. وبالتالي، كلما تم دفع عصا التحكم إلى الأمام، سيتم ضبط السرعة بشكل أسرع وستتحرك المحركات بشكل أسرع. تنطبق نفس الفكرة على دفع عصا التحكم للخلف. كلما تم دفع عصا التحكم إلى الخلف، كلما تحركت المحركات بشكل أسرع في الاتجاه المعاكس.
  • احفظ، وقم بتنزيل، قم بتشغيل (C++) مشروع مثال Tank Control .
  • للحصول على ، راجع أقسام مكتبة VEX في C++ أو راجع البرنامج التعليمي في VEXcode V5 الذي يشرح كيفية تنزيل مشروع وتشغيله.

    شريط الأدوات في VEXcode V5 مع البرامج التعليمية، على اليمين، مميز بمربع أحمر. من اليسار، يظهر شريط الأدوات شعار V5، وأيقونة الكرة الأرضية، ثم ملف، وتحرير، والبرامج التعليمية.

     

  • قم بمراجعة تفسيراتك للمشروع في دفتر الهندسة الخاص بك وأضف ملاحظات لتصحيحها حسب الحاجة.

الخطوة 2: وحدة التحكم: التحكم في الخزان

أيقونة صندوق أدوات المعلم صندوق أدوات المعلم - هياكل الحلقة اللانهائية الحقيقية

تناقش هذه الخطوة أهمية بنية الحلقة اللانهائية بينما True . ينبغي عليك مراجعة المعلومات كفصل دراسي. يمكنك إنشاء نموذج للسلوك باستخدام Clawbot وController، أو إذا سمح الوقت، اطلب من الطلاب تشغيل البرنامج بدون بنية الحلقة اللانهائية while True .

ما هي فوائد استخدام بنية الحلقة اللانهائية بينما True؟

هذا هو مشروعنا بدون بنية الحلقة اللانهائية while True:


	int main() {
		// Initializing Robot Configuration. DO NOT REMOVE!
		vexcodeInit();
		// Begin project code.
		// Main Controller loop to set motors to controller axis postiions
		
		LeftMotor.setVelocity(Controller1.Axis3.position(), percent);
		RightMotor.setVelocity(Controller1.Axis2.position(), percent);
		LeftMotor.spin(forward);
		RightMotor.spin(forward);
	  
	}

ما رأيك سيحدث إذا تم تنفيذ هذا البرنامج؟ ناقش كمجموعة. اكتب توقعاتك في دفتر الهندسة.

أيقونة صندوق أدوات المعلم صندوق أدوات المعلم - فهم البنية

بدون الحلقة اللانهائية بينما True ، يتم تعيين قيمة السرعة لكل محرك بمجرد تشغيل المشروع، وتظل هذه القيمة ثابتة حتى يتوقف المشروع. بمعنى آخر، إذا قمت بتشغيل المشروع دون تحريك أي من عصا التحكم، لأن الموضع الافتراضي لعصا التحكم على محورها هو 0، فإن سرعة كلا المحركين ستبقى عند 0، حتى إذا قمت بتحريك عصا التحكم.

وبالمثل، لنفترض أنك حركت عصا التحكم اليسرى لأعلى بقدر ما تستطيع على طول المحور 3 وأبقتها هناك. إذا قمت بتشغيل المشروع أعلاه، فإن المحرك الأيسر سيتحرك بأقصى سرعة وسيظل بهذه السرعة حتى إذا قمت بتحريك عصا التحكم لأسفل على طول المحور 3. يرجع ذلك إلى أن Clawbot يتلقى تعليماته الأولية من وحدة التحكم بمجرد تشغيل المشروع؛ ومع ذلك، بدون حلقة، لا يمكن تحديث هذه القيمة الأولية.

تخبر الحلقة اللانهائية بينما True Clawbot بتحديث السرعة باستمرار وتشغيلها طوال مدة المشروع. بمعنى آخر، الحلقة اللانهائية بينما True ، في هذا المشروع، تمكنك من تغيير سرعة كل محرك عن طريق تحريك عصا التحكم على طول المحور 2 أو 3، وسوف يستجيب Clawbot وفقًا لذلك حتى تقوم بإيقاف المشروع أو إيقاف تشغيل Clawbot.

الخطوة 3: التنقل في مسار التعرج!

أيقونة صندوق أدوات المعلم صندوق أدوات المعلم - إعداد النشاط

قم بتنظيم الطلاب في مجموعات صغيرة مكونة من 2 أو 4 طلاب. يجب تعيين طالب واحد كسائق - الشخص الذي سيستخدم وحدة التحكم لمناورة Clawbot.

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

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

يتسابق متزلج على الجليد على منحدر مغطى بالثلوج، ويتنقل عبر سلسلة من البوابات الحمراء والزرقاء الموضوعة في نمط متعرج.

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

الآن بعد أن وحدة التحكم   مشروع C ، فأنت جاهز لتحريك Clawbot باستخدام وحدة التحكم 

  • قم بجمع العناصر الأربعة الموجودة في الفصل الدراسي والتي ستستخدمها كأعلام في سباق التعرج الخاص بك من المعلم.
  • تعاون على وضع الأعلام في المكان المناسب حتى يتمكن السائق من التنقل حول Clawbot، وفقًا لرسم التعرج.
  • تنزيل مشروع مثال التحكم في الخزان. إذا كانت لديك أي أسئلة حول كيفية تنزيل مشروع، فراجع البرنامج التعليمي تنزيل مشروع وتشغيله.

الخطوة 4: التعرج الآلي

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

استخدم وحدة التحكم لتحريك Clawbot على طول الجانب الخارجي لكل "علم". يجب أن يمنع مسار الروبوت من لمس أي علم، ويسمح له بعبور خط النهاية.

  • قم بتشغيل المشروع وقم بقيادة Clawbot للأمام والخلف والانعطاف إلى اليسار واليمين باستخدام كلا عصي التحكم.
  • الوقت الذي يستغرقه Clawbot لإكمال الدورة. وثّق الأوقات في دفتر الهندسة.
  • ما مدى السرعة التي يمكنك بها اجتياز Clawbot لمسار Slalom؟

أيقونة تحفيز المناقشة تحفيز المناقشة - التفكير في النشاط

س: هل استجاب Clawbot لوحدة التحكم كما توقعت؟

أ: قد تختلف الإجابات؛ ومع ذلك، فإن هدف هذا السؤال هو تعزيز التفكير المعرفي. بدأ الطلاب بالتنبؤ بالسلوكيات قبل اختبارها، وتوثيق نتائجهم، والتفكير فيها.

س: ما هو التحدي الأكبر في تحريك Clawbot إلى الأمام أو الخلف في خط مستقيم؟

أ: على الرغم من أن الإجابات قد تختلف، إلا أن الاستجابة المشتركة يجب أن تكون أن كلتا ذراعي التحكم يجب أن تتحركا في مزامنة مع بعضهما البعض لضمان تحرك محركات Clawbot في نفس الاتجاه وبنفس السرعة

س: كيف يساعدك استخدام الحلقة اللانهائية أثناء استخدام حلقة True على استخدام وحدة التحكم بشكل مستمر لتحريك Clawbot؟

أ: بدون الحلقة اللانهائية بينما True ، سيقوم Clawbot بأداء السلوكيات كما هو محدد بواسطة التعليمات في المشروع مرة واحدة فقط. تخبر الحلقة اللانهائية بينما True Clawbot بتحديث السرعة باستمرار وتشغيلها طوال مدة المشروع. بعبارة أخرى، تتيح لك الحلقة اللانهائية بينما True استخدام وحدة التحكم لتحريك Clawbot إلى أجل غير مسمى، أو حتى نفاد البطارية.