नियंत्रक: टैंक ड्राइव अन्वेषण - सी++
शिक्षक टूलबॉक्स
-
इस गतिविधि का उद्देश्य
टैंक कंट्रोल उदाहरण परियोजना का उपयोग करके छात्र कंट्रोलर की मदद से क्लॉबॉट को नियंत्रित कर सकते हैं। छात्रों को क्लॉबॉट के प्रत्येक मोटर के वेग को नियंत्रित करने और नियंत्रक को मोटर कार्यों को नियंत्रित करने में सक्षम बनाने के लिए(), 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 (नवीनतम संस्करण, विंडोज, macOS) |
| 1 |
इंजीनियरिंग नोटबुक |
| 1 |
टैंक नियंत्रण उदाहरण परियोजना |
| 2 या अधिक |
कक्षा में बाधाओं के रूप में उपयोग की जाने वाली वस्तुएं |
शिक्षकों के लिए सुझाव
-
ऑटो-कंप्लीट का उपयोग करना
ऑटो-कंप्लीट VEXcode V5 का एक फीचर है जो आपके द्वारा टाइप किए जा रहे कमांड के बाकी हिस्से का अनुमान लगाता है। चूंकि छात्र VEXcode V5 में काम कर रहे हैं, इसलिए उन्हेंसिंटैक्स में मदद के लिए ऑटो-कंप्लीट सुविधा का उपयोग करने के लिए प्रोत्साहित करें। ऑटो-कंप्लीट फीचर का उपयोग कैसे करेंइस बारेलेख में बताया गया है।

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

अपनी इंजीनियरिंग नोटबुक में निम्नलिखित कार्य करें:
अनुमान लगाएं कि यह परियोजना क्लॉबॉट से क्या कार्य करवाएगी। इस तथ्य से अधिक विस्तार से समझाएं कि परियोजना
नियंत्रक का उपयोग किया जाता है। जॉयस्टिक रोबोट को कैसे गति प्रदान करते हैं? क्लॉबॉट क्या कर रहा है?int main() { // रोबोट कॉन्फ़िगरेशन आरंभ करना। दूर नहीं करते! vexcodeInit(); // प्रोजेक्ट कोड प्रारंभ करें। // मुख्य नियंत्रक लूप मोटर्स को नियंत्रक अक्ष स्थितियों पर सेट करने के लिए while (true) (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();
// प्रोजेक्ट कोड प्रारंभ करें।
// मुख्य नियंत्रक लूप मोटर्स को नियंत्रक अक्ष स्थितियों पर सेट करने के लिए
लेफ्टमोटर.सेटवेलोसिटी(कंट्रोलर1.एक्सिस3.पोजिशन(), प्रतिशत);
राइटमोटर.सेटवेलोसिटी(कंट्रोलर1.एक्सिस2.पोजिशन(), प्रतिशत);
लेफ्टमोटर.स्पिन(फॉरवर्ड);
राइटमोटर.स्पिन(फॉरवर्ड);
}आपके विचार से इस प्रोग्राम को चलाने पर क्या होगा? समूह में चर्चा करें। अपनी भविष्यवाणी को इंजीनियरिंग नोटबुक में लिख लें।
शिक्षक टूलबॉक्स
-
संरचना को समझना
while True अनंत लूप के बिना, प्रत्येक मोटर के लिए वेग का मान प्रोजेक्ट चलने के तुरंत बाद सेट हो जाता है, और वह मान प्रोजेक्ट बंद होने तक स्थिर रहता है। दूसरे शब्दों में, यदि आप जॉयस्टिक को हिलाए बिना प्रोजेक्ट चलाते हैं, क्योंकि जॉयस्टिक की अपनी धुरी पर डिफ़ॉल्ट स्थिति 0 होती है, तो जॉयस्टिक को हिलाने पर भी दोनों मोटरों का वेग 0 ही रहेगा।
इसी तरह, मान लीजिए कि आप बाएं जॉयस्टिक को अक्ष 3 के साथ जितना हो सके ऊपर ले जाते हैं और उसे वहीं रोक कर रखते हैं। यदि आप ऊपर दिए गए प्रोजेक्ट को चलाते हैं, तो बायां मोटर पूरी गति से चलेगा और यदि आप जॉयस्टिक को अक्ष 3 के साथ नीचे की ओर ले जाते हैं तो भी वह उसी गति से चलता रहेगा। ऐसा इसलिए है क्योंकि क्लॉबॉट को प्रोजेक्ट शुरू होते ही कंट्रोलर से अपना प्रारंभिक निर्देश मिल जाता है; हालांकि, लूप के बिना, वह प्रारंभिक मान अपडेट नहीं हो सकता।
while True अनंत लूप क्लॉबॉट को वेग को लगातार अपडेट करने और प्रोजेक्ट की अवधि तक चलने के लिए कहता है। दूसरे शब्दों में, इस प्रोजेक्ट में मौजूद अनंत लूप ( while True आपको जॉयस्टिक को अक्ष 2 या 3 के साथ घुमाकर प्रत्येक मोटर की गति को बदलने में सक्षम बनाता है, और क्लॉबॉट तदनुसार प्रतिक्रिया देगा जब तक आप प्रोजेक्ट को रोक नहीं देते या क्लॉबॉट को बंद नहीं कर देते।
चरण 3: स्लैलम कोर्स को पार करें!
शिक्षक टूलबॉक्स
-
गतिविधि की स्थापना
छात्रों को 2 या 4 छात्रों के छोटे समूहों में संगठित करें। एक छात्र को ड्राइवर के रूप में नामित किया जाना चाहिए - वह व्यक्ति जो क्लॉबॉट को चलाने के लिए कंट्रोलर का उपयोग करेगा।
छात्रों को कंट्रोलर का उपयोग करके क्लॉबॉट को प्रत्येक "झंडे" के बाहरी हिस्से के साथ-साथ ले जाकर इस स्लैलम को पूरा करने के लिए कहें। क्लॉबॉट का मार्ग ऐसा होना चाहिए कि वह किसी भी झंडे को न छू सके और फिनिश लाइन को पार कर सके। फ्लैग किसी भी क्लासरूम सामग्री/वस्तु हो सकती है जो आपके पास आसानी से उपलब्ध हो (इरेज़र, टेप का रोल, टिशू बॉक्स) और क्लॉबॉट को चलाने से पहले इसे जगह पर सेट किया जा सकता है।
यदि समय अनुमति दे, तो छात्रों को भूमिकाएँ बदलने दें ताकि दूसरों को भी क्लॉबॉट चलाने का अवसर मिल सके। आप इसे समूहों के भीतर या समूहों के बीच एक प्रतियोगिता में भी बदल सकते हैं, यह देखकर कि प्रत्येक ड्राइवर कितनी जल्दी स्लैलम को पार कर सकता है।

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

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