मुख्य सामग्री पर जाएं

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

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

प्रोग्रामिंग जटिलता

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

नीचे स्पीडबॉट और क्लॉबॉट दोनों के लिए रोबोट के व्यवहारों की एक सूची दी गई है, जो सरल से जटिल की ओर बढ़ती जाती है। कोष्ठकों में, आप उन सरल व्यवहारों को देख सकते हैं जिनसे प्रत्येक का निर्माण होता है।

  • किसी विशिष्ट पोर्ट से संबंधित मोटर को घुमाएँ
  • आगे बढ़ें (ड्राइवट्रेन का उपयोग करके बाएं और दाएं दोनों मोटरों को घुमाएं)
  • 5 मीटर की दूरी तय करें (आगे बढ़ें, फिर रुकें)
  • दूर स्थित वस्तु को पकड़ें (2 मीटर की दूरी तय करें, उसे पकड़ने के लिए पंजे की मोटर को घुमाएं)
  • किसी वस्तु को उठाकर ऊँची शेल्फ पर रखें (दूर स्थित वस्तु को पकड़ें, घूमें, 2 मीटर की दूरी तय करें, हाथ और पंजे की मोटरों का उपयोग करके वस्तु को उठाएँ और छोड़ दें)।

आप देख सकते हैं कि कैसे आप किसी भी जटिल व्यवहार को सरल व्यवहार में विभाजित कर सकते हैं। ये किसी भी जटिल कार्य की आधारशिला बन जाते हैं।

शिक्षक सुझाव आइकन शिक्षक सुझाव

  • छात्रों को निर्देश दें कि वे रोबोट के जटिल व्यवहारों को छोटे, सरल चरणों में विभाजित करें। इस प्रक्रिया को अपघटन के नाम से जाना जाता है।

  • छात्रों को समझाएं कि जटिल व्यवहारों को सरल कार्यों में विभाजित करना (तोड़ना) योजना बनाने और कार्यक्रम तैयार करने का एक महत्वपूर्ण हिस्सा है।

  • यदि कक्षा में पर्याप्त समय हो तो छात्रों को अपनी स्वायत्त परियोजनाएं चलाने की अनुमति दें।

अपने सीखने का विस्तार करें आइकन अपने ज्ञान का विस्तार करें

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

  • गतिविधि एक: 1 मीटर की दूरी तय करें और आरंभिक स्थान पर वापस लौटें।

  • गतिविधि दो: रोबोट के 60 सेंटीमीटर आगे स्थित एक बॉक्स को पलटें।

  • गतिविधि तीन: एक वस्तु उठाएं, उसे हिलाएं, 30 सेंटीमीटर की दूरी तय करें, वस्तु को जमीन पर रख दें और प्रारंभिक बिंदु पर वापस आ जाएं।

चर्चा को प्रेरित करने वाला आइकन चर्चा को प्रेरित करें

विद्यार्थियों को ऊपर दिए गए "अपनी शिक्षा का विस्तार करें" गतिविधियों के लिए सूचीबद्ध व्यवहार संबंधी चरणों को साझा करना चाहिए। निम्नलिखित में से प्रत्येक प्रश्न को किसी भी या सभी गतिविधियों के बाद पूछा जा सकता है।

प्रश्न: इस गतिविधि को सफलतापूर्वक पूरा करने के लिए प्रत्येक समूह ने-कौन से चरण या व्यवहार सूचीबद्ध किए?
उत्तर:छात्रों को गतिविधि या कार्य को पूरा करने के लिए आवश्यक सरल रोबोट व्यवहारों (आगे बढ़ना, पीछे जाना, बाएँ या दाएँ मुड़ना) को सूचीबद्ध करने के अलावा, रोबोट द्वारा तय की जाने वाली दूरी और भुजा की गति और चाल पर भी विचार करना होगा। छात्रों को अपने व्यवहारों की सूची इस प्रकार बनानी चाहिए कि प्रत्येक चरण का प्रतिनिधित्व हो सके।

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

प्रश्न : क्या सफल समाधानों मेंसमानता थी? यदि हां, तो वे क्या थे?
ए:सबसे सफल समाधान वे थे जिनमें सबसे अधिक विस्तार और विशिष्टता शामिल थी। रोबोट को एक ऐसी भाषा में प्रोग्राम किया गया है जिसमें बहुत विशिष्ट व्यवहार होते हैं जिन्हें उनके सबसे छोटे घटकों में विभाजित किया गया है। उदाहरण के लिए, यह कहना आम बात हो सकती है कि एक रोबोट "1 मीटर की यात्रा करता है और शुरुआती स्थान पर लौट आता है", लेकिन प्रोग्रामिंग करते समय इस उच्च-स्तरीय विवरण को आसानी से अनुवादित नहीं किया जा सकता है। आपको इसे और विस्तार से समझना होगा: 1 मीटर आगे बढ़ता है, 180 डिग्री मुड़ता है, और फिर 1 मीटर आगे बढ़ता है। लेकिन शायद यह भी पर्याप्त सटीक न हो और प्रोग्रामिंग के लिए तैयार होने के लिए आपको इस स्तर के विवरण की आवश्यकता हो: ड्राइव और टर्निंग वेलोसिटी को 40% पर सेट करें, 1 मीटर आगे ड्राइव करें, 3 सेकंड प्रतीक्षा करें, 180 डिग्री बाएं मुड़ें, 1 सेकंड प्रतीक्षा करें और 1 मीटर आगे ड्राइव करें। हम जटिल व्यवहारों को जितना अधिक तोड़कर उन्हें प्रोग्रामिंग के लिए तैयार रोबोट व्यवहार बनाते हैं, उतना ही बेहतर तरीके से हम किसी परियोजना को पूरा करने के लिए तैयार होते हैं।