در این آموزش نحوه ی اتصال دو سنسور MPU6050 به برد آردینو و نمایش همزمان خروجی آن ها روی سریال مانیتور و همچنین ذخیره ی این خروجی ها بر روی حافظه به منظور تحلیل داده ها توضیح داده می شود.
ماژول MPU6050
ماژول MPU6050 یک ماژول 3 محوره با دقت بالا و سیستم پردازش حرکت دیجیتال داخلی (DMP) می باشد. این ماژول شامل یک شتاب سنج و یک gyro با دقت 16 بیتی، همچنین دارای بافر FIFO با ظرفیت 1024 بایت و سنسور دما با قابلیت اندازه گیری دما در محدوده حرارتی -40 تا +85 درجه سانتی گراد می باشد. از شتاب سنج برای اندازه گیری شتاب حرکت جسم و از ژیروسکوپ به منظور سنجش سرعت زاویه ای جسم مورد نظر به کار گرفته می شود (در سه محور x,y,z ). هم چنین این تراشه دارای شش عدد تبدیل کننده دادههای آنالوگ به دیجیتال (ADC) با دقت ۱۶ بیت است. سه عدد از این مبدلهای ADC برای کاربرد ژیروسکوپ و سه عدد دیگر هم برای شتاب سنج (Accelerometer) استفاده میشوند. در مجموع این قطعه قادر به اجرای الگوریتم های پیچیده 9 محوری است که کمک شایانی در تنظیم محور افقی می نماید. این ماژول با تجمیع و ترکیب یک ژیروسکوپ 3 محور با یک شتاب سنج 3 محور روی یک چیپ سیلیکونی و بهره گیری از یک پردازشگر دیجیتال حرکت، قادر است الگوریتم های پیچیده 9 محوری را اجرا کند. این ویژگی بسیاری از مشکلاتی را که در تنظیم محور افقی در سنسورهای مجزا ایجاد می گردد را بر طرف خواهد ساخت. برای دستیابی به دقت بالای اندازه گیری در حرکت های کند و حرکت های سریع در سنسور MPU-6050امکانی فراهم شده تا کاربر بتواند بازه اندازه گیری را متناسب با شتاب یا سرعت زاویه ای تغییر دهد. بدین منظور در قسمت ژیروسکوپ سنسور چهار بازه 250±، 500±، 1000± و 2000± درجه در ثانیه و در قسمت شتاب سنج سنسور چهار بازه 2g، ±4g، ±8g، ±16g± برای کاربر قابل انتخاب خواهد بود.
با استفاده از دیتاشیت MPU6050 مشخص می شود که مقدار خروجی ژیروسکوپ در هر سه محور به وسیله معادلههای زیر به سرعت زاویه ای تبدیل خواهند شد:
v_pitch=GyX/131
v_roll=GyY/131
v_yaw=GyZ/131
هم چنین برای محاسبه جابجایی زاویه ای حول هر محور می توان از روابط زیر استفاده نمود:
a_pitch=v_pitch *0.047
a_roll=v_roll * 0.047
a_yaw=v_yaw*0.047
pitch= pitch + a_pitch
roll= roll + a_roll
yaw= yaw + a_yaw
نحوه ی برقراری ارتباط این ماژول با آردینو پروتکل I2C می باشد که برای ادامه ی کار باید در نظر گرفته شود.
نحوه ی اتصال ماژول MPU به برد آردینو
در زیر شمای کلی اتصلات آورده شده که 4 پایه ی اصلی از ماژول MPU یعنی VCC, GND, SCL, SCK به پین های متناظر در برد آردینو متصل گردیده.
نکته ی بسیار مهمی که در هنگام اتصال دو ماژول MPU به یک برد باید به آن توجه شود این است که به منظور تفکیک دو ماژول از یکدیگر و یررسی دقیق تر خروجی هرکدام از آنها، اتصال پایه ی AD نقش بسیار مهمی دارد. و برای اتصال این پایه در ماژول ها طبق دیتا شیت به صورت زیر عمل می نماییم
همان طور که در تصویر هایلایت شده است طبق پروتکل I2C به منظور اتصال همزمان دو پایه ی AD به یک برد، ماژول اول را با AD0 مشخص کرده و این پین از ماژول را یا اتصال به GND برد آردینو صفر کرده، به طور مشابه ماژول دوم را با AD1 مشخص کرده و این پین از ماژول را با اتصال به VCC برد آردینو یک می نماییم.
دقت شود که طیق دیتاشیت ماژول MPU تغذیه یا همان VCC برای این سنسور 3.3 ولت می باشد. پس AD1 را به تغذیه 3.3 ولت از برد آردینو اتصال می دهیم.
پس برای اتصال سخت افزاری اسن سنسور به برد اردینو از 5 پین برای هر سنسور استفاده شده است.
نحوه ی اتصال ماژول رم ریدر به برد آردینو
به منظور ذخیره ی خروجی های به دست آمده از سنسور MPU و بررسی آنها باید این اطلاعات در یک SD CARD ذخیره شوند که برای ارتباط SD CARD با آردینو نیازمند یک ماژول رم ریدر و اتصال آن به آردینو می باشیم.
یکی از پایه های تغذیه ی ماژول رم ریدر را به تغذیه ی متناظر آن در برد آردینو وصل نموده (احتیاجی به اتصال هردو پایه نیست)
همچنین سایر پین های GND, MISO, MOSI, CS و CLK یا SCK را به پین های متناظر در برد آردینو متصل می نماییم.
در بردهای mega2560 :
CS —-> pin 53
MOSI —-> pin 51
MISO —-> pin 50
CLK or SCK —-> pin 52
تا این مرحله اتصال سخت افزاری کل مجموعه کامل شده است. در ادامه به بررسی پروژه از دید نرم افزاری می پردازیم.
نکات مربوط به برنامه نویسی پروژه
دقت شود در صورتی که از SD Card برای ذخیره ی دیتاهای خروجی استفاده می کنید حتما باید از توابع مربوط به آن در برنامه نویسی استفاده شود.
از تابع SD.begin(pin) برای راه اندازی تابع SD استفاده می شود که بجای pin شماره ی پایه ای از برد آردینو را که به پایه ی CS از ماژول رم متصل است جایگزین می نماییم. در صورتیکه رم شناسایی شود پیغام ready to use و در غیراین صورت Failed به پورت سریال ارسال شده و در سریال مانیتور نمایش داده می شود.
در برنامه از دستور File MyFile استفاده شده که برای درک بهتر آن می توان آن را مانند تعریف متغییرها در نظر گرفت با این تفاوت که در اینجا بجای متغیر از فایلی به اسم myFile برای ذخیره ی مقادیر و اطلاعات استفاده می شود.
سایر دستورات استفاده شده در برنامه به خروجی گرفتن از ماژول MPU و نمایش آنها روی سریال مانیتور می باشد.
بعداز ارسال داده ها به حافظه با اتصال حافظه به یک رم ریدر و کیس کامپیوتر خود می توانید اطلاعات را در فرمت های دلخواه برحسب نیاز (مانند اکسل) مشاهده نمایید.
اطلاعات در حالت کلی به صورت تکست در رم ذخیره شده و برای مثال می توانید از داخل نرم افزار اکسل فایل تکست ذخیره شده را open نمایید تا به فرمت اکسل تبدیل شود.
حداقل اشتراک | محتویات | زمان ایجاد | حجم فایل | تعداد دانلودها |
یک ماهه (VIP) | آردوینو | چهارشنبه, 18 مرداد 1396 00:20 | 6.97 MB | 1 |
تنها کاربران عضو یا دارای مجوز میتوانند دانلود نمایند |