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 से आयात *

    # ब्रेन को डिफ़ॉल्ट रूप से परिभाषित किया जाना चाहिए
    ब्रेन = ब्रेन()
    ब्रेन_इनर्टियल = इनर्टियल()
  • इसके बाद, रिकॉर्डिंग के लिए डेटा प्रविष्टियों की संख्या संग्रहीत करने के लिए एक चर numOfDataEntries घोषित करने के लिए कोड जोड़ें, डेटा पढ़ने के लिए समय अंतराल के मूल्य को संग्रहीत करने के लिए एक चर polling_delay_msec घोषित करें, और सेंसर से पढ़े गए डेटा को संग्रहीत करने के लिए एक खाली स्ट्रिंग चर data_buffer बनाएं।
  • numOfDataEntries = 100
    polling_delay_msec = 50
    data_buffer = ""
  • चूंकि हम डेटा में टाइमस्टैम्प जोड़ने के लिए टाइमर के वर्तमान मान का उपयोग करेंगे, इसलिए डेटा एकत्र करना शुरू करने से पहले हमें टाइमर के मान को वापस 0 सेकंड पर रीसेट करना होगा।
  • # टाइमर आरंभीकरण कोड
    जोड़ें brain.timer.clear()
  • VEX IQ ब्रेन (दूसरा) से डेटा लाने और बफर में डेटा रिकॉर्ड करने वाले निर्देश का उपयोग करने से पहले, हमें पहले इसे समझने की आवश्यकता है।
    निम्नलिखित निर्देश वर्तमान टाइमर मान को data_buffer चर में एक विशिष्ट प्रारूप में जोड़ता है।

    पाइथन कोड की एक पंक्ति को विस्तार से समझाने के लिए उसे टुकड़ों में हाइलाइट किया गया है। कोड की पंक्ति data_buffer += 1.3f % brain.timer.value() + comma पढ़ती है। सबसे पहले, += ऑपरेटर को हाइलाइट किया जाता है और इसे "डेटा_बफर स्ट्रिंग में डेटा जोड़ें" के रूप में लेबल किया जाता है। इसके बाद, 1.3f स्ट्रिंग को हाइलाइट किया जाता है और उसे फॉर्मेट स्ट्रिंग के रूप में लेबल किया जाता है। इसके बाद, प्रतिशत चिह्न को हाइलाइट किया जाता है और उसे स्ट्रिंग मॉड्यूलो ऑपरेटर के रूप में लेबल किया जाता है। इसके बाद, brain.timer.value() कमांड को हाइलाइट किया जाता है और इसे टाइमर का वर्तमान मान के रूप में लेबल किया जाता है। अंत में, अंत में अल्पविराम स्ट्रिंग को हाइलाइट किया गया है और उसमें लिखा है: डेटा को अलग करने के लिए अंत में अल्पविराम जोड़ें।

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

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

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

  • अब, हम VEX IQ ब्रेन (द्वितीय) में निर्मित इनर्शियल सेंसर के टाइमर और त्वरण मान को पढ़ सकते हैं और फिर निर्दिष्ट प्रारूप में डेटा को data_buffer चर में जोड़ सकते हैं।
  • # बफर में डेटा लिखने के लिए कमांड
    data_buffer += "%1.3f" % brain.timer.value() + "\n"
    data_buffer += "%1.3f" % brain_inertial.acceleration(XAXIS) + ","
    data_buffer += "%1.3f" % brain_inertial.acceleration(YAXIS) + ","
    data_buffer += "%1.3f" % brain_inertial.acceleration(ZAXIS) + "\n"

    पिछले कोड को विस्तार से समझाया गया है। brain.timer.value() का उपयोग करने वाली पहली data_buffer पंक्ति को "बफर में टाइमस्टैम्प जोड़ें" के रूप में लेबल किया गया है। अगली तीन पंक्तियों में लिखा है: बफर में X, Y और Z अक्षों के अनुदिश त्वरण मान जोड़ें।

  • नोट: “\n” नई लाइन वर्ण है। यह दर्शाता है कि पंक्ति यहाँ समाप्त होती है और एक नई पंक्ति की शुरुआत को चिह्नित करती है।
  • फिर, data_buffer चर में डेटा प्रविष्टियों की एक निश्चित संख्या को रिकॉर्ड करने के लिए, हम for loop का उपयोग करके उन निर्देशों को बार-बार निष्पादित कर सकते हैं जो डेटा को लाते हैं और डेटा को data_buffer चर में कई पुनरावृत्तियों के लिए जोड़ते हैं। हमारी रणनीति पुनरावृत्तियों की संख्या निर्धारित करने के लिए चर numOfDataEntries के मान का उपयोग करना है।
  • # डेटा जनरेशन
    for i in range(0, numOfDataEntries):

    # डेटा को बफर में लिखने के लिए कमांड
    data_buffer += "%1.3f" % brain.timer.value() + "\n"
    data_buffer += "%1.3f" % brain_inertial.acceleration(XAXIS) + ","
    data_buffer += "%1.3f" % brain_inertial.acceleration(YAXIS) + ","
    data_buffer += "%1.3f" % brain_inertial.acceleration(ZAXIS) + "\n"
  • अब तक हमारा कार्यक्रम यथासंभव शीघ्रता से डेटा रिकॉर्ड करता है। हालाँकि, हम विशिष्ट समय अंतराल पर डेटा रिकॉर्ड करना चाहते हैं। इसलिए, हम दो रीडिंग के बीच विशिष्ट समय अंतराल जोड़ने के लिए प्रोग्राम को रोकने के लिए फॉर लूप में wait() फ़ंक्शन का उपयोग कर सकते हैं। समय अंतराल का मान निर्धारित करने के लिए हम चर polling_delay_msec के मान का उपयोग करते हैं।
  • # डेटा जनरेशन
    for i in range(0, numOfDataEntries):

    # बफर में डेटा लिखने के लिए कमांड
    data_buffer += "%1.3f" % brain.timer.value() + "\n"
    data_buffer += "%1.3f" % brain_inertial.acceleration(XAXIS) + ","
    data_buffer += "%1.3f" % brain_inertial.acceleration(YAXIS) + ","
    data_buffer += "%1.3f" % brain_inertial.acceleration(ZAXIS) + "\n"

    wait(polling_delay_msec, MSEC)

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

