Skip to main content

पाठ 2: अगली डिस्क पर जाएँ

ब्लू डिस्क की ओर ड्राइव करें

पिछली परियोजना में वीआर रोबोट दाईं ओर मुड़ता है जब फ्रंट आई सेंसर एक हरे रंग की डिस्क का पता लगाता है, जो वीआर रोबोट को भूलभुलैया में पहले चरण तक ले जाता है। अब, हम इस परियोजना पर काम करना जारी रखेंगे ताकि वीआर रोबोट डिस्क भूलभुलैया खेल के मैदानपर पहले चार डिस्क तक पहुंच सके।

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

  • वीआर रोबोट के अगले व्यवहार का वर्णन करने के लिए मौजूदा प्रोजेक्ट में turn_for के नीचे एक और टिप्पणी जोड़ें। आपका प्रोजेक्ट इस तरह दिखना चाहिए:
def main():
    # पहली डिस्क (हरा) पर ड्राइव करें, दाएं मुड़ें
    while not front_eye.detect(GREEN):
        drivetrain.drive(FORWARD)
        wait(5, MSEC)

    drivetrain.turn_for(RIGHT, 90, DEGREES)

    # दूसरी डिस्क (नीला) पर ड्राइव करें, बाएं मुड़ें
  • नई टिप्पणी के नीचे, not शर्तके साथ एक और while लूप जोड़ें। शर्त को detectकमांड पर सेट करें और पैरामीटर को "नीला" पर सेट करें, क्योंकि अगली डिस्क जो VR रोबोट के सामने आएगी वह नीले रंग की होगी।
    # दूसरी डिस्क (नीली) पर जाएं, बाएं मुड़ें
    जब तक front_eye.detect(BLUE):
        wait(5, MSEC)
  • while लूप के अंदर, नॉन-वेटिंग ड्राइव कमांड को खींचें या टाइप करें। 
    # दूसरी डिस्क (नीली) तक ड्राइव करें, बाएं मुड़ें
    जब तक front_eye.detect(BLUE) न हो:
        drivetrain.drive(FORWARD)
        wait(5, MSEC)
  • turn_for कमांड को खींचें या टाइप करें, और 90 डिग्री बाईं ओर मुड़ने के लिए पैरामीटर सेट करें।
    # दूसरी डिस्क (नीली) पर ड्राइव करें, बाएं मुड़ें
    जब तक front_eye.detect(नीला) न हो:
        drivetrain.drive(FORWARD)
        wait(5, MSEC)

    drivetrain.turn_for(LEFT, 90, DEGREES)
  • यह देखने के लिए प्रोजेक्ट चलाएँ कि VR रोबोट डिस्क भूलभुलैया खेल के मैदान.में कैसे चलता है।डिस्क मेज़ खेल के मैदान पर वीआर रोबोट का ऊपर से नीचे का दृश्य, जिसमें एक काला तीर दर्शाया गया है जो दर्शाता है कि रोबोट आरंभिक स्थान से सीधे हरे रंग की डिस्क तक जाएगा, फिर दाएं मुड़ेगा, नीले रंग की डिस्क तक आगे बढ़ेगा, बाएं मुड़ेगा और फिर गाड़ी चलाना बंद कर देगा।
    • ध्यान दें कि जब फ्रंट आई सेंसर हरे रंग की डिस्क का पता लगाता है तो वीआर रोबोट दाईं ओर मुड़ जाता है, और जब फ्रंट आई सेंसर नीले रंग की डिस्क का पता लगाता है तो बाईं ओर मुड़ जाता है।
  • फ्रंट आई सेंसर का उपयोग करके डिस्क भूलभुलैया खेल के मैदान पर दो और नीले डिस्क पर वीआर रोबोट को चलाने के लिए इस परियोजना का निर्माण जारी रखें। प्रोजेक्ट में कमांड जोड़ें, VR रोबोट को अगले दो डिस्क पर ले जाएं और फिर रुक जाएं। अब आपका पूरा प्रोजेक्ट इस तरह दिखना चाहिए:
def main():
    # पहली डिस्क (हरा) पर ड्राइव करें, दाएं मुड़ें
    जब तक front_eye.detect(GREEN) न हो:
        drivetrain.drive(FORWARD)
        wait(5, MSEC)

    drivetrain.turn_for(RIGHT, 90, DEGREES)

    # दूसरी डिस्क (नीला) पर ड्राइव करें, बाएं मुड़ें
    जब तक front_eye.detect(BLUE) न हो:
        drivetrain.drive(FORWARD)
        wait(5, MSEC)

    drivetrain.turn_for(LEFT, 90, DEGREES)

    # तीसरी डिस्क (नीला) पर ड्राइव करें, बाएं मुड़ें
    जब तक front_eye.detect(BLUE) न हो:
        drivetrain.drive(FORWARD)
        wait(5, MSEC)

    drivetrain.turn_for(LEFT, 90, DEGREES)

    # चौथी डिस्क (नीला) पर ड्राइव करें, बाएं मुड़ें
    जब तक front_eye.detect(BLUE) न हो front_eye.detect(नीला):
        drivetrain.drive(आगे)
        wait(5, MSEC)

    drivetrain.turn_for(बाएँ, 90, डिग्री)

वीआर रोबोट की गतिविधियों में एक पैटर्न की पहचान करना

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

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

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

ध्यान दें कि परियोजना में आदेशों के अनुक्रम में भी एक पैटर्न है। (नीली डिस्क के लिए) आदेशों की एक श्रृंखला है जो परियोजना में तीन बार दोहराई जाती है। कोड के इस भाग को for लूप का उपयोग करके संक्षिप्त किया जा सकता है। यहां दिखाया गया प्रोजेक्ट नीली डिस्क से संबंधित उन तीन while लूपों को एक एकल for लूप में संयोजित करता है।

def main():
    # पहली डिस्क (हरा) पर ड्राइव करें, दाएं मुड़ें
    जब तक front_eye.detect(GREEN) न हो:
        drivetrain.drive(FORWARD)
        wait(5, MSEC)

    drivetrain.turn_for(RIGHT, 90, DEGREES)

    # अगली 3 डिस्क (नीला) पर ड्राइव करें, बाएं मुड़ें
    for value in range(3): 
        जब तक front_eye.detect(BLUE) न हो:
            drivetrain.drive(FORWARD)
            wait(5, MSEC)

        drivetrain.turn_for(LEFT, 90, DEGREES)

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

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

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

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