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

मस्तिष्क की स्क्रीन में दूसरा बटन जोड़ना - पायथन

शिक्षक टूलबॉक्स आइकन शिक्षक टूलबॉक्स - इस गतिविधि का उद्देश्य

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

इस गतिविधि में प्रयुक्त if and if-else कथनों या अन्य कथनों के बारे में अधिक जानकारी के लिए, VEXcode V5 के भीतर सहायता जानकारी देखें। इस अंतर्निहित सहायता उपकरण के बारे में अधिक जानकारी के लिए, लेख देखें

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

  • स्टॉपऑरड्राइव प्रोजेक्ट की समीक्षा और मस्तिष्क की स्क्रीन के पिक्सल लेआउट का विश्लेषण।
  • प्रोग्रामिंग के तर्क को समझते हुए एक नया LeftOrRight प्रोजेक्ट बनाना।
  • प्रोजेक्ट को इस तरह से संशोधित करना कि स्क्रीन पर मौजूद बटन विपरीत दिशा में काम करें।
  • अपने ज्ञान का विस्तार करें: स्क्रीन को दो बटनों में विभाजित करें, जिन्हें दबाने पर रोबोट बाएं या दाएं मुड़ जाता है।
     

सुनिश्चित करें कि आपके पास आवश्यक हार्डवेयर, आपका इंजीनियरिंग नोटबुक और VEXcode V5 तैयार हैं।

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

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

1

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

1

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

1

StopOrDrive प्रोजेक्ट पिछले प्ले पेज से

मस्तिष्क की स्क्रीन पर एक से अधिक बटन हो सकते हैं।

यह गतिविधि आपको रोबोट को आगे बढ़ने और मस्तिष्क की स्क्रीन के किस तरफ बटन दबाया गया है, उसके आधार पर बाएं या दाएं मुड़ने के लिए प्रोग्राम करने देगी।

इस गतिविधि के दौरान आपको जिन तीन अतिरिक्त प्रकार के आदेशों की आवश्यकता होगी, वे निम्नलिखित हैं:

  • ड्राइवट्रेन.टर्न(दाएं)
  • संख्या < 50
  • ब्रेन.स्क्रीन.एक्स_पोजिशन()

आप निर्देशों के बारे में जानने के लिए VEXcode V5 के अंदर मौजूद हेल्प जानकारी का उपयोग कर सकते हैं।

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

चरण 1: आइए सबसे पहले StopOrDrive प्रोजेक्ट की समीक्षा करें।

आइए सबसे पहले StopOrDrive प्रोजेक्ट की समीक्षा करें।

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

# प्रोजेक्ट कोड प्रारंभ करें
while True:
    if brain.screen.pressing():
        drivetrain.stop()
        while brain.screen.pressing():
            wait(5, MSEC)
    else:
        drivetrain.drive(FORWARD)
    wait(5, MSEC)

स्क्रीन को दो बटनों में विभाजित करने के लिए, हमें स्क्रीन के लेआउट के बारे में अधिक समझने की आवश्यकता है।

V5 ब्रेन स्क्रीन का पिक्सेल ग्रिड बाईं ओर 12 क्रमांकित पंक्तियाँ दिखाता है, जिसमें सबसे ऊपर वाली पंक्ति को पंक्ति 1 और सबसे नीचे वाली पंक्ति को पंक्ति 12 के रूप में चिह्नित किया गया है। सबसे ऊपर 48 क्रमांकित स्तंभ हैं, जिनमें से स्तंभ 1 सबसे बाईं ओर और स्तंभ 48 सबसे दाईं ओर अंकित है। कुल पिक्सेल माप 480px चौड़ाई और 240 px ऊंचाई है।

  • ध्यान दें कि स्तंभों की संख्या बाएं से दाएं ओर बढ़ती जाती है। कॉलमों की संख्या 48 है और स्क्रीन की चौड़ाई 480 पिक्सल है।
  • अपनी इंजीनियरिंग नोटबुक में लिख लें कि स्क्रीन पर x का मान बाएं से दाएं मापे गए पिक्सेल की संख्या के बराबर होता है।
  • स्क्रीन के केंद्र का x-मान क्या है? इस गतिविधि के लिए, आप केवल x-अक्ष पर ध्यान केंद्रित कर सकते हैं क्योंकि आपको केवल बाएँ और दाएँ बटन की आवश्यकता है।

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

