ماژول قطب نمای CMPS10
این ماژول دارای دو سنسور میدان مغناطیسی و زاویه سنج می باشد که سنسور میدان مغناطیسی آن یک سنسور3 محوره است و سنسور زاویه سنج آن دارای سه محور می باشد.
سه محور نمایشی که هر سه بر هم عمودند و به عنوان زوایای یک سنسور می تواند در نظر گرفته شود
زاویه سنج اجازه می دهد تا زاویه قطب ها را در صورت کجی ماژول نیز با دقت بالا محاسبه کنیم. این سنسور با ولتاژ 3.3 تا 5 ولت کار می کند. ماژول CMPS10اطلاعات خود را به سه روش به خروجی ارسال می کند. 1) 12C 2) Serial 3) PWM به شکل زیر توجه فرمایید.
چگونگی اتصال پایه ماژول در مدهای مختلف
برای استفاده کردن ماژول CMPS10 در هر یک از مدهای بالا باید پایه های mode وselect را به ترتیب نشان داده شده مورد استفاده قرار داده شود. ماژول بافر خروجی خود را هر640 میلی ثانیه، جایگزین می کند یعنی ما می توانیم اطلاعات را در هر640 میلی ثانیه دریافت کنیم [3،7،16]. در این پروژه برای راه اندازی این ماژول از مد 12C استفاده شده است. برای استخراج اطلاعات نیاز به دانستن نوع اطلاعاتی می باشد که در هر رجیستر ذخیره می گردد. به همین منظور به دیتاشیت ماژول مراجعه شده است و در جدول زیرنوع اطلاعات هر رجیستر آورده شده است.
نوع اطلاعات ذخیره شده ی هر یک از رجیسترها cmps10
همانطور که ملاحظه می کنید رجیسترهای 2 و 3 مشخص کننده جهت قطب است که از دو بایت تشکیل شده اند. رجیستر های 4 و 5 هر کدام مشخص کننده زاویه ماژول با سطح زمین میباشند که این عدد بین 0 تا 85 درجه می باشد. رجیستر 4 میزان زاویه "پیتچ"[1] و رجیستر 5 میزان زاویه "رول"[2] ، ماژول را مشخص میکند. [1] PITCH [2] ROLL
مفهوم سه زاویه roll , pitch , yaw بر روی یک هواپیمای فرضی
می توان داده های خام هر یک از سه محور میدان مغناطیسی و شتاب را نیز از رجیسترهای جدول3-11 استخراج نمود. این داده ها را میتوان برای انجام کارهای مختلف مثل سنجش زاویه 3محور، سنجش شتاب در هنگام حرکت ماژول، اندازه گیری میدان های مغناطیسی موجود در اطراف ماژول، اندازه گیری جهت و میزان شدت میدان های مغناطیسی بکار برد. برای انکه مقدار مورد نظر را از رجیستر های ماژول قطب نما استخراج کنیم، از پروتکل ارتباطی I2C استفاده شده است. که این روش برای خواندن رجیستر از E2PROM نیز استفاده میشود[31،8]. این روش به این صورت است که اول رجیستر مورد نظر را فراخوانی کرده و بعد از آن مقدار درون رجیستر را می خوانیم و در یک ثبات قرار می دهیم. برنامه میکروکنترلر برای ارتباط با ماژول قطب نما به فرم زیر می باشد. در این برنامه مقدار زاویه قطب و سپس زاویه های تمایلی ماژول استخراج شده و برروی صفحه نمایش داده می شود.
برنامه میکروکنترلر متصل به ماژول قطب نما
دستورات خط 1 تا 13 برای استخراج رجیسترهای 2 تا 4 می باشد و مقدار هر یک از رجیستر ها را ذخیره کرده و بعد از آنها استفاده خواهیم نمود. هر رجیستر یک بایت است و می توان عددی بین 0 تا 255 داشته باشد. دو رجیستر 2 و3 برای عدد قطب نما اختصاص داده شده است و بایکدیگر عددی بین 0 تا 3599 را تشکیل میدهند. همانطور که در دیتاشیت ماژول آمده است اگر عددی را که دو رجیستر 2 و 3 می سازند را بر 10 تقسیم کنیم به ما زاویه قطب را نمایش خواهد داد. دستورات خط 15 و 17 به همین منظور نوشته شده است. قبل از توضیح در مورد دستورات خط 19 تا 27 باید در مورد رجیستر های 4 و 5 توضیحاتی داده شود. رجیستر های 4 و یا 5 شامل عددی بین 0 تا 85 می باشند که دارای مقدار منفی یا مثبت است. برای اینکه مشخص شود عدد داخل این رجیستر مثبت است و یا منفی باید بیت هفتم از این رجیستر را مورد بررسی قرار داد. به این صورت که اگر بیت هفتم یک باشد مقدار عدد رجیستر منفی و اگر صفر باشد مقدار رجیستر مثبت است. اگر مقدار عدد منفی باشد عدد ثبت شده در داخل رجیستر باید معکوس شود. یعنی تمام بیت های 0 تا 6 باید معکوس شوند و با صفر کردن بیت 7 نیز عدد حاصله همان زاویه ما با مقدار منفی بدست خواهد آمد. در صورتی که عدد رجیسترها مثبت باشد ( یعنی بیت هفتم ما صفر باشد) نیاز به معکوس کردن عدد نخواهد بود و عدد موجود در داخل رجیسترها، عدد زاویه می باشد. دستورات 19 تا 27 و دستورات 30 تا 38 برای همین کار می باشد و مقدار زوایای ماژول را می توان از آن استخراج کرد و برروی صفحه نمایشگر، نمایش داد. برای نمایش مقادیر بدست آمده از دستورات 41 تا 49 استفاده میکنیم. لازم به تذکر است که این ماژول به میدان مغناطیسی اطراف خود بسیار حساس است بنابراین باید از قطعاتی که دارای میدان مغناطیسی می باشند دور شود. حتی باید از سیم های حامل جریان نیز دور گردد [24،63]. این ماژول قابلیت کالیبرشدن را نیز دارد که در دیتاشیت ماژول توضیح داده شده است. تا اینجا توانستیم ماژول قطب نما را درایور کنیم بنابراین جهت قطب را با این ماژول می توانیم تشخیص دهیم.