آیا قصد دارید یک ربات تعادلی دو چرخ یا self-balancing یا هواپیمای کنترل از راه دور ( drone ) مثلا کوادروتوری با قابلیت auto-level یا self-level (یعنی کوادروتور بتونه بصورت اتوماتیک خودش رو بصورت موازی افق در بیاره) بسازید؟ در این پروژه آموزش کامل کار با سنسور شتابسنج و ژیروسکوپ MPU6050 را بیان میکنیم تا قاد به پیاده سازی این دست از پروژه ها باشید و بتوانید از این سنسور در پروژه های مختلف استفاده کنید.
کار با سنسور شتابسنج و ژیروسکوپ MPU6050
اندازه گیری زاویه ی شیب ربات(tilt angle) همیشه برای سازندگان آن یک چالش بزرگ بوده است. دقت زاویه ی شیب محاسبه شده برای برخی کاربردها نظیر رباتهای متعادل و مولتی روتورها بی نهایت مهم است. این دست از رباتها به سنسورهایی از قبیل شتابسنج، ژیروسکوپ و در کل یک IMU نیاز دارند. این المانهای MEMS کوچک و سبک، داخل ربات تعبیه می شوند تا اطلاعاتی در خصوص پدیده های مکانیکی مختلفی از قبیل شتاب، ویبره، شیب، موقعیت یا جهت در فضا، سرعت زاویه ای و چرخش را جهت پردازش و تولید دستورات لازم جهت کنترل ربات تولید کنند.
در اینجا قصد داریم بطور کامل و جامع نحوه ی کار با IMU ها و روش دریافت دیتا از آنها و اعمال فیلتر روی داده های سنسورهایشان و در کل روش راه اندازی mpu6050 را آموزش بدهیم.IMUها کاربردهای بسیار گسترده ای دارند. IMU ی انتخابی ما MPU6050 می باشد. دلیل این انتخاب قیمت پایین و ویژگیهای جالب این IMU است . ولی آموزش طوری بیان شده که بتوان دیگر IMU ها را نیز راه اندازی کرد و با دیتاشیت آنها کار کرد و نیز بتوان فیلترهای آموزش داده شده را روی دیگر IMUها اعمال کرد.
مطالبی که در آموزش راه اندازی MPU6050 پوشش داده شده اند
- معرفی کامل MPU6050 و بررسی ویژگیها و قابلیتهای آن
- آموزش کار با دیتاشیت سنسورها
- آموزش کار با واحد DMP سنسور MPU6050
- ترجمه ی فارسی بخشهای موردنیاز و ضروری دیتاشیت
- آموزش اصطلاحات کاربردی مورد نیاز
- آموزش data fusion یا sensor fusion
- آموزش فیلترینگ داده ها و بیان دلایل استفاده از فیلتر
- آموزش فیلتر complementary یا فیلتر مکمل و بیان اصول و روابط آن
- پیاده سازی فیلتر complementary توسط کد
- اعمال فیلتر complementary روی داده های شتابسنج و ژیروسکوپ جهت دستیابی به زوایایی دقیق و قابل اعتماد
- اعمال فیلتر کالمن(Kalman filter) روی داده های سنسورها و انجام عمل sensor fusion برای محاسبه ی زوایا
- بیان معایب هر یک از سنسورهای شتابسنج و ژیروسکوپ بصورت کاملا عملی و مشهود و قابل درک
- ارائه ی روشهایی برای از بین بردن نقاط ضعف سنسورها
- بیان محاسن هر یک از سنسورها بصورت عملی و مشهود
- روش گرفتن دیتای خام از سنسورهای شتابسنج و ژیروسکوپ MPU6050 بدون استفاده از کتابخانه
- آموزش تعریف توابعی از قبیل تابع کانفیگ ماژول و تابع دریافت دیتا جهت ساده تر کردن و خواناتر کردن کدها
- آموزش کالیبره کردن سنسورهای ماژول MPU6050 بدون استفاده از کتابخانه به روش تعریف تابع کالیبراسیون
- روش محاسبه ی شتاب بر حسب g
- روش محاسبه ی سرعت زاویه ای بر حسب dps
- روش محاسبه ی زوایای سنسور در فضا با استفاده از شتابسنج بصورت مستقیم و بدون استفاده از کتابخانه
- روش محاسبه ی مقدار جابجایی زاویه ای با استفاده از ژیروسکوپ بصورت مستقیم و بدون استفاده از کتابخانه
- روش دریافت دیتای خام سنسورها با استفاده از کتابخانه
- روش کالیبره کردن سنسور با استفاده از کتابخانه
- روش محاسبه ی زوایای سنسور در فضا با استفاده از داده های شتابسنج توسط کتابخانه
- روش محاسبه ی مقدار جابجایی زاویه ای با استفاده از داده های ژیروسکوپ با استفاده از کتابخانه
- روش اندازه گیری دما توسط سنسور دمای داخلی MPU6050
فایلهای ارائه شده همراه پروژه راه اندازی mpu6050
- فیلم آموزشی(بیان مفاهیم و نکات لازم و ضروری)
- فایل PDFی که شامل آموزش تمامی موارد بالا می باشد(42 صفحه).
- توضیح خط به خط برنامه های استفاده شده
- سورس کد تمامی برنامه ها(16 مثال)
- تمامی کتابخانه های لازم و آموزش نصب آنها
- دیتاشیت سنسور و ریجستر مپ سنسور
بخشی از فیلم آموزش کامل کار با MPU6050