معرفی برد رزبری پای پیکو Raspberry Pi Pico

این مقاله یک راهنمای جامع برای شروع کار با برد میکروکنترلر Raspberry Pi Pico W است. این برد بر پایه تراشه RP2040 ساخته شده، تعداد زیادی پایه GPIO برای اتصال قطعات جانبی دارد و میتوان آن را با زبانهای برنامهنویسی C/C++ یا MicroPython برنامهریزی کرد. در این مطلب با ویژگیهای اصلی Raspberry Pi Pico آشنا میشویم و یاد میگیریم چگونه اولین برنامه خود را روی آن اجرا کنیم.
معرفی برد پیکو
Raspberry Pi Pico یک برد میکروکنترلر کمهزینه است که بر اساس تراشه RP2040 توسط بنیاد Raspberry Pi توسعه داده شده است. برخلاف نسخههای قبلی Raspberry Pi، این برد برای اجرای سیستمعامل طراحی نشده است. در واقع، Raspberry Pi Pico مانند Arduino یا ESP32 یک برد میکروکنترلر است که هدف اصلی آن کنترل قطعات الکترونیکی از طریق پایههای GPIO است.
اگر با بردهای ESP32 یا ESP8266 آشنا هستید، Raspberry Pi Pico تفاوت چندانی با آنها ندارد.

انواع مدل های برد Raspberry Pi Pico
بهطور کلی دو نسخه اصلی از این برد وجود دارد:
- Raspberry Pi Pico: بدون قابلیت ارتباط بیسیم (بدون Wi-Fi و Bluetooth)
- Raspberry Pi Pico W: دارای قابلیت ارتباط بیسیم (Wi-Fi و Bluetooth)

خانواده Raspberry Pi Pico
مدل های Pico، Pico H، Pico W و Pico WH
گاهی نسخههایی با حرف H نیز مشاهده میکنید، مانند Raspberry Pi Pico H یا Raspberry Pi Pico WH. حرف H به معنی این است که پینهای هدر (Header Pins) از پیش لحیم شدهاند.
کدام را انتخاب کنیم؟ Raspberry Pi Pico یا Raspberry Pi Pico W؟
مدل Raspberry Pi Pico W دارای قابلیت ارتباط بیسیم است، که برای پروژههای IoT یا اتوماسیون خانگی که به Wi-Fi یا Bluetooth نیاز دارند بسیار حیاتی است. پیشنهاد میشود مدل Pico W را تهیه کنید، زیرا تفاوت قیمت آن با مدل معمولی زیاد نیست و در عوض آزادی عمل بیشتری برای پروژههای بیسیم خواهید داشت.
در این آموزش از Raspberry Pi Pico W استفاده میکنیم، اما تمامی بخشها برای مدل معمولی نیز کاربرد دارند، به جز قسمتهایی که به ارتباط بی سیم مربوط میشوند.
مشخصات پردازنده برد Pico W

در ادامه فهرستی از مشخصات اصلی Raspberry Pi Pico W را مشاهده میکنید:
- میکروکنترلر RP2040 با حافظه فلش 2 مگابایت
- پردازنده دو هستهای Arm Cortex-M0+ با فرکانس کاری 133 مگاهرتز
- 264 کیلوبایت SRAM چندبانکی با کارایی بالا
- 2 مگابایت حافظه فلش QSPI داخلی
- رابط بیسیم 2.4 گیگاهرتز (802.11n) با تراشه Infineon CYW43439 (در مدلهای W)
- درگاه Micro-USB نوع B برای تغذیه و برنامهریزی
- درگاه 3 پین ARM Serial Wire Debug (SWD) برای دیباگ
- 40 پین GPIO
رابط های GPIO در برد Pico
برد Raspberry Pi Pico دارای 40 پین است که از این تعداد، 26 پین قابل برنامهریزی هستند و میتوان از آنها برای اتصال قطعات جانبی استفاده کرد.
پایههای GPIO در Raspberry Pi Pico از رابطهای زیر پشتیبانی میکنند:
- 2 عدد UART
- 2 عدد I2C
- 2 عدد SPI
- 16 کانال PWM
- 4 پین ADC با دقت 12 بیتی و نرخ نمونهبرداری 500 ksps
پایههای GPIO در Raspberry Pi Pico با ولتاژ 3.3 ولت کار میکنند.
تصویر زیر پین آوت کامل Raspberry Pi Pico را نشان میدهد که عملکرد هر پین مشخص شده است.


در پینآوت، پینهای قرمز مربوط به پینهای تغذیه (3.3 ولت خروجی) هستند، پینهای سیاه پینهای GND هستند، و تمام پینهای سبز روشن بهعنوان GPIO عمومی (ورودی/خروجی) قابل استفادهاند و همگی قابلیت تولید سیگنال PWM دارند.
پروتکلهای ارتباطی SPI، I2C، UART و مبدل آنالوگ به دیجیتال ADC نیز بر روی پینهای دارای برچسب مربوطه پشتیبانی میشوند.
نحوه برنامهنویسی Raspberry Pi Pico
برد Raspberry Pi Pico را میتوان با استفاده از زبانهای C/C++ (از طریق Arduino IDE) یا MicroPython برنامهنویسی کرد. در حال حاضر، محبوبترین روش برای برنامهنویسی این برد، استفاده از MicroPython است و محیط توسعهی پیشنهادی برای آن Thonny IDE میباشد.
برد Raspberry Pi Pico دارای یک درگاه Micro-USB است که هم برای تأمین برق و هم برای برنامهریزی استفاده میشود. برای شروع برنامهنویسی، کافی است با استفاده از یک کابل USB برد را به رایانه متصل کنید. بیشتر کیتهای Raspberry Pi Pico، کابل مناسب را نیز در بستهی خود دارند.
اگر قصد دارید از Arduino IDE برای برنامهنویسی Raspberry Pi Pico استفاده کنید، میتوانید آموزش زیر را مطالعه کنید:
آموزش برنامه نویسی برد پیکو با آردوینو
اما اگر میخواهید از MicroPython استفاده کنید، در ادامه توضیح داده شده است.
MicroPython چیست؟
MicroPython نسخهای بازنویسیشده از زبان Python 3 است که برای میکروکنترلرها و سیستمهای نهفته (Embedded Systems) طراحی شده است. MicroPython از لحاظ ساختار و نحو (Syntax) بسیار شبیه به Python معمولی است و تقریباً تمام قابلیتهای اصلی آن را دارد.

تفاوت اصلی بین Python و MicroPython در این است که MicroPython برای کار در محیطهای محدود از نظر منابع سختافزاری طراحی شده است. به همین دلیل، شامل تمام کتابخانههای استاندارد Python نمیشود و تنها مجموعهای از کتابخانههای ضروری را در بر دارد.
با این حال، MicroPython دارای ماژولهایی مخصوص کنترل و تعامل با پینهای GPIO، ارتباط Wi-Fi و پروتکلهای ارتباطی مختلف است که باعث میشود بتوان بهراحتی پروژههای IoT و الکترونیکی را با آن پیادهسازی کرد.
آموزش کامل: آموزش برنامه نویسی برد پیکو با میکروپایتون










