Skip to main content

पाठ 2: हरे और फिर नीले डिस्क पर ड्राइव करें

ग्रीन और फिर ब्लू डिस्क पर ड्राइव करें

  • पिछली परियोजना में जब फ्रंट आई सेंसर हरे रंग की डिस्क का पता लगाता है तो वीआर रोबोट दाईं ओर मुड़ जाता है। अब, एक प्रोजेक्ट बनाएं जहां वीआर रोबोट डिस्क भूलभुलैया खेल के मैदानपर चार डिस्क पर ड्राइव करता है।
  • इसका लक्ष्य एक सुसंगत पैटर्न बनाना है, जहां फ्रंट आई सेंसर द्वारा हरे रंग की डिस्क का पता लगाने पर वीआर रोबोट दाईं ओर मुड़ जाए, तथा फ्रंट आई सेंसर द्वारा नीले रंग की डिस्क का पता लगाने पर बाईं ओर मुड़ जाए।

    डिस्क मेज़ खेल के मैदान का ऊपर से नीचे का दृश्य, जिसमें एक तीर वीआर रोबोट के इच्छित पथ को दर्शाता है। रोबोट को शुरुआती प्लेटफार्म से आगे बढ़कर पहली हरी डिस्क तक पहुंचना चाहिए तथा दो नीली डिस्क पर बाईं ओर मुड़ने से पहले दाईं ओर मुड़ना चाहिए।
  • वीआर रोबोट को दाईं ओर मुड़ने के बाद आगे बढ़ने का निर्देश देने के लिए मौजूदा प्रोजेक्ट में निम्नलिखित ब्लॉक जोड़ें।

    VEXcode VR ब्लॉक परियोजना को पहले से ही रोक देता है, तथा इसमें कमेंट और ड्राइव फॉरवर्ड ब्लॉक भी जोड़े गए हैं। अब पूरे प्रोजेक्ट में लिखा है 'जब शुरू किया गया' और उसके बाद एक टिप्पणी है जिसमें लिखा है 'पहली डिस्क (हरे रंग की) पर ड्राइव करें, फिर दाईं ओर मुड़ें'। इसके बाद, आगे बढ़ें, तब तक प्रतीक्षा करें जब तक कि सामने वाली आंख हरी बत्ती न दिखा दे, फिर 90 डिग्री तक दाईं ओर मुड़ें। इसके बाद एक टिप्पणी ब्लॉक है जिसमें लिखा है 'अगली डिस्क (नीली) पर जाएं, फिर बाएं मुड़ें'। अंत में, आगे बढ़ें।
  • 'नीले' का पता लगाने के लिए <Color sensing> ब्लॉक सेट के साथ एक और [प्रतीक्षा करें] जोड़ें, क्योंकि अगली डिस्क जो VR रोबोट को मिलेगी वह नीले रंग की है।

    VEXcode VR पहले से प्रोजेक्ट को ब्लॉक कर देता है, तथा अंतिम ड्राइव फॉरवर्ड ब्लॉक के बाद Wait Until ब्लॉक जोड़ दिया जाता है। अब पूरे प्रोजेक्ट में लिखा है 'जब शुरू किया गया' और उसके बाद एक टिप्पणी है जिसमें लिखा है 'पहली डिस्क (हरे रंग की) पर ड्राइव करें, फिर दाईं ओर मुड़ें'। इसके बाद, आगे बढ़ें, तब तक प्रतीक्षा करें जब तक कि सामने वाली आंख हरी बत्ती न दिखा दे, फिर 90 डिग्री तक दाईं ओर मुड़ें। इसके बाद एक टिप्पणी ब्लॉक है जिसमें लिखा है 'अगली डिस्क (नीली) पर जाएं, फिर बाएं मुड़ें'। अंत में, आगे बढ़ें और तब तक प्रतीक्षा करें जब तक कि सामने वाली आंख नीले रंग का पता न लगा ले।
  • [Turn for] ब्लॉक जोड़ें और पैरामीटर को 'बाएं' पर सेट करें।

    VEXcode VR ब्लॉक परियोजना को पहले से ही जारी रखता है, जिसमें अंतिम Wait Until ब्लॉक के बाद Turn Left For 90 Degrees ब्लॉक जोड़ा गया है। अब पूरे प्रोजेक्ट में लिखा है 'जब शुरू किया गया' और उसके बाद एक टिप्पणी है जिसमें लिखा है 'पहली डिस्क (हरे रंग की) पर ड्राइव करें, फिर दाईं ओर मुड़ें'। इसके बाद, आगे बढ़ें, तब तक प्रतीक्षा करें जब तक कि सामने वाली आंख हरी बत्ती न दिखा दे, फिर 90 डिग्री तक दाईं ओर मुड़ें। इसके बाद एक टिप्पणी ब्लॉक है जिसमें लिखा है 'अगली डिस्क (नीली) पर जाएं, फिर बाएं मुड़ें'। इसके बाद आगे बढ़ें और 90 डिग्री तक बाईं ओर मुड़ने से पहले सामने की आंख द्वारा नीले रंग का पता लगने तक प्रतीक्षा करें।
  • यह देखने के लिए प्रोजेक्ट चलाएं कि वीआर रोबोट डिस्क भूलभुलैया खेल के मैदानके माध्यम से कैसे चलता है।

    डिस्क मेज़ खेल के मैदान का ऊपर से नीचे का दृश्य, जिसमें एक तीर वीआर रोबोट के इच्छित पथ को दर्शाता है। रोबोट को शुरुआती प्लेटफार्म से आगे बढ़कर पहली हरी डिस्क तक पहुंचना चाहिए तथा पहली नीली डिस्क पर बाईं ओर मुड़ने से पहले दाईं ओर मुड़ना चाहिए।
  • ध्यान दें कि जब फ्रंट आई सेंसर हरे रंग की डिस्क का पता लगाता है तो वीआर रोबोट दाईं ओर मुड़ जाता है, और जब फ्रंट आई सेंसर नीले रंग की डिस्क का पता लगाता है तो बाईं ओर मुड़ जाता है।
  • फ्रंट आई सेंसर का उपयोग करके डिस्क भूलभुलैया खेल के मैदान पर दो और डिस्क पर वीआर रोबोट को चलाने के लिए इस परियोजना का निर्माण जारी रखें। वीआर रोबोट को अगले दो डिस्क पर ले जाने के लिए निम्नलिखित ब्लॉक जोड़ें और फिर रुकें:

    VEXcode VR ब्लॉक स्निपेट को हमारी परियोजना के अंत में नीले तीसरे और चौथे डिस्क तक पहुंचने के लिए जोड़ता है। तीसरी डिस्क तक ड्राइव करने के लिए आगे बढ़ें, तब तक प्रतीक्षा करें जब तक कि सामने वाली आंख नीले रंग का पता न लगा ले, और 90 डिग्री तक बाएं मुड़ें। चौथी डिस्क तक ड्राइव करने के लिए, आगे की ओर ड्राइव करें, तब तक प्रतीक्षा करें जब तक कि सामने की आंख नीले रंग का पता न लगा ले और फिर 90 डिग्री तक बाएं मुड़ें। अंततः, गाड़ी चलाना बंद करें।
    तीसरे और चौथे डिस्क तक पहुंचने के लिए VEXcode ब्लॉक स्निपेट अब हमारे प्रोजेक्ट के निचले भाग में जोड़ दिया गया है। अब सम्पूर्ण परियोजना चार डिस्कों तक पहुंच गई है, पहले एक हरी डिस्क और फिर तीन नीली डिस्क। प्रत्येक डिस्क के लिए कोड के निम्नलिखित भाग का उपयोग करें: आगे की ओर ड्राइव करें, तब तक प्रतीक्षा करें जब तक कि फ्रंट आई डिस्क का रंग न पहचान ले, फिर यदि हरा हो तो दाईं ओर 90 डिग्री घुमाएं और यदि नीला हो तो बाईं ओर 90 डिग्री घुमाएं। तीन ब्लॉक वाले इस भाग को चार बार दोहराकर हम चार डिस्क तक पहुंच सकते हैं, सबसे पहले दाईं ओर मुड़ने पर एक हरी डिस्क और फिर बाईं ओर मुड़ने पर तीन नीली डिस्क। इन 12 ब्लॉकों और प्रत्येक अनुभाग को चिह्नित करने वाली अतिरिक्त टिप्पणियों के बाद, ड्राइविंग बंद करें।
  • ध्यान दें कि इसमें एक पैटर्न है। इस परियोजना में ब्लॉकों की एक श्रृंखला तीन बार दोहराई गई है। कोड के इस भाग को [Repeat] ब्लॉक का उपयोग करके संक्षिप्त किया जा सकता है।

    अब हम अपने कोड को सरल और छोटा करने के लिए रिपीट ब्लॉक का उपयोग करेंगे। लाल बॉक्स नीले डिस्क तक पहुंचने के लिए उपयोग किए जाने वाले तीन खंडों को उजागर करता है, क्योंकि यह तीन बार एक ही कोड है, इसलिए हम इसे 3 बार दोहराने के लिए सेट किए गए रिपीट ब्लॉक में जोड़ सकते हैं। अब, परियोजना में लिखा है कि जब शुरू करें, तो आगे बढ़ें और 90 डिग्री तक दाईं ओर मुड़ने से पहले सामने वाली आंख द्वारा हरी बत्ती मिलने तक प्रतीक्षा करें। इसके बाद, नीली डिस्क तक पहुंचने के लिए कोड को तीन बार दोहराएं: आगे बढ़ें, तब तक प्रतीक्षा करें जब तक कि सामने वाली आंख नीली डिस्क का पता न लगा ले और फिर 90 डिग्री तक बाएं मुड़ें। दोहराए गए लूप को बंद करने के बाद, ड्राइविंग बंद करें।
  • यदि डिस्क मेज़ प्लेग्राउंड पहले खुला नहीं है तो उसे खोलें और प्रोजेक्ट चलाएँ।
  • वीआर रोबोट को भूलभुलैया खेल के मैदानपर चार डिस्क पर नेविगेट करते हुए देखें।

    डिस्क मेज़ खेल के मैदान का ऊपर से नीचे का दृश्य, जिसमें एक तीर वीआर रोबोट के इच्छित पथ को दिखा रहा है। रोबोट को शुरुआती प्लेटफार्म से आगे बढ़कर पहली हरी डिस्क तक पहुंचना चाहिए और फिर दाईं ओर मुड़कर दो नीली डिस्क पर बाईं ओर मुड़कर तीसरी पर रुकना चाहिए। लाल बॉक्स यह दर्शाता है कि रोबोट तीसरी नीली डिस्क पर रुक जाता है।
  • इस परियोजना में, वीआर रोबोट तब तक आगे बढ़ता रहता है जब तक कि फ्रंट आई सेंसर हरे रंग का पता नहीं लगा लेता।
    • वीआर रोबोट 90 डिग्री पर दाईं ओर मुड़ता है और तब तक आगे बढ़ता है जब तक कि नीला रंग दिखाई न दे।
    • इसके बाद वीआर रोबोट बायीं ओर मुड़ता है और तब तक आगे बढ़ता है जब तक कि फ्रंट आई सेंसर नीले रंग का पता नहीं लगा लेता। एक बार नीला रंग पहचान में आ जाने पर, वीआर रोबोट पुनः बायीं ओर मुड़ जाता है।
    • अंत में, वीआर रोबोट तब तक आगे बढ़ता रहता है जब तक कि फ्रंट आई सेंसर नीले रंग का पता नहीं लगा लेता, फिर रुक जाता है।
  • इस पैटर्न पर ध्यान दें कि जब फ्रंट आई सेंसर हरे रंग का पता लगाता है, तो वीआर रोबोट दाईं ओर मुड़ जाता है। जब फ्रंट आई सेंसर नीले रंग का पता लगाता है, तो इस प्रोजेक्ट में वीआर रोबोट बाईं ओर मुड़ जाता है।

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

अब तक, आपने हरे डिस्क और फिर तीन नीले डिस्क पर ड्राइव करने के लिए एक प्रोजेक्ट बनाया है।

नीचे दी गई छवि VEXcode ब्लॉकों का उपयोग करते हुए संपूर्ण परियोजना को दर्शाती है, जिसमें दोहराए गए व्यवहारों का उपयोग लाल रंग में बॉक्स किए गए तीन नीले डिस्क तक ड्राइव करने के लिए किया जाता है।

VEXcode VR ब्लॉक परियोजना जिस पर हम काम कर रहे हैं, उसमें तीन बार दोहराएँ ब्लॉक को लाल रंग में हाइलाइट किया गया है। परियोजना में लिखा है कि जब शुरू करें, तो आगे बढ़ें और 90 डिग्री तक दाईं ओर मुड़ने से पहले सामने वाली आंख द्वारा हरी बत्ती मिलने तक प्रतीक्षा करें। इसके बाद, रिपीट ब्लॉक का उपयोग करके नीली डिस्क तक पहुंचने के लिए कोड को तीन बार दोहराएं: आगे बढ़ें, तब तक प्रतीक्षा करें जब तक कि सामने की आंख नीली डिस्क का पता न लगा ले और फिर 90 डिग्री तक बाएं मुड़ें। दोहराए गए लूप को बंद करने के बाद, ड्राइविंग बंद करें।

नीचे दी गई परियोजना इन्हीं VEXcode ब्लॉकों को अनेक स्विच ब्लॉकों में परिवर्तित करके दिखाती है।

केंद्र परियोजना

यह अंतिम परियोजना एक ही स्विच ब्लॉक के भीतर समान स्विच ब्लॉक कमांड को पायथन कमांड में परिवर्तित करके दिखाती है।

VEXcode VR ब्लॉक पहले चार डिस्क तक पहुंचने के लिए प्रोजेक्ट करता है, लेकिन संपूर्ण रिपीट लूप को पायथन स्विच ब्लॉक में परिवर्तित कर दिया जाता है। पूरे प्रोजेक्ट में लिखा है कि जब गाड़ी शुरू करें, तो आगे बढ़ें और 90 डिग्री तक दाईं ओर मुड़ने से पहले सामने वाली आंख द्वारा हरी बत्ती मिलने तक प्रतीक्षा करें। इसके बाद, स्विच ब्लॉक है जिसमें निम्नलिखित पायथन कोड है: 'for repeat_count in range(3): drivetrain.drive(FORWARD) while not front_eye.detect(BLUE): wait(5, MSEC) drivetrain.turn_for(LEFT, 90, DEGREES)'. अब, स्विच ब्लॉक के बाहर, अंततः ड्राइविंग बंद करें।

for repeat_count in range(3): वह पायथन कमांड है जो रोबोट को बताता है कि कोड की अगली इंडेंटेड पंक्तियों को तीन बार दोहराया जाना चाहिए। ध्यान दें कि आपको for loop के बाद एक कोलन (:) शामिल करना चाहिए। 

कोड की आगामी पंक्तियाँ वे व्यवहार हैं जो दोहराए जाएंगे। ध्यान दें कि ये व्यवहार 4 स्पेस के डिफ़ॉल्ट इंडेंट पर हैं। 

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

पंक्ति, wait (5, MSEC) while not front_eye.detect(BLUE) कमांड के नीचे इंडेंट किया गया है, क्योंकि फ्रंट आई सेंसर नीले रंग की जांच करेगा, प्रत्येक जांच के बीच 5 MSEC का विराम लेगा।

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