Skip to main content

पाठ 4: नेस्टेड लूप्स के साथ प्रोजेक्ट प्रवाह

अगली दो डिस्क एकत्रित करें

  • अब जबकि वीआर रोबोट लाल डिस्क के सामने है, तो लाल डिस्क को उठाने और स्थानांतरित करने के लिए वीआर रोबोट को वही व्यवहार दोहराना होगा जो नीली डिस्क को इकट्ठा करने के लिए उपयोग किया गया था। डिस्क को उठाने के लिए आगे बढ़ना, पीछे मुड़ना, तथा डिस्क को छोड़ने के लिए उसी रंग के गोल की ओर वापस जाना आदि व्यवहार।

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

    शुरुआत में डिस्क मूवर प्लेग्राउंड का ऊपर से नीचे का दृश्य, जिसमें बिन्दुयुक्त तीर उस पथ को दर्शाते हैं जिस पर रोबोट को प्रत्येक डिस्क को एकत्रित करने के लिए चलना होगा। तीर प्रत्येक लक्ष्य से पहली डिस्क की ओर इंगित करते हैं, तथा अतिरिक्त दायां तीर प्रत्येक लक्ष्य क्षेत्र के बीच इंगित करते हैं।
  • व्यवहार को कई बार दोहराने के लिए, for लूप का उपयोग किया जा सकता है।
    मुख्य परिभाषा के भीतर VEXcode VR पायथन फॉर लूप कमांड। यह कमांड प्रथम पंक्ति में कोष्ठक में 10 के साथ सीमा में मान को पढ़ता है, फिर प्रतीक्षा कमांड के नीचे इंडेंट करके कोष्ठक में 5, MSEC के साथ प्रतीक्षा को पढ़ता है।
  • प्रोजेक्ट के शीर्ष पर, पहली टिप्पणी के ऊपर for लूप जोड़ें, और range फ़ंक्शन पैरामीटर को '3' पर सेट करें। सुनिश्चित करें कि for लूप मुख्य परिभाषा के भीतर इंडेंट किया गया है।

    def main():
        repeat_count के लिए range(3):
            wait(5, MSEC)
  • कोड कोforलूप में कॉपी करने के लिए इंडेंटेशन पर सावधानीपूर्वक ध्यान देने की आवश्यकता होगी। सबसे पहले,waitकमांड से पहले स्पेस जोड़ें, ताकि लूप इस तरह दिखे:

    def main():
        for repeat_count in range(3):
    
    
            
            wait(5, MSEC)
  • इसके बाद,forलूप में डालने के लिए कमांड का चयन करें, और उन्हेंwaitकमांड के ऊपर कॉपी और पेस्ट करें। ध्यान दें कि कॉपी और पेस्ट करने के बाद इंडेंटेशन गलत हो जाएगा। forलूप की ग्रे सूचक रेखा टूट गई है, औरwaitकमांड से डिस्कनेक्ट हो गई है। यह एक दृश्य संकेत है कि आपकी परियोजना इच्छित रूप से क्रियान्वित नहीं होगी।ऊपर दिए गए प्रोजेक्ट को गलत इंडेंटेशन के साथ for loop में कॉपी पेस्ट किया गया है। सही इंडेंटेशन अगले कोड ब्लॉक में दिखाया गया है।
  • forलूप के अंदर कमांड्स का चयन करें, और लूप के अंदर कमांड्स को सही ढंग से इंडेंट करने के लिए 'टैब' का उपयोग करें। सही ढंग से इंडेंट किए जाने पर, ग्रे संकेतक लाइन को forलूप को waitकमांड के साथ जोड़ना चाहिए, ताकि बाहरी लूप की सीमाएं दिखाई जा सकें। पूर्ण होने पर, आपकी परियोजना इस प्रकार दिखेगी: 

    def main():
        for repeat_count in range(3):
            # 1. डाउन आई सेंसर का उपयोग करके डिस्क पर ड्राइव करें
            जब तक down_eye.near_object() न हो:
                drivetrain.drive(FORWARD)
                wait(5, MSEC)
            drivetrain.stop()
    
            # 2. डिस्क
            चुंबक उठाओ.एनर्जाइज़ (बूस्ट)
    
            # 3. दूरी सेंसर का उपयोग करके लक्ष्य तक ड्राइव करें
            drivetrain.turn_to_heading(180, DEGREES)
            while front_distance.get_distance(MM) > 200:
                drivetrain.drive(FORWARD)
                wait(5, MSEC)
            drivetrain. स्टॉप()
    
            # 4. लक्ष्य में डिस्क ड्रॉप करें
            magnet.energize(DROP)
            drivetrain.drive_for(REVERSE, 100, MM)
    
            # 5. मुड़ें और अगले लक्ष्य की ओर ड्राइव करें
            drivetrain.turn_to_heading(90, DEGREES)
            drivetrain.drive_for(FORWARD, 800, MM)
    
            # 6. डिस्क पर जाएँ
            drivetrain.turn_to_heading(0, DEGREES)  
    
        wait(5, MSEC)
  • ऊपर बताए अनुसार कमांड्स को स्थानांतरित करने और इंडेंटेशन को समायोजित करने का तरीका जानने के लिए नीचे दिया गया वीडियो देखें। वीडियो क्लिप में, परियोजना के छह टिप्पणी अनुभागों को हाइलाइट किया गया है, और संदर्भ मेनू खोला गया है। 'कट' विकल्प का चयन किया जाता है, और फिर कर्सर को for loop कमांड के नीचे रखा जाता है। संदर्भ मेनू पुनः खोला जाता है, और 'पेस्ट' का चयन किया जाता है। तब कमांड for लूप के भीतर होते हैं, लेकिन गलत तरीके से इंडेंट किए जाते हैं। छह टिप्पणी अनुभागों को पुनः हाइलाइट किया जाता है तथा लूप के भीतर प्रोजेक्ट को सही ढंग से इंडेंट करने के लिए कीबोर्ड पर 'टैब' दबाया जाता है।
वीडियो फाइल
  • डिस्क मूवर प्लेग्राउंडखोलें यदि यह पहले से खुला नहीं है, और प्रोजेक्ट चलाएं।
  • जब यह परियोजना चलती है, तो वीआर रोबोट प्रत्येक रंग की एक डिस्क उठाता है और उसे उसके संबंधित रंगीन लक्ष्य में छोड़ देता है।

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

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

ध्यान दें कि वी.आर. रोबोट दीवार से टकराता रहा। यह व्यवहार अपेक्षित है, क्योंकि परियोजना में वीआर रोबोट को तीन बार दाईं ओर मुड़कर अगले लक्ष्य की ओर जाने का निर्देश दिया गया था। पहली बार नीले से लाल रंग की ओर गाड़ी चलाना है। दूसरा लाल से हरे रंग की ओर है, और तीसरा हरे से दीवार की ओर है, क्योंकि वहां कोई अन्य रंगीन गोल नहीं है। जैसे ही VR रोबोट दीवार से टकरा जाए, परियोजना रोक दें। परियोजना में सुधार किया जा सकता है ताकि वीआर रोबोट हरे रंग की डिस्क को उठाने और हिलाने के बाद रुक जाए, लेकिन इससे परियोजना की समग्र जटिलता बढ़ जाएगी।

परियोजना के अंत में वीआर रोबोट का ऊपर से नीचे का दृश्य, जिसमें बाएं कोने में प्लेग्राउंड विंडो में स्टॉप बटन को हाइलाइट किया गया है। खेल के मैदान पर, मिलान वाले गोल में प्रत्येक रंग की एक डिस्क, और स्टॉप बटन दबाने पर हरे रंग के गोल के केंद्र में दाईं ओर की दीवार की ओर वीआर रोबोट।

 

 

प्रश्न

कृपया पाठ प्रश्नोत्तरी तक पहुंचने के लिए नीचे दिए गए लिंक का चयन करें।

गूगल डॉक / .docx / .pdf