पाठ 2: अगली डिस्क की ओर बढ़ें
ब्लू डिस्क की ओर ड्राइव करें
पिछले प्रोजेक्ट में वीआर रोबोट तब दाईं ओर मुड़ता है जब फ्रंट आई सेंसर एक हरी डिस्क का पता लगाता है, जिससे वीआर रोबोट भूलभुलैया के पहले चरण को पार कर लेता है। अब, हम इस परियोजना को आगे बढ़ाते रहेंगे ताकि वीआर रोबोट डिस्क मेज़ प्लेग्राउंड पर पहले चार डिस्क तक ड्राइव कर सके।
हरे डिस्क पर दाईं ओर मुड़ने के बाद वीआर रोबोट जिस दिशा में मुंह किए हुए है, उसे देखकर हम समझ सकते हैं कि अगले तीन नीले डिस्क तक पहुंचने के लिए वीआर रोबोट को आगे बढ़ना चाहिए और प्रत्येक नीले डिस्क पर बाईं ओर मुड़ना चाहिए। हमwhileलूप के समान तर्क का उपयोगnotशर्त के साथ कर सकते हैं ताकि वीआर रोबोट भूलभुलैया से आगे बढ़ता रहे, और जब वह एक नीली डिस्क का पता लगाए तो बाईं ओर मुड़ जाए।
- मौजूदा प्रोजेक्ट में turn_for के नीचे एक और टिप्पणी जोड़ें ताकि VR रोबोट के अगले व्यवहारों का वर्णन किया जा सके। आपका प्रोजेक्ट कुछ इस तरह दिखना चाहिए:
def main():
# पहली डिस्क (हरी) तक ड्राइव करें, दाईं ओर मुड़ें
while not front_eye.detect(GREEN):
drivetrain.drive(FORWARD)
wait(5, MSEC)
drivetrain.turn_for(RIGHT, 90, DEGREES)
# दूसरी डिस्क (नीली) तक ड्राइव करें, बाईं ओर मुड़ें- नई टिप्पणी के नीचे, एक और जबकि लूप जोड़ें जिसमें नॉट कंडीशन। स्थिति को पता लगानेकमांड पर सेट करें और पैरामीटर को "नीला" पर सेट करें, क्योंकि वीआर रोबोट को मिलने वाली अगली डिस्क नीली होगी।
# दूसरी डिस्क (नीली) पर ड्राइव करें, बाईं ओर मुड़ें
जबकि फ्रंट_आई.डिटेक्ट (नीला) नहीं है:
प्रतीक्षा करें (5, एमएसईसी)- while लूप के अंदर, गैर-प्रतीक्षा ड्राइव कमांड को खींचें या टाइप करें।
# दूसरी डिस्क (नीली) की ओर ड्राइव करें, बाईं ओर मुड़ें
जबकि फ्रंट_आई.डिटेक्ट (नीला) नहीं है:
ड्राइवट्रेन.ड्राइव (फॉरवर्ड)
प्रतीक्षा करें (5, एमएसईसी)- turn_for कमांड को ड्रैग करके डालें या टाइप करें, और पैरामीटर को 90 डिग्री बाएँ मुड़ने के लिए सेट करें।
# दूसरी डिस्क (नीली) की ओर ड्राइव करें, बाएँ मुड़ें
जबकि फ्रंट_आई.डिटेक्ट (नीला) नहीं है:
ड्राइवट्रेन.ड्राइव (आगे)
प्रतीक्षा करें (5, मिलीसेकंड)
ड्राइवट्रेन.टर्न_फॉर (बाएँ, 90, डिग्री)- प्रोजेक्ट चलाकर देखें कि वीआर रोबोट डिस्क मेज़ प्लेग्राउंड. में कैसे चलता है।
- ध्यान दें कि जब फ्रंट आई सेंसर हरे रंग की डिस्क का पता लगाता है तो वीआर रोबोट दाईं ओर मुड़ जाता है, और जब फ्रंट आई सेंसर नीले रंग की डिस्क का पता लगाता है तो वह बाईं ओर मुड़ जाता है।
- फ्रंट आई सेंसर का उपयोग करके वीआर रोबोट को डिस्क मेज़ प्लेग्राउंड पर दो और नीली डिस्क तक ले जाने के लिए इस प्रोजेक्ट को आगे बढ़ाएं। प्रोजेक्ट में ऐसे कमांड जोड़ें जो वीआर रोबोट को अगले दो डिस्क पर ले जाएं और फिर रोक दें। अब आपका पूरा प्रोजेक्ट कुछ इस तरह दिखना चाहिए:
def main():
# पहले डिस्क (हरे रंग) तक ड्राइव करें, दाएं मुड़ें
while not front_eye.detect(GREEN):
drivetrain.drive(FORWARD)
wait(5, MSEC)
drivetrain.turn_for(RIGHT, 90, DEGREES)
# दूसरे डिस्क (नीले रंग) तक ड्राइव करें, बाएं मुड़ें
while not front_eye.detect(BLUE):
drivetrain.drive(FORWARD)
wait(5, MSEC)
drivetrain.turn_for(LEFT, 90, DEGREES)
# तीसरे डिस्क (नीले रंग) तक ड्राइव करें, बाएं मुड़ें
while not front_eye.detect(BLUE):
drivetrain.drive(FORWARD)
wait(5, MSEC)
drivetrain.turn_for(LEFT, 90, DEGREES)
# चौथे डिस्क (नीले रंग) तक ड्राइव करें, बाएं मुड़ें
while not front_eye.detect(BLUE):
drivetrain.drive(FORWARD)
wait(5, MSEC)
drivetrain.turn_for(LEFT, 90, DEGREES)वीआर रोबोट की गतिविधियों में एक पैटर्न की पहचान करना
फ्रंट आई सेंसर की मदद से डिस्क मेज़ में सफलतापूर्वक नेविगेट करने का लक्ष्य एक ऐसा सुसंगत पैटर्न बनाना है जिसमें वीआर रोबोट फ्रंट आई सेंसर द्वारा हरी डिस्क का पता लगाने पर दाईं ओर मुड़ता है, और फ्रंट आई सेंसर द्वारा नीली डिस्क का पता लगाने पर बाईं ओर मुड़ता है। इस तरह के पैटर्न की पहचान करने से आपको अपनी परियोजनाओं को सरल बनाने में मदद मिल सकती है क्योंकि वे जटिलता में बढ़ती जाती हैं।

आपकी जानकारी के लिए
ध्यान दें कि प्रोजेक्ट में कमांड के क्रम में भी एक पैटर्न मौजूद है। इस प्रोजेक्ट में (नीली डिस्क के लिए) आदेशों की एक श्रृंखला है जिसे तीन बार दोहराया गया है। कोड के इस भाग को लूप का उपयोग करके संक्षिप्त किया जा सकता है। यहां प्रदर्शित परियोजना नीली डिस्क से संबंधित उन तीन जबकि लूपों को एक एकल के लिए लूप में संयोजित करती है।
def main():
# पहली डिस्क (हरी) तक ड्राइव करें, दाईं ओर मुड़ें
while not front_eye.detect(GREEN):
drivetrain.drive(FORWARD)
wait(5, MSEC)
drivetrain.turn_for(RIGHT, 90, DEGREES)
# अगली 3 डिस्क (नीली) तक ड्राइव करें, बाईं ओर मुड़ें
for value in range(3):
while not front_eye.detect(BLUE):
drivetrain.drive(FORWARD)
wait(5, MSEC)
drivetrain.turn_for(LEFT, 90, DEGREES)लूप का उपयोग करने से आपका प्रोजेक्ट सरल और अधिक आसानी से पठनीय बन सकता है, लेकिन इसमें दोहराए जाने वाले कमांड को एक ही लूप के अंदर रखा जाता है।
- यदि डिस्क मेज़ प्लेग्राउंड पहले से खुला नहीं है, तो उसे खोलें और प्रोजेक्ट चलाएं।
-
वीआर रोबोट को डिस्क मेज़ प्लेग्राउंड पर चार डिस्क तक नेविगेट करते हुए देखें।

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