رمز وحدة التحكم المخصصة في VEXcode IQ

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

ستوجهك هذه المقالة عبر ثلاثة خيارات مختلفة للترميز المخصص لوحدة التحكم في VEXcode IQ. سيتم وصف كل طريقة مع مزاياها وقيودها ومثال لحالة الاستخدام للمساعدة في إرشادك عند اختيار الطريقة. ولأغراض هذه المقالة، تم إنشاء جميع أمثلة التعليمات البرمجية المعروضة لـ Clawbot. ومع ذلك، يمكن تطبيق نفس المفاهيم على العديد من الإصدارات الأخرى الموجودة على builds.vex.com، والإصدارات المخصصة.

الخيار 1: تعيين الأزرار في تكوين الجهاز

يعد هذا الخيار رائعًا عندما تستخدم إصدارًا قياسيًا، مثل BaseBot أو Clawbot، وترغب في البدء والتشغيل بسرعة.

يتيح لك هذا الخيار تعيين محركات أو مجموعة نقل الحركة أو مجموعات محركات للأزرار الموجودة على وحدة التحكم في تكوين الجهاز. لمزيد من المعلومات حول كيفية تعيين الأزرار لوحدة التحكم في تكوين الجهاز، ، راجع هذه المقالة.

وحدة تحكم VEX IQ

ملخص الخيار 1: تعيين الأزرار في تكوين الجهاز

مزايا

محددات

حالة المثال

  • الإعداد السريع دون الحاجة إلى الترميز
  • أبسط طريقة
  • قابل للتعديل بسهولة
  • يمكن تعيين محركات فردية، ومجموعة نقل الحركة القياسية، ومجموعات المحركات للأزرار
  • تقتصر تعيينات الأزرار على عدد الأزرار الموجودة على وحدة التحكم
  • لا يمكن أن يتجاوز نظام نقل الحركة 4 محركات أو يمكن تخصيصه (يتم دعم محرك قياسي فقط، وليس محرك H، أو نظام نقل الحركة التقليدي، أو أي نظام دفع مخصص آخر)
  • التعامل مع البنية القياسية مثل BaseBot أو Clawbot أو تعديل بسيط لتلك البنيات القياسية. على سبيل المثال، BaseBot مزود بمدخل متصل بالجزء الأمامي يتم التحكم فيه بواسطة مجموعة محرك.
  • التعامل مع الأزرار التي تتوافق مع السلوكيات المختلفة على الروبوت بسرعة دون الكثير من الترميز

الخيار 2: استخدام حلقة للأبد

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

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

المثال المحدد الموضح أدناه هو إحدى الطرق التي يمكنك من خلالها استخدام حلقة Forever مع روبوت ذو تصميم مخصص (مثل روبوت مزود بنظام نقل حركة مخصص) لقيادة الروبوت والتلاعب بالمخلب والذراع من أجل التفاعل مع الكائنات.

صورة لاستخدام حلقة إلى الأبد

قم بتنزيل ملف مشروع VEXcode IQ (الجيل الثاني) "الخيار 2" >

ملاحظة: في حالة استخدام Clawbot من الجيل الأول، سيلزم عكس محرك الذراع في تكوين الجهاز ليعمل على النحو المنشود في المشروع أعلاه.

شرح رمز الخيار 2.

قطعة الكود

توضيح

اضبط توقف ArmMotor للثبات واضبط ClawMotor على التوقف للثبات

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

تحديد السرعة وتدور المحرك وحدة تحكم VEX IQ مع مخطط زر

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

يتم استخدام حلقة Forever للتحقق المستمر من الأزرار التي يتم الضغط عليها على وحدة التحكم.

يتم استخدام كتل [ضبط سرعة المحرك] لضبط سرعة المحرك على موضع وحدة التحكم الحالية على طول المحورين A وD. وهذا يعادل وضع السيارة في القيادة. وهذا لا يجعل السيارة تتحرك بالضرورة، بل يضبطها فقط.

يقوم كل محور من محاور عصا التحكم بإرجاع قيمة تتراوح بين -100 إلى +100، كما يُرجع قيمة صفر عند التوسيط. وهذا يعني أن محاور عصا التحكم، عند الضغط عليها، تعادل -100% إلى 100%. كلما تم دفع المحاور لمسافة أبعد نحو 100 أو -100، زادت سرعة دوران المحرك.

يتم بعد ذلك استخدام الكتلة [Spin] لتحريك المحرك فعليًا. وهذا يعادل الضغط على البنزين في السيارة بمجرد ضبط الاتجاه. يتيح ذلك التحكم في كل محرك بواسطة أحد محاور التحكم الأربعة.

عبارة شرطية إذا تم الضغط على وحدة التحكم E Up

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

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

لاحظ أن القسم التالي من التعليمات البرمجية في مشروع Claw يتبع نفس الشرح.

ملخص الخيار 2: استخدام حلقة للأبد

مزايا

محددات

حالة المثال

  • يمكن أن تستوعب تصميمات مخصصة، خاصة مجموعات الدفع التي تحتوي على أكثر من 4 محركات
  • يمكن تعيين سلوكيات متعددة لزر واحد
  • يمكن تعيين سلوكيات لمحاور مختلفة على وحدة التحكم (على عكس الخيارات الوحيدة لـ Left Arcade وRight Arcade وSplit Arcade وTank Drive في تكوين الجهاز)
  • يتطلب قدرًا معينًا من المعرفة بالبرمجة (الشروط الشرطية والحلقات ومعرفة الأزرار/عصا التحكم الموجودة على وحدة التحكم)
  • احتمالية تنفيذ المشروع بشكل أبطأ، أو التأخر في وقت استجابة الزر. نظرًا لأن جميع الأوامر مضمنة في حلقة Forever واحدة، فقد يتم تنفيذ التعليمات البرمجية ببطء اعتمادًا على الشروط المحددة وطول التعليمات البرمجية.
  • استخدام وحدة التحكم مع روبوت مصمم خصيصًا، خاصة مع مجموعة نقل الحركة غير القياسية
  • عند الرغبة في تعيين سلوكيات متعددة لزر واحد. على سبيل المثال، عند الضغط على زر F لأعلى، يمكن للمخلب أن يفتح ويتحرك للأمام ثم يغلق حول كائن ما.

الخيار 3: استخدام الأحداث

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

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

استخدام الأحداث بدلاً من حلقة Forever

قم بتنزيل ملف مشروع VEXcode IQ (الجيل الثاني) "الخيار 3" >

ملاحظة: في حالة استخدام Clawbot من الجيل الأول، سيلزم عكس محرك الذراع في تكوين الجهاز حتى يعمل على النحو المنشود في المشروع أعلاه.

شرح رمز الخيار 3.

قطعة الكود

توضيح

اضبط توقف ArmMotor للثبات واضبط ClawMotor على التوقف للثبات

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

اضبط سرعة المحرك الأيسر على موضع وحدة التحكم A % ثم قم بتدوير المحرك الأيسر للأمام وحدة تحكم VEX IQ مع مخطط زر

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

{When controller axis} يتم استخدام كتل الأحداث لتشغيل سلوكيات معينة عند تغيير أحد المحاور الأربعة في وحدة التحكم باستخدام عصا التحكم.

يتم استخدام كتل [ضبط سرعة المحرك] لضبط سرعة المحرك على موضع وحدة التحكم الحالية على طول المحورين A وD. وهذا يعادل وضع السيارة في القيادة. وهذا لا يجعل السيارة تتحرك بالضرورة، بل يضبطها فقط.

يقوم كل محور من محاور عصا التحكم بإرجاع قيمة تتراوح بين -100 إلى +100، كما يُرجع قيمة صفر عند التوسيط. وهذا يعني أن محاور عصا التحكم، عند الضغط عليها، تعادل -100% إلى 100%. كلما تم دفع المحاور لمسافة أبعد نحو 100 أو -100، زادت سرعة دوران المحرك.

يتم بعد ذلك استخدام الكتلة [Spin] لتحريك المحرك فعليًا. وهذا يعادل الضغط على البنزين في السيارة بمجرد ضبط الاتجاه. يتيح ذلك التحكم في كل محرك بواسطة أحد محاور التحكم الأربعة.

عندما يتم استخدام الأزرار الموجودة على وحدة التحكم لرفع وخفض الذراع، بمجرد تحرير الزر، سيعود الذراع للأسفل بسبب الجاذبية.

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

{When controller axis} تُستخدم كتل الأحداث لتعيين سلوكيات معينة للأزرار التي يتم الضغط عليها أو تحريرها في وحدة التحكم. في هذا القسم من التعليمات البرمجية، يتم تعيين الشروط في حالة الضغط على الزرين E Up أو E Down. إذا كان الأمر كذلك، فستحدث سلوكيات معينة، مثل رفع الذراع أو خفضه أو التوقف.

لاحظ أن القسم الأخير من التعليمات البرمجية في مشروع Claw يتبع نفس الشرح.

ملخص الخيار 3: استخدام الأحداث

مزايا

محددات

حالة المثال

  • يمكن أن تستوعب تصميمات مخصصة، خاصة مجموعات الدفع التي تحتوي على أكثر من 4 محركات
  • يمكن تعيين سلوكيات متعددة لزر واحد
  • يمكن تعيين سلوكيات لمحاور مختلفة على وحدة التحكم (على عكس الخيارات الوحيدة لـ Left Arcade وRight Arcade وSplit Arcade وTank Drive في تكوين الجهاز)
  • تنفيذ أسرع للتعليمات البرمجية وبالتالي استجابة الزر (حيث يتم استدعاء كل شرط بشكل منفصل وعدم تضمينه في مجموعة واحدة من التعليمات البرمجية)
  • يتطلب معرفة معظم الترميز بالخيارات (الشروط، والحلقات، والأحداث، ومعرفة الأزرار/عصا التحكم الموجودة على وحدة التحكم)
  • في حالة استخدام الجيل الأول من VEX IQ Brain، فإن وجود عدد كبير جدًا من الأحداث في المشروع قد يؤدي إلى عدم تشغيل المشروع، بسبب قيود المعالجة في Brain.
  • استخدام وحدة التحكم مع روبوت مصمم خصيصًا، خاصة مع مجموعة نقل الحركة غير القياسية
  • عند الرغبة في تعيين سلوكيات متعددة لزر واحد دون أي تأخير. على سبيل المثال، عند الضغط على زر F لأعلى، يمكن للمخلب أن يفتح ويتحرك للأمام ثم يغلق حول كائن ما.

For more information, help, and tips, check out the many resources at VEX Professional Development Plus

Last Updated: