در این مقاله میخواهیم به زبانهای مختلفی که میتوان با آن برنامهنویسی بردهای میکروکنترلر Arduino را انجام داد بپردازیم. یک رویکرد خاص برای استفاده از هرکدام از زبانها در نظر گرفته شده است. استفاده از هرکدام، چالشهای مخصوص خود را به همراه دارد. بایستی با دانش به این که چه کاری را میخواهید با این برد انجام دهید و کدام بخش پروسه برای شما اهمیت بیشتری دارد به انتخاب زبان موردنظر بپردازید.
در ادامه با ما همراه باشید تا بدانید بهترین زبان برنامهنویسی آردوینو چیست.
۱- C و C++
دلیل اصلی این که اکثر بردهای میکروکنترلر را با زبان C برنامهنویسی میکنند، این است که سطح زبان برنامهنویسی آن نسبت به سایر زبانها به زبان اسمبلی نزدیکتر است؛ بنابراین از زبانهای دیگر سریعتر است و به سختافزارها دسترسی بیشتر و راحتتری دارد.
همانند سایر بردهای میکروکنترلر، زبان اصلی برنامهنویسی آردوینو زبان C است. با تمامی IDEهای برنامهنویسی زبان C، این کار شدنی است. البته توصیه میشود از IDE خود آردوینو برای این کار استفاده شود. تا قبل از انتشار نسخه دوم Arduino IDE، بردهای آردوینو همیشه بهخاطر IDE ضعیفشان مورد نکوهش برنامهنویسهای این حوزه قرار میگرفتند، اما پس از انتشار نسخه دوم، بسیاری از کاربران به استفاده از این IDE بازگشتند.
به برنامهای که در Arduino IDE نوشته میشود،sketch میگویند. برنامهنویسی در sketch در دو تابع بدون ورودی (void) به نام setup() و loop() اتفاق میافتد. تابع اول فقط یکبار در هنگام اتصال اجرا میشود؛ بنابراین کدهای تنظیمات اولیه در آن نوشته میشود. تابع دوم مدام در حال انجام است و کل فرایند تکرارشونده که کد اصلی است در آن نوشته میشود.
مزیت دیگر Arduino IDE، سازگار بودن ماژولهای پرکاربرد ESP با Arduino IDE است. همچنین این IDE توابع پیشفرض برای تنظیمات قطعات را در محیط خود ندارد و درصورتیکه برنامهنویس مستقیماً با آنها کاری نداشته باشد، به مشکلی برنخواهد خورد.
شما می توانید برای تهیه و خرید سلف در انواع مختلف کلیک کنید.
۲- C#
ارتباط سریال یک راه سودمند و انعطافپذیر برای ارتباط آردوینو با کامپیوتر است. شما با کدزنی تابع محور در پروژههای خود تا کنون پیش رفتهاید. به کمک کتابخانهای همانند CmdMessanger، شما میتوانید به زبان متفاوتی کدزنی کنید و از روش ارتباط با سریال فراتر روید.
شما میتوانید CmdMessanger را بر روی Microsoft’s Visual Studio یا هر IDE دیگری که برای C# مناسب است اجرا کنید. از طریق این کتابخانه میتوانید ارتباط دوطرفهای میان آردوینو و کامپیوتر همانند صدازدن توابع، ارسال/دریافت دستورات خود داشته باشید.
روش دیگر برنامهنویسی آردوینو با C#، استفاده از یکی از برد از زیرمجموعههای بردهای آردوینو به نام Meadow F7v2 Dev Module ساخت شرکت Wilderness Labs است. چون بر مبنای استاندارد .NET ساخته شده است، ماژول Meadow کد C# را به مستقیماً بهصورت Native اجرا میکند. این ماژول یک میکروکنترلر کاملاً متفاوت با سایر بردهای آردوینو است.
برای یادگیری یادگیری مقدمات آردوینو میتوانید مقاله آموزش برنامهنویسی آردوینو از صفر را بخوانید.
۳- Python
با این که برد آردوینو به طور مستقیم نمیتواند کد برنامهنویسی پایتون را اجرا کند، این امکان وجود دارد که با استفاده از پایتون از طریق ورودی سریال با برد بتوان ارتباط برقرار کرد. این کار برای سیستمهای Unix بسیار ساده است، اما اگر از طریق یک کامپیوتر قرار است ارتباط سریال برقرار کنید این کار با pySerial شدنی است.
شما میتوانید pySerial را از سایت توسعهدهنده آن دانلود کنید.
از طریق صفحه Arduino Documentation، میتوانید اطلاعات بیشتری درباره خواندن و نوشتن اطلاعات با استفاده از pySerial کسب کنید، اما بهتر است زمانی این کار را انجام دهید که یک مهارت اولیه در پایتون دارید و قصد دارید با استفاده از این زبان، برنامه خود را روی آردوینو بریزید.
میتوانید از کتابخانههایی مثل pyFirmata نیز استفاده کنید . همچنین پلتفرم دیگری مانند MicroPython وجود دارد که میتواند دستورات پایتون را بر روی برد آردوینو بریزد. به بردهایی که با استفاده از این پلتفرم برنامهنویسی میشوند، pyboard میگویند و برای برنامهنویسی آنها به OpenMV IDE نیاز داریم.
زبان برنامهنویسی پایتون گزینه مناسبی برای نوشتن یک برنامه یکپارچه روی آردوینو است. این زبان بهگونهای طراحی شده است که نوآور باشد و بهاینترتیب اغلب بهعنوان جاپایی برای سایر زبانهای برنامهنویسی پیشنهاد میشود. کارکردن با این زبان به شما کمک میکند تا اگر روزی قصد داشتید با بردهای دیگری همچون رزبری پای که زبان اصلی کار با پایههایشان پایتون است کار کنید، این کار برایتان سادهتر باشد.
۴- XOD
XOD یک ابزار قابل دانلود است که همانند یکرویه بر Arduino IDE اجرا میشود. همچنین یک نسخه مرورگر سریع آن نیز موجود است. خروجی برنامه هیچ تفاوتی با برنامهنویسی عادی آردوینو ندارد؛ بنابراین برای شروع برنامهنویسی آردوینو میتواند گزینه مناسبی باشد. XOD برای هرکسی که هنوز آماده یادگیری یک زبان برنامهنویسی به طور کامل و جامع نیست، میتواند گزینه مناسبی باشد تا کاربران مفاهیم کلیدی را بدون درگیرشدن با چالشهای کدزنی یاد بگیرند.
۵- Snap4Arduino
Snap4Arduino بر اساس روش برنامهنویسی تصویری drag-and-drop ( برداشتن بلوکها و قراردادن در محلی) توسعهیافته در Berleley است. تجربه کار با این پلتفرم بسیار متفاوت و لذتبخش است، زیرا تمامی عملیات را بهصورت مصور میتوانید بررسی کنید. این بدین معنا نیست که برنامهنویسی بسیار سادهتر است، بلکه برنامهنویسی بر مبنای UI (رابط کاربری) نیز چالشهای خود را به همراه دارد.
به یاد داشته باشید که برای استفاده از Snap4Arduino بایستی StandardFirmata را بر روی آردوینو خود نصب داشته باشید. برای این کار مطابق شکل زیر از Exampleها وارد بخش Firmata شوید و برنامه را باز کنید، سپس آن را بر روی آردوینو خود آپلود کنید تا بتوانید با استفاده از Snap4Arduino با آردوینو خودکار کنید.
۶- Matlab & Simulink
در برنامه متلب میتوان افزونههای آردوینو را اضافه کرد و با دستورات زبان متلب بسیاری از پروژههای آردوینو را اجرا کرد. دلیل استفاده از این زبان برای برنامهنویسی آردوینو قدرت شبیهسازی و مدلسازی ریاضی آن است. برای طراحی یک سیستم حلقه بسته کنترلی میتوان یک سیستم حلقه بسته در محیط شبیهسازی سیمولینک طراحی کرد و از بردهای آردوینو بهعنوان کنترلکننده استفاده کرد. همچنین میتوان اطلاعات سنسور را با استفاده از آردوینو خواند و با ارتباط سریال آن را برای کامپیوتر فرستاد.
طبیعتاً برای دسترسی به تمام قابلیتهای بردهای آردوینو بهتر است از IDE اصلی آردوینو استفاده کرد، اما برای پیادهسازی مدلسازی با استفاده از میکروکنترلر آردوینو بهتر است از افزونههای آردوینو متلب استفاده کرد. شما میتوانید در بخش Add-on ها افزونه مربوط به بردهای آردوینو را دانلود کنید و فضای مدلسازی متلب را به سختافزار خود متصل کنید.
در واقع وقتی شما در فضای شبیهسازی سیمولینک از برد آردوینو استفاده میکنید، مشابه سایر زبانهای سطح بالا تمامی جزئیات مدلسازی بهصورت کد C تبدیل میشود و روی برد آردوینو ریخته میشود.
جمعبندی
روشها و زبانهای متعددی برای برنامهنویسی بردهای آردوینو وجود دارد که دلیل وجود آنها کاربردهای متنوع این برد است. این تنوع گاهی برای تسهیل یک کاربرد خاص است که انجام آن با IDE اصلی شدنی است، اما ممکن است در بعضی از کاربردهای پیچیده، درگیرشدن برنامهنویس با برخی از چالشهای کدنویسی زبان سطح متوسطی مثل C بسیار سخت باشد و در آن شرایط تغییر زبان و استفاده از قابلیتهای آمادهسازی شده نتیجهای بهتر را رقم بزند.
برای تهیه و خرید انواع بردهای آردوینو میتوانید از فروشگاه جم ترونیک دیدن کنید.