مقدمه
اگر با برنامهنویسی برای میکروکنترلرهای STM، ESP و RP2040 آشنا باشید، حتما نام زبان برنامهنویسی میکروپایتون (MicroPython) به گوشتان خورده است.
برای کدنویسی به این زبان، به یک نرمافزار مخصوص نیاز دارید. یکی از معروفترین محیطهای توسعه یکپارچه (IDE) که برای برنامهنویسی به زبان میکروپایتون ایجاد شده، نرمافزار Thonny – Micropython میباشد.
در این آموزش، با نحوه کار با این نرمافزار آشنا خواهید شد. به گونهای که بعد از خواندن این مطلب، میتوانید یک کد ساده به زبان میکروپایتون را برای میکروکنترلر خود بنویسید.
آنچه در این آموزش یاد میگیرید
- آشنایی با نرمافزار Thonny IDE
- آشنایی با نحوه آمادهسازی میکروکنترلر برای پروگرام شدن به زبان میکروپایتون
- آشنایی با زبان میکروپایتون
معرفی زبان برنامهنویسی میکروپایتون
MicroPython یک مفسر زبان برنامهنویسی متن باز به نام پایتون است که کوچکسازی شده است و بر روی بردهای توسعه مبتنی بر میکروکنترلر اجرا میشود. بهجای استفاده از زبانهای پیچیده سطح پایین مانند C یا C++ (آنچه آردوینو برای برنامهنویسی استفاده میکند)، میتوانید با MicroPython به زبان پایتون ̶ که تمیز و ساده است ̶ برای کنترل سختافزار کد بنویسید.
از مزایای اصلی این زبان برنامهنویسی نسبت به زبان C، میتوان به سه مورد زیر اشاره کرد:
- قابلیت تست کد بدون پروگرام کردن میکروکنترلر
- برای اجرا و تست کد نوشته شده، نیازی به کامپایل و آپلود کردن کد روی میکروکنترلر ندارید. شما میتوانید کد را تایپ کرده و نتیجه اجرای آن را توسط میکروکنترلر در لحظۀ بعد مشاهده کنید.
- کتابخانه نرمافزاری گسترده
- مانند زبان برنامهنویسی پایتون معمولی، MicroPython دارای کتابخانههایی برای پشتیبانی از بسیاری از وظایف است. به عنوان مثال، تجزیه دادههای JSON از یک سرویس وب، جستجوی متن با یک عبارت معمولی، یا حتی برنامهنویسی سوکت شبکه با کتابخانههای داخلی برای MicroPython به سادگی قابل انجام است.
- توسعهپذیری
برای کاربران پیشرفته، MicroPython با توابع سطح پایین C++/C قابل توسعه است. بنابراین میتوانید در صورت نیاز، کد سطح بالای MicroPython را با کدهای سطح پایین که سریعتر هستند ترکیب کنید.
همانطور که اشاره کردیم، میکروکنترلرهای مبتنی بر ARM ̶ مانند STM32، ESP32/8266 و RP2040 ̶ قابلیت کار با زبان برنامهنویسی میکروپایتون را دارند. در این آموزش، با نحوه برنامهنویسی ESP32/8266 با این زبان برنامهنویسی آشنا خواهید شد.
لوازمی که به آن احتیاج دارید
قطعات مورد نیاز
برد توسعه ESP-S3-12K دارای بلوتوث و هسته وای فای ESP32-S3 تولید Ai Thinker
*
1
*: از هر برد ESP32 دیگر نیز میتوانید استفاده کنید.
مراحل پروگرام کردن به زبان میکروپایتون در Thonny IDE
جهت آمادهسازی محیط نرمافزاری Thonny IDE، مراحل زیر را به ترتیب طی کنید.
نصب نرمافزار
فایل نصب نرمافزار Thonny Micropython IDE را ازاین لینک دانلود کرده و بر روی سیستم خود نصب کنید.
نصب firmware بر روی ESP32
هیچکدام از میکروکنترلرها به صورت پیشفرض امکان برنامهنویسی به زبان میکروپایتون را ندارند. برای فعال کردن این قابلیت، باید firmware آن را بر روی میکروکنترلر آپلود (flash/upload/burn) کنید.
راههای مختلفی برای انجام این کار وجود دارد. یکی از سادهترین آنها، استفاده از محیط نرمافزار Thonny IDE است. Thonny IDE ابزاری دارد که به شما امکان میدهد به سرعت این Firmware را بر روی برد خود نصب کنید.
راه دیگر، استفاده از ابزار Esptool.py است. نحوه کار با آن در این لینک آموزش داده شده است.
ابتدا روی این لینک کلیک کنید. در صفحه باز شده، لینک Firmware انواع بردها قرار داده شده است. در اینجا بر روی لینک نشان داده شده در تصویر زیر بزنید.
سپس در صفحه باز شده، بر روی لینک نمایش داده شده در تصویر کلیک کنید.
مطابق تصویر زیر، نرمافزار Thonny IDE را باز کرده و وارد قسمت Tools->Options… شوید.
در پنجره باز شده، ابتدا گزینه MicroPython (ESP32) را انتخاب کرده و سپس شماره پورت سریال را تنظیم کنید.
در پایان بر روی گزینه Install or update MicroPython (esptool) بزنید.
در پنجره جدید که در تصویر زیر آمده، ابتدا گزینه Taget port را انتخاب کنید. سپس کلید 2 را بزنید و فایل Firmware دانلود شده را باز کنید.
با این کار، گزینههای MicroPython family، variant و version به صورت خودکار انتخاب و تکمیل میشوند.
در نهایت بر روی Install بزنید تا Firmware بر روی میکروکنترلر شما آپلود شود.
کدنویسی در محیط نرمافزار Thonny IDE
اکنون میتوانید در نرمافزار Thonny IDE کدنویسی کنید.
کد زیر را در محل مشخص شده در تصویر زیر کپی کنید. سپس بر روی کلید شماره 2 بزنید.
from machine import Pin
from time import sleep
pin38 = Pin(38, Pin.OUT)
while True:
pin38.value(0)
sleep(0.5)
pin38.value(1)
sleep(0.5)
با این کار، چراغ ال ای دی بر روی برد ESP32S3 شما شروع به چشمک زدن خواهد کرد.
آپلود کد بر روی میکروکنترلر با Thonny IDE
برای آپلود کردن کد بر روی میکروکنترلر، کافیست دکمه Save as را از منوی File بزنید.
با این کار، پنجره زیر برای شما باز میشود. در اینجا، گزینه MicroPython device را انتخاب کنید.
پس از انجام این کار، میکروکنترلر شما ریست شده و کد آپلود شده اجرا میشود.
اجرای کد به صورت خط به خط در Thonny IDE
شما میتوانید در قسمت Shell نرمافزار Thonny IDE، کد خود را وارد کنید. کدهای وارد شده در این قسمت، با زدن دکمه Enter به صورت لحظهای اجرا میشوند.
این امکانات، به شما اجازه میدهد مشکل برنامه خود را به راحتی پیدا کنید.
یک گام جلوتر
در این آموزش، با مزایای استفاده از زبان برنامهنویسی میکروپایتون و یکی از نرمافزارهای محیط توسعه آن ̶ یعنی Thonny-Micropython ̶ آشنا شدید.
با استفاده از کتابخانههای فراوانی که در دسترس شما قرار دارد، میتوانید کارهای خود را توسعه دهید.
کتابخانههای کاربردی فراوانی برای این زبان برنامهنویسی نوشته شدهاند. نمونههایی از جدیدترین آنها را در اینجا به شما معرفی میکنیم:
Edge-impulse
Impulse پلتفرم توسعه پیشرو در زمینۀ یادگیری ماشین است که توسط بیش از 40000 توسعهدهنده در 65000 پروژه در سراسر جهان استفاده می شود. Edge Impulse تجربه توسعه فوقالعادهای را در زمینه ML در دستگاههای Embedded برای انواع حسگرها، صدا و تصویر فراهم میکند. ما امکان استقرار ML بسیار بهینهشده را بر روی سختافزارهای مختلف از MCU تا CPU و شتابدهندههای هوش مصنوعی فراهم میکنیم.
پروژه OpenMV در زمینه ایجاد ماژولهای بینایی ماشین کمهزینه، قابل توسعه و مبتنی بر پایتون فعالیت دارد و هدف آن، «بینایی ماشین برای آردوینو!» است. در واقع، هدف این است که الگوریتمهای بینایی ماشین را به سازندگان و علاقمندان نزدیکتر کنیم.
Home Assistant نرمافزار رایگان و منبع باز برای اتوماسیون خانگی است که به عنوان یک سیستم کنترل مرکزی برای دستگاههای هوشمند خانگی با تمرکز بر روی کنترل محلی و حریم خصوصی طراحی شده است. می توان از طریق یک رابط کاربری مبتنی بر وب با استفاده از برنامههای همراه برای اندروید و iOS یا با دستورات صوتی به وسیلۀ یک دستیار مجازی پشتیبانی شده مانند Google Assistant یا Amazon Alexa به آن دسترسی داشت.