برد Esp32 برد Nodemcu میکروپایتون Micropython

میکروپایتون با ESP32 بخش سوم: سینتکس‌های پایتون ۳ در میکروپایتون

نوشته شده توسط CiferTech

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

میکروپایتون با ESP32 بخش سوم - دیجی اسپارک

 


میکروپایتون MicroPython


تا به امروز زبان برنامه نویسی پایتون Python، زبانی همه منظوره و قدرتمند معرفی شده که البته همینطور است. اما در مواردی این زبان برنامه نویسی می‌تواند انتخاب اول برای پروژه نباشد. برای مثال در بحث نرم افزارهای Embedded ، زبان C همواره در صدر جدول می‌باشد. این موضوع دلیلی شد برای متولد شدن زبان برنامه نویسی MicroPython تا جای خالی پایتون را در این موارد پر کند. MicroPython پیاده سازی مجدد پایتون ۳ است که برای میکروکنترلرها و سیستم های امبدد هدف گذاری شده است. MicroPython بسیار شبیه پایتون معمولی است. بنابراین، اگر از  قبل می دانید که چگونه در پایتون برنامه نویسی کنید، می دانید که چگونه در MicroPython برنامه نویسی کنید.

 


زبان و پیاده سازی


MicroPython با هدف پیاده سازی استاندارد Python 3.4 (با ویژگی های انتخاب شده از نسخه های بعدی) با توجه به نحوه ارائه زبان، و بسیاری از ویژگی های MicroPython یکسان توصیف شده. تفاوت بین MicroPython و CPython همانطور که در آموزش اول ذکر شد، بیشتر مربوط به کتابخانه و انواع استاندارد ها است، اما همچنین برخی از ویژگی های سطوح هر زبان با یکدیگر تفاوت دارد.
میکروپایتون در ESP32 - دیجی اسپارک
  • حالت مفسر تعاملی در MicroPython
این بخش برخی از ویژگی های حالت مفسر تعاملی MicroPython را در بر می گیرد. اصطلاحی که معمولا برای این مورد استفاده می شود، REPL (read-eval-print-loop) است که برای اشاره به این درخواست تعاملی استفاده خواهد شد. در تایپ عبارات پایتون نهایت به دو نقطه ختم می شوند، به عنوان مثال در if, for, while سپس این اعلان به سه نقطه تغییر می کند و با ۴ فاصله ایجاد می شود. همچنین وقتی return را انتخاب کنیم، خط بعدی در همان سطح تورفتگی برای عبارات در صورت لزوم ادامه خواهد یافت. اگر کلید backspace را فشار دهیم، این سطح لغو می شود.

  • حالت تکمیل خودکار
هنگام تایپ دستور در ادیتور، اگر خط تایپ شده تا اینجا مربوط به ابتدای نام چیزی باشد، با فشار دادن TAB موارد احتمالی قابل وارد شدن نشان داده می شود. به عنوان مثال، ابتدا با وارد کردن ماژول import machine، و فشار دادن RETURN. سپس m را تایپ کرده و TAB را فشار دهید. شاهد خواهید بود که به شما موارد مرتبط را نمایش خواهد داد.

  • قطع برنامه در حال اجرا (Interrupting)
با فشار دادن Ctrl-C می توانید یک برنامه در حال اجرا را قطع کنید. این یک KeyboardInterrupt را افزایش می دهد که شما را به ادیتور بازمی گرداند.
  • Paste mode

اگر می خواهید برخی از کدها را در پنجره ترمینال خود وارد کنید، ویژگی auto-indent خودکار همه چیز را بهم می ریزد. به عنوان مثال، اگر کد پایتون زیر را داشتید، اگر Ctrl-E را فشار دهید، سپس وارد حالت paste mode می شوید، که اساسا ویژگی auto-indent را خاموش می کند و اعلان را از >>> به === تغییر می دهد. Paste Mode اجازه می دهد تا خطوط خالی جایگذاری شود. متن جایگذاری شده مثل یک فایل، وارد شده است. و فشار دادن Ctrl-D از paste mode خارج می‌شود.

 

  • Soft reset

