अपने Arduino माइक्रोकंट्रोलर में कम्पास मॉड्यूल जोड़ने से परियोजनाओं के लिए कई संभावनाएं खुलती हैं। यहां एक को कनेक्ट करने और उसका उपयोग करने का तरीका बताया गया है।
आधुनिक DIY परियोजनाओं में, उन्नत सेंसर जैसे कि एक्सेलेरोमीटर और मैग्नेटोमीटर को माइक्रोकंट्रोलर के साथ इंटरफेस किया जाना बहुत आम है। हो सकता है कि आपने अपने फ़ोन में इन सेंसर का उपयोग किया हो, यह कल्पना करना मुश्किल है कि ये मॉड्यूल कैसे काम करते हैं, लेकिन यह आश्चर्यजनक रूप से सरल है।
GY-271 कम्पास मैग्नेटोमीटर सेंसर विभिन्न अनुप्रयोगों के लिए अभिविन्यास संवेदन को सक्षम करता है। यहां हम एक Arduino माइक्रोकंट्रोलर के साथ GY-271 सेंसर को जोड़ने की प्रक्रिया का पता लगाएंगे, इसे कैसे कैलिब्रेट करें और ऐसा करते समय आपको आने वाली समस्याओं को देखें।
GY-271 कम्पास मॉड्यूल क्या है?
GY-271 कम्पास मॉड्यूल एक अत्यधिक संवेदनशील मैग्नेटोमीटर है जो तीन आयामों में चुंबकीय क्षेत्र को माप सकता है। इसका उपयोग पृथ्वी के चुंबकीय क्षेत्र का पता लगाने और नेविगेशन सिस्टम, रोबोटिक्स और ड्रोन जैसे अनुप्रयोगों में उपकरणों की दिशा या अभिविन्यास निर्धारित करने के लिए किया जाता है। इसके बारे में एक बहुत ही सटीक डिजिटल कंपास की तरह सोचें। यह सेंसर एक कॉम्पैक्ट और मजबूत डिज़ाइन से लैस है जो परियोजनाओं की एक विस्तृत श्रृंखला में इसे स्थापित करना और उपयोग करना आसान बनाता है।
GY-271 कम्पास मॉड्यूल कैसे काम करता है?
GY-271 HCM5883L कम्पास मॉड्यूल में एक 3-अक्ष मैग्नेटोमीटर सेंसर होता है, जो अनिसोट्रोपिक मैग्नेटो-रेसिस्टिव (AMR) तकनीक पर आधारित होता है। सेंसर पृथ्वी के चुंबकीय क्षेत्र की शक्ति और दिशा को इसके आंतरिक एएमआर तत्वों के प्रतिरोध में परिवर्तन का पता लगाकर मापता है।
जब सेंसर एक चुंबकीय क्षेत्र के संपर्क में आता है, तो एएमआर तत्वों का प्रतिरोध बदल जाता है, जिससे एक वोल्टेज उत्पन्न होता है जो चुंबकीय क्षेत्र की ताकत और दिशा के समानुपाती होता है। सेंसर का डिजिटल सिग्नल प्रोसेसर तब इस वोल्टेज को डिजिटल सिग्नल में परिवर्तित करता है, जिसे एक माइक्रोकंट्रोलर द्वारा पढ़ा जा सकता है। तीनों अक्षों में वोल्टेज को मापकर, सेंसर तीन आयामों में चुंबकीय क्षेत्र की ताकत और दिशा की अत्यधिक सटीक रीडिंग प्रदान कर सकता है।
GY-271 को एक Arduino Uno से जोड़ना
इस मॉड्यूल को Arduino से जोड़ना बहुत सीधा है। हमने अन्य को भी कवर किया है उपयोग में आसान Arduino मॉड्यूल जो भविष्य में आपके प्रोजेक्ट को स्केल करने में मदद कर सकता है। GY-271 मॉड्यूल में कुल पांच पिन हैं, जिनमें शामिल हैं वीसीसी, जीएनडी, और तीन सिग्नल पिन (एसडीए, एससीएल, और डीआरडीवाई).
आपको निम्नलिखित घटकों की आवश्यकता होगी:
- GY-271 HMC5883L कम्पास मॉड्यूल
- Arduino Uno (या अन्य मॉडल)
- जम्पर तार (पुरुष से पुरुष और पुरुष से महिला)
- ब्रेडबोर्ड (वैकल्पिक)
सबसे पहले, कनेक्ट करें वीसीसी और जीएनडी GY-271 मॉड्यूल के पिन 5वी और जीएनडी क्रमशः Arduino Uno के पिन।
अगला, कनेक्ट करें एसडीए और एससीएल मॉड्यूल के पिन ए 4 और ए 5 क्रमशः Arduino Uno के एनालॉग पिन।
आवश्यक पुस्तकालयों की स्थापना
इससे पहले कि आप GY-271 कम्पास मॉड्यूल और Arduino के साथ काम करना शुरू कर सकें, आपको सेंसर के साथ संवाद करने के लिए आवश्यक लाइब्रेरी स्थापित करने की आवश्यकता है।
आपके स्केच में शामिल होने वाली पहली लाइब्रेरी वायर लाइब्रेरी है, जिसका उपयोग Arduino और सेंसर के बीच I2C संचार के लिए किया जाता है। द वायर लाइब्रेरी Arduino IDE के साथ पहले से इंस्टॉल आती है, इसलिए आपको इसे अलग से डाउनलोड करने की आवश्यकता नहीं है। दूसरा स्थापित करने के लिए, एचएमसी5883एल पुस्तकालय, आपको इन चरणों का पालन करना होगा:
Arduino IDE खोलें और पर जाएँ स्केच > लाइब्रेरी शामिल करें > पुस्तकालयों का प्रबंधन करें.
लाइब्रेरी मैनेजर में, खोजें एचएमसी5883एल सर्च बार में।
का चयन करें एचएमसी5883एल पुस्तकालय विशेष रूप से एडफ्रूट से। एक बार लाइब्रेरी स्थापित हो जाने के बाद, आप इसे अपने Arduino स्केच में जाकर शामिल कर सकते हैं स्केच > लाइब्रेरी शामिल करें > एचएमसी5883एल.
संहिता को समझना
आपको एक प्रोग्राम लिखने की आवश्यकता है जो सेंसर को इनिशियलाइज़ करता है, इसके डेटा को पढ़ता है और पृथ्वी के चुंबकीय क्षेत्र की ताकत और दिशा की गणना करता है। पूरा कोड हमारे अधिकारी से डाउनलोड किया जा सकता है गिटहब रिपॉजिटरी.
कोड की शुरुआत में, आपको आवश्यक लाइब्रेरी को शामिल करना होगा जिसे आपने अभी डाउनलोड किया है।
#शामिल करना
#शामिल करना
#शामिल करना
सेंसर को एक यूनिक आईडी असाइन करना न भूलें। ऐसा करने के लिए इस लाइन का प्रयोग करें:
Adafruit_HMC5883_Unified मैग = Adafruit_HMC5883_Unified(12345);
सेटअप कोड में, सीरियल मॉनिटर शुरू करें और जांचें कि सेंसर प्रतिक्रिया दे रहा है या नहीं। सेंसर की स्थिति को अपडेट करने के लिए आप मॉनिटर को संदेश प्रिंट कर सकते हैं:
खालीपनस्थापित करना(खालीपन)
{
धारावाहिक.शुरू(9600);
धारावाहिक.println("HMC5883 मैग्नेटोमीटर टेस्ट"); धारावाहिक.println("");
/* सेंसर को इनिशियलाइज़ करें */
अगर(मैग।शुरू())
{
धारावाहिक.println("ओह, कोई HMC5883 नहीं मिला... अपनी वायरिंग जांचें!");
जबकि(1);
}
}
लूप में, पहले एक नया सेंसर इवेंट प्राप्त करें:
सेंसर_इवेंट_टी आयोजन;
मैग.गेटइवेंट (&ईवेंट);
फिर सेंसर की रीडिंग को सीरियल मॉनिटर पर प्रदर्शित करें। बॉड रेट को सेट करना न भूलें 9600.
धारावाहिक.छपाई("एक्स: "); धारावाहिक.छपाई(घटना.चुंबकीय.x); धारावाहिक.छपाई(" ");
धारावाहिक.छपाई("वाई:"); धारावाहिक.छपाई(event.magnetic.y); धारावाहिक.छपाई(" ");
धारावाहिक.छपाई("जेड:"); धारावाहिक.छपाई(event.magnetic.z); धारावाहिक.छपाई(" ");धारावाहिक.println("यूटी");
मॉड्यूल को पकड़ें ताकि जेड "ऊपर" इंगित कर रहा है और शीर्षक को मापें एक्स और वाई. ऐसा करने से, आप तब शीर्षक की गणना कर सकते हैं जब मैग्नेटोमीटर समतल हो। कोड की यह पंक्ति इसमें मदद करती है:
तैरना शीर्षक = atan2(event.magnetic.y, event.magnetic.x);
एक बार जब आप अपने शीर्षक, फिर आपको अपना जोड़ना होगा declinationAngle, जो आपके स्थान पर चुंबकीय क्षेत्र की त्रुटि है।
तैरना अवनति कोण = 0.663;
शीर्षक + = गिरावट कोण;
आप आसानी से अपने स्थानीय क्षेत्र के झुकाव कोण को पर ढूंढ सकते हैं चुंबकीय गिरावट वेबसाइट. यदि किसी कारण से आप अपना डिक्लाइनेशन कोण नहीं ढूंढ पा रहे हैं, तो अपने कोड से दो पंक्तियों पर टिप्पणी करें।
कोड की दो पंक्तियों पर टिप्पणी करने से दोषपूर्ण सेंसर रीडिंग हो सकती है। उपयोग करने से पहले सेंसर को कैलिब्रेट करने की पूरी कोशिश करें।
अंत में, हेडिंग को सीरियल मॉनिटर पर प्रिंट करें और फिर से पढ़ने से पहले आधे सेकंड के लिए प्रतीक्षा करने में देरी करें।
धारावाहिक.छपाई("शीर्षक (डिग्री):");
धारावाहिक.println(शीर्षक डिग्री);
देरी(500);
यहां से, आप अपनी परियोजना की आवश्यकताओं के अनुरूप कोड को अनुकूलित कर सकते हैं और डेटा लॉगिंग जैसी अतिरिक्त सुविधाएं जोड़ सकते हैं।
क्या आपको एडफ्रूट लाइब्रेरी का उपयोग करना पसंद करना चाहिए, हम इसे सोर्स करने की सलाह देते हैं एडफ्रूट का गिटहब भंडार.
कम्पास डेटा पढ़ना और व्याख्या करना
सीरियल मॉनिटर में प्रदर्शित सेंसर डेटा क्रमशः X, Y और Z अक्षों के लिए माइक्रोटेस्लास (μT) में मैग्नेटोमीटर द्वारा मापा गया चुंबकीय क्षेत्र वेक्टर मान दिखाता है। इन मूल्यों का उपयोग चुंबकीय क्षेत्र के अभिविन्यास और परिमाण को निर्धारित करने के लिए किया जा सकता है।
डिग्री में प्रदर्शित हेडिंग मान भी महत्वपूर्ण है और सेंसर की स्थिति के सापेक्ष चुंबकीय उत्तरी ध्रुव की दिशा का प्रतिनिधित्व करता है। इस पठन का उपयोग उन परियोजनाओं में किया जा सकता है जहां गतिमान वस्तु की दिशा निर्धारित करने की आवश्यकता होती है, जैसे कि रोबोटिक्स, नेविगेशन और जियोलोकेशन सिस्टम में।
सेंसर अंशांकन
यदि आपने HMC5883L मॉड्यूल के लिए पहले से ही एक अलग पुस्तकालय स्थापित किया है, तो आपको इसे अनइंस्टॉल करने या हटाने की आवश्यकता होगी। अन्यथा, आपको संकलन त्रुटियां मिल सकती हैं या अंशांकन के दौरान आपके सीरियल मॉनीटर में चेतावनियां दिखाई दे सकती हैं। हम उपयोग करने की सलाह देते हैं जारजेब्स्की की लाइब्रेरी गिटहब पर उपलब्ध है क्योंकि इसमें इस खंड के लिए आवश्यक पूर्ण अंशांकन संसाधन हैं।
सबसे पहले क्लिक करके रिपॉजिटरी से जिप फाइल को डाउनलोड करें कोड > जिप डाउनलोड करें.
इसके बाद, Arduino IDE खोलें और पर क्लिक करें स्केच > लाइब्रेरी शामिल करें > लाइब्रेरी जोड़ें.
का चयन करें Arduino-HMC5883 zip फ़ाइल जिसे आपने अभी डाउनलोड किया है, और Arduino IDE तब आपके लिए स्वचालित रूप से लाइब्रेरी स्थापित कर देगा।
अपलोड करते समय एक सपाट सतह पर संवेदक को इधर-उधर घुमाते हुए रिपॉजिटरी में उपलब्ध अंशांकन स्केच चलाएं। सीरियल मॉनिटर से प्राप्त मूल्य आपके सेंसर के ऑफ़सेट मान हैं, जिनका उपयोग आप अपनी परियोजनाओं के दौरान कम्पास का उपयोग करते समय अपनी रीडिंग को सही करने के लिए कर सकते हैं।
समस्याएँ जिनमें आप भाग सकते हैं
Arduino के साथ कम्पास मॉड्यूल को इंटरफ़ेस करते समय कई त्रुटियां हो सकती हैं। यहाँ कुछ उदाहरण और उनके उपाय दिए गए हैं:
संकलन त्रुटियां: ये तब हो सकते हैं यदि आवश्यक पुस्तकालय शामिल नहीं हैं या यदि कोड में सिंटैक्स त्रुटियां हैं। इसे ठीक करने के लिए, सुनिश्चित करें कि आपने सही लाइब्रेरी स्थापित की हैं और किसी सिंटैक्स त्रुटियों के लिए अपना कोड जांचें। जैसा कि हमने कई बार देखा है, आपने गलती से कई HCM5883L लाइब्रेरी स्थापित कर दी होंगी।
समेकन की त्रुटि: 'एडफ्रूट_एचएमसी5883_एकीकृत' करता है नहीं एक प्रकार का नाम दें
संचार त्रुटियाँ: यदि आप कम्पास मॉड्यूल के साथ संवाद करने में असमर्थ हैं, तो सुनिश्चित करें कि आपने इसे अपने Arduino पर सही पिन से जोड़ा है और आपकी वायरिंग सही है। आपको अपने कोड में मॉड्यूल के I2C पते को समायोजित करने की आवश्यकता हो सकती है यदि यह डिफ़ॉल्ट से अलग है - जो कि 0x1E है।
गलती का उपयोग करते हुए एचएमसी5883एल/टेस्टडिवाइस (पंक्ति246) HMC5883L सेंसर के साथ संचार करने में त्रुटि। मूल्य पढ़ना आईडी_ए से, आईडी_बी और ID_C रजिस्टर करता है करनानहीं अपेक्षित मूल्यों का मिलान करें।
चुंबकीय हस्तक्षेप: यदि कम्पास रीडिंग अस्थिर या उतार-चढ़ाव वाली है, तो यह पास की वस्तुओं से चुंबकीय हस्तक्षेप के कारण हो सकता है। अधिक स्थिर रीडिंग प्राप्त करने के लिए मॉड्यूल को किसी चुंबक या चुंबकीय हस्तक्षेप के अन्य स्रोतों से दूर ले जाएं।
GY-271 कम्पास मॉड्यूल के साथ अपनी परियोजनाओं में सुधार करें
GY-271 HCM5883L कम्पास मॉड्यूल का उपयोग करने में सक्षम होने से Arduino जैसे GPS- निर्देशित रोवर्स और DIY ड्रोन का उपयोग करके अधिक जटिल DIY परियोजनाओं के निर्माण के लिए एक द्वार खुल जाता है। संभावनाएं अनंत हैं, खासकर जब आप अन्य सेंसर जोड़ते हैं।