मस्तिष्क की स्क्रीन में दूसरा बटन जोड़ना - पायथन
शिक्षक टूलबॉक्स
-
इस गतिविधि का उद्देश्य
अब जबकि छात्रों को मस्तिष्क की स्क्रीन को एक बड़े बटन की तरह इस्तेमाल करने का अनुभव हो गया है, वे स्क्रीन को दो बटनों में बदल सकते हैं। यह गतिविधि छात्रों को सशर्त कथनों को बेहतर ढंग से प्रबंधित करने और ऐसा करने के अंतर्निहित तर्क को समझने के लिए नेस्टेड इफ-एल्स कथनों का उपयोग करने से परिचित कराएगी। छात्रों को सबसे पहले स्क्रीन पर बटन दबाने से रोबोट के बाएं या दाएं मुड़ने की सुविधा वाला प्रोजेक्ट बनाने के लिए मार्गदर्शन दिया जाता है। लेकिन, फिर उनसे बटन बदलने के लिए कहा जाता है ताकि जो बटन रोबोट को बाईं ओर घुमाता था, वही उसे दाईं ओर घुमाए, और इसके विपरीत।
इस गतिविधि में प्रयुक्त if and if-else कथनों या अन्य कथनों के बारे में अधिक जानकारी के लिए, VEXcode V5 के भीतर सहायता जानकारी देखें। इस अंतर्निहित सहायता उपकरण के बारे में अधिक जानकारी के लिए, लेख देखें
इस गतिविधि में आपके छात्र क्या करेंगे, इसका संक्षिप्त विवरण नीचे दिया गया है:
- स्टॉपऑरड्राइव प्रोजेक्ट की समीक्षा और मस्तिष्क की स्क्रीन के पिक्सल लेआउट का विश्लेषण।
- प्रोग्रामिंग के तर्क को समझते हुए एक नया LeftOrRight प्रोजेक्ट बनाना।
- प्रोजेक्ट को इस तरह से संशोधित करना कि स्क्रीन पर मौजूद बटन विपरीत दिशा में काम करें।
- अपने ज्ञान का विस्तार करें: स्क्रीन को दो बटनों में विभाजित करें, जिन्हें दबाने पर रोबोट बाएं या दाएं मुड़ जाता है।
सुनिश्चित करें कि आपके पास आवश्यक हार्डवेयर, आपका इंजीनियरिंग नोटबुक और VEXcode V5 तैयार हैं।
| मात्रा | आवश्यक सामग्री |
|---|---|
| 1 |
VEX V5 क्लासरूम स्टार्टर किट (नवीनतम फर्मवेयर के साथ) |
| 1 |
VEXcode V5 (नवीनतम संस्करण, विंडोज, macOS) |
| 1 |
इंजीनियरिंग नोटबुक |
| 1 |
StopOrDrive प्रोजेक्ट पिछले प्ले पेज से |
मस्तिष्क की स्क्रीन पर एक से अधिक बटन हो सकते हैं।
यह गतिविधि आपको रोबोट को आगे बढ़ने और मस्तिष्क की स्क्रीन के किस तरफ बटन दबाया गया है, उसके आधार पर बाएं या दाएं मुड़ने के लिए प्रोग्राम करने देगी।
इस गतिविधि के दौरान आपको जिन तीन अतिरिक्त प्रकार के आदेशों की आवश्यकता होगी, वे निम्नलिखित हैं:
- ड्राइवट्रेन.टर्न(दाएं)
- संख्या < 50
- ब्रेन.स्क्रीन.एक्स_पोजिशन()
आप निर्देशों के बारे में जानने के लिए 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)स्क्रीन को दो बटनों में विभाजित करने के लिए, हमें स्क्रीन के लेआउट के बारे में अधिक समझने की आवश्यकता है।

- ध्यान दें कि स्तंभों की संख्या बाएं से दाएं ओर बढ़ती जाती है। कॉलमों की संख्या 48 है और स्क्रीन की चौड़ाई 480 पिक्सल है।
- अपनी इंजीनियरिंग नोटबुक में लिख लें कि स्क्रीन पर x का मान बाएं से दाएं मापे गए पिक्सेल की संख्या के बराबर होता है।
- स्क्रीन के केंद्र का x-मान क्या है? इस गतिविधि के लिए, आप केवल x-अक्ष पर ध्यान केंद्रित कर सकते हैं क्योंकि आपको केवल बाएँ और दाएँ बटन की आवश्यकता है।
शिक्षक टूलबॉक्स
-
उत्तर
स्क्रीन के केंद्र में x-मान, पिक्सल में स्क्रीन की चौड़ाई के आधे के बराबर होता है। अतः केंद्र बिंदु का x-मान 240 है। स्क्रीन को बाईं ओर या दाईं ओर दबाया गया है या नहीं, इसके लिए सशर्त प्रोग्राम करने के लिए छात्रों को इस संख्या की आवश्यकता होगी। इसलिए यह सुनिश्चित कर लें कि उन सभी का मान सही हो।
आगे चलकर, रीथिंक सेक्शन में यूजर इंटरफेस चैलेंज के लिए छात्रों को स्क्रीन पर चार बटन बनाने के लिए अपने सीखे हुए ज्ञान को लागू करने की आवश्यकता होगी। इसलिए, इसके लिए उन्हें x और y दोनों के मानों की आवश्यकता होगी।
शिक्षक सुझाव
अधिक सहायता के लिए, पूरक सहायता लेखों के लिएVEX लाइब्रेरीदेखें।
चरण 2: दो बटनों के लिए प्रोग्रामिंग।
- SaveStopOrDriveas theLeftOrRightproject.
- नीचे दिए गए प्रोजेक्ट को बनाएं। स्क्रीन को दबाने पर क्लॉबॉट बाईं या दाईं ओर मुड़ेगा, यह इस बात पर निर्भर करेगा कि स्क्रीन किस तरफ दबाई गई है।
# प्रोजेक्ट कोड प्रारंभ करें
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 से कम नहीं है (बाएं मुड़ें), तो यह निश्चित रूप से अधिक होगा (दाएं मुड़ें)। हमें केवल दो बटनों के बारे में चिंता करनी है।
जबकि और प्रतीक्षाप्रत्येक बारी के बाद नियंत्रण कमांड प्रोजेक्ट को तब तक प्रतीक्षा करने के लिए कहते हैं जब तक कि स्क्रीन दबाना बंद न हो जाए, उसके बाद ही आगे बढ़ते हैं।

- अब जब प्रोजेक्ट पूरा हो गया है, तो इसे डाउनलोड करें और चलाकर देखें कि यह कैसे काम करता है।

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

प्रश्न: स्क्रीन के दाहिने किनारे पर 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)अधिक व्यावहारिक और पेशेवर अनुभव के लिए, छात्रों को अपने सहपाठियों से उनके द्वारा चुने गए दो रंगों पर प्रतिक्रिया मांगने के लिए कहें।
क्या चुने गए रंग आपको इंटरफ़ेस का उपयोग करने के लिए प्रेरित करते हैं, या उपयोगकर्ता के रूप में वे कौन से रंग पसंद करेंगे?
एक बेहतरीन यूजर इंटरफेस विकसित करने का एक हिस्सा यूजर एक्सपीरियंस के बारे में डेटा एकत्र करना है, जिसमें सौंदर्य संबंधी प्राथमिकताएं भी शामिल हैं।