با soft reset، مفسر پایتون مجددا تنظیم می شود، اما سعی می کند روشی که با آن به صفحه MicroPython (سریال USB یا Wifi) متصل شده اید تنظیم مجدد و ریست نشود. با فشار دادن Ctrl-D یا با اجرای کد، کد پایتون را می توانید از ادیتور تنظیم مجدد را انجام دهید.

 

  • متغیر های ویژه
وقتی از  ادیتور استفاده می کنید، ممکن است محاسباتی را انجام دهید و نتایج را ببینید. MicroPython نتایج عبارت قبلی را در متغیر _ (underscore) ذخیره می کند. بنابراین می توانید از زیر خط یا underscore برای ذخیره نتیجه در یک متغیر استفاده کنید. برای مثال،

 


پرونده های mpy.


MicroPython مفهوم یک فایل .mpy را تعریف می کند که یک قالب پرونده دودویی است و کدی از پیش کامپایل شده را در خود دارد و می تواند مانند یک ماژول معمولی .py وارد شود. فایل foo.mpy را می توان از طریق import foo وارد کرد، به شرطی که foo.mpy را به روش معمول توسط import machinery پیدا کنیم. معمولا هر فهرست ذخیره شده در sys.path به ترتیب جستجو می شود. ابتدا هنگام جستجوی یک فهرست خاص foo.py جستجو می شود و اگر این مورد یافت نشد foo.mpy جستجو می شود، در صورت یافت نشدن هیچ کدام، جستجو در فهرست بعدی ادامه می یابد. به همین ترتیب، foo.py بر foo.mpy اولویت خواهد داشت.
  • نسخه و سازگاری پرونده های mpy.
    یک فایل .mpy داده شده ممکن است با یک سیستم MicroPython داده شده سازگار باشد یا نباشد. سازگاری براساس موارد زیر است:
  1. نسخه فایل mpy. این نسخه فایل باید با نسخه پشتیبانی شده توسط سیستم در حال بارگیری آن مطابقت داشته باشد.
  2. ویژگی های Bytecode مورد استفاده در پرونده mpy. که دو ویژگی bytecode وجود دارد که باید بین فایل و سیستم مطابقت داشته باشند.
  3. بیت های کوچک صحیح، فایل mpy. به حداقل تعداد بیت های یک عدد صحیح کوچک نیاز دارد و سیستم در حال بارگذاری آن باید حداقل از این تعداد بیت پشتیبانی کند.
  4. معماری بومی، اگر فایل mpy. حاوی کد ماشین بومی باشد، معماری آن کد ماشین را مشخص می کند و سیستم در حال بارگیری آن باید از اجرای کد آن معماری پشتیبانی کند.

 


MicroPython در میکروکنترلرها


MicroPython طوری طراحی شده است که می تواند روی میکروکنترلرها کار کند. که این میکرو ها محدودیتهای سخت افزاری دارند که ممکن است برای برنامه نویسان با آن ها آشنا نباشند. به طور خاص میزان حافظه RAM و حافظه ذخیره ناپذیر (حافظه فلش) محدود است. از آنجا که MicroPython با استفاده از کنترلرهای مبتنی بر معماری های مختلف کار می کند، روش های ارائه شده برای حل این موضوع، عمومی هستند: در برخی موارد لازم است اطلاعات دقیق را از مستندات خاص سیستم عامل دریافت کنید. این مورد را در آموزش های بعدی به شکل گسترده در هنگام تست مثال های مختلف آزمایش خواهیم کرد.


کلام آخر با سایفر


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

 

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

 

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

 

درباره نویسنده

CiferTech

فقط 10 نوع آدم در این دنیا وجود داره، اونی که باینری میفهمه و اونی که باینری نمیفهمه! ^-^

~ اینستاگرام: CiferTech

تبادل نظر و رفع عیب با ثبت دیدگاه