برنامه نویسی Raspberry Pi Pico RP2040 در محیط MicroPython
مسعود رادپور – برنامهنویسی Raspberry Pi Pico RP2040 در MicroPython دوره مناسبی برای مبتدیان با مثال است. Raspberry Pi Pico بهاندازه بردهای آردوینو محبوب نیست به این دلیل که بیش از 80٪ از دانشجویان و علاقهمندان الکترونیک به دنبال بردهای Arduino میروند، درحالیکه واقعیت این است که Raspberry Pico بهترین برد میکروکنترلر بازار است که توانایی انجام کارها را دارد. کارهایی که حتی نمیتوانید تصور کنید که با بردهای آردوینو انجام دهید. Raspberry Pi Pico بسیار ارزانتر از Arduino Uno، Arduino Nano و سایر بردهای Arduino است.
بههرحال ازآنجاییکه این یک آموزش برای شروع است؛ بنابراین، تمام تلاشمان را خواهیم کرد تا تکتک جزئیات را توضیح دهیم:
- مقایسه Raspberry Pi Pico با Arduino
- مشخصات فنی Raspberry pi Pico
- جزئیات رزبری پای پیکو
- اجزای داخلی Raspberry Pi Pico
- نصب Raspberry Pi Pico MicroPython، نصب درایور و نصب Thonny IDE.
پس از پرداختن به موارد ابتدایی، به طور عملی به شما نشان خواهیم داد که چگونه از متداولترین قطعات الکترونیکی مورداستفاده در کنار Raspberry Pi Pico استفاده کنید. ازآنجاییکه این مقاله را برای مبتدیان مینویسیم، بنابراین ابتدا با سادهترین مثال که کنترل LED بر روی رزبری پای پیکو است شروع میکنیم، یک برنامه بسیار ابتدایی برای روشن و خاموشکردن LED مینویسیم.
سپس در مثال دوم، نحوه اتصال LED خارجی را به شما نشان خواهیم داد.
در مثال سوم، به شما نشان خواهیم داد که چگونه چندین LED را به هم متصل کنید و چگونه کد موجود را تغییر دهید تا الگوهای جالبی ایجاد کنید. این پروژههای نمونه LED به شما در درک نحوه روشن و خاموشکردن هر پین GPIO در Raspberry Pi Pico کمک میکند.
در مثال چهارم، به شما نشان خواهیم داد که چگونه یک ورودی دیجیتال را در هر پین GPIO Raspberry Pi Pico بخوانید، برای این کار از Pushbutton استفاده میکنیم. ما همزمان هر دو را میخوانیم و کنترل میکنیم. برد Raspberry Pi Pico کلیک دکمه را حس میکند و سپس LED را روشن یا خاموش میکند.
در مثال پنجم، نحوه اتصال ماژول نمایشگر OLED را با Raspberry Pi Pico به شما نشان خواهم داد. یک برنامه بسیار ابتدایی برای چاپ متن روی ماژول نمایش OLED خواهیم نوشت. این یک مثال مهم است؛ زیرا در اکثر پروژهها به نمایشگر برای چاپ متن و مقادیر سنسور نیاز خواهید داشت.
در مثال ششم، نحوه استفاده از سنسور آنالوگ با Raspberry Pi Pico و نمایش مقدار آن در ماژول نمایش OLED را به شما نشان خواهیم داد. برای اهداف نمایشی، از یک پتانسیومتر بهعنوان حسگر استفاده خواهیم کرد.
در مثال هفتم، نحوه استفاده از سنسور اولتراسونیک با Raspberry Pi Pico و نمایش مقدار آن در ماژول نمایش OLED را به شما نشان خواهیم داد.
در مثال هشتم، به شما نشان خواهیم داد که چگونه یک سیستم مانیتورینگ دما بسازید و از سنسور دمای داخلی Raspberry Pi Pico استفاده خواهیم کرد.
در مثال نهم، نحوه ساخت سیستم تشخیص روز و شب را به شما نشان خواهیم داد. این واقعاً یک مثال مهم است؛ زیرا نحوه استفاده از سنسور LDR و ماژول رله را برای کنترل یک لامپ AC توضیح خواهیم داد.
در دهمین و آخرین مثال، یک سیستم امنیتی کوچک با استفاده از یک سنسور PIR و یک زنگ میسازیم. سنسور PIR حرکتی را حس میکند که Raspberry Pi Pico را تحریک میکند و سپس Raspberry Pi Pico صدای زنگ را روشن میکند.
تمام این پروژههای نمونه Raspberry Pi Pico به شما کمک میکند تا با این برد میکروکنترلر مبتنی بر RP2040 کمهزینه و قدرتمند شروع کنید؛ بنابراین، بدون تأخیر بیشتر، بیایید شروع کنیم!
قطعات موردنیاز:
مقایسه رزبری پای پیکو با آردوینو

ابتدا مقایسهای بین Raspberry Pi Pico و Arduino انجام میدهیم؛ تنها راه فهمیدن قدرت Raspberry Pi Pico است.

مشخصات Raspberry Pi Pico:
پردازنده دو هستهای RP2040 Arm Cortex M0 در رزبری پای پیکو استفاده شده است. Raspberry pi Pico بسیار سریع با فرکانس ساعت 133 مگاهرتز است که میتوانیم بر اساس نیاز خود تغییر دهیم. این کنترلر دارای 2 مگابایت حافظه داخلی است که میتوانیم فایلهای برنامه را در آن ذخیره کنیم.
مشخصات فنی Raspberry pi Pico:
- RP2040 microcontroller chip designed by Raspberry Pi in the UK
- Dual-core ARM Cortex M0+ processor, with a flexible clock running up to 133 MHz
- 264 kB SRAM, and 2 MB on-board Flash memory
- USB 1.1 host and device support
- Energy-efficient sleep and dormant modes
- 26x multifunction GPIO pins
- 2x SPI, 2x I²C, 2x UART, 3x 12-bit ADC, 16x controllable PWM channels
- On-chip accurate clock and timer
- Temperature sensor
- On-chip accelerated floating point libraries
- 8x programmable IO (PIO) state machines for custom peripherals


Raspberry pi Pico در مجموع 40 پین یا GPIO دارد که از این تعداد 26 GPIO چندمنظوره هستند. از آنجاییکه ولتاژ پایه های Raspberry Pi Pico سازگار با 3.3 ولت است، بنابراین ولتاژ کاری در این GPIOها نباید از 3.3 ولت تجاوز کند. از این 26 پایه، 23 پایه (GPIO0 تا GPIO22) فقط دیجیتال هستند و 3 پایه (GPI026 تا GPIO28) میتوانند بهعنوان GPIO دیجیتال یا ورودی ADC استفاده شوند. Raspberry pi Pico دارای 2 پایه SPI، 2 پایه I2C، 2 پایه UART، 16 پایه PWM قابلکنترل و 9 پایه زمین است. در پشت برد، میتوانید ببینید که تمام پینها بهوضوح برچسبگذاری شدهاند. این برد دارای 3 پین پورت دیباگ سیم سریال اضافی است.
VBUS ولتاژ ورودی micro-USB است که به پایه پورت micro-USB 1 متصل است. این ولتاژ معمولاً 5 ولت است (یا 0 ولت اگر USB وصل نباشد یا تغذیه نشود).
VSYS ولتاژ ورودی اصلی سیستم است که میتواند در محدوده مجاز 1.8 ولت تا 5.5 ولت متغیر باشد و توسط تغذیه 3.3 ولت برای RP2040 و GPIOهای آن استفاده میشود.
3V3_EN به پین فعال SMPS داخلی متصل میشود و از طریق یک مقاومت K100 به بالا (به VSYS) کشیده میشود.
3V3 منبع اصلی 3.3 ولت RP2040 و پینهای ورودی/خروجی آن است که توسط SMPS داخلی تولید میشود. از این پین میتوان برای تغذیه مدار خارجی استفاده کرد (حداکثر جریان خروجی به بار RP2040 و ولتاژ VSYS بستگی دارد، توصیه میشود بار روی این پایه کمتر از 300 میلیآمپر نگه دارید).
ADC_VREF تغذیه ADC (و مرجع) ولتاژ آنالوگ است و در Pico با فیلترکردن منبع تغذیه 3.3 ولت تولید میشود. در صورت نیاز به عملکرد بهتر ADC، میتوان از این پین با یک مرجع خارجی استفاده کرد.
AGND مرجع زمینی برای GPIO26-29 است، یک صفحه زمین آنالوگ جداگانه در زیر این سیگنالها اجرا میشود و به این پین ختم میشود. اگر ADC استفاده نمیشود یا عملکرد ADC حیاتی نیست، این پین را میتوان به یک زمین دیجیتال متصل کرد.
اجزای پردازنده Raspberry Pi Pico :
- RP2040 dual-core Arm Cortex M0+ processor.
- 2MB quad SPI flash.
- Boot selection button.
- Onboard led which is connected with GP25.
- Micro-B USB port which is used for the power and also for the data transfer.
- Temperature Sensor
اکنون، اجازه دهید قبل از شروع برنامهنویسی، به مرحله بعدی برویم، یعنی آماده سازی Raspberry Pi Pico جهت اتصال به کامپیوتر و استفاده از کامپایلر.
راهاندازی Raspberry Pi Pico:
نصب میکرو پایتون در Raspberry Pi Pico ، دکمه انتخاب بوت BOOTSEL را فشار داده و نگه دارید و Raspberry Pi Pico خود را به پورت USB لپتاپ یا رایانه خود متصل کنید.

دستگاه بهعنوان یک دستگاه ذخیرهسازی انبوه به نام RPI-RP2 شناسایی میشود. پس از اتصال Pico، دکمه BOOT Selection را رها کنید. فایل MicroPython UF2 را دانلود کنید.
MicroPython UF2 را دانلود کنید.
پس از دانلود فایل MicroPython UF2، بهسادگی دستگاه RP1-RP2 را بازکرده و فایل را داخل آن Paste کنید.
نصب درایور Raspberry Pi Pico در صورت نیاز
در مرحله بعد، درایور را بررسی کنید که آیا نصب شده است. در ویندوز 10 درایور به طور خودکار نصب میشود، اما اگر از نسخه پایینتر ویندوز استفاده میکنید، باید درایور را بهصورت دستی نصب کنید.
درایور atmel_devices_cdc را دانلود کنید.
بههرحال درایور نصب شده و همچنین MicroPython روی Raspberry Pi Pico نصب شده است. اکنون میتوانید برد Raspberry Pico را جدا کنید.
نصب Thonny IDE:
اکنون مرحله آخر نصب Thonny IDE است.
Thonny IDE را دانلود کنید
هیچچیز پیچیدهای وجود ندارد، بهسادگی دستورالعملهای روی صفحه را دنبال کنید. پس از اتمام نصب؛ Thonny IDE را باز کنید، به منوی Run بروید و روی مفسر Select کلیک کنید.

MicroPython (Raspberry Pi Pico) را انتخاب کرده و روی دکمه OK کلیک کنید. اکنون IDE برای برنامهنویسی آماده است.
مثال چشمکزن Raspberry Pi Pico Led:
برد Raspberry Pi Pico من برای اولین پروژه خود آماده است که هدف آن چشمک زدن LED بر روی برد است. میخواهیم برد Pico خود را به لپتاپ متصل کنیم. حالا بیایید کمی جلو برویم و نگاهی به برنامه چشمکزن LED بیندازیم.
کد چشمکزن Raspberry Pi Pico LED:
import machine
import utime
led = machine.Pin(25, machine.Pin.OUT)
:while True
led.value(1)
utime.sleep(1)
led.value(0)
utime.sleep(1)
هدف از این کد روشنکردن LED به مدت 1 ثانیه و سپس خاموشکردن آن به مدت 1 ثانیه است. بگذارید کد را توضیح دهیم.
import machine
ماژول ماشین شامل عملکردهای خاص مربوط به سختافزار روی یک برد خاص است.
import utime
ماژول utime توابعی را برای دریافت زمان و تاریخ فعلی، اندازهگیری فواصل زمانی و تأخیرها ارائه میکند.
led = machine.Pin(25, machine.Pin.OUT)
کلاس پین دارای روشهایی برای تنظیم حالت پین (IN، OUT و غیره) و روشهایی برای دریافت و تنظیم سطح منطق دیجیتال است.
while True:
led.value(1)
utime.sleep(1)
led.value(0)
utime.sleep(1)
این بخش از کدها بهسادگی LED را برای 1 ثانیه روشن میکنند و سپس led را برای 1 ثانیه خاموش میکنند. این خطوط کدها بارهاوبارها اجرا میشوند تا زمانی که برد Raspberry Pi Pico را خاموش کنیم.
توجه داشته باشید همانند کدهای پایتون نیازمند رعایت فاصله در برنامه نویسی به میزان یک Tab هستیم.
نحوه اجرا دائمی کد در رزبری پای پیکو و ذخیره فایل کد در آن:
برای اجرای این کد روی Raspberry Pi Pico کافی است روی دکمه Play کلیک کنید، از شما سوال میشود که فایل کد را کجا ذخیره کنید؟ در کامپیوتر یا برد Raspberry Pico باید برد Raspberry Pi Pico را انتخاب کنید و همان کاری که میخواهیم انجام دهیم. من روی Raspberry Pi Pico کلیک میکنیم.

یک نام برای فایل “Led_Blinking.py” بگذارید و فراموش نکنید که پسوند py. را اضافه کنید، در غیر این صورت، کد روی Pico Board اجرا نمیشود. بهمحض کلیک بر روی دکمه OK ، شروع به چشمک زدن میکند. زمان تأخیر چشمک زدن LED را میتوان افزایش یا کاهش داد. در حال حاضر LED روشن میشود و بعد از هر یک ثانیه خاموش میشود.
حالا اگر برد Raspberry Pico خود را از برق بکشید و دوباره آن را وصل کنید، کد به طور خودکار اجرا میشود.
هشدار داده شده توسط سازنده قطعه:

متن حقوقی است ، ترجمه فارسی و برداشت شخصی مترجم مقاله سایت الکترونیک 3 می باشد.
منابع مورد نیاز طراحی برای کاربران ماهر با سطح دانش فنی مناسب از دانش طراحی در نظر گرفته شده است. کاربران تنها مسئول هستند!
انتخاب و استفاده از منابع و هرگونه استفاده از محصولات شرح داده شده در آنها با موافقت کاربر می باشد. جبران خسارت کلیه تعهدات شامل هزینه ها، خسارات اعلام شده، درخصوص استفاده از قطعه فوق در تجهیزات ذیل متن بر عهده ( RASPBERRY PI LTD (“RPL”) ) RPL نمی باشد.
استفاده از محصولات رزبری پای در موارد طراحی تجهیزات به کار برده شده با ریسک بالا و اطمینان از عملکرد حداکثری توصیه نمی گردد.
مانند تأسیسات هسته ای، ناوبری هواپیما یا سیستمهای ارتباطی، کنترل ترافیک هوایی، سیستمهای تسلیحاتی یا کاربردهای حیاتی ایمنی تجهیزات پزشکی که خرابی در آن محصولات میتواند مستقیماً منجر به مرگ، آسیبهای شخصی یا آسیب فیزیکی یا محیطی شدید (“فعالیت های پرخطر”).