पाठ 3: वॉल मेज़ को हल करने के लिए ड्राइवट्रेन कमांड जोड़ना
दीवार भूलभुलैया समस्या का समाधान
अब जबकि वीआर रोबोट वॉल प्लेग्राउंडपर अक्षर 'ए' और संख्या '2' तक पहुँच चुका है, तो आप एक ऐसा प्रोजेक्ट कैसे बनाएंगे जिसमें वीआर रोबोट अन्य स्थानों, जैसे कि अक्षर 'बी' तक जाए? अब तक, हमने बम्पर सेंसर से प्राप्त डेटा का उपयोग करके एक दीवार तक गाड़ी चलाई है, फिर अगली दीवार की ओर मुड़ने के लिए इसका इस्तेमाल किया है। अक्षर 'B' तक पहुंचने के लिए, हमें VR रोबोट को भूलभुलैया की सतह के मध्य में एक बिंदु पर ले जाने में सक्षम होना चाहिए, ताकि यह हमारे गंतव्य की ओर एक अलग रास्ते पर चल सके।
यदि कोड में केवल ड्राइवऔर टर्न_फॉरकमांड शामिल हों, तो वीआर रोबोट वॉल मेज़ के '2' सेक्शन में "फंस" सकता है, क्योंकि यह पीछे हटे बिना लगातार बाएं या दाएं मुड़ता रहेगा।
इसके बजाय, हम उस आखिरी दीवार से दूरी का अनुमान लगा सकते हैं जिसे वीआर रोबोट ने छुआ था और जहां उसे मुड़ना है। फिर हम ड्राइवट्रेन कमांड का उपयोग कर सकते हैं, जैसेड्राइव_फॉरऔरटर्न_फॉर,जबकिलूप और बम्पर सेंसर डेटा के साथ हमारे प्रोजेक्ट में भूलभुलैया को हल करने के लिए!
-
अपने पिछले प्रोजेक्ट में बदलाव करके शुरुआत करें, एक नया प्रोजेक्ट बनाएं, या "कॉपी" चुनें और इस कोड को VEXcode VR में पेस्ट करें ताकि यह इस बेस प्रोजेक्ट से मेल खाए।
def main(): while not left_bumper.pressed(): drivetrain.drive(FORWARD) wait(5, MSEC) drivetrain.turn_for(LEFT, 90, DEGREES) while not left_bumper.pressed(): drivetrain.drive(FORWARD) wait(5, MSEC) drivetrain.turn_for(RIGHT, 90, DEGREES) while not left_bumper.pressed(): drivetrain.drive(FORWARD) wait(5, MSEC) drivetrain.turn_for(LEFT, 90, DEGREES) while not left_bumper.pressed(): drivetrain.drive(FORWARD) wait(5, MSEC) drivetrain.stop() - ऊपर दिए गए प्रोजेक्ट में वीआर रोबोट को अक्षर 'बी' तक ले जाने का प्रयास किया गया है, हालांकि, ऐसा करने के लिए वीआर रोबोट को पहले पीछे हटना होगा और फिर बाईं ओर मुड़ना होगा।

- कोड को संपादित करें और उसमें से स्टॉप कमांड को हटाकर उसके स्थान परड्राइव_फॉरऔर टर्न_फॉर कमांड डालें।
- हम अनुमान लगा सकते हैं कि वीआर रोबोट को 300 मिलीमीटर (मिमी) तक पीछे की ओर ड्राइव करने की आवश्यकता है। सबसे पहले, drive_for कमांड के पैरामीटर को 300 मिलीमीटर (मिमी) के लिए "रिवर्स" पर सेट करें।
-
, turn_for कमांड के पैरामीटर को 90 डिग्री बाएँ मुड़ने के लिए सेट करें। अब आपका प्रोजेक्ट इस तरह दिखना चाहिए:
def main(): while not left_bumper.pressed(): drivetrain.drive(FORWARD) wait(5, MSEC) drivetrain.turn_for(LEFT, 90, DEGREES) while not left_bumper.pressed(): drivetrain.drive(FORWARD) wait(5, MSEC) drivetrain.turn_for(RIGHT, 90, DEGREES) while not left_bumper.pressed(): drivetrain.drive(FORWARD) wait(5, MSEC) drivetrain.turn_for(LEFT, 90, DEGREES) while not left_bumper.pressed(): drivetrain.drive(FORWARD) wait(5, MSEC) drivetrain.drive_for(REVERSE, 300, एमएम) ड्राइवट्रेन.टर्न_फॉर(लेफ्ट, 90, डिग्री)
- यदि पहले से खुला नहीं है तो वॉल मेज़ प्लेग्राउंड लॉन्च करें और प्रोजेक्ट चलाएं।
-
इन कमांड्स को जोड़ने से वीआर रोबोट सही दिशा में उन्मुख हो जाएगा और अक्षर 'बी' को चला सकेगा।

- प्लेग्राउंड को रीसेट करने और वीआर रोबोट को शुरुआती स्थिति में वापस ले जाने के लिए "रीसेट" बटन चुनें।
-
अब जबकि वीआर रोबोट सही दिशा में उन्मुख है, अंतिम turn_for कमांड के नीचे निम्नलिखित कमांड जोड़ें, ताकि वीआर रोबोट को वॉल मेज़ प्लेग्राउंड पर अक्षर 'बी' तक ले जाया जा सके। सुनिश्चित करें कि आपके प्रोजेक्ट में कमांड सही ढंग से इंडेंट किए गए हैं।
जब तक left_bumper.pressed() नहीं है: ड्राइवट्रेन.ड्राइव(फॉरवर्ड) wait(5, MSEC) ड्राइवट्रेन.टर्न_फॉर(राइट, 90, डिग्री) जब तक left_bumper.pressed() नहीं है: ड्राइवट्रेन.ड्राइव(फॉरवर्ड) wait(5, MSEC) ड्राइवट्रेन.टर्न_फॉर(राइट, 90, डिग्री) जब तक left_bumper.pressed() नहीं है: ड्राइवट्रेन.ड्राइव(फॉरवर्ड) wait(5, MSEC) ड्राइवट्रेन.स्टॉप() - यदि वॉल मेज़ प्लेग्राउंड पहले से खुला नहीं है, तो उसे लॉन्च करें और प्रोजेक्ट चलाएं।
-
वीआर रोबोट अब वॉल मेज़ प्लेग्राउंड पर अक्षर 'बी' तक ड्राइव करेगा।

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

मिनी चैलेंज को पूरा करने के लिए इन चरणों का पालन करें:
-
नीचे दिए गए समाधान वीडियो को देखें और समीक्षा करें कि मिनी चुनौती को पूरा करने के लिए वीआर रोबोट को कैसे चलाना चाहिए। नीचे दिए गए वीडियो क्लिप में, वीआर रोबोट शुरुआती स्थान से शुरू होता है और बम्पर दबाए जाने तक दीवार की ओर ड्राइव करने के उसी पैटर्न का पालन करता है और फिर मुड़ जाता है। रोबोट उसी रास्ते से चलना शुरू करता है, जिस रास्ते से वह अक्षर B तक गया था। दीवार से दूर मुड़ने वाले मोड़ पर, रोबोट दाईं ओर मुड़कर अक्षर 3 की ओर आगे बढ़ता है। उस बिंदु से आगे बढ़ते हुए, रोबोट अगली दीवारों को पार करने के लिए दो बार बाईं ओर मुड़ता है और अक्षर B से आगे निकल जाता है। अंत में, रोबोट आगे बढ़ता है और अंतिम दीवारों को पार करने के लिए दो बार दाईं ओर मुड़ता है और अक्षर 3 तक पहुँच जाता है।
- वीआर रोबोट को मेज़ प्लेग्राउंड पर नंबर '3' तक ले जाने के लिए यूनिट 4 लेसन प्रोजेक्ट में आवश्यक कमांड जोड़कर या हटाकर एक प्रोजेक्ट बनाएं।
- यह देखने के लिए प्रोजेक्ट शुरू करें कि यह काम करता है या नहीं।
- यदि प्रोजेक्ट सफल नहीं होता है, तो उसे संपादित करें और दोबारा प्रयास करें। चुनौती पूरी होने तक इस प्रक्रिया को जारी रखें।
- एक बार जब वीआर रोबोट सफलतापूर्वक वॉल मेज़ प्लेग्राउंडपर नंबर '3' तक पहुंच जाए, तो प्रोजेक्ट को सेव करें।
बधाई हो! आपने वॉल मेज़ चैलेंज सफलतापूर्वक पूरा कर लिया है!