Skip to main content

नियंत्रक: टैंक ड्राइव एक्सप्लोरेशन - पायथन

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

टैंक नियंत्रण उदाहरण परियोजना का उपयोग करके छात्रों को नियंत्रक का उपयोग करके क्लॉबोट को नियंत्रित करने में सक्षम बनाया जाता है। छात्रों को क्लॉबोट प्रत्येक मोटरवेग को नियंत्रित करने और नियंत्रक को मोटर कार्यों को नियंत्रित करने सक्षम बनाने के लिए निर्देशोंपैरामीटर समायोजित करने की आवश्यकता होगी।

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

इस गतिविधि में विद्यार्थी क्या करेंगे, इसकी रूपरेखा निम्नलिखित है:

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

शिक्षक युक्तियाँ आइकन शिक्षक युक्तियाँ

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

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

VEX V5 क्लासरूम स्टार्टर किट (अप-टू-डेट फर्मवेयर के साथ)

1

VEXcode V5 (नवीनतम संस्करण, Windows, macOS)

1

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

1

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

2 या अधिक

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

शिक्षक युक्तियाँ आइकन शिक्षक सुझाव - स्वतः पूर्ण का उपयोग करना

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

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

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

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

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

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

चरण 1: आइए नियंत्रक की प्रोग्रामिंग शुरू करें।

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

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

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

# प्रोजेक्ट कोड शुरू करें
# मोटर्स को नियंत्रक अक्ष स्थिति पर सेट करने के लिए मुख्य नियंत्रक लूप
while True:
    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. इस प्रकार, जॉयस्टिक को जितना आगे धकेला जाएगा, वेग उतना ही तेज होगा और मोटरें उतनी ही तेजी से चलेंगी। जॉयस्टिक को पीछे धकेलने के लिए भी यही विचार काम करता है। जॉयस्टिक को जितना पीछे की ओर धकेला जाएगा, मोटरें उतनी ही तेजी से पीछे की ओर चलेंगी।
  • प्रोजेक्ट का नाम TankControlरखें. पायथन टैंककंट्रोल प्रोजेक्ट को सहेजें, डाउनलोड करें और चलाएं।

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

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

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

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

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

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

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

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

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

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

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

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

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 के साथ चलाकर प्रत्येक मोटर के वेग को बदलने में सक्षम बनाता है, और क्लॉबोट तब तक तदनुसार प्रतिक्रिया देगा जब तक आप परियोजना को रोक नहीं देते या क्लॉबोट को बंद नहीं कर देते।

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

# प्रोजेक्ट कोड शुरू करें
# मोटर्स को नियंत्रक अक्ष स्थिति पर सेट करने के लिए मुख्य नियंत्रक लूप
while True:
    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 के छोटे समूहों में संगठित करें। एक छात्र को ड्राइवर के रूप में नियुक्त किया जाना चाहिए - वह व्यक्ति जो क्लॉबोट को चलाने के लिए कंट्रोलर का उपयोग करेगा।

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

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

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

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

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

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

अपने क्लॉबोट को प्रत्येक "ध्वज" के बाहर ले जाने के लिए नियंत्रक का उपयोग करें। रोबोट का मार्ग उसे किसी भी झंडे को छूने से रोकना चाहिए, तथा उसे अंतिम रेखा पार करने की अनुमति देनी चाहिए।

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

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

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

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

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

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

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

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