उपयोगकर्ता इंटरफ़ेस के रूप में नियंत्रक
रोबोट को दूर से नियंत्रित करना
हम अपने टेलीविजन के साथ बातचीत करने के लिए प्रायः रिमोट कंट्रोल का उपयोग करते हैं। हम बटन दबाते हैं जिससे टेलीविजन पर वह चैनल या सूचना/पहुंच स्क्रीन प्रदर्शित हो जाती है जो हम चाहते हैं। तकनीकी रूप से, आपके टेलीविजन का रिमोट कंट्रोल एक यूआई है। हालाँकि, यह आपके स्मार्टफोन द्वारा उपयोग किए जाने वाले UI की तुलना में बहुत कम परिष्कृत UI है।
आपके IQ कंट्रोलर को प्रोग्रामिंग करना बहुत अधिक परिष्कृत है। किसी प्रतियोगिता के ड्राइवर नियंत्रित मैचों के दौरान, आप चाहते हैं कि आपके ड्राइवर/टीम को यथासंभव अधिक लाभ मिले। आप बटनों और जॉयस्टिकों को एक से अधिक सरल कार्य करने के लिए प्रोग्राम कर सकते हैं, तथा जब बटनों/जॉयस्टिकों का संयोजन में उपयोग किया जाता है, तो आप उन्हें जटिल कार्य करने के लिए भी प्रोग्राम कर सकते हैं - ठीक उसी प्रकार जैसे कुछ गेमिंग कंट्रोलर काम करते हैं। अपने कंट्रोलर के प्रोग्रामर के रूप में, आप यह विचार करते हैं कि कौन से बटनों का संयोजन में उपयोग करना है, तथा यह पता लगाते हैं कि सभी बटनों तक पहुंचने के लिए आपकी उंगलियों और हाथों को किस प्रकार रखा जाना चाहिए।
उपरोक्त छवि VEXcode IQ के कंट्रोलर बटन उदाहरण प्रोजेक्ट से प्रोजेक्ट को दर्शाती है। क्या आपने देखा कि [Forever] लूप के अंदर दो [If then else] ब्लॉक कैसे नेस्टेड हैं? यह परियोजना को यह जांचने देता है कि क्या आर अप या आर डाउन बटन दबाया गया है, और रोबोट एक बटन दबाए जाने के आधार पर क्लॉ मोटर को बंद या खोल देता है। वह [हमेशा] लूप बहुत महत्वपूर्ण है। यह आपके IQ कंट्रोलर को बार-बार यह जांचने के लिए मजबूर करता है कि कौन सा बटन दबाया जा रहा है, ताकि रोबोट उचित व्यवहार कर सके।
मान लीजिए कि आप एक <and> ऑपरेटर ब्लॉक में दो <Controller Pressed> सेंसिंग ब्लॉक रख सकते हैं। इससे परियोजना को यह जांचने में मदद मिलेगी कि दो बटन दबाए जा रहे हैं या नहीं। आप एक <and> ब्लॉक को दूसरे <and> ब्लॉक के अंदर भी रख सकते हैं और किसी व्यवहार को करने से पहले तीन शर्तों की जांच करवा सकते हैं। इससे आप व्यवहार के अनुक्रमों को प्रोग्राम कर सकेंगे, जिन्हें आपके कंट्रोलर पर बटनों को दबाकर आसानी से शुरू किया जा सकता है।
विचार करें कि कंट्रोलर पर सभी बटनों और उनके संयोजनों के साथ आप कितने अधिक सशर्त संयोजन बना सकते हैं। बेशक, जैसे-जैसे आप नियंत्रक की कार्यप्रणाली में अधिक जटिल व्यवहारों को प्रोग्राम करते हैं, परियोजना रोबोट को स्वायत्त बनाने के करीब पहुंचती जाती है। प्रतियोगिता टीम को यह पता लगाना होता है कि उनके नियंत्रकों में जटिल अनुक्रमों के रूप में कौन से व्यवहार प्रोग्राम करने के लिए सर्वोत्तम हैं और कौन से व्यवहारों को कई भागों में विघटित करना सर्वोत्तम है, ताकि नियंत्रक चालक (उपयोगकर्ता) को व्यवहार की गति और सटीकता पर अधिक नियंत्रण दे सके।
शिक्षक युक्तियाँ
-
मॉडलिंग
यदि विद्यार्थियों को एक से अधिक शर्तों को शामिल करने के लिए <and> ब्लॉकों को संयोजित करने की कल्पना करने में कठिनाई हो रही है, तो उनके लिए <and> ब्लॉकों को संयोजित करने का मॉडल प्रस्तुत करें। यहाँ एक उदाहरण है:

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