رزبری پای - Raspberry PIمطالب آموزشیمعرفی و مقایسه

میکروپایتون قسمت 3: مرور سریع پایتون برای میکروپایتون

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

سرفصل های این قسمت:

  • آشنایی با انواع داده و متغیرها در میکروپایتون
  • یادگیری عملگرها و نحوه استفاده از آنها
  • تسلط بر ساختارهای کنترلی (شرط‌ها و حلقه‌ها)
  • توانایی تعریف توابع و کار با ماژول‌ها
  • آشنایی با مدیریت خطا (Exception Handling)
  • درک محدودیت‌ها و تفاوت‌های میکروپایتون با پایتون استاندارد

1. انواع داده و متغیرها

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

برد توسعه ESP8266 WEMOS باحافظه 32M

برد توسعه ESP8266 WEMOS باحافظه 32M

🛒 خرید از ECA

برد توسعه وای فای و بلوتوث LOLIN-D32 مبتنی بر ماژول ESP32-WROOM-32

برد توسعه وای فای و بلوتوث LOLIN-D32 مبتنی بر ماژول ESP32-WROOM-32

🛒 خرید از ECA

برد توسعه ESP32 S2 Mini دارای حافظه فلش 4MB

برد توسعه ESP32 S2 Mini دارای حافظه فلش 4MB

🛒 خرید از ECA

انواع داده اصلی:

نوع داده توضیح مثال
int اعداد صحیح (در میکروپایتون معمولاً ۳۲ بیت) x = 42
float اعداد اعشاری (دقت محدود، گاهی ۳۲ بیت) y = 3.14
bool مقادیر True یا False z = True
str رشته‌های متنی name = "Micro"
bytes دنباله‌ای از بایت‌ها data = b'\x01\x02'
list لیست (قابل تغییر) nums = [1, 2, 3]
tuple تاپل (غیرقابل تغییر) point = (10, 20)
dict دیکشنری (نگاشت کلید-مقدار) d = {'key': 'value'}
set مجموعه (اعضای یکتا) s = {1, 2, 3}

نکته مهم: در میکروپایتون، اعداد صحیح می‌توانند تا اندازه ۳۲ بیت باشند و در صورت سرریز به طور خودکار به long integer تبدیل نمی‌شوند (برخلاف پایتون استاندارد). اعداد اعشاری معمولاً با دقت تک‌دقتی (single precision) پیاده‌سازی می‌شوند.

متغیرها:

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

تبدیل نوع:


2. عملگرها

عملگرهای حسابی:

عملگر توضیح مثال
+ جمع 5 + 3 = 8
- تفریق 5 - 3 = 2
* ضرب 5 * 3 = 15
/ تقسیم (نتیجه float) 5 / 2 = 2.5
// تقسیم صحیح 5 // 2 = 2
% باقیمانده 5 % 2 = 1
** توان 2 ** 3 = 8

عملگرهای مقایسه‌ای:

عملگر توضیح مثال
== مساوی 5 == 5 → True
!= نامساوی 5 != 3 → True
< کوچکتر 3 < 5 → True
> بزرگتر 5 > 3 → True
<= کوچکتر یا مساوی 3 <= 3 → True
>= بزرگتر یا مساوی 5 >= 3 → True

عملگرهای منطقی:

عملگر توضیح مثال
and و True and False → False
or یا True or False → True
not نقیض not True → False

عملگرهای انتساب:

عملگر معادل مثال
= انتساب ساده x = 5
+= افزایش و انتساب x += 3 → x = x + 3
-= کاهش و انتساب x -= 2
*= ضرب و انتساب x *= 2
/= تقسیم و انتساب x /= 2

3. ساختارهای کنترلی

الف) شرط if-elif-else

ب) حلقه for

حلقه for برای پیمایش روی دنباله‌ها (لیست، رشته، تاپل، range) استفاده می‌شود.

ج) حلقه while

تکرار تا زمانی که شرط برقرار باشد.

د) دستورات break و continue

  • break: خروج از حلقه
  • continue: پرش به تکرار بعدی

4. توابع (Functions)

تعریف تابع با کلیدواژه def انجام می‌شود. توابع به ماژولار شدن کد کمک می‌کنند.

تعریف تابع ساده:

تابع با پارامتر و مقدار بازگشتی:

پارامتر پیش‌فرض:

محدودیت در میکروپایتون:

  • توابع تو در تو (nested) پشتیبانی می‌شوند اما ممکن است مصرف حافظه بیشتری داشته باشند.
  • closures و lambda نیز وجود دارند (lambda با محدودیت).

مثال lambda:


5. ماژول‌ها و کتابخانه‌ها

ماژول‌ها فایل‌های حاوی کد پایتون هستند که می‌توان آنها را وارد (import) کرد.

ایمپورت ماژول‌های داخلی:

میکروپایتون مجموعه‌ای از ماژول‌های مفید دارد:

  • machine : دسترسی به سخت‌افزار (پین‌ها، تایمر، ADC و …)
  • time : توابع مربوط به زمان و تأخیر
  • math : توابع ریاضی
  • sys : اطلاعات سیستم
  • os : مدیریت فایل‌ها

ایمپورت انتخابی:

ساخت ماژول شخصی:

می‌توانید فایل .py جدیدی روی برد بسازید و آن را import کنید.

فایل myutils.py:

استفاده:


6. مدیریت استثناها (Exceptions)

مدیریت خطا به برنامه اجازه می‌دهد به‌جای توقف ناگهانی، رفتار مناسبی از خود نشان دهد.

ساختار try-except:

استفاده از finally:

نکات در میکروپایتون:

  • مدیریت استثناها مقداری حافظه مصرف می‌کند، پس در حلقه‌های بحرانی از آن کمتر استفاده کنید.
  • خطاهای رایج: NameError, TypeError, IndexError, KeyError.

7. نکات بهینه‌سازی برای میکروپایتون

با توجه به محدودیت منابع، رعایت موارد زیر مفید است:

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

مثال:


8. تمرین‌های عملی

تمرین ۱: ماشین حساب ساده

برنامه‌ای بنویسید که دو عدد از ورودی بگیرد و عملگر (+, -, *, /) را دریافت کرده و نتیجه را چاپ کند. از مدیریت خطا برای ورودی نامعتبر استفاده کنید.

تمرین ۲: اعداد فیبوناچی

تابعی بنویسید که عدد n را گرفته و n عدد اول دنباله فیبوناچی را در یک لیست برگرداند. سپس با حلقه آن‌ها را چاپ کنید.

تمرین ۳: مدیریت LED با تابع

تابعی به نام blink_led(pin, duration, count) بنویسید که یک LED روی پین مشخص را به تعداد دفعات count با تأخیر duration ثانیه چشمک بزند. سپس این تابع را صدا بزنید.

تمرین ۴: ماژول شخصی

یک ماژول به نام conversions.py بسازید که شامل توابع تبدیل دما (C به F و بالعکس) و تبدیل فاصله (km به mile) باشد. سپس در برنامه اصلی آن را import کرده و از آن استفاده کنید.

تمرین ۵: مدیریت خطا در سنسور

فرض کنید قصد دارید مقداری از یک سنسور بخوانید. اگر خطایی رخ داد (مثلاً سنسور وصل نیست)، پیام مناسب چاپ کنید و برنامه متوقف نشود. (می‌توانید با try شبیه‌سازی کنید.)


9. خلاصه جلسه

در این جلسه مروری بر مفاهیم پایه‌ای پایتون داشتیم که برای برنامه‌نویسی با میکروپایتون ضروری هستند. این مفاهیم شامل:

  • انواع داده و متغیرها
  • عملگرها
  • ساختارهای کنترلی
  • توابع و ماژول‌ها
  • مدیریت استثناها

همچنین نکات بهینه‌سازی و تفاوت‌های میکروپایتون با پایتون استاندارد را بررسی کردیم. تمرین‌های عملی به شما کمک می‌کنند این مفاهیم را تثبیت کنید.

در جلسه بعد به ورودی/خروجی دیجیتال می‌پردازیم و با GPIO کار خواهیم کرد.

نوشته های مشابه

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

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا