بررسی چهار برد ارزان قیمت برای یادگیری میکروپایتون
قبل از شروع مطالعه این بلاگ تمامی تصورات قبلی و حتی جست و جوها را از ذهن پاک کنید. ورود به یک جامعه کاربری (کامییونیتی) جدید نیاز به پذیرفتن چالش و هزاران خطا را دارد و شما انتخاب میکنید که چه جایگاهی در این جامعه کاربری داشته باشید. میکروپایتون Micropython چالش اجرای پروژه های الکترونیک بر پایه پایتون را حل کرده است. قبلا برای استفاده از پایتون تنها برد در دسترس با بیشترین امکانات رزبری پای Raspberry Pi بود که توسط پایه های GPIO با سنسورها و ماژول ها ارتباط برقرار میکرد.
اما باز هم چالش های پیچیده ای وجود داشت که عملا استفاده از پایتون را محال کرده بود. میکروپایتون با هدف اجرای کدهای پایتون بر روی میکروکنترلرها طراحی شده است تا بتواند از بردهای گسترده تری برای اجرای پروژه ها با زبان پایتون پشتیبانی کند. در این بلاگ به بررسی ارزان ترین و کاربردی ترین بردهای میکروکنترلر که از میکروپایتون پشتیبانی میکند، خواهیم پرداخت. هدف ما ارتقا دانش کاربران فارسی زبان است. همچنین رشد اطلاعات عمومی مدیران در شرکتهای مختلف را مد نظر داریم. بنابراین اگر این مطلب از بلاگ دانشجو کیت برای شما ارزشمند بود و به اطلاعاتتان اضافه کرد، آنرا با دیگران به اشتراک بگذارید تا دانش فنی مدیرها و کاربران فارسی زبان در این حوزه و IoT رشد پیدا کند.
برد میکروکنترلر ESP8266
میکروکنترلر ESP8266 که به صورت تراشه است قابلیت اجرا و کار بر روی بردهای میکروکنترلر را دارد. کمپانی ها و تولید کننده ها برای ساخت بردهای جدید از این تراشه استفاده میکنند تا بتوانند یک برد کامل با قابلیت های کاربردی را عرضه کنند. تراشه ESP8266 از وای فای 802.11 b/g/n Wi-Fi پشتیبانی میکند و برای اجرای پروژه های تحت پلتفرم انتخاب مناسبی است.
ماژول ESP8266 یک ماژول Wi-Fi کوچک با پردازندهی میکروکنترلر داخلی است که به راحتی قابل برنامهنویسی است. انتخاب ESP8266 به عنوان یک ابزار یادگیری برای میکروپایتون دارای چندین دلیل است. ماژول ESP8266 به عنوان یک ماژول Wi-Fi با قیمت مناسب شناخته میشود و در بازار به راحتی دسترسی دارد. این ارزانی به شما کمک میکند تا بدون هزینههای بالا ابتداییترین مراحل یادگیری را طی کنید.ESP8266 با یک جامعه فعال از توسعهدهندگان و طراحان همراه است. این به شما امکان میدهد تا با استفاده از منابع آموزشی با افراد دیگر تعامل داشته باشیدESP8266 به طور رسمی توسط میکروپایتون پشتیبانی میشود.
به شما این امکان را میدهد که با استفاده از زبان برنامهنویسی میکروپایتون به راحتی با ماژول ارتباط برقرار کرده و کد بنویسید.ESP8266 درواقع یک میکروکنترلر با پردازنده و واحد Wi-Fi یکپارچه است، این به شما این امکان را میدهد که بدون نیاز به اتصالات خارجی، از ویژگیهای مختلف سختافزاری ماژول بهرهبرداری کنید.با توجه به این موارد، ESP8266 به عنوان یک انتخاب مناسب برای یادگیری و تجربه کردن برنامهنویسی میکروپایتون در زمینه اینترنت اشیاء (IoT) و پروژههای مرتبط با Wi-Fi میتواند بسیار مفید باشد.
- نوع: Tensilica Xtensa LX106
- فرکانس: تا 80 مگاهرتز
- حافظه فلش داخلی: 512 کیلوبایت یا 4 مگابایت
- حافظه رم: 80 کیلوبایت
- Wi-Fi: 802.11 b/g/n با پشتیبانی از WPA/WPA2
- GPIO: دارای پایههای ورودی/خروجی عمومی با قابلیت برنامهریزی
- UART: برای ارتباط سریال با دیگر ماژول ها
- SPI: برای ارتباط با حافظهها
- I2C: برای ارتباط با سنسورها و نمایشگرها
- ADC: تبدیل آنالوگ به دیجیتال با ورودیهای آنالوگ
- PWM: تولید سیگنالهای پالسعریض برای کنترل موتورها
- قابلیت ارتباط با سرورها و ابری از طریق پروتکلهای HTTP، MQTT
برد میکروکنترلر ESP32
اگر علاوه بر وای فای WIFI به بلوتوث Bluetooth هم نیاز دارید، این بار برد ESP32 انتخاب مناسبی است. تراشه ESP32 با همین دو ویژگی نقش مهمی را برای تولید کننده های بردهای میکروکنترلی ایفا کرده است. اگر آخرین بلاگ های کمپانی M5Stack را دیده باشید، از برد با تراشه ESP32 برای کنترل ماشین لکسوس استفاده کرده است که این نشان دهنده شروع تغییرات بزرگ و استفاده از میکروکنترلرهای از قبل برنامه ریزی شده است.
میکروکنترلر ESP32 یک تراشه کامپیوتری کوچک و قدرتمند است که برای کاربردهای الکترونیکی، اینترنت اشیا (IoT)، پروژههای ساخته خود و اتصال سنسورها به شبکهها و اینترنت مناسب است. این میکروکنترلر از معماری ESP8266 پیشرفتهتر بوده و قابلیتهای بیشتری دارد. ESP32 دارای دو هسته پردازشی به نامهای "CPU0" و "CPU1" است که با همکاری کار میکنند. هستههای پردازشی از نوع Tensilica Xtensa LX6 با سرعت 240 مگاهرتز هستند. همچنین، ESP32 دارای حافظه فلش داخلی و حافظه رم (RAM) برای اجرای برنامهها و ذخیره دادهها است.
یکی از ویژگیهای مهم ESP32، قابلیت اتصال به شبکههای بیسیم مانند وایفای (Wi-Fi) و بلوتوث است. این امکان به شما میدهد که برد خود را به اینترنت متصل کنید یا به ماژول های دیگر بلوتوث متصل شوید. ESP32 دارای ورودی و خروجی دیجیتال و آنالوگ (GPIO) است که امکان کنترل انواع سنسورها، خروجیها و ورودیها را میدهد. همچنین دارای پورتهای سریال (UART، SPI، I2C) است. برای برنامهنویسی ESP32 میتوانید از محیطهای توسعه مختلفی مانند Arduino IDE، PlatformIO و MicroPython استفاده کنید. این محیطها به شما ابزارهایی برای برنامهنویسی، ارسال کد به برد و اشتراکگذاری برنامهها فراهم میکنند.
برد ESP32 از پروتکلهای ارتباطی مختلف مانند MQTT، HTTP، WebSocket پشتیبانی میکند که امکان ارتباط با سرورها را میدهد. برای کسانی که ترجیح میدهند از زبان برنامهنویسی Python استفاده کنند، ESP32 از میکروپایتون (MicroPython) نیز پشتیبانی میکند که اجازه میدهد برنامهنویسی با این زبان راحتتر و سریعتر انجام شود. با استفاده از ESP32، میتوانید پروژههای مرتبط با اینترنت اشیا (IoT) انجام دهید.
- دو هسته پردازشی Tensilica Xtensa LX6 با سرعت 240 مگاهرتز
- حالت نهانسازی داده و برنامه
- حافظه فلش داخلی: 4MB تا 16MB
- حافظه RAM: 520KB تا 8MB
- Wi-Fi: 802.11 b/g/n/e/i
- بلوتوث: Bluetooth 4.2 و Bluetooth Low Energy (BLE)
- پورتهای GPIO (ورودی/خروجی دیجیتال)
- ورودی آنالوگ: تعداد محدودی پین آنالوگ
- پورتهای سریال: UART، SPI، I2C
- پورتهای PWM (عرض پالس متغیر)
- ورودی/خروجی کمیتهشده (I2S)
- خروجی تایمر (PWM، Pulse Counter)
- SPI (Serial Peripheral Interface)
- I2C (Inter-Integrated Circuit)
- UART (Universal Asynchronous Receiver-Transmitter)
- CAN (Controller Area Network)
- Ethernet (از طریق پردازندههای خارجی)
- پردازشگر ULP (Ultra Low Power) برای اجرای کد در حالت خوابیده
- آنتن Wi-Fi و بلوتوث داخلی
- ورودی تغذیه: 2.2V تا 3.6V
- جریان بسیار پایین (ULP): حدود 5 میکروآمپر
- میکروپایتون (MicroPython)
- PlatformIO
- Arduino IDE
- زبانهای برنامهنویسی C/C++
- قابلیت برنامهنویسی OTA (Over-The-Air) برای بهروزرسانی بیسیم برنامهها
- پشتیبانی از امنیت و رمزنگاری
برد میکروکنترلر رزبری پای پیکو Raspberry pi Pico & Pico W
رزبری پای پیکو Raspberry Pi PICO یک برد میکروکنترلر بر پایه تراشه RP2040 اما اینبار در یک ظاهر و کارآیی کاملا متفاوت عرضه شده است. شاید در نگاه اول برد رزبری پای زیرو در ذهن شما تداعی شود اما سخت در اشتباهید :)) برد رزبری پای جا پای بردهای امبدد مانند STM, ARDUINO گذاشته است. انتخاب سخت افزار همیشه سخت بوده اما در حال حاضر با معرفی رزبری پای پیکو انتخاب بین خوب و خوب تر شده است.
رزبری پای پیکو برخلاف دیگر بردهای خانواده اش فاقد اسلات میکرو اس دی MICRO SD است و فقط برای برنامه نویسی با GPIO ها ساخته و طراحی شده است. برنامه نویسی این برد و آپلود کدها هم متفاوت است و از طریق درگاه USB امکان پذیر است. رزبری پای Pico یک برد توسعه یافته بر پایه تراشه RP2040 است. RP2040 یک پردازنده ی ۳۲ بیتی dual ARM Cortex-M0+ Microcontroller است. تراشه از یک سیلیکون ۴۰nm با ابعاد ۷X7 میلی متری از پکیج QFN-56 SMD است.
فرکانس پردازنده ۱۳۳MHz و حافظه SRAM برابر با ۲۶۴KB است. این تراشه فاقد حافظهی EEPROM و FLASH داخلی است و پس از ریست بوت لدر فایرمور را از حافظه فلش خارجی و یا از حافظه SRAM درگاه USB بارگیری میکند.برد رزبری پای پیکو از ۴۰ ردیف پین هدر با استایل ۲۱X51 با ضخامت ۱ میلی متری است. از این ۴۰ پایه ۲۶ پایه منحصرا با ولتاژ ۳٫۳ ولت برای GPIO یعنی پایه های ورودی و خروجی است. از این ۴۰ پایه ۲۳ برای پایه های دیجیتال و ۳ پایه به صورت ADC است. از پایه های دیجیتال برای اتصال سنسورها و ماژول ها با ورودی و خروجی دیجیتال و از پایه های آنالوگ با رابط ADC برای سنسورهای آنالوگ استفاده میشود. دقت داشته باشید تمامی پایه های دارای ولتاژ فیکس ۳٫۳ ولت است.
برنامه نویسی رزبری پای پیکو از طریق درگاه USB امکان پذیر است به این صورت که برای انتقال کد از درگ اند دراپ DRAG & DROP استفاده میکنیم. کد نوشته شده را با نشانگر موس در یک فایل ذخیره و پس از اتصال رزبری پای پیکو به سیستم مورد نظر آن را به پوشه باز شده انتقال میدهیم و برنامه بر روی برد اعمال میشود. برای اینکار از تکنولوژی SWD یا همان Serial Wire Debug استفاده شده است که میتواند سیستم را ریست کرده و سپس کد را بدون دخالت و انتخاب کلیدی بر روی برد بارگیری و اجرا کند.
- دارای یک پردازنده ARM Cortex-M0+ با فرکانس 133 مگاهرتز
- حافظه فلش داخلی: 2 مگابایت
- حافظه RAM: 264 کیلوبایت
- 26 پین GPIO (ورودی/خروجی دیجیتال)
- پورتهای PWM (عرض پالس متغیر) و PIO با توانمندیهای ویژه
- پورتهای SPI، I2C، UART و آنالوگ داخلی
- پورتهای I2S و PIO برای کاربردهای خاص
- پشتیبانی از اتصال به سنسورها، ماژولها
- SPI (Serial Peripheral Interface)
- UART (Universal Asynchronous Receiver-Transmitter)
- ولتاژ تغذیه: 3.3 ولت
- محیط توسعه MicroPython
- محیط توسعه C/C++ با استفاده از SDK و ابزارهای پایتونی
برد میکروکنترلر bbc:microbit
برد آموزشی میکروبیت توسط کمپانی BBC در دو ورژن تولید شد. ورژن ۱ در تاریخ ۱۰ فوریه ۲۰۱۶ و ورژن ۲ در تاریخ ۱۳ اکتبر ۲۰۲۰ معرفی و تولید شده است. برد میکروبیت یک کامپیوتر بسیار کوچک Pocket sized است که با هدف یادگیری کار کردن سخت افزار و نرم افزار با یکدیگر تولید شده است.
برد میکروبیت BBC micro:bit یک کامپیوتر کوچک اندازه یک کارت اعتباری است که با هدف یادگیری سخت افزار و نرم افزار با یکدیگر طراحی و تولید شده است. میکروبیت دارای ال ای دی، کلید، سنسور و پایه های ورودی و خروجی است که قابلیت برنامه نویسی دارد و پس از برنامه پذیری قابلیت ارتباط با دنیا را خواهد داشت. برد میکروبیت جدید از میکروفن و اسپیکر هم تشکیل شده است.
برنامه برنامه نویسی برد و انتقال کد نوشته شده از کامپیوتر به میکروبیت از کابل micro usb استفاده میشود. این برد هرکاری را که شما بخواهید از طریق برنامه نویسی برای شما انجام میدهد. روش های مختلفی برای برنامه نویسی برد وجود دارد. با استفاده از Make Code که برنامه نویسی به صورت بلوکی است میتوانید کدنویسی را انجام دهید. روش دوم استفاده از text editor و روش سوم استفاده از Python based text editor است. برای تازه کاران قطعا استفاده از Maker Code انتخاب مناسبی است و با بلوک کشیدن به درک صحیحی از برنامه نویسی و چرایی اجرا خواهند رسید.
ورژن جدید میکروبیت در مقایسه با ورژن قبلی آپشن های جدیدتری اضافه کرده است. به میکروفن سنسور صدا اضافه شده است. یک ال ای دی در بالای برد تعبیه شده است که در زمان تشخیص صدا از سنسور و دریافت ورودی ال ای دی روشن میشود. اسپیکر به شما اجازه اضافه کردن صدای خروجی به پروژه را فراهم میکند. در بالای برد سنسور تاچ داخلی به عنوان ورودی قرار گرفته شده است که به روش های مختلفی قابل اجرا است. برای خاموش کردن برد کافیست انگشت خود را بر روی کلید ریست نگه دارید تا خاموش شود و سپس برای روشن شدن مجدد کلید را نگه دارید.
میکروبیت یه شما کمک میکند روش کار با سیستم کامپیوترها را یاد بگیرید. زمانی که با کامپیوتر تایپ میکنید و یا از سیسم های تاچ استفاده میکنیم، در واقع از ورودی های دیوایس ها استفاده میکنیم. ورودی ها امکان ارتباط با دیوایس ها را فراهم کرده و ارتباط ما با دنیا آغاز میشود. برد میکروبیت از چندین ورودی و خروجی داخلی تشکیل شده است.پردازنده یکی از بخش های سخت افزار در کامپیوتر است که در واقع مغز کامپیوتر شناخته میشود.
پردازنده ورودی را دریافت کرده، برنامه را اجرا و سپس خروجی میدهد. برد میکروبیت از یک مایکرو پروسسور ساخته شده است که به همین دلیل در ابعاد کوچک تولید شده و قابلیت تغذیه از طریق باتری را دارد. پردازنده ی میکروبیت کدی را که برای میکروبیت نوشته اید، اجرا میکند. تمامی ورودی ها و خروجی های قرار گرفته شده بر روی میکروبیت از پردازنده فرمان میگیرند و وظایف خود را انجام میدهند. از کلید گرفته تا سنسور ورودی تاچ، سنسور دما و خروجی ال ای دی همه تحت تاثیر پردازنده خواهند بود.
- پردازنده: Nordic nRF51822 با معماری ARM Cortex-M0، سرعت 16 مگاهرتز.
- حافظه RAM: 16 کیلوبایت
- 25 عدد LED قرار داده شده در یک ماتریس 5x5
- 2 عدد دکمهی فشاری
- 3 عدد پین تماس (تعامل با سنسورها و خروجیهای دیگر)
- Bluetooth Low Energy (BLE) برای ارتباط با دیگر دستگاهها و تلفنهمراهها
- سنسور شتابسنج (Accelerometer)
- سنسور قطبنما (Compass)
- سنسور قطبنما (Compass)
- سنسور قطبنما (Compass)
جمع بندی
ملاک انتخاب برد مناسب در قدم اول سطح دانش و در نهایت بودجه است.
- سطح اول اگر بخواهید میکروپایتون را به صورت آموزش محور و قدم به قدم یاد بگیرید انتخاب برد micro bit به دلیل طراحی آموزش محور و قرار گرفتن قطعات بر روی برد برای اجرای پروژه اولویت دارد. کلید و ال ای شما را از اتصال قطعات به برد بی نیاز میکند و به صورت onboard میتوانید میکروپایتون را یاد بگیرید.
- سطح دوم اگر تجربه کار با بردهای آردوینو و محیط Arduino IDE دارید، انتخاب درست برد ESP8266 , ESP32 است تا بتوانید مفاهیم مربوط به شبکه Networking را پیاده سازی و اجرا کنید.
- سطح سوم اگر چالش را به عنوان تنها فرصت یادگیری میپذیرید، رزبری پای پیکو آمادگی اش را اعلام کرده است و شما را به یک جامعه کاربری نوپا دعوت میکند تا میکروپایتون را آغاز کنید.