جلسه اول : Micropython چیست؟
سلام دوره آموزش Micropython مقدماتی رو با جلسه اول این آموزش شروع میکنیم. در این جلسه به معرفی میکروپایتون و کاربرد آن در الکترونیک میپردازیم.
میکروپایتون چیست؟
طبق تعریف وبسایت رسمی میکروپایتون : MicroPython یک نسخه کارآمد از زبان برنامه نویسی Python 3 است که شامل زیرمجموعه کوچکی از کتابخانه استاندارد پایتون است و برای اجرا بر روی میکروکنترلرها و در محیطهای محدود بهینه شدهاست.
به طور کلی این زبان برنامه نویسی برای استفاده از قدرت زبان python 3 در سیستمهای محدود مثل میکروکنترلرها طراحی شده است.
Portهای پرکاربرد برای Micropython به صورت زیر است:
- نسخههای مختلف بردها و ماژولهای ESP8266
- نسخههای مختلف بردها و ماژولهای ESP32
- بردها و میکروکنترلر های مختلف STM32
- برد Raspberry Pi Pico و میکروکنترلر آن RP2040
- بردهای رسمی Pyboard سری Pyboard 1.0 و Pyboard D و …
- برد Espruino
- بردهای Teensy
- و تعداد زیادی از Portهای دیگر که کابرد آنها حداقل در ایران کمتر است.
ما در دوره آموزش رایگان Micropython مقدماتی از بردهای زیر استفاده خواهیم کرد:
کی از Micropython استفاده کنیم؟
هدف MicroPython این است که تا حد امکان با پایتون معمولی سازگار باشد تا به شما امکان انتقال کد را به راحتی از cpython (پایتون کامپیوتر) به یک میکروکنترلر یا سیستم Embedded بدهد.
اما سوال این جاست که این سیستم عامل Micropython برای چه پروژههایی مناسب است؟
پاسخ به این سوال کمی مشکل است و به میزان زیادی به port مورد نظر و سطح پیشرفت برنامه نویس در استفاده از این زبان است.
به عنوان مثال در سطح پیشرفته شما میتوانید کتابخانههای زبان C را به سیستم عامل اضافه کنید و نسخه شخصی سازی شده از firmware را استفاده کنید تا دست شما در برنامه نویسی باز باشد.
اما در مجموع مزایا و معایب آن به صورت کلی به شکل زیر است:
مزایای Micropython
- زبان ساده و قابل فهم python
- عدم نیاز به دانش عمیق از سخت افزار میکروکنترلر (مناسب برای رشته کامپیوتر)
- استفاده آسان از پایگاه داده (Database)
- Exception Handling پیاده سازی شده در خود سیستم عامل
- open source و رایگان
- زبان برنامه نویسی شیگرا
- کنترل سطح بالای لایههای سخت افزار
- راحتی کار با شبکه
- پردازش قوی رشتهها و لیستها
- کار با فایل و فایل سیستم قوی
- استفاده از Asyncio برای انجام همزمان کارها
- قابلیت شخصی سازی فیرمور
- استفاده از Script و Iterator (خط فرمان)
- کاهش زمان انجام پروژه
- قیمت پایین بردها و portهای سازگار
- عدم نیاز به زبان C
معایب میکروپایتون
در کنار مزایا هر سیستمی معایب خودش را نیز دارد. معایب میکروپایتون به صورت زیر است:
- سرعت پایین تر نسبت به زبان C
- نیاز به دانش زبان python و برنامه نویسی شیگرا
- نیاز به آشنایی با سیستم عامل Linux در سطح پیشرفته تر برای ساخت firmware شخصی
جمع بندی: برای بیشتر پروژههای معمول استفاده از میکروپایتون با دانش کافی ممکن است. اما در کل در پروژههایی که سرعت بالای سخت افزار نیاز است مثل تاگل کردن سریع یک پایه از GPIO در حد میکروثانیه با دانش سطحی از زبان Micropython ممکن نیست. البته در سطوح پیشرفته برای آن راه حلهایی وجود دارد.
در پروژههایی که کار با تصویر، صوت، نمایشگر و file system لازم است استفاده از میکروپایتون بسیار کار را راحتتر میکند.
کدام Port برای یادگیری بهتر است؟
در بین Portهای میکروپایتون راحتترین و در دسترسترین پورت آن برای یادگیری Micropython در ایران پورتهای مربوط به محصولات شرکت Espressif است که در دسترس هستند. در این دوره آموزش Micropython بر پایه ESP8266 و ESP32 است اما از پورتهای دیگر نیز مثال ذکر میشود.
ابزار لازم برای شروع آموزش Micropython
- برد برای شروع کار : برای شروع یادگیری از یک برد مربوط به ESP8266 یا ESP32 تهیه کنید یا خودتان طراحی کنید یا از بردهای آماده با تبدیل USB به TTL شروع کنید تا آموزش برنامه نویسی راحتتر باشد. برد پیشنهادی ما Nodemcu میباشد.
- کامپیوتر با سیستم عامل لینوکس یا ویندوز یا یک مینی کامپیوتر Raspberry Pi
- مبدل USB به TTL (اگر روی برد موجود است نیازی نیست)
- نرم افزار Thonny IDE
- esptool برای Upload میکروپایتون و یا پاک کردن حافظه Flash
- adafruit ampy برای upload فایلها و Scriptها
- کامپایلر mpy-cross
آموزش نصب و راه اندازی Thonny IDE
این نرمافزار برای چک کردن syntax و استفاده و تست خط فرمان میکروپایتون به کار میرود. کاربرد دیگر این نرم افزار برای مشاهده scriptها و مدیریت فایلهای روی حافظه فلش دستگاه به کار میرود. اگر اتصال نرم افزار به برد برقرار باشد میتوانیم از نرم افزار برای تست و اجرای کد Micropython استفاده کنیم.
برای دانلود Thonny IDE نسخه مورد نظر خود را از لینکهای زیر دانلود کنید:
برای دانلود فایل نصب Thonny روی ویندوز از لینک های زیر استفاده کنید:
دانلود نسخه ویندوز یا مک از سایت رسمی Thonny
برای نصب Thonny روی لینوکس Debian و Ubuntu از کد زیر در ترمینال استفاده کنید:
sudo apt install python3-tk thonny
کد نصب Thonny روی لینوکس Raspberry Pi OS یا همان Raspbian در ترمینال:
sudo apt install thonny
نصب Thonny روی لینوکس Fedora از کد زیر در ترمینال استفاده کنید:
sudo dnf install python3-tkinter thonny
دانلود نسخه لینوکس برای نصب
گاهی اوقات ممکن است با دستورات بالا نسخه آخر دانلود نشود یا نیاز باشد خودتان نصب را انجام دهید. در این صورت میتوانید از لینک زیر دانلود را انجام دهید.
دانلود نسخه لینوکس از فارسکدرز
پس از دانلود از کد زیر برای نصب استفاده کنید:
> tar -zxvf thonny-1.1.0b7-x86_64.tar.gz > cd thonny > ./install
نصب esptool
یکی از ابزارهای لازم برای آموزش Micropython ابزار esptool است که برای نوشتن، خواندن و حذف firmware میکروپایتون به کار میرود.
برای نصب esptool ابتدا باید pyhton نسخه 2.7 یا 3.4 و یا جدیدتر را نصب کنید. سپس از طریق کد زیر esptool را نصب کنید:
pip install esptool
اگر در ویندوز به مشکل برخورد کردید از کد زیر استفاده کنید:
python -m pip install esptool
نصب adafruit ampy
adafruit ampy برای ارسال فایلها و scriptهای pyhton به حافظه دستگاه Micropython استفاده میشود. برای مثال برای ارسال عکسهایی که میخواهید روی نمایشگر نمایش دهید.
برای نصب adafruit ampy از کد زیر استفاده کنید
pip install adafruit-ampy
اگر در ویندوز به مشکل بر خوردید کد زیر را تست کنید:
python -m install adafruit-ampy
در برخی نسخههای لینوکس و MAC ممکن است نیاز به دسترسی root برای اجرای کد باشد:
sudo pip install adafruit-ampy
کامپایلر mpy-cross
اگر میخواهید در اجرای scriptهای میکروپایتون مقدار Ram اشغال شده را به حداقل برسانید ابتدا scriptها را با کراس کامپایلر (cross compiler) کامپایل کنید و سپس از طریق adafruit-ampy آنها را روی حافظه فلش بریزید. این کراس کامپایلر mpy-cross نام دارد.
pip install mpy-cross
و یا
pip3 install mpy-cross
جمع بندی جلسه اول آموزش Micropython
این جلسه برای آشنایی با میکروپایتون و یادگیری نصب نرم افزارها و ابزار مورد نیاز برای آموزش Micropython مقدماتی ، تهیه شد. در جلسه بعدی نصب میکروپایتون روی پورتهای ESP8266 و ESP32 را آموزش میدهیم و با محیط نرمافزار و ابزارها آشنا میشویم.
ویدیوی این جلسه
لینک کامل جلسات این دوزه
دوره آموزش میکروپایتون مقدماتی
۲ comments
با تشکر توضیحات عالی می باشد.
ممنون
لطف دارین