فهرست مطالب:

اندازه گیری میدان مغناطیسی با استفاده از HMC5883 و Raspberry Pi: 4 مرحله
اندازه گیری میدان مغناطیسی با استفاده از HMC5883 و Raspberry Pi: 4 مرحله

تصویری: اندازه گیری میدان مغناطیسی با استفاده از HMC5883 و Raspberry Pi: 4 مرحله

تصویری: اندازه گیری میدان مغناطیسی با استفاده از HMC5883 و Raspberry Pi: 4 مرحله
تصویری: homemade magnetometer P2 ساخت مگنتومتر مغناطیس سنج دست ساز ق2 2024, نوامبر
Anonim
Image
Image

HMC5883 یک قطب نمای دیجیتالی است که برای سنجش مغناطیسی میدان کم طراحی شده است. این دستگاه دارای طیف وسیعی از میدان مغناطیسی +/- 8 Oe و نرخ خروجی 160 هرتز است. سنسور HMC5883 شامل درایور تسمه زدایی اتوماتیک تسمه ، لغو افست و ADC 12 بیتی است که دقت عنوان بندی قطب نما را 1 تا 2 درجه امکان پذیر می کند. همه ماژول های I²C Mini طوری طراحی شده اند که در 5VDC کار کنند.

در این آموزش ، ما قصد داریم کار مفصل HMC5883 با Raspberry pi و برنامه نویسی آن را با استفاده از زبان برنامه نویسی java توضیح دهیم.

مرحله 1: سخت افزار مورد نیاز:

سخت افزار مورد نیاز
سخت افزار مورد نیاز
سخت افزار مورد نیاز
سخت افزار مورد نیاز
سخت افزار مورد نیاز
سخت افزار مورد نیاز

سخت افزاری که برای انجام کار مورد نیاز است به شرح زیر است:

1. HMC5883

2. تمشک پای

3. کابل I2C

4. I2C Shield For Raspberry Pi

5. کابل اترنت

مرحله 2: اتصال سخت افزاری:

اتصال سخت افزاری
اتصال سخت افزاری
اتصال سخت افزاری
اتصال سخت افزاری

بخش اتصال سخت افزاری اساساً اتصالات سیم کشی مورد نیاز بین سنسور و تمشک pi را توضیح می دهد. اطمینان از اتصالات صحیح ضروری ترین ضرورت در هنگام کار بر روی هر سیستم برای خروجی مورد نظر است. بنابراین ، اتصالات مورد نیاز به شرح زیر است:

HMC5883 روی I2C کار خواهد کرد. در اینجا مثال نمودار سیم کشی است که نحوه اتصال هر رابط سنسور را نشان می دهد.

خارج از جعبه ، برد برای یک رابط I2C پیکربندی شده است ، بنابراین توصیه می کنیم در غیر این صورت آگنوستیک از این اتصال استفاده کنید. تنها چیزی که نیاز دارید چهار سیم است!

فقط چهار اتصال نیاز به پین های Vcc ، Gnd ، SCL و SDA دارد و این اتصالات با کمک کابل I2C متصل می شوند.

این اتصالات در تصاویر بالا نشان داده شده است.

مرحله 3: کد جاوا برای اندازه گیری شدت میدان مغناطیسی:

کد جاوا برای اندازه گیری شدت میدان مغناطیسی
کد جاوا برای اندازه گیری شدت میدان مغناطیسی
کد جاوا برای اندازه گیری شدت میدان مغناطیسی
کد جاوا برای اندازه گیری شدت میدان مغناطیسی

مزیت استفاده از تمشک pi این است که انعطاف پذیری زبان برنامه نویسی را که می خواهید در آن برنامه نویسی کنید تا سنسور با آن ارتباط برقرار کند فراهم می کند. با استفاده از این مزیت این برد ، ما در اینجا برنامه نویسی آن را در جاوا نشان می دهیم. کد جاوا برای HMC5883 را می توانید از انجمن github ما که فروشگاه Dcube است بارگیری کنید.

و همچنین برای سهولت کاربران ، ما در اینجا کد را نیز توضیح می دهیم:

به عنوان اولین مرحله کدگذاری ، باید کتابخانه pi4j را در صورت جاوا بارگیری کنید ، زیرا این کتابخانه از توابع مورد استفاده در کد پشتیبانی می کند. بنابراین ، برای بارگیری کتابخانه می توانید از لینک زیر دیدن کنید:

pi4j.com/install.html

همچنین می توانید کد جاوا کار کننده برای این سنسور را از اینجا کپی کنید:

واردات com.pi4j.io.i2c. I2CBus ؛

واردات com.pi4j.io.i2c. I2CDevice؛

mport com.pi4j.io.i2c. I2CFactory؛

واردات java.io. IOException ؛ کلاس عمومی HMC5883

{

public static void main (String args ) Exception را پرتاب می کند

{

// ایجاد گذرگاه I2C

گذرگاه I2CBus = I2CFactory.getInstance (I2CBus. BUS_1) ؛

// دریافت دستگاه I2C ، آدرس HMC5883 I2C 0x1E است (30)

دستگاه I2CDevice = Bus.getDevice (0x1E) ؛

// Configuration register A را انتخاب کنید

// پیکربندی اندازه گیری عادی ، نرخ داده o/p = 0.75 هرتز

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

// حالت ثبت نام را انتخاب کنید

// حالت اندازه گیری مداوم

device.write (0x02، (byte) 0x00)؛

موضوع. خواب (500) ؛

// خواندن 6 بایت داده از 0x03 (3)

// xMag msb، xMag lsb، zMag msb، zMag lsb، yMag msb، yMag lsb

بایت داده = بایت جدید [6]؛

device.read (0x03 ، داده ، 0 ، 6) ؛

// تبدیل داده ها

int xMag = ((داده [0] & 0xFF) * 256 + (داده [1] و 0xFF)]؛

if (xMag> 32767)

{

xMag -= 65536 ؛

}

int zMag = ((داده [2] & 0xFF) * 256 + (داده [3] و 0xFF)]؛

if (zMag> 32767)

{

zMag -= 65536 ؛

}

int yMag = ((داده [4] & 0xFF) * 256 + (داده [5] و 0xFF)]؛

if (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]؛

device.read (0x03 ، داده ، 0 ، 6) ؛

خروجی در تصویر بالا نشان داده شده است.

مرحله 4: برنامه های کاربردی:

برنامه های کاربردی
برنامه های کاربردی

HMC5883 یک ماژول چند سطحی برای نصب روی سطح است که برای سنجش مغناطیسی میدان کم با رابط دیجیتالی برای برنامه هایی مانند قطب نمای کم هزینه و مغناطیس سنجی طراحی شده است. دقت و دقت یک تا دو درجه ای آن ، برنامه های ناوبری عابر پیاده و برنامه های LBS را امکان پذیر می کند.

توصیه شده: