جستجو برای:
سبد خرید 0
  • خانه
  • وبلاگ
  • کتاب
  • محصولات
    • برنامه نویسی میکروکنترلرها با پایتون
  • تماس با ما
ورود
[suncode_otp_login_form]
گذرواژه خود را فراموش کرده اید؟
عضویت
[suncode_otp_registration_form]

داده های شخصی شما برای پشتیبانی از تجربه شما در این وب سایت، برای مدیریت دسترسی به حساب کاربری شما و برای اهداف دیگری که در privacy policy ما شرح داده می شود مورد استفاده قرار می گیرد.

آموزش تکنولوژِی با رهنوتک
  • خانه
  • وبلاگ
  • کتاب
  • محصولات
    • برنامه نویسی میکروکنترلرها با پایتون
  • تماس با ما
شروع کنید
آخرین اطلاعیه ها
لطفا برای نمایش اطلاعیه ها وارد شوید
0

وبلاگ

آموزش تکنولوژِی با رهنوتک > اخبار > میکروکنترلر > میکروپایتون چیست؟ what is micropython

میکروپایتون چیست؟ what is micropython

5 دی 1403
ارسال شده توسط اساتید رهنوتک
میکروکنترلر
what is micropython

میکروپایتون چیست؟ زبان برنامه‌نویسی مرسوم برای برنامه‌نویسی میکروکنترلرها زبان C و یا با کلاس شده آن ++C است. هرچند به صورت جسته و گریخته زبان‌های دیگری استفاده می‌شود مانند:

  • BASCOM : بر اساس زبان بیسیک است و برای میکروکنترلرهای AVR استفاده می‌شد و امروزه کم کاربرد است
  • ASSEMBLY : یک زبان سطح پایین (نزدیک به سخت‌افزار) است که Performance بالایی دارد اما کار با آن بسیار سخت است و کاربرد آن کم است
  • ARDUINO : بر اساس ++C توسعه داده شده و برای برنامه‌نویسی میکروکنترلرهای ARDUINO استفاده می‌شود.

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

میکروپایتون چیست؟

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

میکروپایتون چیست

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

توجه به یک نکته ضروری است. از نظر فنی میکروپایتون یک مفسر پایتون است (مانند Cpython که مفسر پایتون روی کامپیترها است) و کد نوشته شده توسط شما به زبان پایتون را تفسیر می‌کند اما در باور عموم این‌طور جا افتاده است که میکروپایتون یک زبان برنامه‌نویسی منطبق بر پایتون است که در میکروکنترلرها استفاده می‌شود. به عبارت دیگر به جای استفاده از عبارت “کد پایتونی که برای میکروپایتون نوشته شده” عبارت ساده شده “کد میکروپایتون” استفاده می‌شود. برای آن‌که شما دچار سردرگمی نشوید ما نیز در ادامه این مقاله میکروپایتون را یک زبان برنامه نویسی منطبق بر پایتون که برای استفاده در میکروکنترلرها بهینه شده تصور می‌کنیم.

مزایا و معایب میکروپایتون چیست؟

همانطور که پیش از این اشاره شد یکی از معایب زبان‌های مفسری کند بودن آن‌ها است. در میکروکنترلرها که منابع سخت‌افزاری قدرتمندی ندارند (از جمله میزان ‌RAM, Flash, Clock) سرعت اجرا بسیار مهم است. بنابراین معایب میکروپایتون را به صورت زیر لیست کرد:

  • سرعت اجرای پایین
  • استفاده بالا از RAM و FLASH
  • عدم پشتیبانی از همه میکروکنترلرها (میکروکنترلرهای می‌توانند میکروپایتون را اجرا کنند که حداقل 256 کیلوبایت FLASH و 16 کیلوبایت RAM داشته باشند)
  • کامل نبودن امکانات پشتیبانی از تمام ویژگی‌های میکروکنترلر (میکروپایتون در ابتدای راه است)

حالا که دانستید معایب میکروپایتون چیست نوبت آن رسیده که از مزایای بیشمار آن بگوییم. پیاده‌سازی کتابخانه‌ها و توابع پیچیده (مثلا کتابخانه‌های مربوط به شبکه یا بلوتوث) با زبان‌های سطح میانی و سطح پایین بسیار مشکل و زمان‌بر است. در میکروپایتون به علت ماهیت سطح بالای زبان پایتون و همچنین وجود کتابخانه‌های زیاد و کاربردی از پیش نوشته شده برای پایتون پیاده‌سازی این توابع و کتابخانه‌های بزرگ بسیار ساده است.

میکروپایتون به شدت قابل انتقال است. یعنی کدی را که برای استفاده از میکروکنترلر شرکت رزبری پای نوشته‌اید با تغییرات بسیار اندک و حتی گاهی بدون نیاز به تغییر می‌توانید روی میکروکنترلرهای شرکت STM، شرکت Nordic، شرکت Espressif و هر شرکت دیگری که میکروپایتون از آن پشتیبانی می‌کند اجرا کنید.

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

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

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

میکروپایتون متن باز است و به سرعت در حال توسعه از سمت جامعه عمومی است. ممکن است میکروکنترلری که تا دیروز در میکروپایتون پشتیبانی نمی‌شد امروز پشتیبانی شود (یعنی یک شخص یا یک گروه مفسر میکروپایتون مخصوص آن میکروکنترلر را نوشته باشند) و یا ويژگی‌هایی از یک میکروکنترلر که دیروز در دسترس نبود امروز باشد.

به صورت خلاصه مزایای استفاده از میکروپایتون عبارتند از:

  • پیاده‌سازی آسان الگوریتم‌های پیچیده
  • توسعه کد با سرعت بالا
  • قابلیت انتقال بالا
  • عدم نیاز به یادگیری زبان جدید
  • جامعه کاربری (community) بالا
  • خوانایی بالا
  • قابلیت توسعه بالا
  • عیب‌یابی آسان
  • قابلیت تعمیر و نگهداری بالا
  • متن باز


تفاوت پایتون و میکروپایتون چیست

میکروپایتون بر اساس Python3 و برای استفاده در میکروکنترلرها توسعه داده شده است. یکی از تفاوت‌های بین میکروپایتون و پایتون این است که میکروپایتون کمی کندتر از پایتون اجرا می‌شود اما مصرف RAM کمتری دارد. همچنین هنگام رخداد خطا، راهنمایی‌هایی که پایتون برای رفع خطا به کدنویس می دهد دقیق‌تر است. اما تفتوتی که برای برنامه نویس محسوس است ماژول‌ها و کتابخانه‌ها هستند. ماژول‌هایی از پایتون که در میکروکنترلر استفاده نداشته حذف شده‌اند و ماژول‌هایی مخصوص کار با میکروکنترلرها افزوده شده اند (مانند ماژول machine)


مقایسه میکروپایتون و C

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

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

فریم ور میکروپایتون چیست؟

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

فریم‌ور میکروپایتون معمولا به دو فرمت hex. و dfu. در دسترس است. اگر به فرمت hex. باشد باید با پروگرامر مخصوص آن میکروکنترلر روی آن پروگرام شود اما اگر به فرمت dfu. باشد نیاز به پروگرامر نیست و با استفاده از پورت سریال این فایل روی میکروکنترلر ریخته می‌شود.

میکروپایتون از کدام میکروکنترلرها پشتیبانی می‌کند؟

از نظر فنی هر میکروکنترلری که حداقل 256 کیلوبایت FLASH و 16 کیلوبایت RAM داشته باشد قادر به اجرای میکروپایتون است. اما هر میکروکنترلر فریم‌ور میکروپایتون مخصوص به خود را دارد و باید این فریم ور برای میکروکنترلر مورد نظر شما ساخته شده باشد. از سه منبع می‌توان به فریم‌ورهای میکروپایتون دسترسی پیدا کرد:

  • وبسایت رسمی میکروپایتون
  • فریم‌رهای ساخته شده توسط افراد یا شرکت‌ها که در وبسایت یا گیت‌هاب خود قرار داده‌اند
  • کامپایل فریم‌ور توسط خود شما

انواع میکروکنترلرهایی که توسط میکروپایتون پشتیبانی می‌شوند بسیار زیاد است اما سری‌های معروف آنها عبارتند از:

  • STM32 (کمپانی ST)
  • RP2040 (کمپانی Raspberry Pi)
  • RP2350 (کمپانی Raspberry Pi)
  • ESP8266 (کمپانی Espressif)
  • ESP32 (کمپانی Espressif)
  • NRF (کمپانی Nordic)
micropython mcus

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


IDEهای میکروپایتون

‌IDE محیطی برای کدنویسی و عیب‌یابی است. در ساده‌ترین حالت اگر شما برنامه پایتونی را در یک فایل متنی ساده بنویسید و با پسوند py. ذخیره کنید و سپس این فایل را از طریق پورت سریال روی میکروکنترلر بریزید برنامه شما اجرا خواهد شد. یعنی وجود IDE ضروری نیست اما وجود آن کمک بسیاری برای توسعه آسانتر و سریعتر کدها خواهد کرد. IDEهای میکروپایتون امکانات زیادی از جمله تکمیل خودکار کد، سیستم دیباگینگ، ترمینال محیط REPL، آپلود و دانلود فایل و … را در اختیار شما قرار می‌دهند. معروف‌ترین IDEهای میکرپپایتون عبارتند از:

  • uPyCraft
  • Thonny
  • VScode

uPyCraft محیط ساده و سبکی دارد و نسبت به دو IDE دیگر از امکانات کمتری برخوردار است. این IDE بیشتر برای مبتدیان توصیه می‌شود. تصویری از محیط uPyCraft در ادامه آورده شده است.

upycraft ide

Thonny هم مانند uPyCraft محیط ساده‌ای دارد و نرم‌افزار سبکی است اما امکانات بیشتری دارد و برای کار با میکروپایتون به شدت توصیه می‌شود. Thonny برای کدنویسی میکروپایتون نسبت به دو IDE دیگر محبوب‌تر بوده و جامعه کاربری بالایی دارد. اکثر آموزش‌هایی که رد سطح وب برای میکروپایتون وجود دارد از ‌Thonny استفاده کرده اند. این نرم‌افزار محبوب را می‌توانید از وبسایت رسمی آن در این آدرس دانلود کند. جالب است بدانید خود نرم‌افزار Thoony با پایتون نوشته شده و شما حتی می توانید با اجرای سورس کد آن توسط پایتون به این محیط دسترسی داشته باشید. محیط Thonny به این صورت است :

thoneey-ide

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

vscode ide

با توضیحات این بخش اگر بخواهیم به این سوال پاسخ دهیم که بهترین IDE برای میکروپایتون چیست باید بگوییم در حال حاضر Thonney مناسب‌ترین IDE برای میکروپایتون است.


مثالی از میکروپایتون

در این مقاله قصد آموزش میکروپایتون را نداریم اما برای آنکه چشم شما با کدهای میکروپایتون آشنا شود یک مثال ساده چشمک‌زن روی برد Raspberry Pi pico را برای شما قرار داده‌ایم.

from machine import Pin
from utime import sleep_ms

led = Pin(25, Pin.OUT)

while True:
    led.toggle()
    sleep_ms(1000)

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

در انتها

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

برچسب ها: micropythonraspberrypi picoرزبری پای پیکومیکروپایتون
قبلی PIO چیست؟

پست های مرتبط

what is pio

3 دی 1403

PIO چیست؟

اساتید رهنوتک
ادامه مطلب
rpi pico adc pot

1 دی 1403

راه اندازی ADC رزبری پای پیکو – Raspberry Pi Pico ADC

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

4 مرداد 1403

SPI چیست؟

اساتید رهنوتک
ادامه مطلب
pwm signal

4 مرداد 1403

PWM چیست؟

اساتید رهنوتک
ادامه مطلب
uart diagram

3 مرداد 1403

UART چیست؟ – ارتباط سریال

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

دیدگاهتان را بنویسید لغو پاسخ

جستجو برای:
دسته‌ها
  • RPI pico
  • پروتکل‌های ارتباطی
  • میکروکنترلر
برچسب‌ها
adc micropython pio raspberrypi pico رزبری پای پیکو میکروپایتون
در باره ما

ما آموزشگاه آفلاین رهنوتک را راه‌اندازی کرده‌ایم تا آموزش‌های به روز در زمینه تکنولوژی را به مهندسان عرضه کنیم.

هدف ما از یک سو ایجاد پلی میان دانشجویان با بازار کار و از طرف دیگر ارتقای مهندسین شاغل در حوزه تکنولوژی است.

دسترسی سریع
  • دوره ها
  • اخبار
  • تماس با ما
© 1403 - آموزشگاه آفلاین رهنوتک