स्क्रीन के केंद्र में x-मान, पिक्सल में स्क्रीन की चौड़ाई के आधे के बराबर होता है। अतः केंद्र बिंदु का x-मान 240 है। स्क्रीन को बाईं ओर या दाईं ओर दबाया गया है या नहीं, इसके लिए सशर्त प्रोग्राम करने के लिए छात्रों को इस संख्या की आवश्यकता होगी। इसलिए यह सुनिश्चित कर लें कि उन सभी का मान सही हो।

आगे चलकर, रीथिंक सेक्शन में यूजर इंटरफेस चैलेंज के लिए छात्रों को स्क्रीन पर चार बटन बनाने के लिए अपने सीखे हुए ज्ञान को लागू करने की आवश्यकता होगी। इसलिए, इसके लिए उन्हें x और y दोनों के मानों की आवश्यकता होगी।

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

अधिक सहायता के लिए, पूरक सहायता लेखों के लिएVEX लाइब्रेरीदेखें।

चरण 2: दो बटनों के लिए प्रोग्रामिंग।

  • SaveStopOrDriveas theLeftOrRightproject.

VEXcode V5 टूलबार में प्रोजेक्ट नाम डायलॉग बॉक्स में Left या Right लिखा होता है और दिखाता है कि Slot 2 चयनित है।

  • नीचे दिए गए प्रोजेक्ट को बनाएं। स्क्रीन को दबाने पर क्लॉबॉट बाईं या दाईं ओर मुड़ेगा, यह इस बात पर निर्भर करेगा कि स्क्रीन किस तरफ दबाई गई है।
# प्रोजेक्ट कोड प्रारंभ करें
while True:
    if brain.screen.pressing():
        if brain.screen.x_position() < 240:
            drivetrain.turn(LEFT)
            while brain.screen.pressing():
                wait(5, MSEC)
        else:
            drivetrain.turn(RIGHT)
            while brain.screen.pressing():
                wait(5, MSEC)
    else:
        drivetrain.drive(FORWARD)
    wait(5, MSEC)
  • आइए इस प्रोजेक्ट के कार्यों की समीक्षा करें।

    यह लगातार जांच करता रहता है कि स्क्रीन को दबाया गया है या नहीं। यदि स्क्रीन दबाई नहीं जाती है तो यह आगे बढ़ती है, लेकिन यदि दबाई जाती है, तो यह जांच करती है कि स्क्रीन कहाँ दबाई गई है।

    यदि दबाना बाईं ओर (240 से कम) था, तो यह बाईं ओर मुड़ जाती है। अन्यथा, यह दाईं ओर मुड़ जाता है। हमें x का मान 240 से अधिक होने के लिए किसी अन्य शर्त की आवश्यकता नहीं है क्योंकि यदि यह 240 से कम नहीं है (बाएं मुड़ें), तो यह निश्चित रूप से अधिक होगा (दाएं मुड़ें)। हमें केवल दो बटनों के बारे में चिंता करनी है।

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

लेफ्ट या राइट प्रोजेक्ट को उन कमांड्स के साथ दिखाया गया है जिन्हें उनकी कार्यक्षमता के अनुसार लेबल किया गया है। While true और first if कमांड को "स्क्रीन दबाई गई है या नहीं, यह जांचता रहता है" के रूप में लेबल किया गया है। अगली नेस्टेड इफ कमांड को लेबल किया गया है, जिसमें लिखा है कि स्क्रीन दबाए जाने पर, यह जांचता है कि स्क्रीन बाईं ओर है या दाईं ओर। अगले मोड़ के आदेश को इस प्रकार चिह्नित किया गया है कि यदि बाईं ओर दबाया गया था (240 से कम, बाईं ओर मुड़ता है), तो प्रतीक्षा करें आदेश को इस प्रकार चिह्नित किया गया है कि जारी रखने से पहले स्क्रीन को दबाए रखना बंद कर दें। एल्स ब्रांच में अगला टर्न राइट कमांड लेबल किया गया है कि यदि प्रेस बाईं ओर नहीं था (240 से कम), तो दाईं ओर मुड़ता है, और वेट अंटिल कमांड लेबल किया गया है कि जारी रखने से पहले स्क्रीन के दबाए जाने तक प्रतीक्षा करता है। बाहरी एल्स शाखा को लेबल किया गया है कि स्क्रीन दबाई नहीं गई है, आगे बढ़ती है।

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

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

परीक्षण के दौरान, छात्रों को यह समझना चाहिए कि जब क्लॉबॉट के पीछे से यूजर इंटरफेस का उपयोग किया जाता है, तो वह विपरीत दिशा में काम करता हुआ प्रतीत होता है। उपयोगकर्ता के दृष्टिकोण से, क्लॉबॉट उस तरफ से मुड़ जाता है जिस तरफ उपयोगकर्ता द्वारा बटन दबाया जा रहा होता है। यह एक आदर्श उपयोगकर्ता अनुभव नहीं है।

चरण 3: बेहतर उपयोगकर्ता अनुभव के लिए प्रोजेक्ट को समायोजित करें।

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

  • LeftOrRight प्रोजेक्ट की समीक्षा करें और इसे इस प्रकार संशोधित करें कि जब उपयोगकर्ता क्लॉबॉट के पीछे से बटन दबाता है, तो उपयोगकर्ता द्वारा स्क्रीन के बाईं ओर बटन दबाने पर रोबोट दाईं ओर मुड़ जाए। अन्यथा, क्लॉबॉट बाईं ओर मुड़ जाएगा।
# प्रोजेक्ट कोड प्रारंभ करें
while True:
    if brain.screen.pressing():
        if brain.screen.x_position() < 240:
            drivetrain.turn(LEFT)
            while brain.screen.pressing():
                wait(5, MSEC)
        else:
            drivetrain.turn(RIGHT)
            while brain.screen.pressing():
                wait(5, MSEC)
    else:
        drivetrain.drive(FORWARD)
    wait(5, MSEC)
  • इस प्रोजेक्ट की योजना बनाएं, इसका परीक्षण करें और इसमें सुधार करें, और इसे अपनी इंजीनियरिंग नोटबुक में दस्तावेज़ित करें ताकि यह सुनिश्चित हो सके कि क्लॉबॉट स्क्रीन के उस तरफ मुड़ जाए जिस तरफ उपयोगकर्ता क्लॉबॉट के पीछे से बटन दबा रहा है।

शिक्षक टूलबॉक्स आइकन शिक्षक टूलबॉक्स

छात्रों को अपनी इंजीनियरिंग नोटबुक में इन परिवर्तनों का दस्तावेजीकरण करते हुए परियोजना में इन परिवर्तनों की योजना बनानी चाहिए, उनका परीक्षण करना चाहिए और उन्हें परिष्कृत करना चाहिए। व्यक्तिगत इंजीनियरिंग नोटबुक रूब्रिक के लिए, निम्नलिखित लिंक में से किसी एक पर क्लिक करें (Google Doc / .docx / .pdf), या टीम नोटबुक के लिए निम्नलिखित लिंक में से किसी एक पर क्लिक करें (Google Doc / .docx / .pdf)। छात्रों को काम शुरू करने से पहले स्कोरिंग के बारे में समझाना न भूलें।

शिक्षक टूलबॉक्स आइकन शिक्षक टूलबॉक्स - समाधान

ऊपर दी गई समस्या को हल करने के दो संभावित तरीके हैं। पहला तरीका वही है जो निर्देश में लिखा है: LeftOrRight प्रोजेक्ट की समीक्षा करें और इसे इस प्रकार संशोधित करें कि जब उपयोगकर्ता क्लॉबॉट के पीछे से बटन दबाता है, तो उपयोगकर्ता द्वारा स्क्रीन के बाईं ओर बटन दबाने पर रोबोट दाईं ओर मुड़ जाए। अन्यथा, क्लॉबॉट बाईं ओर मुड़ जाएगा।

# प्रोजेक्ट कोड प्रारंभ करें
while True:
    if brain.screen.pressing():
        if brain.screen.x_position() < 240:
            drivetrain.turn(RIGHT)
            while brain.screen.pressing():
                wait(5, MSEC)
        else:
            drivetrain.turn(LEFT)
            while brain.screen.pressing():
                wait(5, MSEC)
    else:
        drivetrain.drive(FORWARD)
    wait(5, MSEC)

दूसरा समाधान ऑपरेटर निर्देश को इस प्रकार बदलना है कि जब x का मान 240 से अधिक हो, तो क्लॉबॉट बाईं ओर मुड़ जाए। 

# प्रोजेक्ट कोड प्रारंभ करें
while True:
    if brain.screen.pressing():
        if brain.screen.x_position() < 240:
            drivetrain.turn(LEFT)
            while brain.screen.pressing():
                wait(5, MSEC)
        else:
            drivetrain.turn(RIGHT)
            while brain.screen.pressing():
                wait(5, MSEC)
    else:
        drivetrain.drive(FORWARD)
    wait(5, MSEC)

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

जब आपने x-मान 240 से कम होने पर सशर्त कथन को प्रोग्राम किया (स्क्रीन के बाईं ओर), तो आपको एक समन्वय तल से निर्देशांकों का उपयोग करने की आवश्यकता थी। ब्रेन की स्क्रीन पर विज़ुअल बटन दिखाने के लिए, आपको निर्देशांकों का उपयोग करना होगा
चरण 2 पर वापस जाएँ जहाँ आपको V5 रोबोट ब्रेन की स्क्रीन के निर्देशांक दिखाए गए थे।

V5 ब्रेन स्क्रीन का पिक्सेल ग्रिड बाईं ओर 12 क्रमांकित पंक्तियाँ दिखाता है, जिसमें सबसे ऊपर वाली पंक्ति को पंक्ति 1 और सबसे नीचे वाली पंक्ति को पंक्ति 12 के रूप में चिह्नित किया गया है। सबसे ऊपर 48 क्रमांकित स्तंभ हैं, जिनमें से स्तंभ 1 सबसे बाईं ओर और स्तंभ 48 सबसे दाईं ओर अंकित है। कुल पिक्सेल माप 480px चौड़ाई और 240 px ऊंचाई है।

प्रश्न: स्क्रीन के दाहिने किनारे पर x का मान क्या है?
x का मान
किनारे पर

के मान की सीमा 480 (0 से 480) है y-मान की सीमा क्या है?
A:y-मान की सीमा 240 (0 से 240) है।

Q:इस निर्देशांक तल का मूल बिंदु (0, 0) कहाँ है?
A:मूल बिंदु ऊपरी बाएँ ओर है।

Q:जब y-मान 0 के बराबर होता है, तो आप स्क्रीन के शीर्ष पर होते हैं। यह असामान्य क्यों है?
A:आमतौर पर, ऊपर जाने पर y-मान बढ़ता है, लेकिन V5 स्क्रीन पर, नीचे जाने पर y-मान बढ़ता है। लेकिन आप इसे इस तरह समझ सकते हैं कि स्क्रीन के ऊपरी बाएँ कोने में स्थित मूल बिंदु (0, 0) से दूर जाने पर y का मान बढ़ता जाता है।

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

रीथिंक सेक्शन के यूजर इंटरफेस चैलेंज में, छात्रों को एक ऐसा प्रोजेक्ट विकसित करने के लिए कहा जाएगा जो क्लॉबॉट के पंजे और हाथ को नियंत्रित करने के लिए स्क्रीन पर चार बटन बनाए। उस चुनौती के लिए, उनसे स्क्रीन पर दिखाए गए उन चार बटनों को भी दिखाने के लिए कहा जाता है। यह
अपनी शिक्षा का विस्तार करें
गतिविधि, पिछले पृष्ठ की तरह, उन्हें उस चुनौती के लिए तैयार करने में मदद करेगी क्योंकि उस चुनौती में चार बटन प्रोग्राम करने हैं, जबकि इसमें केवल दो हैं। छात्रों को प्रोग्राम में एक इवेंट जोड़ने के लिए कहें ताकि प्रोजेक्ट चलने पर स्क्रीन पर दो बटन दिखाई दें। छात्रों को सुझाव दें कि वे इवेंट्स के बारे में जानकारी के लिए VEXcode V5 में हेल्प फ़ीचर का उपयोग करें, विशेष रूप सेड्रा रेक्टेंगलकमांड की जानकारी के लिए। छात्रों को यह समझने के लिए निर्देशित करें कि ब्रेन की स्क्रीन को पिक्सेल की संख्या के आधार पर समन्वय प्रणाली में कैसे व्यवस्थित किया जाता है जब इसका उपयोगड्रॉ रेक्टेंगल कमांड में किया जाता है। उस कमांड के भीतर पैरामीटर सेट करने के लिए उन्हें यह समझना होगा। इसके अलावा, उन्हें कार्यक्रमों का प्रसारण करने का तरीका भी समझना होगा। इस मामले में, घटना बटन बनाना है। छात्रों को अपनी इंजीनियरिंग नोटबुक में परियोजना में
गए इन परिवर्तनों को दस्तावेजित करते हुए योजना बनानी चाहिए, उनका परीक्षण करना चाहिए और उन्हें परिष्कृत करना चाहिए
व्यक्तिगत इंजीनियरिंग नोटबुक रूब्रिक के लिए, निम्न में से किसी एक लिंक पर क्लिक करें (Google Doc / .docx / .pdf), या टीम नोटबुक के लिए निम्न में से किसी एक लिंक पर क्लिक करें (Google Doc / .docx / .pdf)।

यहाँ एक उदाहरण समाधान दिया गया है:

# प्रोजेक्ट कोड प्रारंभ
स्क्रीन_बटन = इवेंट()

def has_screen_buttons():
    brain.screen.set_fill_color(Color.GREEN)
    brain.screen.draw_rectangle(0, 0, 240, 120)
    brain.screen.set_fill_color(Color.PURPLE)
    brain.screen.draw_rectangle(240, 0, 480, 120)
    brain.screen.set_fill_color(Color.ORANGE)
    brain.screen.draw_rectangle(0, 120, 240, 240)
    brain.screen.set_fill_color(Color.CYAN)
    brain.screen.draw_rectangle(240, 120, 480, 240)
    wait(1, SECONDS)

स्क्रीन_बटन(has_screen_buttons)

while True:
    screen_buttons.broadcast()

    if brain.screen.pressing():

        if brain.screen.x_position() < 240:

            if brain.screen.y_position() < 120:
                claw_motor.spin(FORWARD)
                while brain.screen.pressing():
                    wait(5, MSEC)

            else:
                claw_motor.spin(REVERSE)
                while brain.screen.pressing():
                    wait(5, MSEC)

        else:
            if brain.screen.y_position() < 120:
                arm_motor.spin(FORWARD)
                while brain.screen.pressing():
                    wait(5, MSEC) 
            
            else:
                arm_motor.spin(REVERSE)
                while brain.screen.pressing():
                    wait(5, MSEC) 

       claw_motor.stop()
       arm_motor.stop()
       
    wait(5, MSEC)

अधिक व्यावहारिक और पेशेवर अनुभव के लिए, छात्रों को अपने सहपाठियों से उनके द्वारा चुने गए दो रंगों पर प्रतिक्रिया मांगने के लिए कहें।

क्या चुने गए रंग आपको इंटरफ़ेस का उपयोग करने के लिए प्रेरित करते हैं, या उपयोगकर्ता के रूप में वे कौन से रंग पसंद करेंगे?

एक बेहतरीन यूजर इंटरफेस विकसित करने का एक हिस्सा यूजर एक्सपीरियंस के बारे में डेटा एकत्र करना है, जिसमें सौंदर्य संबंधी प्राथमिकताएं भी शामिल हैं।