آموزش راه اندازی MPU9150 با آردوینو – بخش اول

مقدمه

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

مجددا تاکید می شود که جلسه مربوط به MPU6050 مطالعه شود چون این دو سنسور شباهت بسیار زیادی به یکدیگر دارند و فهم یکی از آنها به فهم کامل دیگری کمک زیادی می کند. 

در این جلسه و جلسه بعد قصد داریم مطالب زیر را پوشش دهیم : 

  • آشنایی با سنسور MPU9150 و برد آن
  • نحوه اتصال این IMU به آردوینو
  • آموزش استفاده از کتابخانه مربوط به این سنسور
  • راه اندازی و گرفتن داده ها

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

معرفی MPU9150

 

MPU9150 یک سنسور IMU با 9 محور درجه آزادی است که در این سنسور یک شتاب سنج ، یک ژیروسکوپ و یک قطب نما ( یا مغناطیس سنج ) قرار گرفته است. هر کدام از این سنسورها سه درجه آزادی دارند و در مجموع 9 درجه آزادی را ایجاد می کنند.  واحد دیگری که در این IMU وجود دارد ، یک DMP است که در مورد DMP در جلسه مربوط به MPU6050 صحبت کرده ایم و در اینجا از گفتن آن خودداری می کنیم. مشابه بقیه سنسورها ، رنج اندازه گیری را میتوان در این نوع IMU تعیین کرد. برای شتاب سنج میتوان رنج های 2g± یا 4g± یا 6g± یا 8g± و یا 16g± را انتخاب کرد. همچنین رنج اندازه گیری ژیروسکوپ میتواند 250 ± یا 500± یا 2000± درجه بر ثانیه باشد. رنج اندازه گیری مغناطیس سنج هم1200± میکروتسلا (12 گاوس) است. 

نگاهی کلی بر مشخصات MPU9150[post_shop]

 

با استفاده از I2C میتوانیم با این IMU ارتباط برقرار کنیم. البته در دیتاشیت به مقدار بسیارکم از SPI هم صحبت شده است ولی توضیحات خوب و دقیقی وجود ندارد. در اینجا هم ما از 12C استفاده خواهیم کرد. 

نکته دیگر در مورد ولتاژ این سنسور است. ولتاژ خود سنسور از 2.375 ولت تا 3.465 ولت می باشد. اما بر روی برد رگولاتوری وجود دارد که با وجود این رگولاتور میتوان ولتاژِ از 3.3 ولت تا 5 ولت را به این برد متصل نمود. در ادامه در مورد برد این سنسور بیشتر صحبت خواهیم کرد. 

از آنجا که در جلسه مربوط به MPU605 کمی از بلوک دیاگرام آن سنسور گفتیم ، اینجا هم این موضوع را در مورد این IMU مطرح می کنیم:

در جلسه مربوط به MPU6050 گفتیم که این سنسور تعداد 7 عدد ADC داخلی دارد که داده های مربوط به شتاب سنج و ژیروسکوپ و سنسور دما را به اعداد دیجیتال تبدیل می کنند. سه ADC برای شتاب سنج ، سه ADC برای ژیروسکوپ و یک ADC هم برای سنسور دما. همین تعداد ADC نیز برای سنسور MPU9150 مورد نیاز است . با این تفاوت که علاوه بر این 7 عدد ADC ما به سه عدد ADC دیگر برای قطب نما نیز نیاز داریم. پس در کل به 10 عدد ADC نیاز است. در بلوک دیاگرام زیر که مربوط به MPU9150 است این 10 عدد ADC نشان داده شده است: 

ADC های موجود در MPU9150

 

آشنایی با ماژول GY-9150

ماژول GY-9150 ماژولی است که بر روی آن سنسور MPU9150 قرار دارد. در شکل زیر تصویری از این ماژول را مشاهده میکنید:

نمایی از ماژول GY-9150

حداقل پایه های مورد نیاز برای اتصال و دریافت دیتا از این IMU ، پایه های مربوط به تغذیه و پروتکل ارتباطی هستند. در جدول زیر این پایه ها آورده شده اند:

پایه های اصلی ماژول MPU9150

البته علاوه بر پایه های بالا ، پایه های دیگری نیز بر روی برد وجود دارد که در جدول زیر این پایه ها به همراه کارکرد آن ها ذکر شده اند:

دیگر پایه های موجود در ماژول MPU9150

اگر دقت کرده باشید پایه های مربوط به ماژول MPU6050 و ماژول MPU9150 دقیقا مشابه با یکدگیر است و حتی طراحی های بردها هم کاملا مشابه است. 

در مورد سخت افزار برد هم دو نکته وجود دارد که ذکر آن در اینجا خالی از لطف نیست:

1- بر روی برد یک رگولاتور قرار گرفته است که به کمک این رگولاتور میتوان ولتاژ 3.3 تا 5 ولت را به این برد متصل نمود. 

2- دو مقاومت Pull up مورد نیاز در پروتکل I2C نیز روی این برد وجود دارند که با این وجود ، دیگر نیاز به قرار دادن مقاومت خارجی نمی باشد. تصویر مربوط به رگولاتور و مقاومت های موجود بر روی برد در زیر آورده شده است : 

رگولاتور و مقاومت Pull-up موجود در ماژول GY-9150

بررسی ایرادات موجود در دیتاشیت

متاسفانه در دیتاشیت مربوط به این سنسور کمی ایراد و اشکال وجود دارد که در اینجا بد نیست به این ایرادات هم نگاه کنیم. به عنوان مثال در بلوک دیاگرام این سنسور که در صفحه 23 آورده شده است همانطور که میبینیم ، پایه CLKOUT به عنوان یکی از پایه ها در نظر گرفته شده است. در حالی که در جدول مربوط به پایه های این سنسور که در صفحه 28 آورده شده است ، این پایه به عنوان یک پایه رزرو شده قرار گرفته است.  شکل زیر موضوع را کمی واضح تر می کند:

تناقض موجود در دیتاشیت سنسور MPU9150

در document مربوط به نقشه رجیسترها ( یا همان register map ) هم تنها توضیحی که وجود دارد این است که “از این بیت میتوان برای فعال کردن کلاک خروجی استفاده کرد.” اما این جمله تنها مرجع مربوط به این پین است و هیچ توضیح مشخص و معینی در این رابطه وجود ندارد. البته ما میتوانیم این پایه را تست کنیم و نقش دقیق آن را بررسی کنیم و مطمین شویم که آیا در خروجی خود کلاکی تولید می کند یا خیر. در زیر این پایه خروجی به اسیلوسکوپ وصل شده است و کلاک خروجی نمایش داده شده است. شاید بتوان از این کلاک برای کارهای متداول استفاده کرد ولی شاید هم این کلاک مربوط به تست های کارخانه ای باشد. این موضوع ، موضوعی است که شرکت Invensense باید به آن جواب دهد. 

کلاک خروجی پایه 22 سنسور MPU9150

موضوع دیگری که به نوعی ایراد مربوط به دیتاشیت این IMU است ، بحث پروتکل SPI است. در شکل زیر همانطور که مشاهده میکنیم ، پایه مربوط به انتخاب آدرس (یعنی AD0 ) پایه مربوط به SDO نیز می باشد. همچنین پایه مربوط به VDD ، پایه مربوط به CS یا همان Chip Select هم است. اکثر قطعاتی که با پروتکل SPI کاری میکنند و ما آنها را میشناسیم ، پایه مربوط به تغذیه آن با پایه مربوط به SPI آن یکی نیست و برای هر کدام پایه هایی جداگانه در نظر گرفته شده است. 

توضیح ناواضح دیتاشیت در مورد SPI در دیتاشیت MPU9150

[/post_shop]

همانطور که دیدید دیتاشیت مربوط به این سنسور ، کمی ایراد هم دارد.اما این ایرادات از قدرتمند بودن این سنسور چیزی کم نمی کنند.  ولی ما این موارد را نادیده میگیریم و این سنسور را با آردوینو راه اندازی میکنیم. این جلسه بیشتر جنبه مقدماتی داشت ، اما به هر حال دانستن این اطلاعات بسیار لازم بود. ما در جلسه بعد به سراغ راه اندازی و تست این سنسور می رویم. 

مثل همیشه برای دریافت اطلاعات بیشتر و همچنین مطالبی که در سایت منتشر نمی شوند ، میتوانید ما را در تلگرام و یا اینستاگرام دنبال کنید :

اشتراک گذاری:
مطالب زیر را حتما بخوانید

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