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

पाठ 3: एकाधिक सेंसर इनपुट

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

पिछले पाठ में दिखाए गए VEXcode VR प्रोजेक्ट को बाईं ओर दिखाया गया है, जिसमें रोबोट पर लगे डिस्टेंस सेंसर का उपयोग करके किलों का पता लगाया जाता है और फिर उन्हें नष्ट करने के लिए गाड़ी चलाई जाती है। दाईं ओर प्लेग्राउंड विंडो है जिसमें एक निर्माणाधीन परियोजना दिखाई दे रही है, जिसमें कई महल ध्वस्त हो चुके हैं, लेकिन वीआर रोबोट प्लेग्राउंड के किनारे से नीचे गिरने ही वाला है।

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

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

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

एक VEXcode VR कलर सेंसिंग ब्लॉक पढ़ता है "डाउन आई डिटेक्ट्स रेड?"।
  • पिछले पाठ से Unit9Lesson2 प्रोजेक्ट लोड करें।
यूनिट 9, पाठ 2 की परियोजना। यह प्रोजेक्ट 'When started' ब्लॉक से शुरू होता है, जिसके साथ 'forever' ब्लॉक जुड़ा होता है। फॉरएवर ब्लॉक के भीतर एक इफ देन ब्लॉक है जिसमें फ्रंट डिस्टेंस के आधार पर किसी ऑब्जेक्ट को पैरामीटर के रूप में लिया जाता है। इफ देन ब्रांच में एक टिप्पणी है जिसमें लिखा है कि डिस्टेंस सेंसर और ड्राइव फॉरवर्ड ब्लॉक का उपयोग करके मिली इमारत को गिरा दें। एल्स ब्रांच में एक टिप्पणी है जिसमें लिखा है कि डिस्टेंस सेंसर और टर्न राइट ब्लॉक का उपयोग करके किसी इमारत को खोजने के लिए मुड़ें।
  • प्रोजेक्ट का नाम बदलें Unit9Lesson3.
VEXcode VR टूलबार के केंद्र में स्थित प्रोजेक्ट नाम बॉक्स, जो लाल बॉक्स से हाइलाइट किया गया है, सेलेक्ट प्लेग्राउंड बटन के बाईं ओर है। इस प्रोजेक्ट का नाम यूनिट 9 लेसन 3 है।
  • डाउन आई सेंसर की लगातार जांच करने के लिए एक ब्लॉक की आवश्यकता होती है। वीआर रोबोट को इन व्यवहारों को तब तक दोहराना होगा जब तक कि डाउन आई सेंसर लाल रंग का पता नहीं लगा लेता। सबसे पहले, [Forever] ब्लॉक को हटा दें।
प्रोजेक्ट से फॉरएवर ब्लॉक को हटाने का एक संक्षिप्त विवरण। नया प्रोजेक्ट 'When started' ब्लॉक से 'If then else' ब्लॉक में चला जाता है, जिसमें 'Forever' लूप मौजूद नहीं होता है।
  • एक [Repeat until] ब्लॉक जोड़ें।
इफ देन एल्स ब्लॉक के चारों ओर रिपीट अंटिल ब्लॉक जोड़ने का एक संक्षिप्त विवरण। नया प्रोजेक्ट व्हेन स्टार्टेड ब्लॉक से शुरू होता है, फिर इसमें ओपन पैरामीटर के साथ रिपीट अंटिल ब्लॉक होता है। Repeat until ब्लॉक के C के भीतर If then else ब्लॉक स्थित है।
  • [Repeat until] ब्लॉक के अंदर एक <Color sensing> ब्लॉक जोड़ें और पैरामीटर को 'DownEye' detects 'red.' पर सेट करें।
वही प्रोजेक्ट जिसमें डाउन आई डिटेक्ट्स रेड को रिपीट अंटिल ब्लॉक के पैरामीटर के रूप में सेट किया गया है।

इस प्रोजेक्ट में [Wait until] ब्लॉक के स्थान पर [Repeat until] ब्लॉक का उपयोग किया गया है। ऐसा इसलिए है क्योंकि [Wait until] ब्लॉक एक प्रतीक्षा ब्लॉक है जो शर्त पूरी होने तक प्रोजेक्ट के प्रवाह को रोक देगा। यदि [Wait until] ब्लॉक का उपयोग किया जाता है, तो [If then else] ब्लॉक तब तक निष्पादित नहीं होगा जब तक कि [Wait until] की शर्त पूरी नहीं हो जाती और [If then else] ब्लॉक केवल एक बार ही निष्पादित होगा।

यदि Repeat until लूप के स्थान पर Wait until ब्लॉक का उपयोग किया जाता, तो प्रोजेक्ट प्रवाह का आरेख। यह प्रोजेक्ट 'वेट अंटिल' ब्लॉक में तब तक रुका रहेगा जब तक कि शर्त सही साबित नहीं हो जाती, और उसके बाद ही 'इफ देन एल्स' ब्लॉक में आगे बढ़ेगा।

[Repeat until] ब्लॉक का उपयोग करके, [If then else] स्थिति की लगातार जाँच और निष्पादन किया जाता है।

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

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

[Repeat until] ब्लॉक की शर्त पूरी हो जाने पर, प्रोजेक्ट फ्लो [Repeat until] ब्लॉक से बाहर निकलकर निष्पादित होगा।

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