ارتباط آردوینو با متلب و سیمولینک

جمعه, 01 مرداد 1395 11:31
این مورد را ارزیابی کنید
(9 رای‌ها)

 این مطلب قسمت هجدهم از آموزش جامع آردوینو (مبتدی و پیشرفته) است. در این آموزش می‌خواهیم به بررسی نحوه استفاده از آردوینو به همراه نرم‌افزار متلب (MATLAB) بپردازیم. به جرئت می‌توان نرم‌افزار متلب را پرکاربردترین نرم‌افزار در بین مهندسان دانست. متلب یک نرم‌افزار محاسباتی بسیار قوی با قابلیت‌های متنوعی برای طراحی و تحلیل انواع سیستم‌ها دانست. گستردگی این نرم‌افزار باعث شده است تا متلب از یک نرم‌افزار صرفا مهندسی به یک ماشین‌حساب کارآمد برای اکثر رشته‌ها تبدیل شود. متلب مجموعه کاملی از ابزارهای محاسباتی و تولباکس‌های (Toolbox) مختلفی شامل: رباتیک، کنترل اتوماتیک، فازی، شبکه عصبی، انفورماتیک، پردازش سیگنال، تحلیل اقتصادی و غیره را داراست. وسعت متلب نقطه قوت اصلی آن است. در متلب پکیج‌های نرم‌افزاری برای برقراری ارتباط بین متلب و آردوینو وجود دارد بنابراین اگر شما هم می‌خواهید از یک سیستم سخت‌افزاری شامل سنسورها و عملگرها به کمک آردوینو استفاده کنید و همزمان نیاز به ابزارهای متلب دارید، این مطلب می‌تواند به شما کمک کند. در این آموزش لازم است آشنایی اولیه‌ای با متلب داشته باشید.

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

برد آردوینو UNO و کابل رابط

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 را گرفته و نمایش می‌دهد. برای مشاهده صحت نتایج، در حین اجرای برنامه پیچ پتانسیومتر را بچرخانید و نتیجه را ببینید.

دریافت ولتاژ آنالوگ آردوینو

 

این برنامه سیمولینک را می‌توانید از لینک زیر دانلود کنید:

دانلود برنامه راه‌اندازی آردوینو با سیمولینک

روش‌های دیگری نیز برای ارتباط بین متلب و سیمولینک با آردوینو وجود دارد اما موارد بالا پرکاربردترین آنها هستند.


نتیجه گیری

در این آموزش روش‌های استفاده از آردوینو در کنار نرم‌افزار متلب و سیمولینک را یاد گرفتید. حالا که چند نمونه ساده را پیاده‌سازی کردید، می‌توانید مدل‌های پیچیده‌ترین را نیز امتحان کنید.

در آموزش بعدی، نحوه استفاده از آردوینو در نرم‌افزار پروتئوس را خواهید آموخت.

نظرات شما باعث بهبود محتوای آموزشی ما می‌شود. اگر این آموزش را دوست داشتید، همین‌طور اگر سوالی در مورد آن دارید، از شنیدن نظراتتان خوشحال خواهیم شد.

خواندن 15314 دفعه
داوود درستکار

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

کاربرانی که در این گفتگو شرکت کرده اند

نظرات (16)

  1. احسان

سلام ،ممنون بابت مطالب خودتون اما من نیاز به آموزش کامل تر دارم ، و سوالاتی هم در این زمینه دارم ، این آقای درستکار که این متن رو نوشته جایی کلاس ندارن بنده شرکت کنم یا نمیشه باهاشون ارتباط برقرار کرد ؟

لطفا راهنمایی کنید

 
  1. پشتیبانی    احسان

سلام احسان عزیز
آموزش های تکمیلی سعی میشه در سایت باز هم قرار داده بشه. خیر کلاسی فعلا در برگزار نمیشود و می تونید سوالاتتون رو مطرح کنید تا حد امکان دوستان و تیم فنی بررسی و پاسخ دهند.
موفق باشید

 
  1. hadis

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

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

ادامه مطلب
 
  1. پشتیبان    hadis

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

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

ادامه مطلب
 
  1. سروش

سلام خیلی ممنون از مطلب مفیدتون
من برنامه رو توی سیمولینک نموتونم اجرا کنم خطا میده که نمیتونه فایل ایجاد کنه
مشکل چیه؟
ممنون

 
  1. پشتیبان    سروش

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

سلام سروش عزیز
تمام مراحل رو طبق توضیحات از ابتدا به ترتیب انجام بدید. در این صورت مشکلی نخواهید داشت.
علت این مشکل یا نصب نبودن پکیج سیمولینک هست یا اینکه نسخه متلب تون قدیمی هست. من از متلب R2016a استفاده کردم. اگه بخواهید فایل من رو باز کنید نباید نسخه متلب تون قدیمی تر از ۲۰۱۶ باشه. البته این برنامه خیلی ساده هست و به صورتی که توضیح داده شده میتونید خودتون برنامه رو بسازید.
دقت کنید که همونطور که توضیح داده شده برای نسخه های ۲۰۱۷ و قبل از اون باید یه فایل اضافه هم نصب کنید.

ادامه مطلب
 
  1. مسعود

ببخشید نوشتید برنامه نوشتهشده برای matlab را دانلود کنید. اما برنامه ایقرار ندادید!!
از کجا باید داتنلود کنم؟
ممنون

 
  1. سید مصطفی حسینی

سلام من میخواهم برد آردوینو را از طریق متلب برنامه ریزی کنم متاسفانه MATLAB Support Package برای آردوینو رو متلب من نیست و تو اینترنت هم نتونستم پیدا کنم شما ميتوانيد راهنمایی کنید. با تشکر

 
  1. میلاد

با سلام<br />میخوام یک mosfet رو در مدار buck converter(مدار الکترونیک قدرت) کنترل کنم میتونین راهنمایی کنین؟<br />یعنی در کل یک سیگنال دیجیتال در خروجی داشته باشم که به وسیله متلب بتونم کنترلش کنم

 
  1. بطالبلو

[quote name="امیر"]سلام. یه سوال داشتم تو بازار انواع مختلفی وجود داره کدوم نوعش رو برا وصل کردن به متلب انتخاب کنیم[/quote]<br />سلام دوست عزیز<br />فرقی نداره از تمامی مدل ها میش استفاده کرد فقط باید پکیج کتناسب با اون رو نصب کنید.<br...

[quote name="امیر"]سلام. یه سوال داشتم تو بازار انواع مختلفی وجود داره کدوم نوعش رو برا وصل کردن به متلب انتخاب کنیم[/quote]<br />سلام دوست عزیز<br />فرقی نداره از تمامی مدل ها میش استفاده کرد فقط باید پکیج کتناسب با اون رو نصب کنید.<br />پیشنهاد می کنم مطلب "آموزش ارتباط ورودی-خروجی‌های برد آردوینو با متلب و محیط GUI" و "کنترل سرو موتور با آردوینو توسط متلب (Matlab)" از همین سایت رو هم حتما مطالعه بفرمایید<br />موفق باشید

ادامه مطلب
 
  1. امیر

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

 
  1. بطالبلو

[quote name="مرضیه"]با سلام <br />من میخوام یک بازوی رباتیکی رو علاوه بر آردوینو با متلب هم کنترل کنم.آیا کلیات کار همینه؟<br />با تشکر[/quote]<br />ُسلام دوست عزیز<br />بله تقریبا روند کار به همین صورته و باید اردوینو رو به متلب ارتباط...

[quote name="مرضیه"]با سلام <br />من میخوام یک بازوی رباتیکی رو علاوه بر آردوینو با متلب هم کنترل کنم.آیا کلیات کار همینه؟<br />با تشکر[/quote]<br />ُسلام دوست عزیز<br />بله تقریبا روند کار به همین صورته و باید اردوینو رو به متلب ارتباط بدین. ولی برای کنترل بازوهای مکانیکی باید بتونید مسیر به ربات بدین و با کنترل کننده های ساده مثل PID اون رو کنترل کنید که واستون یک سری لینک میفرستم که کنترل سروو موتور و موتور دی سی با آردوینو و متلب و طراحی کنترلر PID برای ربات و برای موتور دی سی هست که خیلی کمکتون خواهد کرد.<br />برای اجرای کنترل کننده های پیشرفته تر هم که نیاز به اجرای معادلات ربات در متلب و ارتباطشون با برد آردوینو هست. ممنون میشم خودتون هم اطلاعاتی داشتین و پیدا کردین با ما در اشتراک بذارین.<br />موفق باشین :-) <br />http://www.mathworks.com/help/control/examples/multi-loop-pid-control-of-a-robot-arm.html;jsessionid=03b877e976cf3c05cfe86ce2e48f<br />https://www.mathworks.com/videos/using-matlab-and-arduino-for-motor-control-100737.html<;br />http://www.leviball.com/downloads/<;br />https://www.youtube.com/watch?v=c6_wPtM9h0c

ادامه مطلب
 
  1. مرضیه

با سلام <br />من میخوام یک بازوی رباتیکی رو علاوه بر آردوینو با متلب هم کنترل کنم.آیا کلیات کار همینه؟<br />با تشکر

 
هیچ نظری در اینجا وجود ندارد
بارگذاری بیشتر ...

نظر خود را اضافه کنید.

ارسال نظر بعنوان یک مهمان
پیوست ها (0 / 3)
مکان خود را به اشتراک بگذارید
عبارت تصویر زیر را بازنویسی کنید. واضح نیست؟

محتوای آموزشی استفاده شده در این سایت محافظت شده می باشد و هرگونه کپی برداری از محتواهای تولید شده توسط تیم صنعت بازار موجب پیگرد خواهد بود. استفاده از مطالب صنعت بازار تنها با ذکر منبع به صورت لینک فعال بلامانع است

ما را دنبال کنید:

Copyright © 2017-2018 | Sanatbazar.com