ग्लोनास रिसीवर और वाई-फाई डेटा ट्रांसफर के साथ रेडियोधर्मिता मीटर (रेडियोमीटर)

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











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



मेरे डिवाइस वाई-फाई के माध्यम से होम नेटवर्क से जुड़े हुए हैं, एक मूक फैनलेस कंट्रोल मशीन है जिसमें एक ठोस राज्य ड्राइव होम नेटवर्क में रहता है। यह मशीन सिस्टम के कर्नेल के कार्य करता है, यह विभिन्न उपकरणों से डेटा एकत्र करने और बाहरी उपकरणों के लिए नियंत्रण कार्यक्रमों के लिए कार्यक्रम चलाता है।



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



पहला सवाल जो तय करने की जरूरत है कि कौन सा सेंसर इस्तेमाल करना है। रेडियोधर्मिता को मापने पर सामग्री का अध्ययन करने से मुझे समझ में आया कि मेरे कार्य के लिए इष्टतम सेंसर एक साधारण गीजर-मुलर सेंसर है। इन उपकरणों को "गीगर-मुलर काउंटर" कहना पारंपरिक है, हालांकि वास्तव में वे कुछ भी नहीं गिनते हैं, लेकिन प्रत्येक कण को ​​आवेग देते हैं जो मापने के कक्ष में हिमस्खलन टूटने की प्रक्रिया शुरू करने में सक्षम थे। इसलिए, मैं "सेंसर" शब्द का उपयोग करता हूं। विभिन्न प्रयोजनों के लिए उनमें से बहुत सारे हैं। मैं चाहता था कि मेरी डिवाइस बीटा विकिरण के प्रति संवेदनशील हो, न कि सिर्फ गामा। व्यापक और सस्ते (200 - 1000 आर की सीमा में) SBM20 बीटा विकिरण के प्रति असंवेदनशील हैं, उनके पास बीटा कणों के लिए एक खिड़की पारदर्शी नहीं है। SBM20 मुख्य रूप से गामा विकिरण के प्रति संवेदनशील है, और पर्याप्त रूप से शक्तिशाली है। यह स्पष्ट है कि क्यों - वे सैन्य उद्देश्यों के लिए बनाए गए थे। एक रेडियोमीटर में इस तरह के सेंसर के उपयोग के लिए प्राकृतिक पृष्ठभूमि के अधिक या कम पर्याप्त माप के लिए डेटा के लंबे संचय की आवश्यकता होती है। SBM20 के लिए, यह समय आमतौर पर 46 सेकंड लिया जाता है, जबकि संचित दालों की संख्या प्रति घंटे माइक्रोरोजेन में गामा पृष्ठभूमि के वर्तमान मूल्य के बराबर होती है। लेकिन मैं बीटा विकिरण के प्रति अधिक संवेदनशीलता चाहता था। मैं एक प्रलय पर भरोसा नहीं करता था, मैं छोटे मूल्यों के रोजमर्रा के माप में रुचि रखता था। यदि आप एक प्रलय के लिए तैयार रहना चाहते हैं - आप स्टोरेज से किसी प्रकार की DP5V को खोज सकते हैं और खरीद सकते हैं, इसमें तीन कैपेसिटर को अच्छी फिल्म वाले से बदल सकते हैं और एक ग्रीन-बॉक्स में एक मिलिट्री-स्टाइल डिवाइस प्राप्त कर सकते हैं, फुलप्रूफ, चरम में प्रति घंटे 200 एक्स-रे तक विकिरण को मापने के लिए उपयुक्त है। स्थिति।



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



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



मेरे द्वारा चयनित बीटा -2 सेंसर में 13.8 सेमी 2 की माइका विंडो है और यह बीटा विकिरण के प्रति संवेदनशील है।



काम करने के लिए उसे 400 वी चाहिए। एक महत्वपूर्ण सेंसर पैरामीटर वसूली समय है। सेंसर का सार एक आवेशित कण के पारित होने और बाद में हिमस्खलन टूटने के दौरान चैम्बर में गैस आयनीकरण है, फिर गैस में एडिटिव्स प्ले में आते हैं और डिस्चार्ज को बुझाते हैं। शमन के बाद, संवेदनशीलता को बहाल करने के लिए सेंसर को कुछ समय लगता है। इस बार (शब्द "मृत समय") विनिर्देशों में दर्शाया गया है और बीटा -2 के लिए विशेष रूप से कम से कम 140 माइक्रोसेकंड है। आवृत्ति में पुनर्गणना हमें 8 kHz के क्षेत्र में सेंसर से दालों की अधिकतम आवृत्ति प्रदान करती है।



पासपोर्ट स्कैन:







गीजर-मुलर काउंटर से डेटा एकत्र करने की दो विधियाँ हैं। सबसे पहले, 10 megohms के क्षेत्र में एक रोकनेवाला को एनोड के साथ श्रृंखला में रखा जाता है और एक संधारित्र के माध्यम से एक संधारित्र के माध्यम से एक पिकपार्ड की क्षमता और लगभग 500 वोल्ट के ऑपरेटिंग वोल्टेज के साथ एक नकारात्मक पल्स लगाया जाता है। सीएमओएस चिप इनपुट के प्रत्यक्ष नियंत्रण के लिए पल्स उपयुक्त है।

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

निर्माता द्वारा अनुशंसित मानक विधि एनोड से सिग्नल को हटाने के लिए है। एनपीएफ सर्वसम्मति के विशेषज्ञ इस बात का जवाब नहीं दे सके कि ऐसा समावेश सही क्यों है। मुझे पीएन 400 पावर कन्वर्टर के लेखक से बाद में जवाब मिला - उनका मानना ​​है कि एक बड़ा कैथोड एनोड को घेरता है और एनोड के लिए एक स्क्रीन के रूप में कार्य करता है, और यह समावेशन हस्तक्षेप को कम करता है और झूठी सकारात्मक की संख्या।



रेडियोमीटर के योजनाबद्ध आरेख







निर्माण फोटो:







गठन सुरक्षात्मक सर्किट के माध्यम से सेंसर से संकेत सीधे माइक्रोप्रोसेसर इनपुट को खिलाया जा सकता है। लेकिन मैंने दोहरी 564AG1 सिंगल वाइब्रेटर पर एक अतिरिक्त बनाने वाला तत्व डालने का फैसला किया। पहला एक-शॉट 50 μs की अवधि के साथ एक नाड़ी उत्पन्न करता है, और दूसरा -2.5 एमएस एलईडी को खिलाने के लिए। एलईडी ऑपरेशन के एक संकेतक के रूप में कार्य करता है और आपको डायोड के पलक की तीव्रता से एक गर्म स्थान की खोज करने की अनुमति देता है। शुरू में, मैं दो काउंटर लगाना चाहता था - एक बीटा पर, दूसरा गामा पर। इसलिए, एक दो-चैनल टाइमर का उपयोग किया गया था और संकेतक एसएमडी एलईडी एचएल 2 को एकल-शॉट के पहले चैनल के आउटपुट पर रखा गया था।







पहला चैनल लॉन्च करने के बाद, मुझे विश्वास हो गया कि बीटा -2 प्राकृतिक पृष्ठभूमि (1) पर पूरी तरह से प्रतिक्रिया करता है, दूसरे सेंसर की लागत अभी भी उच्च (2) है और मैं एक नेविगेशन सेंसर (3) भी स्थापित करना चाहता था। इन तीन कारणों में, योजना को बदलने के लिए, दूसरा गामा सेंसर लगाने के लिए नहीं, बल्कि एक नेविगेशन सेंसर लगाने के लिए निर्णय लिया गया।



इसलिए, एसएमडी एलईडी जगह में बना रहा, दूसरे एजी 1 चैनल के समय सर्किट को बदल दिया गया (प्रतिरोध को 2 से 100 k तक बढ़ाया गया था) और दूसरे चैनल का आउटपुट फ्रंट पैनल पर एक बड़े उज्ज्वल लाल मैट एलईडी का उत्पादन था। 50 μs की अवधि की एक पल्स स्पष्ट रूप से दिखाई देती है, लेकिन 2.5 एमएस की पल्स पूरी तरह से दिखाई देती है:







यह हार्डवेयर समाधान तब भी काम करेगा जब Arduino नैनो विफल हो जाती है, जिससे आप एलईडी ब्लिंकिंग की आवृत्ति द्वारा स्थिति में नेविगेट कर सकते हैं।

मैंने कोई ध्वनि संगत नहीं बनाया, क्योंकि डिवाइस का मुख्य अनुप्रयोग पृष्ठभूमि गतिविधि का माप है।



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



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



60 Co imp / μR: 160 60 240 तक संवेदनशीलता



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



आर = सीटी / DELTA_T * 18



जहाँ CT, DELTA_T प्रति सेकंड दालों की संख्या सेकंड में है, और R प्रति घंटे माइक्रो-रेंटजेन में वर्तमान विकिरण मान है।



जो लोग अपने स्वयं के फार्मूले को प्राप्त कर सकते हैं, यह बिल्कुल मुश्किल नहीं है :)



एक रेडियोधर्मिता माप एक स्थिर यादृच्छिक प्रक्रिया के मापदंडों का एक माप है। यादृच्छिक प्रक्रिया अपेक्षा और मानक विचलन की विशेषता है। मानक विचलन जितना छोटा होता है, उतनी ही सटीकता से हम यादृच्छिक प्रक्रिया के मापदंडों को मापते हैं। दालों की बढ़ती संख्या के साथ RMSD एक स्थिर मूल्य तक घट जाता है। यानी अधिक सटीक हम परिणाम चाहते हैं, अब हमें माप लेना चाहिए।



व्यावहारिक दृष्टिकोण से, इसका मतलब है कि इस पृष्ठभूमि की पृष्ठभूमि और छोटे उतार-चढ़ाव को मापने के लिए, माप का समय बड़ा होना चाहिए - कुछ मिनट। यदि हम "हॉट स्पॉट" की खोज के लिए डिवाइस का उपयोग करना चाहते हैं, तो समय को कम करना उचित है।



दोनों आवश्यकताओं को पूरा करने के लिए मैंने एक अनुकूली मापक एल्गोरिदम बनाया। ऐसा करने के लिए, दालों की गिनती की प्रक्रिया में, स्केच प्रत्येक पास पर काउंटर की सामग्री की जांच करता है, और यदि यह पूर्व निर्धारित सेटिंग (100) से अधिक है, तो चक्र से एक प्रारंभिक निकास होता है। यदि कोई अतिरिक्त नहीं है, तो दालों की गिनती 120 सेकंड में समाप्त होने तक चली जाती है। इस प्रकार, पृष्ठभूमि माप मोड में, माप में 120 सेकंड लगते हैं, जो 1.3 का मानक विचलन देता है।



रेडियोमीटर का स्क्रीनशॉट, पृष्ठभूमि मान माप:







यदि स्थिति नाटकीय रूप से बदलती है, तो गिनती बहुत पहले समाप्त हो जाती है और अंतर्निहित प्रदर्शन और बाहरी रिसीवर दोनों की रीडिंग बहुत तेजी से अपडेट की जाती हैं। "100" सेटिंग को पृष्ठभूमि माप की निगरानी से चुना जाता है, 2 मिनट में दालों की संख्या आमतौर पर 50-80 की सीमा में होती है। कम्पास गतिविधि को मापने के दौरान, गिनती चक्र लगभग 10 सेकंड है, मानक विचलन 17.6 है:

स्क्रीनशॉट रेडिओमीटर, एक पुराने कम्पास की रेडियोधर्मिता को मापता है:







यहाँ इस कम्पास है:







यहां सामान्य स्थिति की एक तस्वीर है, मापा पृष्ठभूमि 11 एमसीआर / एच है, जो मॉस्को के लिए सामान्य के करीब है।







गीजर-मुलर काउंटर की आपूर्ति करने के लिए, 400 वी के एक स्थिर वोल्टेज स्रोत की आवश्यकता होती है।

मैं समाप्त PN3-400-0.1M कनवर्टर का उपयोग किया, 750 आर के लिए खरीदा। इन कन्वर्टर्स को eBay के माध्यम से खरीदा जा सकता है ("गीगर काउंटर पॉवर सप्लाई मॉड्यूल डोसमीटर न्यू 1 एचवी 400 वी हाई वोल्टेज" या "एडजस्टेबल एचवी हाई वोल्टेज सप्लाई मॉड्यूल फॉर ज्युरियर ट्यूब काउंटर और डोसमीटर" के लिए खोज)।

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



मैंने डिवाइस के लिए एक बड़े मामले का उपयोग किया: गेंटा 413, 150 द्वारा 30 से 30 को मापने, ब्राउन बीयर में खरीदा। पहले तो मैंने दो गीजर-मुलर काउंटरों के बारे में सोचा - एक बीटा के लिए, दूसरा गामा के लिए। गामा और बीटा के लिए अलग से डेटा प्राप्त करने के लिए एक माप चक्र में यह संभव होगा। पहले के ऊपर एक दूसरे काउंटर के लिए जगह उपलब्ध कराई गई थी। हालांकि, सिस्टम शुरू करने के बाद, मैंने देखा कि एक सेंसर के साथ रेडियोमीटर वही करता है जो मैं चाहता था - यह पृष्ठभूमि विकिरण के लिए सख्ती से प्रतिक्रिया करता है, पुराने कंपास के लिए, क्रिस्टल ऑब्जेक्ट्स के लिए, थोरियम के साथ वेल्डिंग करने और पोटेशियम उर्वरकों के एक बैग तक। इसलिए, मैंने सरगम ​​पर एक दूसरा सेंसर स्थापित करने से इनकार कर दिया और एक बैकअप योजना पर स्विच किया - ग्लोनस \ जीपीएस नेविगेटर की तैनाती। व्यावहारिक लाभ इस तरह से सोचा गया था - एक "हॉट स्पॉट" (उदाहरण के लिए, कॉटेज में) पाया गया, निर्देशांक नीचे लिखे, और उन्हें कीटाणुशोधन के लिए मंत्रालय में स्थानांतरित कर दिया। वास्तव में, नई तकनीक के साथ प्रयास करना और टिंकर करना दिलचस्प था।



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











बीटा कणों के पारित होने के लिए एक उद्घाटन ढक्कन के साथ आवास के निचले हिस्से की डिवाइस:















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



यदि गतिविधि को मापने या कमजोर बीटा एमिटर की खोज करना आवश्यक है, तो खिड़की को खोला जाना चाहिए।

उदाहरण के लिए: अंधेरे में चमकती एक रचना के साथ एक पुराना कम्पास। ढक्कन बंद होने के साथ - प्रति घंटे 70 माइक्रोनर्जेन। एक खुला ढक्कन के साथ - प्रति घंटे 200 माइक्रोनर्जेंट।











क्रिस्टल ग्लास रेडियोधर्मिता माप:










नेविगेशन मॉड्यूल।



सबसे पहले मुझे eBay GPS \ Glonass पर UBLOX7m पर आधारित एक रिसीवर मिला। यह उपकरण इस तरह दिखता है:













यह बस को जोड़ता है - यह (+ 3.3V) को बिजली लागू करने और धारावाहिक कनेक्शन के लिए 3.3 V को जोड़ने के लिए पर्याप्त है। मैंने एक FT232 आधारित कनवर्टर का उपयोग किया:











मालिकाना कार्यक्रम आपको मॉड्यूल के साथ खेलने की अनुमति देता है - जगह के निर्देशांक प्राप्त करें, उपग्रहों को देखें, आदि।



Ublox कार्यक्रम का स्क्रीनशॉट:







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



मैं चाहता था कि मॉड्यूल ग्लोनास और जीपीएस के साथ मिलकर काम करे। ऐसे मॉड्यूल हैं, विशेष रूप से सेंट पीटर्सबर्ग कंपनी नविया के ML8088 में। दुर्भाग्य से, मुझे एक घर से निर्मित डिवाइस में स्थापना के लिए उपयुक्त उपयोग-योग्य मॉड्यूल नहीं मिला। ML8088 पर तैयार डिवाइस हैं, लेकिन वे मेरे डिवाइस के लिए या तो कीमत या आकार में उपयुक्त नहीं थे। और मैंने अपना मॉड्यूल बनाने का फैसला किया :)। मैंने D35Y में एंटीना B35-3556920-AMT03 [GPS / GLONASS] और ML8088se मॉड्यूल खरीदा । एक दो-प्रणाली एंटीना की आवश्यकता है - ग्लोनस और जीपीएस में थोड़ा अलग वाहक आवृत्तियों हैं।



एंटीना के निर्माता के निर्देशों के अनुसार, इसे केंद्र में 7 से 7 सेमी की दूरी पर एक प्रवाहकीय आधार पर स्थापित किया जाना चाहिए। यह बहुत सफल था - 7 से 7 सेमी वर्ग मेरे मामले में ठीक से रखा गया था। ग्लोनास मॉड्यूल को डिजाइन करते समय, मुझे यह तय करना था कि एंटीना को ML8088 मॉड्यूल के इनपुट से कैसे जोड़ा जाए। मैनुअल के अनुसार, आपको 50 ओम के प्रतिबाधा के साथ एक माइक्रोस्ट्रिप या कॉपलानर लाइन का उपयोग करना चाहिए। ऐसी रेखा को पीसीबी पर पर्याप्त रूप से सटीक प्रवाहकीय धारियों की आवश्यकता होती है। लिपिक चाकू के साथ बोर्ड पर शुरुआती पटरियों की यह मेरी पसंदीदा विधि बनाना मुश्किल है। ध्यान से स्थिति पर विचार करने के बाद, मैंने बिल्कुल बिना माइक्रोस्ट्रिप लाइन के करने का फैसला किया और एंटीना को सीधे रिसीवर इनपुट से जोड़ दिया। मैनुअल कहता है - एंटिना से प्रवेश द्वार तक ट्रांसमिशन लाइन कम, बेहतर। तो, शून्य लंबाई इष्टतम है। हमें एंटीना की स्थापना के स्थान के अनुसार बोर्ड को विकसित करना था। हालांकि, 7 से 7 सेमी के बोर्ड आकार के साथ, माइक्रोडोड्यूल के विस्थापन से कोई समस्या नहीं होती है।







इस डिजाइन को तत्वों की स्थापना के एक निश्चित अनुक्रम की आवश्यकता थी। पहले आपको ऐन्टेना को गोंद करना था, फिर ML8088 को फिट करें ताकि ऐन्टेना पैर टर्मिनल 21 में चला जाए और ML8088 को उस स्थिति में पकड़ ले। फिर ML8088 टर्मिनलों की स्थिति को चिह्नित करें, पटरियों के माध्यम से काटें, माइक्रोडोड्यूल को हटा दें। और चिप के पैरों को मिलाते हैं, ठंडा करने के लिए ब्रेक लेते हैं। दुर्भाग्य से, मुझे गलत किया गया था और एंटीना को टांका लगाने से पहले ऐन्टेना आउटपुट को गहरा करने के लिए टिन नहीं किया था। टांका लगाने से काम नहीं चला, सिस्टम ने एक घंटे के काम के बाद कुछ उपग्रहों को पकड़ा ... स्थिति के बारे में सोचने के बाद, मैंने ऐन्टेना को हटाने का फैसला किया, आउटपुट को अलग किया और एंटीना को वापस मिलाया। कठिनाई यह है कि आपको ऐन्टेना को आधार से एक साथ जोड़ने और आउटपुट को मिलाप करने की आवश्यकता है। लेकिन मैं भाग्यशाली था - मैंने निदान "सही ढंग से नहीं पी" किया और ऐन्टेना ने पैर से बाउंस किया जैसे ही मैंने आधार से थोड़ा सा एंटीना छील दिया। इसके अलावा, सब कुछ ठीक हो गया - मैंने निष्कर्ष को टिन किया, ऐन्टेना को टांका लगाया और सिस्टम को काम करना चाहिए जैसा कि इसे करना चाहिए।







एंटीना कनेक्शन को पतला करते समय, प्रलेखन से आवश्यकता को ध्यान में रखना आवश्यक है - एंटीना जमीन को 20 और 22 पिन से जुड़ा होना चाहिए और अब सामान्य जमीन के साथ संपर्क नहीं होना चाहिए। यह मिट्टी के छोरों के गठन को रोकने और शोर प्रतिरक्षा को कम करने के लिए आवश्यक है। ML8088 के पिन 20 और 22 माइक्रोमीटर के अंदर जमीन से जुड़े होते हैं।



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



मैं व्लादिमीर ओसादची ( नविया के तकनीकी निदेशक) का शुक्रिया अदा करना चाहता हूं, जिन्होंने मेरे सवालों का धैर्यपूर्वक जवाब दिया।



सिग्नल को परिवर्तित करने में विफल "नेविगेशन समस्या (GNSS) का समाधान है।" यह एक संकेत है जो आधा हर्ट्ज की आवृत्ति के साथ चमकता है यदि मॉड्यूल ने नेविगेशन समस्या को हल किया है और जो डेटा प्रदान करता है वह सही है। सिग्नल का आयाम 1.8 वोल्ट है और इस आउटपुट की भार क्षमता लगभग 2 एमए है। लेकिन मैनुअल से आरेख (ML8088sE शामिल करने की AppNote 1_1.pdf) काम नहीं किया।







ऐसा लगता है - ट्रांजिस्टर को आत्मविश्वास से खोलने के लिए आउटपुट की पर्याप्त लोड-असर क्षमता नहीं थी। प्रभाव अजीब था - अगर सिस्टम सही ढंग से शुरू नहीं हुआ - रूपांतरण सर्किट को नियंत्रित करने के लिए इस आउटपुट पर पर्याप्त स्तर का संकेत उत्पन्न हुआ, और नियंत्रण एलईडी को मोर्स कोड में खुशी से झपका दिया गया। और जब सिस्टम सही ढंग से शुरू हुआ, तो सिग्नल का आयाम कम था और ट्रांजिस्टर नहीं खुला। डेवलपर के अनुसार, संकेत पर्याप्त होना चाहिए। वह बालकनी से एक आस्टसीलस्कप लाया और सुनिश्चित किया कि एक संकेत है, लेकिन स्तर कम है, केवल 0.4 वोल्ट है ... व्लादिमीर ओसादची ने ट्रांजिस्टर के एक विशिष्ट मॉडल का नाम दिया, जो निश्चित रूप से उसके लिए काम करता है, लेकिन मैंने अपने तरीके से चला गया और एक और कचरा तुलनित्र LM393 :) को लागू किया। मैंने PPS सिग्नल को इंगित करने के लिए इस तुलनित्र के दूसरे चैनल का उपयोग किया। जिस तरह से, मैंने 1PPS सिग्नल के मापदंडों को बदल दिया, 200 μs की लंबाई के साथ एक सिग्नल बनाया। अब मेरे पास एक छोटी myrg :) के साथ सिस्टम के कामकाज का एक आरामदायक विनीत प्रदर्शन है।



Glonass \ GPS मॉड्यूल का अंतिम संस्करण इस तरह दिखता है:







और मामले में रखा:







ऊपरी असंबद्ध कनेक्टर को फर्मवेयर को मॉड्यूल में भरने के लिए डिज़ाइन किया गया है।

नरम प्लास्टिक से बनी पीली आयत - रिमोट बिछाने, केस को बंद करते समय बीटा -2 के खिलाफ abuts।



ML8088sE मॉड्यूल में दो सीरियल संचार चैनल हैं। नेविगेशन डेटा एक के बाद एक, डीबग सूचना या फ़र्मवेयर दूसरे द्वारा जाता है। डिफ़ॉल्ट रूप से, चैनल 115200 की गति से कॉन्फ़िगर किए गए हैं। मैंने उन्हें 57600 पर स्विच किया। वाई-फाई मॉड्यूल HI-LINK HLK-RM04 के दूसरे चैनल की गति सीमा के कारण मुझे ऐसा करना पड़ा। इसके बारे में विवरण कुछ कम हैं।



मैंने CR2032 जैसी बाहरी बैकअप बैटरी का उपयोग किया। इसके साथ, मॉड्यूल की शुरुआत बहुत तेज है, क्योंकि उपग्रह स्थितियों की त्वरित गणना और कैप्चर से ट्रैकिंग मोड के लिए आवश्यक सभी चीजें पहले से ही स्मृति में हैं। इस मोड में, मॉड्यूल को रीसेट करना आमतौर पर आवश्यक नहीं होता है। पहली बार जब आप इसे चालू करते हैं या यदि मॉड्यूल सही ढंग से शुरू नहीं हुआ, तो रीसेट की आवश्यकता है। यदि मॉड्यूल सही ढंग से शुरू नहीं हुआ, तो समाधान की उपस्थिति के लिए एलईडी एक निश्चित कोड को चक्रीय रूप से दोहराएगा। रीसेट सामान्य के लिए मॉड्यूल लाता है। मेरे मामले में, भागों को टांका लगाने के बाद एक रीसेट की आवश्यकता थी। मैंने दो स्वतंत्र मॉड्यूल रीसेट तंत्र लागू किए। पहला एक साधारण बटन है, मामले में भर्ती किया गया है, ताकि हस्तक्षेप न हो और ताकि यह गलती से दबाया न जाए। दूसरा सॉफ्टवेयर है। स्टार्टअप पर, स्केच पांच सेकंड इंतजार करता है, फिर ML8088sE से डेटा प्राप्त करना शुरू करता है। यदि टाइमआउट अंतराल के लिए कोई डेटा नहीं है, तो स्केच पिन A0 से एक नकारात्मक पल्स के साथ मॉड्यूल को रीसेट करता है। महत्वपूर्ण - मॉड्यूल शुरू करते समय, यह आवश्यक है कि रीसेट पिन एक उच्च-प्रतिबाधा तीसरे राज्य में हो। इसलिए, रीसेट कमांड जारी करने के बाद, मैंने A0 के आउटपुट को इनपुट मोड में डाल दिया। Arduino बटन और आउटपुट "बढ़ते या" मोड में जुड़े हुए हैं।



मेरा डिवाइस HI-LINK HLK-RM04 सीरियल पोर्ट-ईथरनेट-वाई-फाई अडैप्टर मॉड्यूल मॉड्यूल के माध्यम से बाहरी दुनिया के साथ आदान -प्रदान करता है, जो अनिवार्य रूप से महान सुविधाओं के साथ एक मिनी-राउटर है। मैं इसे कन्वर्टर मोड सीरियल पोर्ट में वाई-फाई के लिए उपयोग करता हूं। डिवाइस में दो पोर्ट होते हैं, एक 115200 तक की गति पर काम कर सकता है, दूसरा 57600 तक। ग्लोनस नेविगेटर दूसरे पोर्ट से जुड़ा है और इसलिए ML8088 की विनिमय दर घटकर 57600 रह गई है। दुर्भाग्य से, यह मॉड्यूल बिना आंतरिक एंटीना के चीन से आता है और बाहरी रूप से कॉन्फ़िगर किया जाता है। एंटीना। स्टोर में फोटो में एक आंतरिक चिप एंटीना है। मुझे DESSY.RU में ANT 2.4 ESG-2400-12 UFL-F जैसे बाहरी एंटेना खरीदने पड़े और DX से तुलनात्मक मूल्य में कमी की मांग की। डीएक्स में समान एंटेना हैं , वाई-फाई मॉड्यूल खरीदते समय संभवतः उन्हें तुरंत खरीदने के लायक है। मैंने कुछ राउटर और एक पीसीआई कार्ड से दो अलग-अलग व्हिप एंटेना को मॉड्यूल से जोड़ने की कोशिश की - यह काम करता है, लेकिन एक फ्लैट एंटीना की तुलना में सिग्नल का स्तर लगभग 10 डीबी कम है। साथ ही, केस के अंदर रखने पर यह ज्यादा सुविधाजनक होता है।



वाई-फाई मॉड्यूल में आंतरिक स्टेबलाइजर से 3.3 वोल्ट आउटपुट है। यह Glonass मॉड्यूल ML8088sE को पावर देने के लिए पर्याप्त है।



पहले चैनल का उपयोग Arduino के साथ काम करने के लिए किया जाता है। Arduino प्रोग्राम (रेडियोमीटर से) में उत्पन्न डेटा को वाई-फाई मॉड्यूल के पहले चैनल पर भेजा जाता है और होम नेटवर्क पर प्रेषित किया जाता है। उन्हें PUTTY प्रकार के किसी भी प्रोग्राम द्वारा प्राप्त किया जा सकता है, जिसे निर्दिष्ट आईपी पते और पोर्ट से जोड़ा जा सकता है। नाविक दूसरे सीरियल पोर्ट से जुड़ा है। नेविगेटर का डेटा सीरियल पोर्ट अरुडिनो में भी आता है, प्रोग्राम नेविगेटर से डेटा को संसाधित करता है और इसे स्क्रीन पर प्रदर्शित करता है।

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



सबसे पहले, मुझे याद दिलाएं कि सीरियल पोर्ट पर सूचना के प्रसारण की व्यवस्था कैसे की जाती है। श्रृंखला संकेत +5 V से नकारात्मक बूंदों द्वारा प्रेषित होता है। 0. प्रारंभिक, निष्क्रिय अवस्था में, संकेत का उच्च स्तर (+ 5V) होता है। Arduino नैनो के अंदर, FT232 आउटपुट से सिग्नल ATMEGA328P सीरियल इनपुट में 1 किलो ओम सुरक्षात्मक अवरोधक के माध्यम से प्रेषित होता है। यहाँ सर्किट आरेख का एक टुकड़ा है:







शीर्ष आरेख Arduino बोर्ड के अंदर RX और TX पिन के कनेक्शन को दर्शाता है। RX Atmega328P पिन सीधे Arduino कनेक्टर के पैर से जुड़ा हुआ है और साथ ही USB-सीरियल FT232RL कनवर्टर के TX पिन के लिए 1k रोकनेवाला के माध्यम से। यह सीरियल डेटा को कनेक्टर लेग में स्थानांतरित करना संभव बनाता है और सिग्नल सीधे वांछित माइक्रोप्रोसेसर आउटपुट पर जाएगा और सही ढंग से संसाधित किया जाएगा यदि FT232 आउटपुट उच्च स्तर पर है। यह स्थिति तब होती है जब कंप्यूटर Arduino के लिए कुछ भी नहीं भेजता है या Arduino कंप्यूटर से कनेक्ट किए बिना स्वायत्तता से काम करता है। इस मामले में, Atmega328P श्रृंखला इनपुट को वास्तव में 1 kΩ रोकनेवाला के माध्यम से 5 वोल्ट तक खींचा जाता है, जैसा कि नीचे चित्र में दिखाया गया है। FT232 के माध्यम से कंप्यूटर से डेटा के नियमित हस्तांतरण में हस्तक्षेप न करने के लिए, आपको एक खुले कलेक्टर के साथ एक ट्रांसमीटर का उपयोग करना होगा और इसे एक बंद स्थिति में रखना होगा जब आपको चैनल श्रृंखला के नियमित संचालन को सुनिश्चित करने की आवश्यकता होती है। मेरे पास LM393 जैसे दो-चैनल तुलनित्रों की एक निश्चित संख्या थी, जो एक खुले कलेक्टर प्रकार का आउटपुट है।



ग्लोनस मॉड्यूल के श्रृंखला पोर्ट से संकेत एक खुले कलेक्टर प्रकार के आउटपुट के साथ एक तुलनित्र के माध्यम से प्रेषित होता है। जब प्रोसेसर रीसेट हो जाता है, तो पिन ए 1 तीसरे राज्य में उगता है। तुलनित्र का inverting इनपुट वास्तव में अवरोधक R11 के माध्यम से जमीन से जुड़ा हुआ है। तुलनित्र के गैर-इनवर्टिंग इनपुट में 0.4 से 3.3 वी तक की सीमा में एक सकारात्मक वोल्टेज है। तुलनित्र का उत्पादन पूरी तरह से बंद स्थिति में है और यह Arduino के संचालन को प्रभावित नहीं करता है। कंप्यूटर के साथ एक माइक्रोप्रोसेसर का आदान-प्रदान, मेमोरी में एक स्केच लोड करना - सब कुछ हमेशा की तरह होता है। स्केच शुरू करने के बाद, A1 आउटपुट को आउटपुट मोड पर स्विच किया जाता है और उस पर +5 V का उच्च स्तर सेट किया जाता है। इनवर्टिंग इनपुट पर वोल्टेज 1.65 V (3.3 V का आधा) हो जाता है। तुलनित्र ग्लोनस मॉड्यूल से सिग्नल श्रृंखला के पुनरावर्तक के रूप में काम करना शुरू करता है। एक स्केच मानक सीरियल पोर्ट से डेटा पढ़ता है और आने वाले डेटा को संसाधित करता है। जब आप Arduino के लिए एक स्केच डाउनलोड करना शुरू करते हैं, तो FT232 पहले एक प्रोसेसर रीसेट उत्पन्न करता है, पिन A1 तीसरे राज्य में जाता है, और तुलनित्र का उत्पादन बंद राज्य में जाता है और Arduino के श्रृंखला इनपुट को प्रभावित करना बंद कर देता है। ग्लोनास मॉड्यूल से डेटा ट्रांसफर को समाप्त कर दिया जाता है और स्केच को सामान्य रूप से लोड किया जाता है।



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

सूचना प्रवाह को जोड़ने की इस विधि को "संपादन OR" कहा जाता है।



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



यहाँ स्क्रीनशॉट के एक जोड़े हैं:











एक और स्क्रीनशॉट, अंतर सुधार के उपग्रह की उपस्थिति में दिलचस्प है, यह एक नीले घेरे में है:







मैं इस मशीन को VMware वर्कस्टेशन चलाने वाली वर्चुअल मशीन में चलाता हूं।

स्क्रीनशॉट से यह देखा जा सकता है कि TIBBO ने 192.168.1.155:8081 के साथ संबंध स्थापित किया और इसे एक वर्चुअल सीरियल पोर्ट COM3 के रूप में प्रस्तुत किया। COM3 संचार पोर्ट Navia GLONASS में सेट किया गया है और वर्चुअल कंप्यूटर के शुरू होने पर यह सभी अर्थव्यवस्था स्वचालित रूप से लगातार बंद हो जाती है।



शायद नविया ग्लोनास के लेखक कार्यक्रम को अंतिम रूप देने में रुचि लेंगे ताकि यह न केवल धारावाहिक बंदरगाह के साथ, बल्कि टीसीपीआईपी चैनल के साथ भी सीधे संवाद कर सके।



डिवाइस में उपयोग किया जाने वाला प्रदर्शन लगभग 300 आर के लिए एक डेक्सट्रीम पर खरीदा गया था। प्रदर्शन ILI9341 नियंत्रक का उपयोग करता है, जिसके बारे में लगभग सब कुछ ज्ञात है, उपयोग में पुस्तकालय और व्यापक अनुभव हैं। एकमात्र सूक्ष्मता यह है कि डिस्प्ले +5 वोल्ट द्वारा संचालित है, और इनपुट 3.3v पर रेटेड हैं। यदि आप सीधे नैनो को Arduino से जोड़ते हैं, तो यह काम नहीं करेगा, लेकिन यह जला नहीं जाएगा। मैंने सबसे सरल कनवर्टर 5 -> 3.3 - क्रमिक रूप से कनेक्ट किए गए 2.7 k प्रतिरोधों का उपयोग किया। MOSI सिग्नल को एक अवरोधक की आवश्यकता नहीं है - यह डिस्प्ले से प्रोसेसर तक जाता है। एलईडी सिग्नल को भी रूपांतरण की आवश्यकता नहीं है।



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



पुस्तकालय कोड में परिवर्तन
वर्ष:



शून्य TFT :: drawChar (INT8U ascii, INT16U poX, INT16U poY, INT16U आकार, INT16U fgcolor)

{

अगर (ascii> = 32) && (ascii <= 127))

{

;

}

अन्यथा

{

ascii = '?' - 32;

}

for (int i = 0; मैं <FONT_X; i ++) {

INT8U अस्थायी = pgm_read_byte (& simpleFont [ascii-0x20] [i]);

(INT8U f = 0; f <8; f ++) के लिए

{

यदि ((अस्थायी >> एफ) और 0x01)

{

fillRectangle (poX + i * size, poY + f * size, size, size, fgcolor);

}



}



}

}



नई:



शून्य TFT :: drawChar (INT8U ascii, INT16U poX, INT16U poY, INT16U आकार, INT16U fgcolor)

{

अगर (ascii> = 32) && (ascii <= 127))

{

;

}

अन्यथा

{

ascii = '?' - 32;

}

for (int i = 0; मैं <FONT_X; i ++) {

INT8U अस्थायी = pgm_read_byte (& simpleFont [ascii-0x20] [i]);

(INT8U f = 0; f <8; f ++) के लिए

{

यदि ((अस्थायी >> एफ) और 0x01)

{

fillRectangle (poX + i * size, poY + f * size, size, size, fgcolor);

}

अन्यथा

{

fillRectangle (poX + i * size, poY + f * size, size, size, BLACK);

}



}



}

}





मुझे RESET और CS को किक करने के लिए जिम्मेदार कोड के टुकड़ों को भी बदलना पड़ा। पुस्तकालय को D4 और D5 का उपयोग करने के लिए डिज़ाइन किया गया है, और मुझे उन्हें टाइमर के साथ काम करने की आवश्यकता है। इसलिए, डिस्प्ले पिन पिन D8 (रीसेट) और D9 (CS) से जुड़े हैं और कोड में निम्नलिखित परिवर्तन किए गए हैं:



पुस्तकालय कोड में परिवर्तन
वर्ष:



#define TFT_RST_LOW {DDRD | = 0x10; PORTD & = ~ 0x10]; // जोड़ा गया वासिलिस सेरासिडिस (18 अक्टूबर 2013)

#define TFT_RST_HIGH {DDRD | = 0x10; PORTD | = 0x10]} // जोड़ा गया वासिलिस सेरासिडिस (18 अक्टूबर 2013)

#define TFT_CS_LOW {DDRD | = 0x20; PORTD & = ~ 0x20;}

#define TFT_CS_HIGH {DDRD | = 0x20; PORTD | = 0x20;}



नई:



#define TFT_RST_LOW {DDRB | = 0x01; PORTB & = ~ 0x01;} // सेर्गेई ड्रोनस्की द्वारा परिवर्तित 26 दिसंबर 2013

#define TFT_RST_HIGH {DDRB | = 0x01; PORTB | = 0x01;} // सर्गेई ड्रोनस्की द्वारा परिवर्तित 26 दिसंबर 2013

#define TFT_CS_LOW {DDRB | = 0x02; PORTB & = ~ 0x02;} // सर्गेई ड्रोनस्की द्वारा परिवर्तित 26 दिसंबर 2013

#define TFT_CS_HIGH {DDRB | = 0x02; PORTB | = 0x02;} // सर्गेई ड्रोनस्की द्वारा परिवर्तित 26 दिसंबर 2013





कार्यक्रम और संशोधित पुस्तकालयों का पूरा पाठ यहां पाया जा सकता है।



डिवाइस के अंतिम संस्करण में, केवल T1 काउंटर शामिल है, जो D5 के आउटपुट से दालों की गणना करता है। निष्कर्ष D4 अप्रयुक्त रहा।



चूंकि डिवाइस को 24 बाय 7 मोड में उपयोग के लिए डिज़ाइन किया गया है, इसलिए मैंने स्क्रीन बर्नआउट के प्रभाव के खिलाफ उपाय किए। स्क्रीन पर प्रदर्शित सभी तत्व बेतरतीब ढंग से रंग बदलते हैं और स्क्रीन के चारों ओर भी बेतरतीब ढंग से चलते हैं। मैं यह नहीं कह सकता कि उचित संचालन के लिए यह बहुत आवश्यक है, लेकिन यह कार्यक्रम के लिए मजेदार था :)



डिवाइस Arduino पर मिनी यूएसबी कनेक्टर के माध्यम से संचालित होता है। एक आंतरिक बैटरी प्रदान नहीं की गई थी, लेकिन स्वायत्त रूप से काम करने की क्षमता सुनिश्चित करने के लिए - उदाहरण के लिए, बगीचे की साजिश की जांच करने के लिए, 4000 mah की क्षमता वाला एक पावर बैंक खरीदा गया था। मापों से पता चला कि लगभग 3000 mah की वास्तविक क्षमता है, लेकिन यह क्षमता रेडियोमीटर के 10 घंटे से अधिक काम करने के लिए पर्याप्त है। देश में चलना अधिक मात्रा में है।

डेटा प्राप्त करने और संसाधित करने के लिए, Visual StudioExpress 2012 में Visual Basic में लिखे रेडियोमीटर प्रोग्राम का उपयोग करें।



कार्यक्रम पृष्ठभूमि स्ट्रीम में रेडियोमीटर से डेटा प्राप्त करता है, प्राप्त डेटा को पाठ और ग्राफ़ के रूप में प्रदर्शित करता है:







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

चैनल खोलने और समापन की घटनाओं को लॉग किया जाता है। एक प्रोग्राम स्टार्ट और स्टॉप इवेंट भी नोट किया गया है।

डेटा और घटनाओं को दो अलग-अलग पाठ फ़ाइलों में अलग-अलग लिखा जाता है।

जब टाइमर सक्रिय हो जाता है, तो हर 10 मिनट में लॉग फ़ाइल में आंकड़े लिखने का कार्यक्रम निष्पादित होता है।



चैनल से डेटा प्राप्त करने पर, उन्हें एक बफर में रखा जाता है, और कुछ शर्तों पर पहुंचने पर, इस बफर को इनपुट डेटा प्रोसेसिंग प्रोग्राम में भेजा जाता है। इस कार्यक्रम में, शर्त यह है कि स्ट्रिंग के अंतिम बाइट्स vbCrLf हैं (अर्थात, हेक्स (0D0A), वे वर्ण "कैरिज रिटर्न" "रिटर्न लाइन") हैं।



प्रसंस्करण दिनचर्या नियमित अभिव्यक्ति तंत्र का उपयोग करके औपचारिक वैधता के लिए इनपुट स्ट्रिंग की जांच करता है। यदि लाइन में एक अमान्य प्रारूप है, तो यह लॉग फ़ाइल में नोट किया गया है। यदि स्ट्रिंग का एक मान्य प्रारूप है, तो प्रोग्राम स्ट्रिंग को नियमित अभिव्यक्ति तंत्र का उपयोग करके तत्वों में विभाजित करता है, जिसके परिणामस्वरूप तत्वों की एक सरणी होती है।



आगे की प्रक्रिया में आवश्यक तत्व "FIFO कतार" प्रकार (QUEUE) के सरणियों में दर्ज होते हैं।



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



कतार की लंबाई को 2400 तत्वों के लिए चुना जाता है, जो कि जब डेटा का अंतराल दो मिनट का होता है, तो यह लगभग 80 घंटे पहले रेडियोधर्मिता की पृष्ठभूमि प्रदर्शित करता है।







ग्राफ पर शिखर कम्पास को पेश करने का परिणाम है।



कार्यक्रम यहाँ डाउनलोड किया जा सकता



है Arduino में स्केच का विवरण।



ब्लॉक - स्केच योजना:



कार्यक्रम शुरू

करना प्रदर्शन को

प्रारंभ करना T1 टाइमर को प्रारंभ करना, इसे बाहरी इनपुट से पल्स काउंटिंग मोड में डालना।

57600

की गति से धारावाहिक विनिमय की शुरुआत । मुख्य स्केच चक्र

काउंटर

को फिर से शुरू

करना सीरियल पोर्ट से डेटा प्राप्त करने का समय याद रखना , संदेश 1 के लिए खोज ("$ GPRMC")

सीरियल पोर्ट से डेटा प्राप्त करें, संदेश 2 ("$ GPGGA") की खोज करें

पोर्ट श्रृंखला से डेटा प्राप्त, खोजें पदों 3 ( «$ GPVTG»)

पार्सिंग और ग्लोनास \ जीपीएस से प्रदर्शित डेटा

प्रदर्शित करता है वर्तमान स्थिति T1 काउंटर

की स्थिति पाश बंद - समय समाप्त हो गया है या काउंटर 100 से अधिक दालों की गिनती है

मीटर रीडिंग और टाइमर फिक्सिंग

रेडियोधर्मिता की गणना

निष्कर्ष प्रदर्शित करने के लिए

उत्पादन धारावाहिक चैनल



के लिए उत्पादन का विवरण एकीकृत प्रदर्शन करने के लिए।







पहली पंक्ति रेडियोधर्मिता की माप के दौरान ज्ञात दालों की संख्या को दर्शाती है। संख्या एक सेकंड में लगभग बदल जाती है।



दूसरी पंक्ति पिछले चक्र में रेडियोधर्मिता की गणना मूल्य दर्शाती है।



इसके बाद चार लाइनों का एक ब्लॉक आता है। यह Glonass \ GPS मॉड्यूल से जानकारी का आउटपुट है।



पहली पंक्ति यूटीसी समय, तिथि, उपग्रहों की संख्या है, जिसमें से डेटा का उपयोग समाधान की गणना करने में किया गया था, एक समाधान का संकेत (पत्र ए या वी)

095623 140514 08 ए - 9:56:23 यूआईआर 05/14/2014 8 उपग्रह और एक समाधान है।



दूसरी लाइन अक्षांश और किमी किमी में गति है।

5545.13119 N का मतलब उत्तरी अक्षांश का 55 डिग्री 45.13119 मिनट।



देशांतर की तीसरी रेखा

03739.20397 E का मतलब 37 डिग्री 39.20397 पूर्वी देशांतर है।



चौथा - मील प्रति घंटे की गति, डिग्री में कोण और मीटर में ऊंचाई।



GLONASS \ GPS डेटा का आउटपुट सरलीकृत है - वर्ण स्ट्रिंग के कुछ हिस्सों को बस बिना किसी रूपांतरण के प्रदर्शित किया जाता है।



अगला, अवलोकन के दौरान रेडियोधर्मिता का अधिकतम मूल्य प्रदर्शित किया जाता है।

एक चलता हुआ ग्राफ समय के साथ रेडियोधर्मिता में परिवर्तन दर्शाता है। ग्राफ स्वचालित रूप से रिंग बफर में अधिकतम मूल्य को समायोजित करता है। कम्पास प्रस्तुत करते समय, हमें निम्नलिखित चित्र मिलता है:







मुझे सवालों के जवाब देने में खुशी होगी।



All Articles