विषयसूची:

HMC5883 और रास्पबेरी पाई का उपयोग करके चुंबकीय क्षेत्र का मापन: 4 चरण
HMC5883 और रास्पबेरी पाई का उपयोग करके चुंबकीय क्षेत्र का मापन: 4 चरण

वीडियो: HMC5883 और रास्पबेरी पाई का उपयोग करके चुंबकीय क्षेत्र का मापन: 4 चरण

वीडियो: HMC5883 और रास्पबेरी पाई का उपयोग करके चुंबकीय क्षेत्र का मापन: 4 चरण
वीडियो: How to use MPU-9250 Gyroscope, Accelerometer, Magnetometer for Arduino 2024, जुलाई
Anonim
Image
Image

HMC5883 एक डिजिटल कंपास है जिसे लो-फील्ड मैग्नेटिक सेंसिंग के लिए डिज़ाइन किया गया है। इस डिवाइस में +/- 8 Oe की एक विस्तृत चुंबकीय क्षेत्र रेंज और 160 हर्ट्ज की आउटपुट दर है। HMC5883 सेंसर में ऑटोमैटिक डीगॉसिंग स्ट्रैप ड्राइवर, ऑफ़सेट कैंसिलेशन और एक 12-बिट ADC शामिल है जो 1° से 2° कंपास हेडिंग सटीकता को सक्षम बनाता है। सभी I²C मिनी मॉड्यूल 5VDC पर संचालित करने के लिए डिज़ाइन किए गए हैं।

इस ट्यूटोरियल में, हम रास्पबेरी पाई के साथ HMC5883 की विस्तृत कार्यप्रणाली और जावा प्रोग्रामिंग भाषा का उपयोग करके इसकी प्रोग्रामिंग की व्याख्या करने जा रहे हैं।

चरण 1: हार्डवेयर की आवश्यकता:

हार्डवेयर की आवश्यकता
हार्डवेयर की आवश्यकता
हार्डवेयर की आवश्यकता
हार्डवेयर की आवश्यकता
हार्डवेयर की आवश्यकता
हार्डवेयर की आवश्यकता

कार्य को पूरा करने के लिए आवश्यक हार्डवेयर इस प्रकार है:

1. एचएमसी5883

2. रास्पबेरी पाई

3. I2C केबल

4. रास्पबेरी पाई के लिए I2C शील्ड

5. ईथरनेट केबल

चरण 2: हार्डवेयर हुकअप:

हार्डवेयर हुकअप
हार्डवेयर हुकअप
हार्डवेयर हुकअप
हार्डवेयर हुकअप

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

HMC5883 I2C पर काम करेगा। यहाँ उदाहरण वायरिंग आरेख है, जिसमें दिखाया गया है कि सेंसर के प्रत्येक इंटरफ़ेस को कैसे वायर किया जाए।

आउट-ऑफ-द-बॉक्स, बोर्ड को I2C इंटरफ़ेस के लिए कॉन्फ़िगर किया गया है, जैसे कि यदि आप अन्यथा अज्ञेयवादी हैं तो हम इस हुकअप का उपयोग करने की सलाह देते हैं। आपको बस चार तार चाहिए!

केवल चार कनेक्शन की आवश्यकता होती है Vcc, Gnd, SCL और SDA पिन और ये I2C केबल की मदद से जुड़े होते हैं।

इन कनेक्शनों को ऊपर की तस्वीरों में दिखाया गया है।

चरण 3: चुंबकीय क्षेत्र की तीव्रता को मापने के लिए जावा कोड:

चुंबकीय क्षेत्र की तीव्रता को मापने के लिए जावा कोड
चुंबकीय क्षेत्र की तीव्रता को मापने के लिए जावा कोड
चुंबकीय क्षेत्र की तीव्रता को मापने के लिए जावा कोड
चुंबकीय क्षेत्र की तीव्रता को मापने के लिए जावा कोड

रास्पबेरी पाई का उपयोग करने का लाभ यह है कि यह आपको उस प्रोग्रामिंग भाषा का लचीलापन प्रदान करता है जिसमें आप सेंसर को इंटरफेस करने के लिए बोर्ड को प्रोग्राम करना चाहते हैं। इस बोर्ड के इस लाभ का उपयोग करते हुए, हम यहां जावा में इसकी प्रोग्रामिंग का प्रदर्शन कर रहे हैं। HMC5883 के लिए जावा कोड हमारे जीथब समुदाय से डाउनलोड किया जा सकता है जो कि Dcube Store है।

साथ ही उपयोगकर्ताओं की आसानी के लिए, हम यहां कोड भी समझा रहे हैं:

कोडिंग के पहले चरण के रूप में, आपको जावा के मामले में pi4j पुस्तकालय डाउनलोड करने की आवश्यकता है, क्योंकि यह पुस्तकालय कोड में प्रयुक्त कार्यों का समर्थन करता है। तो, पुस्तकालय डाउनलोड करने के लिए आप निम्न लिंक पर जा सकते हैं:

pi4j.com/install.html

आप इस सेंसर के लिए काम कर रहे जावा कोड को यहां से भी कॉपी कर सकते हैं:

आयात com.pi4j.io.i2c. I2CBus;

आयात com.pi4j.io.i2c. I2CDउपकरण;

एमपोर्ट com.pi4j.io.i2c. I2CFactory;

आयात java.io. IOException;पब्लिक क्लास HMC5883

{

सार्वजनिक स्थैतिक शून्य मुख्य (स्ट्रिंग तर्क ) अपवाद फेंकता है

{

// I2C बस बनाएं

I2CBus बस = I2CFactory.getInstance(I2CBus. BUS_1);

// I2C डिवाइस प्राप्त करें, HMC5883 I2C पता 0x1E (30) है

I2CDevice डिवाइस = Bus.getDevice(0x1E);

// कॉन्फ़िगरेशन रजिस्टर का चयन करें A

// सामान्य माप विन्यास, डेटा दर ओ / पी = 0.75 हर्ट्ज

device.write (0x00, (बाइट) 0x60);

// मोड रजिस्टर चुनें

// निरंतर माप मोड

डिवाइस.राइट (0x02, (बाइट) 0x00);

थ्रेड.स्लीप (500);

// 0x03 (3) से 6 बाइट्स डेटा पढ़ें

// xMag msb, xMag lsb, zMag msb, zMag lsb, yMag msb, yMag lsb

बाइट डेटा = नया बाइट [6];

डिवाइस.रीड (0x03, डेटा, 0, 6);

// डेटा कनवर्ट करें

int xMag = ((डेटा [0] और 0xFF) * 256 + (डेटा [1] और 0xFF));

अगर (एक्समैग> 32767)

{

एक्समैग - = ६५५३६;

}

int zMag = ((डेटा[2] और 0xFF) * 256 + (डेटा [3] और 0xFF));

अगर (zMag> ३२७६७)

{

zMag - = ६५५३६;

}

int yMag = ((डेटा [4] और 0xFF) * 256 + (डेटा [5] और 0xFF));

अगर (वाईमैग> 32767)

{

yMag - = ६५५३६;

}

// स्क्रीन पर आउटपुट डेटा

System.out.printf ("एक्स-एक्सिस में चुंबकीय क्षेत्र:% d% n", xMag);

System.out.printf ("Y-अक्ष में चुंबकीय क्षेत्र: %d %n", yMag);

System.out.printf ("जेड-एक्सिस में चुंबकीय क्षेत्र:% d% n", zMag);

}

}

लिखें () और पढ़ें () फ़ंक्शन का उपयोग क्रमशः कमांड लिखने और सेंसर आउटपुट को पढ़ने के लिए किया जाता है। निम्नलिखित भाग चुंबकीय क्षेत्र के मूल्यों के पठन को दर्शाता है।

// 0x03 (3) से 6 बाइट्स डेटा पढ़ें

// xMag msb, xMag lsb, zMag msb, zMag lsb, yMag msb, yMag lsb

बाइट डेटा = नया बाइट [6];

डिवाइस.रीड (0x03, डेटा, 0, 6);

आउटपुट ऊपर चित्र में दिखाया गया है।

चरण 4: अनुप्रयोग:

अनुप्रयोग
अनुप्रयोग

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

सिफारिश की: