नियंत्रक का उपयोग करके किसी कार्य को पूरा करने के लिए अपने रोबोट को चलाना और ले जाना आसान हो सकता है। हालाँकि, ड्राइव प्रोग्राम का उपयोग करने की अपनी सीमाएँ हैं, और आपके रोबोट निर्माण या कार्य के आधार पर, आपको अलग-अलग नियंत्रणों की आवश्यकता हो सकती है। नियंत्रक को कोड करने से आप नियंत्रक को अनुकूलित कर सकते हैं, जिससे यह आपके रोबोट और कार्य के लिए बेहतर रूप से उपयुक्त हो सके। VEXcode IQ में नियंत्रक को कोड करने के कई तरीके हैं। प्रत्येक के अपने फायदे और सीमाएं हैं, और कुछ विधियां वांछित परिणाम के आधार पर कुछ स्थितियों के लिए बेहतर अनुकूल हैं।

यह आलेख आपको VEXcode IQ में नियंत्रक को कस्टम कोडिंग के लिए तीन अलग-अलग विकल्पों के बारे में बताएगा। प्रत्येक विधि का वर्णन उसके लाभों, सीमाओं और उपयोग के उदाहरण के साथ किया जाएगा, ताकि विधि चुनते समय आपको मार्गदर्शन मिल सके। इस लेख के प्रयोजनों के लिए, दिखाए गए सभी कोड उदाहरण क्लॉबोट के लिए बनाए गए थे। हालाँकि, समान अवधारणाओं को पर पाए जाने वाले कई अन्य बिल्ड और कस्टम बिल्ड पर लागू किया जा सकता है।

विकल्प 1: डिवाइस कॉन्फ़िगरेशन में बटन निर्दिष्ट करना

यह विकल्प तब बहुत अच्छा होता है जब आप बेसबॉट या क्लॉबॉट जैसे मानक बिल्ड का उपयोग कर रहे हों, और उसे शीघ्रता से चलाना चाहते हों।

यह विकल्प आपको डिवाइस कॉन्फ़िगरेशन में नियंत्रक पर बटनों को मोटर, ड्राइवट्रेन या मोटर समूह निर्दिष्ट करने देता है। डिवाइस कॉन्फ़िगरेशन में नियंत्रक को बटन असाइन करने के तरीके के बारे में अधिक जानकारी के लिए, यह आलेख देखें.

VEX IQ ब्लॉक ट्यूटोरियल इंटरफ़ेस का स्क्रीनशॉट, शैक्षिक रोबोटिक्स के लिए डिज़ाइन किए गए प्रोग्रामिंग ब्लॉक और टूल को प्रदर्शित करता है, जिसका उद्देश्य शुरुआती लोगों को VEX IQ प्लेटफ़ॉर्म को प्रभावी ढंग से समझने और उपयोग करने में मदद करना है।

विकल्प 1 का सारांश: डिवाइस कॉन्फ़िगरेशन में बटन निर्दिष्ट करना

लाभ

सीमाएँ

उदाहरण स्थिति

  • बिना कोडिंग के त्वरित सेटअप
  • सबसे सरल विधि
  • आसानी से समायोज्य
  • बटनों को अलग-अलग मोटर, एक मानक ड्राइवट्रेन और मोटर समूह असाइन कर सकते हैं
  • बटन असाइनमेंट नियंत्रक पर बटनों की संख्या तक सीमित हैं
  • ड्राइवट्रेन में 4 मोटरों से अधिक नहीं हो सकता या उसे अनुकूलित नहीं किया जा सकता (केवल मानक ड्राइव समर्थित है, H ड्राइव, होलोनोमिक या अन्य कस्टम ड्राइवट्रेन समर्थित नहीं है)
  • किसी मानक बिल्ड जैसे बेसबॉट, क्लॉबॉट, या उन मानक बिल्डों में सरल संशोधन में हेरफेर करना। उदाहरण के लिए, एक बेसबोट जिसमें आगे की ओर एक इनटेक लगा होता है जिसे मोटर समूह द्वारा नियंत्रित किया जाता है।
  • रोबोट पर विभिन्न व्यवहारों के अनुरूप बटनों को बिना अधिक कोडिंग के शीघ्रता से नियंत्रित करना

विकल्प 2: फॉरएवर लूप का उपयोग करना

