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

चरण 1: आइए स्टॉपऑरड्राइव प्रोजेक्ट की समीक्षा करके शुरुआत करें।
आइए सबसे पहले स्टॉपऑरड्राइव प्रोजेक्ट की समीक्षा करें।
स्टॉपऑरड्राइव प्रोजेक्ट में क्लॉबॉट स्क्रीन बटन दबाने पर रुक जाता था, अन्यथा वह आगे बढ़ता था। पूरी स्क्रीन एक बड़ा बटन थी
लेकिन इस अगले प्रोजेक्ट में हम चाहते हैं कि स्क्रीन का आधा हिस्सा एक बटन हो और दूसरा आधा हिस्सा दूसरा बटन हो।
// प्रोजेक्ट कोड प्रारंभ करें
int main() {
// रोबोट कॉन्फ़िगरेशन प्रारंभ करना। दूर नहीं करते!
vexcodeInit();
while (true) {
ड्राइवट्रेन.ड्राइव(फॉरवर्ड);
if (ब्रेन.स्क्रीन.प्रेसिंग()) {
ड्राइवट्रेन.स्टॉप();
waitUntil(!ब्रेन.स्क्रीन.प्रेसिंग());
}
else {
ड्राइवट्रेन.ड्राइव(फॉरवर्ड);
}
}
} स्क्रीन को दो बटनों में विभाजित करने के लिए, हमें स्क्रीन के लेआउट के बारे में अधिक समझने की आवश्यकता है।

- ध्यान दें कि स्तंभों की संख्या बाएं से दाएं ओर बढ़ती जाती है। कॉलमों की संख्या 48 है और स्क्रीन की चौड़ाई 480 पिक्सल है।
- अपनी इंजीनियरिंग नोटबुक में लिख लें कि स्क्रीन पर x का मान बाएं से दाएं मापे गए पिक्सेल की संख्या के बराबर होता है।
- स्क्रीन के केंद्र का x-मान क्या है? इस गतिविधि के लिए, आप केवल x-अक्ष पर ध्यान केंद्रित कर सकते हैं क्योंकि आपको केवल बाएँ और दाएँ बटन की आवश्यकता है।
शिक्षक टूलबॉक्स
-
उत्तर
स्क्रीन के केंद्र में x-मान, पिक्सल में स्क्रीन की चौड़ाई के आधे के बराबर होता है। अतः केंद्र बिंदु का x-मान 240 है। छात्रों को इस संख्या की आवश्यकता होगी ताकि वे यह निर्धारित करने के लिए शर्त को प्रोग्राम कर सकें कि स्क्रीन को बाईं ओर दबाया गया है या दाईं ओर। इसलिए यह सुनिश्चित कर लें कि उन सभी का मान सही हो।
आगे चलकर, रीथिंक सेक्शन में यूजर इंटरफेस चैलेंज के लिए छात्रों को स्क्रीन पर चार बटन बनाने के लिए अपने सीखे हुए ज्ञान को लागू करने की आवश्यकता होगी। इसलिए, इसके लिए उन्हें x और y दोनों के मानों की आवश्यकता होगी।
शिक्षक सुझाव
अधिक सहायता के लिए, पूरक सहायता लेखों के लिएVEX लाइब्रेरीदेखें।
चरण 2: दो बटनों के लिए प्रोग्रामिंग।
- SaveStopOrDriveas theLeftOrRightproject.
- नीचे दिए गए प्रोजेक्ट को बनाएं। स्क्रीन को दबाने पर क्लॉबॉट बाईं या दाईं ओर मुड़ेगा, यह इस बात पर निर्भर करेगा कि स्क्रीन किस तरफ दबाई गई है।
// प्रोजेक्ट कोड प्रारंभ करें
int main() {
// रोबोट कॉन्फ़िगरेशन प्रारंभ करना। दूर नहीं करते!
vexcodeInit();
while (true) {
if (Brain.Screen.pressing()) {
if (Brain.Screen.xPosition() < 240) {
Drivetrain.turn(left);
waitUntil(!Brain.Screen.pressing());
} else {
Drivetrain.turn(right);
waitUntil(!Brain.Screen.pressing());
}
} else {
Drivetrain.drive(forward);
}
}
} - आइए इस प्रोजेक्ट के कार्यों की समीक्षा करें।
यह लगातार जांच करता रहता है कि स्क्रीन को दबाया गया है या नहीं। यदि स्क्रीन दबाई नहीं जाती है तो यह आगे बढ़ती है, लेकिन यदि दबाई जाती है, तो यह जांच करती है कि स्क्रीन कहाँ दबाई गई है।
यदि दबाना बाईं ओर (240 से कम) था, तो यह बाईं ओर मुड़ जाती है। अन्यथा, यह दाईं ओर मुड़ जाता है। हमें x का मान 240 से अधिक होने के लिए किसी अन्य शर्त की आवश्यकता नहीं है क्योंकि यदि यह 240 से कम नहीं है (बाएं मुड़ें), तो यह निश्चित रूप से अधिक होगा (दाएं मुड़ें)। हमें केवल दो बटनों के बारे में चिंता करनी है।
तक प्रतीक्षा करें। प्रत्येक बारी के बाद नियंत्रण निर्देश यह सुनिश्चित करते हैं कि प्रोजेक्ट तब तक प्रतीक्षा करे जब तक स्क्रीन दबाना बंद न हो जाए, उसके बाद ही आगे बढ़े।

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

- अपनी इंजीनियरिंग नोटबुक में इस बात का ध्यान रखें कि बटन क्लॉबॉट की गतिविधियों को कैसे नियंत्रित करते हैं।
शिक्षक सुझाव
परीक्षण के दौरान, छात्रों को यह समझना चाहिए कि जब क्लॉबॉट के पीछे से यूजर इंटरफेस का उपयोग किया जाता है, तो वह विपरीत दिशा में काम करता हुआ प्रतीत होता है। उपयोगकर्ता के दृष्टिकोण से, क्लॉबॉट उस तरफ से मुड़ जाता है जिस तरफ उपयोगकर्ता द्वारा बटन दबाया जा रहा होता है। यह एक आदर्श उपयोगकर्ता अनुभव नहीं है।
चरण 3: बेहतर उपयोगकर्ता अनुभव के लिए प्रोजेक्ट को समायोजित करें।
जब क्लॉबॉट आगे बढ़ रहा होता था, तो उसके पीछे से स्क्रीन के बटन दबाने पर आप बाईं ओर मुड़ने के लिए स्क्रीन के दाईं ओर और दाईं ओर मुड़ने के लिए स्क्रीन के बाईं ओर दबाते थे। यह एक अच्छा उपयोगकर्ता अनुभव नहीं है। उपयोगकर्ता अनुभव से तात्पर्य यह है कि कोई उपयोगकर्ता कंप्यूटर सिस्टम को नियंत्रित करने के लिए यूजर इंटरफेस के साथ कितनी अच्छी तरह से बातचीत कर सकता है। इस लैब के
लागू करें
अनुभाग में उपयोगकर्ता इंटरफेस के बारे में अधिक जानकारी उपलब्ध है। इस मामले में, उपयोगकर्ता अनुभव को बेहतर बनाने के लिए हमें उपयोगकर्ता इंटरफेस में सुधार करने की आवश्यकता है।
- LeftOrRight प्रोजेक्ट की समीक्षा करें और उसमें संशोधन करें ताकि जब उपयोगकर्ता क्लॉबॉट के पीछे से बटन दबाए, तो उपयोगकर्ता द्वारा स्क्रीन के बाईं ओर बटन दबाने पर रोबोट दाईं ओर मुड़ जाए। अन्यथा, क्लॉबॉट बाईं ओर मुड़ जाएगा।
// प्रोजेक्ट कोड प्रारंभ करें
int main() {
// रोबोट कॉन्फ़िगरेशन प्रारंभ करना। दूर नहीं करते!
vexcodeInit();
while (true) {
if (Brain.Screen.pressing()) {
if (Brain.Screen.xPosition() < 240) {
Drivetrain.turn(left);
waitUntil(!Brain.Screen.pressing());
} else {
Drivetrain.turn(right);
waitUntil(!Brain.Screen.pressing());
}
} else {
Drivetrain.drive(forward);
}
}
} - अपनी इंजीनियरिंग नोटबुक में इस प्रोजेक्ट की योजना बनाएं, इसका परीक्षण करें और इसमें सुधार करें ताकि यह सुनिश्चित हो सके कि क्लॉबॉट स्क्रीन के उस तरफ मुड़ जाए जिस तरफ उपयोगकर्ता क्लॉबॉट के पीछे से बटन दबा रहा है।
शिक्षक टूलबॉक्स
छात्रों को अपनी इंजीनियरिंग नोटबुक में इन परिवर्तनों का दस्तावेजीकरण करते हुए परियोजना में इन परिवर्तनों की योजना बनानी चाहिए, उनका परीक्षण करना चाहिए और उन्हें परिष्कृत करना चाहिए। व्यक्तिगत इंजीनियरिंग नोटबुक रूब्रिक के लिए, निम्नलिखित लिंक में से किसी एक पर क्लिक करें (Google Doc / .docx / .pdf), या टीम नोटबुक के लिए निम्नलिखित लिंक में से किसी एक पर क्लिक करें (Google Doc / .docx / .pdf)। छात्रों को काम शुरू करने से पहले स्कोरिंग के बारे में समझाना न भूलें।
शिक्षक टूलबॉक्स
-
समाधान
ऊपर दी गई समस्या को हल करने के दो संभावित तरीके हैं। पहला तरीका वही है जो निर्देशों में लिखा है: लेफ्टऑरराइट प्रोजेक्ट की समीक्षा करें और उसमें संशोधन करें ताकि जब उपयोगकर्ता क्लॉबॉट के पीछे से बटन दबाए, तो उपयोगकर्ता द्वारा स्क्रीन के बाईं ओर बटन दबाने पर रोबोट दाईं ओर मुड़ जाए। अन्यथा, क्लॉबॉट बाईं ओर मुड़ जाएगा।
// प्रोजेक्ट कोड प्रारंभ करें
int main() {
// रोबोट कॉन्फ़िगरेशन प्रारंभ करना। दूर नहीं करते!
vexcodeInit();
while (true) {
if (Brain.Screen.pressing()) {
if (Brain.Screen.xPosition() < 240) {
Drivetrain.turn(right);
waitUntil(!Brain.Screen.pressing());
} else {
Drivetrain.turn(left);
waitUntil(!Brain.Screen.pressing());
}
} else {
Drivetrain.drive(forward);
}
}
} दूसरा समाधान ऑपरेटर निर्देश को इस प्रकार बदलना है कि जब x का मान 240 से अधिक हो, तो क्लॉबॉट बाईं ओर मुड़ जाए।
// प्रोजेक्ट कोड प्रारंभ करें
int main() {
// रोबोट कॉन्फ़िगरेशन प्रारंभ करना। दूर नहीं करते!
vexcodeInit();
while (true) {
if (Brain.Screen.pressing()) {
if (Brain.Screen.xPosition() > 240) {
Drivetrain.turn(left);
waitUntil(!Brain.Screen.pressing());
} else {
Drivetrain.turn(right);
waitUntil(!Brain.Screen.pressing());
}
} else {
Drivetrain.drive(forward);
}
}
}
चर्चा को प्रेरित करें
जब आपने 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)।
यहाँ एक उदाहरण समाधान दिया गया है:
// प्रोजेक्ट कोड प्रारंभ
इवेंट ScreenButtons = इवेंट();
शून्य HasScreenButtons() {
Brain.Screen.setFillColor(हरा);
Brain.Screen.drawRectangle(0, 0, 240, 120);
Brain.Screen.setFillColor(बैंगनी);
Brain.Screen.drawRectangle(240, 0, 480, 120);
Brain.Screen.setFillColor(नारंगी);
Brain.Screen.drawRectangle(0, 120, 240, 240);
Brain.Screen.setFillColor(सियान);
Brain.Screen.drawRectangle(240, 120, 480, 240);
प्रतीक्षा करें(1, सेकंड);
}
int main() {
// रोबोट कॉन्फ़िगरेशन आरंभ करना। दूर नहीं करते!
vexcodeInit();
ScreenButtons(HasScreenButtons);
while (true) {
ScreenButtons.broadcast();
if (Brain.Screen.pressing()) {
if (Brain.Screen.xPosition() < 240) {
if (Brain.Screen.yPosition() < 120) {
ClawMotor.spin(forward);
waitUntil(!Brain.Screen.pressing());
} else {
ClawMotor.spin(reverse);
waitUntil(!Brain.Screen.pressing());
}
} else {
if (Brain.Screen.yPosition() < 120) {
ArmMotor.spin(forward);
waitUntil(!Brain.Screen.pressing());
} else {
ArmMotor.spin(reverse);
waitUntil(!Brain.Screen.pressing());
}
}
ClawMotor.stop();
ArmMotor.stop();
}
wait(5, msec);
}
}
अधिक व्यावहारिक और व्यावहारिक अनुभव के लिए, छात्रों को अपने सहपाठियों से उनके द्वारा चुने गए दो रंगों पर प्रतिक्रिया लेने के लिए कहें।
क्या चुने गए रंग आपको इंटरफ़ेस का उपयोग करने के लिए प्रेरित करते हैं, या उपयोगकर्ता के रूप में वे कौन से रंग पसंद करेंगे?
एक बेहतरीन यूजर इंटरफ़ेस विकसित करने का एक हिस्सा उपयोगकर्ता अनुभव के बारे में डेटा एकत्र करना है, जिसमें सौंदर्य संबंधी प्राथमिकताएं भी शामिल हैं।