ماژول MPU6050

راه اندازی ماژول MPU6050 با آردوینو- بخش اول

مقدمه

در این جلسه قصد داریم در مورد راه اندازی MPU6050 با برد آردوینو صحبت کنیم. پیشنهاد می شود برای فهم بهتر این مطلب، ابتدا دو جلسه ی زیر را که در مورد سنسورهای ژیروسکوپ و شتاب سنج،صحبت شده است، مطالعه کنید. چون در این جلسه از اصطلاحاتی استفاده می شود که ما قبلا آن را در جلسات زیر معرفی کرده ایم:

مشخصات سنسورهای MPU6050

مشخصات سنسور ژیروسکوپ:

  • یک ژیروسکوپ سه محوره با قابلیت تنظیم رنج اندازه گیری 250 یا 500 یا 1000 یا 2000 درجه بر ثانیه.
  • جریان مصرفی در حالت کاری: 3.6 میلی آمپر
  • جریان مصرفی در حالت StandBy برابر 5 میکروآمپر است.
  • دارای سه ADC داخلی که داده های آنالوگ ژیروسکوپ را به دیجیتال تبدیل میکند. 

 

 مشخصات سنسور شتاب سنج:

  • شتاب سنج سه محوره با قابلیت رنج اندازه گیری 2g یا 4g یا 8g یا 16g 
  • جریان در حالت کاری: 500 میکروآمپر
  • قابلیت تشخیص تک ضربه ( Tap detection )
  • دارای سه ADC داخلی که داده های آنالوگ شتاب سنج را به دیجیتال تبدیل میکند. 

تذکر: این سنسور برای شتاب سنج و ژیروسکوپ خود در مجموع 6 عدد ADC دارد. دقت این ADC ها ، 16 بیتی می باشد. البته علاوه بر این 6 عدد ADC ، این سنسور یک ADC دیگر نیز برای سنسور دمای خود دارد. بنابراین در مجموع میتوان گفت که این سنسور دارای 7 عدد ADC می باشد. نمایی از این ADC ها در شکل زیر آورده شده است:

ADC های موجود در سنسور MPU6050

 کاربردهای این سنسور:

  • استفاده در رباتیک
  • اسباب بازی ها
  • دسته های بازی که مبتنی بر حرکت هستند. 
  • ابزارهای پوشیدنی مخصوص بدنسازی و سلامت
  • تبلت ها و گوشی های هوشمند

 مشخصات کل سنسور: 

  • رنج ولتاژ اعمالی از 2.375 تا 3.46 ولت
  • دارای سنسور دمای داخلی با قابلیت خروجی دیجیتال که از 40- تا 85+ درجه را میتواند اندازه گیری کند. 
  • وجود یک پردازنده داخلی ( DMP ) که از بار پردازنده میزبان ( مثل آردوینو ) کم میکند. 
  • قابلیت ارتباط با میکروکنترلر از طریق پروتکل I2C
  • جریان مصرفی 3.9 میلی آمپر، وقتی که سه محور شتاب سنج و سه محور ژیروسکوپ و پردازنده DMP فعال هستند. 
  • استفاده از وقفه خارجی برای مواردی مانند تشخیص حرکت، تشخیص ضربه و …
  • دارای یک باس I2C کمکی برای ارتباط با سنسورهای خارجی ( مثل قطب نما )

نگاهی دقیق تر بر MPU6050

تذکر: خود MPU6050 صرفا یک سنسور است که از بخش هایی مانند DMP ، ژیروسکوپ ، شتاب سنج و … تشکیل شده است. گاهی اوقات این سنسور بر روی بردهایی مشاهده می شود که کار با آن را راحتتر می کنند. برد GY-521 ( که گاهی ماژول GY-521 ) هم شناخته می شود نمونه ای از این گونه بردها است. در شکل زیر این ماژول و سنسور MPU6050 موجود بر روی آن را مشاهده میکنید:

سنسور MPU6050 و ماژول GY-521

به طور کلی می توان گفت این سنسور (سنسور MPU605 ) از 4 بخش اساسی تشکیل شده است. ابتدا شکل زیر را ببینید تا در مورد هر کدام از این بخش ها توضیحات لازم را ارایه دهیم:

بلوک دیاگرام MPU6050

بخش DMP : در سنسور MPU605 یک پردازنده داخلی وجود دارد که با نام DMP شناخته می شود. مهمترین علت حضور این پردازنده، انجام پردازش های مربوط به ترکیب اطلاعات سنسورها (  Sensor Fusion ) می باشد.  منظور از Sensor Fusion این است که به عنوان مثال، داده های ژیروسکوپ و شتاب سنج با یکدیگر ترکیب شوند و یک خروجی پایدار و خوب را به ما تحویل میدهند. مهمترین علت حضور سنسور، این موضوع می باشد. همانطور که قابل حدس است، حضور این پردازشگر، از بار پردازشی، پردازنده اصلی (مثلا پردازنده موجود بر روی برد آردوینو ) می کاهد. ضمن این که استفاده از این پردازنده، میتوان کارها را موازی پیش برد. 

بخش Gyro : این بخش، همان سنسور ژیروسکوپ است که در درون MPU605 قرار گرفته است.

بخش Accel : این قسمت نیز همان شتاب سنج داخلی سنسور MPU6050 است. 

بخش FIFO : سنسور MPU6050 دارای یک بافر به اندازه 1024 بایت است که این بافر از طریق پروتکل I2C در دسترس می باشد. در این بافر میتوان اطلاعات مربوط به ژیروسکوپ، شتاب سنج، سنسور کمکی و … را قرار داد. 

توضیحاتی در مورد ماژول GY-521

بر روی این ماژول دو مقاومت Pull-up با مقدار 2.2 کیلو اهم  تعبیه شده است. به همین دلیل، هنگام برقراری ارتباط با آن از طریق پروتکل I2C نیازی به قرار دادن مقاومت نیست. علاوه بر آن، بر روی این برد یک رگولاتور نیز تعبیه شده است که با حضور این رگولاتور میتوان، ولتاژ 5 ولت را به ماژول اعمال کرد. مقاومت های Pull-up و رگولاتور را در تصویر زیر مشاهده می کنید:

مقاومت پول آپ و رگولاتور موجود بر روی GY-521

 پایه های ماژول: 

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

 

پایه های ماژول GY-521

شاید لازم باشد که در مورد پایه های XDA و XCL کمی بیشتر توضیح دهیم. 

این پایه برای اتصال سنسورهای دیگر می باشد. مثلا میتوان یک سنسور قطب نما با استفاده از پروتکل I2C به این ماژول متصل کرد و داده های آن را با استفاده از DMP پردازش کرد. البته میتوان هر سنسوری که از پروتکل I2C پشتیبانی می کند را به این ماژول وصل کند و مثال قطب نما صرفا یک مثال ساده است. شکل زیر گویای همه چیز است:

اتصال یک سنسور کمکی به  MPU6050

در مورد پایه AD0 هم این نکته را اضافه میکنیم که این پایه، بیت شماره هفتم آدرس ماژول است. اگر این پایه به زمین متصل شود، مقدار آدرس برابر با 1101000 یعنی 0x68 می شود و اگر این پایه به 1 منطقی وصل شود، مقدار آدرس ماژول برابر 1101001 یا 0x69 می شود. 

اتصال به آردوینو:

قطعات مورد نیاز:

  • برد آردوینو
  • ماژول MPU6050
  • تعدادی سیم جامپر

 

 اتصال ماژول MPU650 به برد آردوینو:

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

اتصال MPU6050 به آردوینو

در صورتی هم که از بردی، به جز برد آردوینو استفاده میکنید، شماره پایه های مربوط به پروتکل I2C در آن آورده شده است:

پایه های I2C دربردهای آردوینو

این جلسه هم به پایان رسید. مثل همیشه میتونید ما را در تلگرام و یا اینستاگرام دنبال کنید:

قانون اهم چیست

قانون اهم چیست ؟ انجام یک آزمایش از قانون اهم

قانون اهم

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

قانون اهم

با استفاده از ترکیب ولتاژ و جریان و مقاومت ، میتوانیم قانون اهم را بدست آوریم. این قانون مطابق زیر است:

فرمول قانون اهم

که در آن:

  • V : ولتاژ بر حسب ولت
  • I : جریان بر حسب آمپر
  • R : مقاومت بر حسب اهم

به عنوان مثال فرض کنید یک مدار داریم که در آن اختلاف پتانسیل برابر 1 ولت و جریان 1 آمپر نیز از آن میگذرد. در این صورت مقدار مقاومت این مدار برابر است با 1 اهم. زیرا: 

 

یا به عنوان مثالی دیگر، اگر مقاومت افزایش بماند ولی ولتاژ مدار ثابت بماند در این صورت مقدار جریان چه تغییری می کند؟

اما مقدار جریان در معادله بالا چقدر است؟ واضح است با بالا رفتن مقاومت و ثابت ماندن ولتاژ، جریان مطابق این فرمول کاهش پیدا میکند.

در ادامه یک آزمایش ساده را در مورد قانون اهم انجام می دهیم.

انجام یک آزمایش از قانون اهم

در این آزمایش ما قصد داریم یک باتری 9 ولت را به یک LED متصل کنیم. همانطور که می دانید اگر از LED جریان زیادی عبور کند، آن LED میسوزد. هر LED یک ماکزیمم نرخ جریان عبوری دارد که باید به این نرخ حتما توجه کنیم تا LED دچار آسیب نشود. 

قطعات مورد نیاز: 

برای انجام این آزمایش به قطعات زیر نیاز داریم: 

  • یک مولتی متر
  • یک باتری 9 ولت
  • یک مقاومت 560 اهم ( یا یک مقاومت نزدیک به این مقدار ) 
  • یک LED

تذکر:LED ها به عنوان قطعاتی غیر اهمی شناخته می شوند و این یعنی رابطه بین ولتاژ و جریان و مقاومت یک LED به صورت V=IR نیست. LED ها مفهومی به نام افت ولتاژ را در مدار معرفی می کنند که این افت ولتاژ، باعث تغییر جریان عبوری از آن می شود. اگر چه ما در این آزمایش از LED برای عبور جریان زیاد، محافظت می کنیم. اما نسبت به مشخصه های LED هم بی توجه خواهیم بود و از قانون اهم استفاده خواهیم کرد تا مطمین شویم که جریان عبوری از LED بیشتر از 20 میلی آمپر نمی شود. 

در این آزمایش ما از یک باتری 9 ولتی استفاده می کنیم و جریان عبوری از یک LED قرمز نیز در حالت ماکزیمم برابر 20 میلی آمپر است. ما LED را در حالت ماکزیمم راه اندازی نمیکنیم و از جریان 18 میلی آمپر استفاده میکنیم. اگر ما یک LED را به صورت مستقیم به یک باتری متصل کنیم، طیق قانون اهم خواهیم داشت: 

و چون مقاومتی نداریم پس:

که تقسیم بر صفر به ما جریان بی نهایت را می دهد. اگر چه در دنیای واقعی ما مقداری مقاومت داریم ولی جریان عبوری از LED بسیار زیاد خواهد بود و این باعث سوختن LED میشود. به همین دلیل پیشنهاد می کنیم که حتما از یک مقاومت سر راه LED استفاده شود. مداری که در نهایت بسته ایم باید چنین شکلی داشته باشد:

حال میتوانیم از قانون اهم برای محاسبه میزان دقیق مقاومت استفاده کنیم. در این حالت چون LED را در 18 میلی آمپر راه اندازی کرده ایم و ولتاژ 9 ولت به آن متصل کرده ایم، در این صورت خواهیم داشت:

که مقدار مقاومت برابر خواهد شد با:

بنابراین ما برای محدود کردن جریان LED نیاز به یک مقاومت 500 اهم داریم. 

مقدار 500 اهم یک مقدار استاندارد برای یک مقاومت نیست. به همین دلیل ما یک مقاومت نزدیک به مقاومت 500 اهم را باید انتخاب کنیم. مقاومتی که در اینجا انتخاب کرده ایم، یک مقاومت 560 اهم است. 

پس از بستن مقاومت به LED و باتری ، باید با چنین مداری روبرو باشیم:

خوب تا اینجا ما با قرار دادن مقاومت موفق شدیم که جریان عبوری از LED رو به مقدار مورد نظر خودمون محدود کنیم. 

ترکیب LED و مقاومت یک ترکیب معروف در دنیای الکترونیک هست و تقریبا ما هر جایی که یک LED میبینیم ، یک مقاومت هم برای محدود کردن جریان میبینیم. مثالی دیگر از این ترکیب را در برد Lilypad میتوان مشاهده کرد:

قانون اهم به زبان ساده

در شکل بالا، اگر دقت کنید کنار LED یک مقاومت SMD قرار گرفته است و به همین دلیل نیازی نیست که ما خودمان یک مقاومت دیگر اضافه کنیم. 

مقاومت را قبل از LED قرار دهیم یا بعد از LED ؟

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

البته بسیاری از کسانی که تازه قصد یادگیری الکترونیک را دارند، معمولا با این قضیه مشکل دارند و فکر می کنند که باید حتما مقاومت را قبل از LED قرار دهیم تا مدار به درستی کار کند. در حالی که وقتی ما مقاومت را بعد از LED هم میگذاریم، مدار به درستی کار خواهد کرد. اما علت چیست؟

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

این مثال دقیقا مثل همین هست که ما یک مقاومت رو در یک مدار قرار بدیم. فرقی نداره که مقاومت رو در کجا قرار میدیم. در هر صورت مدار به درستی کار خواهد کرد. 

اگه بخوایم یه خورده پاسخ علمی تری به این موضوع بدیم، باید از قانون ولتاژ کیرشهف استفاده کنیم. بر طبق این قانون ما مقاومت را در هر سمتی از LED قرار دهیم، تاثیری یکسانی دارد و جریان به همان میزان محدود می شود. 

برای انتشار از مطالبی که در آینده منتشر می شود و یا مطالبی که در کانال ما ارسال می شود می توانید ما را در محیط های مجازی دنبال کنید: