بوردهای توسعه میکروکنترلر به یکی از ابزارهای اساسی و محبوب کسانی تبدیل شدهاند که خودشان در خانه و به تنهایی پروژههای سختافزاری میسازند. این دستگاههای قابل برنامهنویسی به طور خاص برای پردازش سیگنالهای ورودی و خروجی طراحی شدهاند تا قطعاتی مثل سنسورها، موتورها، ال ای دی ها و… را کنترل کنند. اما قبل از هر چیز باید یک زبان برنامهنویسی یاد بگیرین که میکروکنترلر بتونه درکش کنه و دستگاهها رو برنامهنویسی کنه. در حال حاضر، مشهورترین زبانهای میکروکنترلر میکروپایتون ، آردواینو و سی هستند. هر کدوم از این زبانها مزایا و معایب خودشون رو دارن.
در ادامه به بررسی این زبان های برنامه نویسی میپردازیم تا با تفاوتها و مزیتهای آنها بیشتر آشنا بشیم. همچنین در آخر بهتون میگیم که کدام زبان برنامه نویسی انتخاب بهتری هستش.
همراه ما باشید.
میکروپایتون
میکروپایتون نسخهای از زبان برنامهنویسی پایتون 3 است که به طور خاص برای استفاده در میکروکنترلرها طراحی شده. این زبان برنامهنویسی را دکتر دامیان جورج در سال 2013 منتشر کرد تا نمونهسازی اولیه به سرعت بیشتری انجام بشه و افرادی که با پایتون آشنایی دارن بتونن میکروکنترلرها رو با زبانی مشابه برنامهنویسی کنن.
مشخصات
میکروپایتون یک زبان برنامهنویسی فوقالعاده برای افراد مبتدی هست که میخوان میکروکنترلرها رو برنامهنویسی کنن. خواندن و درک این زبان برای کسانی که هیچ تجربهای در زمینه کدنویسی ندارن آسونه چون از فرمانهایی با ساختارهای ساده استفاده میکنه که برای انسان خوانا هستن. علاوه بر این، این زبان از یک محیط اجرای رپل استفاده میکنه که یک تجربه کدنویسی تعاملی رو به ارمغان میاره.
عملکرد
برای اینکه بتونین با استفاده از میکروپایتون میکروکنترلر رو برنامهنویسی کنین، میان افزاری که شامل مفسر هست، کتابخانهها و برنامههای دیگه در میکروکنترلر ارسال میشن. این قابلیت این امکان رو برای کد میکروپایتون فراهم میکنه تا میکروکنترلر رو به صورت محلی تفسیر و اجرا کنه، نمونهسازی اولیه به سرعت انجام بشه. علاوه بر این، این زبان در هنگام کدنویسی به صورت زنده بازخورد میده.
هرچند، بسته به اینکه پردازندهها چطور کد رو اجرا میکنن، زبانهای مفسری مثل میکروپایتون تا حد زیادی نسبت به زبانهای کامپایلری مثل سی کندتر هستن، نمونهسازی سریعتر هست اما اجرای کد کندتره.
سازگاری
از آنجاییکه میکروپایتون از منابع محلی برای تفسیر و اجرای برنامهها استفاده میکند، میکروکنترلر حداقل باید 256 کیلوبایت حافظه فلش و 16 کیلوبایت حافظه اصلی داشته باشد. متاسفانه، تعدادی از بوردهای مشهور توسعه مثل آردواینو اونو فاقد این ویژگی هستند. با این حال، بوردهای زیادی وجود داره که با میکروپایتون سازگاری دارن.
در حال حاضر، میکروپایتون از بوردهای توسعه مانند ، ESP32، ESP8266، RPi Pico، STM32 و تعدادی از بوردهای آردواینو نظیر Nano 33 BLE، Nano PR2040، Giga R1 و Portenta H7 پشتیبانی میکنه.
جامعه و حمایت
میکروپایتون از سال 2013 که معرفی شد طرفداران زیادی پیدا کرد. افرادی مبتدی با تکیه بر مستندات خوب این زبان میتوانند به آسانی اون رو فرا بگیرند. اگر به کمک بیشتری نیاز داشته باشین، میکروپایتون یک انجمن داره که کاربران محتوای آموزشی و ایدههاشون رو در اون به اشتراک میذارن و به تمامی مشکلات و سوالاتی که در خصوص میکروپایتون داشته باشین جواب میدن.
آردواینو
آردواینو یک پلتفرم متن باز مشهور هست که در درجه اول برای علاقهمندان به قطعات الکترونیکی و کسانی طراحی شده بود که خودشان در خانه و به تنهایی پروژههای سختافزاری میسازند. زبان برنامهنویسی آردواینو مبتنی بر سی است. گروهی از مهندسین، هنرمندان و طراحان ایتالیایی در سال 2015 زبان آردواینو رو منتشر کردن.
مشخصات
زبان برنامهنویسی آردواینو از نسخه stripped-down زبان سی استفاده میکنه و و یادگیری و توسعه به کمک این زبان رو آسون میکنه. اجرای کد به کمک آردواینو به مراتب سریعتر از سایر زبانهای تفسیری است چون کامپایلری است. علاوه بر این، برای راهاندازی آردواینو فقط به مقدار کمی از منابع سیستم نیاز است و به همین جهت با بسیاری از بوردها و میکروکنترلرهای توسعه سازگاری داره.
عملکرد
برخلاف میکروپایتون، آردواینو یک زبان برنامهنویسی کامپایلری هست. به عبارت دیگه، در مرحله اول کد در کامپایل میشه و سپس میکروکنترلر اون رو به عنوان یک برنامه واحد اجرا میکنه.
این قابلیت روند اجرای کد رو تا حد زیادی بهبود میبخشه چون نیازی نیست میکروکنترلر برای تفسیر تک تک خطوط کد از منابع استفاده کنه. در ضمن، کامپایل کردن برنامه اون رو به یک کد ماشینی تبدیل میکنه که میکروکنترلر بدون نصب برنامههای دیگه میتونه اجراش کنه.
از طرف دیگه، این قابلیت سرعت اجرای کد رو هم افزایش میده چون میکروکنترلر میتونه به صورت مستقیم و بدون تخصیص زمان و منابع سختافزاری برای تفسیر کد، برنامه رو اجرا کنه.
بوردهای قابل پشتیبانی
از آنجاییکه فرایند کامپایل کردن از طریق ویرایشگر متن انجام میشه، برای راهاندازی میکروکنترلرها میشه از یک حافظه قلش 32 کیلو بایت و یک حافظه اصلی با اندازه 2 کیلو بایت استفاده کرد. علاوه بر بوردهای آردواینو ، بوردهای زیاد دیگهای هم وجود داره که میتونین به کمک آردواینو از اونا برای برنامهنویسی استفاده کنین.
جامعه و پشتیبانی
آردواینو که از سال 2005 به صورت یک پلتفرم متن باز دراومده، مستندات فوقالعاده ای داره. به طو مستمر این پلتفرم به روزرسانی میشه. جامعه جهانی این پلتفرم یکی از پویاترین جوامع هست و کاربران اون راهنماییها و ایدههاشون رو با سایرین به اشتراک میگذان و به سؤالات دیگران جواب میدن. اگر از آردواینو استفاده کنین به لحاظ پشتیبانی دیگه مشکلی نخواهید داشت.
CircuitPython
CircuitPython نسخهای از پایتون 3 هست که بر مبنای میکروپایتون ساخته شده. هر چند این زبان برنامهنویسی برگرفته از میکروپایتون هست اما چند تا تغییر در اون ایجاد شده که یادگیری میکروکنترلرها رو آسونتر میکنه.
مشخصات
این زبان به نحوی ساخته شده تا به افراد مبتدی کمک کنه برنامهنویسی میکروکنترلرها رو یاد بگیرن. به همین دلیل، این زبان چند تا ویژگی از جمله محیط تعاملی کدنویسی، کتابخانههای تعبیه شده، نحو و ترکیب ساده (سادهتر از میکروپایتون )، مستندات و دستورالعملهای فوقالعاده ای رو در خودش جای داده.
عملکرد
از آنجاییکه این زبان مبتنی بر میکروپایتون هست، خیلی از نقاط قوت و ضعف همین زبان رو هم داره. با توجه به اینکه این زبان ویژگیها و کتابخانههای اضافی داره، برنامه با سرعت کمتری اجرا میشه.
بوردهای قابل پشتیبانی
بوردهای توسعه میکروکنترلر با وجود کتابخانههای تعبیه شده و ترکیب سادهتر برای استفاده از این زبان به منابع بیشتری نیاز دارن. یک میکروکنترلر حداقل به یک پردازنده 8 بیتی، حافظه فلش 256 کیلوبایتی (بهتره 512 کیلوبایت باشه) و حافظه اصلی 32 کیلوبایتی (بهتره 64 کیلوبایتی باشه) نیاز داره.
جامعه و پشتیبانی
توسعه دهنده این زبان به این شناخته میشه که محصولاتی مناسب مبتدیان و تازهکارها میسازه و عرضه میکنه. به همین جهت میتونین مستندات و کتابهایی حول موضوع این زبان پیدا کنین که درکشون خیلی آسونه. این زبان پس از میکروپایتون معرفی شد اما نسبت به میکروپایتون طرفداران بیشتری داره و از طریق انجمن رسمی میتونین بهشون دسترسی داشته باشین.
زبان برنامه نویسی سی
سی یک زبان برنامهنویسی همه منظوره است که دنیس ریتچی در سال 1970 اون رو توسعه داد. سی یک زبان برنامهنویسی کامپایلری است که مهندسی و سایر متخصصین اغلب از اون برای برنامهنویسی میکروکنترلرهایی استفاده میکردند که راندمان بالایی داشتن.
مشخصات
یادگیری زبان سی دشوارتره اما اصلیترین مزیت سی بر میکروپایتون و آردواینو سرعت، کارایی، کنترل و انتقالپذیری اون هست و همین ویژگی سی رو به بهترین زبان برای برنامهنویسی میکروکنترلرهای بهکار رفته در محصولات نهایی تبدیل میکنه.
عملکرد
علاوه بر انتقالپذیری فوقالعاده این زبان، سی به خاطر عملکردش هم شناخته شده است. این زبان میتونه برنامهها رو سریعتر از آردواینو ، میکروپایتون و CircuitPython و حتی میکروکنترلری با منابع کمتر اجرا کنه. دلیلش هم اینه که سی زبان کارآمدتری هست و به برنامههای کمتری نیاز داره. هرچند یک برنامه کامپایل شده آردواینو میتونه مثل یک برنامه سی روی میکروکنترلرهای بدون سیستم عامل (bare-metal) اجرا بشه اما کد ماشینی اون علاوه بر کدی که خودتون نوشتین، کتابخانهها و ابزاهای مورد نیاز کد رو هم شامل میشه که عملکرد رو تضعیف میکنن.
بوردهای قابل پشتیبانی
زبان سی به اندازهای انتقالپذیر است که میشه از اون برای برنامهنویسی تمامی میکروکنترلرهای مبتنی بر آرم استفاده کرد. علاوه بر این، از این زبان میشه در بوردهایی استفاده کرد که مبتنی بر میکروکنترلرهای Atmel AVR، STM32، PIC وMSP هستن.
جامعه و پشتیبانی
زبان برنامهنویسی سی به خاطر نرم افزار های قدرتمند برنامهنویسی و اینکه چند دهه از معرفیاش میگذره، جامعه آنلاین وسیعی داره. اگر به کمک احتیاج داشتین میتونین از طریق انجمن های مختلف، اتاق های گفتگوی زبان سی اقدام کنین.
چه زبانی برای برنامهنویسی بهتر است؟
بهترین زبان برای برنامهنویسی میکروکنترلرها چیه؟ این کار بستگی به شخص داره. زبان سی بهترین گزینه برای افراد حرفهای هست که قطعات الکترونیکی برای تولید طراحی میکنن.
کسانی که تجربه برنامهنویسی ندارن بهتره با CircuitPython شروع کنن چون مستندات و ویژگیهایی داره که یادگیری رو آسون میکنه. کسانی که با پایتون آشنایی دارن میتونن برای برنامهنویسی میکروکنترلرها از میکروپایتون استفاده کنن.
برای بسیاری از افرادی که خودشان در خانه و به تنهایی پروژههای سختافزاری میسازند، آردواینو بهترین زبان است چون عملکرد، انتقالپذیری، ویژگیها و جامعه قابل قبولی داره.