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) को नियंत्रित करने के लिए पायथन मॉड्यूल को आयात करना होगा और उससे डेटा प्राप्त करना होगा। इसलिए, इन निर्देशों को परियोजना में जोड़कर शुरुआत करें।

    VEX IQ रोबोटिक्स प्लेटफॉर्म के लिए पायथन ट्यूटोरियल इंटरफ़ेस का स्क्रीनशॉट, जिसमें रोबोटिक्स प्रोग्रामिंग की समझ बढ़ाने के लिए शिक्षकों और छात्रों के लिए कोडिंग उदाहरण और संसाधन प्रदर्शित किए गए हैं।

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

    VEX IQ रोबोटिक्स प्रोग्रामिंग में सेंसर से पढ़े गए डेटा को संग्रहीत करने के तरीके को दर्शाने वाला आरेख, VEX IQ ज्ञानकोष में पायथन ट्यूटोरियल अनुभाग का हिस्सा है।

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

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

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

    यह चित्र VEX IQ रोबोटिक्स प्लेटफॉर्म ट्यूटोरियल के भाग के रूप में पायथन में चरों को परिभाषित करने के प्रारूप को दर्शाता है, जिसका उद्देश्य प्रोग्रामिंग और रोबोटिक्स अवधारणाओं में शुरुआती लोगों को शिक्षित करना है।

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

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

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

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

    VEX IQ रोबोटिक्स प्रोग्रामिंग ट्यूटोरियल के लिए प्रासंगिक, पायथन में चर को परिभाषित करने के प्रारूप को दर्शाने वाला आरेख।

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

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

    शैक्षिक रोबोटिक्स के लिए पायथन ट्यूटोरियल के भाग के रूप में, VEX IQ रोबोटिक्स प्रोग्रामिंग कार्य में पुनरावृत्तियों की संख्या निर्धारित करने की प्रक्रिया को दर्शाने वाला फ्लोचार्ट।

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

    VEX IQ रोबोटिक्स प्रोग्रामिंग में समय अंतराल का मान निर्धारित करने का तरीका दर्शाने वाला आरेख, शैक्षिक उद्देश्यों के लिए पायथन ट्यूटोरियल का हिस्सा।

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

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




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

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

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

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

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

  • यह जांचने के लिए कि क्या 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 a prompt to hold the program, illustrating a function in Python tutorials for VEX IQ robotics.


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

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

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

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

    VEX IQ रोबोटिक्स के लिए पायथन ट्यूटोरियल का स्क्रीनशॉट, जिसमें VEX IQ रोबोट प्रोग्रामिंग के लिए कोड उदाहरण और स्पष्टीकरण प्रदर्शित किए गए हैं, जिसका उद्देश्य शिक्षकों और छात्रों को रोबोटिक्स अवधारणाओं की समझ को बढ़ाना है।

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

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

    VEX IQ रोबोटिक्स प्लेटफॉर्म के लिए पायथन ट्यूटोरियल इंटरफ़ेस का स्क्रीनशॉट, रोबोटिक्स शिक्षा में शुरुआती लोगों के लिए कोडिंग उदाहरण और संसाधन प्रदर्शित करता है।

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

    VEX IQ रोबोटिक्स प्लेटफॉर्म घटकों और उनके कनेक्शनों को दर्शाने वाला आरेख, शैक्षिक उद्देश्यों के लिए डिज़ाइन किया गया है, जो VEX IQ ज्ञानकोष के पायथन ट्यूटोरियल अनुभाग में प्रदर्शित है।


    यह निर्देश 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() फ़ंक्शन से वापसी मान की जांच करने के लिए कोड जोड़ें।

    Screenshot of Python programming tutorial for VEX IQ Robotics, showcasing code examples and educational resources to help beginners learn robotics concepts and enhance their programming skills.


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

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

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

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

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

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

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

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

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

    Screenshot of a Python tutorial for VEX IQ Robotics, showcasing code examples and explanations to help beginners understand programming concepts within the VEX IQ platform.


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

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

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

Last Updated: