جدول المحتويات:

قياس المجال المغناطيسي باستخدام HMC5883 و Raspberry Pi: 4 خطوات
قياس المجال المغناطيسي باستخدام HMC5883 و Raspberry Pi: 4 خطوات

فيديو: قياس المجال المغناطيسي باستخدام HMC5883 و Raspberry Pi: 4 خطوات

فيديو: قياس المجال المغناطيسي باستخدام HMC5883 و Raspberry Pi: 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 Mini Modules لتعمل عند 5VDC.

في هذا البرنامج التعليمي ، سنشرح العمل التفصيلي لـ HMC5883 مع Raspberry pi وبرمجته باستخدام لغة برمجة جافا.

الخطوة 1: الأجهزة المطلوبة:

الأجهزة المطلوبة
الأجهزة المطلوبة
الأجهزة المطلوبة
الأجهزة المطلوبة
الأجهزة المطلوبة
الأجهزة المطلوبة

الأجهزة المطلوبة لإنجاز المهمة هي كما يلي:

1. HMC5883

2. Raspberry Pi

3. كابل I2C

4. I2C Shield لـ Raspberry Pi

5. كابل إيثرنت

الخطوة 2: ربط الأجهزة:

ربط الأجهزة
ربط الأجهزة
ربط الأجهزة
ربط الأجهزة

يشرح قسم توصيل الأجهزة بشكل أساسي اتصالات الأسلاك المطلوبة بين المستشعر و raspberry pi. يعد التأكد من التوصيلات الصحيحة ضرورة أساسية أثناء العمل على أي نظام للإخراج المطلوب. إذن ، الاتصالات المطلوبة هي كما يلي:

سيعمل HMC5883 على I2C. فيما يلي مثال على مخطط الأسلاك ، يوضح كيفية توصيل كل واجهة من أجهزة الاستشعار.

خارج الصندوق ، تم تكوين اللوحة لواجهة I2C ، لذلك نوصي باستخدام هذا التوصيل إذا كنت غير مدرك. كل ما تحتاجه هو أربعة أسلاك!

مطلوب أربعة اتصالات فقط دبابيس Vcc و Gnd و SCL و SDA ويتم توصيلها بمساعدة كابل I2C.

هذه الوصلات موضحة في الصور أعلاه.

الخطوة الثالثة: كود جافا لقياس كثافة المجال المغناطيسي:

كود جافا لقياس كثافة المجال المغناطيسي
كود جافا لقياس كثافة المجال المغناطيسي
كود جافا لقياس كثافة المجال المغناطيسي
كود جافا لقياس كثافة المجال المغناطيسي

تتمثل ميزة استخدام raspberry pi في أنه يوفر لك مرونة لغة البرمجة التي تريد برمجة اللوحة بها لربط المستشعر بها. من خلال الاستفادة من هذه الميزة في هذا المنتدى ، نعرض هنا البرمجة بلغة Java. يمكن تنزيل كود جافا الخاص بـ HMC5883 من مجتمع جيثب الخاص بنا وهو Dcube Store.

ولسهولة المستخدمين ، نقوم بشرح الكود هنا أيضًا:

كخطوة أولى في الترميز ، تحتاج إلى تنزيل مكتبة pi4j في حالة java ، لأن هذه المكتبة تدعم الوظائف المستخدمة في الكود. لذلك ، لتنزيل المكتبة يمكنك زيارة الرابط التالي:

pi4j.com/install.html

يمكنك نسخ كود جافا العامل لهذا المستشعر من هنا أيضًا:

استيراد com.pi4j.io.i2c. I2CBus ؛

استيراد com.pi4j.io.i2c. I2CDevice ؛

mport com.pi4j.io.i2c. I2CFactory ؛

استيراد java.io. IOException ؛ فئة عامة HMC5883

{

يطرح main static void main (String args ) استثناء

{

// إنشاء ناقل I2C

ناقل I2CBus = I2CFactory.getInstance (I2CBus. BUS_1) ،

// احصل على جهاز I2C ، عنوان HMC5883 I2C هو 0x1E (30)

جهاز I2CDevice = Bus.getDevice (0x1E) ،

// حدد سجل التكوين أ

// تكوين القياس العادي ، معدل البيانات o / p = 0.75 هرتز

device.write (0x00 ، (بايت) 0x60) ؛

// حدد وضع التسجيل

// وضع القياس المستمر

device.write (0x02 ، (بايت) 0x00) ؛

Thread.sleep (500) ؛

// قراءة 6 بايت من البيانات من 0x03 (3)

// xMag msb و xMag lsb و zMag msb و zMag lsb و yMag msb و yMag lsb

بايت بيانات = بايت جديد [6] ؛

قراءة الجهاز (0x03 ، البيانات ، 0 ، 6) ؛

// تحويل البيانات

int xMag = ((data [0] & 0xFF) * 256 + (data [1] & 0xFF)) ؛

إذا (xMag> 32767)

{

xMag - = 65536 ؛

}

int zMag = ((data [2] & 0xFF) * 256 + (data [3] & 0xFF)) ؛

إذا (zMag> 32767)

{

zMag - = 65536 ؛

}

int yMag = ((data [4] & 0xFF) * 256 + (data [5] & 0xFF)) ؛

إذا (yMag> 32767)

{

yMag - = 65536 ؛

}

// إخراج البيانات للشاشة

System.out.printf ("المجال المغناطيسي في المحور X:٪ d٪ n"، xMag)؛

System.out.printf ("المجال المغناطيسي في المحور Y:٪ d٪ n"، yMag)؛

System.out.printf ("المجال المغناطيسي في المحور Z:٪ d٪ n"، zMag)؛

}

}

يتم استخدام وظائف الكتابة () والقراءة () لكتابة الأوامر وقراءة إخراج المستشعر على التوالي. الجزء التالي يوضح قراءة قيم المجال المغناطيسي.

// قراءة 6 بايت من البيانات من 0x03 (3)

// xMag msb و xMag lsb و zMag msb و zMag lsb و yMag msb و yMag lsb

بايت بيانات = بايت جديد [6] ؛

قراءة الجهاز (0x03 ، البيانات ، 0 ، 6) ؛

يظهر الإخراج في الصورة أعلاه.

الخطوة 4: التطبيقات:

التطبيقات
التطبيقات

HMC5883 عبارة عن وحدة متعددة الرقاقات مثبتة على السطح مصممة للاستشعار المغناطيسي للمجال المنخفض مع واجهة رقمية لتطبيقات مثل البوصلة منخفضة التكلفة والقياس المغناطيسي. تتيح الدقة والدقة العالية المستوى من درجة إلى درجتين تطبيقات الملاحة المشاة وتطبيقات LBS.

موصى به: