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

पाठ 3: सेंसर और विद्युतचुंबक का उपयोग करके डिस्क को लक्ष्य स्थान पर रखना

प्रोजेक्ट में डिस्टेंस सेंसर जोड़ना

पाठ 2 में, वीआर रोबोट डिस्क को छोड़ने के लिए वापस आरंभिक बिंदु पर जाने के लिए विपरीत दिशा में चला। इसके लिए उपयोगकर्ता को वीआर रोबोट द्वारा तय की जाने वाली सटीक दूरी की गणना करनी आवश्यक थी। यह हमेशा संभव नहीं हो सकता है। इसके बजाय, वीआर रोबोट रिपोर्ट किए गए सेंसर मूल्यों का उपयोग करके लगातार सटीकता के साथ डिस्क को उठा और गिरा सकता है। 

इस पाठ में, डिस्टेंस सेंसर का उपयोग यह निर्धारित करने के लिए किया जाएगा कि लक्ष्य पर लौटते समय वीआर रोबोट को कहां रुकना चाहिए। यह सेंसरget_distance कमांड का उपयोग करके वीआर रोबोट के सामने से निकटतम वस्तु तक की दूरी की रिपोर्ट करता है। वीआर रोबोट को लक्ष्य तक वापस ले जाने के लिए डिस्टेंस सेंसर का उपयोग करने के लिए निम्नलिखित कार्य होने चाहिए: 

  • वीआर रोबोट को 180 डिग्री घूमना होगा ताकि डिस्टेंस सेंसर लक्ष्य की ओर हो। turn_to_heading कमांड का उपयोग यह सुनिश्चित करने के लिए किया जा सकता है कि VR रोबोट सही दिशा में मुड़े।
  • वीआर रोबोट डिस्क को कहाँ गिराना है, यह निर्धारित करने के लिए खेल के मैदान की पिछली दीवार के साथ दूरी सेंसर का उपयोग करेगा। 
  • वीआर रोबोट लक्ष्य तक पहुंचेगा। 
डिस्क मूवर प्लेग्राउंड पर पहले नीले डिस्क के स्थान पर वीआर रोबोट का एक परिप्रेक्ष्य दृश्य, जिसमें डिस्क विद्युतचुंबक से जुड़ी हुई है। नीला गोलपोस्ट रोबोट के पीछे है।

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

turn_to_heading कमांड जाइरो सेंसर का उपयोग करके वीआर रोबोट को एक विशिष्ट दिशा में मोड़ देता है। वीआर रोबोट किस दिशा में मुड़ेगा (बाएं या दाएं), यह जायरो सेंसर की वर्तमान दिशा के आधार पर निर्धारित होता है। VEXcode VR Python कमांड शीर्षक पर जाएं, ड्राइवट्रेन डॉट को अंडरस्कोर से अंडरस्कोर शीर्षक में बदलें, जिसमें 90 और कोष्ठक में डिग्री हैं।

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

एक वृत्त के केंद्र में स्थित वीआर रोबोट का ऊपर से लिया गया दृश्य, जो रोबोट के शीर्षों को दर्शाता है। रोबोट के सामने वाले हिस्से के साथ संरेखित 12 बजे की स्थिति में 0 डिग्री का कोण होता है। शीर्षक वृत्त के चारों ओर दक्षिणावर्त दिशा में घूमता है, जिसमें 3 बजे की स्थिति में 90 डिग्री, 6 बजे की स्थिति में 180 डिग्री और 9 बजे की स्थिति में 270 डिग्री होती है।

परियोजना का निर्माण जारी रखें 

  • Unit8Lesson3प्रोजेक्ट में काम करना जारी रखें।
  • तीसरे कमेंट के बाद turn_to_heading कमांड जोड़ें। पैरामीटर को 180 डिग्री पर सेट करें, जिससे प्रोजेक्ट अब इस तरह दिखेगा: 

    def main():
        #1. पहली डिस्क
        पर ड्राइव करें जबकि डाउन_आई.नियर_ऑब्जेक्ट() नहीं है:
            ड्राइवट्रेन.ड्राइव(फॉरवर्ड)
            प्रतीक्षा करें(5, एमएसईसी)
        ड्राइवट्रेन.स्टॉप()
    
        # 2. पहला डिस्क उठाएँ
        मैग्नेट.एनर्जाइज़ (बूस्ट)
    
        # 3. लक्ष्य की ओर ड्राइव करें
        ड्राइवट्रेन.टर्न_टू_हेडिंग(180, डिग्री)
    
        # 4. डिस्क को गोल में डालें
  • अब जबकि वीआर रोबोट लक्ष्य की ओर उन्मुख है, वीआर रोबोट को लक्ष्य तक वापस जाने की आवश्यकता होगी। जोड़ें, ताकि प्रोजेक्ट का तीसराइस तरह दिखे: 

    	# 3. लक्ष्य की ओर ड्राइव करें
        ड्राइवट्रेन.टर्न_टू_हेडिंग(180, डिग्री)
        जबकि शर्त:
            प्रतीक्षा करें(5, एमएसईसी)
  • लक्ष्य तक वापस जाने के लिए, वीआर रोबोट दूरी सेंसर से प्राप्त डेटा का उपयोग यह निर्धारित करने के लिए करेगा कि वीआर रोबोट लक्ष्य के अंदर कब है। जैसा कि पिछले पाठ में चर्चा की गई है, डिस्क मूवर प्लेग्राउंड पर प्रत्येक ग्रिड वर्ग 200 मिलीमीटर (मिमी) x 200 मिलीमीटर (मिमी) मापता है।खेल के मैदान के निचले बाएं कोने का एक क्लोज-अप दृश्य, जिसमें दिखाया गया है कि खेल के मैदान के फर्श पर बने 10 गुणा 10 ग्रिड के प्रत्येक वर्ग का माप 200 मिमी गुणा 200 मिमी है।
  • इन मापों का उपयोग करके, गोल का केंद्र खेल के मैदान की दीवार से लगभग 200 मिलीमीटर (मिमी) की दूरी पर निर्धारित किया जा सकता है।

    डिस्क मूवर प्लेग्राउंड के निचले बाएं कोने का क्लोज-अप दृश्य। वीआर रोबोट में एक नीली डिस्क विद्युतचुंबक से जुड़ी हुई है और यह नीले लक्ष्य की ओर उन्मुख है। खेल के मैदान की पिछली दीवार से नीले गोल के केंद्र तक की माप 200 मिलीमीटर के रूप में अंकित है।
  • वीआर रोबोट को गति से चलना चाहिएदूरी सेंसर यह रिपोर्ट करता है कि वीआर रोबोट खेल के मैदान की दीवार से 200 मिलीमीटर (मिमी) से अधिक दूर है। while लूप की स्थिति को get_distance कमांड पर मिलीमीटर (mm) पैरामीटर के साथ सेट करें। फिर तुलना ऑपरेटर को ग्रेटर देन (>) 200 में जोड़ें। परियोजना का तीसरा भाग अब इस प्रकार दिखना चाहिए: 

    	# 3. लक्ष्य की ओर ड्राइव करें
        ड्राइवट्रेन.टर्न_टू_हेडिंग(180, डिग्री)
        जबकि फ्रंट_डिस्टेंस.गेट_डिस्टेंस(एमएम) > 200:
            प्रतीक्षा करें(5, एमएसईसी)
  • इस while लूप में ड्राइवकमांड जोड़ें, ताकि प्रोजेक्ट का तीसरा भाग इस तरह दिखे। यह वीआर रोबोट को तब आगे बढ़ने का निर्देश देगा जब डिस्टेंस सेंसर 200 मिलीमीटर (मिमी) से अधिक की दूरी की रिपोर्ट करेगा।

    	# 3. लक्ष्य की ओर ड्राइव करें
        ड्राइवट्रेन.टर्न_टू_हेडिंग(180, डिग्री)
        जबकि फ्रंट_डिस्टेंस.गेट_डिस्टेंस(एमएम) > 200:
            ड्राइवट्रेन.ड्राइव(फॉरवर्ड)
            प्रतीक्षा करें(5, एमएसईसी)
  • एक बार जब वीआर रोबोट लक्ष्य तक पहुंच जाता है (दीवार से 200 मिमी की दूरी), तो वीआर रोबोट को चलना बंद करना होगा। स्टॉपकमांड को व्हाइल लूप के बाहर जोड़ें, ताकि प्रोजेक्ट का तीसरा भाग इस तरह दिखे:

    	# 3. लक्ष्य की ओर ड्राइव करें
        ड्राइवट्रेन.टर्न_टू_हेडिंग(180, डिग्री)
        जबकि फ्रंट_डिस्टेंस.गेट_डिस्टेंस(एमएम) > 200:
            ड्राइवट्रेन.ड्राइव(फॉरवर्ड)
            प्रतीक्षा करें(5, एमएसईसी)
        ड्राइवट्रेन.स्टॉप()
  • अब जबकि वीआर रोबोट लक्ष्य तक पहुँचकर रुक गया है, तो वह डिस्क को गिरा सकता है। चौथे कमेंट के नीचे एनर्जाइज़ कमांड जोड़ें और पैरामीटर को 'DROP' पर सेट करें। परियोजना का चौथा भाग अब इस प्रकार दिखना चाहिए:

    	# 4. डिस्क को लक्ष्य
        चुंबक.एनर्जाइज़(DROP) में गिराएँ
  • वीआर रोबोट को किसी भी डिस्क को गिराने या उससे टकराने से बचने के लिए थोड़ी दूरी तक पीछे की ओर ड्राइव करने की आवश्यकता होगी। किसी डिस्क से टकराने पर वीआर रोबोट अपने मार्ग से भटक सकता है। इसके बाद वीआर रोबोट को घूमना होगा ताकि वह एक बार फिर डिस्क की ओर उन्मुख हो जाए। दिखाए गए अनुसार अंतिम एनर्जाइज़ कमांड के बाद निम्नलिखित कमांड जोड़ें, ताकि वीआर रोबोट को 100 मिलीमीटर (मिमी) पीछे की ओर ड्राइव करने और 0 डिग्री की दिशा में वापस मुड़ने का निर्देश दिया जा सके। सुनिश्चित करें कि आपके प्रोजेक्ट में कमांड सही ढंग से इंडेंट किए गए हैं।

    	# 4. डिस्क को लक्ष्य में गिराएँ
        magnet.energize(DROP)
    
    	drivetrain.drive_for(REVERSE, 100, MM)
        drivetrain.turn_to_heading(0, DEGREES)
  • यदि डिस्क मूवर प्लेग्राउंड पहले से खुला नहीं है, तो उसे खोलें और प्रोजेक्ट चलाएं।
  • वीआर रोबोट आगे बढ़ता है, पहली डिस्क उठाता है, फिर लक्ष्य की ओर 180 डिग्री का मोड़ लेता है। इसके बाद वीआर रोबोट डिस्टेंस सेंसर से प्राप्त मानों का उपयोग करके यह निर्धारित करता है कि कब चलना बंद करना है और डिस्क को कब गिराना है।

    डिस्क मूवर प्लेग्राउंड के नीले गोल का एक साइड व्यू, जिसमें पहली नीली डिस्क गोल में गिरा दी गई है, और वीआर रोबोट को घुमाकर गोल के सामने रखा गया है, जो अगली डिस्क को इकट्ठा करने के लिए तैयार है।

लक्ष्य में पहली डिस्क डालने के लिए प्रोजेक्ट प्रवाह

ध्यान दें कि इस प्रोजेक्ट के इस भाग में while लूप डिस्टेंस सेंसर के साथ कैसे काम करता है।

  • वीआर रोबोट बढ़ेगा जब दूरी सेंसर दीवार से 200 मिलीमीटर से अधिक दूर
  • जब दूरी सेंसर पता लगाता है कि खेल के मैदान की दीवार 200 मिलीमीटर (मिमी) से कम दूरी पर है, तो प्रोजेक्ट जबकिलूप के बाहर अगले कमांड पर चला जाएगा, और वीआर रोबोट चलना बंद कर देगा।
  • परियोजना जारी रहेगी, इलेक्ट्रोमैग्नेट को सक्रिय किया जाडिस्क को लक्ष्य में गिराया जा सके
  • इसके बाद वीआर रोबोट पीछे की ओर घूमेगा और 180 डिग्री मुड़ जाएगा ताकि वह अगली डिस्क का सामना करने के लिए तैयार हो सके।

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