Skip to main content

الدرس 2: استخدام كتل المقارنة والقيادة حتى الاقتراب

في هذا الدرس، ستقوم بإنشاء مشروع ينقل روبوت الواقع الافتراضي إلى الحرف "A" باستخدام مستشعر المسافة مع كتلة المراسل <Less than> المنطقية. في التحدي المصغر، ستطبق هذه المهارات للتنقل من بداية متاهة الجدار إلى الرقم "1".

منظر من أعلى إلى أسفل للمتاهة الجدارية بالحرف A يتم تمييز الهدف في مربع أحمر، بالقرب من موضع بدء روبوت الواقع الافتراضي.

مخرجات التعلم

  • حدد أن <Greater than> الكتلة هي كتلة منطقية تبلغ عما إذا كانت القيمة الأولى أكبر من القيمة الثانية.
  • حدد أن <Less than> الكتلة هي كتلة منطقية تبلغ عما إذا كانت القيمة الأولى أقل من القيمة الثانية.
  • حدد أن <Less than> المكوّنات <Greater than> أو تبلغ عن قيمة صحيحة أو خاطئة في المكوّن [انتظر حتى].
  • صف كيفية إنشاء مشروع يحتوي على محرك روبوت الواقع الافتراضي للأمام حتى تكون قيمة مستشعر المسافة أقل من قيمة حدية تبلغ 50 ملم (مم).

اسم المشروع وحفظه

  • ابدأ مشروعًا جديدًا في VEXcode VR واسم المشروع Unit5Lesson2. تذكر أنه يمكنك استخدام كتل VEXcode أو كتل Switch أو مزيج من كلا النوعين من الكتل لمشروعك. 
شريط أدوات VEXcode VR مع زر "اسم المشروع" المميز في مربع أحمر، على يسار زر Select Playground. تم تعيين اسم المشروع على الوحدة 5 الدرس 2.

استخدم مستشعر المسافة لتجنب الجدران

  • اسحب كتلة [Drive] إلى مساحة العمل.
    مشروع كتل VEXcode VR، بدءًا من كتلة When Started مع كتلة Drive Forward أسفله. يوجد مربع أحمر يبرز كتلة القيادة للأمام.
  • قم بإرفاق كتلة [انتظر حتى] أسفل كتلة [Drive].
    نفس مشروع كتل VEXcode VR كما كان من قبل، ولكن الآن مع كتلة انتظار حتى في الأسفل مظللة بمربع أحمر. يقرأ المشروع الكامل عند البدء، قم بالقيادة للأمام وانتظر حتى. معلمة كتلة الانتظار حتى تكون فارغة.

سيستخدم هذا المشروع مستشعر المسافة للتنقل عبر ملعب المتاهة الجدارية دون الاصطدام بالجدران. ستستخدم كتلة (المسافة من) داخل الكتلة <Less than> المنطقية في هذا المشروع.

و <Less than>و <Greater than>و <Equal to> هي كتل مقارنة - فهي تقارن القيم. وهي أيضًا كتل مراسل منطقية تبلغ عن قيمة حقيقية عند استيفاء شرط المقارنة، وكاذبة عند عدم استيفاء الشرط.

  • <Less than> تقارير TRUE عندما تكون القيمة الأولى أصغر من القيمة الثانية و FALSE عندما تكون القيمة الأولى أكبر من أو تساوي القيمة الثانية.
    VEXcode VR أقل من الكتلة المنطقية، بقراءة "25 أقل من 50".
  • <Greater than> تقارير TRUE عندما تكون القيمة الأولى أكبر من القيمة الثانية، و FALSE عندما تكون القيمة الأولى أصغر من أو تساوي القيمة الثانية.
    VEXcode VR أكبر من الكتلة المنطقية، بقراءة "100 أكبر من 50".
  • <Equal to> تقارير صحيحة عندما تكون القيمتان متطابقتين تمامًا، وخطأ عندما لا تكونان متطابقتين.
    VEXcode VR يساوي كتلة منطقية، بقراءة "50 يساوي 50".

يمكن أن تقبل كتل المقارنة الكسور العشرية أو الأعداد الصحيحة أو الكتل العددية. كما يقبلون كتل المراسلين الدائرية، مثل كتلة (المسافة من). يمكن أن تكون كتلة (المسافة من) مع كتلة مقارنة عند استخدام مستشعر المسافة في مشروع.

في هذا المثال، ستصدر الكتلة تقريرًا صحيحًا عندما تكون المسافة من كائن ومستشعر المسافة على روبوت الواقع الافتراضي أقل من 50 ملليمتر (مم).

VEXcode VR أقل من كتلة منطقية مع كتلة مسافة من داخلها، تقرأ "المسافة الأمامية بالملليمترات أقل من 50".

  • اسحب الكتلة <Less than> المنطقية إلى كتلة [انتظر حتى].
  • ضع الكتلة المستديرة (المسافة من) داخل كتلة المراسل المنطقية
    مشروع VEXcode VR Blocks الذي يجمع الخطوات السابقة. يقرأ المشروع بأكمله الآن عند البدء، قم بالقيادة للأمام وانتظر حتى تقل المسافة الأمامية بالملليمترات عن 50. يبرز المربع الأحمر الكتلة أقل من المنطقية.
  • ستبقي كتلة [انتظر حتى] روبوت الواقع الافتراضي يتحرك للأمام حتى يتم استيفاء الشرط، والمسافة المبلغ عنها أقل من 50 ملم (مم). بعد ذلك، سينتقل المشروع إلى الكتلة التالية في المكدس، والتي ستكون كتلة [Stop driving].
    رسم تخطيطي يوضح تدفق المنطق في مشروع VEXcode VR Blocks. يبدأ المشروع بالقيادة للأمام، ويستمر هذا الأمر حتى تقل مسافة مستشعر المسافة الأمامية بالملليمترات عن 50، وبعد ذلك تنهي كتلة إيقاف القيادة أمر القيادة للأمام.
  • هناك حاجة إلى كتلة [توقف عن القيادة] بعد كتلة [انتظر حتى] لأن روبوت الواقع الافتراضي سيستمر في القيادة حتى يتم توجيهه للتوقف. أضف كتلة [Stop driving] إلى المشروع.
    يحظر VEXcode VR المشروع من قبل مع إضافة كتلة Stop Driving بعد كتلة Wait Until. يقرأ المشروع بأكمله الآن، عند بدء القيادة للأمام والانتظار حتى تقل المسافة الأمامية بالملليمترات عن 50، وبعد ذلك توقف عن القيادة.
  • قم بتشغيل ملعب المتاهة الجدارية إذا لم يكن مفتوحًا بالفعل وقم بتشغيل المشروع.
  • راقب محرك روبوت الواقع الافتراضي من بداية متاهة الحائط وتوقف عندما يبلغ مستشعر المسافة أنه أقل من 50 ملم (مم) من الحائط.
    منظر من أعلى إلى أسفل للمتاهة الجدارية بالحرف A هدف بالقرب من موضع بداية روبوت الواقع الافتراضي. انتقل روبوت الواقع الافتراضي الآن إلى الأمام نتيجة لمشروع الكتل.
  • باستخدام <Less than> الكتلة مع كتلة (المسافة من) داخل كتلة [انتظر حتى]، يوجه روبوت الواقع الافتراضي للانتظار حتى يكون أقل من 50 ملم (مم) من الجدار قبل التوقف.
  • أعد ضبط الملعب لتحريك روبوت الواقع الافتراضي مرة أخرى إلى وضع البداية.

استخدام كتل المفاتيح

في هذا الدرس، تعرفت على <Greater than>المكوّنات <Less than> <Equal to> المنطقية و و. توضح الصورة أدناه كتل مقارنة التبديل المنطقية. لكي تعمل كتلة التبديل المنطقية على النحو المنشود، يجب إدخال وظائف Switch Python مع الإملاء وعلامات الترقيم الصحيحة. 

لاحظ أن <Equal to> كتلة التبديل تستخدم علامتين متساويتين (==). وذلك لأنه في بايثون، تمثل علامة المساواة الواحدة (=) تعيينًا لقيمة (على سبيل المثال، x = 10)، بينما تتحقق علامتان متساويتان (==) مما إذا كانت قيمتان متساويتين. تأكد من استخدام علامتين متساويتين عند استخدام <Equal to> كتلة التبديل. 
A comparison of three VEXcode VR boolean blocks and their corresponding switch blocks. The Less Than block is written in Python as '25 < 50', the Greater Than block is written in Python as '100 > 50', and the Equal To block is written in Python as '50 == 50'. A red box highlights the double equal signs in the last example, demonstrating how to compare two values as equal in Python.

لقد رأيت أيضًا مثالًا على مشروع سيقود فيه روبوت الواقع الافتراضي للأمام حتى تقل المسافة المبلغ عنها عن 50 ملليمترًا (مم) من جسم ما. بعد ذلك، سيتوقف روبوت الواقع الافتراضي. يعرض المشروع الموجود على اليمين أوامر Python المقابلة داخل كتلة Switch. يخبر الأمر،  while not front_distance.get_distance(MM) < 50 الروبوت بالتحقق مما إذا كانت المسافة المبلغ عنها أقل من 50 مم من الكائن.

يقوم سطر التعليمة البرمجية التالي، الانتظار (5، ملي ثانية)، بإيقاف التعليمة البرمجية مؤقتًا لمدة 5 مللي ثانية. سينتظر الأمر الذي يتحقق مما إذا كانت المسافة المبلغ عنها أقل من 50 مم من كائن لمدة 5 مللي ثانية قبل التحقق من الحالة مرة أخرى. 

مقارنة بين مشروع VEXcode VR الخاص بنا، مع تحويل كتلة الانتظار حتى إلى كتلة تبديل على الجانب الأيمن. يتم قراءة كتلة التبديل الجديدة في Python 'while notfront_distance.get_distance (MM )< 50: wait(5, msec )'.

قم بتحديد زر التالي للمتابعة مع بقية هذا الدرس.