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

-
परियोजना का नाम दें यूनिट 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 शर्त है, सेंसर फीडबैक का उपयोग करके पहली डिस्क को सफलतापूर्वक उठा लेता है:
- वीआर रोबोट आगे बढ़ता है जबकिडाउन आई सेंसरकिसी वस्तु का पता नहीं लगाता है।
- एक बार जब वीआर रोबोट पर डाउन आई सेंसर किसी वस्तु का पता लगा लेता है, तो प्रोजेक्ट जबकिलूप के बाहर अगले कमांड पर चला जाता है और चलना बंद कर देता है।
- परियोजना जारी है, इसलिए वीआर रोबोट डिस्क को उठाने के लिएसक्रिय करता है।

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