يمكن أن يؤدي استخدام وحدة التحكم إلى تسهيل قيادة الروبوت الخاص بك وتحريكه لإكمال المهمة. ومع ذلك، هناك قيود على استخدام برنامج Drive، واعتمادًا على بنية الروبوت الخاص بك أو المهمة التي تقوم بها، قد تحتاج إلى عناصر تحكم مختلفة. يتيح لك ترميز وحدة التحكم تحسين وحدة التحكم لجعلها تناسب الروبوت الخاص بك والمهمة التي تقوم بها بشكل أفضل. هناك عدة طرق لترميز وحدة التحكم في VEXcode IQ. ولكل منها مزاياه وقيوده، وبعض الأساليب أكثر ملاءمة لمواقف معينة اعتمادا على النتيجة المرجوة.
ستوجهك هذه المقالة عبر ثلاثة خيارات مختلفة للترميز المخصص لوحدة التحكم في VEXcode IQ. سيتم وصف كل طريقة مع مزاياها وقيودها ومثال لحالة الاستخدام للمساعدة في إرشادك عند اختيار الطريقة. ولأغراض هذه المقالة، تم إنشاء جميع أمثلة التعليمات البرمجية المعروضة لـ Clawbot. ومع ذلك، يمكن تطبيق نفس المفاهيم على العديد من الإصدارات الأخرى الموجودة على builds.vex.comوالإصدارات المخصصة.
الخيار 1: تعيين الأزرار في تكوين الجهاز
يعد هذا الخيار رائعًا عندما تستخدم إصدارًا قياسيًا، مثل BaseBot أو Clawbot، وترغب في البدء والتشغيل بسرعة.
يتيح لك هذا الخيار تعيين محركات أو مجموعة نقل الحركة أو مجموعات محركات للأزرار الموجودة على وحدة التحكم في تكوين الجهاز. لمزيد من المعلومات حول كيفية تعيين الأزرار لوحدة التحكم في تكوين الجهاز، شاهد هذه المقالة.
ملخص الخيار 1: تعيين الأزرار في تكوين الجهاز
مزايا |
محددات |
حالة المثال |
|
|
|
الخيار 2: استخدام حلقة للأبد
إذا كنت تستخدم إصدارًا مخصصًا بدلاً من إصدار قياسي، أو تريد أن تكون قادرًا على الحصول على مزيد من التخصيص في وحدة التحكم الخاصة بك، فهذا الخيار يعد خيارًا جيدًا. يعد استخدام حلقة Forever مقدمة رائعة لإنشاء تعليمات برمجية مخصصة لوحدة التحكم الخاصة بك.
يضع هذا الخيار جميع شروط وحدة التحكم والأزرار المرتبطة بها في حلقة للأبد. وهذا يوفر المزيد من المرونة، خاصة مع تصميمات البناء المخصصة، ولكنه يتطلب أيضًا بعض الخبرة في البرمجة. ومع ذلك، أحد الاعتبارات عند استخدام هذا الخيار هو طول مشروعك وتعقيده. كلما زادت الشروط التي تمت إضافتها، زادت مدة مكدس التعليمات البرمجية. هذا يعني أنه يجب تنفيذ كتل متعددة بالترتيب، وعندما يكون هناك الكثير من الكتل، فقد يؤدي ذلك إلى إبطاء تنفيذ المشروع. قد يؤدي تنفيذ المشروع الأبطأ إلى حدوث فجوة بين الضغط على أزرار وحدة التحكم ورؤية سلوك الروبوت.
المثال المحدد الموضح أدناه هو إحدى الطرق التي يمكنك من خلالها استخدام حلقة Forever مع روبوت ذو تصميم مخصص (مثل روبوت مزود بنظام نقل حركة مخصص) لقيادة الروبوت والتلاعب بالمخلب والذراع من أجل التفاعل مع الكائنات.
قم بتنزيل ملف مشروع VEXcode IQ (الجيل الثاني) "الخيار 2" >
ملاحظة: في حالة استخدام Clawbot من الجيل الأول، سيلزم عكس محرك الذراع في تكوين الجهاز ليعمل على النحو المنشود في المشروع أعلاه.
شرح رمز الخيار 2.
قطعة الكود |
توضيح |
تم استخدام Clawbot لمثال التعليمات البرمجية هذا. عندما يتم استخدام الأزرار الموجودة على وحدة التحكم لرفع وخفض الذراع، بمجرد تحرير الزر، سيعود الذراع للأسفل بسبب الجاذبية. سيؤدي ضبط كل من الذراع والمخلب على "الإمساك" إلى ضمان بقاء الذراع والمخلب في مكانهما حتى بعد تحرير الأزرار الموجودة على وحدة التحكم. |
|
تم استخدام Clawbot لمثال التعليمات البرمجية هذا. عندما يتم استخدام الأزرار الموجودة على وحدة التحكم لرفع وخفض الذراع، بمجرد تحرير الزر، سيعود الذراع للأسفل بسبب الجاذبية. سيؤدي ضبط كل من الذراع والمخلب على "الإمساك" إلى ضمان بقاء الذراع والمخلب في مكانهما حتى بعد تحرير الأزرار الموجودة على وحدة التحكم. يتم استخدام حلقة Forever للتحقق المستمر من الأزرار التي يتم الضغط عليها على وحدة التحكم. يتم استخدام كتل [ضبط سرعة المحرك] لضبط سرعة المحرك على موضع وحدة التحكم الحالية على طول المحورين A وD. وهذا يعادل وضع السيارة في القيادة. وهذا لا يجعل السيارة تتحرك بالضرورة، بل يضبطها فقط. يقوم كل محور من محاور عصا التحكم بإرجاع قيمة تتراوح بين -100 إلى +100، كما يُرجع قيمة صفر عند التوسيط. وهذا يعني أن محاور عصا التحكم، عند الضغط عليها، تعادل -100% إلى 100%. كلما تم دفع المحاور لمسافة أبعد نحو 100 أو -100، زادت سرعة دوران المحرك. يتم بعد ذلك استخدام كتلة [Spin] لتحريك المحرك فعليًا. وهذا يعادل الضغط على البنزين في السيارة بمجرد ضبط الاتجاه. يتيح ذلك التحكم في كل محرك بواسطة أحد محاور التحكم الأربعة. |
|
تم استخدام Clawbot لمثال التعليمات البرمجية هذا. عندما يتم استخدام الأزرار الموجودة على وحدة التحكم لرفع وخفض الذراع، بمجرد تحرير الزر، سيعود الذراع للأسفل بسبب الجاذبية. سيؤدي ضبط كل من الذراع والمخلب على "الإمساك" إلى ضمان بقاء الذراع والمخلب في مكانهما حتى بعد تحرير الأزرار الموجودة على وحدة التحكم. يتم استخدام كتلة [إذا كان الأمر كذلك إذا كان الأمر كذلك] لتعيين سلوكيات معينة للأزرار التي يتم الضغط عليها أو تحريرها على وحدة التحكم. في هذا القسم من التعليمات البرمجية، يتم تعيين الشروط في حالة الضغط على الزرين E Up أو E Down. إذا كان الأمر كذلك، فسوف تحدث سلوكيات معينة، مثل رفع الذراع وخفضه. هناك أيضًا الجزء الآخر من الحالة، إذا لم يتم الضغط على أي من الزرين، فسيتم ضبط الذراع على التوقف عن الحركة. لاحظ أن القسم التالي من التعليمات البرمجية في مشروع Claw يتبع نفس الشرح. |
ملخص الخيار 2: استخدام حلقة للأبد
مزايا |
محددات |
حالة المثال |
|
|
|
الخيار 3: استخدام الأحداث
إذا كنت تريد الكثير من التخصيص لوحدة التحكم الخاصة بك، فإن استخدام الأحداث هو الخيار الأفضل بالنسبة لك. ضغطة زر واحدة يمكن أن تؤدي إلى سلوكيات متعددة للروبوت، مثل الضغط على زر لفتح المخلب، ورفع الذراع، والقيادة للأمام لمسافة محددة. قد تؤدي محاولة ترميز سلوكيات متعددة لكل زر داخل حلقة Forever إلى إبطاء تنفيذ المشروع بشكل كبير - ويتيح لك استخدام الأحداث القيام بذلك بشكل أكثر فعالية.
يستخدم هذا الخيار الأحداث لتقسيم تدفق المشروع. يشبه هذا استخدام حلقة Forever، ولكنه يسمح بأن تكون التعليمات البرمجية أكثر تنظيمًا، بحيث يكون لتنفيذ الزر وقت استجابة أسرع. وقت الاستجابة الأسرع يعني أنك لن ترى فجوة بين الضغط على أزرار وحدة التحكم ورؤية سلوك الروبوت. يوضح هذا المثال نفس سلوكيات المشروع السابق، ولكن تم ذلك باستخدام الأحداث بدلاً من حلقة Forever.
قم بتنزيل ملف مشروع VEXcode IQ (الجيل الثاني) "الخيار 3" >
ملاحظة: في حالة استخدام Clawbot من الجيل الأول، سيلزم عكس محرك الذراع في تكوين الجهاز ليعمل على النحو المنشود في المشروع أعلاه.
شرح رمز الخيار 3.
قطعة الكود |
توضيح |
تم استخدام Clawbot لمثال التعليمات البرمجية هذا. عندما يتم استخدام الأزرار الموجودة على وحدة التحكم لرفع وخفض الذراع، بمجرد تحرير الزر، سيعود الذراع للأسفل بسبب الجاذبية. سيؤدي ضبط كل من الذراع والمخلب على "الإمساك" إلى ضمان بقاء الذراع والمخلب في مكانهما حتى بعد تحرير الأزرار الموجودة على وحدة التحكم. |
|
تم استخدام Clawbot لمثال التعليمات البرمجية هذا. عندما يتم استخدام الأزرار الموجودة على وحدة التحكم لرفع وخفض الذراع، بمجرد تحرير الزر، سيعود الذراع للأسفل بسبب الجاذبية. سيؤدي ضبط كل من الذراع والمخلب على "الإمساك" إلى ضمان بقاء الذراع والمخلب في مكانهما حتى بعد تحرير الأزرار الموجودة على وحدة التحكم. {When controller axis} يتم استخدام كتل الأحداث لتشغيل سلوكيات معينة عند تغيير أحد المحاور الأربعة في وحدة التحكم باستخدام عصا التحكم. يتم استخدام كتل [ضبط سرعة المحرك] لضبط سرعة المحرك على موضع وحدة التحكم الحالية على طول المحورين A وD. وهذا يعادل وضع السيارة في القيادة. وهذا لا يجعل السيارة تتحرك بالضرورة، بل يضبطها فقط. يقوم كل محور من محاور عصا التحكم بإرجاع قيمة تتراوح بين -100 إلى +100، كما يُرجع قيمة صفر عند التوسيط. وهذا يعني أن محاور عصا التحكم، عند الضغط عليها، تعادل -100% إلى 100%. كلما تم دفع المحاور لمسافة أبعد نحو 100 أو -100، زادت سرعة دوران المحرك. يتم بعد ذلك استخدام كتلة [Spin] لتحريك المحرك فعليًا. وهذا يعادل الضغط على البنزين في السيارة بمجرد ضبط الاتجاه. يتيح ذلك التحكم في كل محرك بواسطة أحد محاور التحكم الأربعة. |
|
تم استخدام Clawbot لمثال التعليمات البرمجية هذا. عندما يتم استخدام الأزرار الموجودة على وحدة التحكم لرفع وخفض الذراع، بمجرد تحرير الزر، سيعود الذراع للأسفل بسبب الجاذبية. سيؤدي ضبط كل من الذراع والمخلب على "الإمساك" إلى ضمان بقاء الذراع والمخلب في مكانهما حتى بعد تحرير الأزرار الموجودة على وحدة التحكم. {When controller axis} يتم استخدام كتل الأحداث لتعيين سلوكيات معينة للأزرار التي يتم الضغط عليها أو تحريرها على وحدة التحكم. في هذا القسم من التعليمات البرمجية، يتم تعيين الشروط في حالة الضغط على الزرين E Up أو E Down. إذا كان الأمر كذلك، فستحدث سلوكيات معينة، مثل رفع الذراع أو خفضه أو التوقف. لاحظ أن القسم الأخير من التعليمات البرمجية في مشروع Claw يتبع نفس الشرح. |
ملخص الخيار 3: استخدام الأحداث
مزايا |
محددات |
حالة المثال |
|
|
|