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

पाठ 2: अक्षर 'A' तक ड्राइव करें

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

अब जब आप जान चुके हैं कि तुलना ऑपरेटर क्या होते हैं और उन्हें किसी प्रोजेक्ट में कैसे इस्तेमाल किया जा सकता है, तो आप उस ज्ञान को VR रोबोट कोवॉल मेज़ प्लेग्राउंड में अक्षर 'A' तक ले जाने के लिए लागू करेंगे। इस प्रोजेक्ट में डिस्टेंस सेंसर का उपयोग करके वॉल मेज़ प्लेग्राउंड में दीवारों से टकराए बिना नेविगेट किया जाएगा।

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

  • एक नया टेक्स्ट प्रोजेक्ट शुरू करें और संकेत मिलने पर वॉल मेज़ प्लेग्राउंडका चयन करें। दीवार भूलभुलैया खेल का मैदान चयन टाइल।
  • परियोजना का नाम दें यूनिट 5 पाठ 2.
    VEXcode VR टूलबार और केंद्र में स्थित प्रोजेक्ट नाम डायलॉग बॉक्स में यूनिट 5 लेसन 2 लिखा हुआ है।
  • whileलूप को ड्रैग करके, टाइप करके या कॉपी करके डालें और नए टेक्स्ट प्रोजेक्ट टेम्प्लेट के हिस्से के रूप में पॉपुलेट होने वाले ड्राइवट्रेन कमांड को हटा दें, ताकि आपका प्रोजेक्ट इस तरह दिखे। ध्यान दें कि कमांड while लूप को wait कमांड के साथ भर देगा। प्रतीक्षा कमांड को न हटाएं, यह सुनिश्चित करेगा कि वीआर रोबोट परियोजना को सही ढंग से निष्पादित करे।

    def main():
        while condition:
            wait(5, MSEC)
  • लूप के अंदर नॉन-वेटिंग ड्राइव कमांड को ड्रैग, टाइप या कॉपी करें, ताकि आपका प्रोजेक्ट इस तरह दिखे।

    def main():
        while condition:
            drivetrain.drive(FORWARD)
    
            wait(5, MSEC)
    • जांच लें कि इंडेंटेशन सही है और ड्राइव कमांड वेटकमांड के साथ संरेखित है।

get_distanceफ़ंक्शन और ग्रेटर दैन ऑपरेटर जोड़ें

  • while लूप के 'condition' में get_distanceकमांड को ड्रैग करें या टाइप करें, ताकि आपका प्रोजेक्ट इस तरह दिखे। ग्रेटर दैन ऑपरेटर और दूसरे ऑपरेंड को '50' के रूप में टाइप करें। 
  • def main():
        while front_distance.get_distance(MM) > 50:
            drivetrain.drive(FORWARD)
    
            wait(5, MSEC)
  • while लूप के बाहर स्टॉप कमांड जोड़ें, ताकि आपका प्रोजेक्ट इस तरह दिखे। बाद स्टॉप कमांड की आवश्यकता होती है क्योंकिरोबोट तब तक चलता रहेगा जब तक उसे रुकने का निर्देश नहीं दिया जाता

    def main():
        while front_distance.get_distance(MM) > 50:
            drivetrain.drive(FORWARD)
            wait(5, MSEC)
            
        drivetrain.stop()
  • यदि प्लेग्राउंड विंडो पहले से खुली नहीं है, तो उसे खोलें, सुनिश्चित करें किवॉल मेज़ प्लेग्राउंडखुल जाए, और प्रोजेक्ट को चलाएं।
  • वीआर रोबोट को तब तक आगे बढ़ते हुए देखें जब तक कि डिस्टेंस सेंसर यह रिपोर्ट न कर दे कि वीआर रोबोट और दीवार के बीच की दूरी है, न कि जो 50 मिलीमीटर (मिमी) से अधिक है।वॉल मेज़ प्लेग्राउंड का ऊपर से लिया गया दृश्य जिसमें वीआर रोबोट शुरुआती स्थान के ठीक सामने वाली पहली दीवार के सामने रुका हुआ है।
  • वीआर रोबोट को शुरुआती स्थिति में वापस लाने के लिए प्लेग्राउंड को रीसेट करें।

'A' अक्षर तक पहुंचने के प्रोजेक्ट को जारी रखें।

ग्रेटर देन (>) ऑपरेटर का उपयोग गेट_डिस्टेंसकमांड के साथ व्हाइल लूप की शर्त के रूप में वीआर रोबोट को तब तक आगे बढ़ने का निर्देश देता है जब तक कि वीआर रोबोट और दीवार के बीच की दूरी 50 मिलीमीटर (मिमी) से अधिक हो। जब डिस्टेंस सेंसर वीआर रोबोट से दीवार की दूरी 50 मिलीमीटर से अधिक नहीं होने की रिपोर्ट करता है, तो वीआर रोबोट चलना बंद कर देगा। अक्षर 'A' तक पहुंचने के लिए, VR रोबोट को दीवार के पास पहुंचने पर मुड़ना होगा। 

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

  • स्टॉपकमांड को टर्न_फॉरकमांड से बदलें, ताकि आपका प्रोजेक्ट इस तरह दिखे। turn_forकमांड की आवश्यकता इसलिए है क्योंकि एक बार जब डिस्टेंस सेंसर दीवार से 50 मिलीमीटर (मिमी) के भीतर आ जाता है, तो वीआर रोबोट अक्षर 'ए' की ओर बढ़ने के लिए बाईं ओर मुड़ जाएगा।

    • मोड़ के पैरामीटर को "बाएं, 90 डिग्री" पर सेट करें।
    def main():
        while front_distance.get_distance(MM) > 50:
            drivetrain.drive(FORWARD)
            wait(5, MSEC)
    
        drivetrain.turn_for(LEFT, 90, DEGREES)
    • नीचे दिए गए टर्न_फॉर कमांड के अंदर एक और जबकिलूप के साथ ड्राइव कमांड जोड़ें। पहली ऑपरेंड के रूप में get_distanceकमांड, ग्रेटर दैन ऑपरेटर और दूसरी ऑपरेंड के रूप में स्थिरांक '50' का उपयोग करके शर्त निर्धारित करें।
        while front_distance.get_distance(MM) > 50:
            drivetrain.drive(FORWARD)
            wait(5, MSEC)
    • अंत में, वीआर रोबोट को अक्षर 'ए' के ​​पीछे अंतिम दीवार का पता लगाने और फिर ड्राइविंग बंद करने का निर्देश देने के लिए दूसरे while लूप के नीचे निम्नलिखित कमांड जोड़ें। सुनिश्चित करें कि टर्न_फॉर कमांड और स्टॉप कमांड अपने संबंधित जबकि लूप के बाहर हैं।
        ड्राइवट्रेन.टर्न_फॉर(लेफ्ट, 90, डिग्री)
    
        जबकि फ्रंट_डिस्टेंस.गेट_डिस्टेंस(एमएम) > 50:
            ड्राइवट्रेन.ड्राइव(फॉरवर्ड)
            वेट(5, एमएसईसी)
    
        ड्राइवट्रेन.स्टॉप()
    • यदि वॉल मेज़ प्लेग्राउंड पहले से खुला नहीं है, तो उसे लॉन्च करें और प्रोजेक्ट चलाएं।
    • वीआर रोबोट को दीवार वाली भूलभुलैया के आरंभ से अक्षर 'ए' तक जाते हुए देखें, और फिर रुकते हुए देखें।

    वॉल मेज़ प्लेग्राउंड का ऊपर से लिया गया दृश्य, जिसमें वीआर रोबोट प्लेग्राउंड के निचले केंद्र में शुरुआती स्थान पर स्थित है। अक्षर 'ए' रोबोट के ठीक बाईं ओर स्थित है, जो एक छोटी दीवार से अलग है।

    • ध्यान दें कि वीआर रोबोट 'ए' अक्षर की ओर बढ़ते समय किसी भी दीवार से नहीं टकराता है। जब डिस्टेंस सेंसर का मान यह बताता है कि वीआर रोबोट दीवार से 50 मिलीमीटर (मिमी) से अधिक दूर नहीं है, तो वीआर रोबोट को प्रोजेक्ट में मुड़ने या रुकने का निर्देश दिया जाता है।

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