मुख्य सामग्री पर जाएं

पाठ 3: नंबर '31' तक ड्राइव करें

इस पाठ में, वीआर रोबोट नंबर ग्रिड मैप प्लेग्राउंड पर नंबर '31' तक जाएगा और फिर नंबर '1' पर वापस आएगा!

नंबर ग्रिड मैप प्लेग्राउंड का ऊपर से लिया गया दृश्य, जिसमें संख्या 31 को लाल बॉक्स से हाइलाइट किया गया है। वीआर रोबोट नंबर 1 से शुरू होता है, और नंबर 31 वाला वर्ग उससे तीन स्थान ऊपर है।

ध्यान दें कि वीआर रोबोट वाई अक्ष के साथ यात्रा करेगा और नंबर ग्रिड मैप प्लेग्राउंड पर '31' नंबर पर जाएगा।

नंबर ग्रिड मैप प्लेग्राउंड का ऊपर से लिया गया दृश्य, जिसमें नंबर 31 वाले स्थान को एक काले बॉक्स से हाइलाइट किया गया है। एक रेखा वाई-अक्ष पर मापों को दर्शाती है, जिसमें पहला स्थान वाई-अक्ष पर -900 मिलीमीटर है, और अगला स्थान -700 है, जो हर बार 200 की वृद्धि के साथ जारी रहता है। संख्या 31 का स्थान -300 मिलीमीटर के Y मान पर स्थित है।

वीआर रोबोट नंबर ग्रिड मैप प्लेग्राउंड पर '31' नंबर के स्थान पर जाएगा। हालांकि, वीआर रोबोट द्वारा उस संख्या तक पहुंचने से पहले, उसे यह बताना होगा कि वह संख्या कहां स्थित है। संख्या '31' के निर्देशांक (-900, -300) हैं।

नंबर ग्रिड मैप प्लेग्राउंड का ऊपर से नीचे का दृश्य, जिसमें दो अक्ष संकेतक 31 नंबर के स्थान को चिह्नित करते हैं। वीआर रोबोट -900 X और -900 Y से शुरू होता है, जबकि संख्या 31 वाला स्थान -900 X और -300 Y पर स्थित है।
  • [ड्राइव] नॉन-वेटिंग ब्लॉक को वर्कस्पेस में ड्रैग करें।

    एक नया VEXcode VR ब्लॉक्स प्रोजेक्ट जो 'When Started' ब्लॉक से शुरू होता है और उसके बाद 'Drive Forward' ब्लॉक आता है।
  • [ड्राइव] ब्लॉक के नीचे एक [वेट अंटिल] ब्लॉक संलग्न करें।

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

    VEXcode VR ब्लॉक्स प्रोजेक्ट का एक विस्तार, जिसमें अब वेट अंटिल ब्लॉक में ग्रेटर दैन ब्लॉक डाला गया है। अब पूरे प्रोजेक्ट में लिखा है: 'When Started, Drive Forward' जिसके बाद 'Wait Until' ब्लॉक है और उसके अंदर 'Greater Than' ब्लॉक है जिसमें लिखा है 'blank is Greater Than 50'।
  • ध्यान दें कि <Less than> ब्लॉक के बजाय <Greater than> ब्लॉक का उपयोग किया जाता है क्योंकि वीआर रोबोट खेल के मैदान के निचले हिस्से से ऊपर की ओर चल रहा है। वीआर रोबोट -900 मिलीमीटर (मिमी) के वाई-मान से शुरू होता है। जैसे-जैसे वीआर रोबोट आगे बढ़ता है, वाई-मान बढ़ता जाता है।

    नंबर ग्रिड मैप प्लेग्राउंड का वही ऊपर से नीचे का दृश्य जिसमें दो अक्ष संकेतक पहले की तरह ही 31 नंबर के स्थान को चिह्नित कर रहे हैं। वीआर रोबोट -900 X और -900 Y से शुरू होता है, जबकि संख्या 31 वाला स्थान -900 X और -300 Y पर स्थित है।
  • (रोबोट की स्थिति) ब्लॉक को <Greater than> ब्लॉक में खींचें।

    VEXcode VR ब्लॉक्स प्रोजेक्ट का एक विस्तार, जिसमें अब ग्रेटर दैन ब्लॉक के अंदर रोबोट की स्थिति का ब्लॉक डाला गया है। अब पूरे प्रोजेक्ट में लिखा है: शुरू होने पर, आगे बढ़ें और तब तक प्रतीक्षा करें जब तक रोबोट की X स्थिति मिलीमीटर में 50 से अधिक न हो जाए।
  • (रोबोट की स्थिति) ब्लॉक के पैरामीटर को "Y" पर और <Greater than> ब्लॉक के पैरामीटर को -300 पर सेट करें।

    VEXcode VR ब्लॉक्स प्रोजेक्ट का एक विस्तार, जिसमें अब रोबोट की स्थिति ब्लॉक के अक्ष को X से Y में और ग्रेटर दैन ब्लॉक के दूसरे पैरामीटर को 50 से -300 में बदल दिया गया है। अब पूरे प्रोजेक्ट में लिखा है: शुरू होने पर, आगे बढ़ें और तब तक प्रतीक्षा करें जब तक रोबोट की Y स्थिति मिलीमीटर में -300 से अधिक न हो जाए।
  • [Stop driving] ब्लॉक को खींचकर प्रोजेक्ट में जोड़ें।

    VEXcode VR ब्लॉक्स प्रोजेक्ट का एक विस्तार, जिसमें अब वेट अंटिल ब्लॉक के नीचे स्टॉप ड्राइविंग ब्लॉक जोड़ा गया है। अब पूरे प्रोजेक्ट में लिखा है: शुरू होने पर, आगे बढ़ें और तब तक प्रतीक्षा करें जब तक रोबोट की Y स्थिति मिलीमीटर में -300 से अधिक न हो जाए। अंत में, गाड़ी चलाना बंद कर दें।
  • यदि नंबर ग्रिड मैप प्लेग्राउंड पहले से खुला नहीं है, तो उसे लॉन्च करें और प्रोजेक्ट चलाएं।
  • वीआर रोबोट को नंबर ग्रिड मैप प्लेग्राउंड पर नंबर '31' तक ड्राइव करते हुए देखें।

    नंबर ग्रिड मैप प्लेग्राउंड का ऊपर से लिया गया दृश्य जिसमें वीआर रोबोट 31 नंबर वाले स्थान पर टिका हुआ है।
  • इस प्रोजेक्ट में, वीआर रोबोट नंबर ग्रिड मैप प्लेग्राउंड पर नंबर '31' तक ड्राइव करता है। चूंकि वीआर रोबोट के '31' संख्या तक पहुंचने पर वाई-मान बढ़ रहे हैं, इसलिए परियोजना में <Greater than> ब्लॉक का उपयोग किया गया है।
  • वीआर रोबोट तब रुक जाएगा जब उसका वाई-मान उस निर्देशांक के वाई-मान से अधिक होगा जिस पर इंगित संख्या स्थित है। चूंकि संख्या '31' का Y-मान -300 है, इसलिए VR रोबोट तब चलना बंद कर देगा जब Y-मान -300 से अधिक हो जाएगा।
VEXcode VR ब्लॉक्स प्रोजेक्ट में लॉजिक के प्रवाह को दर्शाने वाला एक आरेख। यह प्रोजेक्ट 'व्हेन स्टार्टेड' ब्लॉक से शुरू होता है और फिर आगे बढ़ना शुरू करता है, और उस कमांड को तब तक बनाए रखता है जब तक कि रोबोट सेंसर की वाई-फाई स्थिति (मिलीमीटर में) -300 से अधिक न हो जाए, जिसके बाद 'स्टॉप ड्राइविंग' ब्लॉक 'ड्राइव फॉरवर्ड' कमांड को समाप्त कर देता है।

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

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

नीचे दी गई छवि में VEXcode ब्लॉक को Switch ब्लॉक के बगल में दिखाया गया है जिसमें समान व्यवहारों के लिए Python कमांड शामिल है। 

VEXcode VR के वेट अंटिल ब्लॉक और उसके संबंधित स्विच ब्लॉक की तुलना। वीआर ब्लॉक में लिखा है 'रोबोट की वाई स्थिति मिलीमीटर में -300 से अधिक होने तक प्रतीक्षा करें'। स्विच ब्लॉक का पायथन कोड इस प्रकार है: 'while not location.position(Y, MM) > -300: wait(5, MSEC)'. wait कमांड while not के नीचे इंडेंट किया गया है।स्विच ब्लॉक के भीतर,while not location.position(Y, MM) > -300:पहला पायथन कमांड है जो जांचता है कि X-अक्ष के साथ रोबोट की स्थिति -300 से अधिक है या नहीं।

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

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

इस उदाहरण में, प्रोजेक्ट हर 5 मिलीसेकंड में यह जांचता है कि रोबोट की स्थिति -300 के Y मान से अधिक है या नहीं। कोड की यह पंक्ति पहली पंक्ति के नीचे इंडेंट की गई है क्योंकि यह कमांड वह व्यवहार है जो तब तक दोहराया जाएगा जब तक कि शर्त (वाई निर्देशांक का मान -300 से अधिक) पूरी नहीं हो जाती। 

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