خبر و ترفند روز

خبر و ترفند های روز را اینجا بخوانید!

بهترین زبان برای میکروکنترلرها چیست: MicroPython، CircuitPython، Arduino، یا C؟

از کدام زبان برنامه نویسی برای پروژه های میکروکنترلر خود استفاده کنید؟ بیایید چهار بهترین گزینه را بررسی کنیم.

بردهای توسعه میکروکنترلر به یکی از اجزای اصلی جامعه سازندگان تبدیل شده اند. این دستگاه های قابل برنامه ریزی به طور خاص برای پردازش سیگنال های ورودی و خروجی به عنوان راهی برای کنترل ماژول ها و اجزای مختلف مانند سنسورها، موتورها، LED ها و دستگاه های ورودی انسانی (HID) طراحی شده اند.

اما قبل از آن، باید یک زبان برنامه نویسی را یاد بگیرید که میکروکنترلر بتواند آن را برای برنامه ریزی این دستگاه ها تفسیر کند. محبوب ترین زبان های میکروکنترلر امروزی عبارتند از MicroPython، CircuitPython، Arduino (C++ ساده شده) و C. هر کدام از این زبان ها مزایا و معایب خاص خود را دارند.

میکروپایتون

لوگوی MicroPython با مار نشسته روی یک ریزتراشه

MicroPython یک پیاده سازی سبک از زبان برنامه نویسی Python 3 است که به ویژه برای میکروکنترلرها طراحی شده است. در سال 2013 توسط دکتر دیمین جورج برای نمونه سازی سریعتر و به افرادی که قبلاً با پایتون آشنایی داشتند، برای برنامه ریزی میکروکنترلرها با زبان مشابه، منتشر شد.

امکانات

MicroPython یک زبان برنامه نویسی عالی برای مبتدیانی است که می خواهند میکروکنترلرها را برنامه نویسی کنند. تازه‌کارهایی که تجربه کدنویسی ندارند خواندن و درک آن آسان است زیرا از دستورات قابل خواندن توسط انسان در ساختارهای ساده استفاده می‌کند. علاوه بر این، از یک محیط زمان اجرا (REPL) استفاده می کند که امکان تجربه کدنویسی تعاملی را فراهم می کند.

کارایی

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

با این حال، به دلیل نحوه اجرای کد توسط پردازنده ها، زبان های تفسیر شده مانند MicroPython در مقایسه با زبان های کامپایل شده مانند C++ بسیار کندتر خواهند بود. بنابراین، به طور پیش فرض، اگرچه نمونه سازی می تواند بسیار سریعتر باشد، اجرای کد به خودی خود کندتر است.

سازگاری

از آنجایی که MicroPython از منابع محلی برای تفسیر و اجرای برنامه ها استفاده می کند، یک میکروکنترلر باید حداقل 256 کیلوبایت حافظه فلش و 16 کیلوبایت رم داشته باشد. متأسفانه، برخی از بردهای توسعه محبوب مانند Arduino Uno مشخصات لازم را ندارند. با این حال، هنوز تعداد زیادی برد وجود دارد که با MicroPython سازگار هستند.

مطلب مرتبط:   نحوه تبدیل دیکشنری پایتون به لیست

در حال حاضر، MicroPython رسما از بردهای توسعه Pyboard، ESP32، ESP8266، Raspberry Pi Pico، BBC micro:bit، STM32 و چند برد آردوینو مانند Nano 33 BLE، Nano RP2040، Giga R1 و Portenta H7 پشتیبانی می کند.

انجمن و پشتیبانی

از زمان راه اندازی آن در سال 2013، MicroPython از آن زمان تاکنون طرفداران قابل توجهی را به خود اختصاص داده است. مبتدیان باید به راحتی با مستندات خوب MicroPython یاد بگیرند. اگر به کمک بیشتری نیاز دارید، MicroPython همچنین یک انجمن انجمن دارد که در آن کاربران آموزش‌ها، ایده‌ها را به اشتراک می‌گذارند و به انواع مشکلاتی که ممکن است در مورد MicroPython داشته باشید پاسخ می‌دهند.

آردوینو

لوگوی آردوینو

آردوینو یک پلتفرم منبع باز محبوب است که در درجه اول برای علاقه مندان به الکترونیک و DIY طراحی شده است. زبان برنامه نویسی آردوینو بر اساس زبان های برنامه نویسی C و C++ است. زبان آردوینو در سال 2005 توسط گروهی از مهندسان، هنرمندان و طراحان ایتالیایی منتشر شد.

امکانات

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

کارایی

برخلاف MicroPython و CircuitPython، آردوینو یک زبان برنامه نویسی کامپایل شده است. این بدان معناست که ابتدا کد بر روی یک کامپایلر (که قبلاً در Arduino IDE گنجانده شده است) کامپایل می شود و سپس به عنوان یک برنامه کامل توسط میکروکنترلر اجرا می شود.

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

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

تابلوهای پشتیبانی شده

از آنجایی که مرحله کامپایل از طریق IDE انجام می شود، میکروکنترلرها می توانند 32 کیلوبایت حافظه فلش و 2 کیلوبایت رم برای کار داشته باشند. بنابراین جدا از بردهای آردوینو، گزینه های جایگزین زیادی برای برد آردوینو وجود دارد که می توانید برای برنامه نویسی با آردوینو از آنها استفاده کنید. بسیاری از این بردها از میکروکنترلرهایی مانند ATmega328P، ATmega2560، SAMx8E، ESP8266، ESP32 و STM32 استفاده می کنند.

مطلب مرتبط:   WinForms: چگونه چندین تم را به برنامه خود اضافه کنید

انجمن و پشتیبانی

آردوینو که از سال 2005 یک پلتفرم منبع باز است، برخی از بهترین اسناد موجود را دارد. بنیاد آردوینو هر سال به‌روزرسانی‌ها، پشتیبانی و محصولات جدید هیجان‌انگیز را ارائه می‌کند. جامعه جهانی همچنین یکی از فعال‌ترین افراد در اشتراک‌گذاری راهنماها و ایده‌ها و پاسخگویی به مشکلات عیب‌یابی است که ممکن است با آن مواجه شوید. با آردوینو، سطح خوبی از پشتیبانی برای شما تضمین شده است.

CircuitPython

لوگوی CircuitPython شامل یک مار پیچ خورده است

CircuitPython پیاده سازی Adafruit از Python 3 است که بر روی MicroPython ساخته شده است. اگرچه CircuitPython از MicroPython فورک شده است، اما CircuitPython چندین پیشرفت را ارائه می دهد تا یادگیری میکروکنترلرها را آسان و سرگرم کننده کند.

امکانات

CircuitPython برای کمک به مبتدیان برای یادگیری نحوه برنامه نویسی میکروکنترلرها ایجاد شد. برای رسیدن به این هدف، CircuitPython چندین ویژگی از جمله یک محیط کدنویسی تعاملی، کتابخانه های داخلی، نحو ساده (ساده تر از MicroPython) و مستندات و راهنماهای عالی را ارائه می دهد.

کارایی

از آنجایی که CircuitPython مبتنی بر MicroPython است، نقاط قوت و ضعف بسیاری دارد. زمان اجرای برنامه کمی کندتر از MicroPython خواهد بود زیرا CircuitPython ویژگی های بیشتر و کتابخانه های اضافی را ارائه می دهد. با این حال، این تفاوت احتمالاً قابل توجه نیست زیرا CircuitPython برای کار کردن به میکروکنترلرهای توانمندتری نیاز دارد.

تابلوهای پشتیبانی شده

با کتابخانه های یکپارچه و حتی نحو ساده تر، بردهای توسعه میکروکنترلر برای استفاده از CircuitPython به منابع بیشتری نیاز دارند. حداقل، یک میکروکنترلر باید یک پردازنده 8 بیتی، 256 کیلوبایت حافظه فلش (512 کیلوبایت توصیه می شود) و 32 کیلوبایت رم (64 کیلوبایت توصیه می شود) داشته باشد. در حال حاضر، CircuitPython از بیش از 390 برد توسعه پشتیبانی می کند که در وب سایت رسمی فهرست شده اند.

انجمن و پشتیبانی

Adafruit برای تولید محصولاتی که برای مبتدیان مناسب هستند شناخته شده است. به این ترتیب، می‌توانید اسناد و کتاب‌های قابل فهم را در CircuitPython پیدا کنید. اگرچه این زبان تنها در سال 2017 معرفی شد، اما همچنان طرفداران بیشتری نسبت به MicroPython دارد که می توانید از طریق Discord و انجمن رسمی به آنها دسترسی پیدا کنید. مانند بنیاد آردوینو، Adafruit فعالانه به‌روزرسانی‌ها، پشتیبانی و محصولات جدید را ارائه می‌کند، به این معنی که پشتیبانی باید به راحتی پیدا شود.

مطلب مرتبط:   نحوه خراش دادن تصاویر از وب در پایتون

سی

زبان برنامه نویسی C

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

امکانات

اگرچه یادگیری زبان سخت‌تر است، اما مزیت اصلی C نسبت به MicroPython، CircuitPython و Arduino سطح سرعت، کارایی، کنترل و قابلیت حمل آن است. این باعث می شود C بهترین زبان برای برنامه ریزی هر دو میکروکنترلر برای استفاده در محصولات نهایی باشد.

کارایی

جدا از قابلیت حمل عالی، C به خاطر عملکردش معروف است. می تواند برنامه ها را سریعتر از Arduino، MicroPython و CircuitPython اجرا کند، حتی با یک میکروکنترلر با منابع کمتر. این به این دلیل است که C زبان کارآمدتر است و به کمترین وابستگی نیاز دارد. اگرچه یک برنامه آردوینو کامپایل شده می‌تواند، مانند برنامه C، روی سخت‌افزار بدون فلز اجرا شود، کد ماشین آن با کتابخانه‌ها و ابزارهایی که کارایی را کاهش می‌دهند، از قبل آماده شده است.

تابلوهای پشتیبانی شده

زبان C به قدری قابل حمل است که می توان از آن برای برنامه ریزی تقریباً هر میکروکنترلر مبتنی بر Arm استفاده کرد. علاوه بر این، می توان از آن بر روی بردهای مبتنی بر میکروکنترلرهای Atmel AVR، STM32، PIC و MSP استفاده کرد.

انجمن و پشتیبانی

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

با چه زبانی باید برنامه ریزی کرد؟

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

کسانی که تجربه کدنویسی ندارند ممکن است بخواهند با CircuitPython شروع کنند زیرا دارای ویژگی ها و اسنادی است که یادگیری را آسان و سرگرم کننده می کند. کسانی که با پایتون آشنایی دارند، برنامه ریزی میکروکنترلرها با میکروپایتون را آسان خواهند کرد.

و برای اکثریت جامعه DIY/سازندگان، آردوینو همچنان بهترین زبان برای برنامه‌ریزی میکروکنترلرها است، زیرا تعادل فوق‌العاده‌ای از عملکرد، قابلیت حمل، ویژگی‌ها و جامعه ارائه می‌دهد.