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

पाठ 3: रिपोर्ट किए गए सेंसर फीडबैक का उपयोग करके डिस्क उठाना

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

  • VEXcode VR में एक नया प्रोजेक्ट शुरू करें और प्रोजेक्ट का नाम Unit8Lesson3 रखें।

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

    एक नया VEXcode VR प्रोजेक्ट जिसमें 'When started' ब्लॉक से जुड़े चार Comment ब्लॉक हैं। टिप्पणियाँ क्रमानुसार इस प्रकार हैं: 1. पहले नीले डिस्क तक ड्राइव करें; 2. पहली नीली डिस्क उठाएँ; 3. नीले गोल की ओर ड्राइव करें; 4. नीली डिस्क को नीले गोल में डालें।
  • [Repeat until] ब्लॉक को पहले कमेंट के नीचे वर्कस्पेस में ड्रैग करें।

    वही VEXcode VR प्रोजेक्ट, जिसमें पहले कमेंट के बाद एक Repeat until ब्लॉक जोड़ा गया है। रिपीट अंटिल ब्लॉक का पैरामीटर खाली है।

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

[Repeat until] ब्लॉक एक C ब्लॉक है जो बूलियन रिपोर्टर ब्लॉक स्वीकार करता है। [Repeat until] ब्लॉक प्रत्येक लूप की शुरुआत में ही बूलियन स्थिति की जांच करेगा। यदि बूलियन स्थिति को FALSE के रूप में रिपोर्ट किया जाता है, तो अंदर के ब्लॉक चलेंगे। यदि बूलियन स्थिति TRUE के रूप में रिपोर्ट की जाती है, तो अंदर के ब्लॉक छोड़ दिए जाएंगे।

टूलबॉक्स से एक VEXcode VR रिपीट अंटिल ब्लॉक।
  • जब वीआर रोबोट डिस्क मूवर प्लेग्राउंड पर रंगीन डिस्क का पता लगाता है तो <Eye Sensor near object> ब्लॉक TRUE रिपोर्ट करता है। इस ब्लॉक को प्रोजेक्ट में ड्रैग करें।

    वही VEXcode VR प्रोजेक्ट, जिसमें Repeat Until ब्लॉक के पैरामीटर में ऑब्जेक्ट के पास एक आई सेंसर जोड़ा गया है। प्रोजेक्ट की शुरुआत में अब लिखा है, "शुरू होने पर, पहली नीली डिस्क तक ड्राइव करें, फिर फ्रंट आई ऑब्जेक्ट के पास आने तक दोहराएं" वाली टिप्पणी के साथ।
  • डिस्क मूवर प्लेग्राउंड पर मौजूद डिस्क प्लेग्राउंड के फर्श पर हैं और फ्रंट आई सेंसर द्वारा उनका पता नहीं लगाया जा सकता है। इसलिए, <Eye Sensor near object> ब्लॉक को 'डाउनआई' पर सेट करें।

    वही VEXcode VR प्रोजेक्ट, जिसमें Eye Sensor near object ब्लॉक का पैरामीटर खुला है और Down Eye का चयन किया गया है। 'रिपीट अंटिल' ब्लॉक अब 'रिपीट अंटिल डाउन आई नियर ऑब्जेक्ट' के रूप में दिखाई देता है।
  • [Repeat until] ब्लॉक के अंदर के ब्लॉक तब चलेंगे जब VR रोबोट किसी वस्तु का पता नहीं लगाएगा। किसी एक डिस्क तक पहुंचने के लिए, वीआर रोबोट को तब तक आगे बढ़ना होगा जब तक कि डिस्क का पता न चल जाए।

    डिस्क मूव प्लेग्राउंड में वीआर रोबोट नीले गोल की शुरुआती स्थिति में है, और उसके सामने नीली डिस्क रखी है।
  • [ड्राइव] ब्लॉक को [रिपीट अंटिल] ब्लॉक में ड्रैग करें।

    पहले वाले VEXcode VR प्रोजेक्ट में ही, Repeat until ब्लॉक के C के अंदर एक Drive ब्लॉक जोड़ा गया है। यह प्रोजेक्ट अब "When started" ब्लॉक और "Drive to the first blue disk" नामक एक टिप्पणी के साथ शुरू होता है। इसके बाद यह पढ़ता है, "जब तक नीचे वाली आंख वस्तु का पता न लगा ले तब तक दोहराएं, आगे बढ़ें।"
  • जब कोई डिस्क डिटेक्ट हो जाएगी, तो वीआर रोबोट को उसे उठाने के लिए चलना बंद करना होगा। [Stop driving] ब्लॉक को खींचकर [Repeat until] ब्लॉक के नीचे रखें।

    वही VEXcode VR प्रोजेक्ट, जिसमें Repeat Until ब्लॉक और दूसरे Comment के बीच एक स्टॉप ड्राइविंग ब्लॉक जोड़ा गया है।
  • अब, दूसरे कमेंट के नीचे [Energize Electromagnet] ब्लॉक रखकर VR रोबोट को इलेक्ट्रोमैग्नेट से डिस्क उठाने का निर्देश दें।

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

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

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

नीचे दी गई छवि में स्विच ब्लॉक का उपयोग करके इस पाठ के कार्यप्रवाह का ग्राफ़िक दिखाया गया है। इस ग्राफिक की तुलना ऊपर दिए गए ग्राफिक से करने से आपको उन नए स्विच पायथन कमांड के कार्यप्रवाह को बेहतर ढंग से समझने में मदद मिल सकती है जिन्हें आप सीख रहे हैं। 

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

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