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

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