آموزش و راه اندازی محصولاتتوسعه دانش

معرفی،راه اندازی و تست سنسورMPU6050 +کتابخانه+فیلم

ویرایش دوم این مطلب در تاریخ اسفند 1397 با کلی تغییرات و بهینه سازی ها صورت پذیرفت!

این بار با کلیپی حرفه ای و البته کاربردی در خدمتتون هستیم!

 

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

[maxbutton id=”1″ url=”http://dl.roboticngo.com/uploads/TF-4MPU-WUs-RoboticNGO-com-.rar” text=”دانلود رایگان فایل کتابخانه + پروژه راه اندازی شده در فیلم” ]

[maxbutton id=”1″ url=”http://dl.roboticngo.com/uploads/MPU6050-Datasheet-RoboticNGO-com-.rar” text=”دانلود رایگان دیتاشیت های سنسور MPU6050″ ]

 

ناگفته نماند این مطلب علمی در سال 1392 به همراه مقاله ی سیستم سنجش موقعیت برپایه اینرسی (IMU 6-DOF) تدوین گشته است و اکنون یعنی اسفند 96 قصد داریم آپدیت ها و بهینه سازی هایی که تاکنون منتشر نشده است را در اختیار شما قرار دهیم، به سبب این تغییرات دانش فنی بسیار متفاوت تر از نسخه قبلی را خواهید داشت:

دانش فنی:

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

محتویات این بسته:

  • فایل پاورپونت ارائه شده در فیلم
  • نسخه PDF مقاله ی سیستم سنجش موقعیت برپایه اینرسی (IMU 6-DOF)
  • فایل پروژه کدویژن، حاوی نمونه کد و چندین کتابخانه
  • کتابخانه کاربردی و حرفه ای I2C
  • فایل هدر شامل رجیستر مپ و پارامترهای MPU6050
  • کتابخانه فیلر ترکیب داده MadgwickAHRS
  • فایل نمایش گرافیکی زوایای اویلر در متلب
  • فایل مدارچاپی اشاره شده در مقاله
  • تصاویر و کلیپ های مرتبط

 

تمامی محصولات نرم افزاری سایت شامل خدمات پشتیبانی میباشند و در صورتی که آپدیت ارائه شود، به صورت رایگان برای خریداران قبلی نیز ارسال میشود. در صورت وجود هرگونه مشکل در سورس میتوانید از بخش “نظرات” و یا “تماس با ما” با ما در ارتباط باشید.

سوالی داشتید، در قسمت نظرات بپرسید، کارشناسان فنی پژوهشگران در اسرع وقت پاسخگو خواهد بود.

با تشکر S_Ahmad

لوازم مورد نیاز این پروژه

    ماژول شتاب سنج و جایروسکوپ سه محوره GY-521 - MPU6050
    ماژول IMU ده محوره GY-87

سید احمد موسوی

همواره يادمان باشد: مردان بزرگ اراده مي‌کنند و مردان کوچک آرزو، لذا افراد بزرگ، هميشه به دنبال ايده‌هاي بزرگند و افراد کوچک به دنبال افراد بزرگ؛ پس همواره آنقدر کامل باش که بزرگترين تنبيه تو براي ديگران گرفتن خودت از آنها باشد.

نوشته های مشابه

‫43 دیدگاه ها

  1. با سلام و احترام

    در خصوص راه اندازی سنسور و نمایش عملکرد برروی متلب ویدئویی تحت این عنوان مرتبط با 6 سال پیش در آپارات قرار داشت لذا خواهشمندم فایل راه اندازی سنسور که با متلب انجام شده است را برای اینجانب پیگیری نمایید.
    لینک ویدئو
    https://www.aparat.com/v/7jAEH/%28MPU6050_%28IMU_6DOF
    سپاس فراوان

  2. سلام

    من برای پروژه م که کوادکوپتر هست نیاز به کتابخونه mpu6050 دارم اما موضوع تاخیر خیلی کم و پاسخ دهی سریع در ارتباط با این ماژول برای کوادکوپتر خیلی مهمه من از کتابخونه رایگان شما استفاده کردم اما دیلی به شدت زیادی داره می خواستم ببینم کتابخونه آپدیت شده ورژن 2.1 از این نظر اوکی هست یا خیر ؟

    1. سلام. کد و کتابخانه این سنسور تغییرات بسیار وسیعی در این سالها داشته است که تازه ما بخشی از آنها را به صورت غیر رایگان ارائه داده ایم!
      تقریباً میشه گفت همه توابع قبلی به روز شده اند.
      به نظرم ارزش خریدش رو داره، ناراضی بودید سفارشتون رو لغو می کنیم و مبلغ رو برمی گردونیم!

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

  4. 1- نیاز اصلی من درواقع به دست آوردن موقعیت(زاویه) در صفحه افقی است.
    در کتابخانه هایی که شما در سایت برای ماژول های فوق قرار داده اید، فقط تغیرات زاویه در صفحه xz و yz رو نشون میده و تغیرات زاویه در صفحه افقی (مثلا روی سطح میز) رو نشون نمیده.
    میخواستم بدونم من اگر تغیرات زاویه در صفحه xy رو خواسته باشم ، چیکار باید بکنم؟

    2- شتابی که در این کد محاسبه شده در واقع شتاب استاتیک هست که مربوط به جاذبه میشه.
    من شتاب دینامیک و حرکتی رو برای محاسبه جابجایی نیاز دارم. امکان اندازه گیری توسط این ماژول هست؟

  5. سلام خسته نباشید،ممنون از کتابخونه و اموزشتون!
    لطفا اینم اضافه کنید که دوستان حتما با مشکل مواجه نشن
    project>configure>C compiler >sprintf feature:float,width,precision
    ستون سمت چپ پایین،یکی مونده به اخر گزینه float رو بزنند

  6. با سلام و خسته نباشید ، من دقیقا این مشکل جناب سعید رو دارم روی هایپر ترمینال هیچ چیزی نمایش داده نمی شود مشکل در چیست خواهشا راهنمایی کنید ممنون از زحمات بی کران شما

  7. با عرض سلام و ممنون از سایت خوبتون
    یه سوال داشتم اینکه من از این کتابخونه mpu استفاده میکنم و وقتی تابعی رو فراخونی میکنم ارور >>
    function ‘Get_Accel_Angles’ declared, but never defined
    رو میده ممنون میشم اگر راهنمایی کنید

  8. سلام مهندس احمد عزیز. امیدوارم اجر زحماتی رو که میکشی رو خداوند در دنیا و آخرت بهتون بده. من یه سوال داشتم ازتون: آقای مهندس از این ماژول میشه تو پروژه های نظامی هم استفاده کرد. منظورم اینه مثلا میشه در حد 0.02درجه دقت یا رزولوشن داشته باشن؟ اگر جوابتون منفیه لطف میکنید ماژول مناسب رو معرفی کنید.
    سپاسگزارم.

    1. سلام.ممنون. فکر کنم شما با بنده تماس گرفتید و صحبت کردیم.

      خلاصه بله سنسور کلاً نظامی هست و داری دقت بسیار بالایی می باشد.
      بله دستیابی به این دقت ممکن است.
      از Mpu6050 بهتر مدل جدیدتر خودش یعنی MPU9250 هست

  9. سلام وقت بخیر راجع به این دو تابع یه توضیحی میدین ؟؟؟ میخوام بدونم چه جوری زاویه رو بر حسب شتاب حساب میکنه؟؟
    // If you want be averaged of accelerometer data, write (on),else write (off)
    #define GetAvrg on

    #if GetAvrg == on
    Get_AvrgAccel_Val();
    // Calculate The Angle Of Each Axis
    Accel_Angle[X] = 57.295*atan((float) AvrgAccel_Raw_Val[X] / sqrt(pow((float)AvrgAccel_Raw_Val[Z],2)+pow((float)AvrgAccel_Raw_Val[Y],2)));
    Accel_Angle[Y] = 57.295*atan((float) AvrgAccel_Raw_Val[Y] / sqrt(pow((float)AvrgAccel_Raw_Val[Z],2)+pow((float)AvrgAccel_Raw_Val[X],2)));
    Accel_Angle[Z] = 57.295*atan((float) sqrt(pow((float)AvrgAccel_Raw_Val[X],2)+pow((float)AvrgAccel_Raw_Val[Y],2))/ AvrgAccel_Raw_Val[Z] );
    #else
    Get_Accel_Val();
    // Calculate The Angle Of Each Axis
    Accel_Angle[X] = 57.295*atan((float) Accel_Raw_Val[X] / sqrt(pow((float)Accel_Raw_Val[Z],2)+pow((float)Accel_Raw_Val[Y],2)));
    Accel_Angle[Y] = 57.295*atan((float) Accel_Raw_Val[Y] / sqrt(pow((float)Accel_Raw_Val[Z],2)+pow((float)Accel_Raw_Val[X],2)));
    Accel_Angle[Z] = 57.295*atan((float) sqrt(pow((float)Accel_Raw_Val[X],2)+pow((float)Accel_Raw_Val[Y],2))/ Accel_Raw_Val[Z] );
    #endif

    1. منظورم این بود که به صورت پاسخ خصوصی در فروم جواب داده شد!

      ماشاالله این قدر ساعی هستید که در هر فروم و سایتی که من هستم پیغام دادید!

      پیرو آخرین پیغام شما در همان فروم پاسخ داده شد!

  10. سلام سید جان
    من میخوام سنسور MPU6000 رو با همین روش راه اندازی کنم البته با پرتوکل SPI
    این کتابخانه ای که شما تدارک دید بسیار عالی هستش اما همه I2C تعریف شده اگه بخوام با SPI کار کنم باید چه تغییراتی اعمال کنم؟؟؟
    خیلی ممنون میشم اگه کمکم کنید بد جور گیر کردم
    یه دنیا ممنون 🙂

  11. سلام من این کدو دقیقا کپی کردم و پروگرام کردم با همون تنظیمات اما هر کار میکنم دیتایی تو هایپرترمینال نشون نمیده تنظیمات هایپر هم هیچ مشکلی نداره لطفا کمک کنین خیلی کارم گیره ممنون

  12. با سلام و سپاس ..
    درود بر شما و زحمت بی دریغتون برای اینهمه مطلب مفید وبی نظیر..
    یه دونه هم خیلی خیلی مایله اگ بتونه با تبادل لینک کمک شایانی در بهبود کیفی و کمی آموزش سهیم باشه..
    فقط کافیه یه ندا بهم بدید تا آدرس قشنگ و مفیدتونا بلینکم.
    قول میدم خالی از لطف نباشه فقط یه نگاه کوچیک کافیه.
    التماس دعا..
    یا علی مدد…..

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

دکمه بازگشت به بالا