Skip to main content

पाठ 2: तुलना ब्लॉक का उपयोग करना और निकट तक ड्राइविंग करना

इस पाठ में, आप एक प्रोजेक्ट बनाएंगे जो <Less than> बूलियन रिपोर्टर ब्लॉक के साथ दूरी सेंसर का उपयोग करके VR रोबोट को अक्षर 'A' तक ले जाएगा। मिनी-चैलेंज में, आप दीवार भूलभुलैया की शुरुआत से लेकर संख्या '1' तक नेविगेट करने के लिए इन कौशलों को लागू करेंगे।

दीवार पर बने भूलभुलैया का ऊपर से नीचे का दृश्य, जिसमें वीआर रोबोट के आरंभिक स्थान के पास लाल बॉक्स में लक्ष्य अक्षर A अंकित है।

सीखने के परिणाम

  • पहचानें कि <Greater than> ब्लॉक एक बूलियन ब्लॉक है जो रिपोर्ट करता है कि क्या पहला मान दूसरे मान से बड़ा है।
  • पहचानें कि <Less than> ब्लॉक एक बूलियन ब्लॉक है जो रिपोर्ट करता है कि क्या पहला मान दूसरे मान से कम है।
  • पहचानें कि <Greater than> या <Less than> ब्लॉक [Wait until] ब्लॉक में TRUE या FALSE मान रिपोर्ट करते हैं।
  • वर्णन करें कि एक ऐसा प्रोजेक्ट कैसे बनाया जाए जिसमें VR रोबोट तब तक आगे बढ़ता रहे जब तक कि दूरी सेंसर का मान 50 मिलीमीटर (मिमी) के सीमा मान से कम न हो जाए।

प्रोजेक्ट को नाम दें और सहेजें

  • VEXcode VR में एक नया प्रोजेक्ट शुरू करें और प्रोजेक्ट का नाम Unit5Lesson2रखें। याद रखें कि आप अपनी परियोजना के लिए VEXcode ब्लॉक, स्विच ब्लॉक या दोनों ब्लॉक प्रकारों के संयोजन का उपयोग कर सकते हैं। 
VEXcode VR टूलबार जिसमें 'प्रोजेक्ट नाम' बटन लाल बॉक्स में हाइलाइट किया गया है, जो 'प्लेग्राउंड चुनें' बटन के बाईं ओर है। परियोजना का नाम यूनिट 5 पाठ 2 निर्धारित किया गया है।

दीवारों से बचने के लिए दूरी सेंसर का उपयोग करें

  • [ड्राइव] ब्लॉक को कार्यक्षेत्र में खींचें.
    VEXcode VR प्रोजेक्ट को ब्लॉक करता है, जिसकी शुरुआत When Started ब्लॉक से होती है, जिसके नीचे Drive Forward ब्लॉक होता है। ड्राइव फॉरवर्ड ब्लॉक को हाइलाइट करने वाला एक लाल बॉक्स है।
  • [ड्राइव] ब्लॉक के नीचे [प्रतीक्षा करें] ब्लॉक संलग्न करें।
    पहले की तरह ही VEXcode VR ब्लॉक प्रोजेक्ट करता है, लेकिन अब नीचे की ओर Wait Until ब्लॉक को लाल बॉक्स से हाइलाइट किया गया है। पूर्ण परियोजना में लिखा है, जब शुरू करें, आगे बढ़ें और तब तक प्रतीक्षा करें। Wait Until ब्लॉक का पैरामीटर रिक्त है.

यह परियोजना दीवारों से टकराए बिना दीवार भूलभुलैया खेल के मैदान के माध्यम से नेविगेट करने के लिए दूरी सेंसर का उपयोग करेगी। आप इस प्रोजेक्ट में <Less than> बूलियन ब्लॉक के अंदर (Distance from) ब्लॉक का उपयोग करेंगे।

<Less than>, <Greater than>, और <Equal to> तुलना ब्लॉक हैं - वे मानों की तुलना करते हैं। वे बूलियन रिपोर्टर ब्लॉक भी हैं जो तुलना शर्त पूरी होने पर सत्य मान की रिपोर्ट करते हैं, और शर्त (नहीं पूरी होने पर असत्य मान की रिपोर्ट करते हैं।

  • <Less than> तब सत्य रिपोर्ट करता है जब पहला मान दूसरे मान से छोटा होता है और तब असत्य रिपोर्ट करता है जब पहला मान दूसरे मान से बड़ा या बराबर होता है।
    VEXcode VR Less Than बूलियन ब्लॉक, '25 less than 50' पढ़ रहा है।
  • जब पहला मान दूसरे मान से बड़ा होता है तो <Greater than> सत्य रिपोर्ट करता है, और जब पहला मान दूसरे मान से छोटा या बराबर होता है तो असत्य रिपोर्ट करता है।
    VEXcode VR ग्रेटर दैन बूलियन ब्लॉक, '100 ग्रेटर दैन 50' पढ़ रहा है।
  • जब दो मान बिल्कुल समान हों तो <Equal to> सत्य रिपोर्ट करता है, और जब वे समान नहीं हों तो असत्य रिपोर्ट करता है।
    VEXcode VR बराबर बूलियन ब्लॉक, '50 बराबर 50' पढ़ रहा है।

तुलना ब्लॉक दशमलव, पूर्णांक या संख्यात्मक ब्लॉक स्वीकार कर सकते हैं। वे गोल रिपोर्टर ब्लॉक भी स्वीकार करते हैं, जैसे (दूरी से) ब्लॉक। किसी प्रोजेक्ट में दूरी सेंसर का उपयोग करते समय (दूरी से) ब्लॉक तुलना ब्लॉक के साथ हो सकता है।

इस उदाहरण में, जब किसी वस्तु और VR रोबोट पर दूरी सेंसर से दूरी 50 मिलीमीटर (मिमी) से कम होगी, तो ब्लॉक TRUE रिपोर्ट करेगा।

VEXcode VR Less Than बूलियन ब्लॉक जिसके अंदर Distance From ब्लॉक है, जिसमें लिखा है 'फ्रंट डिस्टेंस (मिलीमीटर में) 50 से कम'।

  • <Less than> बूलियन ब्लॉक को [Wait until] ब्लॉक में खींचें.
  • बूलियन रिपोर्टर ब्लॉक के अंदर गोल (दूरी से) ब्लॉक रखें
    VEXcode VR ब्लॉक्स परियोजना जो पिछले चरणों को एक साथ रखती है। अब पूरे प्रोजेक्ट में लिखा है, जब शुरू करें, आगे की ओर ड्राइव करें और तब तक प्रतीक्षा करें जब तक कि मिलीमीटर में सामने की दूरी 50 से कम न हो जाए। एक लाल बॉक्स Less Than बूलियन ब्लॉक को हाइलाइट करता है।
  • [प्रतीक्षा करें] ब्लॉक वीआर रोबोट को तब तक आगे बढ़ाता रहेगा जब तक कि शर्त पूरी न हो जाए, और रिपोर्ट की गई दूरी 50 मिलीमीटर (मिमी) से कम न हो। फिर, प्रोजेक्ट स्टैक में अगले ब्लॉक पर चला जाएगा, जो [ड्राइविंग रोकें] ब्लॉक होगा।
    VEXcode VR ब्लॉक परियोजना में तर्क के प्रवाह को दर्शाने वाला एक आरेख। परियोजना आगे की ओर ड्राइविंग से शुरू होती है, और उस कमांड को तब तक रखती है जब तक कि फ्रंट डिस्टेंस सेंसर की दूरी मिलीमीटर में 50 से कम नहीं हो जाती, जिसके बाद स्टॉप ड्राइविंग ब्लॉक ड्राइव फॉरवर्ड कमांड को समाप्त कर देता है।
  • [रुको] ब्लॉक के बाद [ड्राइविंग रोकें] ब्लॉक की आवश्यकता होती है क्योंकि वीआर रोबोट तब तक ड्राइव करना जारी रखेगा जब तक उसे रुकने का निर्देश न दिया जाए। प्रोजेक्ट में [ड्राइविंग रोकें] ब्लॉक जोड़ें.
    VEXcode VR, Wait Until ब्लॉक के बाद Stop Driving ब्लॉक जोड़कर, पहले से प्रोजेक्ट को ब्लॉक कर देता है। अब पूरे प्रोजेक्ट में लिखा है, जब गाड़ी चलाना शुरू करें तो आगे बढ़ें और तब तक प्रतीक्षा करें जब तक कि सामने की दूरी मिलीमीटर में 50 से कम न हो जाए, उसके बाद गाड़ी चलाना बंद कर दें।
  • यदि वॉल मेज़ प्लेग्राउंड पहले से खुला नहीं है तो उसे लॉन्च करें और प्रोजेक्ट चलाएं।
  • दीवार भूलभुलैया के शुरू से वीआर रोबोट को ड्राइव करते हुए देखें और जब दूरी सेंसर रिपोर्ट करे कि वह दीवार से 50 मिलीमीटर (मिमी) से कम दूरी पर है तो रुक जाएं।
    वीआर रोबोट की प्रारंभिक स्थिति के पास अक्षर ए लक्ष्य के साथ दीवार भूलभुलैया का ऊपर से नीचे का दृश्य। ब्लॉक्स परियोजना के परिणामस्वरूप वीआर रोबोट अब आगे बढ़ गया है।
  • [प्रतीक्षा करें] ब्लॉक के अंदर (दूरी से) ब्लॉक के साथ <Less than> ब्लॉक का उपयोग करके, वीआर रोबोट को रुकने से पहले दीवार से 50 मिलीमीटर (मिमी) से कम दूरी तक प्रतीक्षा करने का निर्देश दिया जाता है।
  • वीआर रोबोट को प्रारंभिक स्थिति में वापस लाने के लिए खेल के मैदान को रीसेट करें।

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

इस पाठ में, आपने <Greater than>, <Less than>और <Equal to> बूलियन ब्लॉकों के बारे में सीखा। नीचे दी गई छवि स्विच बूलियन तुलना ब्लॉकों को दर्शाती है। स्विच बूलियन ब्लॉक को अपेक्षित रूप से कार्य करने के लिए, स्विच पायथन फ़ंक्शन को सही वर्तनी और विराम चिह्न के साथ दर्ज किया जाना चाहिए। 

ध्यान दें कि स्विच <Equal to> ब्लॉक दो बराबर चिह्नों (==)का उपयोग करता है। ऐसा इसलिए है क्योंकि पायथन में, एक बराबर चिह्न (=) एक मान के असाइनमेंट को दर्शाता है (उदाहरण के लिए, x = 10), जबकि दो बराबर चिह्न (==) यह जांचते हैं कि क्या दो मान समान हैं। स्विच <Equal to> ब्लॉक का उपयोग करते समय दो बराबर चिह्नों का उपयोग अवश्य करें। 
तीन VEXcode VR बूलियन ब्लॉकों और उनके संगत स्विच ब्लॉकों की तुलना। कम से कम ब्लॉक को पायथन में '25 < 50' के रूप में लिखा जाता है, अधिक से अधिक ब्लॉक को पायथन में '100 > 50' के रूप में लिखा जाता है, और बराबर ब्लॉक को पायथन में '50 == 50' के रूप में लिखा जाता है। अंतिम उदाहरण में लाल बॉक्स दोहरे बराबर चिह्नों को उजागर करता है, जो यह दर्शाता है कि पायथन में दो समान मानों की तुलना कैसे की जाती है।

आपने एक उदाहरण परियोजना भी देखी जिसमें वीआर रोबोट तब तक आगे बढ़ता रहेगा जब तक कि बताई गई दूरी किसी वस्तु से 50 मिलीमीटर (मिमी) से कम न हो जाए। फिर, वी.आर. रोबोट रुक जाएगा। दाईं ओर का प्रोजेक्ट स्विच ब्लॉक के अंदर संबंधित पायथन कमांड दिखाता है। कमांड,while not front_distance.get_distance(MM) < 50रोबोट को यह जांचने के लिए कहता है कि बताई गई दूरी किसी वस्तु से 50 MM से कम है या नहीं।

कोड की अगली इंडेंटेड लाइन,wait (5, MSEC),कोड को 5 मिलीसेकंड के लिए रोक देती है। वह कमांड जो यह जांचता है कि रिपोर्ट की गई दूरी किसी वस्तु से 50 MM से कम है, स्थिति की पुनः जांच करने से पहले 5 MSEC तक प्रतीक्षा करेगा। 

हमारे VEXcode VR प्रोजेक्ट की तुलना, जिसमें Wait Until ब्लॉक को दाईं ओर स्विच ब्लॉक में परिवर्तित कर दिया गया है। नया स्विच ब्लॉक पायथन में 'while not front_distance.get_distance(MM) < 50: wait(5, msec)' पढ़ता है।

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