यदि आप मानक बिल्ड के बजाय कस्टम बिल्ड का उपयोग कर रहे हैं, या अपने कंट्रोलर में अधिक अनुकूलन करना चाहते हैं, तो यह विकल्प अच्छा है। फॉरएवर लूप का उपयोग करना आपके कंट्रोलर के लिए कस्टम कोड बनाने का एक बढ़िया परिचय है।

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

नीचे दर्शाया गया विशिष्ट उदाहरण एक तरीका है जिससे आप एक कस्टम डिजाइन रोबोट (जैसे कि एक कस्टम ड्राइवट्रेन वाला रोबोट) के साथ फॉरएवर लूप का उपयोग कर सकते हैं, ताकि रोबोट को चलाया जा सके और वस्तुओं के साथ बातचीत करने के लिए पंजे और हाथ में हेरफेर किया जा सके।

VEX IQ ब्लॉक प्रोग्रामिंग इंटरफ़ेस को दर्शाने वाला आरेख, VEX IQ ज्ञानकोष में ब्लॉक ट्यूटोरियल अनुभाग के भाग के रूप में, शैक्षिक रोबोटिक्स परियोजनाओं के लिए विभिन्न ब्लॉकों और उनके कार्यों को प्रदर्शित करता है।

"विकल्प 2" VEXcode IQ (दूसरी पीढ़ी) परियोजना फ़ाइल डाउनलोड करें >

नोट: यदि प्रथम पीढ़ी के क्लॉबोट का उपयोग किया जा रहा है तो उपरोक्त परियोजना के अनुसार कार्य करने के लिए डिवाइस कॉन्फ़िगरेशन में आर्म मोटर को उलटना होगा।

विकल्प 2 कोड का स्पष्टीकरण.

कोड टुकड़ा

स्पष्टीकरण

VEXcode IQ ब्लॉक ट्यूटोरियल इंटरफ़ेस का स्क्रीनशॉट, जिसमें VEX IQ रोबोटिक्स के लिए प्रोग्रामिंग ब्लॉक और विकल्प प्रदर्शित किए गए हैं, जिसे रोबोटिक्स अवधारणाओं को सीखने में शिक्षकों और छात्रों की सहायता के लिए डिज़ाइन किया गया है।

इस कोड उदाहरण के लिए क्लॉबोट का उपयोग किया गया था। जब कंट्रोलर पर लगे बटनों का उपयोग भुजा को ऊपर उठाने और नीचे करने के लिए किया जाता है, तो जैसे ही बटन छोड़ा जाता है, गुरुत्वाकर्षण के कारण भुजा वापस नीचे गिर जाती है। दोनों भुजाओं और पंजों को “होल्ड” पर सेट करने से यह सुनिश्चित होगा कि नियंत्रक पर बटनों को छोड़ने के बाद भी भुजा और पंजा दोनों अपनी जगह पर बने रहेंगे।

VEX IQ ब्लॉक ट्यूटोरियल इंटरफ़ेस का स्क्रीनशॉट, जिसमें शैक्षिक रोबोटिक्स के लिए डिज़ाइन किए गए प्रोग्रामिंग ब्लॉक और कोडिंग तत्वों को प्रदर्शित किया गया है, जो शुरुआती और शिक्षकों के लिए लक्षित है। VEX IQ ब्लॉक प्रोग्रामिंग इंटरफ़ेस को दर्शाने वाला आरेख, शैक्षिक रोबोटिक्स परियोजनाओं के लिए विभिन्न प्रोग्रामिंग ब्लॉक और उनके कार्यों को प्रदर्शित करता है।

इस कोड उदाहरण के लिए क्लॉबोट का उपयोग किया गया था। जब कंट्रोलर पर लगे बटनों का उपयोग भुजा को ऊपर उठाने और नीचे करने के लिए किया जाता है, तो जैसे ही बटन छोड़ा जाता है, गुरुत्वाकर्षण के कारण भुजा वापस नीचे गिर जाती है। दोनों भुजाओं और पंजों को “होल्ड” पर सेट करने से यह सुनिश्चित होगा कि नियंत्रक पर बटनों को छोड़ने के बाद भी भुजा और पंजा दोनों अपनी जगह पर बने रहेंगे।

फॉरएवर लूप का उपयोग यह जांचने के लिए किया जाता है कि नियंत्रक पर कौन से बटन दबाए जा रहे हैं।

[मोटर वेग सेट करें] ब्लॉक का उपयोग मोटर वेग को A और D अक्षों के साथ वर्तमान नियंत्रक की स्थिति पर सेट करने के लिए किया जाता है। यह कार को ड्राइव में सेट करने के बराबर है। इससे कार जरूरी रूप से नहीं चलती, बल्कि यह उसे बस गति प्रदान करती है।

प्रत्येक जॉयस्टिक अक्ष -100 से +100 के बीच मान लौटाता है, तथा केन्द्रित होने पर शून्य मान लौटाता है। इसका अर्थ यह है कि जॉयस्टिक अक्ष को धकेलने पर यह -100% से 100% के बराबर हो जाता है। अक्षों को 100 या -100 की ओर जितना अधिक धकेला जाएगा, मोटर उतनी ही तेजी से घूमेगी।

फिर [स्पिन] ब्लॉक का उपयोग मोटर को वास्तव में चलाने के लिए किया जाता है। यह दिशा निर्धारित हो जाने के बाद कार में गैस दबाने के बराबर है। इससे प्रत्येक मोटर को चार नियंत्रक अक्षों में से एक द्वारा नियंत्रित किया जा सकता है।

VEX IQ ब्लॉक ट्यूटोरियल इंटरफ़ेस का स्क्रीनशॉट, जिसमें प्रोग्रामिंग ब्लॉक और शैक्षिक रोबोटिक्स परियोजनाओं के निर्माण के विकल्प प्रदर्शित किए गए हैं, जिसे VEX IQ रोबोटिक्स प्लेटफ़ॉर्म में शुरुआती और शिक्षकों के लिए डिज़ाइन किया गया है।

इस कोड उदाहरण के लिए क्लॉबोट का उपयोग किया गया था। जब कंट्रोलर पर लगे बटनों का उपयोग भुजा को ऊपर उठाने और नीचे करने के लिए किया जाता है, तो जैसे ही बटन छोड़ा जाता है, गुरुत्वाकर्षण के कारण भुजा वापस नीचे गिर जाती है। दोनों भुजाओं और पंजों को “होल्ड” पर सेट करने से यह सुनिश्चित होगा कि नियंत्रक पर बटनों को छोड़ने के बाद भी भुजा और पंजा दोनों अपनी जगह पर बने रहेंगे।

[यदि तो अन्यथा यदि तो अन्यथा] ब्लॉक का उपयोग नियंत्रक पर दबाए जाने या छोड़े जाने वाले बटनों के लिए कुछ व्यवहारों को मैप करने के लिए किया जाता है। कोड के इस भाग में, निर्धारित शर्तें यह हैं कि क्या E अप या E डाउन बटन दबाया जाता है। यदि ऐसा है, तो कुछ निश्चित व्यवहार होंगे, जैसे कि हाथ को ऊपर उठाना और नीचे करना। इस शर्त का एक और भाग भी है, यदि कोई भी बटन नहीं दबाया जाता है, तो भुजा का हिलना बंद हो जाता है।

ध्यान दें कि क्लॉ के लिए परियोजना में कोड का निम्नलिखित भाग भी इसी स्पष्टीकरण का अनुसरण करता है।

विकल्प 2 का सारांश: फॉरएवर लूप का उपयोग करना

लाभ

सीमाएँ

उदाहरण स्थिति

  • कस्टम बिल्ड को समायोजित कर सकता है, विशेष रूप से 4 से अधिक मोटरों वाले ड्राइवट्रेन को
  • एक ही बटन को अनेक व्यवहार निर्दिष्ट कर सकते हैं
  • नियंत्रक पर विभिन्न अक्षों को व्यवहार निर्दिष्ट कर सकते हैं (डिवाइस कॉन्फ़िगरेशन में केवल बाएं आर्केड, दाएं आर्केड, विभाजित आर्केड और टैंक ड्राइव के विकल्पों के विपरीत)
  • कुछ मात्रा में कोडिंग ज्ञान की आवश्यकता होती है (कंडीशनल, लूप्स, तथा कंट्रोलर पर बटन/जॉयस्टिक का ज्ञान)
  • परियोजना के धीमे निष्पादन, या बटन प्रतिक्रिया समय में देरी की संभावना। चूंकि सभी कमांड एक ही फॉरएवर लूप में समाहित होते हैं, इसलिए निर्धारित शर्तों और कोड की लंबाई के आधार पर कोड निष्पादन धीमी गति से चल सकता है।
  • कस्टम निर्मित रोबोट के साथ नियंत्रक का उपयोग करना, विशेष रूप से गैर-मानक ड्राइवट्रेन के साथ
  • जब एक ही बटन को एकाधिक व्यवहार निर्दिष्ट करना हो। उदाहरण के लिए, जब एफ अप बटन दबाया जाता है, तो पंजा खुल सकता है, आगे बढ़ सकता है, और फिर किसी वस्तु के चारों ओर बंद हो सकता है।

