قطعات مورد نیاز
1 عدد | ||
1 عدد | ||
1 بسته |
تنظیمات اولیه نرمافزار متلب
قبل از هر چیز توصیه میکنم از نسخه متلب R217b و بالاتر استفاده کنید. شاید عجیبترین و پردردسرترین بخش ارتباط بین متلب و آردوینو نصب پکیج مربوطه باشد! از آنجا که متلب خدمات خود را در ایران پشتیبانی نمیکند، در طول تمام مراحل بعدی تا پایان نصب باید از نرمافزاری برای تغییر IP کشورتان استفاده کنید. ابتدا وارد سایت متلب شده و یک حساب کاربری ایجاد کنید.
حالا باید در سایت متلب، به صفحه نصب پکیج آردوینو رفته و فایل نصب آن را دانلود کنید. در این قسمت به دو فایل نصب، یکی برای متلب و دیگری برای سیمولینک نیاز دارید. برای راحتی فایلهای نصبی را در اینجا برای دانلود قرار دادهایم:
دانلود پکیج آردوینو برای سیمولینک
این فایلها صرفا فرایند نصب را انجام میدهند، اما شما نیاز به فایلهای اصلی پکیج نیز خواهید داشت. وارد نرمافزار متلب شده و در قسمت Add-Ons بر روی Get hardware support package کلیک کنید.
در پنجره جدید میتوانید پکیج را مستقیما دانلود و نصب کنید (گزینه اول). در این صورت نصب پکیج سادهتر خواهد بود اما به دلیل حجم زیاد فایلها و نیز برای اینکه امکان استفاده مجدد از فایلها در آینده نیز داشته باشید، گزینه دوم را پیشنهاد میکنم. در این صورت صرفا فایلهای مربوطه دانلود شده و خودتان باید آنها را نصب کنید. کلید Next را بزنید.
در قسمت بعد آردوینو را انتخاب کرده و مراحل را تا پایان دانلود ادامه دهید. آدرسی که فایلها در آنجا دانلود میشوند را به خاطر بسپرید. پس از اتمام دانلود از درون متلب به محل دانلود رفته و فایلهای نصب پکیج که قبلا دانلود کردید را نیز در همین محل کپی کنید.
اگر از متلب نسخه R2017a و قبل از آن استفاده میکنید باید این قسمت را اضافه بر مراحل دیگر انجام دهید: فایل زیر را دانلود کرده و از حالت فشرده خارج کنید. سپس محتویات آن را در محل نصب نرمافزار متلب کپی کنید. اگر ویندوز از شما اجازه دسترسی خواست، گزینه Yes را بزنید.
حالا فایل نصب پکیج (arduinoio.mlpkginstall) را درون متلب اجرا کنید. پنجرهای باز شده و نصب پکیج آردوینو برای متلب آغاز میشود.
فرایند نصب را تا پایان ادامه دهید. در صورت نصب صحیح پکیج، صفحه توضیحات آن نشان داده میشود:
همین کار را برای نصب پکیج آردوینوی سیمولینک نیز تکرار کنید. اگر وارد سیمولینک شوید میبینید که ابزار جدیدی برای آردوینو اضافه شده است.
کنترل آردوینو با متلب
چند روش برای ارتباط متلب با آردوینو وجود دارد که هر کدام مزیت خاصی دارد. در ادامه به هر روش اشاره خواهیم کرد. اولین دلیل برای استفاده از متلب در کنار آردوینو، وجود ابزارها و تولباکسهای قدرتمند متلب و همچنین توان پردازشی کامپیوتر است. اگر بخواهید ابزارهای محاسباتی متلب را خودتان پیادهسازی کنید، ممکن است نیاز به چند هفته یا چند ماه زمان داشته باشید که اگر آن را برای فقط یک پروژه لازم داشته باشید، حداقل برای تست اولیه منطقی به نظر نمیرسد. حتی اگر بخواهید یک کار بلندمدت انجام دهید، بهتر است قبل از هر چیز پروژهتان را با ابزارهای آماده متلب تست کنید. علاوه بر این سختافزار آردوینو چه از نظر توان پردازشی و چه از نظر حافظه محدودیت زیادی دارد و ممکن است نتوانید بسیاری از کارهای محاسباتی را با آن انجام دهید. اینجاست که کاربرد همزمان آردوینو با کامپیوتر و به طور خاص نرمافزار متلب میتواند کمک زیادی کند.
در این روش، بخش محاسبات، تصمیمگیری و ارسال دستورات بر عهده کامپیوتر بوده و آردوینو صرفا نقش واسط بین متلب و سایر تجهیزات مثل سنسورها، ماژولها و موتورها را دارد. در این وضعیت آردوینو هیچ تصمیمگیری مستقلی انجام نداده و صرفا دستورات متلب را اجرا میکند. مثل این است که کد پروژه را به جای اینکه در آردوینو آپلود کنید در متلب نوشته و توسط کامپیوتر اجرا میکنید. به عنوان نمونه میخواهیم پروژه چراغ چشمکزن را به کمک متلب انجام بدهیم. در متلب یک Script خالی باز کرده و دستورات زیر را در آن بنویسید:
clear
a=arduino('COM4','uno');
while 1
writeDigitalPin(a, 'D13', 0);
pause(1);
writeDigitalPin(a, 'D13', 1);
pause(1);
end
در کد بالا نام پورت متصل به آردوینو و نام آن را در صورت نیاز تغییر دهید. حالا کلید Run را بزنید و نتیجه را مشاهده کنید. همانطور که میبینید تا زمانی که اجرای برنامه را قطع نکنید، در حال اجرا باقی مانده و اطلاعات بین متلب و آردوینو منتقل میشود. برای اطمینان میتوانید آردوینو را به کمک یک باتری روشن نگه داشته و کابل آن را از کامپیوتر جدا کنید. میبینید که چشمک زدن متوقف میشود که این نشان میدهد که برنامه به آردوینو منتقل نشده و فقط بر روی کامپیوتر اجرا میشده است. در برنامه بالا اگر دستورات روشن و خاموش شدن را در حلقه نمینوشتیم، چشمک زدن فقط یک بار انجام میشد؛ بنابراین کدها درون یک حلقه همیشه درست (while 1) قرار داده شدند که معادل همان حلقه loop آردوینو است.
تبدیل مدل سیمولینک به کد آردوینو
در متلب ابزارهای قدرتمندی برای تبدیل برنامه به کد ++C/C وجود دارد. از طرفی میدانید که زبان برنامههای آردوینو نیز ++C/C است. در متلب از همین ابزارها استفاده شده است تا برنامههای مختلف به کد ++C/C تبدیل شود که زبان مشترک برنامهنویسی برای بسیاری از سختافزارها از جمله آردوینو است. قسمت جالب این موضوع این است که متلب یک کتابخانه بزرگ از انواع سختافزارها شامل مشخصات هر کدام به تفکیک دارد که خیالتان را از کدنویسی برای سختافزارها راحت میکند. یعنی میتوانید یک کد متلب را برای سختافزارهای مختلفی کامپایل کرده و بر روی آنها آپلود کنید.
یکی از ابزارهای بسیار کارآمد متلب، نرمافزار دوستداشتنی سیمولینک (Simulink) است که خواهر کوچکتر متلب به حساب میآید. مزیت اصلی سیمولینک و گرافیکی بودن محیط آن، این است که طراحی سیستمهای پیچیده و ارتباطات بخشهای مختلف آنها در این فضا بسیار راحتتر از محیط کدنویسی است. ارتباط آردوینو با سیمولینک از متلب نیز سادهتر است. وقتی وارد سیمولینک شوید یک تولباکس جدید مخصوص آردوینو خواهید دید. در این تولباکس ابزارهای مختلفی مانند ارتباط آنالوگ، دیجیتال و PWM به همراه ابزارهایی برای برقراری ارتباط وایفای و اترنت وجود دارد. میتوانید پیچدهترین مدلهای نرمافزاریتان را در سیمولینک طراحی کرده و به راحتی آن را به آردوینو منتقل کنید که این مزیت اول استفاده از این روش است. دومین مزیت استفاده از سیمولینک با آردوینو، وجود قابلیتی است که به راحتی مدل شما را تبدیل به کد ++C/C کرده و مستقیما بر روی برد آردوینو آپلود میکند. در پنجره سیمولینک حالت اجرا را بر روی External قرار دهید. سپس بر روی کلید Model Configuration Parameters (کلید شبیه چرخدنده) کلیک کرده تا وارد تنظیمات سیمولینک شوید. در بخش Hardware Implementation برد آردوینوتان را انتخاب کنید.
برای نمونه من یک برنامه ساده در سیمولینک آماده کردهام که LED آردوینو را روشن و خاموش میکند. برای ایجاد این مدل، بلوک Pulse generator را از قسمت Sources و بلوک Digital output را از قسمت Simulink support package for Arduino hardware وارد مدل کنید.
در بلوک خروجی دیجیتال پین ١٣ را انتخاب کنید. بلوک Pulse generator را باز کرده و در قسمت Pulse type مقدار Sample based و در قسمت Time مقدار Use simulation time را انتخاب کنید. سایر مقادیر را نیز که سرعت چشمک زدن را تعیین میکند مانند زیر قرار دهید. این مقادیر را میتوانید به دلخواه تغییر دهید.
حالا بر روی کلید Deploy on hardware کلیک کرده و منتظر باشید تا سیمولینک کد برنامهتان را تولید کرده و بر روی آردوینو بارگذاری کند. پس از اتمام آپلود پیامی مشاهده میکنید که نشان میدهد برنامه شما با موفقیت کامپایل و آپلود شده است. در واقع در اینجا از سیمولینک بجای نرمافزار آردوینو برای تولید کد سختافزار استفاده کردیم.
مانند حالت قبل (که از کد متلب استفاده کردیم) در سیمولینک نیز میتوانید پردازشها را به کامپیوتر واگذار کرده و از آردوینو به عنوان واسط استفاده کنید. برای این کار کافیست که بجای کلید Deploy بر روی کلید Run کلیک کنید. در این حالت مانند کاری که با متلب انجام دادیم، پردازش و ارسال دستورات بر عهده کامپوتر خواهد بود. برای اینکه تفاوت این دو حالت (آپلود کردن برنامه بر روی برد و اجرای برنامه از روی کامپوتر) را بهتر متوجه شوید یک بلوک Scope و همچنین یک بلوک Analog Input را به مدل وارد کرده و مقدار آن را برابر ٠ قرار دهید. همچنین یک پتانسیومتر را به پین A0 آردوینو وصل کنید.
این بلوک سیگنال آنالوگ پایه A0 را گرفته و نمایش میدهد. برای مشاهده صحت نتایج، در حین اجرای برنامه پیچ پتانسیومتر را بچرخانید و نتیجه را ببینید.
این برنامه سیمولینک را میتوانید از لینک زیر دانلود کنید:
دانلود برنامه راهاندازی آردوینو با سیمولینک
روشهای دیگری نیز برای ارتباط بین متلب و سیمولینک با آردوینو وجود دارد اما موارد بالا پرکاربردترین آنها هستند.
نتیجه گیری
در این آموزش روشهای استفاده از آردوینو در کنار نرمافزار متلب و سیمولینک را یاد گرفتید. حالا که چند نمونه ساده را پیادهسازی کردید، میتوانید مدلهای پیچیدهترین را نیز امتحان کنید.
در آموزش بعدی، نحوه استفاده از آردوینو در نرمافزار پروتئوس را خواهید آموخت.
نظرات شما باعث بهبود محتوای آموزشی ما میشود. اگر این آموزش را دوست داشتید، همینطور اگر سوالی در مورد آن دارید، از شنیدن نظراتتان خوشحال خواهیم شد.
نظرات (16)