# लाइब्रेरी आयात
vex से आयात *

# ब्रेन को डिफ़ॉल्ट रूप से परिभाषित किया जाना चाहिए
ब्रेन = ब्रेन()
ब्रेन_इनर्टियल = इनर्टियल()

numOfDataEntries = 100
polling_delay_msec = 50
data_buffer = ""

# टाइमर आरंभीकरण कोड जोड़ें
ब्रेन.टाइमर.क्लियर()

# डेटा जनरेशन
for i in range(0, numOfDataEntries):

# डेटा को बफर में लिखने के लिए कमांड
data_buffer += "%1.3f" % ब्रेन.टाइमर.वैल्यू() + "\n"
data_buffer += "%1.3f" % ब्रेन_इनर्टियल.एक्सेलरेशन(XAXIS) + ","
data_buffer += "%1.3f" % ब्रेन_इनर्टियल.एक्सेलरेशन(YAXIS) + ","
data_buffer += "%1.3f" % brain_inertial.acceleration(ZAXIS) + "\n"

wait(polling_delay_msec, MSEC)

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

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

आईक्यू (दूसरी पीढ़ी) ब्रेन को दिखाया गया है जिसमें उसका एसडी कार्ड स्लॉट हाइलाइट किया गया है। ब्रेन डिवाइस के किनारे पर, इसके यूएसबी-सी पोर्ट के दाईं ओर एसडी कार्ड स्लॉट मौजूद है।

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

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

  • यह जांचने के लिए कि क्या SD कार्ड डाला गया है, brain.sdcard.is_inserted() फ़ंक्शन का उपयोग करें। यदि SD कार्ड नहीं डाला गया है, तो VEX IQ ब्रेन स्क्रीन पर संबंधित संदेश प्रदर्शित करें और प्रोग्राम को दबाए रखें।
  • # यदि एसडी कार्ड नहीं डाला गया है तो प्रोग्राम को रोकें
    यदि brain.sdcard.is_inserted() नहीं है:
    brain.screen.set_cursor(1,1)
    brain.screen.print("एसडी कार्ड गायब है")
    जबकि (सत्य):
    प्रतीक्षा करें(5, एमएसईसी)
  • नोट: brain.sdcard.is_inserted() फ़ंक्शन True लौटाता है यदि ब्रेन में SD कार्ड डाला गया है

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

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

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

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

  • इसके बाद, डेटा संग्रहण के लिए for loop से पहले data_buffer स्ट्रिंग में CSV हेडर टेक्स्ट जोड़ें।
  • # CSV हेडर बनाएँ
    data_buffer = csvHeaderText + "\n"

    # CSV डेटा जनरेशन
    for i in range(0, numOfDataEntries):

    # डेटा को बफर में लिखने के लिए कमांड
    data_buffer += "%1.3f" % brain.timer.value() + "\n"
    data_buffer += "%1.3f" % brain_inertial.acceleration(XAXIS) + ","
    data_buffer += "%1.3f" % brain_inertial.acceleration(YAXIS) + ","
    data_buffer += "%1.3f" % brain_inertial.acceleration(ZAXIS) + "\n"

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

    पाइथन कोड की एक पंक्ति को विस्तार से समझाने के लिए उसे टुकड़ों में हाइलाइट किया गया है। कोड की पंक्ति इस प्रकार है: brain.sdcard.savefile(sd_file_name, bytearray(data_buffer, 'utf-8')). सबसे पहले, brain.sdcard.savefile सेक्शन को हाइलाइट किया जाता है और इसे SD कार्ड पर एक नाम वाली फ़ाइल में बाइटएरे को सेव करने के लिए लेबल किया जाता है। इसके बाद, sd_file_name सेक्शन को हाइलाइट किया जाता है और उसे Filename के रूप में लेबल किया जाता है। अंत में, अंत में मौजूद bytearray(data_buffer, 'utf-8') को हाइलाइट किया गया है और उसे Buffer के रूप में लेबल किया गया है।


    यह निर्देश 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 फ़ाइल में लिखें। इसके अलावा, यह जांचने के लिए कोड जोड़ें कि brain.sdcard.savefile() से रिटर्न वैल्यू है, यह सत्यापित करने के लिए कि डेटा फ़ाइल में सफलतापूर्वक लिखा गया है और वास्तविक समय प्रतिक्रिया प्राप्त करने के लिए VEX IQ ब्रेन स्क्रीन पर संबंधित संदेश प्रदर्शित करें। अंत में if स्टेटमेंट फ़ाइल की स्थिति दिखाने के लिए एक संदेश जोड़ता है, जो या तो SD राइट एरर या डेटा रिटन प्रिंट करता है।
  • # CSV डेटा जनरेशन
    for i in range(0, numOfDataEntries):

    # डेटा को बफर में लिखने के लिए कमांड
    data_buffer += "%1.3f" % brain.timer.value() + "\n"
    data_buffer += "%1.3f" % brain_inertial.acceleration(XAXIS) + ","
    data_buffer += "%1.3f" % brain_inertial.acceleration(YAXIS) + ","
    data_buffer += "%1.3f" % brain_inertial.acceleration(ZAXIS) + "\n"

    wait(polling_delay_msec, MSEC)

    # डेटा को SD कार्ड में लिखें
    brain.screen.set_cursor(4,1)
    if brain.sdcard.savefile(sd_file_name, bytearray(data_buffer,'utf-8')) == 0:
    brain.screen.print("SD राइट एरर")
    else:
    brain.screen.print("डेटा लिखा गया")
  • नोट: brain.sdcard.savefile() फ़ंक्शन फ़ाइल में लिखे गए बाइट्स की संख्या लौटाता है। इस परियोजना में, हम इसका उपयोग एकत्रित डेटा को CSV फ़ाइल में लिखने के लिए करते हैं, इसलिए फ़ाइल में लिखे गए बाइट्स की संख्या शून्य से अधिक होनी चाहिए। दूसरे शब्दों में, यदि brain.sdcard.savefile() फ़ंक्शन लौटाता है, हम यह निष्कर्ष निकाल सकते हैं कि डेटा फ़ाइल में सफलतापूर्वक नहीं लिखा गया है। अन्यथा, डेटा फाइल में लिखा जा चुका है।

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

# लाइब्रेरी आयात
vex से आयात *

# ब्रेन डिफ़ॉल्ट रूप से परिभाषित होना चाहिए
ब्रेन = ब्रेन()
ब्रेन_इनर्टियल = इनर्टियल()

csvHeaderText = "समय, x, y, z"
sd_file_name = "myDataPY.csv"
polling_delay_msec = 50
numOfDataEntries = 100
data_buffer = ""

# यदि SD कार्ड नहीं डाला गया है तो प्रोग्राम को रोकें
यदि brain.sdcard.is_inserted() नहीं है:
brain.screen.set_cursor(1,1)
brain.screen.print("SD कार्ड गायब है")
जबकि(True):
प्रतीक्षा करें(5, MSEC)

# कोई भी सेंसर जोड़ें & टाइमर आरंभीकरण कोड यहाँ
brain.timer.clear()

# CSV हेडर बनाएँ
data_buffer = csvHeaderText + "\n"

# CSV डेटा जनरेशन
for i in range(0, numOfDataEntries):

# डेटा को बफर में लिखने के लिए कमांड
data_buffer += "%1.3f" % brain.timer.value() + ","
data_buffer += "%1.3f" % brain_inertial.acceleration(XAXIS) + ","
data_buffer += "%1.3f" % brain_inertial.acceleration(YAXIS) + ","
data_buffer += "%1.3f" % brain_inertial.acceleration(ZAXIS) + "\n"

wait(polling_delay_msec, MSEC)

# डेटा को SD कार्ड में लिखें
brain.screen.set_cursor(4,1)
यदि brain.sdcard.savefile(sd_file_name, bytearray(data_buffer,'utf-8')) == 0:
brain.screen.print("एसडी राइट एरर")
अन्यथा:
brain.screen.print("डेटा लिखा गया")

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

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

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

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

    प्रोजेक्ट का CSV डेटा Google Sheets दस्तावेज़ में खुल गया। इसमें टाइम, X, Y और Z लिखे हुए चार कॉलम हैं। इसमें कई पंक्तियाँ हैं जिनमें प्रत्येक समय पर त्वरण दर्ज किया गया है।

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

    Chart of the data is opened in Google Sheets, showing the acceleration of the X, Y, and Z axes over time. The Z value stays near negative one, and the X and Y values stay near zero.


    नोट: हम चार्ट संपादक का उपयोग कर सकते हैं 14

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

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

Last Updated: