سلام به همراهان همیشگی داناساز
امیدوارم حالتون عالی باشه ^.^
درس امروز آشنایی با یک ماژول خیلی کاربردی و جذاب هست.
با ما همراه باشید تا قدم به قدم این ماژول رو راه بندازیم.
ژیروسکوپ (Gyroscope)
ژیروسکوپ دستگاهی است که به وسیله آن میتوانید سرعت زاویه ای را به صورت سه محوره (سه محور XYZ در مختصات فضایی) اندازه گیری کنید. این دستگاه طبق اصول حرکتهای زاویه ای (حرکتهای دورانی) کار میکند و برای مشخص کردن وضعیت یک جسم در فضا استفاده میشود.
برای مثال وقتی گوشی تلفن همراه خود را به شکل خوابیده در دست میگیرید. این ژیروسکوپ گوشی هوشمند شماست که تشخیص میدهد که گوشی در حالت دوران یافته قرار گرفته است و صفحه نمایش گوشی شما با دستور این سنسور میچرخد.
از کاربردهای معمول این ماژولها میتوان به هدایت راکت و موشکهای مدل ، کنترل پرواژ پهبادها ، گوشیهای هوشمند ، کنسولهای بازی و دستههای آنها و … اشاره کرد. تکنولوژیهای ساخت مختلفی برای ماژولهای ژیروسکوپ وجود دارد. مانند تکنولوژی مکانیکی،MEMS ، فیبر نوری ، حلقه لیزر و …
ماژول ژیروسکوپ مورد نظر ما برای اتصال به آردوینو یکی از ماژولهای معروف به نام GY521 است. تکنولوژی ساخت آن MEMS است . این لغت مخفف سامانه میکرو الکترو مکانیکی (Micro elecro-mechanical system) است.
ماژول ژیروسکوپ GY521 :

ماژول ژیروسکوپ GY521 یک ژیروسکوپ ۳ محوره به همراه یک شتاب سنج داخلی است که بر اساس تراشه MPU6050 ساخته شده است . تراشه MPU6050 دارای شش عدد تبدیل کننده دادههای آنالوگ به دیجیتال (ADC) با دقت ۱۶ بیت است. سه عدد از این مبدلهای ADC برای کاربرد ژیروسکوپ و سه عدد دیگر هم برای شتاب سنج (Accelerometer) استفاده میشوند.
روش برقراری ارتباط این ماژول ژیروسکوپ با آردوینو یا هر وسیله دیگر از جمله میکروکنترلرها با پروتکل I2C است. ولتاژ کاری IC MPU6050 بین ۲٫۳۷ ولت تا ۴٫۴۶ ولت است.
یک تنظیم کننده ولتاژ روی ماژول ژیروسکوپ GY521 وظیفه تنظیم ولتاژ برای تغذیه این IC را بر عهده دارد. محدوده اندازه گیری شتاب سنج و ژیروسکوپ قابل برنامه ریزی توسط کاربر و به ترتیب برای شتاب سنج +/- ۲g ، ۴g ، ۸g و ۱۶g و برای ژیروسکوپ +/- ۲۵۰ ، ۵۰۰ ، ۱۰۰۰ و ۲۰۰۰ درجه بر ثانیه است .
منبع توضیحات بالا:سایت ECA
مشخصات ماژول GY-521 طبق دیتاشیت:
- خروجی دیجیتال داده Motion Fusion در 6 یا 9 محور با فرمت داده به صورت ماتریس چرخش، Quaternion، زاویه اویلر و یا فرمت داده خام
- ژیروسکوب 3 محور با حساسیت تا 131 کم ارزشترین داده بر هر درجه در ثانیه LSBs/dps با چهار بازه اندازه گیری 250±، 500±، 1000± و 2000± درجه در ثانیه.
- شتاب سنج 3 محور با رنج قابل برنامه ریزی برای 4 بازه 2g، ±4g، ±8g، ±16g± .
- موتور پردازش دیجیتال حرکت (DMP) با توانایی اجرای الگوریتمهای پیچیده Motion Fusion، سنکرونسازی زمانی سنسور و تشخیص نوع حرکات.
- دارای الگوریتم های داخلی مورد نیاز برای بایاس در زمان run-time و نیز قابلیت کالیبراسیون قطب نما، بدون نیاز به دخالت کاربر.
- دارای سنسور دماسنج داخلی با خروجی دیجیتال.
- دارای وقفه های قابل برنامه ریزی با قابلیت پشتیبانی از تشخیص حرکات مانند ضربه، حرکات ناگهانی، بالا و پایین رفتن، سقوط آزاد، حرکت با شتاب های بالا، بدون حرکت، همچنین برای تشخیص ضربات و تشخیص لرزش وقفه مجزا در نظر گرفته شده است.
- دارای مدار Timing داخلی با تغییرات فرکانسی به میزان 1 درصد در تغییراتی به میزان کل رنج دمای کاری.
- قابلیت تحمل شوکهای مکانیکی تا 10000g
با استفاده از دیتاشیت MPU6050 در مییابیم که مقدارهای خروجی ژیروسکوپ در هر سه محور به وسیله معادلههای زیر تبدیل به سرعت زاویه ای خواهند شد:
v_pitch=GyX/131
v_roll=GyY/131
v_yaw=GyZ/131
جالب است این را هم بدانید که Pich یه معنای دوران روی محور Xها ، Roll به معنای دوران روی محور Yها و Yaw هم به معنای دوران روی محور Zها است. عکس زیر این مفاهیم را به خوبی مشخص میکند:

خوب تا اینجا معلوم شد که چگونه میتوان با استفاده از ماژول ژیروسکوپ GY521 سرعتهای زاوایه ای دوران یک جسم را در سه محور به دست آورد. شاید برایتان سوال پیش بیاید که سرعت که مکان نیست ! بله حرف شما درست است. اما اگر ما سرعت و زمان انجام حرکت را داشته باشیم میتوانیم جابجایی را هم حساب کنیم. پس کافی است زمان بین دو اندازه گیری پشت سر هم سرعتها را داشته باشیم تا جابجایی زاویه ای را هم به دست آوریم.
برای این کار کافی است که سرعت زاویه ای ( بر حسب درجه بر ثانیه) را در زمان بین اندازه گیری سرعتها (بر حسب ثانیه) ضرب کنیم تا جابجایی زاویه ای را هم در هر محور به دست آوریم. برای این کار از معادلات زیر بهره میبریم که بر اساس دیتاشیت تراشه MPU6050 نوشته شده اند:
a_pitch=v_pitch *0.047
a_roll=v_roll * 0.047
a_yaw=v_yaw*0.047
خیلی واضح است که a_pich یعنی جابجایی زاویه ای حول محور xها ، a_roll به معنای جابجایی زاویه ای حول محور yها و a_yaw جابجایی زاویه ای حول محور zها است .
pitch= pitch + a_pitch
roll= roll + a_roll
yaw= yaw + a_yaw
در آخر هم جابجایی کل را با فرمولهای بالا ذخیره میکنیم. این فرمولها به سادگی میگویند جابجای کل در هر محور برابر است با جابجایی تا کنون + جابجایی جدید.
منبع: eca

برای راه اندازی ژیروسکوپ به قطعات و المان های زیر نیاز داریم:
- ماژول GY521
- برد آردوینو
- سیم جامپر
همین 🙂
مدار رو به شکل زیر می بندیم:

همان طور که میبینید ماژول GY521 با ولتاژ +۵ ولت تغذیه میشود که برای سادگی از برد آردوینو گرفته شده است. پایههای SCL و SDA ماژول ژیروسکوپ GY521 هم به ترتیب به پایههای A5 و A4 آردوینو وصل شده اند.همان طور که حتما حدس زده اید،دو پایه SCL و SDA برای برقراری ارتباط I2C بین ماژول و آردوینو به کار میروند.
** توجه کنید که این ماژول رو وقتی خریداری می کنید،پایه های لحیم نشده داره ( مثل شکل پایین ) و شما با توجه به نوع استفاده ای که دارین یا طرز بستن مدار مورد نظرتون، پایه ها رو به صورت خوابیده یا ایستاده لحیم می کنید.

برنامه راه اندازی ژیروسکوپ و آشنایی با نحوه کارکرد اون به صورت زیر است:

حوصله تایپ کردن ندارین ؟ از لینک زیر برنامه رو به صورت رایگان دانلود کنید: *.*
لینک دانلود برنامه راه اندازی GY521 با آردوینو
بسته شده مدار به شکل زیر هست:


** هنگام آپلود کردن برنامه ماژول رو در مکان ثابتی بی حرکت بذارید و بعد از آپلود شدن با حرکت دادن بردبورد، مقادیر سریال مونیتور تغییر می کنه. به شکل زیر:

طبق تصویر هواپیما که در بالا گذاشته شد، می تونید ببینید که هر کدوم از این عبارات pitch، yaw و roll مربوط به حرکت در چه راستایی هستن.
هر سوالی داشین حتما بپرسید.
اگر مشکل کتابخونه داشتین، به روشی که اینجا
آموزش افزودن کتابخانه به آردوینو بهتون یاد دادم کتاب خونه رو اضافه کنید. اگر نشد، بهم بگید تا برای شما ارسال کنم.
لطفا این مدار رو راه بندازید تا قسمت های بعد پروژه های هیجان انگیز باهاش بسازیم. مثل هواپیما یا ربات تعادلی *.*
روز و روزگارتون خوش.