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

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

इलेक्ट्रोमैग्नेट के साथ डाउन आई सेंसर का उपयोग करना

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

  • एक नया प्रोजेक्ट शुरू करें और संकेत मिलने पर डिस्क मूवर प्लेग्राउंड का चयन करें। डिस्क मूवर प्लेग्राउंड चयन टाइल के निचले भाग पर डिस्क मूवर लिखा हुआ है।
  • परियोजना का नाम दें यूनिट 8 पाठ 3.VEXcode VR टूलबार में प्रोजेक्ट नाम वाला बॉक्स हाइलाइट किया गया है। इस प्रोजेक्ट का नाम यूनिट 8 लेसन 3 है।

     

  • प्रोजेक्ट में चार टिप्पणियां जोड़ें। वीआर रोबोट द्वारा पहली डिस्क तक जाने, उसे उठाने और नीले लक्ष्य तक वापस लाने के लिए आवश्यक प्रत्येक चरण के लिए टिप्पणियाँ जोड़ें।

    def main():
        # 1. पहली डिस्क
    
        # 2 पर ड्राइव करें। पहली डिस्क
    
        # 3 उठाएँ। लक्ष्य की ओर ड्राइव करें
    
        # 4. डिस्क को गोल में डालें

     

  • पहले कमेंट के नीचे वर्कस्पेस में while लूप कोnot कंडीशन के साथ ड्रैग या टाइप करें, ताकि आपका प्रोजेक्ट इस तरह दिखे:

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

    def main():
        #1. पहली डिस्क
        पर ड्राइव करें जबकि down_eye.near_object() नहीं है:
            wait(5, MSEC)
  • whileलूप के अंदर के कमांड तब चलेंगे जब VR रोबोट किसी वस्तु का पता नहीं लगाएगा। किसी एक डिस्क तक पहुंचने के लिए, वीआर रोबोट को तब तक आगे बढ़ना होगा जब तक कि डिस्क का पता न चल जाए।

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

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

    	#1. पहली डिस्क
        पर ड्राइव करें जबकि down_eye.near_object() नहीं है:
            ड्राइवट्रेन.ड्राइव(फॉरवर्ड)
            प्रतीक्षा करें(5, एमएसईसी)
        ड्राइवट्रेन.स्टॉप()
  • ध्यान दें कि ड्राइव और प्रतीक्षा कमांड जबकिलूप हेडर के नीचे इंडेंट किए गए हैं, जिसका अर्थ है कि कमांड लूप के अंदर हैं। धूसर रेखा यह इंगित करने में भी मदद कर सकती है कि कौन से कमांड सही ढंग से इंडेंट किए गए हैं और लूप के अंदर हैं। स्टॉप कमांड लूप हेडर के साथ लाइन में है, जिसका अर्थ है कि स्टॉप कमांड लूप के बाहर है। सुनिश्चित करें कि कमांड सही ढंग से इंडेंट किए गए हैं, अन्यथा प्रोजेक्ट अपेक्षा के अनुरूप नहीं चल सकता है। 
  • अब, दूसरे कमेंट के बाद एनर्जाइज़कमांड को ड्रैग करके या टाइप करके वीआर रोबोट को इलेक्ट्रोमैग्नेट से डिस्क उठाने का निर्देश दें, ताकि प्रोजेक्ट का दूसरा भाग इस तरह दिखे:

    	# 2. पहला डिस्क उठाएँ
        magnet.energize(BOOST)
  • यदि प्लेग्राउंड विंडो पहले से खुली नहीं है, तो उसे खोलें। सुनिश्चित करें किडिस्क मूवर प्लेग्राउंडखुल जाए, और प्रोजेक्ट को चलाएं।
  • वीआर रोबोट तब तक आगे बढ़ता है जब तक कि डाउन आई सेंसर द्वारा पहली नीली डिस्क का पता नहीं चल जाता, फिर वह चलना बंद कर देता है और डिस्क को उठाने के लिए इलेक्ट्रोमैग्नेट को सक्रिय कर देता है।

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

पहली डिस्क प्राप्त करने के लिए प्रोजेक्ट प्रवाह

ध्यान दें कि कैसे while लूप जिसमें not शर्त है, सेंसर फीडबैक का उपयोग करके पहली डिस्क को सफलतापूर्वक उठा लेता है:

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

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