Skip to main content

पाठ 2: नंबर '5' तक ड्राइव करें

इस पाठ में, वीआर रोबोट नंबर ग्रिड मैप प्लेग्राउंडपर नंबर '5' तक जाएगा और वापस नंबर '1' पर आएगा!

नंबर ग्रिड मानचित्र खेल के मैदान की ऊपर से नीचे की छवि. वी.आर. रोबोट को नीचे बायीं ओर कोने में नंबर 1 पर देखा जा सकता है। नीचे की पंक्ति के मध्य में संख्या 5 पर एक कॉलआउट देखा जा सकता है।

ध्यान दें कि वीआर रोबोट एक्स अक्ष के साथ यात्रा करेगा, जिसमें एक्स मान नंबर ग्रिड मैप प्लेग्राउंडपर संख्या '5' तक बढ़ने के लिए बढ़ रहा है।

खेल के मैदान के केंद्र में एक्स अक्ष के साथ संख्या ग्रिड मानचित्र खेल का मैदान। प्रत्येक वर्ग के केंद्र को एक्स अक्ष मान से चिह्नित किया गया है, जो बायीं ओर -900 से शुरू होकर दायीं ओर 200 प्रत्येक वर्ग से बढ़ते हुए 900 तक है। नीचे बाएं कोने में नंबर 1 पर एक VR रोबोट देखा जा सकता है, जिसके ऊपर एक तीर नंबर 5 की ओर इशारा कर रहा है।

वीआर रोबोट नंबर ग्रिड मैप प्लेग्राउंडपर नंबर '5' के स्थान पर ड्राइव करेगा। हालाँकि, इससे पहले कि वीआर रोबोट उस नंबर तक पहुंच सके, वीआर रोबोट को यह बताना होगा कि वह नंबर कहां है। खेल के मैदान के केंद्र से शुरू होकर, संख्या '5' के निर्देशांक (-100, -900) हैं।

संख्या ग्रिड मानचित्र खेल के मैदान के निचले बाएं कोने में पहले से ही x और y अक्ष ओवरले हैं। x अक्ष पर ऋणात्मक 100 से संख्या 5 तक तथा y अक्ष पर ऋणात्मक 900 से संख्या 5 तक एक तीर दर्शाया गया है। वीआर रोबोट अभी भी नंबर 1 पर है, जिसका निर्देशांक ऋणात्मक 900 है, जो रोबोट से ऋणात्मक 900 नीचे है।

  • शुरुआत करने के लिए, वीआर रोबोट का मुंह संख्या '5' की ओर होना चाहिए। turn_for कमांड खींचें या टाइप करें.
# "main" में प्रोजेक्ट कोड जोड़ें
def main():
    drivetrain.turn_for(RIGHT, 90, DEGREES)
  • turn_forकमांड के अंतर्गत while लूप को खींचें। आपका प्रोजेक्ट इस तरह दिखना चाहिए:
# "main" में प्रोजेक्ट कोड जोड़ें
def main():
    drivetrain.turn_for(RIGHT, 90, DEGREES)

    while condition:
        wait(5, MSEC)
  • दूरी सेंसर इकाई की तरह, यह परियोजना नंबर ग्रिड मैप प्लेग्राउंडको नेविगेट करने के लिए तुलना ऑपरेटर के साथ स्थान सेंसर स्थिति की स्थिति का उपयोग करेगी। X-अक्ष में while लूप को स्थिति कमांड के लिए मिलीमीटर (मिमी) में -100 से कम पर सेट करें। आपका प्रोजेक्ट इस तरह दिखना चाहिए:
# "main" में प्रोजेक्ट कोड जोड़ें
def main():
    drivetrain.turn_for(RIGHT, 90, DEGREES)

    while location.position(X, MM) < -100:
        wait(5, MSEC)
  • while लूप के अंदर नॉन-वेटिंग ड्राइव कमांड को खींचें या टाइप करें। आपका प्रोजेक्ट इस तरह दिखना चाहिए:
# "main" में प्रोजेक्ट कोड जोड़ें
def main():
    drivetrain.turn_for(RIGHT, 90, DEGREES)

    while location.position(X, MM) < -100:
        drivetrain.drive(FORWARD)
        wait(5, MSEC)
  • ध्यान दें कि अधिक से अधिक ऑपरेटर के स्थान पर कम से कम ऑपरेटर का प्रयोग किया गया है, क्योंकि वीआर रोबोट खेल के मैदान के बाईं ओर से दाईं ओर चल रहा है। वीआर रोबोट -900 मिलीमीटर (मिमी) के एक्स-मान से शुरू हो रहा है। जैसे-जैसे वीआर रोबोट आगे बढ़ता है, एक्स-मान बढ़ता जाता है, और इस प्रकार रोबोट तब तक आगे बढ़ता रहेगा जब तक एक्स-मान -100 से कम रहता है।

संख्या ग्रिड मानचित्र खेल के मैदान के निचले बाएं कोने में पहले से ही x और y अक्ष ओवरले हैं। x अक्ष पर ऋणात्मक 100 से संख्या 5 तक तथा y अक्ष पर ऋणात्मक 900 से संख्या 5 तक एक तीर दर्शाया गया है। वीआर रोबोट अभी भी नंबर 1 पर है, जिसका निर्देशांक ऋणात्मक 900 है, जो रोबोट से ऋणात्मक 900 नीचे है।

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

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

खेल के मैदान को देखते समय यह बाएं और दाएं आंदोलनों के साथ संरेखित होता है। यदि वीआर रोबोट बाएं से दाएं या नीचे से ऊपर (बड़े मान) की ओर बढ़ रहा है, तो कम से कम ऑपरेटर का उपयोग ड्राइव करने के लिए किया जाता है, जबकि स्थिति लक्ष्य मान से कम होती है। 

संख्या ग्रिड मानचित्र खेल के मैदान के दो ऊपर से नीचे के दृश्य। पहले चित्र में, वी.आर. रोबोट को 51 नंबर पर दिखाया गया है, तथा एक तीर से संकेत मिलता है कि रोबोट 60 नंबर की ओर दायीं ओर बढ़ने वाला है। ऊपर लिखा है 'जब स्थिति इससे कम हो तो ड्राइव करें'। दूसरे में, वीआर रोबोट को नंबर 6 पर दिखाया गया है, तथा एक तीर से संकेत मिलता है कि रोबोट नंबर 96 तक जाने वाला है। ऊपर लिखा है 'जब स्थिति इससे कम हो तो ड्राइव करें'।

यदि वीआर रोबोट दाएं से बाएं या ऊपर से नीचे (छोटे मान) की ओर बढ़ रहा है, तो चालक को चलाने के लिए बड़े से बड़े ऑपरेटर का उपयोग किया जाता है, जबकि स्थिति लक्ष्य मान से या अधिक होती है।

संख्या ग्रिड मानचित्र खेल के मैदान के दो ऊपर से नीचे के दृश्य। पहले चित्र में, वी.आर. रोबोट को 60 नंबर पर दिखाया गया है, तथा एक तीर से संकेत मिलता है कि रोबोट बाईं ओर 51 नंबर पर जा रहा है। ऊपर लिखा है 'जब स्थिति इससे अधिक हो तो ड्राइव करें'। दूसरे चित्र में, वीआर रोबोट को 96 नंबर पर दिखाया गया है, तथा एक तीर से संकेत मिलता है कि रोबोट नीचे 6 नंबर पर जाने वाला है। ऊपर लिखा है 'जब स्थिति इससे अधिक हो तो ड्राइव करें'।

तुलना ऑपरेटरों का उपयोग करते हुए, वीआर रोबोट तब तक यात्रा करेगा जब तक स्थान सेंसर द्वारा रिपोर्ट किया गया मान सीमा मान (>) से अधिक या (<) से कम होगा। इस उदाहरण में, वीआर रोबोट एक्स-अक्ष पर धनात्मक 500 मिलीमीटर (मिमी) तक नेविगेट करेगा। वीआर रोबोट तब ड्राइव करेगा जब एक्स-अक्ष पर स्थिति 0 से धनात्मक 499 तक कहीं भी होगी। जब लोकेशन सेंसर रिपोर्ट करता है किस्थिति 501 या उससे अधिक है, तो वीआर रोबोट ड्राइविंग बंद कर देगा। 

# "main" में प्रोजेक्ट कोड जोड़ें
def main():
    monitor_sensor(location.position)
    drivetrain.turn_for(RIGHT, 90, DEGREES)

    while location.position(X, MM) < 500:
        drivetrain.drive(FORWARD)
        wait(5, MSEC)
    drivetrain.stop()

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

  • stop कमांड को while लूप के बाहर खींचें या टाइप करें। आपका प्रोजेक्ट इस तरह दिखना चाहिए:
# "main" में प्रोजेक्ट कोड जोड़ें
def main():
    drivetrain.turn_for(RIGHT, 90, DEGREES)

    while location.position(X, MM) < -100:
        drivetrain.drive(FORWARD)
        wait(5, MSEC)
    drivetrain.stop()
  • यदि प्लेग्राउंड विंडोपहले से खुली नहीं है तो उसे खोलें। सुनिश्चित करें किनंबर ग्रिड मैप प्लेग्राउंडखुलता है, और प्रोजेक्ट चलाएं।
  • नंबर ग्रिड मानचित्र खेल के मैदानपर नंबर '5' के लिए वी.आर. रोबोट ड्राइव देखें।

नंबर ग्रिड मानचित्र खेल के मैदान की ऊपर से नीचे की छवि. वीआर रोबोट को नीचे नंबर 5 पर देखा जा सकता है।

  • इस परियोजना में, वीआर रोबोट नंबर ग्रिड मैप प्लेग्राउंडपर नंबर '5' तक ड्राइव करता है। while लूप का उपयोग इसलिए किया जाता है ताकि VR रोबोट आगे बढ़ना जारी रखे, जबकि X-मान उस निर्देशांक के X-मान से कम हो जिस पर संकेतित संख्या स्थित है।
  • एक बार जब X-मान -100 से अधिक हो जाता है, तो प्रोजेक्ट लूप के बाहर अगले कमांड पर चला जाता है, जो कि स्टॉप कमांड है। चूंकि संख्या '5' का X-मान -100 है, इसलिए X-मान -100 से अधिक होने पर VR रोबोट गाड़ी चलाना बंद कर देगा।

अभी चलाए गए पायथन प्रोजेक्ट का प्रवाह। एक तीर यह संकेत देता है कि 90 डिग्री दाहिनी ओर मुड़ने के बाद रोबोट वाइल लूप में चला जाता है। while लूप के बगल में एक चक्रीय तीर है जिस पर लिखा है 'x मान ऋणात्मक 100 से कम होने पर True रिटर्न होता है, VR रोबोट आगे बढ़ता है।' उसके नीचे एक लाल तीर है जिस पर लिखा है 'x मान ऋणात्मक 100 से अधिक है, गलत लौटाता है। वीआर रोबोट गाड़ी चलाना बंद कर देता है।'

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

ध्यान दें कि लोकेशन सेंसर द्वारा रिपोर्ट किया गया माननहीं बल्कि-100 मिलीमीटर (मिमी) हो सकता है। दूरी सेंसर की तरह, तुलना ऑपरेटरों का उपयोग इसलिए किया जाता है क्योंकि वीआर रोबोट को परियोजना को दोहराने और मूल्यों की रिपोर्ट करने में समय लगता है।

प्लेग्राउंड विंडो में डैशबोर्ड को ज़ूम इन करके दिखाया गया कि लोकेशन सेंसर का रिपोर्ट किया गया x मान ऋणात्मक 90 मिलीमीटर है।

VEXcode VR पायथन में, आप अपनी गतिविधियों में अतिरिक्त सटीकता के लिए अपने प्रोजेक्ट मेंसे अधिक याके बराबर (>=) या से कम याके बराबर (<=) तुलना ऑपरेटर का उपयोग कर सकते हैं।

# "main" में प्रोजेक्ट कोड जोड़ें
def main():
    drivetrain.turn_for(RIGHT, 90, DEGREES)

    while location.position(X, MM) <= -100:
        drivetrain.drive(FORWARD)
        wait(5, MSEC)
    drivetrain.stop()

वीआर रोबोट की गति और परियोजना लूप के माध्यम से कितनी तेजी से पुनरावृत्त होती है, इस पर निर्भर करते हुए, आप देख सकते हैं कि वीआर रोबोट थ्रेशोल्ड मान के करीब रुकने में सक्षम है जब ऑपरेटर में (<= या >=) या उसके बराबर जोड़ा जाता है।

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