विषयसूची:

हाई स्पीड ईसीजी या अन्य डेटा लॉग इन करें, लगातार एक महीने से अधिक समय तक: 6 कदम
हाई स्पीड ईसीजी या अन्य डेटा लॉग इन करें, लगातार एक महीने से अधिक समय तक: 6 कदम

वीडियो: हाई स्पीड ईसीजी या अन्य डेटा लॉग इन करें, लगातार एक महीने से अधिक समय तक: 6 कदम

वीडियो: हाई स्पीड ईसीजी या अन्य डेटा लॉग इन करें, लगातार एक महीने से अधिक समय तक: 6 कदम
वीडियो: बिना कोर्ट जाएं हटेगा पुराने से पुराना जमीन पर अवैध कब्जा 2024, नवंबर
Anonim
हाई स्पीड ईसीजी या अन्य डेटा लॉग इन करें, लगातार एक महीने से अधिक के लिए
हाई स्पीड ईसीजी या अन्य डेटा लॉग इन करें, लगातार एक महीने से अधिक के लिए

इस परियोजना को एक विश्वविद्यालय चिकित्सा अनुसंधान दल का समर्थन करने के लिए विकसित किया गया था, जिसे एक पहनने योग्य की आवश्यकता थी जो अतालता का पता लगाने के लिए लगातार ३० दिनों के लिए १००० नमूनों/सेकंड (२ के नमूने/सेकंड कुल) पर २ x ईसीजी संकेतों को लॉग कर सके। यहां प्रस्तुत परियोजना में लॉगिंग का रिमोट कंट्रोल और निगरानी शामिल है। रिमोट कंट्रोल एक सीरियल टर्मिनल पर प्रस्तुत मेनू के माध्यम से होता है, या तो कंप्यूटर या मोबाइल फोन पर। यह परियोजना अंतिम पहनने योग्य के लिए आवश्यक ईसीजी माप या पैकेजिंग या बैटरी को कवर नहीं करती है।

यह उच्च गति/लंबी अवधि वाला संस्करण टेन्सी 3.2, एडफ्रूट माइक्रो-एसडी ब्रेकआउट मॉड्यूल, डेटा लॉग करने के लिए एक गुणवत्ता 16जी एसडीएचसी कक्षा 10 एसडी कार्ड और नियंत्रण और निगरानी के लिए एक ब्लूटूथ संचार मॉड्यूल का उपयोग करता है। इस परियोजना का एक कम विकसित और धीमा UNO/Mega2560 संस्करण भी उपलब्ध है। जबकि यह प्रोजेक्ट लॉगिंग के नियंत्रण और निगरानी के लिए ब्लूटूथ संचार मॉड्यूल का उपयोग करता है, आप वाईफाई या बीएलई मॉड्यूल का भी उपयोग कर सकते हैं।

Teensy 3.2 पर आधारित यह संस्करण, UNO/Mega2560 संस्करण की तुलना में बहुत अधिक नमूना दरों में सक्षम है। इस कोड का उपयोग करके टेन्सी 3.2 दो एडीसी नमूनों को> 30 किलोहर्ट्ज़ पर 4 नमूनों से अधिक औसत हार्डवेयर के साथ नमूना और लॉग कर सकता है और इतनी आसानी से ऊपर 1000 नमूने/सेकंड की आवश्यकता को पूरा करता है। कोड 128K प्रत्येक की 100.bin फ़ाइलों को सहेजने का समर्थन करता है। 30Khz पर जो 29hrs 30min को कवर करता है। १००० नमूनों/सेकंड में यह ३७ दिनों को कवर करता है। 100 से अधिक फाइलों को संभालने के लिए कोड को आसानी से बढ़ाया जा सकता है, जिससे रन की अवधि बढ़ जाती है। रन के अंत में आपके पास >10Gig डेटा,.bin, फ़ाइलें और मेटा डेटा की एक.met फ़ाइल होगी जो रन और परिणामों का वर्णन करती है। आपूर्ति की गई SDtoCSV.jar (स्रोत कोड SDtoCSV_src.zip) का उपयोग आगे की प्रक्रिया के लिए आपके कंप्यूटर पर.bin फ़ाइलों को.csv फ़ाइलों में बदलने के लिए किया जा सकता है। परिणामी डेटा> 60Gig है। UNO/Mega2560 संस्करण में Arduino स्केच में.bin से.csv रूपांतरण शामिल है, लेकिन Teensy संस्करण द्वारा लॉग किए गए डेटा की मात्रा को देखते हुए, यह रूपांतरण करने का एक कुशल तरीका नहीं है।

आपूर्ति

पीजेआरसी द्वारा टेन्सी 3.2

एडफ्रूट माइक्रोएसडी कार्ड ब्रेकआउट बोर्ड+ या समान।

१६जी एसडीएचसी कक्षा १० अच्छी गुणवत्ता का माइक्रोएसडी कार्ड उदा। सैनडिस्क।

5 वी यूएसबी आपूर्ति

श्रृंखला में एक 470R रोकनेवाला के साथ नेतृत्व किया।

2 x 100R प्रतिरोधक (Tx/Rx वायरिंग त्रुटियों के कारण होने वाले नुकसान से सुरक्षा प्रदान करता है)

ब्लूटूथ मेट सिल्वर या Android/pfodApp द्वारा नियंत्रित Arduino UNO/Mega Starter पर वर्णित मॉड्यूल में से एक

चरण 1: निर्माण

निर्माण
निर्माण

arduino.cc/en/Main/Software से Arduino IDE V1.8.9+ डाउनलोड और इंस्टॉल करें। उस वेब पेज में विभिन्न ऑपरेटिंग सिस्टम के लिंक हैं और गेटिंगस्टार्ट (https://arduino.cc/en/Guide/HomePage) के लिए एक लिंक है।

Teensyduino (Arduino IDE के लिए टेन्सी सपोर्ट) डाउनलोड और इंस्टॉल करें। पहले उपयोग के निर्देशों को ध्यान से नोट करें।

बोर्ड के रूप में Teensy 3.2 का चयन करें और जांचें कि BLINK उदाहरण प्रोग्राम लोड होता है और चलता है।

निम्नलिखित पुस्तकालयों को डाउनलोड और स्थापित करें: - मिलीसडेल और एसडीफैट (इन परीक्षणों के लिए इस्तेमाल किए गए एसडीफैट पुस्तकालय का एक स्थानीय स्नैपशॉट यहां है।) और pfodParser.zip (pfodBufferedStream और pfodNonBlockingInput वर्ग के लिए)

लाइब्रेरी ज़िप फ़ाइलें डाउनलोड करें और फिर Arduino IDE → स्केच → लाइब्रेरी शामिल करें → ज़िप फ़ाइलों से लाइब्रेरी स्थापित करने के लिए. ZIP लाइब्रेरी मेनू का उपयोग करें।

अपनी Arduino स्केच निर्देशिका में Teensy32AnalogLogger.zip फ़ाइल को अनज़िप करें और Teensy32AnalogLogger.ino (संस्करण 0.01) के साथ Teensy 3.2 बोर्ड को प्रोग्राम करें।

ऊपर दिखाए गए अनुसार Teensy 3.2, ब्लूटूथ मॉड्यूल और एसडी कार्ड मॉड्यूल को तार दें (पीडीएफ संस्करण)

चरण 2: प्रोग्राम चलाना -- परीक्षण

सबसे पहले https://www.sdcard.org/downloads/formatter/ का उपयोग करके अपने एसडी कार्ड को फॉर्मेट करें।

लॉगिंग शुरू करने के लिए एसडी कार्ड खाली होना चाहिए।

प्रारंभिक परीक्षण के लिए आपको संचार मॉड्यूल को कनेक्ट करने की आवश्यकता नहीं है, बस यूएसबी सीरियल केबल के माध्यम से टेन्सी 3.2 + एसडी मॉड्यूल (एक खाली कार्ड स्थापित के साथ) को Arduino IDE से कनेक्ट करें। जैसा कि प्रदान किया गया है Teensy32AnalogLogger.ino स्केच नियंत्रण और निगरानी के लिए USB कनेक्शन का उपयोग करता है। नियंत्रण और निगरानी के लिए संचार उपकरण का उपयोग करने के लिए नीचे वास्तविक डेटा लॉगिंग चरण देखें।

COM_SERIAL को सीरियल में सेट करने के लिए, Teensy USB कनेक्शन के आउटपुट के लिए, Teensy32AnalogLogger.ino स्केच के शीर्ष को संपादित करें।

# परिभाषित करें COM_SERIAL सीरियल

फिर स्केच को Teensy 3.2. पर अपलोड करें

115200 बॉड (एनएल और सीआर सेट दोनों के साथ) पर Arduino IDE सीरियल मॉनिटर खोलें। कुछ सेकंड के बाद Teensy 3.2 आदेशों का एक मेनू प्रदर्शित करेगा

Ver:0.01 निम्न में से कोई एक कमांड दर्ज करें:? - वर्तमान स्थिति और मेटाडेटा - फाइलों को इनिशियलाइज़ करें - फाइलों की सूची बनाएं>

NS ? cmd वर्तमान सेटिंग्स का विवरण प्रदर्शित करता है। (इन सेटिंग्स को बदलने के लिए Teensy32AnalogLogger.ino का शीर्ष देखें) Cmds को NL या CR या दोनों के साथ समाप्त किया जाना चाहिए।

०:००:००,००० का ७२:००:०००:०००

नमूना पिन: 16 17 बाइट ऑर्डर: लिटिल-एंडियन एडीसी बिट्स: 10 एडीसी नमूना औसत से अधिक: 4 नमूना दर: 1000.00 नमूना अंतराल: प्रति ब्लॉक 1000uS नमूने: 127 ब्लॉक भरने का समय: 127000uS फ़ाइल भरने का समय: 9:01: ५२.००० सभी फाइलों को भरने का समय: ८९४:०४:४८.००० अधिकतम एसडी विलंबता (फ़ाइल बंद/खुला शामिल है): ०यूएस अधिकतम फ़ाइल बंद/खुला विलंबता: ०यूएस बफर ब्लॉकों की संख्या: २८ सभी ब्लॉक बफ़र्स को भरने का समय: ३५५६०००यूएस बफर की अधिकतम संख्या स्टोर करने के लिए कॉल में सहेजा गया नमूनाबफर (): 0 मिस्ड टाइमर कुल: 0 अब तक कुल छूटे हुए नमूने: 0 लिखे गए कुल ब्लॉक: 0 लिखे गए कुल नमूने: 0 कवरिंग: 0:00:00.000 वर्तमान फ़ाइल:

इस मामले में वर्तमान लॉगिंग रनटाइम अनुरोधित 720hrs (30 दिन) में से 0 है, नमूना D16/A2 और D17/A3 (नीचे ADC इनपुट की पसंद पर प्रतिबंधों के लिए नीचे देखें) एक सेकंड में 1000 बार। अधिकतम रनटाइम 894hrs (37.25days) तक हो सकता है। सभी उपलब्ध बफ़र्स भरने से पहले मुख्य लूप () को 3.5 सेकंड (सभी ब्लॉक बफ़र्स को भरने का समय) तक कब्जा किया जा सकता है और नमूने खो जाने लगते हैं। जैसे-जैसे रन आगे बढ़ता है, सहेजे गए बफ़र्स आदि को अपडेट किया जाता है।

एक खाली एसडी कार्ड डालें, डेटा को स्टोर करने के लिए इस्तेमाल की गई 99 फाइलों को इनिशियलाइज़ करने के लिए 'i' cmd का इस्तेमाल करें। उन्हें यहां प्री-इनिशियलाइज़ करने से एक फ़ाइल से दूसरी फ़ाइल में स्विच करने में लगने वाले समय की देरी कम हो जाती है और तेज़ी से नमूना लेने की अनुमति मिलती है।

99 फाइलों को प्रारंभ करना

नई फ़ाइल बनाना: log00.bin बीता हुआ समय: 368mS नई फ़ाइल बनाना: log01.bin बीता हुआ समय: 520mS।.. नई फ़ाइल बनाना: log98.bin बीता हुआ समय: 15660mS नई फ़ाइल बनाना: log99.bin बीता हुआ समय: 15812mS

फिर आप लॉगिंग रन शुरू करने के लिए r cmd का उपयोग कर सकते हैं। रन अनुरोधित समय के लिए या जब तक इसे रोकने के लिए s cmd का उपयोग नहीं किया जाता है। आप भी इस्तेमाल कर सकते हैं? cmd अद्यतन समय और गणना प्राप्त करने के लिए लॉगिंग करते समय। यहाँ s cmd का उपयोग करते हुए एक छोटी दौड़ को जल्दी रोक दिया गया है।

लॉगिंग डेटा…..

Ver:0.01 निम्न में से कोई एक कमांड दर्ज करें: ? - वर्तमान स्थिति और मेटाडेटा एस - डेटा लॉगिंग रोकें

लॉगिंग डेटा… के साथ जांचें? आदेश

बीता हुआ रन टाइम: 0:00:10.000 of 720:00:00.000 बीता हुआ रन टाइम: 0:00:20.000 of 720:00:00.000 ।..

लॉगिंग रोकना और अप्रयुक्त फाइलों को हटाना।

… अप्रयुक्त फाइल को हटाना: log98.bin अप्रयुक्त फाइल को हटाना: log99.bin

०:०१:०४.९७६ of ७२:००:०००००

नमूना पिन: 16 17 बाइट ऑर्डर: लिटिल-एंडियन एडीसी बिट्स: 10 एडीसी नमूना औसत से अधिक: 4 नमूना दर: 1000.00 नमूना अंतराल: प्रति ब्लॉक 1000uS नमूने: 127 ब्लॉक भरने का समय: 127000uS फ़ाइल भरने का समय: 9:01: ५२.००० सभी फाइलों को भरने का समय: ८९४:०४:४८.००० अधिकतम एसडी विलंबता (फ़ाइल बंद/खुला शामिल है): २०४यूएस अधिकतम फ़ाइल बंद/खुली विलंबता: ०यूएस बफर ब्लॉकों की संख्या: २८ सभी ब्लॉक बफ़र्स को भरने का समय: ३५५६०००यूएस बफर की अधिकतम संख्या स्टोर करने के लिए कॉल में सहेजा गया नमूनाबफ़र्स (): 1 मिस्ड टाइमर कुल: 0 अब तक कुल छूटे हुए नमूने: 0 लिखे गए कुल ब्लॉक: 511 लिखे गए कुल नमूने: 64832 कवरिंग: 0: 01: 04.832 वर्तमान फ़ाइल: log00.bin

एलएस:

2000-01-01 01:00:00 261632 log00.bin 2000-01-01 01:00:00 240 log.met

डेटा लॉगिंग पूर्ण!

Ver:0.01 निम्न में से कोई एक कमांड दर्ज करें: ? - वर्तमान स्थिति और मेटाडेटा ** आर - रिकॉर्ड एडीसी डेटा ** उपलब्ध नहीं है। डेटा पहले से मौजूद है ** i - फाइलों को इनिशियलाइज़ करें ** उपलब्ध नहीं है। डेटा पहले से मौजूद है l - सूची फ़ाइलें

डेटा पहले ही लॉग किया जा चुका है, चेक करें?

नेतृत्व में प्रदर्शन

D3 से जुड़ी एलईडी (D2 के साथ GND कनेक्शन प्रदान करने के साथ) कोई नमूना छूटने पर ठोस चालू हो जाएगा और कोई त्रुटि होने पर फ्लैश हो जाएगा। स्केच त्रुटियों के बाद भी जारी रखने का प्रयास करता है लेकिन ऐसा सफलतापूर्वक नहीं हो सकता है।

चरण 3: वास्तविक डेटा लॉग करना

लंबी अवधि में वास्तविक डेटा लॉग करते समय, संचार मॉड्यूल को D0/D1 पिन से कनेक्ट करना और लॉगिंग को दूरस्थ रूप से नियंत्रित और मॉनिटर करना अधिक सुविधाजनक होता है। यहां एक ब्लूटूथ मेट सिल्वर मॉड्यूल का उपयोग इसकी डिफ़ॉल्ट सेटिंग्स, 115200 बॉड, नो हार्डवेयर हैंडशेकिंग (आरटीसी, सीटीएस), पिन कोड 1234 के साथ किया गया था।

नोट: जब बिजली को मेट सिल्वर मॉड्यूल पर लागू किया जाता है तो यह कॉन्फ़िगरेशन मोड में चला जाता है, तेज लाल एलईडी ब्लिंकिंग, 60 सेकंड के लिए। इस समय के दौरान आप मॉड्यूल को कॉन्फ़िगर करने के लिए सीरियल कनेक्शन के माध्यम से $$$ भेज सकते हैं लेकिन आप मॉड्यूल को कनेक्ट नहीं कर सकते। एक बार लाल एलईडी धीमी गति से झपकने के बाद, ब्लूटूथ मॉड्यूल कनेक्शन स्वीकार करेगा।

Teensy32AnalogLogger.ino में COM_SERIAL परिभाषित को हार्डवेयर सीरियल (D0/D1) कनेक्शन, Serial1 में बदलें

#परिभाषित करें COM_SERIAL सीरियल1

कंप्यूटर के साथ युग्मित करने के बाद, कंप्यूटर पर एक नया COM पोर्ट बनाया गया और कूलटर्म का उपयोग लॉगिंग को जोड़ने और नियंत्रित करने और मॉनिटर करने के लिए किया जा सकता है। अन्य क्रमिक रूप से जुड़े संचार मॉड्यूल का भी उपयोग किया जा सकता है, जैसे कि वाईफाई या बीएलई, विवरण के लिए एंड्रॉइड/pfodApp द्वारा नियंत्रित Arduino UNO/Mega Starter देखें।

आप ब्लूटूथ टर्मिनल ऐप जैसे ब्लूटूथ टर्मिनल ऐप या वाईफाई और टीसीपी टर्मिनल ऐप जैसे टीसीपी टेलनेट टर्मिनल प्रो, या यूआर्ट टू बीएलई एमडीयूएल और एक बीएलई टर्मिनल ऐप का उपयोग करके अपने एंड्रॉइड मोबाइल से लॉगिंग को नियंत्रित और मॉनिटर कर सकते हैं। एनआरएफ यूएआरटी V2

चरण 4: एडीसी आदानों की पसंद पर प्रतिबंध

एडीसी आदानों के चयन पर प्रतिबंध
एडीसी आदानों के चयन पर प्रतिबंध

Teensy 3.2 के माइक्रो-प्रोसेसर में दो अलग-अलग ADC हार्डवेयर मॉड्यूल, ADC_0 और ADC_1 हैं, इसलिए यह एक ही समय में दो इनपुट का नमूना ले सकता है। इसमें एक अंतर्निहित हार्डवेयर औसत भी है जो कई एडीसी नमूने लेता है और परिणाम बदलने से पहले उनका औसत लेता है।

ऐसे प्रतिबंध हैं जिन पर इनपुट को ADC_0, ADC_1 से जोड़ा जा सकता है। Teensy3_1_AnalogCard-p.webp

संक्षेप में: - सिंगल एंडेड रीड्स के लिए यानी + GND को संदर्भित वोल्ट ADC_0 A0 से A9, A10, A11, A12, A14 ADC_1 पढ़ सकते हैं A2, A3, A10, A13, A15 से A20 पढ़ सकते हैं यदि आप एक पिन का चयन करते हैं जिसे ADC पढ़ नहीं सकता यह 0 लौटाएगा (हमेशा)

यह प्रोजेक्ट A2, A3 का उपयोग करता है जिसे ADC_0 या ADC_1 द्वारा एक्सेस किया जा सकता है।

चरण 5:.bin फ़ाइलों को.csv फ़ाइलों में कनवर्ट करना

Teensy32AnalogLogger.ino logxx.bin फाइलों में बाइनरी के रूप में नमूने सहेजता है, यानी log00.bin से log99.bin। Teensy32AnalogLogger.ino रन के बारे में मेटा डेटा की लॉग.मेट फ़ाइल भी सहेजता है।

आप आगे की प्रक्रिया के लिए.bin फ़ाइलों को.csv में बदलने के लिए SDtoCSV.jar (स्रोत कोड SDtoCSV_src.zip) का उपयोग कर सकते हैं। कम से कम 70Gig खाली जगह के साथ SD कार्ड से अपने कंप्यूटर की हार्ड डिस्क पर फ़ाइलों की प्रतिलिपि बनाएँ और SDtoCSV.jar को उसी निर्देशिका में कॉपी करें। उस निर्देशिका में एक कमांड विंडो खोलें और चलाएं

जावा -जार SDtoCSV.jar लॉग

अगर आपके कंप्यूटर में जावा इंस्टाल नहीं है तो इसे www.java.com से इंस्टाल करें

SDtoCSV log.met फ़ाइल और फिर निर्देशिका में उपलब्ध logxx.bin फ़ाइलों में से प्रत्येक को संसाधित करेगा और प्रत्येक.bin के लिए एक.csv फ़ाइल आउटपुट करेगा।.csv फ़ाइल में दो रीडिंग के बाद नमूना अनुक्रम संख्या होती है।

2 एडीसी रीडिंग के लिए नमूना कंसोल आउटपुट 30303 बार/सेकंड यहां दिखाया गया है, output.txt। यह दिखाता है कि छूटे हुए नमूनों की रिपोर्ट कैसे की जाती है। (अंतिम स्केच में बफ़र्स की संख्या को दोगुना करते हुए यह इन छूटे हुए नमूनों को ठीक करता है)

SD_सीएसवी रूपांतरण में प्रवेश। प्रगति और त्रुटि संदेशों के लिए SDtoCSV.log की जाँच करें। प्रसंस्करण log00 संसाधित 256000 ब्लॉक प्रसंस्करण log01 संसाधित 256000 ब्लॉक।.. प्रसंस्करण लॉग२५ संसाधित २५६००० ब्लॉक प्रसंस्करण लॉग२६ संसाधित २५६००० ब्लॉक प्रसंस्करण लॉग२७ संसाधित २५६००० ब्लॉक छूटे हुए नमूने: २७१५ प्रसंस्करण लॉग२८ संसाधित २५६००० ब्लॉक।.. प्रसंस्करण लॉग २९ संसाधित २५६००० ब्लॉक… प्रसंस्करण लॉग 47 संसाधित 256000 ब्लॉक प्रसंस्करण लॉग48 संसाधित 35935 ब्लॉक --- समाप्त प्रसंस्करण

एक फुलर लॉग फ़ाइल, SDtoCSV.log, SDtoCSV के प्रत्येक रन द्वारा संलग्न की जाती है। इसमें मेटा डेटा आउटपुट और कोई त्रुटि संदेश शामिल हैं। यहां गिनती:254 उस ब्लॉक में संग्रहीत डेटा की गिनती है यानी प्रति ब्लॉक 127 नमूने x 2 एडीसी रीडिंग। छूटे हुए नमूने छूटे हुए पढ़ने के जोड़े की संख्या है यानी.csv आउटपुट में लाइनें।

=== सीएसवी रूपांतरण के लिए एसडी_लॉगिंग के लिए लॉग फ़ाइल शनि जुलाई 13 13:19:51 एईएसटी 2019 कंसोल पर प्रगति संदेश देखने के लिए जावा -जर एसडीटीओसीएसवी.जर बेस फ़ाइल नाम 'लॉग' मेटाडेटा संस्करण का उपयोग करें: 0 (लिटिल एंडियन) नमूना अंतराल यूएस: 33 adcBits:10 adcAvgs:4 पिनगणना:2 पिन: 16, 17 नमूनेPerBlock:127 noBufferBlocks:28 अवधि mS:51649820 अनुरोधित रनटाइम mS:106216704 maxBuffersउपयोग:32 चेतावनी: उपलब्ध बफ़र्स की संख्या से अधिक (28)। कुछ नमूने गायब हो सकते हैं। अधिकतम विलंबता यूएस: 221476 चेतावनी: बफर ब्लॉक (117348uS) द्वारा प्रदान किए गए समय से अधिक है। कुछ नमूने गायब होंगे। maxFileOpenTime uS:20998 छूटे हुए टाइमर: 0 छूटे हुए नमूने कुल: 2715 कुल ब्लॉक लिखे गए: 12323935 कुल नमूने लिखित: 1565139665 प्रसंस्करण log00.bin संसाधित 256000 ब्लॉक प्रसंस्करण log01.bin संसाधित 256000 ब्लॉक।.. प्रसंस्करण log26.bin संसाधित 256000 ब्लॉक प्रसंस्करण log27.bin !!! ब्लॉक:57696 गिनती:254 छूटेनमूने:2339 !!! ब्लॉक: 57697 गिनती: 254 छूटे हुए नमूने: 376 संसाधित 256000 ब्लॉक --- कुल छूटे हुए नमूने: 2715

प्रसंस्करण log28.bin संसाधित 256000 ब्लॉक

… प्रसंस्करण log47.bin संसाधित 256000 ब्लॉक प्रसंस्करण log48.bin संसाधित 35935 ब्लॉक --- प्रसंस्करण समाप्त

log00.csv आउटपुट फ़ाइल का एक नमूना है

नमूना काउंटर (प्रति 33uS), पिन 16, पिन 170, 248, 205 1, 273, 195 2, 228, 337 3, 360, 302 4, 355, 369 5, 220, 281 ।..

नमूना काउंटर फ़ाइल से फ़ाइल में बढ़ता है इसलिए इसे टाइम स्टैम्प के रूप में उपयोग किया जा सकता है। यदि नमूने गायब हैं तो अगली पंक्ति को आउटपुट करने से पहले नमूना काउंटर को मिस्ड काउंट से बढ़ा दिया जाता है ताकि रिकॉर्ड किए गए नमूनों के लिए काउंटर/टाइम स्टैम्प सटीक रहे।

चरण 6: कोड और एक्सटेंशन पर टिप्पणियाँ

Teensy32AnalogLogger उनकी SdFat Arduino लाइब्रेरी में Bill Greiman के AnalogBinLogger उदाहरण का एक अत्यधिक संशोधित संस्करण है। यहां लाइब्रेरी को टेन्सी 3.2 पर चलने के लिए फिर से लिखा गया है।

Teensy32AnalogLogger नमूना अंतराल सेट करने के लिए टाइमर0 का उपयोग करता है। टाइमर0 के लिए इंटरप्ट हैंडलर दो एडीसी रूपांतरण शुरू करता है। दूसरे एडीसी मॉड्यूल के लिए एक इंटरप्ट हैंडलर को लगातार तब तक बुलाया जाता है जब तक कि वे दोनों समाप्त न हो जाएं, आमतौर पर पहला एडीसी मॉड्यूल शुरू हुआ एडीसी_0 दूसरे से पहले खत्म हो जाएगा, इसलिए इंटरप्ट हैंडलर को केवल एक बार बुलाया जाता है। ADC_1 इंटरप्ट हैंडलर नमूनों को डेटा बफ़र में सहेजता है।

मुख्य लूप () में, storeSampleBuffer () एसडी कार्ड में किसी भी पूर्ण बफर को सहेजता है और बफर को खाली बफर कतार में रीसायकल करता है। Teensy 3.2 पर उपलब्ध RAM की बड़ी मात्रा का अर्थ है कि बड़ी संख्या में बफ़र्स आवंटित किए जा सकते हैं और इसलिए storeSampleBuffer() को अक्सर कॉल करने की आवश्यकता नहीं होती है। यह मुख्य लूप () के लिए अन्य काम करने के लिए समय छोड़ देता है, जैसे प्रोसेस कमांड और आउटपुट भेजना।

एक्सटेंशन

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

  1. वेव फॉर्म के स्नैपशॉट दिखाने के लिए pfodApp के प्लॉटिंग फ़ंक्शन का उपयोग करके pfodApp के माध्यम से सैंपल वेव फॉर्म का रियल टाइम कंट्रोल और मॉनिटरिंग जोड़ें
  2. अधिक सैंपलिंग रन के लिए फ़ाइल संख्या को ९९ से आगे बढ़ाएँ
  3. 2 से अधिक इनपुट का नमूना। चूंकि Teensy 3.2 में दोहरे ADC मॉड्यूल हैं, आप नमूना दर को अधिकतम करने के लिए जोड़े में अतिरिक्त इनपुट जोड़ने के लिए कोड को संशोधित कर सकते हैं।
  4. बैटरी चार्ज ट्रैक करने के लिए बैटरी मॉनिटरिंग जोड़ें। टेन्सी 3.2 ब्लूटूथ और एसडी मॉड्यूल सहित 24 घंटे में लगभग 1100mAhrs का उपयोग करता है, लेकिन सेंसर मॉड्यूल को छोड़कर
  5. लॉगिंग को बाधित किए बिना बैटरी परिवर्तन की अनुमति देने के लिए दोहरी बैटरी आपूर्ति सर्किट जोड़ें।

सिफारिश की: