خوب ادامه ی مطلب ...
سنسور MPU6050 :
این سنسور یک پکیج هست که داخل خودش سه بخش اساسی داره !
1- سنسور شتاب سنج 3 محوره ی دجیتال 16 بیتی با قابلیت اندازه گیری رنج ها ی
2g، ±4g، ±8g، ±16g±
2- سنسور ژیروسکوپ دجیتال 3 محوره 16 بیتی با قابلیت اندازه گیری رنج های
250±، 500±، 1000± و 2000± درجه بر ثانیه
3-واحد پردازند ی DMP که کار ترکیب و پردازش اطلاعات سنسور ها رو واسه ی کاربر انجام میده .
خوب . راه اندازی دو قسمت اول که کاری نداره و برای اون هم دیتاشیت کامل وجود داره و هم مثال های مختلف . لینک زیر فیلم و کتابخونه ی راه اندازی این دو بخش و دریافت داد ها ی خام رو انجام داده (با کدویژن) (این لینک فقط جنبه ی آموزشی داره و امیدوارم تبلیغ تلقی نشه):
http://blog.eca.ir/?p=299
اما اصل ماجرا تازه از اینجا شروع میشه و اون هم ترکیب این داده هاست . برای این کار یه راه اینه که کار ترکیب داده ها رو داخل میکرو انجام بدیم. یعنی پیاده سازی الگوریتم های دیتا فیوژن و فیلتر های دجیتال . برای این کار یکی از کتاب خونه های مطرح FreeIMU هست که برای Arduino نوشته شده و از فیلتر Mahony استفاده میکنه که جزئیات تئوریش رو می تونید از لینک زیر بخونید :
http://www.di.unito.it/~varesano/pub...palla_2011.pdf
همچنین کتابخونه ی FeeIMU رو میتونید از لینک زیر دانلود کنید:
http://www.varesano.net/projects/hardware/FreeIMU
آلگوریتم ها و فیلتر های دیگه ای هم وجود داره مثل : kavlman filter , compelementry filter و ...که میشه با یه سرچ کوچیک کلی اطلاعات در مورد اونا به دست اورد.
و اما راه دوم و راه انتخاب شده برای ساخت IMU در این پست : استفاده از DMP داخلی خود سنسور :
همون طور که گفتم سنسور MPU6050 و خیلی دیگه از سنسور های شرکت Ivansense (سازنده ی سنسور مورد بررسی) داخل خودشون یک واحد پردازشگر برای انجام دیتافیوژن دارند .
ولی یک مشکل وجود داره و اون اینه که جزئیات اون رو در اختیار عموم قرار ندادند و خیلی مبهم در این باره برخورد کردن (حد اقل برای من من مبهم بودن) . برای همین یه نفر توی یکی از سایت ها ی خارجی از طریق مهندسی معکوس firmware ی که روی سنسور ریخته میشه تا پردازنده ی DMP کانفیگ بشه در آورده و اون اون رو در دل یک کتابخونه ی کامل به اسم i2cdevlib-master جا داده (این کتاخونه شامل درایور برای سنسورها ی رایج مبتنی بر I2C هست) . این کتابخونه رو به همراه مثالش می تونید از یکی از دو لینک زیر دانلود کنید :
https://github.com/jrowberg/i2cdevli...rduino/MPU6050
i2cdevlib-master.zip
این کتابخونه برای کامپایلر Arduino نوشته شده که می تونید این کامپایلر رو هم از لینک زیر دانلود کنید:
http://arduino.ir/Software
استفاده از این متود برای راه اندازی IMU این مزیت رو داره که بار پردازشی سنگینی رو میکرو تحمیل نمیشه و پیچیدگی کد هم به مراتب کمتر میشه . همچنین ویژگی بارز دیگه ی پردازنده ی داخلی سنسور اینه که اتوماتیک کالیبره رو انجام میده.
در پست بعد نحوه ی اجرای کتابخونه رو توضیح خواهم داد ...
پس فعلا ...