Skip to main content
Skip to Main Content
Skip to main content
ملاحة

الفصل 4: الاستعداد للمنافسة


الدرس 2: استخدام قالب مسابقة الكتل

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

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

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

مع ذلك، دعونا ننتقل إلى مثال مشروعنا.

[مقطع موسيقي]

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

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

على ما يرام. دعونا نلقي نظرة على كل قسم من هذه الأقسام الثلاثة وماذا تعني في الواقع من خلال مثال قمت بإعداده.

[مقطع موسيقي]

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

لنتحدث عن كل قسم. سيتم تنفيذ الجزء ما قبل التشغيل التلقائي أو الجزء الذي يبدأ بمجرد تشغيل مشروع قالب المنافسة. يُفضل استخدام هذا لضبط أي عملية تهيئة.

شكراً لانضمامكم إليّ في هذا الدرس. أتمنى أن يكون هذا مفيداً وغنياً بالمعلومات. إذا كانت لديكم أي أسئلة، فلا تترددوا في التواصل معنا. استمتعوا بالبرمجة، ونتمنى لكم التوفيق في مشاريعكم المتعلقة بروبوتات VEX!

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

إشارة موسيقية

والآن بعد أن حصلت على ذلك، فهذا هو الجزء الخاص بـ "متى بدأنا" قبل مرحلة التشغيل الذاتي. يلي ذلك الجزء الخاص بنا الذي يعتمد على التشغيل الذاتي. سيستغرق الجزء المستقل من المباراة 15 ثانية، وسيتم تشغيل هذا الجزء المحدد من التعليمات البرمجية خلال الجزء المستقل من المباراة. بمجرد تشغيل نموذج المنافسة، سيبدأ جزء "عند بدء التشغيل" قبل التشغيل الذاتي بغض النظر عن أي شيء. ثم سيبدأ التشغيل الذاتي لمدة 15 ثانية. تحدثنا عن نظام التحكم الميداني وكيف سينظم ذلك متى تبدأ جميع الروبوتات وتتوقف، ومتى سيتم تشغيل هذا الجزء المحدد في المباراة، ومتى سيتم تشغيل سطر التعليمات البرمجية هذا.

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

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

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

إشارة موسيقية

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

رسالة شكر

شكراً لك على تخصيص وقتك لاستكشاف هذه العملية معي. أتمنى أن يكون هذا العرض التوضيحي مفيداً.

الرسالة الأخيرة

لا تتردد في التواصل معنا إذا كانت لديك أي أسئلة أو كنت بحاجة إلى مزيد من التوضيح. استمتع بالبرمجة، ونتمنى لك التوفيق في مشاريعك الروبوتية!

لذا إذا قمت بتحديد ذلك، فسيخبرني هنا بـ 15 ثانية للجزء المستقل، ودقيقة واحدة، و45 ثانية للتحكم من قبل السائق. وعندما أضغط على هذا الزر مرة أخرى، سيبدأ التشغيل بالفعل. عندما أبدأ تشغيله، سيبدأ العد التنازلي 3-2-1، تمامًا كما تفعل في المباراة. وبعد ذلك سنبدأ.

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

[مقطع موسيقي]

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

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

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

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

[مقطع موسيقي]

حسنًا. دعونا نلقي نظرة سريعة على ما تناولناه في هذا الفيديو. لقد اطلعنا على نموذج مسابقة الكتل. يتكون من ثلاثة أجزاء مختلفة. The When started, pre-autonomous, which will run based on the based on. هذا مخصص لتهيئة المتغيرات، وربما إعداد ومعايرة الجيروسكوب، والطباعة بفضل شاشة الدماغ، وتحديد أوضاع المحرك مثل التثبيت أو ربما حتى رفع الذراع إلى وضع معين. يتم كل هذا قبل الجزء المستقل من المباراة.

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

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

شكراً لكم على المشاهدة، وآمل أن يساعدكم هذا في فهم نموذج المسابقة بشكل أفضل.

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

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

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

أهداف التعلم

Learning Objectives Section
  • حدد العناصر الرئيسية لقالب مسابقة الكتل في VEXcode V5، بما في ذلك أقسام متى بدأت والقيادة الذاتية والتحكم في السائق.

ملخص

Summary Section

هذا هو الفيديو الثاني لمقدمة الدورة التدريبية VEX V5 الفصل 4. إذا لم تكن قد شاهدت الفيديو الأول بعد، فارجع وشاهد الدرس 1: ميكانيكا مباراة مسابقة الروبوتات VEX.

في الدرس 2، ستتعرف على كل عنصر من العناصر الرئيسية الثلاثة لقالب مسابقة الكتل في VEXcode V5 من خلال عرض مثال عملي.

للمناقشات والأسئلة، انضم إلى موضوع PD+ Community المخصص للتعلم والاستكشاف الجماعي.

تهانينا، لقد أكملت دورة مقدمة إلى VEX V5 التدريبية!