पायथन का उपयोग करके VEX ब्रेन और सेंसर के साथ डेटा लॉगिंग

परिचय

इस लेख में, हम चर्चा करेंगे कि डेटा लॉगिंग प्रोजेक्ट कैसे बनाया जाए जो VEX रोबोट को VEX ब्रेन के साथ डेटा एकत्र करने और डेटा विश्लेषण के लिए इसे SD कार्ड पर CSV फ़ाइल में सहेजने का निर्देश देता है।

डेटा लॉगिंग एक शक्तिशाली उपकरण है जिसका उपयोग हम वैज्ञानिक अनुसंधान में सहायता करने, अपने स्वयं के प्रयोग करने और विशिष्ट समस्याओं को हल करने के लिए कर सकते हैं। ऐसे कई मजेदार और रोमांचक कार्य हैं जिन्हें हम डेटा लॉगिंग के साथ पूरा करने के लिए VEX रोबोट को चला सकते हैं। निम्नलिखित कुछ उदाहरण हैं:

  • रोबोट की गति की गणना करने के लिए दूरी सेंसर के साथ डेटा एकत्र करना।
  • कक्षा में रोबोट को चलाना तथा विभिन्न स्थानों पर प्रकाश परिवर्तनों का निरीक्षण करने के लिए ऑप्टिकल सेंसर से डेटा एकत्र करना।
  • रोबोट को एक साहसिक यात्रा पर ले जाना तथा मानचित्र बनाने के लिए जीपीएस निर्देशांक डेटा रिकॉर्ड करना।

डेटा लॉगिंग प्रोजेक्ट विकसित करने के लिए आवश्यक कोडिंग कौशल

  • VEX ब्रेन/सेंसर के साथ डेटा एकत्र करने और उसे डेटा संरचना में जोड़ने के लिए विभिन्न कमांड का उपयोग करें।
  • डेटा को SD कार्ड पर कॉमा-सेपरेटेड वैल्यूज़ (CSV) फ़ाइल में लिखें।

डेटा लॉगिंग के लिए आवश्यक हार्डवेयर:

  • एक VEX मस्तिष्क (IQ, V5, EXP)
  • एक एसडी कार्ड
  • एक सेंसर या एकाधिक सेंसर (वैकल्पिक, आवश्यक डेटा के अनुसार)

सेंसर से डेटा प्राप्त करना

हम VEX रोबोट (IQ, V5, EXP) को निम्नलिखित सेंसरों से डेटा कैप्चर करने के लिए प्रोग्राम कर सकते हैं:

  • जड़त्वीय सेंसर
  • दूरी सेंसर
  • प्रकाशीय संवेदक
  • दृष्टि संवेदक
  • रोटेशन सेंसर (V5, EXP)
  • जीपीएस सेंसर (V5)

नोट: VEX IQ (दूसरी पीढ़ी) ब्रेन और VEX EXP ब्रेन में एक इनर्शियल सेंसर अंतर्निहित है। हम इन VEX ब्रेन्स के साथ इनर्शियल सेंसर डेटा एकत्र कर सकते हैं।

इस लेख में, हम एक डेटा लॉगिंग परियोजना विकसित करेंगे जो VEX IQ ब्रेन (द्वितीय पीढ़ी) के साथ त्वरण डेटा एकत्र करेगा और इसे एक एसडी कार्ड में संग्रहीत करेगा। 

सबसे पहले, हमें VEX IQ ब्रेन (द्वितीय पीढ़ी) में निर्मित टाइमर और इनर्शियल सेंसर से रीडिंग प्राप्त करने के लिए एक छोटा प्रोग्राम लिखना होगा।

  • इस कार्यक्रम की शुरुआत में, हमें VEX IQ Brain (2nd gen) को नियंत्रित करने के लिए पायथन मॉड्यूल को आयात करना होगा और उससे डेटा प्राप्त करना होगा। इसलिए, इन निर्देशों को परियोजना में जोड़कर शुरुआत करें।

    V5 रोबोट के घटकों और विशेषताओं को दर्शाने वाला आरेख, रोबोटिक्स में शैक्षिक उद्देश्यों के लिए पायथन ट्यूटोरियल में उपयोग किया जाता है।

  • इसके बाद, रिकॉर्डिंग के लिए डेटा प्रविष्टियों की संख्या संग्रहीत करने के लिए एक चर numOfDataEntries घोषित करने के लिए कोड जोड़ें, डेटा पढ़ने के लिए समय अंतराल के मूल्य को संग्रहीत करने के लिए एक चर polling_delay_msec घोषित करें, और सेंसर से पढ़े गए डेटा को संग्रहीत करने के लिए एक खाली स्ट्रिंग चर data_buffer बनाएं।

    आरेख यह दर्शाता है कि पायथन का उपयोग करके VEX V5 में सेंसर से पढ़े गए डेटा को कैसे संग्रहीत किया जाए, जिसमें कोड स्निपेट और डेटा प्रवाह और भंडारण विधियों के दृश्य प्रतिनिधित्व शामिल हैं।

  • चूंकि हम डेटा में टाइमस्टैम्प जोड़ने के लिए टाइमर के वर्तमान मान का उपयोग करेंगे, इसलिए डेटा एकत्र करना शुरू करने से पहले हमें टाइमर मान को 0 सेकंड पर रीसेट करना होगा

    पायथन में VEX V5 टाइमर रीसेट प्रक्रिया को दर्शाने वाला स्क्रीनशॉट, जिसमें डेटा संग्रहण से पहले टाइमर मान को 0 सेकंड पर वापस सेट करने का तरीका दर्शाया गया है।

  • VEX IQ ब्रेन (दूसरा) से डेटा लाने और बफर में डेटा रिकॉर्ड करने वाले निर्देश का उपयोग करने से पहले, हमें पहले इसे समझने की आवश्यकता है।
    निम्नलिखित निर्देश वर्तमान टाइमर मान को data_buffer चर में एक विशिष्ट प्रारूप में जोड़ता है।

    पायथन में एक चर के प्रारूप को दर्शाने वाला आरेख, जिसका उपयोग पायथन ट्यूटोरियल के अंतर्गत V5 श्रेणी विवरण में किया गया है, जो एक चर की संरचना और घटकों को दर्शाता है।

    आइए प्रारूप स्ट्रिंग “%1.3f”तोड़ें: 

    • “%”: रूपांतरण निर्दिष्टकर्ता का परिचय देता है।
    • “1”: स्ट्रिंग में मौजूद अंकों की न्यूनतम संख्या को इंगित करता है।
    • “.3”: स्वरूपित संख्या में शामिल करने के लिए दशमलव स्थानों की संख्या निर्दिष्ट करता है।
    • “f”: यह दर्शाता है कि स्वरूपित किया जाने वाला मान एक फ़्लोटिंग-पॉइंट संख्या है।

    इस प्रकार, हम एक फ्लोटिंग-पॉइंट संख्या को न्यूनतम 1 अंक की चौड़ाई और 3 दशमलव स्थानों की परिशुद्धता के साथ प्रारूपित करने के लिए प्रारूप स्ट्रिंग “%1.3f” का उपयोग कर सकते हैं।

  • अब, हम VEX IQ ब्रेन (द्वितीय पीढ़ी) में निर्मित इनर्शियल सेंसर के टाइमर और त्वरण मान को पढ़ सकते हैं और फिर निर्दिष्ट प्रारूप में डेटा को data_buffer चर में जोड़ सकते हैं।

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

    नोट: “\n” नई लाइन वर्ण है। यह इंगित करता है कि लाइन यहां समाप्त होती है और एक नई लाइन की शुरुआत होती है।

  • फिर, data_buffer चर में डेटा प्रविष्टियों की एक निश्चित संख्या को रिकॉर्ड करने के लिए, हम for loop का उपयोग करके उन निर्देशों को बार-बार निष्पादित कर सकते हैं जो डेटा को लाते हैं और डेटा को data_buffer चर में कई पुनरावृत्तियों के लिए जोड़ते हैं। हमारी रणनीति पुनरावृत्तियों की संख्या निर्धारित करने के लिए चर numOfDataEntries के मान का उपयोग करना है।

    VEX V5 पायथन ट्यूटोरियल में पुनरावृत्तियों की संख्या को दर्शाने वाला ग्राफ, रोबोटिक्स में प्रोग्रामिंग पुनरावृत्तियों से संबंधित डेटा बिंदुओं और रुझानों को दर्शाता है।

  • अब तक हमारा कार्यक्रम यथासंभव शीघ्रता से डेटा रिकॉर्ड करता है। हालाँकि, हम विशिष्ट समय अंतराल पर डेटा रिकॉर्ड करना चाहते हैं। इसलिए, हम दो रीडिंग के बीच विशिष्ट समय अंतराल जोड़ने के लिए प्रोग्राम को रोकने के लिए फॉर लूप में wait() फ़ंक्शन का उपयोग कर सकते हैं। समय अंतराल का मान निर्धारित करने के लिए हम चर polling_delay_msec के मान का उपयोग करते हैं।

    पायथन में समय अंतराल मान निर्धारण प्रक्रिया को दर्शाने वाला ग्राफ, प्रमुख चर और उनके संबंधों को प्रदर्शित करता है। V5 पायथन ट्यूटोरियल के लिए प्रासंगिक.

बधाई हो! हमने VEX ब्रेन में निर्मित जड़त्वीय सेंसर से रीडिंग (त्वरण डेटा) प्राप्त करने का कार्यक्रम पूरा कर लिया है। इसके बाद, हम यह पता लगाएंगे कि एसडी कार्ड पर डेटा को CSV फ़ाइल में कैसे लिखा जाए।

पायथन ट्यूटोरियल के लिए V5 श्रेणी संरचना को दर्शाने वाला आरेख, जिसमें VEX रोबोटिक्स पारिस्थितिकी तंत्र के भीतर प्रमुख घटकों और संबंधों को दर्शाया गया है।




एसडी कार्ड को VEX ब्रेन से जोड़ना

एसडी कार्ड पर फ़ाइल में डेटा लिखने से पहले, एसडी कार्ड को पहले VEX ब्रेन के एसडी कार्ड स्लॉट में डालें।

पायथन ट्यूटोरियल के लिए V5 रोबोट कॉन्फ़िगरेशन को दर्शाने वाला आरेख, शैक्षिक उद्देश्यों के लिए प्रमुख घटकों और उनके कनेक्शनों को प्रदर्शित करता है।

नोट: डेटा लेखन के लिए SD कार्ड को FAT32 में फ़ॉर्मेट करें। हम 32GB या उससे कम आकार वाले SD कार्ड का उपयोग करने की सलाह देते हैं।

यह सुनिश्चित करने के लिए कि एसडी कार्ड पर फ़ाइल में डेटा लिखना उचित परिस्थितियों में किया जा सकता है, हमें यह जांचने के लिए कोड जोड़ने की आवश्यकता होगी कि क्या एसडी कार्ड VEX IQ ब्रेन (द्वितीय पीढ़ी) में ठीक से डाला गया है।

  • यह जांचने के लिए कि क्या SD कार्ड डाला गया है, brain.sdcard.is_inserted() फ़ंक्शन का उपयोग करें। यदि SD कार्ड नहीं डाला गया है, तो VEX IQ ब्रेन स्क्रीन पर संबंधित संदेश प्रदर्शित करें और प्रोग्राम को दबाए रखें।

    Screenshot of VEX IQ Brain screen displaying a message indicating that the SD card is not inserted, with instructions for holding the program. Relevant to Python tutorials in the V5 category.


    नोट: brain.sdcard.is_inserted() फ़ंक्शन True लौटाता है यदि कोई SD कार्ड ब्रेन में डाला गया हो।

SD कार्ड पर डेटा को CSV फ़ाइल में लिखना

अब तक, हमारा कार्यक्रम VEX IQ ब्रेन (द्वितीय पीढ़ी) के साथ डेटा एकत्र कर सकता है। डेटा लॉगिंग परियोजना को पूरा करने के लिए, हमें भविष्य में जांच और विश्लेषण के लिए डेटा को एसडी कार्ड पर कॉमा-सेपरेटेड वैल्यूज़ (सीएसवी) फ़ाइल में लिखना होगा।

  • CSV फ़ाइल में विभिन्न प्रकार के डेटा लिखते समय, हम यह जानना चाहते हैं कि प्रत्येक कॉलम में किस प्रकार का डेटा है। ऐसा करने के लिए, हम डेटा रिकॉर्ड करने से पहले CSV हेडर टेक्स्ट को वेरिएबल में जोड़ सकते हैं।
    इस प्रकार, CSV फ़ाइल के लिए कॉलम नाम निर्दिष्ट करने के लिए CSV हेडर टेक्स्ट को संग्रहीत करने के लिए एक वेरिएबल csvHeaderText घोषित करने के लिए कोड जोड़ें और SD कार्ड पर लिखने के लिए CSV फ़ाइल का नाम रखने के लिए एक वेरिएबल sd_file_name घोषित करें।

    पायथन ट्यूटोरियल के लिए V5 श्रेणी विवरण को दर्शाने वाला आरेख, दृश्य प्रारूप में प्रमुख घटकों और उनके संबंधों को प्रदर्शित करता है।

नोट: सुनिश्चित करें कि हेडर उसी क्रम में हैं जैसे data_buffer चर में संग्रहीत डेटा है।

  • इसके बाद, डेटा संग्रहण के लिए for loop से पहले data_buffer स्ट्रिंग में CSV हेडर टेक्स्ट जोड़ें।

    V5 पायथन प्रोग्रामिंग वातावरण को दर्शाने वाला आरेख, प्रमुख घटकों और उनके कार्यों को प्रदर्शित करता है, जो V5 श्रेणी विवरण और पायथन ट्यूटोरियल के लिए प्रासंगिक है।

  • एसडी कार्ड पर फ़ाइल में डेटा लिखने से पहले, आइए पहले यह समझें कि brain.sdcard.savefile() फ़ंक्शन का उपयोग कैसे करें।

    पायथन ट्यूटोरियल के लिए V5 श्रेणी विवरण को दर्शाने वाला आरेख, VEX V5 रोबोटिक्स प्रणाली के प्रमुख घटकों और कार्यात्मकताओं को प्रदर्शित करता है।


    यह निर्देश data_buffer चर में संग्रहीत डेटा को SD कार्ड पर एक नामित CSV फ़ाइल में लिखता है।
    आइए इसे तोड़ें:
    • brain.sdcard.savefile(): यह फ़ंक्शन एक बाइट ऐरे को SD कार्ड पर एक नामित फ़ाइल में सहेजता है। यह फ़ंक्शन फ़ाइल में लिखे गए बाइट्स की संख्या लौटाता है।

    • sd_file_name: फ़ंक्शन का पहला पैरामीटर. लिखने के लिए फ़ाइल का नाम इंगित करता है. इस परियोजना में, फ़ाइल का नाम sd_file_name चर में संग्रहीत किया जाता है।

    • bytearray(datat_buffer,'utf-8'): फ़ंक्शन का दूसरा पैरामीटर. फ़ाइल में लिखे जाने वाले बाइटअरे को दर्शाता है।

        • bytearray(): यह विधि एक परिवर्तनीय bytearray बनाती है। इस निर्देश में, हम इसका उपयोग एन्कोडिंग निर्दिष्ट करके स्ट्रिंग को बाइटअरे में परिवर्तित करने के लिए करते हैं।
        • data_buffer: विधि का पहला पैरामीटर. बाइटअरे में परिवर्तित किए जाने वाले स्रोत को इंगित करता है। इस परियोजना में, स्रोत वह डेटा है जो वेरिएबल data_buffer में संग्रहीत है। 
        • 'utf-8': विधि का दूसरा पैरामीटर. स्ट्रिंग को एनकोड करने के लिए प्रयुक्त निर्दिष्ट एनकोडिंग को इंगित करता है। इस निर्देश में एनकोडिंग 'utf-8' है। 
  • डेटा संग्रहण के लिए फॉर लूप के बाद, brain.sdcard.savefile() फ़ंक्शन का उपयोग करके data_buffer चर में संग्रहीत डेटा को SD कार्ड पर CSV फ़ाइल में लिखें। इसके अलावा, यह सत्यापित करने के लिए कि क्या डेटा सफलतापूर्वक फ़ाइल में लिखा गया है और वास्तविक समय की प्रतिक्रिया प्राप्त करने के लिए VEX IQ ब्रेन स्क्रीन पर संबंधित संदेश प्रदर्शित करने के लिए brain.sdcard.savefile() फ़ंक्शन से वापसी मान की जांच करने के लिए कोड जोड़ें।

    Diagram illustrating the V5 robot's components and their functions, used in Python tutorials for educational purposes.


    नोट: brain.sdcard.savefile() फ़ंक्शन फ़ाइल में लिखी गई बाइट्स की संख्या लौटाता है। इस परियोजना में, हम इसका उपयोग एकत्रित डेटा को CSV फ़ाइल में लिखने के लिए करते हैं, इसलिए फ़ाइल में लिखे गए बाइट्स की संख्या शून्य से अधिक होनी चाहिए। दूसरे शब्दों में, यदि brain.sdcard.savefile() फ़ंक्शन 0 लौटाता है, तो हम यह निष्कर्ष निकाल सकते हैं कि डेटा फ़ाइल में सफलतापूर्वक नहीं लिखा गया है। अन्यथा, डेटा फ़ाइल में लिखा गया है.

बधाई हो! हमने एक डेटा लॉगिंग परियोजना विकसित की है जो VEX IQ ब्रेन (द्वितीय पीढ़ी) के साथ त्वरण डेटा एकत्र करती है और इसे SD कार्ड पर CSV फ़ाइल में संग्रहीत करती है। आगे, हम यह पता लगाएंगे कि डेटा विश्लेषण के लिए CSV फ़ाइल कैसे खोलें। 

V5 रोबोट के घटकों और उनके कार्यों को दर्शाने वाला आरेख, जिसका उपयोग VEX रोबोटिक्स प्रोग्रामिंग के लिए पायथन ट्यूटोरियल में किया जाता है। यह चित्र शिक्षार्थियों को हार्डवेयर सेटअप को समझने के लिए एक दृश्य संदर्भ प्रदान करता है।

डेटा विश्लेषण के लिए CSV फ़ाइल खोलना

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

नोट: सबसे आम स्प्रेडशीट अनुप्रयोगों में से दो हैं गूगल शीट्स और माइक्रोसॉफ्ट एक्सेल। इस लेख में, हम SD कार्ड पर CSV फ़ाइल खोलने के लिए Google शीट्स (वेब-आधारित) का उपयोग करेंगे। अन्य अनुप्रयोगों का उपयोग करने की प्रक्रिया समान है।

  • VEX IQ Brain के SD कार्ड स्लॉट से SD कार्ड निकालें। यदि कंप्यूटर में अंतर्निहित माइक्रो एसडी कार्ड स्लॉट है, तो हम एसडी कार्ड को सीधे उस स्लॉट में डाल सकते हैं। अन्यथा, एसडी कार्ड को एसडी कार्ड एडाप्टर में डालें और फिर एडाप्टर को कंप्यूटर से कनेक्ट करें। 
  • अपने Google खाते में लॉग इन करें और Google शीट्स खोलें। एक नई स्प्रेडशीट बनाएं.
  • स्प्रेडशीट में, “फ़ाइल” मेनू खोलें, “आयात करें” -> “अपलोड करें” -> “ब्राउज़ करें” बटन का चयन करें, फिर कंप्यूटर पर CSV फ़ाइल चुनें। CSV फ़ाइल अपलोड करने के बाद, “डेटा आयात करें” बटन पर क्लिक करें। डेटा आयात करने के बाद, एकत्रित डेटा को CSV फ़ाइल में देखने के लिए “अभी खोलें” क्लिक करें।

    VEX V5 पायथन ट्यूटोरियल अवलोकन छवि, VEX रोबोटिक्स के साथ प्रोग्रामिंग के लिए प्रमुख अवधारणाओं और संसाधनों को दर्शाती है।

  • (वैकल्पिक) डेटा का विश्लेषण करने का एक आसान तरीका है एक ग्राफ बनाना और फिर डेटा में रुझान देखना। स्प्रेडशीट में, “सम्मिलित करें” मेनू खोलें और CSV फ़ाइल में डेटा का उपयोग करके ग्राफ़ बनाने के लिए “चार्ट” चयन करें। निम्नलिखित ग्राफ़ VEX IQ Brain (दूसरी पीढ़ी) से एकत्रित त्वरण डेटा का परिणाम है।

    Diagram illustrating the V5 Python tutorial structure, showcasing various components and their relationships in a clear and organized manner, designed to aid users in understanding the programming framework for VEX robotics.


    नोट: हम अपनी ज़रूरतों के आधार पर एक अलग चार्ट प्रकार चुनने या चार्ट को संपादित करने के लिए चार्ट संपादक उपयोग कर सकते हैं।

इस बिंदु तक, हमने डेटा लॉगिंग परियोजना पूरी कर ली है जो VEX IQ ब्रेन (द्वितीय पीढ़ी) के साथ डेटा एकत्र करती है और इसे SD कार्ड पर CSV फ़ाइल में सहेजती है। इसके अलावा, हमने यह भी सीखा कि गूगल शीट्स का उपयोग करके एसडी कार्ड पर सीएसवी फ़ाइल को कैसे पढ़ा जाए और आगे के विश्लेषण के लिए ग्राफ भी कैसे बनाया जाए। आगे क्या? आइए, डेटा लॉगिंग के लिए VEX रोबोट का उपयोग करते हुए अधिक रोमांचक प्रयोगों की योजना बनाने का प्रयास करें, ताकि यह देखा जा सके कि बदलते पर्यावरणीय कारक विभिन्न प्रकार के डेटा को किस प्रकार प्रभावित करते हैं, तथा हमारे आसपास की दुनिया के बारे में गहरी समझ प्राप्त की जा सके।

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

Last Updated: