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

नियंत्रक: टैंक ड्राइव अन्वेषण - पायथन

शिक्षक टूलबॉक्स आइकन शिक्षक टूलबॉक्स - इस अनुभाग का उद्देश्य

टैंक कंट्रोल उदाहरण परियोजना का उपयोग करके छात्र कंट्रोलर की मदद से क्लॉबॉट को नियंत्रित कर सकते हैं। छात्रों को क्लॉबॉट प्रत्येक मोटर के वेग को नियंत्रित करने औरको मोटर कार्यों को नियंत्रित करने में सक्षम बनाने के लिए(), right_motor.set_velocity(), left_motor.spin(), right_motor.spin(), left_motor_speed = controller_1.axis3.position(), और right_motor_speed = controller_1.axis2.position() निर्देशों में पैरामीटर समायोजित करने की आवश्यकता होगी

किसी भी निर्देश के बारे में अधिक जानकारी के लिए, VEXcode V5 में Pythonसहायता अनुभाग पर जाएँ।

इस गतिविधि में छात्र क्या करेंगे, इसका संक्षिप्त विवरण नीचे दिया गया है:

  1. टैंक कंट्रोल उदाहरण प्रोजेक्ट का अन्वेषण करें।
  2. while True अनंत लूपसंरचना के उपयोग को समझें।
  3. रोबो-स्लालॉम चुनौती को पूरा करें!

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

यदि छात्र पहली बार VEXcode V5 का उपयोग कर रहे हैं, तो वे VEX लाइब्रेरी में कईलेख देख सकते हैं

सामग्री की आवश्यकता:
मात्रा आवश्यक सामग्री
1

VEX V5 क्लासरूम स्टार्टर किट (नवीनतम फर्मवेयर के साथ)

1

VEXcode V5 (नवीनतम संस्करण, विंडोज, macOS)

1

इंजीनियरिंग नोटबुक

1

टैंक नियंत्रण उदाहरण परियोजना

2 या अधिक

कक्षा में बाधाओं के रूप में उपयोग की जाने वाली वस्तुएं

शिक्षक सुझाव आइकन शिक्षकों के लिए सुझाव - ऑटो-कंप्लीट का उपयोग करना

ऑटो-कंप्लीट VEXcode V5 का एक फीचर है जो आपके द्वारा टाइप किए जा रहे कमांड के बाकी हिस्से का अनुमान लगाता है। चूंकि छात्र VEXcode V5 में काम कर रहे हैं, इसलिए उन्हें पायथन सिंटैक्स में मदद के लिए ऑटो-कंप्लीट सुविधा का उपयोग करने के लिए प्रोत्साहित करें। निर्देश टाइप करना शुरू करते समय आपको ऑटो-कंप्लीट फंक्शन दिखाई दे सकता है। अपनी पसंद का नाम चुनने के लिए "ऊपर" और "नीचे" कुंजियों का उपयोग करें, फिर चयन को अंतिम रूप देने के लिए अपने कीबोर्ड पर "टैब" या (एंटर/रिटर्न) दबाएं। इस फ़ीचर के बारे में अधिक जानकारी के लिए पायथन लेख देखें। 

VEXcode V5 में, बाईं ओर ड्राइवट्रेन कमांड का प्रारंभ टाइप किया जाता है, और दाईं ओर, उस कमांड के लिए स्वतः पूर्ण विकल्पों की एक स्क्रॉल करने योग्य सूची दिखाई जाती है।

यह गतिविधि आपको अपने कंट्रोलर को प्रोग्राम करने के लिए आवश्यक उपकरण प्रदान करेगी। 

  • इस अध्ययन में उपयोग किए जाने वाले VEXcode V5 Python निर्देश:
    • left_motor.set_velocity()
    • right_motor.set_velocity()
    • left_motor.spin()
    • राइट_मोटर.स्पिन()
    • नियंत्रक_1.अक्ष2.स्थिति()
    • नियंत्रक_1.अक्ष3.स्थिति()
    • जबकि सत्य: 
    • प्रतीक्षा करें (5, सेकंड)

किसी भी निर्देश के बारे में अधिक जानकारी के लिए, VEXcode V5 में Python सहायता अनुभाग पर जाएँ। 

VEXcode V5 को दिखाया गया है, जिसमें सबसे बाईं ओर टूलबॉक्स खुला है और सबसे दाईं ओर ड्राइव कमांड के लिए सहायता खुली है। हेल्प बॉक्स में कमांड की परिभाषा और उसके उपयोग के तरीके के बारे में जानकारी दी गई है।

चरण 1: चलिए कंट्रोलर की प्रोग्रामिंग शुरू करते हैं।

  • फ़ाइल चुनें और उदाहरण खोलें।
  • VEXcode V5 टूलबार में फ़ाइल मेनू खुला हुआ है और ओपन एग्जांपल्स को लाल बॉक्स में हाइलाइट किया गया है। ओपन एग्जांपल्स, न्यू ब्लॉक्स प्रोजेक्ट, न्यू टेक्स्ट प्रोजेक्ट और ओपन के नीचे स्थित चौथा मेनू आइटम है।
  • विभिन्न उदाहरण परियोजनाओं के माध्यम से स्क्रॉल करें। टैंक कंट्रोल उदाहरण प्रोजेक्ट का चयन करें।

VEXcode V5 में उदाहरण प्रोजेक्ट, जिसमें शीर्ष पर सेंसिंग फ़िल्टर के चारों ओर एक लाल बॉक्स है और निचले दाएं कोने में टैंक कंट्रोल उदाहरण प्रोजेक्ट आइकन है।

  • टैंक कंट्रोल उदाहरण प्रोजेक्ट खोलें। उदाहरण परियोजना ड्राइवट्रेन और नियंत्रक को कॉन्फ़िगर करती है। कोड कुछ इस प्रकार दिखेगा:
# लाइब्रेरी आयात
vex से आयात *

# प्रोजेक्ट कोड प्रारंभ
# मोटर्स को नियंत्रक अक्ष स्थितियों पर सेट करने के लिए मुख्य नियंत्रक लूप
जबकि सत्य:
    left_motor.set_velocity(controller_1.axis3.position(), PERCENT)
    right_motor.set_velocity(controller_1.axis2.position(), PERCENT)
    left_motor.spin(FORWARD)
    right_motor.spin(FORWARD)
    wait(5, MSEC)

अपनी इंजीनियरिंग नोटबुक में निम्नलिखित कार्य करें:

  1. अनुमान लगाइए कि इस परियोजना में क्लॉबॉट क्या कार्य करेगा। इस तथ्य से कहीं अधिक विस्तार से बताएं कि परियोजना में कंट्रोलर का उपयोग किया जाता है।
  2. जॉयस्टिक रोबोट को कैसे हिलाते हैं? क्लॉबॉट क्या कर रहा है?

शिक्षक टूलबॉक्स आइकन शिक्षक टूलबॉक्स - उत्तर

  1. यह प्रोजेक्ट लेफ्ट और राइट जॉयस्टिक की स्थिति की लगातार जांच करने के लिए while True अनंत लूप संरचना का उपयोग करेगा। जब बाएँ (या दाएँ) जॉयस्टिक को ऊपर की ओर धकेला जाता है, तो जॉयस्टिक को आगे की ओर धकेलने की गति निर्धारित हो जाती है। 
  2. इस प्रकार, जॉयस्टिक को जितना आगे धकेला जाएगा, वेग उतना ही तेज होगा और मोटरें उतनी ही तेजी से चलेंगी। जॉयस्टिक को पीछे धकेलने के लिए भी यही तरीका काम करता है। जॉयस्टिक को जितना पीछे की ओर धकेला जाएगा, मोटरें उतनी ही तेजी से विपरीत दिशा में चलेंगी।
  • प्रोजेक्ट का नाम टैंक कंट्रोल रखें। Python TankControl प्रोजेक्ट को सेव करें, डाउनलोड करें और चलाएं।

VEXcode V5 में प्रोजेक्ट नाम डायलॉग बॉक्स में टैंक कंट्रोल लिखा हुआ है, और यह दर्शाता है कि स्लॉट 1 का चयन किया गया है।

  • अधिक सहायता जानकारी के लिए, VEXcode V5 में ट्यूटोरियल वीडियो देखें जो बताता है कि प्रोजेक्ट को कैसे डाउनलोड और रन किया जाता है।

VEXcode V5 में टूलबार, जिसमें ट्यूटोरियल आइकन के चारों ओर एक लाल बॉक्स है। टूलबार में बाएं से दाएं V5 का लोगो, ग्लोब का आइकन, फाइल और फिर ट्यूटोरियल दिखाई देते हैं।

  • अपनी इंजीनियरिंग नोटबुक में प्रोजेक्ट के बारे में दिए गए स्पष्टीकरणों की जाँच करें और आवश्यकतानुसार उनमें सुधार करने के लिए नोट्स जोड़ें।

चरण 2: नियंत्रक: टैंक नियंत्रण

शिक्षक टूलबॉक्स आइकन शिक्षक टूलबॉक्स - व्हाइल ट्रू अनंत लूप संरचनाएं

इस चरण में while True अनंत लूप संरचना के महत्व पर चर्चा की गई है। आपको कक्षा के रूप में इस जानकारी की समीक्षा करनी चाहिए। आप अपने क्लॉबॉट और कंट्रोलर के साथ व्यवहार का मॉडल बना सकते हैं, या यदि समय अनुमति देता है, तो छात्रों को while True अनंत लूप संरचना के बिना प्रोग्राम चलाने दें।

यदि छात्रों को while True अनंत लूप को समझने में और सहायता की आवश्यकता है, तो यहां क्लिक करें ।

अनंत लूप संरचना ( while True का उपयोग करने के क्या लाभ हैं?

यह हमारा प्रोजेक्ट है जिसमें while True अनंत लूप संरचना शामिल नहीं है:

# लाइब्रेरी आयात
vex से आयात *

# प्रोजेक्ट कोड प्रारंभ
# मोटर्स को नियंत्रक अक्ष स्थितियों पर सेट करने के लिए मुख्य नियंत्रक लूप

left_motor.set_velocity(controller_1.axis3.position(), PERCENT)
right_motor.set_velocity(controller_1.axis2.position(), PERCENT)
left_motor.spin(FORWARD)
right_motor.spin(FORWARD)


आपके विचार से इस प्रोग्राम को चलाने पर क्या होगा? समूह में चर्चा करें। अपनी भविष्यवाणी को इंजीनियरिंग नोटबुक में लिख लें।

शिक्षक टूलबॉक्स आइकन शिक्षक टूलबॉक्स - संरचना को समझना

while True अनंत लूप के बिना, प्रत्येक मोटर के लिए वेग का मान प्रोजेक्ट चलने के तुरंत बाद सेट हो जाता है, और वह मान प्रोजेक्ट बंद होने तक स्थिर रहता है। दूसरे शब्दों में, यदि आप जॉयस्टिक को हिलाए बिना प्रोजेक्ट चलाते हैं, क्योंकि जॉयस्टिक की अपनी धुरी पर डिफ़ॉल्ट स्थिति 0 होती है, तो जॉयस्टिक को हिलाने पर भी दोनों मोटरों का वेग 0 ही रहेगा।

इसी तरह, मान लीजिए कि आप बाएं जॉयस्टिक को अक्ष 3 के साथ जितना हो सके ऊपर ले जाते हैं और उसे वहीं रोक कर रखते हैं। यदि आप ऊपर दिए गए प्रोजेक्ट को चलाते हैं, तो बायां मोटर पूरी गति से चलेगा और यदि आप जॉयस्टिक को अक्ष 3 के साथ नीचे की ओर ले जाते हैं तो भी वह उसी गति से चलता रहेगा। ऐसा इसलिए है क्योंकि क्लॉबॉट को प्रोजेक्ट शुरू होते ही कंट्रोलर से अपना प्रारंभिक निर्देश मिल जाता है; हालांकि, लूप के बिना, वह प्रारंभिक मान अपडेट नहीं हो सकता।

while True अनंत लूप क्लॉबॉट को वेग को लगातार अपडेट करने और प्रोजेक्ट की अवधि तक चलने के लिए कहता है। दूसरे शब्दों में, इस प्रोजेक्ट में मौजूद अनंत लूप ( while True आपको जॉयस्टिक को अक्ष 2 या 3 के साथ घुमाकर प्रत्येक मोटर की गति को बदलने में सक्षम बनाता है, और क्लॉबॉट तदनुसार प्रतिक्रिया देगा जब तक आप प्रोजेक्ट को रोक नहीं देते या क्लॉबॉट को बंद नहीं कर देते।

# लाइब्रेरी आयात
vex से आयात *

# प्रोजेक्ट कोड प्रारंभ
# मोटर्स को नियंत्रक अक्ष स्थितियों पर सेट करने के लिए मुख्य नियंत्रक लूप
जबकि सत्य:
    left_motor.set_velocity(controller_1.axis3.position(), PERCENT)
    right_motor.set_velocity(controller_1.axis2.position(), PERCENT)
    left_motor.spin(FORWARD)
    right_motor.spin(FORWARD)
    wait(5, MSEC)

स्लालॉम कोर्स को पार करें!

शिक्षक टूलबॉक्स आइकन शिक्षक टूलबॉक्स - गतिविधि की स्थापना करें

छात्रों को 2 या 4 छात्रों के छोटे समूहों में संगठित करें। एक छात्र को ड्राइवर के रूप में नामित किया जाना चाहिए - वह व्यक्ति जो क्लॉबॉट को चलाने के लिए कंट्रोलर का उपयोग करेगा।

छात्रों को कंट्रोलर का उपयोग करके क्लॉबॉट को प्रत्येक "झंडे" के बाहरी हिस्से के साथ-साथ ले जाकर इस स्लैलम को पूरा करने के लिए कहें। क्लॉबॉट का मार्ग ऐसा होना चाहिए कि वह किसी भी झंडे को न छू सके और फिनिश लाइन को पार कर सके। फ्लैग किसी भी क्लासरूम सामग्री/वस्तु हो सकती है जो आपके पास आसानी से उपलब्ध हो (इरेज़र, टेप का रोल, टिशू बॉक्स) और क्लॉबॉट को चलाने से पहले इसे जगह पर सेट किया जा सकता है।

यदि समय अनुमति दे, तो छात्रों को भूमिकाएँ बदलने दें ताकि दूसरों को भी क्लॉबॉट चलाने का अवसर मिल सके। आप इसे समूहों के भीतर या समूहों के बीच एक प्रतियोगिता में भी बदल सकते हैं, यह देखकर कि प्रत्येक ड्राइवर कितनी जल्दी स्लैलम को पार कर सकता है।

एक स्नोबोर्डर बर्फ से ढकी ढलान पर तेजी से नीचे की ओर जा रहा है, और ज़िगज़ैग पैटर्न में लगे लाल और नीले गेटों की एक श्रृंखला से होकर गुजर रहा है।

स्लालॉम ऐसे कोर्स होते हैं जिनमें प्रतिभागी को निर्धारित झंडों या मार्करों के चारों ओर चक्कर लगाना होता है। स्की स्लैलम एक लोकप्रिय शीतकालीन खेल है और इसे शीतकालीन ओलंपिक में शामिल किया गया है।
जबकि कंट्रोलर पेयर हो चुका है और प्रोजेक्ट डाउनलोड हो है, आप कंट्रोलर का उपयोग करके अपने क्लॉबॉट को चलाने के लिए तैयार हैं!

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

बर्फ पर बने स्लैलम कोर्स का एक चित्र, जिसमें ऊपर 'स्टार्ट' का लेबल और नीचे 'फिनिश लाइन' का लेबल लगा है। इनके बीचोंबीच में, नीले और लाल झंडों के बीच एक बिंदीदार टेढ़ी-मेढ़ी रेखा बनी हुई है।

कंट्रोलर का उपयोग करके अपने क्लॉबॉट को प्रत्येक "झंडे" के बाहरी हिस्से के साथ-साथ ले जाएं। रोबोट का मार्ग ऐसा होना चाहिए कि वह किसी भी झंडे को न छू सके और उसे फिनिश लाइन पार करने की अनुमति मिल सके।

  • प्रोजेक्ट चलाएं और दोनों जॉयस्टिक का उपयोग करके क्लॉबॉट को आगे और पीछे चलाएं, और उसे बाएं और दाएं मोड़ें।
  • क्लॉबॉट को कोर्स पूरा करने में कितना समय लगता है, इसका समय नोट करें। इंजीनियरिंग नोटबुक में समय का विवरण दर्ज करें।
  • आप क्लॉबॉट को स्लैलम कोर्स से कितनी तेजी से गुजार सकते हैं?
     

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

प्रश्न: क्या क्लॉबॉट ने कंट्रोलर को आपकी अपेक्षा के अनुसार प्रतिक्रिया दी?

ए: उत्तर अलग-अलग हो सकते हैं; हालाँकि, इस प्रश्न का उद्देश्य संज्ञानात्मक सोच को बढ़ावा देना है। छात्रों ने परीक्षण करने से पहले व्यवहारों की भविष्यवाणी करके, अपने परिणामों को दर्ज करके और उन पर विचार करके शुरुआत की।

प्रश्न क्लॉबॉट को सीधी रेखा में आगे या पीछे ले जाने में सबसे बड़ी चुनौती क्या है?

A: हालांकि उत्तर अलग-अलग हो सकते हैं, लेकिन एक सामान्य उत्तर यह होना चाहिए कि क्लॉबॉट के मोटर्स को एक ही दिशा में और एक ही गति से चलाने के लिए दोनों जॉयस्टिक को एक दूसरे के साथ तालमेल बिठाकर चलना चाहिए।

प्रश्न: उपयोग करके आप क्लॉबॉट को लगातार चलाने के लिएका उपयोग कैसे कर सकते हैं?

A: के बिना, क्लॉबॉट प्रोजेक्ट में दिएनिर्देशों के अनुसार व्यवहार केवल एक बार ही करेगा while True अनंत लूप क्लॉबॉट को वेग को लगातार अपडेट करने और प्रोजेक्ट की अवधि तक चलने के लिए कहता है। दूसरे शब्दों में, while True अनंत लूप आपको कंट्रोलर का उपयोग करके क्लॉबॉट को अनिश्चित काल तक, या बैटरी खत्म होने तक चलाने में सक्षम बनाता है।