व्यवहार-आधारित प्रोग्रामिंग

प्रोग्रामिंग जटिलता
रोबोट को विभिन्न प्रकार के कार्य करने के लिए डिज़ाइन किया जा सकता है। इनमें से कुछ कार्य बहुत सरल हैं, जैसे स्वचालित दरवाजा खोलना। अन्य कहीं अधिक जटिल हो सकते हैं, जैसे शहरी वातावरण में चलने वाली एक स्वचालित कार। कार्य चाहे कितना भी जटिल क्यों न हो, उसे सरल कार्यों में तोड़ा जा सकता है। इन कार्यों को व्यवहार के रूप में जाना जाता है और ये रोबोटिक्स प्रोग्रामिंग के निर्माण खंड हैं।
व्यवहार एक तरीका है जिससे रोबोट कार्य करता है, और इसकी जटिलता इस बात पर निर्भर करती है कि रोबोट कैसे बनाया गया है या प्रोग्राम किया गया है। VEX V5 स्पीडबोट जैसे सरल मोबाइल रोबोट में केवल दो मोटरें होती हैं, जबकि क्लॉबोट में चार मोटरें होती हैं, जिनमें आर्म और क्लॉ के लिए दो अतिरिक्त मोटरें भी शामिल हैं। दोनों रोबोटों के व्यवहार में निर्धारित लक्ष्यों को पूरा करने के लिए उन मोटरों को घुमाना शामिल होगा। अधिक डिजाइन और प्रोग्रामिंग के साथ, आप इस सरल व्यवहार से शुरू करके अधिक जटिल व्यवहार कर सकते हैं।
नीचे स्पीडबोट और क्लॉबोट दोनों के लिए सरल से जटिल तक बढ़ते हुए रोबोट व्यवहारों की सूची दी गई है। कोष्ठकों में, आप प्रत्येक को बनाने वाले सरल व्यवहारों को देख सकते हैं।
- किसी निश्चित पोर्ट को सौंपी गई मोटर को घुमाएँ
- आगे की ओर ड्राइव करें (ड्राइवट्रेन का उपयोग करके बाएं और दाएं दोनों मोटरों को घुमाएं)
- 5 मीटर आगे बढ़ें (आगे बढ़ें, फिर रुकें)
- किसी दूर स्थित वस्तु को पकड़ें (2 मीटर की दूरी तय करें, उसे पकड़ने के लिए क्लॉ मोटर को घुमाएं)
- किसी वस्तु को पुनः प्राप्त करें और उसे ऊंचे शेल्फ पर रखें (दूर स्थित वस्तु को पकड़ें, घूमें, 2 मीटर चलें, वस्तु को उठाने और छोड़ने के लिए हाथ और पंजे की मोटर का उपयोग करें)
आप देख सकते हैं कि आप किस प्रकार किसी भी जटिल व्यवहार को सरल व्यवहार में बदल सकते हैं। ये किसी भी जटिल कार्य के आधार बन जाते हैं।
शिक्षक युक्तियाँ
-
छात्रों को जटिल रोबोट व्यवहार को छोटे, सरल चरणों में विभाजित करने का निर्देश दें। इस प्रक्रिया को अपघटन के नाम से जाना जाता है।
-
विद्यार्थियों को समझाएं कि जटिल व्यवहारों को सरल कार्यों में विघटित करना (विघटित करना) योजना और प्रोग्रामिंग का एक महत्वपूर्ण हिस्सा है।
-
यदि कक्षा में पर्याप्त समय हो तो विद्यार्थियों को अपनी स्वायत्त परियोजनाएं चलाने की अनुमति दें।
अपनी शिक्षा का विस्तार करें
इस गतिविधि को कम्प्यूटेशनल सोच और विघटन से जोड़ने के लिए, विद्यार्थियों से उन व्यवहारिक चरणों की सूची बनाने या मानचित्र बनाने के लिए कहें, जिन्हें एक रोबोट नीचे दी गई गतिविधियों को पूरा करने के लिए करेगा:
-
गतिविधि एक: 1 मीटर की यात्रा करें और प्रारंभिक स्थान पर वापस आएँ।
-
क्रियाकलाप दो: रोबोट के सामने 60 सेमी की दूरी पर स्थित एक बॉक्स को पलटें।
-
क्रियाकलाप तीन: एक वस्तु उठाएँ, उसे हिलाएँ, 30 सेमी चलें, वस्तु को ज़मीन पर रखें, और प्रारंभिक बिंदु पर वापस आएँ।
चर्चा को प्रेरित करें
छात्रों को उन व्यवहारिक कदमों को साझा करना चाहिए जिन्हें उन्होंने ऊपर दी गई अपनी शिक्षा का विस्तार करें गतिविधियों के लिए सूचीबद्ध किया है। निम्नलिखित प्रश्नों में से प्रत्येक प्रश्न किसी भी या सभी गतिविधियों के बाद पूछा जा सकता है।
प्रश्न:इस गतिविधि को सफलतापूर्वक पूरा करने के लिए प्रत्येक समूह ने कौन से कदम या व्यवहार सूचीबद्ध किए?
उत्तर:छात्रों को गतिविधि या कार्य को पूरा करने के लिए आवश्यक सरल रोबोट व्यवहारों (आगे बढ़ना, पीछे की ओर जाना, बाएं या दाएं मुड़ना) को सूचीबद्ध करने के अलावा, रोबोट द्वारा यात्रा की जाने वाली लंबाई और हाथ की गति और गति पर विचार करना होगा। विद्यार्थियों को अपने व्यवहारों की सूची इस प्रकार बनानी चाहिए कि प्रत्येक चरण का प्रतिनिधित्व हो।
प्रश्न:इस गतिविधि के समाधानों (चरणों की सूची) में क्या समानताएँ और अंतर थे?
उत्तर:छात्र अपने समाधानों के आधार पर तुलना करेंगे। वेन आरेख विद्यार्थियों द्वारा साझा किये गए चरणों को व्यवस्थित करने का एक अच्छा तरीका हो सकता है। यदि अधिकांश छात्र किसी विशेष चरण का नाम बताते हैं, तो उसे केंद्र में जोड़ें जहां वृत्त एक दूसरे को ओवरलैप करते हैं। यदि केवल एक या कुछ विद्यार्थी ही किसी विशेष चरण का नाम बताते हैं, तो उसे किसी एक वृत्त में जोड़ दें। जब यह कार्य पूरा हो जाएगा, तो केंद्र में दिए गए चरण विश्वसनीय रूप से सरल होंगे तथा उन्हें और अधिक तोड़ा नहीं जा सकेगा, जबकि केवल एक वृत्त में दिए गए चरण संभवतः उतने सरल नहीं होंगे, जितने हो सकते हैं। हालाँकि, जटिल व्यवहारों को सरलतम चरणों में तोड़ने के कक्षा के अनुभव के आधार पर यह पैटर्न उलटा भी हो सकता है।
प्रश्न:क्या सफल समाधानों में समानताएं थीं? यदि हाँ, तो वे क्या थे?
उत्तर:सबसे सफल समाधान वे थे जिनमें सबसे अधिक विवरण और विशिष्टता शामिल थी। रोबोट को एक विशिष्ट भाषा में प्रोग्राम किया गया है, जिसमें विशिष्ट व्यवहारों को छोटे-छोटे घटकों में विभाजित किया गया है। उदाहरण के लिए, यह कहना आम बात हो सकती है कि एक रोबोट "1 मीटर चलता है और प्रारंभिक स्थान पर वापस लौट आता है" लेकिन प्रोग्रामिंग करते समय यह उच्च-स्तरीय विवरण आसानी से अनुवादित नहीं होता है। आपको इसे और भी भागों में विभाजित करना होगा: 1 मीटर आगे बढ़ें, 180 डिग्री घूमें, और 1 मीटर आगे बढ़ें। लेकिन यह भी पर्याप्त सटीक नहीं हो सकता है और आपको प्रोग्रामिंग के लिए तैयार होने के लिए इस स्तर के विवरण की आवश्यकता है: ड्राइव और मोड़ वेग को 40% पर सेट करें, 1 मीटर आगे ड्राइव करें, 3 सेकंड प्रतीक्षा करें, 180 डिग्री के लिए बाएं मुड़ें, 1 सेकंड प्रतीक्षा करें, और 1 मीटर आगे ड्राइव करें। जितना अधिक हम जटिल व्यवहारों को तोड़कर उन्हें प्रोग्रामिंग के लिए तैयार रोबोट व्यवहार बनाते हैं, उतना ही बेहतर हम एक परियोजना को पूरा करने के लिए तैयार होते हैं।