استكشاف أخطاء أجهزة استشعار VEX EXP وإصلاحها

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

خطوات هذه العملية هي:

  1. حدد المشكلة
  2. تحقق من الأجهزة
  3. تحقق من البرامج
  4. تحليل وتطبيق البيانات

تحديد المشكلة

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

حساسات VEX EXP:

بمجرد تحديد المستشعر الذي يسبب السلوك غير المقصود، يمكنك المضي قدمًا في العملية.


فحص الأجهزة

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

التحقق من وضع المستشعر

EXP Clawbot بناء القيادة في الميدان. يحتوي الروبوت على مستشعر بصري متصل يتم تسليط الضوء عليه ويشير إلى كرة باكيبول الحمراء أمامه.

ابدأ بالنظر إلى مكان وجود المستشعر على الروبوت الخاص بك. هل تم حظر المستشعر بواسطة أي شيء، مثل جزء آخر من الروبوت الخاص بك؟ تأكد من أن المستشعر لديه المساحة اللازمة للعمل على النحو المنشود.

كما هو موضح هنا، يتمتع المستشعر البصري بخط رؤية واضح للكائن الذي يهدف إلى اكتشافه.

تحقق من اتصال الاستشعار

تظهر شاشة الدماغ في قائمة الأجهزة مع تحديد جهاز استشعار بصري.

اختبر وظائف المستشعر من خلال النظر في البيانات الواردة في شاشة الأجهزة على VEX EXP Brain. يمكن أن يساعدك هذا في التحقق من توصيل المستشعر وتشغيله. 

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

رسم تخطيطي لدماغ EXP متصل بمستشعر بصري EXP.

إذا لم يُبلغ المستشعر عن البيانات، فتأكد من توصيل المستشعرات بشكل صحيح. عند توصيل المستشعرات بمنفذ ذكي، يجب أن تسمع صوتًا مفاجئًا عندما تكون علامة تبويب قفل المستشعر مشغولة بالكامل بالمنفذ.

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

يمكنك أيضًا محاولة تبديل المستشعر الذي تستخدمه بآخر لمعرفة ما إذا كان ذلك سيحل مشكلتك.

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


تحقق من البرامج

بمجرد تحديد أنه تم وضع المستشعر وتوصيله بالروبوت بنجاح، يمكنك النظر إلى مشروع VEXcode EXP التالي. يمكن أن يساعدك التكرار في المشروع على ضمان استخدام البيانات الواردة من المستشعر بشكل فعال في مشروعك. يمكن أن تساعدك الاستراتيجيات التالية في تشفير المستشعر الخاص بك.

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

التحقق من البرامج الثابتة والتكوين

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

الآن بعد أن تأكدت من توصيل جميع الأجهزة بشكل صحيح بالدماغ، تحقق من تكوين الجهاز في VEXcode EXP.

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

قم بتغيير أي تكوينات غير صحيحة للجهاز.

تشغيل مشروع مثال

قائمة أمثلة المشاريع في VEXcode Blocks تحتوي على مجموعة متنوعة من المشاريع عبر فئات مختلفة للاختيار من بينها. تم تسليط الضوء على فئة الاستشعار.

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

لمزيد من المعلومات حول أمثلة المشاريع والقوالب الخاصة بـ EXP، راجع هذه المقالة.

لمزيد من المعلومات حول نماذج ونماذج EXP Python، راجع هذه المقالة.

لمزيد من المعلومات حول نماذج ونماذج EXP C++، راجع هذه المقالة.

تم فتح VEXcode EXP مع مشروع مثال من فئة الاستشعار، بما في ذلك كومة من كتل التعليمات البرمجية وملاحظة تحتوي على وصف للمشروع. تمت تسليط الضوء على الملاحظة.

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

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

قم بتشغيل المشروع النموذجي ولاحظ سلوك الروبوت. ثم انظر إلى المشروع لترى كيف يتم استخدام بيانات المستشعر للتسبب في السلوكيات المرصودة. قد ترغب في تشغيل المشروع النموذجي عدة مرات للمساعدة في ذلك.

قد ترغب في محاولة إنشاء مشروعك المبسط لتطبيق ما تعلمته من نموذج المشروع على مهمتك.

استخدم أدوات VEXcode EXP الأخرى

هناك أيضًا أدوات واستراتيجيات يمكنك استخدامها لمساعدتك أثناء تعلم المزيد حول ترميز المستشعر الخاص بك في VEXcode EXP. يمكنك التعرف على الكتل أو الأوامر الموجودة في Toolbox بشكل فردي باستخدام التعليمات. يمكنك أيضًا عرض بيانات المستشعر أثناء تشغيل المشروع لمعرفة المزيد حول ما يبلغ عنه المستشعر.

تم فتح VEXcode EXP مع قائمة المساعدة وتحديد كتلة Pressing Bumper. يتم عرض أوصاف الكتلة وكيفية استخدامها جنبًا إلى جنب مع صور لاستخدامات المثال.

المساعدة

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

قم بعرض هذه المقالة لمعرفة المزيد حول الوصول إلى التعليمات في كتل VEXcode EXP.

عرض هذه المقالة لمعرفة المزيد حول الوصول إلى التعليمات في VEXcode EXP Python.

بيانات الطباعة

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

لاحظ أنه في مشروع الكتل، يمكن استخدام كتلة قبعة {When started} منفصلة للحفاظ على جميع أوامر الطباعة منظمة في مجموعتها الخاصة. انظر أدناه للحصول على مثال للطباعة في EXP Brain ثم Print Console.

كتل VEXcode EXP
تقوم VEXcode EXP بحظر المشروع الذي يستخدم كتلة "عندما بدأ" لطباعة بيانات المستشعر مباشرة أثناء تشغيل المشروع. يحتوي المشروع على كتلة "عندما بدأ" متبوعة بأربع كتل في حلقة "إلى الأبد". في الحلقة، يوجد أولاً كتلة تعليق تقرأ "طباعة قيمة لفة مستشعر القصور الذاتي على الدماغ"، ثم انتقل إلى الصف التالي. بعد ذلك، تقوم كتلة الطباعة بقراءة اتجاه BrainInertial للطباعة على Brain وتعيين المؤشر إلى الصف التالي. بعد ذلك، تقرأ كتلة التعليق "انتظر" لطباعة القيمة، ثم كرر الحلقة. وأخيرًا، تقرأ كتلة الانتظار 0.1 ثانية.
VEXcode EXP بايثون
while True:
# قم بزيادة حجم الخط لتحسين قابلية القراءة على شاشة Brain.
brain.screen.set_font(FontType.MONO40)

# اطبع قيمة لفة مستشعر القصور الذاتي على Brain، ثم انتقل إلى الصف التالي.
brain.screen.print(brain_inertial.orientation(ROLL, DEGREES), precision=6 if vexcode_brain_precision is None else vexcode_brain_precision))
brain.screen.next_row()

# انتظر لطباعة القيمة، ثم كرر الحلقة.
wait(0.1, SECONDS)
wait(20, MSEC)
فيكس كود EXP C++
int main() {
while(true) {

// قم بزيادة حجم الخط لسهولة القراءة على Brain Screen.
Brain.Screen.setFont(mono40);

// اطبع قيمة لفة مستشعر القصور الذاتي على Brain، ثم انتقل إلى الصف التالي.
Brain.Screen.print(BrainInertial.orientation(roll, degrees));
Brain.Screen.newLine();

// انتظر لطباعة القيمة، ثم كرر الحلقة.
wait(0.1, seconds);
} }

تعد الطباعة إلى EXP Brain مفيدة عندما تريد رؤية القيم تتغير أثناء تشغيل مشروع VEXcode EXP. يمكن أن يساعدك هذا في تحديد القيم التي تم الإبلاغ عنها من المستشعر لاستخدامها كمعلمات في مشروعك. يمكن دمج أوامر الطباعة هذه في مشروع VEXcode EXP الذي قمت بإنشائه بالفعل حتى تتمكن من رؤية قيم المستشعر تتغير في أوقات محددة أثناء تحرك الروبوت. 

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

كتل VEXcode EXP
تقوم VEXcode EXP بحظر المشروع الذي يستخدم كتلة "عندما بدأ" لطباعة بيانات المستشعر مباشرة أثناء تشغيل المشروع. يحتوي المشروع على كتلة "عندما بدأ" متبوعة بأربع كتل في حلقة "إلى الأبد". في الحلقة، يوجد أولاً كتلة تعليق تقرأ "طباعة قيمة مستشعر المسافة على وحدة التحكم"، ثم انتقل إلى الصف التالي. بعد ذلك، تقوم كتلة الطباعة بقراءة مسافة الكائن Distance5 بالمليمتر على وحدة التحكم وتعيين المؤشر إلى الصف التالي. بعد ذلك، تقرأ كتلة التعليق "انتظر" لطباعة القيمة، ثم كرر الحلقة. وأخيرًا، تقرأ كتلة الانتظار 0.1 ثانية.
VEXcode EXP بايثون
while True:
# اطبع قيمة مستشعر المسافة على وحدة التحكم، ثم انتقل إلى الصف التالي.
print(print_to_console_number_format().format(distance_5.object_distance(MM)))

# انتظر لطباعة القيمة، ثم كرر الحلقة.
wait(0.1, SECONDS)
wait(20, MSEC)
فيكس كود EXP C++
int main() {
while (true) {
// اطبع قيمة لفة مستشعر القصور الذاتي على الدماغ، ثم انتقل إلى الصف التالي.
printf(printToConsole_numberFormat(),(Distance5.objectDistance(mm)));
printf("\n");

// انتظر لطباعة القيمة، ثم كرر الحلقة.
wait(0.1, seconds);
} }

الطباعة إلى وحدة تحكم الطباعة في VEXcode EXP يوصى بها عند تشغيل مشروع VEXcode EXP حيث لا يتحرك الروبوت. يجب أن يظل EXP Brain متصلاً أثناء تنفيذ المشروع حتى يتمكن من الطباعة إلى وحدة تحكم الطباعة. يعد هذا مفيدًا لأنه يمكنك قراءة القيم من نافذة VEXcode EXP بدلاً من محاولة قراءة البيانات من شاشة Brain.

توضح هذه الأمثلة مشروع طباعة البيانات من مستشعر المسافة إلى وحدة التحكم في VEXcode EXP. 

لمزيد من المعلومات حول استخدام وحدة التحكم بالطباعة في كتل VEXcode EXP، راجع هذه المقالة.

لمزيد من المعلومات حول استخدام وحدة التحكم بالطباعة في VEXcode EXP Python، راجع هذه المقالة.


تحليل وتطبيق البيانات

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

يمكنك أيضًا طرح أسئلة حول مشروعك لمساعدتك على المضي قدمًا. فكر في أشياء مثل:

  • هل تستخدم أكبر من < أو أقل من > في مشروعك؟ هل الرمز متجه للاتجاه الصحيح؟ إذا كنت تستخدم يساوي = فحاول استبداله بأكبر من أو أقل من لاستخدام نطاق من القيم.
  • هل إعداداتك صحيحة؟ هل تستخدم البيانات الواردة من المستشعر لتعيين المعلمات الخاصة بك؟ هل اخترت خيار القائمة المنسدلة الذي تحتاجه؟
  • هل تقوم بالتحقق من الشروط أكثر من مرة؟ حاول إضافة حلقة للأبد إلى مشروعك، بحيث يتم التحقق من الحالة بشكل متكرر عند تشغيل المشروع.
  • هل مشروعك متعثر؟ هل تم ضبط شروطك بشكل صحيح؟ إذا كنت تستخدم حلقات متداخلة، فحاول تبسيط مشروعك لعزل السلوكيات الفردية.
  • هل تؤثر ظروفك البيئية على المستشعر؟ هل هو مشرق جدًا أم مظلم جدًا؟ هل هناك أشياء أو أشخاص في الطريق؟ حاول تشغيل مشروعك في موقع مختلف لمعرفة ما إذا كان ذلك مفيدًا.
  • هل تقوم بتشغيل أحدث إصدار من مشروعك؟ هل قمت بتنزيل مشروعك المحدث إلى Brain؟ تأكد من إعادة تنزيل المشروع في كل مرة تقوم فيها بإجراء تغيير.
  • هل تكتشف اللون الصحيح؟ هل يظهر المستشعر لونًا مختلفًا عن اللون الموجود في مشروعك؟ حاول تغيير معلمة اللون، أو استخدام نطاق من قيم تدرج اللون، لمعرفة ما إذا كان ذلك مفيدًا.
  • هل تكتشف جسمًا ما ضمن مجال رؤية المستشعر؟ تذكر أن مجال الرؤية يتحرك بالتزامن مع حركة الروبوت.
  • هل تستخدم كتلة الانتظار أثناء التحقق من الحالة؟ تأكد من استخدام الكتل غير المنتظرة في المشروع عند التحقق من وجود حالة ما. اعرض هذه المقالة لمعرفة المزيد حول كتل الانتظار مقابل كتل عدم الانتظار في VEXcode EXP.
  • إذا كنت تقوم بالبرمجة في كتل، فهل مجموعتك بأكملها متصلة بكتلة القبعة {When started} ؟ سيتم تشغيل فقط عند اتصالهما. يمكنك الاستماع إلى صوت النقر عند سحب الكتل وتوصيلها معًا.

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

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

Last Updated: