Skip to main content

اتصال المنافسة: نقطة التحول - C++

حقل منافسة روبوتات نقطة التحول مع عناصر اللعبة ومناطق التسجيل في مراكز البداية لبداية المباراة. على طول الجدار الخلفي توجد شبكة مع سلسلة من الأعلام القابلة للطي أمامها.
VRC 2018-2019 حقل نقطة التحول

قدرات الروبوت

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

أيقونة توسيع التعلم الخاص بك قم بتوسيع نطاق تعلمك

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

  • افتح مثال مشروع Clawbot (نظام نقل الحركة، بمحركين، بدون جيروسكوب).

    أيقونة مشروع القالب تقرأ Clawbot Drivetrain، No Gyro في الأسفل مع رسم تخطيطي رمادي للروبوت أعلاه، يشير إلى المشروع الذي يجب تحديده.

     

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

    نافذة VEXcode V5 Devices مفتوحة ويعرض اختيار Add a Device مستشعر الرؤية المميز في مربع أحمر على الجانب الأيسر. تشمل الخيارات الأخرى وحدة التحكم ومجموعة نقل الحركة والمحرك و 3 أسلاك.

  • قم ببرمجة Clawbot للتحرك نحو الكائن المكتشف. يمكن حتى برمجة Clawbot لرفع ذراعه كما لو كان لتبديل العلم!
  • قم بتنزيل وتشغيل المشروع (في C++) لمراقبة ما إذا كان مستشعر الرؤية يمكنه اكتشاف الأجسام الصفراء مثل الكرات الصفراء في لعبة نقطة تحول VRC. إذا تمكن مستشعر الرؤية من اكتشاف الأجسام، فهل يتحرك الروبوت بناءً على تلك الأشياء المكتشفة ؟ للحصول على المساعدة، شاهد فيديو البرنامج التعليمي Download and Run a Project.
  • إذا سمح الوقت، قم بإعداد حقل لعبة مشابه لحقل نقطة التحول. تدرب على استخدام مستشعر الرؤية للسماح للروبوت بالتحرك لتسجيل النقاط!

عرض نموذج الحل أدناه:

// قم بتضمين مكتبة V5
# بما في ذلك "vex.h"
  
// يسمح بسهولة

استخدام مكتبة vex
باستخدام
مساحة الاسم vex ؛ event checkRed =
  event ()؛ event
  checkBlue = event
  ()؛

void hasRedCallback () {
  Brain.Screen.setFont (mono40 )؛ Brain.Screen.clearLine (1 )؛
    Brain.Screen.setCursor (1، 1
    )؛ Vision5.takeSnapshot (Vision5 __
    REDBOX )؛
  if (Vision5.objectCount > 0
    ) {ArmMotor.spinFor (forward
    , 300, degrees); ClawMotor.spinFor

  (
    forward, 100, degrees
  );


Drivetrain.driveFor (forward
  , 12,
  inches )؛ ArmMotor.spinFor
  (reverse, 300,
  degrees); ClawMotor.spinFor (
  reverse, > 100
    , degrees);
  else {Brain.Screen.print
    (Red Object
  )}} haslueBallback
    (voidBallback) {Brain.creenFonto (
    moncreen); Brain.driveFor (forward
    , 3, inches); ArmMotor.spinFor (
    reverse, 300, degrees
  );


(reverse,
  100, degrees); لا تقم بالإزالة!
  vexcodeInit ();
  // Register Event Handlers
  checkRed(hasRedCallback);
  checkBlue(hasBlueCallback);

  // يعمل باستمرار للتحقق من بيانات المستشعر الجديدة
  بينما (true
    ){ checkRed.broadcastAndWait ();
    checkBlue.broadcastAndWait ();
    wait(0.2, seconds);

}}