VEX IQ स्मार्ट मोटर में VEXcode IQ में कोडिंग करते समय उपयोग करने के लिए कई फ़ंक्शन हैं। यह VEX IQ का उपयोग करके बनाए गए आर्म्स, क्लॉज़ और इनटेक के साथ-साथ ड्राइवट्रेन और अन्य तंत्रों को कोड करते समय उपयोगी हो सकता है। यह समझना कि मोटरों को किस प्रकार कोडित किया जा सकता है, इससे परियोजनाओं के रुकने या मोटरों के अपेक्षित रूप से काम न करने जैसी समस्याओं को कम करने में मदद मिलेगी।
मोटर एनकोडर
VEX IQ स्मार्ट मोटर न केवल विद्युत ऊर्जा को यांत्रिक ऊर्जा में परिवर्तित करता है, जैसा कि अधिकांश मोटर करते हैं, बल्कि इसमें ऐसी विशेषताएं भी हैं जो अधिकांश मोटरों में नहीं होती हैं, जो इसे "स्मार्ट" बनाती हैं। इसकी मुख्य विशेषताओं में से एक है क्वाडरेचर एनकोडर। यह एनकोडर मोटर के अंदरूनी भाग पर लगाया जाता है ताकि मोटर शाफ्ट की गति और/या स्थिति को ट्रैक किया जा सके।
VEX IQ स्मार्ट मोटर के एनकोडर की रिपोर्ट से यह जानना संभव हो जाता है:
- मोटर के घूमने की दिशा (आगे/पीछे या खुली/बंद)
- मोटर की स्थिति और मोटर के घुमाव और स्थिति की मात्रा (घुमावों या डिग्री में)
- मोटर के घूमने की गति (समय के साथ एनकोडर की स्थिति पर आधारित)
क्योंकि एनकोडर मोटर की स्थिति की रिपोर्ट करता है, इसलिए इसका उपयोग VEXcode IQ के भीतर कई मोशन और सेंसिंग कमांड को कार्य करने के लिए परदे के पीछे की गणनाओं में किया जा सकता है।
व्यक्तिगत मोटर्स कोडिंग
VEXcode IQ में व्यक्तिगत स्मार्ट मोटर्स को कोड करना शुरू करने से पहले, आपको मोटर को कॉन्फ़िगर करना होगा। व्यक्तिगत मोटरों का उपयोग अक्सर अतिरिक्त तंत्रों जैसे कि इनटेक, आर्म्स और क्लॉज़ के लिए किया जाता है। हालाँकि, सभी जानकारी अभी भी व्यक्तिगत मोटरों का उपयोग करने वाले अन्य तंत्रों पर लागू होती है।
VEXcode IQ में अपनी व्यक्तिगत मोटर को कॉन्फ़िगर करने के लिए इस आलेख में दिए गए चरणों का पालन करें।
एकल मोटर कॉन्फ़िगर होने पर, उस मोटर को नियंत्रित करने के आदेश टूलबॉक्स में दिखाई देंगे। आप देखेंगे कि विभिन्न प्रकार के आदेश हैं: प्रतीक्षारत और गैर-प्रतीक्षारत।
प्रतीक्षा बनाम गैर-प्रतीक्षा आदेश
ध्यान दें कि यहां सभी चित्र ब्लॉक दर्शाते हैं। इन सभी परियोजनाओं को पायथन या सी++ में पुनः बनाया जा सकता है और इनमें ब्लॉक्स के समान कार्यक्षमता होती है।
प्रतीक्षा आदेश परियोजना को तब तक जारी रखने से रोकते हैं जब तक कि व्यवहार पूरा न हो जाए। इनमें [स्पिन फॉर] और [स्पिन टू पोजीशन] जैसे कमांड शामिल हैं।
यहां दिखाया गया प्रोजेक्ट क्लॉबोट (2-मोटर) टेम्पलेट का उपयोग करता है और सभी कमांड प्रतीक्षा कर रहे हैं। अतः श्रृंखला में, पंजा मोटर 90 डिग्री पर बंद हो जाएगी, रोबोट रिवर्स में चलेगा, फिर भुजा घूमकर 180 डिग्री की स्थिति में पहुंच जाएगी।
इसके विपरीत, गैर-प्रतीक्षा आदेश होते हैं। एक गैर-प्रतीक्षा आदेश अनिश्चित काल तक या किसी अन्य व्यवहार में परिवर्तन करने के लिए कहे जाने तक व्यवहार को निष्पादित करेगा। इनमें [स्पिन] जैसे कमांड शामिल हैं।
यहां दर्शाई गई परियोजना में एक इनटेक के साथ बेसबॉट का उपयोग किया गया है। यहां इंटेक मोटर घूमना शुरू हो जाएगा। [Wait] कमांड एक प्रतीक्षा कमांड है, इसलिए इनटेक तब तक घूमता रहेगा जब तक 2 सेकंड पूरे नहीं हो जाते, फिर प्रोजेक्ट में अगले कमांड पर चला जाएगा जो कि एक [Stop] कमांड है। तब मोटर घूमना बंद हो जाएगा।
मोटर टाइमआउट
मोटर को भुजा या पंजे के भाग के रूप में कोड करते समय, प्रतीक्षारत और गैर-प्रतीक्षारत ब्लॉकों के बीच अंतर को याद रखना महत्वपूर्ण है और यह भी कि वे आपके रोबोट की गति को किस प्रकार प्रभावित करेंगे। मोटर टाइमआउट आपको मोटर को इच्छित लक्ष्य स्थिति तक पहुंचने के लिए समय सीमा निर्धारित करने की अनुमति देता है। यदि समय समाप्त होने पर वह स्थिति प्राप्त नहीं होती है, तो मोटर घूमने का प्रयास करना बंद कर देगी और परियोजना अगले आदेश पर चली जाएगी।
इस उदाहरण में, मोटर टाइमआउट 2 सेकंड पर सेट है। यदि पंजा 2 सेकंड के भीतर 90 डिग्री पर नहीं पहुंचता है, तो मोटर 2 सेकंड के निशान पर घूमना बंद कर देगी, फिर अगले आदेश पर जाएगी और आगे बढ़ेगी।
यदि आप इस बात को लेकर अनिश्चित हैं कि मोटर को कितनी दूर तक ले जाना है, तो सेंसर डैशबोर्ड का उपयोग करें। डैशबोर्ड डिग्री और चक्कर में मोटर की स्थिति की रिपोर्ट करता है, इसलिए जैसे ही आप मोटर को हिलाते हैं (जैसे कि पंजे को खोलना और बंद करना) संख्याएं बदल जाएंगी। इस परीक्षण का उपयोग यह निर्धारित करने के लिए करें कि पंजे को बंद करने, हाथ को ऊपर उठाने, इनटेक को घुमाने आदि के लिए कितने डिग्री या घुमाव की आवश्यकता है।
सेंसर डैशबोर्ड का उपयोग कैसे करें, यह जानने के लिए ये लेख देखें।
ड्राइवट्रेन के भाग के रूप में स्मार्ट मोटर्स की कोडिंग
VEXcode IQ में ड्राइवट्रेन को कोड करना शुरू करने से पहले, आपको प्रयुक्त मोटर्स सहित ड्राइवट्रेन को कॉन्फ़िगर करना होगा। मोटर्स को ड्राइवट्रेन के भीतर कॉन्फ़िगर किया गया है ताकि यह सुनिश्चित किया जा सके कि उन्हें [ड्राइव] और [ड्राइव फॉर] जैसे समान कमांड के साथ नियंत्रित किया जाए।
प्रतीक्षा और गैर-प्रतीक्षा आदेश
ड्राइवट्रेन को कोड करते समय, रोबोट की गति को नियंत्रित करने के लिए प्रतीक्षा और गैर-प्रतीक्षा आदेश उपलब्ध होते हैं।
प्रतीक्षा आदेश परियोजना को तब तक जारी रखने से रोकते हैं जब तक कि व्यवहार पूरा न हो जाए। इनमें [ड्राइव फॉर] [टर्न फॉर], और [टर्न टू हेडिंग] जैसे कमांड शामिल हैं।
यहां दिखाया गया प्रोजेक्ट क्लॉबोट (2-मोटर) टेम्पलेट का उपयोग करता है और सभी कमांड प्रतीक्षा कर रहे हैं। अतः श्रृंखला में, रोबोट 200 मिलीमीटर तक आगे बढ़ेगा, फिर ड्राइवट्रेन का उपयोग करके दाईं ओर मुड़ जाएगा।
इसके विपरीत, गैर-प्रतीक्षा आदेश होते हैं। एक गैर-प्रतीक्षा आदेश अनिश्चित काल तक या किसी अन्य व्यवहार में परिवर्तन करने के लिए कहे जाने तक व्यवहार को निष्पादित करेगा। इनमें [ड्राइव] जैसे कमांड शामिल हैं।
यहां दिखाया गया प्रोजेक्ट बेसबॉट का उपयोग करता है। यहां रोबोट तब तक अनिश्चित काल तक आगे बढ़ता रहेगा जब तक बम्पर स्विच दबाया नहीं जाता। इसके बाद परियोजना अगले आदेश पर आगे बढ़ेगी और रोबोट चलना बंद कर देगा तथा 90 डिग्री तक दाईं ओर मुड़ जाएगा।