नियंत्रक: टैंक ड्राइव एक्सप्लोरेशन - C++
शिक्षक टूलबॉक्स
-
इस गतिविधि का उद्देश्य
टैंक नियंत्रण उदाहरण परियोजना का उपयोग करके छात्रों को नियंत्रक का उपयोग करके क्लॉबोट को नियंत्रित करने में सक्षम बनाया जाता है। छात्रों को क्लॉबोट के प्रत्येक मोटर के वेग को नियंत्रित करने और नियंत्रक को मोटर कार्यों को नियंत्रित करने में सक्षम बनाने के लिए निर्देशों में पैरामीटर समायोजित करने की आवश्यकता होगीLeftMotor.setVelocity(), RightMotor.setVelocity(), LeftMotor.spin(), RightMotor.spin(), leftMotorSpeed = Controller1.Axis3.position(),औरrightMotorSpeed = Controller1.Axis2.position().
किसी भी निर्देश के बारे में अधिक जानकारी के लिए, VEXcode V5 मेंC++अनुभाग में सहायता देखें।
इस गतिविधि में विद्यार्थी क्या करेंगे, इसकी रूपरेखा निम्नलिखित है:
-
टैंक नियंत्रण उदाहरण परियोजना का अन्वेषण करें।
-
while Trueअनंत लूपसंरचना के उपयोग को समझें।
-
रोबो-स्लैलम चुनौती पूरी करें!
शिक्षक युक्तियाँ
यदि छात्र पहली बार VEXcode V5 का उपयोग कर रहे हैं, तो वे VEX ज्ञानकोष में कई उपयोगीतक पहुंच सकते हैं
| मात्रा | आवश्यक सामग्री |
|---|---|
| 1 |
VEX V5 क्लासरूम स्टार्टर किट (अप-टू-डेट फर्मवेयर के साथ) |
| 1 |
VEXcode V5 (नवीनतम संस्करण, Windows, macOS) |
| 1 |
इंजीनियरिंग नोटबुक |
| 1 |
टैंक नियंत्रण उदाहरण परियोजना |
| 2 या अधिक |
कक्षा में बाधाओं के रूप में उपयोग की जाने वाली वस्तुएँ |
शिक्षक सुझाव
-
स्वतः पूर्ण का उपयोग करना
स्वतः पूर्ण (Autocomplete) VEXcode V5 में एक सुविधा है जो आपके द्वारा टाइप किए जा रहे कमांड के शेष भाग का पूर्वानुमान लगाती है। चूंकि छात्र VEXcode V5 में काम कर रहे हैं, इसलिए उन्हेंसिंटैक्समें मदद के लिए स्वतः पूर्ण सुविधा का उपयोग करने के लिए प्रोत्साहित करें। स्वतःपूर्णलेख में बताया गया है कि स्वतःपूर्ण सुविधा का उपयोग कैसे किया जाए।

यह गतिविधि आपको अपने नियंत्रक को प्रोग्राम करने के लिए उपकरण प्रदान करेगी।
चरण 1: आइए नियंत्रक की प्रोग्रामिंग शुरू करें।
- टैंक नियंत्रणउदाहरण परियोजना खोलें.
-

अपनी इंजीनियरिंग नोटबुक में निम्नलिखित कार्य करें:
भविष्यवाणी करें कि इस परियोजना में क्लॉबोट को क्या करना होगा। इस तथ्य के अलावा और भी कुछ बताएं कि परियोजना नियंत्रक का उपयोग करती है।
जॉयस्टिक रोबोट को कैसे चलाते हैं? क्लॉबोट क्या कर रहा है?int main() { // रोबोट कॉन्फ़िगरेशन आरंभ कर रहा है. दूर नहीं करते! vexcodeInit(); // प्रोजेक्ट कोड आरंभ करें. // मुख्य नियंत्रक लूप मोटर्स को नियंत्रक अक्ष स्थिति पर सेट करने के लिए while (true) { LeftMotor.setVelocity(Controller1.Axis3.position(), percent); RightMotor.setVelocity(Controller1.Axis2.position(), percent); LeftMotor.spin(forward); RightMotor.spin(forward); wait(5, msec); } return 0; }
शिक्षक टूलबॉक्स
-
उत्तर
- यह परियोजना while True अनंत लूप संरचना का उपयोग करके लगातार जांच करेगी कि बाएं और दाएं जॉयस्टिक की स्थिति कहां है। जब बाएं (या दाएं) जॉयस्टिक को ऊपर धकेला जाता है, तो जॉयस्टिक को कितनी दूर आगे धकेला जाता है, इसके लिए वेग निर्धारित किया जाता है।
- इस प्रकार, जॉयस्टिक को जितना आगे धकेला जाएगा, वेग उतना ही तेज होगा और मोटरें उतनी ही तेजी से चलेंगी। जॉयस्टिक को पीछे धकेलने के लिए भी यही विचार काम करता है। जॉयस्टिक को जितना पीछे की ओर धकेला जाएगा, मोटरें उतनी ही तेजी से पीछे की ओर चलेंगी।
- टैंक नियंत्रणउदाहरण परियोजनासहेजें, डाउनलोड करें और चलाएं
-
सहायता के लिएC++पर VEX लाइब्रेरी अनुभाग देखें या VEXcode V5 में ट्यूटोरियल देखें जो बताता है कि किसी प्रोजेक्ट को कैसे डाउनलोड और चलाया जाए।

- अपनी इंजीनियरिंग नोटबुक में परियोजना के स्पष्टीकरण की जांच करें और आवश्यकतानुसार उन्हें सही करने के लिए नोट्स जोड़ें।
चरण 2: नियंत्रक: टैंक नियंत्रण
शिक्षक टूलबॉक्स
-
जबकि सत्य अनंत लूप संरचनाएं
यह चरण while True अनंत लूप संरचना के महत्व पर चर्चा करता है। आपको कक्षा के रूप में जानकारी की समीक्षा करनी चाहिए। आप अपने क्लॉबोट और कंट्रोलर के साथ व्यवहार का मॉडल बना सकते हैं, या यदि समय की अनुमति हो, तो छात्रों को while True अनंत लूप संरचना के बिना प्रोग्राम चलाने को कह सकते हैं।
while True अनंत लूप संरचना का उपयोग करने के क्या लाभ हैं?
यहाँ while True अनंत लूप संरचना के बिना हमारा प्रोजेक्ट है:
int main() {
// रोबोट कॉन्फ़िगरेशन आरंभ कर रहा है. दूर नहीं करते!
vexcodeInit();
// प्रोजेक्ट कोड आरंभ करें.
//मुख्य नियंत्रक लूप मोटर्स को नियंत्रक अक्ष स्थिति पर सेट करने के लिए
LeftMotor.setVelocity(Controller1.Axis3.position(), प्रतिशत);
RightMotor.setVelocity(Controller1.Axis2.position(), प्रतिशत);
LeftMotor.spin(आगे);
RightMotor.spin(आगे);
}आपको क्या लगता है अगर यह कार्यक्रम चलाया जाए तो क्या होगा? समूह के रूप में चर्चा करें. अपनी भविष्यवाणी इंजीनियरिंग नोटबुक में लिखें।
शिक्षक टूलबॉक्स
-
संरचना को समझना
while True अनंत लूप के बिना, प्रत्येक मोटर के लिए वेग का मान परियोजना के चलते ही निर्धारित हो जाता है, और यह मान परियोजना के बंद होने तक स्थिर रहता है। दूसरे शब्दों में, यदि आप किसी भी जॉयस्टिक को हिलाए बिना परियोजना चलाते हैं, क्योंकि जॉयस्टिक की अपनी धुरी पर डिफ़ॉल्ट स्थिति 0 है, तो दोनों मोटरों का वेग 0 पर ही रहेगा, भले ही आप जॉयस्टिक को हिला दें।
इसी तरह, मान लीजिए कि आप बाएं जॉयस्टिक को अक्ष 3 के साथ ऊपर तक ले जाते हैं और उसे वहीं पर रोक कर रखते हैं। यदि आप उपरोक्त परियोजना को चलाते हैं, तो बाईं मोटर पूरी गति से चलेगी और यदि आप जॉयस्टिक को अक्ष 3 के साथ नीचे ले जाते हैं, तब भी वह उसी वेग पर रहेगी। ऐसा इसलिए है क्योंकि प्रोजेक्ट के चलते ही क्लॉबॉट को कंट्रोलर से प्रारंभिक निर्देश प्राप्त हो जाता है; हालांकि, लूप के बिना, वह प्रारंभिक मान अपडेट नहीं हो सकता।
while True अनंत लूप क्लॉबोट को वेग को लगातार अद्यतन करने और परियोजना की अवधि तक चलने के लिए कहता है। दूसरे शब्दों में, इस परियोजना में while True अनंत लूप, आपको जॉयस्टिक को अक्ष 2 या 3 के साथ चलाकर प्रत्येक मोटर के वेग को बदलने में सक्षम बनाता है, और क्लॉबोट तब तक तदनुसार प्रतिक्रिया देगा जब तक आप परियोजना को रोक नहीं देते या क्लॉबोट को बंद नहीं कर देते।
चरण 3: स्लैलम कोर्स का मार्गदर्शन करें!
शिक्षक टूलबॉक्स
-
गतिविधि सेटअप करें
विद्यार्थियों को 2 या 4 के छोटे समूहों में संगठित करें। एक छात्र को ड्राइवर के रूप में नियुक्त किया जाना चाहिए - वह व्यक्ति जो क्लॉबोट को चलाने के लिए कंट्रोलर का उपयोग करेगा।
छात्रों को प्रत्येक "ध्वज" के बाहर क्लॉबोट को ले जाने के लिए नियंत्रक का उपयोग करके इस स्लैलम को पूरा करने दें। क्लॉबोट का मार्ग उसे किसी भी झंडे को छूने से रोकना चाहिए तथा उसे अंतिम रेखा पार करने की अनुमति देनी चाहिए। झंडे कोई भी कक्षा सामग्री/वस्तु हो सकते हैं जो आपके पास उपलब्ध हो (रबड़, टेप का रोल, टिशू बॉक्स) और क्लॉबोट को चलाने से पहले उन्हें जगह पर लगाया जा सकता है।
यदि समय हो तो छात्रों को अपनी भूमिकाएं बदलने को कहें ताकि अन्य छात्रों को क्लॉबोट चलाने का अवसर मिल सके। आप इसे समूहों के भीतर या समूहों के बीच प्रतिस्पर्धा में भी बदल सकते हैं, यह देखकर कि प्रत्येक चालक स्लैलम को कितनी तेजी से पार कर सकता है।

स्लैलम ऐसे कोर्स हैं जिनमें प्रतिभागियों को निर्धारित झंडों या मार्करों के चारों ओर घूमना होता है। स्की स्लैलम एक लोकप्रिय शीतकालीन खेल है और इसे शीतकालीन ओलंपिक में शामिल किया गया है।
अब जबकिनियंत्रकसे युग्मित हो गया है औरC++प्रोजेक्ट डाउनलोड हो गया है, तो आप नियंत्रक का उपयोग करके अपने क्लॉबॉट को स्थानांतरित करने के लिए तैयार हैं!
- शिक्षक से चार कक्षा की वस्तुएं लीजिए जिन्हें आप स्लैलम में झंडे के रूप में उपयोग करेंगे।
- स्लैलम आरेख के अनुसार, क्लॉबोट को इधर-उधर ले जाने के लिए चालक के लिए झंडे लगाने में सहयोग करें।
- टैंक नियंत्रण उदाहरण परियोजना डाउनलोड करें. यदि किसी प्रोजेक्ट को डाउनलोड करने के बारे में कोई प्रश्न हों, तो प्रोजेक्ट डाउनलोड करें और चलाएं ट्यूटोरियल देखें।
चरण 4: रोबो-स्लैलम

अपने क्लॉबोट को प्रत्येक "ध्वज" के बाहर ले जाने के लिए नियंत्रक का उपयोग करें। रोबोट का मार्ग उसे किसी भी झंडे को छूने से रोकना चाहिए, तथा उसे अंतिम रेखा पार करने की अनुमति देनी चाहिए।
- प्रोजेक्ट को चलाएं और क्लॉबोट को आगे और पीछे चलाएं, तथा दोनों जॉयस्टिक का उपयोग करके बाएं और दाएं घुमाएं।
- क्लॉबोट को पाठ्यक्रम पूरा करने में कितना समय लगता है। इंजीनियरिंग नोटबुक में समय का दस्तावेजीकरण करें।
- आप क्लॉबोट को स्लैलम कोर्स में कितनी तेजी से पार करा सकते हैं?
चर्चा को प्रेरित करें
-
गतिविधि पर चिंतन
प्रश्न:क्या क्लॉबॉट ने नियंत्रक को वैसी ही प्रतिक्रिया दी जैसी आपने अपेक्षा की थी?
उत्तर:उत्तर अलग-अलग होंगे; हालाँकि, इस प्रश्न का लक्ष्य संज्ञानात्मक सोच को बढ़ावा देना है। छात्रों ने परीक्षण से पहले व्यवहारों की भविष्यवाणी करना, उनके परिणामों को दर्ज करना और चिंतन करना शुरू किया।
प्रश्न:क्लॉबोट को सीधी रेखा में आगे या पीछे ले जाने में सबसे बड़ी चुनौती क्या है?
उत्तर:यद्यपि उत्तर अलग-अलग हो सकते हैं, एक सामान्य उत्तर यह होना चाहिए कि दोनों जॉयस्टिक को एक दूसरे के साथ तालमेल में चलना चाहिए ताकि यह सुनिश्चित हो सके कि क्लॉबोट की मोटरें एक ही दिशा में और एक ही वेग से चल रही हैं।
प्रश्न:while Trueअनंत लूप लूप का उपयोग करने से आप क्लॉबोट को स्थानांतरित करने के लिए नियंत्रक का लगातार उपयोग कैसे कर सकते हैं?
A:while Trueअनंत लूप के बिना, क्लॉबोट केवल एक बार परियोजना में निर्देशों द्वारा निर्धारित व्यवहारों को निष्पादित करेगा। while Trueअनंत लूप क्लॉबोट को वेग को लगातार अद्यतन करने और परियोजना की अवधि तक चलने के लिए कहता है। दूसरे शब्दों में,while Trueअनंत लूप आपको क्लॉबोट को अनिश्चित काल तक या बैटरी खत्म होने तक चलाने के लिए कंट्रोलर का उपयोग करने में सक्षम बनाता है।