विषयसूची:

ईईजी AD8232 चरण 2: 5 चरण (चित्रों के साथ)
ईईजी AD8232 चरण 2: 5 चरण (चित्रों के साथ)

वीडियो: ईईजी AD8232 चरण 2: 5 चरण (चित्रों के साथ)

वीडियो: ईईजी AD8232 चरण 2: 5 चरण (चित्रों के साथ)
वीडियो: Demonstration of a Low Cost EEG Circuit 2024, नवंबर
Anonim
ईईजी AD8232 चरण 2
ईईजी AD8232 चरण 2
ईईजी AD8232 चरण 2
ईईजी AD8232 चरण 2
ईईजी AD8232 चरण 2
ईईजी AD8232 चरण 2

तो इस आलसी ओल्ड गीक (एलओजी) ने एक ईईजी बनाया:

www.instructables.com/id/EEG-AD8232-Phase-…

ऐसा लगता है कि यह ठीक काम कर रहा है, लेकिन एक चीज जो मुझे पसंद नहीं है, वह है कंप्यूटर से जुड़ा होना। मैं इसे कोई परीक्षण न करने के बहाने के रूप में उपयोग करता हूं। मेरे पास एक और चिंता यह है कि ऐसा लगता है कि मुझे अपने सिग्नल में कुछ एसी पावर लाइन शोर मिल रहा है।

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

वैसे भी, मैंने HC05 और HC06 ब्लूटूथ मॉड्यूल के साथ कुछ परीक्षण किया और उन्हें काम पर लाने में सक्षम था:

www.instructables.com/id/OldMan-and-Blueto…

जैसा कि उल्लेख किया गया है, साथी प्रशिक्षक, लिंगिब ने अपना ईईजी मॉनिटर जारी किया:

www.instructables.com/id/Mind-Control-3-EE…

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

चरण 1: वायरलेस मॉड्यूल डिज़ाइन करें

डिज़ाइन वायरलेस मॉड्यूल
डिज़ाइन वायरलेस मॉड्यूल
डिज़ाइन वायरलेस मॉड्यूल
डिज़ाइन वायरलेस मॉड्यूल
डिज़ाइन वायरलेस मॉड्यूल
डिज़ाइन वायरलेस मॉड्यूल

माइक्रोकंट्रोलर के लिए मैं 3.3V माइक्रो प्रो का उपयोग करूंगा। यह Arduino 3.3V डिवाइस है इसलिए यह AD8232 के साथ संगत है। स्पार्कफुन संस्करण 3.3V MIC5219 वोल्टेज नियामक का उपयोग करता है।

बैटरी के लिए, मैं एक पुरानी रिचार्जेबल बैटरी का उपयोग करूँगा जो मेरे पास है। यह एक लिथियम रिचार्जेबल बैटरी है जिसे शायद स्मार्टफोन के लिए डिज़ाइन किया गया है।

जैसा कि बाद में चर्चा की गई, मुझे पता चला कि अलीएक्सप्रेस माइक्रो प्रो MIC5219 के बजाय एक XC6204 वोल्टेज नियामक का उपयोग करता है।

तो मेरा डिज़ाइन थोड़ा बॉर्डरलाइन है। लिथियम बैटरी आमतौर पर चार्ज के आधार पर 3.5 से 4.2V की होती हैं। XC6204 100mA तक के लोड के साथ 200mV के एक विशिष्ट ड्रॉपआउट का दावा करता है। 3.5V बैटरी के साथ पूर्ण लोड पर सबसे खराब स्थिति, नियामक आउटपुट लगभग 3.3V होगा। यह ठीक होना चाहिए, लेकिन केवल संभावित समस्याओं से अवगत रहें।

अन्य घटक चरण 1 से संशोधित AD8232 और 3.3V ब्लूटूथ मॉड्यूल के लिए संशोधित HC05 हैं, जैसा कि इसमें चर्चा की गई है:

www.instructables.com/id/OldMan-and-Blueto…

सुविधा के लिए मैंने ईगल कैडसॉफ्ट का उपयोग किया और इस विधि का उपयोग करके एक पीसीबी बनाया:

www.instructables.com/id/Vinyl-Sticker-PCB…

योजनाबद्ध और ईगल फाइलें संलग्न हैं।

मैंने बिजली की खपत को मापा: यह 58mA था। एक समय में, मैंने 1750mA घंटे की क्षमता के लिए इस बैटरी का परीक्षण किया था जो एक चार्ज पर लगभग 30 घंटे का रन टाइम देती है।

बैटरी कनेक्टर के लिए, मैंने JST2.0 2pin कनेक्टर का उपयोग किया ताकि यह मेरे Adafruit M4 Express के साथ मेल खाए। इनमें से कई बैटरियों में तीन संपर्क होते हैं, लेकिन लगभग 4V के लिए मल्टीमीटर से मापें और तारों को बैटरी में मिला दें। मैंने कनेक्शन को सील करने और समर्थन करने के लिए गर्म गोंद का उपयोग किया।

चेतावनी: कुछ JST2.0 कनेक्टरों में Adafruit से उलटे लाल और काले तार होते हैं।

मैंने लिथियम बैटरी चार्जर में JST2.0 कनेक्टर भी जोड़ा। तस्वीर देखो।

चरण 2: पैकेजिंग और स्केच

पैकेजिंग और स्केच
पैकेजिंग और स्केच
पैकेजिंग और स्केच
पैकेजिंग और स्केच
पैकेजिंग और स्केच
पैकेजिंग और स्केच

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

हेडबैंड का उपयोग करना आसान बनाने के लिए, (टांका लगाने के बजाय) मैंने एक 3.5 मिमी ऑडियो केबल एक्सटेंडर लिया, एक छोर को काट दिया और इसे हेडबैंड सेंसर और ईयर ग्राउंड से जोड़ा। यह AD8232 मॉड्यूल में प्लग इन होगा।

टिप: मैंने मान लिया था कि कनेक्टर मानक ऑडियो केबल की तरह होगा जिसमें टिप पर लेफ्ट, राइट बीच में और बॉटम ग्राउंड होगा। यह AD8232 के लिए सही नहीं है इसलिए मुझे इसे फिर से तार करना पड़ा, चित्र देखें।

मूल HC05 में पीसीबी के समानांतर पिन निकलते हैं। इसे चापलूसी करने के लिए, मैंने उन्हें सीधा किया ताकि वे पीसीबी के समकोण पर हों, चित्र देखें। जबकि असमान पिन जानबूझकर नहीं है, यह एक बेहतर विद्युत कनेक्शन बनाता है।

अगली तस्वीर असेंबल किए गए वायरलेस ईईजी को दिखाती है, फिर यह जेब में कैसे जाएगा, जो आर्मबैंड को वेल्क्रो करेगा।

कुछ तस्वीरें दिखाती हैं कि यह सब कैसे जुड़ा हुआ है।

Arduino स्केच संलग्न है, fix_FFT_EEG_wireless.ino

यह HC05 संचार के लिए जोड़ी गई कुछ पंक्तियों के साथ लिंगिब कोड पर आधारित है।

चरण 3: बेस स्टेशन

नींव का अवस्थान
नींव का अवस्थान
नींव का अवस्थान
नींव का अवस्थान
नींव का अवस्थान
नींव का अवस्थान

तो यह ईईजी वायरलेस मेरे CP2102-HC06 एडेप्टर में से एक के साथ प्रसंस्करण का उपयोग करके पीसी पर वास्तविक समय डेटा प्रदर्शित करने के लिए काम करेगा:

www.instructables.com/id/Mind-Control-3-EE…

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

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

यह एक बेस स्टेशन का उपयोग करेगा, मूल रूप से वायरलेस ईईजी से डेटा प्राप्त करने के लिए एचसी06 के साथ एक और माइक्रो प्रो, समय रिकॉर्ड करने के लिए एक डीएस3231 आरटीसी और माइक्रोएसडी कार्ड में टाइम-स्टैम्प डेटा को बचाने के लिए एक माइक्रोएसडी कार्ड एडाप्टर का उपयोग करेगा। यह मूल रूप से मेरे IR थर्मामीटर की तरह है:

www.instructables.com/id/IR-Thermometer-fo…

वास्तव में मैं पीसीबी पर एक आईआर थर्मामीटर और डीएचटी 22 (अस्थायी और आर्द्रता) का उपयोग करने का विकल्प छोड़ दूंगा।

यहाँ प्रमुख घटक हैं:

3.3V माइक्रो प्रो Arduino

DS3231 आरटीसी (संशोधित)

(भविष्य में अतिरिक्त DHT22 तापमान / RH)

एचसी06

(भविष्य के अतिरिक्त एमएलएक्स 90614 आईआर टेम्प सेंसर)

5V माइक्रोएसडी कार्ड एडाप्टर

बिजली की खपत:

चूंकि इस माइक्रो प्रो में बहुत सारे सेंसर लगे हैं, इसलिए मैं करंट पर थोड़ा ध्यान देने जा रहा हूं।

माइक्रो प्रो पर वोल्टेज रेगुलेटर सभी सेंसर्स को पावर दे रहा है।

(स्पार्कफुन माइक्रो प्रो में MIC5219 3.3v रेगुलेटर है जो 500mA करंट की आपूर्ति कर सकता है।)

AliExpress 3.3v माइक्रो प्रो I ने स्पष्ट रूप से एक Torex XC6204B नियामक खरीदा है। यह अंकन द्वारा सुझाया गया है जिसे मैं मुश्किल से पढ़ सकता हूं लेकिन यह 4B2X जैसा दिखता है।

4B का मतलब XC6204B है, 2 का मतलब 3.3V आउटपुट है।

जहाँ तक मैं बता सकता हूँ, XC6204B अधिकतम 150mA (MIC5219 500mA से बहुत कम) का उत्पादन करता है। फिर भी।

मुझे 3.3V माइक्रो प्रो के निष्क्रिय वर्तमान ड्रॉ पर कोई डेटा नहीं मिल रहा है। इसलिए मैंने कुछ मापने का फैसला किया:

3.3V प्रो माइक्रो 11.2mA

3.3V एल.ओ.जी. बीनाउरल बीट्स 20mA

3.3V वायरलेस ईईजी 58mA

3V पर DS3231 डेटाशीट अधिकतम करंट 200uA या 0.2mA है।

DHT22 डेटाशीट अधिकतम करंट 2.5mA है।

सक्रिय मोड में HC06 8.5mA है (युग्मन मोड में 40mA)

MLX90614 डेटाशीट मुझे यकीन नहीं है कि ऐसा लगता है कि अधिकतम करंट 52mA है।

तो उन सभी को जोड़ना लगभग 85mA है जो कि 150mA से बहुत कम नहीं है। लेकिन यह ठीक होना चाहिए।

माइक्रोएसडी कार्ड एडेप्टर रॉ पिन 5V द्वारा संचालित है।

मैंने बेस स्टेशन का एक योजनाबद्ध संलग्न किया है। मैं जिस प्रोटोबार्ड का उपयोग कर रहा हूं और जिस स्केच का पालन करना है, उसमें DHT22 या IR थर्मामीटर शामिल नहीं है।

चरण 4: स्केच

स्केच
स्केच

मूल रूप से, स्केच वायरलेस EEG HC05 द्वारा बाध्य HC06 के माध्यम से भेजे गए डेटा को प्राप्त करता है, यह डेटा को अपने USB पोर्ट को वायरलेस EEG के समान प्रारूप में भेजता है ताकि इसे EEG_Monitor_2 (प्रसंस्करण) द्वारा पढ़ा जा सके और प्रदर्शित किया जा सके।

यह DS3231 RTC से समय और तारीख भी प्राप्त करता है और समय डेटा पर मुहर लगाता है और इसे CSV (अल्पविराम से अलग किए गए मान) प्रारूप में एक माइक्रोएसडी कार्ड में लिखता है।

समस्या १: वायरलेस ईईजी मेरे एचसी०६ को ११५, २०० बॉड पर ब्लूटूथ डेटा भेज रहा था। जाहिरा तौर पर मेरा HC06 उस गति से सही ढंग से संवाद नहीं कर सकता क्योंकि वह कचरा देख रहा था। खैर, मैंने इसके साथ खेला, अंत में इसे HC05 और HC06 दोनों को 19, 200 बॉड पर सेट करके काम कर लिया।

PROBLEM2: डेलाइट सेविंग टाइम मेरे लिए एक समस्या रही है। मैं जे क्रिस्टेंसन द्वारा निम्नलिखित में भाग गया:

forum.arduino.cc/index.php?topic=96891.0

github.com/JChristensen/Timezone

इसका उपयोग करने के लिए, आपको सबसे पहले RTC को UTC (कोऑर्डिनेटेड यूनिवर्सल टाइम) पर सेट करना होगा, यह समय ग्रीनविच, इंग्लैंड में है। खैर, मुझे नहीं पता था कि यह कैसे करना है, लेकिन यह लेख मिला:

www.justavapor.com/archives/2482

इसे माउंटेन टाइम के लिए फिर से लिखा (संलग्न) UTCtoRTC.ino

यह DS3231 को UTC समय पर सेट करता है, जो माउंटेन टाइम से 6 घंटे बाद में होता है।

फिर मैंने टाइमज़ोन को अपने स्केच में शामिल किया। ईमानदार होने के लिए, मैंने इसका परीक्षण नहीं किया है, इसलिए यह मानते हुए कि यह काम करता है।

PROBLEM3: ब्लूटूथ (और अधिकांश अन्य धारावाहिक संचार) के साथ समस्याओं में से एक यह है कि यह अतुल्यकालिक है। इसका मतलब है कि आप वास्तव में नहीं जानते कि डेटा कब शुरू हुआ और आप डेटा स्ट्रीम के बीच में देख रहे होंगे।

तो मैंने जो किया वह डेटा के प्रत्येक पैकेट को '$' के साथ शुरू किया गया और मेरे बेस स्टेशन में इसकी तलाश की गई। ऐसा करने का एक बेहतर तरीका हैंडशेकिंग कहलाता है, जहां प्रेषक कुछ डेटा भेजता है और फिर प्राप्तकर्ता की प्राप्ति की पावती वापस भेजने की प्रतीक्षा करता है। इस उद्देश्य के लिए, अगर मैं हर बार एक पैकेट को याद करता हूं तो मुझे कोई चिंता नहीं है।

स्केच संलग्न है, basecode.ino

चरण 5: निष्कर्ष

निष्कर्ष
निष्कर्ष
निष्कर्ष
निष्कर्ष

दुर्भाग्य से, जब से मैंने इस परियोजना को शुरू किया है, मैंने वास्तव में परियोजनाओं पर ध्यान केंद्रित करने की अपनी क्षमता खो दी है। मैं इस ईईजी के साथ कुछ वास्तविक परीक्षण करना चाहता था, विशेष रूप से द्विअक्षीय धड़कन के साथ। शायद किसी दिन।

लेकिन मुझे लगता है कि मैंने इस परियोजना को बनाने के लिए दूसरों को पर्याप्त जानकारी प्रदान की है।

मैं कुछ 5 बैंड कोड विकसित करने की प्रक्रिया में था। विचार पांच ब्रेनवेव बैंड, डेल्टा, थीटा, अल्फा, बीटा और गामा प्रदर्शित करना था। मुझे लगता है कि बेसबैंड स्केच काम करता है, मुझे नहीं लगता कि फिक्स_एफएफटी प्रसंस्करण के लिए काम करता है, लेकिन मैंने इसे उन लोगों के लिए संलग्न किया है जो रुचि रखते हैं।

सिफारिश की: