آردوینو پروژه های آردوینو

قطب نما +نمایشگر OLED آردوینو

آموزش ماژول قطب نما gy271 آردوینو
نوشته شده توسط علیرضا قربانی

آموزش ماژول قطب نما +نمایشگر OLED  آردوینو

در پست‌های قبلی به آموزش راه‌‌اندازی ماژول قطب‌نمای HMC5883 gy-271 به همراه نمایش آن بر روی LCD کاراکتری با استفاه از کتابخانه Adafruit_HMC5883_Unifiedپرداختیم. در این قسمت  به آموزش راه‌اندازی ماژول HMC5883 gy-271 با استفاده از کتابخانه compass به همراه نمایش جهت ناوربری بر روی OLED  می‌پردازیم. در ادامه با مرجع تخصصی آردوینو ، دیجی اسپارک همراه باشید.gy271 HMC8358  یک قطب نمای سه محوره دیجیتال است که میتواند شدت میدان مغناطیسی را تا ۸+/- گائوس با دقت ۵ میلی گائوس اندازه گیری کند. توسط ماژول HMC5883 میتوان زاویه خود را نسبت به محور ها با دقت ۱ الی ۲ درجه محاسبه نمود. از ماژول HMC5883 GY271 میتوان در سیستم ناوبری اتوماتیک ، سیستم های جهت یابی ربات و  … استفاده نمود .

مشخصات ماژول قطب‌نمایgy-271

پروتکل ارتباطی I2C

دارای دقت ۱ تا ۲ درجه

ADC داخلی ۱۲ بیتی

دیتاریت ۱۶۰ هرتز

اندازه گیری ۸ تا ۸- شدت میدان مغناطیسی

 

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

آردوینو Uno

ماژول قطب نمای HMC5883 gy 271

ماژول OLED I2C

 

اتصالات

آموزش ماژول HMC5883 gy271

اتصال قطب نما + OLED + آردوینو

 

 

برای نمایش جهت ناوبری از ماژول OLED I2C استفاده شده است که آموزش‌ها و کتابخانه آن در لینک زیر موجود می‌باشد:

آموزش  ماژول نمایشگر OLED I2C در آردوینو بخش اول

 

در این آموزش از کتابخانه compass استفاده شده است که می‌توایند آن را از لینک زیر دانلود نمایید.

دانلود کتابخانه compass.h

توسط این کتابخانه می‌توان زوایه‌ی هر محور را نسبت به قطب شمال جغرافیایی اندازه‌گیری نمود.شمال جغرافیایی جهت قطب شمال جغرافیایی محلی است که محور گردش زمین سطح آن‌را قطع می‌کند. هر نقطه‌ای در سطح زمین که امتداد مستقیم آن به قطب شمال جغرافیایی برسد، شمال جغرافیایی یا شمال حقیقی یا شمال واقعی نامیده می‌شود. همه خطوط طول جغرافیایی، خطوط شمال واقعی هستند.شمال جغرافیایی در مقابل قطب مغناطیسی شمال به‌کار می‌رود. بنابراین شمال حقیقی زمین از جهتی که قطب‌نماهای معمولی نشان می‌دهند، مقداری فاصله دارد.زاویه بین شمال حقیقی و شمال مغناطیسی، «میل مغناطیسی» نامیده می‌شود. برخی نقشه‌ها تفاوت شمال حقیقی و شمال مغناطیسی را مشخص می‌کنند.قطب‌نمای ژیروسکوپی بر خلاف قطب‌نماهای عادی  همواره جهت شمال حقیقی را نشان می‌دهد، نه شمال مغناطیس را؛ زیرا به مغناطیس وابستگی ندارد.

 

محور مغناطیسی زمین با محور جغرافیایی آن (محور چرخش زمین) به طور کامل موازی نیست. در نتیجه خواندن یک قطب‌نما تا حدودی از شمال جغرافیایی انحراف دارد. این انحراف که با مکان تغییر می‌کند وردش مغناطیسی یا میل مغناطیسی نامیده می‌شود.میل مغناطیسی، در هر نقطه از زمین، زاویه بین شمال حقیقی و شمال مغناطیسی در آن نقطه است؛ یعنی زاویهٔ بین سمتی که عقربهٔ قطب‌نما نشان می‌دهد، و سمت شمال جغرافیایی. برخی از منابع مختلف میل مغناطیسی را «وردش مغناطیسی» هم می‌نامند که درست است. برخی هم به اشتباه آن را انحراف مغناطیسی گفته‌اند، ولی این واژه، برای انحراف ناچیز عقربهٔ قطب‌نما در اثر عوامل محیطی (مانند وسایل آهنی و منابع الکتریکی و غیره) است و هیچ ارتباطی با زاویه میل مغناطیسی در یک محل ندارد.

 

آموزش راه اندازی ماژول قطب نما GY271 HMC5883L

 

 

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

برای پیدا کردن میل مغناطیسی می‌بایست ابتدا وارد سایت زیر شویم.

http://www.magnetic-declination.com/

در این سایت مقدار فیلد Magnetic declination برابر میل مغناطیسی می‌باشد.

 

آموزش راه اندازی ماژول قطب نما GY271 HMC5883L

 

در عکس بالا شما دو عدد °۳ و همچنین ’۴۹ را مشاهده میکنید. عدد ۴۹ بر پایه ی واحد دقیقه‌ی قوسی(هر دقیقه قوسی معادل  یک شصتم یک درجه است) می‌باشد و باید آن را به درجه تبدیل کنید و به عدد ۳ اضافه کنید.

۴۹÷۶۰=۰٫۸۱۶۶۶۶۶

۳+۰٫۸۱۶۶۶۶=۳٫۸۱۶۶۶۶۶۶

 

 

کدهای برنامه

 

 

توابع به کار رفته در کدهای فوق

compass_offset_calibration(int select)

 

این تابع برای کالیبراسیون ماژول قطب‌نما استفاده می‌شود.این تابع می‌تواند ۴ مقدار زیر را بپذیرد:

select=1

در این حالت میزان خطا کالبیره می‌شود.

select=2

در این حالت میزان انحراف از محورها کالیبره می‌شود.

select=3

در این حالت میزان انحراف از محور‌ها و همچنین درصد خطا کالیبره می‌شود.

select=any

در این حالت عمل کالیبراسیون انجام نمی‌شود.

compass_init(int gain)

به وسیله این تابع میزان دقت اندازه‌گیری مشخص می‌شود.این تابع می‌تواند مقادیر زیر را دریافت کند:

gain=0: max scale = 0.73 gauss
gain=1: max scale = 0.92 gauss
gain=2: max scale = 1.22 gauss
gain=3: max scale = 1.52 gauss
gain=4: max scale = 2.27 gauss
gain=5: max scale = 2.56 gauss
gain=6: max scale = 3.03 gauss
gain=7: max scale = 4.35 gauss

 

 compass_scalled_reading()

 

به وسیله‌ی این تابع مقدار اندازه گیری شده در راستای سه محور x , y و z بروزرسانی می‌شود و مقادیر آن‌ها را در متغیرهایی به نام  compass_x_scalled ، compass_y_scalled و  compass_z_scalled می‌ریزد.

 

 compass_heading()

به وسیله‌ی این تابع علاوه بر بروزرسانی سه مقدار اندازه گیری شده در راستای سه محور x, y و z ، مقدار زاویه‌ی ماژول نسبت به شمال جغرافیایی را بروزرسانی می‌کند و مقدار آن را در متغیری به نام bearing می‌ریزد.

 

درباره نویسنده

علیرضا قربانی

علیرضا قربانی هستم دانشجوی مهندسی پزشکی. چیزهای خیلی زیادی رو در دنیا دوست دارم. یک گیک هستم و یشه گفت یک هکر. نه به معنی دزدی پسورد و ایمیل مردم. به معنی عشق به دونستن و عشق به تحقیق درباره خیلی از چیزهایی که می بینم و می‌شنوم. اگر بخوام علاقه‌مندی‌ درجه یکم رو نام ببرم میتونم بگم برنامه نویسی و بعد از اون امبدد سیستم ها.

۸ دیدگاه

دیدگاهتان را بنویسید