विकल्प 3: ईवेंट का उपयोग करना

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

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

VEX IQ ब्लॉक ट्यूटोरियल इंटरफ़ेस का स्क्रीनशॉट, जिसमें VEX IQ रोबोट बनाने और नियंत्रित करने के लिए प्रोग्रामिंग ब्लॉक और विकल्प प्रदर्शित किए गए हैं, जिसका उद्देश्य रोबोटिक्स अवधारणाओं को सीखने वाले शिक्षकों और छात्रों के लिए है।

"विकल्प 3" VEXcode IQ (दूसरी पीढ़ी) परियोजना फ़ाइल डाउनलोड करें >

नोट: यदि प्रथम पीढ़ी के क्लॉबोट का उपयोग किया जा रहा है तो उपरोक्त परियोजना के अनुसार कार्य करने के लिए डिवाइस कॉन्फ़िगरेशन में आर्म मोटर को उलटना होगा।

विकल्प 3 कोड का स्पष्टीकरण.

कोड टुकड़ा

स्पष्टीकरण

VEXcode IQ ब्लॉक ट्यूटोरियल इंटरफ़ेस का स्क्रीनशॉट, जिसमें VEX IQ रोबोटिक्स के लिए प्रोग्रामिंग ब्लॉक और विकल्प प्रदर्शित किए गए हैं, जिसे रोबोटिक्स अवधारणाओं को सीखने में शिक्षकों और छात्रों की सहायता के लिए डिज़ाइन किया गया है।

इस कोड उदाहरण के लिए क्लॉबोट का उपयोग किया गया था। जब कंट्रोलर पर लगे बटनों का उपयोग भुजा को ऊपर उठाने और नीचे करने के लिए किया जाता है, तो जैसे ही बटन छोड़ा जाता है, गुरुत्वाकर्षण के कारण भुजा वापस नीचे गिर जाती है। दोनों भुजाओं और पंजों को “होल्ड” पर सेट करने से यह सुनिश्चित होगा कि नियंत्रक पर बटनों को छोड़ने के बाद भी भुजा और पंजा दोनों अपनी जगह पर बने रहेंगे।

VEXcode IQ ब्लॉक इंटरफ़ेस का स्क्रीनशॉट, VEX IQ रोबोटिक्स के लिए प्रोग्रामिंग ब्लॉकों को प्रदर्शित करता है, जिसका उपयोग रोबोट निर्माण और प्रोग्रामिंग के लिए शैक्षिक ट्यूटोरियल में किया जाता है। VEX IQ ब्लॉक प्रोग्रामिंग इंटरफ़ेस को दर्शाने वाला आरेख, शैक्षिक रोबोटिक्स परियोजनाओं के लिए विभिन्न प्रोग्रामिंग ब्लॉक और उनके कार्यों को प्रदर्शित करता है।

इस कोड उदाहरण के लिए क्लॉबोट का उपयोग किया गया था। जब कंट्रोलर पर लगे बटनों का उपयोग भुजा को ऊपर उठाने और नीचे करने के लिए किया जाता है, तो जैसे ही बटन छोड़ा जाता है, गुरुत्वाकर्षण के कारण भुजा वापस नीचे गिर जाती है। दोनों भुजाओं और पंजों को “होल्ड” पर सेट करने से यह सुनिश्चित होगा कि नियंत्रक पर बटनों को छोड़ने के बाद भी भुजा और पंजा दोनों अपनी जगह पर बने रहेंगे।

{When controller axis} इवेंट ब्लॉक का उपयोग कुछ व्यवहारों को ट्रिगर करने के लिए किया जाता है जब नियंत्रक पर चार अक्षों में से एक को जॉयस्टिक का उपयोग करके बदला जाता है।

[मोटर वेग सेट करें] ब्लॉक का उपयोग मोटर वेग को A और D अक्षों के साथ वर्तमान नियंत्रक की स्थिति पर सेट करने के लिए किया जाता है। यह कार को ड्राइव में सेट करने के बराबर है। इससे कार जरूरी रूप से नहीं चलती, बल्कि यह उसे बस गति प्रदान करती है।

प्रत्येक जॉयस्टिक अक्ष -100 से +100 के बीच मान लौटाता है, तथा केन्द्रित होने पर शून्य मान लौटाता है। इसका अर्थ यह है कि जॉयस्टिक अक्ष को धकेलने पर यह -100% से 100% के बराबर हो जाता है। अक्षों को 100 या -100 की ओर जितना अधिक धकेला जाएगा, मोटर उतनी ही तेजी से घूमेगी।

फिर [स्पिन] ब्लॉक का उपयोग मोटर को वास्तव में चलाने के लिए किया जाता है। यह दिशा निर्धारित हो जाने के बाद कार में गैस दबाने के बराबर है। इससे प्रत्येक मोटर को चार नियंत्रक अक्षों में से एक द्वारा नियंत्रित किया जा सकता है।

VEX IQ ब्लॉक ट्यूटोरियल का स्क्रीनशॉट, जिसमें रोबोट बनाने और प्रोग्रामिंग करने के लिए प्रोग्रामिंग ब्लॉक और निर्देश प्रदर्शित किए गए हैं, जिसका उद्देश्य VEX IQ रोबोटिक्स प्लेटफॉर्म में शिक्षकों और छात्रों को ध्यान में रखकर बनाया गया है।

इस कोड उदाहरण के लिए क्लॉबोट का उपयोग किया गया था। जब कंट्रोलर पर लगे बटनों का उपयोग भुजा को ऊपर उठाने और नीचे करने के लिए किया जाता है, तो जैसे ही बटन छोड़ा जाता है, गुरुत्वाकर्षण के कारण भुजा वापस नीचे गिर जाती है। दोनों भुजाओं और पंजों को “होल्ड” पर सेट करने से यह सुनिश्चित होगा कि नियंत्रक पर बटनों को छोड़ने के बाद भी भुजा और पंजा दोनों अपनी जगह पर बने रहेंगे।

{When controller axis} इवेंट ब्लॉक का उपयोग नियंत्रक पर दबाए जाने या छोड़े जाने वाले बटनों के लिए कुछ व्यवहारों को मैप करने के लिए किया जाता है। कोड के इस भाग में, निर्धारित शर्तें यह हैं कि क्या E अप या E डाउन बटन दबाया जाता है। यदि ऐसा है, तो कुछ निश्चित व्यवहार होंगे, जैसे कि हाथ को ऊपर उठाना, नीचे करना, या रुकना।

ध्यान दें कि क्लॉ के लिए परियोजना में कोड का अंतिम भाग भी इसी स्पष्टीकरण का अनुसरण करता है।

विकल्प 3 का सारांश: ईवेंट का उपयोग करना

लाभ

सीमाएँ

उदाहरण स्थिति

  • कस्टम बिल्ड को समायोजित कर सकता है, विशेष रूप से 4 से अधिक मोटरों वाले ड्राइवट्रेन को
  • एक ही बटन को अनेक व्यवहार निर्दिष्ट कर सकते हैं
  • नियंत्रक पर विभिन्न अक्षों को व्यवहार निर्दिष्ट कर सकते हैं (डिवाइस कॉन्फ़िगरेशन में केवल बाएं आर्केड, दाएं आर्केड, विभाजित आर्केड और टैंक ड्राइव के विकल्पों के विपरीत)
  • तीव्र कोड निष्पादन और इस प्रकार, बटन अनुक्रियाशीलता (क्योंकि प्रत्येक शर्त को अलग से बुलाया जाता है और कोड के एक एकल स्टैक में एम्बेड नहीं किया जाता है)
  • विकल्पों (कंडीशनल, लूप, इवेंट्स, तथा कंट्रोलर पर बटन/जॉयस्टिक्स का ज्ञान) के कोडिंग ज्ञान की सबसे अधिक आवश्यकता होती है।
  • यदि पहली पीढ़ी के VEX IQ ब्रेन का उपयोग किया जा रहा है, तो किसी प्रोजेक्ट में बहुत अधिक इवेंट होने पर, ब्रेन की प्रसंस्करण सीमाओं के कारण, प्रोजेक्ट नहीं चल सकता है।
  • कस्टम निर्मित रोबोट के साथ नियंत्रक का उपयोग करना, विशेष रूप से गैर-मानक ड्राइवट्रेन के साथ
  • जब आप बिना किसी देरी के एक ही बटन को कई व्यवहार सौंपना चाहते हैं। उदाहरण के लिए, जब एफ अप बटन दबाया जाता है, तो पंजा खुल सकता है, आगे बढ़ सकता है, और फिर किसी वस्तु के चारों ओर बंद हो सकता है।

For more information, help, and tips, check out the many resources at VEX Professional Development Plus

Last Updated: