آموزش راه اندازی MPU9150 با آردوینو – بخش اول
مقدمه
با سلام خدمت همه شما دوستان گرامی. در این جلسه قصد داریم در مورد راه اندازی MPU9150 با آردوینو صحبت کنیم. این جلسه قصد داریم بیشتر با این سنسور آشنا بشیم. پیشنهاد میکنم برای فهم بهتر و دقیق این مطلب ، حتما جلسات زیر رو مطالعه کنید. چون در این جلسه از اصطلاحاتی صحبت شده است که قبلا ما آنها را توضیح داده ایم و در اینجا دیگر توضیح نخواهیم داد.
- شتاب سنج به زبان ساده
- ژیروسکوپ و اصطلاحت فنی آن
- آشنایی با ماژول MPU6050 و ویژگی های آن
- راه اندازی MPU6050 با آردوینو
مجددا تاکید می شود که جلسه مربوط به MPU6050 مطالعه شود چون این دو سنسور شباهت بسیار زیادی به یکدیگر دارند و فهم یکی از آنها به فهم کامل دیگری کمک زیادی می کند.
در این جلسه و جلسه بعد قصد داریم مطالب زیر را پوشش دهیم :
- آشنایی با سنسور MPU9150 و برد آن
- نحوه اتصال این IMU به آردوینو
- آموزش استفاده از کتابخانه مربوط به این سنسور
- راه اندازی و گرفتن داده ها
معرفی MPU9150
MPU9150 یک سنسور IMU با 9 محور درجه آزادی است که در این سنسور یک شتاب سنج ، یک ژیروسکوپ و یک قطب نما ( یا مغناطیس سنج ) قرار گرفته است. هر کدام از این سنسورها سه درجه آزادی دارند و در مجموع 9 درجه آزادی را ایجاد می کنند. واحد دیگری که در این IMU وجود دارد ، یک DMP است که در مورد DMP در جلسه مربوط به MPU6050 صحبت کرده ایم و در اینجا از گفتن آن خودداری می کنیم. مشابه بقیه سنسورها ، رنج اندازه گیری را میتوان در این نوع IMU تعیین کرد. برای شتاب سنج میتوان رنج های 2g± یا 4g± یا 6g± یا 8g± و یا 16g± را انتخاب کرد. همچنین رنج اندازه گیری ژیروسکوپ میتواند 250 ± یا 500± یا 2000± درجه بر ثانیه باشد. رنج اندازه گیری مغناطیس سنج هم1200± میکروتسلا (12 گاوس) است.
[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 نشان داده شده است:
آشنایی با ماژول GY-9150
ماژول GY-9150 ماژولی است که بر روی آن سنسور MPU9150 قرار دارد. در شکل زیر تصویری از این ماژول را مشاهده میکنید:
حداقل پایه های مورد نیاز برای اتصال و دریافت دیتا از این IMU ، پایه های مربوط به تغذیه و پروتکل ارتباطی هستند. در جدول زیر این پایه ها آورده شده اند:
البته علاوه بر پایه های بالا ، پایه های دیگری نیز بر روی برد وجود دارد که در جدول زیر این پایه ها به همراه کارکرد آن ها ذکر شده اند:
اگر دقت کرده باشید پایه های مربوط به ماژول MPU6050 و ماژول MPU9150 دقیقا مشابه با یکدگیر است و حتی طراحی های بردها هم کاملا مشابه است.
در مورد سخت افزار برد هم دو نکته وجود دارد که ذکر آن در اینجا خالی از لطف نیست:
1- بر روی برد یک رگولاتور قرار گرفته است که به کمک این رگولاتور میتوان ولتاژ 3.3 تا 5 ولت را به این برد متصل نمود.
2- دو مقاومت Pull up مورد نیاز در پروتکل I2C نیز روی این برد وجود دارند که با این وجود ، دیگر نیاز به قرار دادن مقاومت خارجی نمی باشد. تصویر مربوط به رگولاتور و مقاومت های موجود بر روی برد در زیر آورده شده است :
بررسی ایرادات موجود در دیتاشیت
متاسفانه در دیتاشیت مربوط به این سنسور کمی ایراد و اشکال وجود دارد که در اینجا بد نیست به این ایرادات هم نگاه کنیم. به عنوان مثال در بلوک دیاگرام این سنسور که در صفحه 23 آورده شده است همانطور که میبینیم ، پایه CLKOUT به عنوان یکی از پایه ها در نظر گرفته شده است. در حالی که در جدول مربوط به پایه های این سنسور که در صفحه 28 آورده شده است ، این پایه به عنوان یک پایه رزرو شده قرار گرفته است. شکل زیر موضوع را کمی واضح تر می کند:
در document مربوط به نقشه رجیسترها ( یا همان register map ) هم تنها توضیحی که وجود دارد این است که “از این بیت میتوان برای فعال کردن کلاک خروجی استفاده کرد.” اما این جمله تنها مرجع مربوط به این پین است و هیچ توضیح مشخص و معینی در این رابطه وجود ندارد. البته ما میتوانیم این پایه را تست کنیم و نقش دقیق آن را بررسی کنیم و مطمین شویم که آیا در خروجی خود کلاکی تولید می کند یا خیر. در زیر این پایه خروجی به اسیلوسکوپ وصل شده است و کلاک خروجی نمایش داده شده است. شاید بتوان از این کلاک برای کارهای متداول استفاده کرد ولی شاید هم این کلاک مربوط به تست های کارخانه ای باشد. این موضوع ، موضوعی است که شرکت Invensense باید به آن جواب دهد.
موضوع دیگری که به نوعی ایراد مربوط به دیتاشیت این IMU است ، بحث پروتکل SPI است. در شکل زیر همانطور که مشاهده میکنیم ، پایه مربوط به انتخاب آدرس (یعنی AD0 ) پایه مربوط به SDO نیز می باشد. همچنین پایه مربوط به VDD ، پایه مربوط به CS یا همان Chip Select هم است. اکثر قطعاتی که با پروتکل SPI کاری میکنند و ما آنها را میشناسیم ، پایه مربوط به تغذیه آن با پایه مربوط به SPI آن یکی نیست و برای هر کدام پایه هایی جداگانه در نظر گرفته شده است.
[/post_shop]همانطور که دیدید دیتاشیت مربوط به این سنسور ، کمی ایراد هم دارد.اما این ایرادات از قدرتمند بودن این سنسور چیزی کم نمی کنند. ولی ما این موارد را نادیده میگیریم و این سنسور را با آردوینو راه اندازی میکنیم. این جلسه بیشتر جنبه مقدماتی داشت ، اما به هر حال دانستن این اطلاعات بسیار لازم بود. ما در جلسه بعد به سراغ راه اندازی و تست این سنسور می رویم.
مثل همیشه برای دریافت اطلاعات بیشتر و همچنین مطالبی که در سایت منتشر نمی شوند ، میتوانید ما را در تلگرام و یا اینستاگرام دنبال کنید :
دیدگاهتان را بنویسید