Skip to main content

पाठ 2: [प्रतीक्षा करें] ब्लॉक का उपयोग करना

इस पाठ में, आप बम्पर सेंसर और [Wait until] ब्लॉक का उपयोग करके एक प्रोजेक्ट बनाएंगे। मिनी-चैलेंज में, आप दीवार भूलभुलैया की शुरुआत से अक्षर 'ए' तक नेविगेट करने के लिए इन कौशलों को लागू करेंगे।

दीवार भूलभुलैया खेल के मैदान का पार्श्व दृश्य, जिसमें वीआर रोबोट सीधे दीवार के सामने खड़ा है, यह दर्शाता है कि दीवारें त्रि-आयामी हैं और रोबोट उनसे टकरा सकता है।

सीखने के परिणाम

  • पहचानें कि गैर-प्रतीक्षारत ब्लॉकों में स्टैक जारी रहता है, भले ही ब्लॉक का व्यवहार अभी पूरा न हुआ हो।
  • पहचानें कि प्रतीक्षारत ब्लॉक स्टैक को तब तक रोक देता है जब तक कि उस ब्लॉक का व्यवहार पूरा नहीं हो जाता।
  • पहचानें कि परियोजना के निष्पादन को हाइलाइट करने से प्रतीक्षारत बनाम गैर-प्रतीक्षारत ब्लॉकों का दृश्यीकरण होता है।
  • पहचानें कि [Wait until] ब्लॉक एक नियंत्रण ब्लॉक है जो बूलियन मान स्वीकार करता है।
  • पहचानें कि [Wait until] ब्लॉक बार-बार बूलियन स्थिति की जांच करेगा और तब तक अगले ब्लॉक पर नहीं जाएगा जब तक कि स्थिति TRUE रिपोर्ट न करे।
  • पहचानें कि सेंसर की स्थिति की जांच करने के लिए [प्रतीक्षा करें] ब्लॉक का उपयोग गैर-प्रतीक्षा ब्लॉक (जैसे ड्राइव) के साथ किया जाता है।
  • पहचानें कि <Pressing bumper> ब्लॉक [Wait until] ब्लॉक में TRUE या FALSE मान रिपोर्ट करता है।
  • पहचानें कि कैसे [ड्राइव फॉर] और [टर्न फॉर] ब्लॉक विशेष ब्लॉक हैं जो प्रतीक्षारत या गैर-प्रतीक्षारत हो सकते हैं।
  • वर्णन करें कि एक ऐसा प्रोजेक्ट कैसे बनाया जाए जिसमें बम्पर सेंसर दबाए जाने तक VR रोबोट आगे बढ़ता रहे।

प्रोजेक्ट को नाम दें और सहेजें

  • VEXcode VR में एक नया प्रोजेक्ट शुरू करें और प्रोजेक्ट का नाम Unit4Lesson2रखें।
VEXcode VR टूलबार के केंद्र में प्रोजेक्ट नाम बॉक्स, जिसे लाल बॉक्स से हाइलाइट किया गया है, खेल का मैदान चुनें बटन के बाईं ओर।

[प्रतीक्षा करें] ब्लॉक

[Wait until] ब्लॉक एक नियंत्रण ब्लॉक है जो बूलियन शर्तों को स्वीकार करता है। [प्रतीक्षा करें] ब्लॉक बार-बार बूलियन स्थिति की जांच करते हैं और परियोजना प्रवाह को नियंत्रित करते हैं। कोई प्रोजेक्ट तब तक स्टैक में अगले ब्लॉक पर नहीं जाएगा जब तक कि [Wait until] ब्लॉक में स्थिति TRUE के रूप में रिपोर्ट न हो। [प्रतीक्षा करें] ब्लॉकों का उपयोग गैर-प्रतीक्षा ब्लॉकों जैसे [ड्राइव] या [टर्न] के साथ किया जाता है।

आपकी जानकारी के लिए

गैर-प्रतीक्षारत और प्रतीक्षारत ब्लॉक यह निर्धारित करते हैं कि अगला ब्लॉक कब व्यवहार शुरू करेगा। प्रतीक्षारत ब्लॉक, जैसे [ड्राइव फॉर] और [टर्न फॉर], स्टैक में अगले ब्लॉक पर जाने से पहले अपना व्यवहार पूरा करते हैं। गैर-प्रतीक्षा ब्लॉक, जैसे [ड्राइव] और [टर्न], स्टैक में अगले ब्लॉक की ओर बढ़ना जारी रखते हैं, भले ही गैर-प्रतीक्षा ब्लॉक का व्यवहार पूरा न हुआ हो।

कुछ ब्लॉक, जैसे [ड्राइव फॉर] और [टर्न फॉर] प्रतीक्षारत या गैर-प्रतीक्षारत ब्लॉक हो सकते हैं। ब्लॉक पर तीर का चयन करने से ब्लॉक प्रतीक्षारत से गैर-प्रतीक्षारत ब्लॉक में बदल जाएगा।

ब्लॉक के लिए ड्राइव को ब्लॉक के दाईं ओर बंद और खुले तीर के साथ दिखाया गया है। शीर्ष पर, ब्लॉक के लिए ड्राइव पर लिखा है 200 मिमी तक आगे बढ़ें। नीचे की ओर, उसी ब्लॉक को आगे बढ़ाकर लिखा गया है कि 200 मिमी तक आगे बढ़ें और प्रतीक्षा न करें।

स्विच ब्लॉक का उपयोग करना

स्विच नॉन-वेटिंग ब्लॉक, ब्लॉक के अंत में "wait=False" पैरामीटर जोड़ता है। "wait=False" वह पायथन कमांड है जो ब्लॉक को प्रतीक्षा न करने तथा स्टैक में अगले ब्लॉकों की ओर बढ़ना जारी रखने के लिए कहता है।

समतुल्य स्विच ब्लॉक को प्रतीक्षारत और गैर-प्रतीक्षारत कमांड के रूप में ड्राइव फॉर कमांड के साथ दिखाया गया है। शीर्ष पर, स्विच ब्लॉक में पायथन कमांड ड्राइवट्रेन डॉट ड्राइव_फॉर (फॉरवर्ड, 200, एमएम) पढ़ता है। नीचे, उसी कमांड को ड्राइवट्रेन डॉट ड्राइव _ के लिए (फॉरवर्ड, 200, एमएम, प्रतीक्षा = गलत) पढ़ने के लिए विस्तारित किया गया है।

  • [ड्राइव] नॉन-वेटिंग ब्लॉक को कार्यक्षेत्र में खींचें.

    एक नया VEXcode VR प्रोजेक्ट जिसमें एक ड्राइव ब्लॉक के साथ जब शुरू किया गया ब्लॉक जुड़ा हुआ है और आगे के लिए सेट है।
  • [ड्राइव] ब्लॉक के नीचे [प्रतीक्षा करें] ब्लॉक संलग्न करें।

    वही प्रोजेक्ट जिसमें स्टैक के निचले भाग में wait until ब्लॉक जोड़ा गया है। Wait until ब्लॉक का पैरामीटर रिक्त है।
  • [Wait until] ब्लॉक बूलियन शर्तों को स्वीकार करता है। यह परियोजना दीवार भूलभुलैया खेल का मैदानके माध्यम से ड्राइव करने के लिए बम्पर सेंसर का उपयोग करेगी। <Pressing bumper> बूलियन ब्लॉक को [Wait until] ब्लॉक में खींचें.

    बम्पर प्रेस्ड ब्लॉक के साथ एक ही प्रोजेक्ट को Wait until ब्लॉक के पैरामीटर में जोड़ा गया। परियोजना में अब लिखा है, जब शुरू किया जाए, तो आगे बढ़ें, बाएं बम्पर को दबाए जाने तक प्रतीक्षा करें।
  • [ड्राइविंग रोकें] ब्लॉक को खींचें और उसे प्रोजेक्ट में जोड़ें.

    वही परियोजना जिसमें wait until ब्लॉक के नीचे stop driving ब्लॉक जोड़ा गया है। परियोजना में अब लिखा है, जब शुरू करें, तो आगे बढ़ें, बाएं बम्पर के दबने तक प्रतीक्षा करें, फिर गाड़ी चलाना बंद कर दें।
  • यदि यह पहले से खुला नहीं है तो वॉल मेज़ प्लेग्राउंड लॉन्च करें और प्रोजेक्ट चलाएं।
  • दीवार भूलभुलैया की शुरुआत से वीआर रोबोट को ड्राइव करते हुए देखें और बम्पर सेंसर को दीवार द्वारा दबाए जाने पर उसे रोकें।
  • [ड्राइव] ब्लॉक <Pressing bumper> ब्लॉक के साथ बम्पर सेंसर की स्थिति की जांच करते हुए वीआर रोबोट को आगे बढ़ने की अनुमति देता है। जब <Pressing bumper> सत्य रिपोर्ट करेगा, तो VR रोबोट स्टैक में अगले ब्लॉक पर चला जाएगा और ड्राइविंग बंद कर देगा।

    इस पाठ से VEXcode VR परियोजना को परियोजना प्रवाह दिखाने के लिए अलग किया गया है। जब शुरू किया गया ब्लॉक के बाद ड्राइव फॉरवर्ड ब्लॉक आता है। एक सुनहरा तीर ड्राइव फॉरवर्ड ब्लॉक से नीचे की ओर इशारा करता है, जो प्रतीक्षा करें जब तक कि बाएं बम्पर दबाया न जाए ब्लॉक पर स्थित है। ब्लॉक के दाईं ओर 2 घुमावदार लाल तीर हैं जो गोलाकार गति को दर्शाते हैं और "नहीं दबाया गया (गलत)" शब्द दर्शाते हैं कि क्या होता है जब रोबोट आगे बढ़ता है और बम्पर स्विच दबाया नहीं जाता है। प्रतीक्षा तक ब्लॉक के नीचे, स्टॉप ड्राइविंग ब्लॉक की ओर नीचे की ओर इंगित करने वाला हरा तीर, जिस पर "दबाया गया (सत्य)" लिखा है, यह दर्शाता है कि बम्पर स्विच दबाने पर परियोजना स्टॉप ड्राइविंग ब्लॉक में चली जाएगी।

    आपकी जानकारी के लिए

    प्रतीक्षारत बनाम गैर-प्रतीक्षारत ब्लॉकों के विज़ुअलाइज़ेशन का अनुसरण करने के लिए, VEXcode VR में कोड निष्पादन हाइलाइटिंग फ़ंक्शन देखें। इस परियोजना की शुरुआत में, शर्त पूरी होने तक [Wait until] ब्लॉक के चारों ओर हरा हाइलाइट दिखाई देगा। ऐसा इसलिए है क्योंकि [Wait until] ब्लॉक एक प्रतीक्षा ब्लॉक है। हरे रंग का हाइलाइट गैर-प्रतीक्षारत ब्लॉकों को छोड़ने के लिए दिखाई देगा क्योंकि ये कमांड शीघ्रता से निष्पादित होते हैं।

    इस पाठ से VEXcode VR प्रोजेक्ट जिसमें Wait until ब्लॉक के चारों ओर एक लाल कॉलआउट बॉक्स है, जो यह दर्शाता है कि यह एक प्रतीक्षा ब्लॉक है।

     

    स्विच ब्लॉक का उपयोग करना 

    यह स्विच ब्लॉक है जिसमें <Bumper pressed>के साथ [Wait until] कमांड है  बूलियन रिपोर्टर.

    VEXcode VR परियोजना ऊपर की तरह है, लेकिन Wait until ब्लॉक को Switch ब्लॉक से बदल दिया गया है। स्विच ब्लॉक में पायथन कमांड पहली पंक्ति में while not left_bumper.pressed(): पढ़ता है। फिर पायथन ब्लॉक के नीचे इंडेंट किया गया wait (5, msec) लिखा है।

    while not left_bumper.pressed():वह पायथन कमांड है जो यह जांचता है कि क्या बायां बम्पर वर्तमान में दबाया जा रहा है।

    wait (5, MSEC)एक पायथन कमांड है जो 5 मिलीसेकंड (MSEC) के लिए चेक के निष्पादन को रोक देता है, इसलिए प्रोजेक्ट यह जांचता है कि बाएं बम्पर को हर 5 MSEC पर दबाया गया है या नहीं। कोड की यह पंक्ति, कोड की पहली पंक्ति के नीचे इंडेंट की गई है, क्योंकि यह कमांड वह व्यवहार है जो तब तक दोहराया जाएगा जब तक कि शर्त (इस मामले में, बाएं बम्पर को दबाया गया) पूरी नहीं हो जाती।

    VEXcode VR में, wait कमांड हमेशा एक सशर्त लूप के साथ जोड़ा जाता है। प्रतीक्षा आदेश का उद्देश्य यह सुनिश्चित करना है कि VEXcode VR प्लेटफॉर्म की वेब-आधारित प्रकृति के कारण, VEXcode VR परियोजना को अपेक्षित रूप से ठीक से चला सके। सशर्त लूप का उपयोग करते समय wait कमांड को कभी भी नहीं हटाया जाना चाहिए, क्योंकि हो सकता है कि आपका प्रोजेक्ट अपेक्षित रूप से न चले।

    एक बार बाएं बम्पर को दबा दिया जाए तो रोबोट चलना बंद कर देगा।

इस पाठ के शेष भाग को जारी रखने के लिए अगला बटन का चयन करें।