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

इस प्रक्रिया के चरण हैं:

  1. समस्या की पहचान करें
  2. हार्डवेयर की जाँच करें
  3. सॉफ्टवेयर की जाँच करें
  4. डेटा का विश्लेषण और अनुप्रयोग करें

समस्या की पहचान करें

आपके सेंसर के समस्या निवारण का पहला चरण यह पहचानना है कि कौन सा सेंसर समस्या पैदा कर रहा है। देखे गए रोबोट व्यवहार की तुलना इच्छित रोबोट व्यवहार से करें। क्या यह समस्याग्रस्त व्यवहार किसी सेंसर के कारण है? यदि हां, तो कौन सा सेंसर? यदि आपको यह निर्धारित करने के लिए अधिक जानकारी की आवश्यकता है कि कौन सा सेंसर समस्या है, तो अपने रोबोट के सेंसर से संबंधित नीचे दिए गए लेख पढ़ें।

VEX EXP सेंसर:

एक बार जब आप यह पहचान कर लें कि कौन सा सेंसर अनपेक्षित व्यवहार का कारण बन रहा है, तो आप प्रक्रिया में आगे बढ़ सकते हैं।


हार्डवेयर की जाँच करें

दूसरा चरण रोबोट के हार्डवेयर की जांच करना है ताकि यह सुनिश्चित किया जा सके कि सेंसर अपेक्षित रूप से कार्य कर रहा है। निम्नलिखित हार्डवेयर संबंधी प्रत्येक बात आपके सेंसर की कार्यक्षमता को प्रभावित कर सकती है।

सेंसर की स्थिति जांचें

EXP क्लॉबॉट का निर्माण एक खेत में चल रहा है। रोबोट में एक ऑप्टिकल सेंसर लगा हुआ है जो हाइलाइट किया गया है और उसके सामने मौजूद एक लाल बकीबॉल की ओर इशारा कर रहा है।

सबसे पहले यह देखें कि आपके रोबोट पर सेंसर कहां स्थित है। क्या सेंसर किसी चीज से अवरुद्ध हो रहा है, जैसे आपके रोबोट का कोई अन्य भाग? सुनिश्चित करें कि सेंसर के पास अपेक्षित रूप से कार्य करने के लिए आवश्यक स्थान है।

जैसा कि यहां दिखाया गया है, ऑप्टिकल सेंसर की दृष्टि उस वस्तु तक स्पष्ट होती है जिसका पता लगाना उसका उद्देश्य है।

सेंसर कनेक्शन की जाँच करें

डिवाइस मेनू में ब्रेन स्क्रीन दिखाई देती है जिसमें ऑप्टिकल सेंसर डिवाइस का चयन किया गया है।

VEX EXP ब्रेन पर डिवाइस स्क्रीन में रिपोर्ट किए गए डेटा को देखकर सेंसर की कार्यक्षमता का परीक्षण करें। इससे आपको यह सत्यापित करने में मदद मिल सकती है कि सेंसर प्लग इन है और काम कर रहा है। 

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

EXP ब्रेन को EXP ऑप्टिकल सेंसर से जोड़ने का आरेख।

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

सेंसर को 3-तार पोर्ट में प्लग करते समय, केबल को सही दिशा में पूरी तरह से डाला जाना चाहिए, जिसमें सफेद तार ब्रेन स्क्रीन के सबसे निकट हो। 

आप जिस सेंसर का उपयोग कर रहे हैं उसे दूसरे सेंसर से बदलने का भी प्रयास कर सकते हैं, यह देखने के लिए कि क्या इससे आपकी समस्या हल होती है।

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


सॉफ्टवेयर की जाँच करें

एक बार जब आप यह पहचान लें कि सेंसर सफलतापूर्वक रोबोट पर लगा दिया गया है और उससे जुड़ गया है, तो आप आगे VEXcode EXP प्रोजेक्ट पर विचार कर सकते हैं। किसी परियोजना पर पुनरावृत्ति करने से आपको यह सुनिश्चित करने में मदद मिल सकती है कि सेंसर से प्राप्त डेटा का उपयोग आपकी परियोजना में प्रभावी ढंग से किया जा रहा है। निम्नलिखित रणनीतियाँ आपके सेंसर को कोड करने में आपकी सहायता कर सकती हैं।

यदि आप इनमें से किसी भी रणनीति को अपने VEXcode EXP प्रोजेक्ट पर लागू करते हैं, तो यह देखने के लिए अपने प्रोजेक्ट का पुनः परीक्षण करें कि क्या इससे समस्या हल हो गई है।

फ़र्मवेयर और कॉन्फ़िगरेशन की जाँच करें

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

अब जब आप आश्वस्त हैं कि सभी डिवाइस ब्रेन से सही ढंग से कनेक्ट हैं, तो VEXcode EXP में डिवाइस कॉन्फ़िगरेशन की जांच करें।

यह सुनिश्चित करने के लिए जांच करें कि सभी सेंसर कॉन्फ़िगरेशन में मौजूद हैं। फिर, यह सुनिश्चित करने के लिए जांच करें कि प्रत्येक सही पोर्ट से जुड़ा हुआ है।

किसी भी गलत डिवाइस कॉन्फ़िगरेशन को बदलें.

एक उदाहरण परियोजना चलाएँ

VEXcode ब्लॉक्स उदाहरण प्रोजेक्ट मेनू में विभिन्न श्रेणियों के कई प्रोजेक्ट उपलब्ध हैं जिनमें से आप चुन सकते हैं। सेंसिंग श्रेणी को प्रमुखता से दर्शाया गया है।

एक उदाहरण प्रोजेक्ट खोलें जो उस सेंसर का उपयोग करता है जिसका आप समस्या निवारण कर रहे हैं। उदाहरण परियोजनाओं को फ़िल्टर करने के लिए आप 'सेंसिंग' श्रेणी का चयन कर सकते हैं।

EXP ब्लॉक उदाहरण परियोजनाओं और टेम्पलेट्स के बारे में अधिक जानकारी के लिए, यह आलेखदेखें।

EXP पायथन उदाहरण परियोजनाओं और टेम्पलेट्स के बारे में अधिक जानकारी के लिए, यह आलेखदेखें।

EXP C++ उदाहरण परियोजनाओं और टेम्पलेट्स के बारे में अधिक जानकारी के लिए, यह आलेखदेखें।

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

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

यहां दर्शाए गए उदाहरण प्रोजेक्ट में, नोट यह इंगित करता है कि बम्पर स्विच का उपयोग यह पता लगाने के लिए किया जा रहा है कि स्विच कब दबाया गया है, ताकि रोबोट किसी वस्तु के संपर्क में आने पर चलना बंद कर सके।

उदाहरण प्रोजेक्ट चलाएँ और रोबोट के व्यवहार का अवलोकन करें। फिर परियोजना को देखें कि किस प्रकार सेंसर डेटा का उपयोग प्रेक्षित व्यवहारों को उत्पन्न करने के लिए किया जा रहा है। इसमें सहायता के लिए आप उदाहरण परियोजना को कई बार चलाना चाह सकते हैं।

आप उदाहरण परियोजना से जो कुछ सीखा है उसे अपने कार्य में लागू करने के लिए अपनी स्वयं की सरलीकृत परियोजना बनाने का प्रयास कर सकते हैं।

अन्य VEXcode EXP टूल का उपयोग करें

ऐसे उपकरण और रणनीतियाँ भी हैं जिनका उपयोग करके आप VEXcode EXP में अपने सेंसर को कोड करने के बारे में अधिक सीख सकते हैं। आप सहायता का उपयोग करके टूलबॉक्स में ब्लॉक या कमांड के बारे में व्यक्तिगत रूप से जान सकते हैं। आप प्रोजेक्ट के चलने के दौरान सेंसर डेटा भी देख सकते हैं, ताकि सेंसर क्या रिपोर्ट कर रहा है, इसके बारे में अधिक जानकारी मिल सके।

हेल्प मेनू खुला हुआ है और प्रेसिंग बम्पर ब्लॉक चयनित है, फिर भी VEXcode EXP का उपयोग करें। ब्लॉक का विवरण और इसके उपयोग के तरीके को उदाहरण के तौर पर दर्शाने वाली छवियों के साथ दिखाया गया है।

नौकर

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

VEXcode EXP ब्लॉक में सहायता तक पहुंचने के बारे में अधिक जानने के लिए यह लेख देखें।

VEXcode EXP पायथन में सहायता तक पहुंचने के बारे में अधिक जानने के लिए यह लेख देखें।

डेटा प्रिंट करना

आप उदाहरण परियोजना या अपनी परियोजना के चलने के दौरान सेंसर से डेटा भी प्रिंट कर सकते हैं, जिससे आपको यह समझने में मदद मिलेगी कि सेंसर वास्तविक समय में क्या रिपोर्ट कर रहा है। इससे आपको यह निर्धारित करने में मदद मिल सकती है कि सेंसर से प्राप्त रिपोर्ट के कौन से मानों को आपके प्रोजेक्ट में पैरामीटर के रूप में उपयोग किया जाए। 

ध्यान दें कि ब्लॉक्स प्रोजेक्ट में, सभी प्रिंटिंग कमांड्स को उनके स्वयं के स्टैक में व्यवस्थित रखने के लिए एक अलग {When started} हैट ब्लॉक का उपयोग किया जा सकता है। नीचे EXP ब्रेन और फिर प्रिंट कंसोल पर प्रिंट करने का एक उदाहरण दिया गया है।

VEXcode EXP ब्लॉक
VEXcode EXP ब्लॉक प्रोजेक्ट जो प्रोजेक्ट के चलने के दौरान सेंसर डेटा को लाइव प्रिंट करने के लिए 'When started' नामक हैट ब्लॉक का उपयोग करता है। इस प्रोजेक्ट में एक 'When started' ब्लॉक है जिसके बाद एक 'Forever' लूप में 4 ब्लॉक हैं। लूप में, सबसे पहले एक कमेंट ब्लॉक है जिसमें लिखा है "ब्रेन पर इनर्टियल सेंसर रोल वैल्यू प्रिंट करें", और फिर अगली पंक्ति पर जाएं। इसके बाद, एक प्रिंट ब्लॉक ब्रेन पर रोल के ब्रेन इनर्टियल ओरिएंटेशन को पढ़ता है और कर्सर को अगली पंक्ति पर सेट करता है। इसके बाद, एक कमेंट ब्लॉक में लिखा है, "वैल्यू प्रिंट करने के लिए प्रतीक्षा करें, फिर लूप को दोहराएं।" अंत में, एक वेट ब्लॉक 0.1 सेकंड प्रतीक्षा करें पढ़ता है।
VEXcode EXP पायथन
while True:
# ब्रेन स्क्रीन पर पठनीयता के लिए फ़ॉन्ट आकार बढ़ाएँ।
brain.screen.set_font(FontType.MONO40)

# ब्रेन पर इनर्टियल सेंसर रोल मान प्रिंट करें, और फिर अगली पंक्ति पर जाएँ।
brain.screen.print(brain_inertial.orientation(ROLL, DEGREES), precision=6 if vexcode_brain_precision is None else vexcode_brain_precision))
brain.screen.next_row()

# मान प्रिंट करने के लिए प्रतीक्षा करें, फिर लूप दोहराएँ।
wait(0.1, SECONDS)
wait(20, MSEC)
VEXcode EXP C++
int main() {
while(true) {

// ब्रेन स्क्रीन पर पठनीयता के लिए फ़ॉन्ट आकार बढ़ाएँ।
Brain.Screen.setFont(mono40);

// ब्रेन पर इनर्टियल सेंसर रोल मान प्रिंट करें, और फिर अगली पंक्ति पर जाएँ।
Brain.Screen.print(BrainInertial.orientation(roll, degrees));
Brain.Screen.newLine();

// मान प्रिंट करने के लिए प्रतीक्षा करें, फिर लूप दोहराएँ।
wait(0.1, seconds);
} }

EXP ब्रेन पर प्रिंट करना तब उपयोगी होता है जब आप VEXcode EXP प्रोजेक्ट के चलने के दौरान मानों में परिवर्तन देखना चाहते हैं। इससे आपको यह निर्धारित करने में मदद मिल सकती है कि सेंसर से प्राप्त रिपोर्ट किए गए मानों को आप अपने प्रोजेक्ट में पैरामीटर के रूप में उपयोग कर सकते हैं। इन प्रिंट कमांड को आपके द्वारा पहले से बनाए गए VEXcode EXP प्रोजेक्ट में शामिल किया जा सकता है ताकि आप रोबोट के चलने के दौरान विशिष्ट समय पर सेंसर मान में परिवर्तन देख सकें। 

ऊपर दिए गए उदाहरण प्रोजेक्ट यह दर्शाते हैं कि इनर्शियल सेंसर से EXP ब्रेन तक से मान कैसे प्रिंट किए जाते हैं। प्रोजेक्ट में दी गई टिप्पणियाँ प्रोजेक्ट के प्रवाह और प्रत्येक कमांड के उपयोग की व्याख्या करती हैं।

VEXcode EXP ब्लॉक
VEXcode EXP ब्लॉक प्रोजेक्ट जो प्रोजेक्ट के चलने के दौरान सेंसर डेटा को लाइव प्रिंट करने के लिए 'When started' नामक हैट ब्लॉक का उपयोग करता है। इस प्रोजेक्ट में एक 'When started' ब्लॉक है जिसके बाद एक 'Forever' लूप में 4 ब्लॉक हैं। लूप में, सबसे पहले एक कमेंट ब्लॉक है जिसमें लिखा है कि कंसोल पर डिस्टेंस सेंसर वैल्यू प्रिंट करें, और फिर अगली पंक्ति पर जाएं। इसके बाद, एक प्रिंट ब्लॉक कंसोल पर "प्रिंट डिस्टेंस5" ऑब्जेक्ट की दूरी (मिलीमीटर में) पढ़ता है और कर्सर को अगली पंक्ति पर सेट करता है। इसके बाद, एक कमेंट ब्लॉक में लिखा है, "वैल्यू प्रिंट करने के लिए प्रतीक्षा करें, फिर लूप को दोहराएं।" अंत में, एक वेट ब्लॉक 0.1 सेकंड प्रतीक्षा करें पढ़ता है।
VEXcode EXP पायथन
while True:
# कंसोल पर दूरी सेंसर का मान प्रिंट करें, और फिर अगली पंक्ति पर जाएं।
print(print_to_console_number_format().format(distance_5.object_distance(MM)))

# मान प्रिंट करने के लिए प्रतीक्षा करें, फिर लूप दोहराएं।
wait(0.1, SECONDS)
wait(20, MSEC)
VEXcode EXP C++
int main() {
while (true) {
// ब्रेन पर इनर्टियल सेंसर रोल वैल्यू प्रिंट करें, और फिर अगली पंक्ति पर जाएं।
printf(printToConsole_numberFormat(),(Distance5.objectDistance(mm)));
printf("\n");

// वैल्यू प्रिंट करने के लिए प्रतीक्षा करें, फिर लूप दोहराएं।
wait(0.1, seconds);
} }

VEXcode EXP में प्रिंट कंसोल पर प्रिंट करना तब है जब आप VEXcode EXP प्रोजेक्ट चला रहे हों जहां रोबोट नहीं चलता है। प्रिंट कंसोल पर प्रिंट करने के लिए प्रोजेक्ट के निष्पादन के दौरान EXP ब्रेन को प्लग इन चाहिए फायदेमंद है क्योंकि आप ब्रेन स्क्रीन से डेटा पढ़ने की कोशिश करने के VEXcode EXP विंडो से मान पढ़ सकते हैं।

ये उदाहरण एक प्रोजेक्ट को दर्शाते हैं जो डिस्टेंस सेंसर से प्राप्त डेटा को VEXcode EXP में कंसोल पर प्रिंट करता है। 

VEXcode EXP ब्लॉक में प्रिंट कंसोल का उपयोग करने के बारे में अधिक जानकारी के लिए, यह आलेख देखें।

VEXcode EXP पायथन में प्रिंट कंसोल का उपयोग करने के बारे में अधिक जानकारी के लिए, यह आलेख देखें।


डेटा का विश्लेषण और अनुप्रयोग

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

आप आगे बढ़ने में सहायता के लिए अपने प्रोजेक्ट के बारे में प्रश्न भी पूछ सकते हैं। इस तरह की बातों के बारे में सोचें:

  • क्या आप अपने प्रोजेक्ट में < से ज़्यादा या > से कम का इस्तेमाल कर रहे हैं? क्या प्रतीक सही दिशा में है? यदि आप = के बराबर का प्रयोग कर रहे हैं तो मानों की श्रेणी का उपयोग करने के लिए इसे इससे अधिक या इससे कम से प्रतिस्थापित करने का प्रयास करें।
  • क्या आपके पैरामीटर सही हैं? क्या आप अपने पैरामीटर सेट करने के लिए सेंसर से प्राप्त डेटा का उपयोग कर रहे हैं? क्या आपने वह ड्रॉपडाउन विकल्प चुना जिसकी आपको आवश्यकता है?
  • क्या आप शर्तों की एक से अधिक बार जाँच कर रहे हैं? अपने प्रोजेक्ट में एक फॉरएवर लूप जोड़ने का प्रयास करें, ताकि प्रोजेक्ट चलने पर शर्तों की बार-बार जाँच हो सके।
  • क्या आपका प्रोजेक्ट अटक रहा है? क्या आपकी शर्तें सही ढंग से सेट की गई हैं? यदि आप नेस्टेड लूप का उपयोग कर रहे हैं, तो व्यक्तिगत व्यवहारों को अलग करने के लिए अपने प्रोजेक्ट को सरल बनाने का प्रयास करें।
  • क्या आपके परिवेश की परिस्थितियाँ सेंसर को प्रभावित कर रही हैं? क्या यह बहुत ज़्यादा चमकीला है या बहुत ज़्यादा अंधेरा है? क्या रास्ते में कोई वस्तु या लोग हैं? यह देखने के लिए कि क्या इससे मदद मिलती है, अपने प्रोजेक्ट को किसी अन्य स्थान पर चलाने का प्रयास करें।
  • क्या आप अपने प्रोजेक्ट का नवीनतम संस्करण चला रहे हैं? क्या आपने अपना अपडेटेड प्रोजेक्ट ब्रेन में डाउनलोड कर लिया है? सुनिश्चित करें कि आप हर बार परिवर्तन करने पर प्रोजेक्ट को पुनः डाउनलोड करें।
  • क्या आप सही रंग पहचान पा रहे हैं? क्या सेंसर आपके प्रोजेक्ट में मौजूद रंग से अलग रंग दिखा रहा है? यह देखने के लिए कि क्या इससे मदद मिलती है, रंग पैरामीटर बदलने या रंग मानों की एक श्रृंखला का उपयोग करने का प्रयास करें।
  • क्या आप सेंसर के दृश्य क्षेत्र में किसी वस्तु का पता लगा रहे हैं? याद रखें कि दृश्य क्षेत्र रोबोट की गति के साथ-साथ चलता है।
  • क्या आप किसी शर्त की जाँच करते समय प्रतीक्षा ब्लॉक का उपयोग कर रहे हैं? किसी शर्त की जाँच करते समय प्रोजेक्ट में गैर-प्रतीक्षा ब्लॉक का उपयोग करना सुनिश्चित करें। VEXcode EXP में प्रतीक्षारत बनाम गैर-प्रतीक्षारत ब्लॉकों के बारे में अधिक जानने के लिए इस लेख को देखें।
  • अगर आप ब्लॉक में कोडिंग कर रहे हैं, तो क्या आपका पूरा स्टैक {When started} हैट ब्लॉक से जुड़ा है? ब्लॉक तभी चलेंगे जब वे जुड़े होंगे। जब आप ब्लॉकों को खींचते हैं और उन्हें एक साथ जोड़ते हैं तो आप क्लिक ध्वनि सुन सकते हैं।

इन प्रश्नों के उत्तर देते समय, सुनिश्चित करें कि आप अपनी परियोजना में एक समय में एक चीज़ बदलें, उसका परीक्षण करें, फिर मूल्यांकन करें कि क्या वह परिवर्तन प्रभावी था। अपने प्रोजेक्ट का बार-बार परीक्षण करने से आपको यह आसानी से देखने में मदद मिल सकती है कि आपका कोड रोबोट के व्यवहार से किस प्रकार जुड़ा हुआ है।  आपको अपनी समस्या को हल करने के लिए समस्या निवारण प्रक्रिया में चरणों को कई बार दोहराना पड़ सकता है, और यह ठीक है। प्रत्येक पुनरावृत्ति आपको आपके द्वारा उपयोग किए जा रहे सेंसर के बारे में और अधिक जानने में मदद करेगी तथा यह भी कि VEXcode EXP में उसे कैसे कोड किया जाए।

For more information, help, and tips, check out the many resources at VEX Professional Development Plus

Last Updated: