زمان کنونی: 12-09-2019, 03:47 PM
درود مهمان گرامی! (ورودثبت نام)



New Reply 
 
[پروژه] IMU شش درجه آزادی با MPU6050
07-16-2016, 06:59 PM (آخرین ویرایش در این ارسال: 07-16-2016 07:55 PM، توسط salehjg.)
ارسال: #1
[پروژه] IMU شش درجه آزادی با MPU6050
درود و وقت بخیر

پروژه ای که در ادامه به اشتراک گذاشته شده، پروژه IMU-6DOF با سنسور MPU6050 هست که روی بورد زدکراس پیاده سازی شده.
برای راه اندازی سنسور و قسمت های مختلف پروژه از کتابخانه های تست شده پلتفرم EMCU استفاده کردم و همین موضوع باعث افزایش ، سادگی و خوانایی کدها شده.

در صورتی که کدهای پروژه رو مرور کنید خواهید دید که برای راه اندازی سنسوری که با i2c باید باهاش در ارتباط باشیم، لازم نیست با رجیستر های واحد i2c خود LPC1768 درگیر بشیم، کافیه که به کمک document های مربوط به i2c با سنسور دلخواه مون ارتباط برقرار کنیم.

خلاصه ای از پروژه:
از لحاظ سخت افزاری، اتصالات موردنیاز در شکل زیر مشخصه:
   

از لحاظ نرم افزاری، اطلاعات شتاب و ستاب زاویه ای از سنسور هر 100ms دریافت و به کلاس imu تحویل داده میشه.
کلاس imu برپایه الگوریتم Madgwick توسعه یافته.
خروجی نهایی به فرمت زوایای اویلر هست که از پورت serial1 یعنی پایه های p21 و p22 دردسترسه.
دلیل استفاده از پورت serial1 بجای usb_cdc، کاربردی کردن این پروژه برای اهداف رباتیک هست تا راحت تر بشه با ماژول هایی مثل ماژول بلوتوث اطلاعات رو بصورت بیسیم به مقصد منتقل کرد.

برای استفاده از سورس کدها، لازمه :
1)محتوای فولدر module_libraries که در repository هست رو به فولدر مشابه در مسیر نرم افزار EMCU کپی کنید.
2)توسط نرم افزار EMCU ، یک پروژه جدید ایجاد کنید.
3)فایل های main.cpp, config.h, modules_lib.h را از repository به مسیر پروژه جدید ایجاد شده کپی و جایگزین کنید.(replace کنید)
4)پروژه رو buildکنید
5)و آخرین مرحله هم پروگرم کردن بورد zcross توسط نرم افزار EMCU هست.



لینک پروژه در گیت هاب:
https://github.com/salehjg/IMU6_MPU6050


*کپی رایت مربوط به هرفایل سطرهای نخستین همون فایل درج شده.
Quote
07-22-2016, 05:31 PM
ارسال: #2
RE: [پروژه] IMU شش درجه آزادی با MPU6050
سلام
تست شد و خیلی عالی و راحت جواب داد، سپاس بابت توسعه ی کتابخانه.
دوستانی که قصد دارند از واحد USB به جای Serial در این پروژه استفاده کنند کافیه 2 خط ذیل در برنامه main.cpp رو ...


کد php:
#define TRACE(x)        serial1.print(x);
#define TRACEln(x)    serial1.println(x); 

به صورت ذیل تغییر دهند ...

کد php:
#define TRACE(x)        cdc.print(x);
#define TRACEln(x)    cdc.println(x); 

همینطور خط ذیل رو با گذاشتن // کامنت کنند.

کد php:
//    cdc.init(115200,8,0,1); 

جهت استفاده از واحد USB، طبیعیه که واحد USB باید در نرم افزار EasyMCU فعال شود.

سپاس از salehjg بایت توسعه دادن کتابخانه MPU6050
با آرزوی موفقیت

[تصویر:  telegram_icon.png] کانال رسمی EasyMCU در تلگرام
.
.
Quote
01-15-2019, 03:37 AM
ارسال: #3
RE: [پروژه] IMU شش درجه آزادی با MPU6050
با سلام و تشکر از مطالب با ارزشتون

سوالی داشتم
من می خوام یک صفحه را نسبت به یه جهت خواص مثلا افق ثابت نگه دارم. می تونم از ماژول MPU6050 و آردوینو برای این کار استفاده کنم؟ چجوری؟
فکر می کنم باید از یه استپر موتور برای تغییر زوایا استفاده کنم تا با فیدبک گرفتن از MPU6050 زاویه را نسبت به حالت اولیه ثابت نگه داره

تجربه من از اردوینو در حد سوئیچ کردن پایه های اردوینو هست و اگه کسی میتونه زیر دیپلم برام توضیح بده مشکر میشم
با تشکر فراوان
Quote
01-16-2019, 02:47 PM
ارسال: #4
RE: [پروژه] IMU شش درجه آزادی با MPU6050
سلام دوست گرامی

جدا از بحث آردوینو و EasyMcu شما قصد تعریف پروژه ای در زمینه ی IMU دارید که می تونه تبدیل به یک مسئله ی تخصصی کنترلی بشه.

پیشنهاد می کنم ابتدا ساز و کار بخش مکانیکی رو مشخص بفرمایید و مشخص کنید که سطحی که ازش یاد کردید قراره در چه محورهایی به چه فرم هایی قابلیت چرخش داشته باشه؟
آیا نیاز پروژه شما چرخش حول یک محور هست یا نه نیاز به 2 محور و یا شاید نیاز به 3 محور داره؟
چه سرعت پاسخ گویی نیاز هست و سیستم فیدبک گیری شما چی هست؟

اگر حرکات سطح آرام و نرم است داستان بسیار راحت می شود. اما برای مثال در پروژه هایی مثل عمود پروازها لرزش های مکانیکی حاصل شده از موتورها یک نویز شدید مکانیکی به واحد IMU وارد می کند و کار اندازه گیری را قدری دشوار می کند.

اگر نیاز به پاسخ گویی اصولی هست نیاز به کنترلرهایی از قبیل PID خواهید داشت که پیاده سازی و تنظیم ضرایب آن هم داستان های مربوط به خودش را دارد.

در کل همه چیز به نیاز های پروژه بستگی دارد.

با آرزوی موفقیت



[تصویر:  telegram_icon.png] کانال رسمی EasyMCU در تلگرام
.
.
Quote
New Reply 


پرش به انجمن:

تماس با ما | EasyMCU | بایگانی | پیوند سایتی RSS
بازگشت به بالا
Persian Translation by MyBBIran.com - Ver: 4.6
Powered by MyBB, © 2002-2019 MyBB Group.
Designed by Escalate Internet. Icons by dAKirby309.

ورود
نام کاربری:
گذرواژه‌:



Lost your password?