अध्याय 4: प्रतिस्पर्धा की तैयारी
पाठ 2: ब्लॉक प्रतियोगिता टेम्पलेट का उपयोग करना
नमस्कार और वीईएक्स क्लासरूम में आपका स्वागत है। मेरा नाम लॉरेन है, और इस पाठ में हम ब्लॉक्स प्रतियोगिता टेम्पलेट का उपयोग करने के बारे में जानेंगे। पिछले पाठ में, हमने प्रतियोगिता टेम्पलेट के बारे में थोड़ा और विस्तार से बात की थी और यह भी बताया था कि VEX रोबोटिक्स प्रतियोगिता मैच के दौरान इसका उपयोग करना क्यों आवश्यक है। आप जिस प्रोग्रामिंग भाषा का उपयोग कर रहे हैं, उसके आधार पर प्रतियोगिता टेम्पलेट के अलग-अलग संस्करण उपलब्ध हैं, चाहे वह ब्लॉक हो या टेक्स्ट। इस विशेष वीडियो में, क्योंकि इस कोर्स में हम ब्लॉक्स पर ध्यान केंद्रित कर रहे हैं, मैं VEXcode V5 में ब्लॉक्स प्रतियोगिता टेम्पलेट के बारे में बताऊंगा।
अब, इससे पहले कि हम सब कुछ विस्तार से जानें, आइए पहले सामग्रियों के बारे में बात कर लेते हैं। मैं यहां एडवांस्ड ट्रेनिंगबॉट का उपयोग करने जा रहा हूं ताकि मैं आर्म और क्लॉ की कुछ कार्यक्षमताओं को प्रदर्शित कर सकूं। मैं इस प्रतियोगिता टेम्पलेट को दिखाने के लिए एक कंट्रोलर, एक गेम ऑब्जेक्ट पीस और VEXcode V5 का भी उपयोग करूंगा। इस वीडियो के लिए आपको किसी भी सामग्री की आवश्यकता नहीं है। मैं अभी आपके लिए कुछ प्रदर्शन करने जा रहा हूँ। तो फिर से बता दें, इस विशेष पाठ के लिए आपको किसी भी चीज की बिल्कुल भी आवश्यकता नहीं है।
आइए इस पाठ के उद्देश्य के बारे में बात करते हैं। हम ब्लॉक्स कॉम्पिटिशन टेम्प्लेट के विभिन्न भागों पर चर्चा करेंगे, विशेष रूप से तीन भागों पर: 'जब शुरू हुआ' (जो हमारा पूर्व-स्वायत्त भाग है), 'स्वायत्त भाग' और 'चालक नियंत्रण भाग'। मैं यहां दिए गए उदाहरण कोड में उन चीजों के बारे में बात करने जा रहा हूं, और फिर हम वास्तव में इसका परीक्षण करेंगे और अपने रोबोट पर अपने कंट्रोलर का उपयोग करके इसकी कार्यक्षमता देखेंगे ताकि यह पता चल सके कि प्रतियोगिता टेम्पलेट व्यवहार में कैसा दिखता है।
अब चलिए, अपने प्रोजेक्ट के उदाहरण पर आगे बढ़ते हैं।
[संगीत संकेत]
ठीक है, प्रतियोगिता टेम्पलेट देखने के लिए, मैं फ़ाइल, ओपन एग्जांपल्स, टेम्पलेट्स और फिर प्रतियोगिता टेम्पलेट पर जाऊंगा। यहां कुछ बातें हैं। सबसे पहले, फिर से, ये तीन खंड। मेरे इस उदाहरण में आगे बढ़ने से पहले मैं एक बात बताना चाहता हूँ कि इन सबमें डेटा भरने से पहले हमें सबसे पहले यहाँ डिवाइस कॉन्फ़िगरेशन जोड़ना होगा। तो फिर से, यदि आप 2-मोटर ड्राइवट्रेन का उपयोग कर रहे हैं या आपके पास आर्म या क्लॉ मोटर्स या इस तरह की कोई भी चीज है, तो आपको पहले यह सुनिश्चित करना होगा कि आप उन्हें जोड़ें ताकि ब्लॉक बाईं ओर दिखाई दें। इससे आप इन अनुभागों को दोबारा भर सकेंगे।
जैसे ही मैं प्रतियोगिता टेम्पलेट खोलता हूं, मुझे यह सुनिश्चित करना होगा कि मैं अपने डिवाइस कॉन्फ़िगरेशन को जोड़ दूं। इसके बाद, मैं जिस एक बात का जिक्र करना चाहता हूं, वह यह है कि ड्राइवर कंट्रोल वाले हिस्से में, आप देख सकते हैं कि फॉरएवर ब्लॉक मौजूद है। इसका कारण यह है कि ड्राइवर कंट्रोल वाले हिस्से के लिए, जब हम कंट्रोलर का उपयोग कर रहे होते हैं, तो हम लगातार यह जांचना चाहते हैं कि बटन दबाए गए हैं या जॉयस्टिक को हिलाया गया है। इसलिए उसमें फॉरएवर ब्लॉक डिफ़ॉल्ट रूप से मौजूद होता है। यदि आप किसी विशेष कारण से इसे हटाना चाहते हैं, तो आप हटा सकते हैं, या यदि आप उस स्टैक का उपयोग नहीं कर रहे हैं और केवल डिवाइस कॉन्फ़िगरेशन का उपयोग कर रहे हैं, तो आप इसे यथावत छोड़ सकते हैं।
ठीक है। आइए इन तीनों खंडों को देखें और मेरे द्वारा बनाए गए एक उदाहरण की मदद से इनके वास्तविक अर्थ को समझें।
[संगीत संकेत]
सबसे पहले, मैं यह बताना चाहता हूं कि हमारे प्रतियोगिता टेम्पलेट के तीन मुख्य भाग हैं। पहला चरण वह है जब इसकी शुरुआत हुई थी या पूर्व-स्वायत्त अवस्था। दूसरा भाग स्वायत्त होने पर या स्वायत्त हिस्सा है, और तीसरा भाग चालक नियंत्रण होने पर या चालक नियंत्रण हिस्सा है। ये तीनों इवेंट या हैट ब्लॉक, इस प्रतियोगिता टेम्पलेट के अलग-अलग हिस्सों को निष्पादित करते हैं।
आइए प्रत्येक अनुभाग के बारे में बात करते हैं। पूर्व-स्वायत्त भाग या 'जब शुरू किया जाता है' वाला भाग, प्रतियोगिता टेम्पलेट प्रोजेक्ट के चलने के तुरंत बाद निष्पादित होगा। इसका उपयोग किसी भी प्रारंभिक चरण को निर्धारित करने के लिए सबसे अच्छा होता है।
इस पाठ में मेरे साथ जुड़ने के लिए धन्यवाद। मुझे उम्मीद है कि आपको यह उपयोगी और जानकारीपूर्ण लगा होगा। यदि आपके कोई प्रश्न हों तो बेझिझक हमसे संपर्क करें। हैप्पी कोडिंग और आपके VEX रोबोटिक्स प्रोजेक्ट्स के लिए शुभकामनाएँ!
तो अगर मुझे अपने स्वायत्त भाग के शुरू होने से पहले ब्रेन स्क्रीन पर कुछ प्रिंट करने की आवश्यकता है, अगर मुझे जाइरो को कैलिब्रेट करने की आवश्यकता है, अगर मैं इस विशिष्ट उदाहरण में डेटा प्रिंट करना चाहता हूं, क्योंकि मैं आर्म और क्लॉ का उपयोग कर रहा हूं, तो मैं उनके मोटर्स को होल्ड पर सेट कर दूंगा। इसका मतलब यह है कि अगर मैं अपना हाथ ऊपर उठाता हूं या अपना पंजा खोलता हूं, तो मोटरें उसी विशिष्ट स्थिति में रहेंगी और गुरुत्वाकर्षण के कारण नीचे नहीं आएंगी। तो मैं अपने मोटर्स के लिए कुछ पूर्व-स्वायत्त धारणाएँ निर्धारित कर रहा हूँ। इस विशेष उदाहरण में, हम देखेंगे कि प्रदर्शन देखने पर यह कैसा दिखता है।
संगीत संकेत
तो अब जब मेरे पास वह जानकारी है, तो यह हमारा "कब शुरू हुआ" वाला पूर्व-स्वायत्त भाग है। अगला भाग हमारा स्वायत्त हिस्सा है। मैच का स्वायत्त भाग 15 सेकंड लंबा होगा, और कोड का यह विशिष्ट खंड मैच के स्वायत्त भाग के लिए चलेगा। जैसे ही प्रतियोगिता टेम्पलेट चलाया जाएगा, वह पूर्व-स्वायत्त "कब शुरू हुआ" वाला हिस्सा हर हाल में शुरू हो जाएगा। इसके बाद 15 सेकंड का स्वचालित चक्र चलेगा। हमने फील्ड कंट्रोल सिस्टम के बारे में बात की और यह कैसे नियंत्रित करेगा कि सभी रोबोट कब शुरू और बंद होंगे, कब मैच में यह विशिष्ट भाग चलेगा, कब कोड की यह पंक्ति चलेगी।
अब, मेरे इस विशिष्ट उदाहरण के लिए, हमारा रोबोट पंजे में एक गेम ऑब्जेक्ट के साथ शुरुआत करेगा। इसके बाद यह वस्तु के चारों ओर बंद हो जाएगा, हवा में ऊपर उठेगा, 200 मिलीमीटर आगे बढ़ेगा, भुजा को नीचे करेगा और हमारी खेल वस्तु को नीचे गिरा देगा। उदाहरण के लिए, यह मैच की शुरुआत में किसी मोहरे को स्कोर करने का अनुकरण कर सकता है। तो यही सब मेरे स्वायत्त हिस्से के दौरान होने वाला है। फिर से, स्वायत्त भाग का अर्थ है कि मेरे रोबोट पर नियंत्रक प्रभाव के साथ मेरे पास कोई ड्राइवर नियंत्रण नहीं हो सकता है। इस दौरान सब कुछ स्वायत्त होता है। सब कुछ कोड के माध्यम से किया जाता है।
यहां तीसरे हिस्से को देखें तो मुझे ड्राइवर कंट्रोल दिखाई दे रहा है। अब, मैं एक बात बताना चाहता हूं कि हमारे डिवाइस कॉन्फ़िगरेशन में, मैं स्पष्ट रूप से अपने ड्राइवट्रेन और कंट्रोलर को कॉन्फ़िगर कर सकता हूं, जिसका अर्थ है कि मैं अपने जॉयस्टिक को अलग-अलग ड्राइवट्रेन कॉन्फ़िगरेशन असाइन कर सकता हूं और मैं अलग-अलग मोटरों को नियंत्रित करने के लिए अलग-अलग बटन भी असाइन कर सकता हूं। हालांकि, मान लीजिए कि मेरे कंट्रोलर पर बटन खत्म हो गए हैं या मैं अलग-अलग चीजों को नियंत्रित करना चाहता हूं। मैं इस "व्हेन ड्राइवर कंट्रोल" इवेंट ब्लॉक में कुछ ऐसी चीजें जोड़ सकता हूं जो मैं करना चाहता हूं, लेकिन शायद डिवाइस कॉन्फ़िगरेशन में मुझे उन तक पहुंच न हो, या शायद मैं अपने ड्राइवट्रेन की गति निर्धारित करना चाहता हूं, या इस तरह की अन्य चीजें।
तो ड्राइवर कंट्रोल वाले हिस्से के लिए मेरा विशिष्ट कोड उदाहरण यहाँ फिर से है, यह मुझे अपने कंट्रोलर पर एक बटन के साथ अपने क्लॉ को नियंत्रित करने की अनुमति देगा। हम देखेंगे कि यह कैसा दिखता है। तो फिर से, जब मैं ड्राइवर कंट्रोल भाग का उपयोग कर रहा होता हूं, तो मैं कंट्रोलर के साथ डिवाइस कॉन्फ़िगरेशन और ड्राइवर कंट्रोल भाग दोनों का एक साथ उपयोग कर सकता हूं। या मैं दोनों में से किसी एक का उपयोग कर सकता हूँ। यदि आप इन तीनों स्टैक में से किसी का भी उपयोग नहीं कर रहे हैं, चाहे वह प्री-ऑटोनॉमस "स्टार्ट होने पर", ऑटोनॉमस हो या ड्राइवर कंट्रोल हो, तो आप इन्हें खाली छोड़ सकते हैं।
संगीत संकेत
ठीक है। अब जब यह सब कहा जा चुका है, तो आइए वास्तव में देखते हैं कि जब मैं इसे अपने रोबोट पर चलाऊंगा तो यह कैसा दिखेगा। ठीक है। चलिए, इसे मेरे कंट्रोलर पर देखते हैं। मैं प्रोग्राम्स में जा सकता हूं और वहां मुझे अपना कॉम्पिटिशन टेम्प्लेट प्रोजेक्ट दिखाई देगा जिसे मैंने पहले ही अपने ब्रेन में डाउनलोड कर लिया है। और अगर मैं उनमें से किसी एक पर स्क्रॉल करूं, तो वहां टाइमर के साथ दौड़ने का विकल्प दिखाई देता है। यह उस फील्ड कंट्रोल सिस्टम का अनुकरण करेगा जिसके बारे में मैंने पहले बात की थी, कि कैसे सब कुछ उस फील्ड कंट्रोल सिस्टम द्वारा नियंत्रित होता है। तो जब प्रतियोगिता परियोजना वास्तव में शुरू होती है, जब मैच का स्वायत्त भाग, जब ड्राइवर नियंत्रण भाग, जब मैं इसे नियंत्रित करता हूं, तो मैं नियंत्रक पर इस समयबद्ध रन का उपयोग करके इसका अनुकरण कर सकता हूं।
धन्यवाद नोट
इस प्रक्रिया को मेरे साथ समझने के लिए समय निकालने के लिए धन्यवाद। मुझे उम्मीद है कि यह प्रदर्शन मददगार साबित हुआ होगा।
अंतिम संदेश
यदि आपके कोई प्रश्न हों या आपको और स्पष्टीकरण की आवश्यकता हो तो बेझिझक हमसे संपर्क करें। हैप्पी कोडिंग और आपके रोबोटिक्स प्रोजेक्ट्स के लिए शुभकामनाएँ!
तो अगर मैं उसे चुनता हूं, तो यह मुझे यहां स्वायत्त भाग के लिए 15 सेकंड, ड्राइवर नियंत्रण के लिए एक मिनट, 45 सेकंड बताएगा। और जब मैं इस बटन को दोबारा दबाऊंगा, तो यह वास्तव में चालू हो जाएगा। जब मैं इसे शुरू करूंगा, तो यह 3-2-1 की उलटी गिनती करेगा, बिल्कुल वैसे ही जैसे आप किसी मैच में करते हैं। और फिर हम शुरू करेंगे।
तो जैसे ही मैं स्टार्ट पर क्लिक करूंगा, ऑटोनॉमस हिस्सा चलना शुरू हो जाएगा, या यूं कहें कि प्री-ऑटोनॉमस हिस्सा पहले शुरू होगा, चाहे कुछ भी हो जाए। फिर यह तुरंत ही स्वायत्त भाग को शुरू कर देगा। तो जैसे ही यह स्वचालित रूप से काम करना शुरू करेगा, मैं आपको दिखा दूंगा। अगर मैं रोबोट को चलाने के लिए अपने कंट्रोलर को हिलाता भी हूं, तो भी वह नहीं चलेगा क्योंकि स्वायत्त अवस्था के दौरान, मैं कंट्रोलर का उपयोग करके अपने रोबोट को नियंत्रित नहीं कर सकता।
[संगीत संकेत]
तो चलिए देखते हैं कि वह खास हिस्सा असल में कैसे होता है। ठीक है, चलिए शुरू करते हैं। ठीक है। अब, स्वायत्त भाग में मेरे पास अभी भी कुछ सेकंड बचे हैं। आप देख सकते हैं कि जब मैं अपना कंट्रोलर हिला रहा हूं, तब भी कुछ नहीं हो रहा है क्योंकि स्वायत्त अवस्था के दौरान मैं कंट्रोलर का उपयोग करके अपने रोबोट को नियंत्रित नहीं कर सकता। लेकिन जैसे ही यह ड्राइवर कंट्रोल मोड में आता है, अब मैं वास्तव में अपने रोबोट को नियंत्रित कर सकता हूं।
तो मैं यहां आगे बढ़ूंगा क्योंकि याद रहे, ड्राइवर कंट्रोल वाले हिस्से के लिए प्रोजेक्ट में आने पर, मैं इन अलग-अलग हिस्सों को नियंत्रित कर सकता हूं। तो मेरे पास एक मिनट और 25 सेकंड बचे हैं। मैं अब ड्राइवर कॉन्फ़िगरेशन के आधार पर गाड़ी चलाऊंगा, यह ड्राइवट्रेन को नियंत्रित करता है, यह आर्म को नियंत्रित करता है, यह बटन क्लॉ को नियंत्रित करता है। एक बटन दबाने से मैं वस्तुओं को पकड़ सकूंगा। मैं यहां दो बटन दबाकर भुजा को ऊपर और नीचे कर सकता हूं। क्लॉ को नियंत्रित करने के लिए एक बटन। बंद, खुला।
अब, यह डिवाइस कॉन्फ़िगरेशन में एक विकल्प नहीं है, इसलिए मुझे वह कोड कस्टम तरीके से बनाना पड़ा, और यही कारण है कि मैंने वहां ड्राइवर कंट्रोल इवेंट ब्लॉक का उपयोग किया है जिसे आप उस विशेष स्टैक में देख सकते हैं। यह मेरे ड्राइवर कंट्रोल वाले हिस्से के बाकी बचे समय के लिए उलटी गिनती जारी रखेगा। लेकिन जैसा कि आप देख सकते हैं, मैं इसे रोकने जा रहा हूं। ड्राइवर कंट्रोल चरण समाप्त होने के बाद, सब कुछ बंद हो जाता है और मैच यहीं समाप्त हो जाता है।
आप टेम्पलेट के तीन अलग-अलग भाग देख सकते हैं। एक बार फिर, हम प्री-ऑटोनॉमस सेक्शन से गुजरते हैं, जो शुरू होने पर अपने आप चलेगा, चाहे हम ऑटोनॉमस या ड्राइवर कंट्रोल का उपयोग कर रहे हों। फिर हम ऑटोनॉमस भाग में प्रवेश करते हैं। ऐसा होने पर मैं अपने कंट्रोलर का उपयोग नहीं कर सकता। एक बार यह शुरू हो जाने के बाद, यह ड्राइवर कंट्रोल वाले हिस्से में चला जाएगा जहां मैं वास्तव में कंट्रोलर का उपयोग करके अपने रोबोट को नियंत्रित कर सकता हूं और यह एक मिनट और 45 सेकंड तक चलेगा जब तक कि यह समाप्त नहीं हो जाता। फिर, जैसा कि मैंने पहले बताया, फील्ड कंट्रोल सिस्टम का उपयोग करके, सभी रोबोट एक ही समय पर शुरू और बंद होंगे।
[संगीत संकेत]
ठीक है। आइए इस वीडियो में हमने जिन विषयों पर चर्चा की है, उनका एक संक्षिप्त पुनरावलोकन कर लेते हैं। हमने ब्लॉक्स प्रतियोगिता टेम्पलेट को देखा। इसके तीन अलग-अलग भाग हैं। जब यह शुरू हुआ, तो यह पूर्व-स्वायत्त अवस्था में था, जो हर हाल में चलता रहेगा। इसका उपयोग वेरिएबल्स को इनिशियलाइज़ करने, शायद जाइरोस्कोप को सेट अप और कैलिब्रेट करने, ब्रेन स्क्रीन के माध्यम से धन्यवाद प्रिंट करने, मोटर पोजीशन जैसे कि होल्ड या यहां तक कि हाथ को किसी विशेष स्थिति तक उठाने के लिए किया जाता है। यह सब मैच के स्वायत्त भाग से पहले किया जाता है।
फिर हम स्वायत्त भाग में आते हैं, वह स्वायत्त स्टैक जिसे हमने वहां देखा था, जहां 15 सेकंड के लिए रोबोट पूरी तरह से कोड द्वारा चलता है, नियंत्रक या ड्राइवर के साथ कोई बातचीत नहीं करता है। एक बार वह सेक्शन पूरा हो जाने के बाद, हम ड्राइवर कंट्रोल वाले हिस्से में जाते हैं, जिसे या तो डिवाइस कॉन्फ़िगरेशन के माध्यम से नियंत्रित किया जा सकता है, जिसे हमने पहले देखा था, जिसमें कुछ मोटर्स और अन्य चीजों को जॉयस्टिक बटन और कंट्रोलर पर इसी तरह की चीजों को असाइन करना शामिल है, और साथ ही उस विशिष्ट स्टैक के माध्यम से भी जहां मैं अपने रोबोट के लिए थोड़ा और कस्टम कोड लिख सकता हूं। आप इनमें से किसी एक या दोनों का उपयोग कर सकते हैं।
और जैसा कि मैंने पहले बताया, यदि आप अपने प्रोग्राम में उन तीनों सेक्शन में से किसी का भी उपयोग नहीं कर रहे हैं, तो आप इवेंट ब्लॉक में स्टैक को खाली भी छोड़ सकते हैं।
देखने के लिए धन्यवाद और मुझे उम्मीद है कि इससे आपको प्रतियोगिता टेम्पलेट को बेहतर ढंग से समझने में मदद मिलेगी।
फिर से, इस टेम्पलेट का उपयोग करने का कारण यह सुनिश्चित करना है कि मैच के दौरान सभी रोबोट एक ही समय पर शुरू और बंद हों। ऐसा इसलिए है क्योंकि मैदान पर चार रोबोट होंगे, और हम यह सुनिश्चित करना चाहते हैं कि सभी रोबोट एक ही समय पर शुरू और बंद हों।
मुझे उम्मीद है कि यह सारी जानकारी आपके लिए उपयोगी साबित हुई होगी क्योंकि आप प्रतियोगिता टेम्पलेट के बारे में जान रहे हैं और वास्तव में वीईएक्स रोबोटिक्स प्रतियोगिता मैच में भाग लेने के लिए तैयार हो रहे हैं। मैं बहुत उत्साहित हूँ।
बधाई हो, आपने चौथा अध्याय पूरा कर लिया है, और मैं आपको अगले वीडियो में मिलूंगा।
अब, इससे पहले कि हम सब कुछ विस्तार से जानें, आइए पहले सामग्रियों के बारे में बात कर लेते हैं। मैं यहां एडवांस्ड ट्रेनिंगबॉट का उपयोग करने जा रहा हूं ताकि मैं आर्म और क्लॉ की कुछ कार्यक्षमताओं को प्रदर्शित कर सकूं। मैं इस प्रतियोगिता टेम्पलेट को दिखाने के लिए एक कंट्रोलर, एक गेम ऑब्जेक्ट पीस और VEXcode V5 का भी उपयोग करूंगा। इस वीडियो के लिए आपको किसी भी सामग्री की आवश्यकता नहीं है। मैं अभी आपके लिए कुछ प्रदर्शन करने जा रहा हूँ। तो फिर से बता दें, इस विशेष पाठ के लिए आपको किसी भी चीज की बिल्कुल भी आवश्यकता नहीं है।
आइए इस पाठ के उद्देश्य के बारे में बात करते हैं। हम ब्लॉक्स कॉम्पिटिशन टेम्प्लेट के विभिन्न भागों पर चर्चा करेंगे, विशेष रूप से तीन भागों पर: 'जब शुरू हुआ' (जो हमारा पूर्व-स्वायत्त भाग है), 'स्वायत्त भाग' और 'चालक नियंत्रण भाग'। मैं यहां दिए गए उदाहरण कोड में उन चीजों के बारे में बात करने जा रहा हूं, और फिर हम वास्तव में इसका परीक्षण करेंगे और अपने रोबोट पर अपने कंट्रोलर का उपयोग करके इसकी कार्यक्षमता देखेंगे ताकि यह पता चल सके कि प्रतियोगिता टेम्पलेट व्यवहार में कैसा दिखता है।
अब चलिए, अपने प्रोजेक्ट के उदाहरण पर आगे बढ़ते हैं।
[संगीत संकेत]
ठीक है, प्रतियोगिता टेम्पलेट देखने के लिए, मैं फ़ाइल, ओपन एग्जांपल्स, टेम्पलेट्स और फिर प्रतियोगिता टेम्पलेट पर जाऊंगा। यहां कुछ बातें हैं। सबसे पहले, फिर से, ये तीन खंड। मेरे इस उदाहरण में आगे बढ़ने से पहले मैं एक बात बताना चाहता हूँ कि इन सबमें डेटा भरने से पहले हमें सबसे पहले यहाँ डिवाइस कॉन्फ़िगरेशन जोड़ना होगा। तो फिर से, यदि आप 2-मोटर ड्राइवट्रेन का उपयोग कर रहे हैं या आपके पास आर्म या क्लॉ मोटर्स या इस तरह की कोई भी चीज है, तो आपको पहले यह सुनिश्चित करना होगा कि आप उन्हें जोड़ें ताकि ब्लॉक बाईं ओर दिखाई दें। इससे आप इन अनुभागों को दोबारा भर सकेंगे।
जैसे ही मैं प्रतियोगिता टेम्पलेट खोलता हूं, मुझे यह सुनिश्चित करना होगा कि मैं अपने डिवाइस कॉन्फ़िगरेशन को जोड़ दूं। इसके बाद, मैं जिस एक बात का जिक्र करना चाहता हूं, वह यह है कि ड्राइवर कंट्रोल वाले हिस्से में, आप देख सकते हैं कि फॉरएवर ब्लॉक मौजूद है। इसका कारण यह है कि ड्राइवर कंट्रोल वाले हिस्से के लिए, जब हम कंट्रोलर का उपयोग कर रहे होते हैं, तो हम लगातार यह जांचना चाहते हैं कि बटन दबाए गए हैं या जॉयस्टिक को हिलाया गया है। इसलिए उसमें फॉरएवर ब्लॉक डिफ़ॉल्ट रूप से मौजूद होता है। यदि आप किसी विशेष कारण से इसे हटाना चाहते हैं, तो आप हटा सकते हैं, या यदि आप उस स्टैक का उपयोग नहीं कर रहे हैं और केवल डिवाइस कॉन्फ़िगरेशन का उपयोग कर रहे हैं, तो आप इसे यथावत छोड़ सकते हैं।
ठीक है। आइए इन तीनों खंडों को देखें और मेरे द्वारा बनाए गए एक उदाहरण की मदद से इनके वास्तविक अर्थ को समझें।
[संगीत संकेत]
सबसे पहले, मैं यह बताना चाहता हूं कि हमारे प्रतियोगिता टेम्पलेट के तीन मुख्य भाग हैं। पहला चरण वह है जब इसकी शुरुआत हुई थी या पूर्व-स्वायत्त अवस्था। दूसरा भाग स्वायत्त होने पर या स्वायत्त हिस्सा है, और तीसरा भाग चालक नियंत्रण होने पर या चालक नियंत्रण हिस्सा है। ये तीनों इवेंट या हैट ब्लॉक, इस प्रतियोगिता टेम्पलेट के अलग-अलग हिस्सों को निष्पादित करते हैं।
आइए प्रत्येक अनुभाग के बारे में बात करते हैं। पूर्व-स्वायत्त भाग या 'जब शुरू किया जाता है' वाला भाग, प्रतियोगिता टेम्पलेट प्रोजेक्ट के चलने के तुरंत बाद निष्पादित होगा। इसका उपयोग किसी भी प्रारंभिक चरण को निर्धारित करने के लिए सबसे अच्छा होता है।
इस पाठ में मेरे साथ जुड़ने के लिए धन्यवाद। मुझे उम्मीद है कि आपको यह उपयोगी और जानकारीपूर्ण लगा होगा। यदि आपके कोई प्रश्न हों तो बेझिझक हमसे संपर्क करें। हैप्पी कोडिंग और आपके VEX रोबोटिक्स प्रोजेक्ट्स के लिए शुभकामनाएँ!
तो अगर मुझे अपने स्वायत्त भाग के शुरू होने से पहले ब्रेन स्क्रीन पर कुछ प्रिंट करने की आवश्यकता है, अगर मुझे जाइरो को कैलिब्रेट करने की आवश्यकता है, अगर मैं इस विशिष्ट उदाहरण में डेटा प्रिंट करना चाहता हूं, क्योंकि मैं आर्म और क्लॉ का उपयोग कर रहा हूं, तो मैं उनके मोटर्स को होल्ड पर सेट कर दूंगा। इसका मतलब यह है कि अगर मैं अपना हाथ ऊपर उठाता हूं या अपना पंजा खोलता हूं, तो मोटरें उसी विशिष्ट स्थिति में रहेंगी और गुरुत्वाकर्षण के कारण नीचे नहीं आएंगी। तो मैं अपने मोटर्स के लिए कुछ पूर्व-स्वायत्त धारणाएँ निर्धारित कर रहा हूँ। इस विशेष उदाहरण में, हम देखेंगे कि प्रदर्शन देखने पर यह कैसा दिखता है।
संगीत संकेत
तो अब जब मेरे पास वह जानकारी है, तो यह हमारा "कब शुरू हुआ" वाला पूर्व-स्वायत्त भाग है। अगला भाग हमारा स्वायत्त हिस्सा है। मैच का स्वायत्त भाग 15 सेकंड लंबा होगा, और कोड का यह विशिष्ट खंड मैच के स्वायत्त भाग के लिए चलेगा। जैसे ही प्रतियोगिता टेम्पलेट चलाया जाएगा, वह पूर्व-स्वायत्त "कब शुरू हुआ" वाला हिस्सा हर हाल में शुरू हो जाएगा। इसके बाद 15 सेकंड का स्वचालित चक्र चलेगा। हमने फील्ड कंट्रोल सिस्टम के बारे में बात की और यह कैसे नियंत्रित करेगा कि सभी रोबोट कब शुरू और बंद होंगे, कब मैच में यह विशिष्ट भाग चलेगा, कब कोड की यह पंक्ति चलेगी।
अब, मेरे इस विशिष्ट उदाहरण के लिए, हमारा रोबोट पंजे में एक गेम ऑब्जेक्ट के साथ शुरुआत करेगा। इसके बाद यह वस्तु के चारों ओर बंद हो जाएगा, हवा में ऊपर उठेगा, 200 मिलीमीटर आगे बढ़ेगा, भुजा को नीचे करेगा और हमारी खेल वस्तु को नीचे गिरा देगा। उदाहरण के लिए, यह मैच की शुरुआत में किसी मोहरे को स्कोर करने का अनुकरण कर सकता है। तो यही सब मेरे स्वायत्त हिस्से के दौरान होने वाला है। फिर से, स्वायत्त भाग का अर्थ है कि मेरे रोबोट पर नियंत्रक प्रभाव के साथ मेरे पास कोई ड्राइवर नियंत्रण नहीं हो सकता है। इस दौरान सब कुछ स्वायत्त होता है। सब कुछ कोड के माध्यम से किया जाता है।
यहां तीसरे हिस्से को देखें तो मुझे ड्राइवर कंट्रोल दिखाई दे रहा है। अब, मैं एक बात बताना चाहता हूं कि हमारे डिवाइस कॉन्फ़िगरेशन में, मैं स्पष्ट रूप से अपने ड्राइवट्रेन और कंट्रोलर को कॉन्फ़िगर कर सकता हूं, जिसका अर्थ है कि मैं अपने जॉयस्टिक को अलग-अलग ड्राइवट्रेन कॉन्फ़िगरेशन असाइन कर सकता हूं और मैं अलग-अलग मोटरों को नियंत्रित करने के लिए अलग-अलग बटन भी असाइन कर सकता हूं। हालांकि, मान लीजिए कि मेरे कंट्रोलर पर बटन खत्म हो गए हैं या मैं अलग-अलग चीजों को नियंत्रित करना चाहता हूं। मैं इस "व्हेन ड्राइवर कंट्रोल" इवेंट ब्लॉक में कुछ ऐसी चीजें जोड़ सकता हूं जो मैं करना चाहता हूं, लेकिन शायद डिवाइस कॉन्फ़िगरेशन में मुझे उन तक पहुंच न हो, या शायद मैं अपने ड्राइवट्रेन की गति निर्धारित करना चाहता हूं, या इस तरह की अन्य चीजें।
तो ड्राइवर कंट्रोल वाले हिस्से के लिए मेरा विशिष्ट कोड उदाहरण यहाँ फिर से है, यह मुझे अपने कंट्रोलर पर एक बटन के साथ अपने क्लॉ को नियंत्रित करने की अनुमति देगा। हम देखेंगे कि यह कैसा दिखता है। तो फिर से, जब मैं ड्राइवर कंट्रोल भाग का उपयोग कर रहा होता हूं, तो मैं कंट्रोलर के साथ डिवाइस कॉन्फ़िगरेशन और ड्राइवर कंट्रोल भाग दोनों का एक साथ उपयोग कर सकता हूं। या मैं दोनों में से किसी एक का उपयोग कर सकता हूँ। यदि आप इन तीनों स्टैक में से किसी का भी उपयोग नहीं कर रहे हैं, चाहे वह प्री-ऑटोनॉमस "स्टार्ट होने पर", ऑटोनॉमस हो या ड्राइवर कंट्रोल हो, तो आप इन्हें खाली छोड़ सकते हैं।
संगीत संकेत
ठीक है। अब जब यह सब कहा जा चुका है, तो आइए वास्तव में देखते हैं कि जब मैं इसे अपने रोबोट पर चलाऊंगा तो यह कैसा दिखेगा। ठीक है। चलिए, इसे मेरे कंट्रोलर पर देखते हैं। मैं प्रोग्राम्स में जा सकता हूं और वहां मुझे अपना कॉम्पिटिशन टेम्प्लेट प्रोजेक्ट दिखाई देगा जिसे मैंने पहले ही अपने ब्रेन में डाउनलोड कर लिया है। और अगर मैं उनमें से किसी एक पर स्क्रॉल करूं, तो वहां टाइमर के साथ दौड़ने का विकल्प दिखाई देता है। यह उस फील्ड कंट्रोल सिस्टम का अनुकरण करेगा जिसके बारे में मैंने पहले बात की थी, कि कैसे सब कुछ उस फील्ड कंट्रोल सिस्टम द्वारा नियंत्रित होता है। तो जब प्रतियोगिता परियोजना वास्तव में शुरू होती है, जब मैच का स्वायत्त भाग, जब ड्राइवर नियंत्रण भाग, जब मैं इसे नियंत्रित करता हूं, तो मैं नियंत्रक पर इस समयबद्ध रन का उपयोग करके इसका अनुकरण कर सकता हूं।
धन्यवाद नोट
इस प्रक्रिया को मेरे साथ समझने के लिए समय निकालने के लिए धन्यवाद। मुझे उम्मीद है कि यह प्रदर्शन मददगार साबित हुआ होगा।
अंतिम संदेश
यदि आपके कोई प्रश्न हों या आपको और स्पष्टीकरण की आवश्यकता हो तो बेझिझक हमसे संपर्क करें। हैप्पी कोडिंग और आपके रोबोटिक्स प्रोजेक्ट्स के लिए शुभकामनाएँ!
तो अगर मैं उसे चुनता हूं, तो यह मुझे यहां स्वायत्त भाग के लिए 15 सेकंड, ड्राइवर नियंत्रण के लिए एक मिनट, 45 सेकंड बताएगा। और जब मैं इस बटन को दोबारा दबाऊंगा, तो यह वास्तव में चालू हो जाएगा। जब मैं इसे शुरू करूंगा, तो यह 3-2-1 की उलटी गिनती करेगा, बिल्कुल वैसे ही जैसे आप किसी मैच में करते हैं। और फिर हम शुरू करेंगे।
तो जैसे ही मैं स्टार्ट पर क्लिक करूंगा, ऑटोनॉमस हिस्सा चलना शुरू हो जाएगा, या यूं कहें कि प्री-ऑटोनॉमस हिस्सा पहले शुरू होगा, चाहे कुछ भी हो जाए। फिर यह तुरंत ही स्वायत्त भाग को शुरू कर देगा। तो जैसे ही यह स्वचालित रूप से काम करना शुरू करेगा, मैं आपको दिखा दूंगा। अगर मैं रोबोट को चलाने के लिए अपने कंट्रोलर को हिलाता भी हूं, तो भी वह नहीं चलेगा क्योंकि स्वायत्त अवस्था के दौरान, मैं कंट्रोलर का उपयोग करके अपने रोबोट को नियंत्रित नहीं कर सकता।
[संगीत संकेत]
तो चलिए देखते हैं कि वह खास हिस्सा असल में कैसे होता है। ठीक है, चलिए शुरू करते हैं। ठीक है। अब, स्वायत्त भाग में मेरे पास अभी भी कुछ सेकंड बचे हैं। आप देख सकते हैं कि जब मैं अपना कंट्रोलर हिला रहा हूं, तब भी कुछ नहीं हो रहा है क्योंकि स्वायत्त अवस्था के दौरान मैं कंट्रोलर का उपयोग करके अपने रोबोट को नियंत्रित नहीं कर सकता। लेकिन जैसे ही यह ड्राइवर कंट्रोल मोड में आता है, अब मैं वास्तव में अपने रोबोट को नियंत्रित कर सकता हूं।
तो मैं यहां आगे बढ़ूंगा क्योंकि याद रहे, ड्राइवर कंट्रोल वाले हिस्से के लिए प्रोजेक्ट में आने पर, मैं इन अलग-अलग हिस्सों को नियंत्रित कर सकता हूं। तो मेरे पास एक मिनट और 25 सेकंड बचे हैं। मैं अब ड्राइवर कॉन्फ़िगरेशन के आधार पर गाड़ी चलाऊंगा, यह ड्राइवट्रेन को नियंत्रित करता है, यह आर्म को नियंत्रित करता है, यह बटन क्लॉ को नियंत्रित करता है। एक बटन दबाने से मैं वस्तुओं को पकड़ सकूंगा। मैं यहां दो बटन दबाकर भुजा को ऊपर और नीचे कर सकता हूं। क्लॉ को नियंत्रित करने के लिए एक बटन। बंद, खुला।
अब, यह डिवाइस कॉन्फ़िगरेशन में एक विकल्प नहीं है, इसलिए मुझे वह कोड कस्टम तरीके से बनाना पड़ा, और यही कारण है कि मैंने वहां ड्राइवर कंट्रोल इवेंट ब्लॉक का उपयोग किया है जिसे आप उस विशेष स्टैक में देख सकते हैं। यह मेरे ड्राइवर कंट्रोल वाले हिस्से के बाकी बचे समय के लिए उलटी गिनती जारी रखेगा। लेकिन जैसा कि आप देख सकते हैं, मैं इसे रोकने जा रहा हूं। ड्राइवर कंट्रोल चरण समाप्त होने के बाद, सब कुछ बंद हो जाता है और मैच यहीं समाप्त हो जाता है।
आप टेम्पलेट के तीन अलग-अलग भाग देख सकते हैं। एक बार फिर, हम प्री-ऑटोनॉमस सेक्शन से गुजरते हैं, जो शुरू होने पर अपने आप चलेगा, चाहे हम ऑटोनॉमस या ड्राइवर कंट्रोल का उपयोग कर रहे हों। फिर हम ऑटोनॉमस भाग में प्रवेश करते हैं। ऐसा होने पर मैं अपने कंट्रोलर का उपयोग नहीं कर सकता। एक बार यह शुरू हो जाने के बाद, यह ड्राइवर कंट्रोल वाले हिस्से में चला जाएगा जहां मैं वास्तव में कंट्रोलर का उपयोग करके अपने रोबोट को नियंत्रित कर सकता हूं और यह एक मिनट और 45 सेकंड तक चलेगा जब तक कि यह समाप्त नहीं हो जाता। फिर, जैसा कि मैंने पहले बताया, फील्ड कंट्रोल सिस्टम का उपयोग करके, सभी रोबोट एक ही समय पर शुरू और बंद होंगे।
[संगीत संकेत]
ठीक है। आइए इस वीडियो में हमने जिन विषयों पर चर्चा की है, उनका एक संक्षिप्त पुनरावलोकन कर लेते हैं। हमने ब्लॉक्स प्रतियोगिता टेम्पलेट को देखा। इसके तीन अलग-अलग भाग हैं। जब यह शुरू हुआ, तो यह पूर्व-स्वायत्त अवस्था में था, जो हर हाल में चलता रहेगा। इसका उपयोग वेरिएबल्स को इनिशियलाइज़ करने, शायद जाइरोस्कोप को सेट अप और कैलिब्रेट करने, ब्रेन स्क्रीन के माध्यम से धन्यवाद प्रिंट करने, मोटर पोजीशन जैसे कि होल्ड या यहां तक कि हाथ को किसी विशेष स्थिति तक उठाने के लिए किया जाता है। यह सब मैच के स्वायत्त भाग से पहले किया जाता है।
फिर हम स्वायत्त भाग में आते हैं, वह स्वायत्त स्टैक जिसे हमने वहां देखा था, जहां 15 सेकंड के लिए रोबोट पूरी तरह से कोड द्वारा चलता है, नियंत्रक या ड्राइवर के साथ कोई बातचीत नहीं करता है। एक बार वह सेक्शन पूरा हो जाने के बाद, हम ड्राइवर कंट्रोल वाले हिस्से में जाते हैं, जिसे या तो डिवाइस कॉन्फ़िगरेशन के माध्यम से नियंत्रित किया जा सकता है, जिसे हमने पहले देखा था, जिसमें कुछ मोटर्स और अन्य चीजों को जॉयस्टिक बटन और कंट्रोलर पर इसी तरह की चीजों को असाइन करना शामिल है, और साथ ही उस विशिष्ट स्टैक के माध्यम से भी जहां मैं अपने रोबोट के लिए थोड़ा और कस्टम कोड लिख सकता हूं। आप इनमें से किसी एक या दोनों का उपयोग कर सकते हैं।
और जैसा कि मैंने पहले बताया, यदि आप अपने प्रोग्राम में उन तीनों सेक्शन में से किसी का भी उपयोग नहीं कर रहे हैं, तो आप इवेंट ब्लॉक में स्टैक को खाली भी छोड़ सकते हैं।
देखने के लिए धन्यवाद और मुझे उम्मीद है कि इससे आपको प्रतियोगिता टेम्पलेट को बेहतर ढंग से समझने में मदद मिलेगी।
फिर से, इस टेम्पलेट का उपयोग करने का कारण यह सुनिश्चित करना है कि मैच के दौरान सभी रोबोट एक ही समय पर शुरू और बंद हों। ऐसा इसलिए है क्योंकि मैदान पर चार रोबोट होंगे, और हम यह सुनिश्चित करना चाहते हैं कि सभी रोबोट एक ही समय पर शुरू और बंद हों।
मुझे उम्मीद है कि यह सारी जानकारी आपके लिए उपयोगी साबित हुई होगी क्योंकि आप प्रतियोगिता टेम्पलेट के बारे में जान रहे हैं और वास्तव में वीईएक्स रोबोटिक्स प्रतियोगिता मैच में भाग लेने के लिए तैयार हो रहे हैं। मैं बहुत उत्साहित हूँ।
बधाई हो, आपने चौथा अध्याय पूरा कर लिया है, और मैं आपको अगले वीडियो में मिलूंगा।
Learning Objectives
Learning Objectives Section
- VEXcode V5 में ब्लॉक्स प्रतियोगिता टेम्पलेट के मुख्य तत्वों को परिभाषित करें, जिसमें प्रारंभ होने पर, स्वायत्त और चालक नियंत्रण अनुभाग शामिल हैं।
Summary
Summary Section
यह VEX V5 प्रशिक्षण पाठ्यक्रम के अध्याय 4 के परिचय का दूसरा वीडियो है। यदि आपने अभी तक पहला वीडियो नहीं देखा है, वापस जाकर पाठ 1: वीईएक्स रोबोटिक्स प्रतियोगिता मैचकी यांत्रिकी देखें।
पाठ 2 में, आप VEXcode V5 में ब्लॉक्स प्रतियोगिता टेम्पलेट के तीन मुख्य तत्वों में से प्रत्येक के बारे में एक उदाहरण देखकर जानेंगे।
बधाई हो, आपने VEX V5 प्रशिक्षण पाठ्यक्रम का परिचय सफलतापूर्वक पूरा कर लिया है!