مقدمه
آیا شما هم از علاقهمندان به فناوری و به دنبال کشف شگفتی های رزبری پای پیکو هستید؟ در این راهنمای گام به گام، شما را با روند برنامه نویسی بر روی رزبری پای پیکو (Raspberry Pi Pico) با آردوینو IDE آشنا خواهیم کرد. چه مبتدی باشید یا یک برنامه نویس باتجربه، این راهنما به شما کمک میکند تا از پتانسیل کامل این میکروکنترلر قدرتمند استفاده کنید. ما با بررسی اجمالی رزبری پای پیکو و قابلیت های آن شروع می کنیم و سپس توضیحاتی را در مورد نحوه آماده سازی Arduino IDE برای برنامه نویسی پیکو ارائه خواهیم کرد. شما یاد خواهید گرفت که چگونه رزبری پای پیکو را به رایانه خود متصل کرده و تنظیمات صحیح برد و پورت را انجام دهید.
آنچه در این آموزش یاد میگیرید
- آشنایی با برد رزبری پای پیکو
- انتقال رزبری پای پیکو به مد Programming
- پروگرام کردن رزبری پای پیکو با نرمافزار Arduino IDE
معرفی رزبری پای پیکو
رزبری پای پیکو یک برد میکروکنترلر توسعه یافته توسط بنیاد Raspberry Pi است. این برد به تراشه میکروکنترلر RP2040 با پردازنده دو هسته ای Arm Cortex-M0+ مجهز بوده و دارای 26 پین چند منظوره GPIO با قابلیت های گوناگون می باشد.
یکی از ویژگی های بارز پیکو، ارزانتر بودن آن نسبت به بسیاری از میکروکنترلرهای موجود در بازار است. این نکته، رزبری پای پیکو را به گزینهای جذاب تبدیل میکند، هم برای مبتدیان و هم برای توسعهدهندگان باتجربه. علیرغم قیمت پایین، این برد از نظر عملکرد یا قابلیت چیزی کم ندارد، که همین امر باعث محبوبیت این برد در میان تولیدکنندگان شده است.
در کنار همه موارد اشاره شده، کوچک بودن ابعاد این برد را نیز می توان از مزایای آن برشمرد. ابعاد 21×51 میلیمتری، استفاده از آن را در پروژه هایی که با محدودیت فضا مواجه باشد ممکن می سازد.
بنابر قابلیت هایی که اشاره کردیم، این برد کاربردهای گسترده ای دارد؛ از رباتیک گرفته تا اتوماسیون خانگی و فراتر از آن.
مشخصات کلی این برد به صورت زیر است:
- ابعاد 21×51 میلیمتر
- دارای دو هسته Arm Cortex-M0+ با حداکثر فرکانس 133 مگاهرتز
- حجم SRAM 264 کیلوبایت و حجم حافظه فلش QSPI دو مگابایت
- LAN بی سیم 2.4 گیگاهرتز 802.11n (فقط در Raspberry Pi Pico W و WH)
- بلوتوث 5.2 (فقط در Raspberry Pi Pico W و WH)
- 26 پین GPIO چند منظوره، شامل 3 ورودی آنالوگ
- دارای حسگر دما
پین های رزبری پای پیکو (Pinout)
رزبری پای پیکو، دارای دو ردیف 20 پینی است که هرکدام وظایف مشخصی دارند. در تصویر زیر، می توانید پایه های این برد را مشاهده کنید.
بهترین جایگزین های رزبری پای پیکو چه بردهایی هستند؟
قبل از اینکه به مقایسه رزبری پای پیکو و سایر میکروکنترلرها بپردازیم، اجازه دهید نگاهی کوتاه به برخی از گزینههای محبوب دیگر در بازار بیندازیم. این میکروکنترلرها نقاط قوت و ضعف منحصر به فرد خود را دارند و درک ویژگیهای آنها زمینه ارزشمندی را برای مقایسه آنها در آینده فراهم میکند.
آردوینو
آردوینو بدون شک شناختهشدهترین و پرکاربردترین پلتفرم میکروکنترلر است. آنها طیف وسیعی از بردها را ارائه میدهند؛ از آردوینو Uno سطح پایه گرفته تا آردوینو مگای یپیشرفته. کار با بردهای آردوینو ساده بوده و همین امر آنها را به انتخابی محبوب برای مبتدیان تبدیل کرده است. Arduino IDE یک رابط کاربرپسند برای برنامهنویسی و آپلود کد بر روی این بردها فراهم میکند. آردوینو همچنین دارای یک انجمن بزرگ و فعال است؛ به این معنی که منابع و آموزشهای زیادی را در اختیار مبتدیان قرار می دهد.
ESP32
ESP32 یک میکروکنترلر قدرتمند توسعهیافته Espressif Systems است و به وای فای و بلوتوث داخلی مجهز می باشد. به دلیل قابلیتهای وای فای داخلی و بلوتوث، در فضای اینترنت اشیاء بسیار محبوب است. ESP32 یک پردازنده دو هستهای با سرعت 240 مگاهرتز، و دارای حافظه فلش کافی و مجموعهای غنی از رابطهای جانبی است. همچنین از فریم ورک محبوب آردوینو پشتیبانی کرده و شروع کار را برای کسانی که با آردوینو آشنا هستند آسان میکند.
STM32
میکروکنترلرهای STM32 خانوادهای از تراشههای تولید شده توسط ST Microelectronics هستند. این میکروکنترلرها به دلیل عملکرد و تطبیقپذیری، با طیف گستردهای از گزینهها شناخته میشوند. STM32 شامل تراشههایی با سطوح مختلف قدرت محاسباتی، حافظه و تجهیزات جانبی است. میکروکنترلرهای STM32 اغلب مورد علاقه توسعهدهندگان حرفهای هستند؛ کسانی که روی پروژه های پیچیدهای کار میکنند و به عملکرد بالا و ویژگیهای پیشرفته نیاز دارند.
مقایسه سایر میکروکنترلرها با رزبری پای پیکو
مقایسه رزبری پای پیکو با آردوینو
هنگام مقایسه رزبری پای پیکو و آردوینو، چندین فاکتور کلیدی وجود دارد: عملکرد، انعطاف پذیری، زبان برنامه نویسی و گستردگی جامعه پشتیبانی.
از نظر عملکرد، رزبری پای پیکو جایگاه خود را در برابر بردهای آردوینو حفظ کرده است. رزبری پای پیکو با تراشه قدرتمند RP2040 خود که با فرکانس 133 مگاهرتز کار میکند، قدرت پردازش زیادی را برای اکثر برنامهها ارائه می دهد. از طرف دیگر بردهای آردوینو معمولاً دارای سرعت کلاک و حافظه فلش کمتری هستند. با این حال، شایان ذکر است که بردهای آردوینو اغلب برای کارهای خاص بهینه شده و میتوانند در حوزههای مربوط به خود دست برتر را داشته باشند.
رزبری پای پیکو انعطافپذیری فوقالعادهای دارد. 26 پین چند منظوره GPIO آن فضای کافی را برای توسعه و سفارشیسازی فراهم میکند. این انعطافپذیری به شما امکان میدهد طیف گستردهای از سنسورها، محرکها و سایر تجهیزات جانبی را به رزبری پای پیکو متصل کنید؛ بنابراین برای پروژههای مختلف مناسب میباشد. بردهای آردوینو نیز انعطاف پذیری خوبی دارند اما تعداد پین و گزینههای پیکربندی آنها ممکن است بسته به برد خاصی که انتخاب میکنید متفاوت باشد.
از نظر زبان برنامهنویسی، آردوینو از یک نسخۀ ساده شده C++ استفاده میکند و یک IDE با کاربری آسان ارائه میدهد. بنابراین مبتدیان و کسانی که به دنبال برنامهنویسی سادهتری هستند آردوینو را ترجیح میدهند. از طرف دیگر، رزبری پای پیکو از زبانهای برنامهنویسی MicroPython و C/C++ پشتیبانی میکند. MicroPython یک پیادهسازی از Python 3 است که برای میکروکنترلرها بهینه شده و آن را به یک انتخاب محبوب برای کسانی که از قبل با پایتون آشنایی دارند تبدیل میکند.
جامعه پشتیبان عامل مهم دیگری است که باید در نظر گرفته شود. آردوینو دارای یک انجمن بزرگ و فعال است؛ با کتابخانهها، نمونهها و آموزشهای بیشمار. این منابع فراوان، کار را برای کاربر آسان میکند. در حالی که رزبری پای پیکو در مقایسه با آردوینو نسبتاً جدید است، و توجه توسعهدهندگان و علاقهمندان خاصی را به خود جلب کرده است. بنیاد Raspberry Pi فعالانه از رزبری پای پیکو پشتیبانی میکند و اسناد و منابعی را برای کمک به کاربران در شروع کار ارائه میدهد.
به طور کلی، رزبری پای پیکو و آردوینو هر دو نقاط قوت و ضعف خاص خود را دارند. رزبری پای پیکو قدرت پردازش و انعطاف پذیری بیشتری دارد در حالی که آردوینو در سادگی و جامعه پشتیبانی برتر است. انتخاب بین این دو در نهایت به نیازها و ترجیحات خاص شما بستگی دارد.
مقایسه رزبری پای پیکو با ESP32
هر دو گزینه ویژگیها و قابلیتهای منحصر به فرد خود را دارند. از نظر قدرت پردازش، ESP32 یک مزیت آشکار دار؛ ESP32 با پردازنده دو هستهای خود که تا 240 مگاهرتز کار میکند، قابلیتهای محاسباتی بالاتری در مقایسه با تراشه RP2040 دارد. این باعث میشود ESP32 برای برنامههایی که به قدرت پردازش بیشتری نیاز دارند، مانند پروژههای پیچیده اینترنت اشیا، گزینهای عالی باشد.
وقتی صحبت از امکانات به میان میآید، ESP32 با قابلیتهای Wi-Fi داخلی و بلوتوث خود حرف اول را میزند. این ویژگی ها اتصال ESP32 را به اینترنت یا دستگاه های دیگر به صورت بی سیم آسان میکند و دامنه وسیعی از امکانات را برای برنامه های IoT باز میکند. در حالی که رزبری پای پیکو، Wi-Fi و بلوتوث داخلی ندارد؛ اما همچنان میتوان آن را به ماژولهای خارجی یا شیلدها برای دستیابی به عملکرد مشابه متصل کرد.
از نظر زبان برنامه نویسی، رزبری پای پیکو و ESP32 هر دو از MicroPython و C/C++ پشتیبانی می کنند. بنابراین توسعه دهندگانی که از قبل با پایتون آشنایی دارند می توانند از دانش موجود خود برای پروگرام هر دو میکروکنترلر استفاده کنند.
از نظر جامعه پشتیبانی، رزبری پای پیکو و ESP32 هر دو دارای انجمنهای اختصاصی و انجمنهای فعال هستند. ESP32 برای مدت طولانیتری در بازار بوده و جامعه بزرگتری دارد، به این معنی که منابع و آموزشهای بیشتری در دسترس است. با این حال، بنیاد Raspberry Pi سابقه ای درخشان در حمایت از محصولات خود دارد، بنابراین میتوان انتظار داشت که جامعه Pico در طول زمان به سرعت رشد کند.
مقایسه رزبری پای پیکو با STM32
STM32 طیف گستردهای از گزینهها را ارائه می دهد، بنابراین ما روی سری STM32F4 به عنوان نمونه تمرکز خواهیم کرد.
از نظر قدرت پردازش، میکروکنترلرهای STM32F4 به طور قابل توجهی از رزبری پای پیکو قدرتمندتر هستند. با سرعت کلاک تا 180 مگاهرتز و هستههای Cortex-M4، تراشههای STM32F4 میتوانند کارهای سخت را به راحتی انجام دهند. بنابراین برای برنامههایی که به محاسبات با کارایی بالا نیاز دارند، مانند رباتیک یا پردازش سیگنال بلادرنگ، گزینهای عالی هستند.
هنگامی که صحبت از امکانات جانبی به میان میآید، میکروکنترلرهای STM32F4 مجموعهای غنی را ارائه میدهند از جمله ویژگیهای پیشرفته مانند رابطهای USB، اترنت و CAN bus. این عامل، آنها را برای برنامههایی مناسب میکند که به گزینههای اتصال گسترده یا پروتکلهای ارتباطی پیچیده نیاز دارند. در حالی که رزبری پای پیکو دارای مجموعه محدودتری از امکانات جانبی است؛ با این وجود انعطافپذیری خوبی برای اکثر پروژهها دارند.
رزبری پای پیکو و STM32 هر دو از از زبانهای برنامهنویسی Cو C++ پشتیبانی میکنند. با این حال میکروکنترلرهای STM32 بسته به تراشه خاص و محیط توسعه مورد استفاده، از زبانهای برنامهنویسی دیگری مانند Ada یا FreeRTOS نیز پشتیبانی میکنند. این انعطافپذیری میتواند برای توسعهدهندگانی که کار با زبانهای برنامهنویسی جایگزین را ترجیح میدهند مفید باشد.
میکروکنترلرهای STM32 دارای یک جامعه بزرگ و فعال با منابع و کتابخانههای فراوانی هستند. رزبری پای پیکو در مقایسه با STM32 نسبتاً جدید است، اما جامعهای اختصاصی از توسعهدهندگان و علاقهمندان را به دست آورده است. بنیاد Raspberry Pi فعالانه از رزبری پای پیکو پشتیبانی میکند و اسناد و نمونههایی را برای کمک به کاربران برای شروع کار ارائه میدهد.
لوازمی که به آن احتیاج دارید
قطعات مورد نیاز
نرمافزارهای مورد نیاز
پروگرام کردن رزبری پای پیکو با Arduino IDE
برای اینکار، مراحل زیر را به ترتیب انجام دهید:
1. از طریق File->Preferences، و در قسمت “:Additional boards manager URLs” این لینک را اضافه کنید. (تصویر پایین)
2. به قسمت “:Tools->Board” رفته و گزینه “…Boards Manager” را بزنید.
3. در پنجره باز شده، عبارت “Raspberry Pi Pico/RP2040” را جستجو کرده و بر روی Install کلیک کنید.
اکنون می توانید برد مورد نظر خود را از طریق “Tools->Board:…->Raspberry Pi Pico/RP2040” انتخاب کرده و برای آن برنامهنویسی کنید.
کد نمونه
اکنون میخواهیم برد رزبری پای پیکو را پروگرام کنیم. این برد را انتخاب کنید.
سپس فایل مثال Fade.ino را از قسمت Files->Examples->rp2040 باز کنید.
کد زیر برای شما نمایش داده می شود.
/*
Fade
This example shows how to fade the onboard Raspberry Pi Pico LED
This example code is in the public domain.
http://www.arduino.cc/en/Tutorial/Fade
*/
int led = LED_BUILTIN; // the PWM pin that the LED is attached to
int brightness = 0; // brightness of LED
int fadeAmount = 5; // how many points to fade the LED by
// the setup routine runs once when you press reset:
void setup() {
// declare pin to be an output:
pinMode(led, OUTPUT);
}
// the loop routine runs over and over again forever:
void loop() {
// set the brightness
analogWrite(led, brightness);
// change the brightness for next time through the loop:
brightness = brightness + fadeAmount;
// reverse the direction of the fading at the end of the fade:
if (brightness <= 0 || brightness >= 255) {
fadeAmount = -fadeAmount;
}
// wait for 30 milliseconds to see the dimming effect
delay(30);
}
این کد، LED قرار گرفته بر روی برد رزبری پای پیکو را به سرعت آرام، خاموش و روشن می کند.
برای آپلود کردن این کد، باید برد رزبری پای پیکو را از کامپیوتر جدا کنید و در حالی که دکمه “BOOT SEL” روی برد را نگه داشته اید، آن را به کامپیوتر وصل کنید. با این کار، برد شما وارد مد Bootloader می شود و کامپیوتر، آن را به صورت “Mass Storage” خواهد شناخت.
در قسمت Tools->Port، گزینه “UF2 Board” را انتخاب و سپس بر روی دکمه Upload بزنید.
در صورتی که تنظیمات را به درستی انجام داده باشید، برد پروگرام شده و پیغام زیر چاپ خواهد شد.
یک گام جلوتر
در این آموزش، با نحوه کار با بردهای رزبری پای پیکو در محیط نرم افزار Arduino IDE آشنا شدید. از آنجا که این برد در مقایسه با دیگر بردهای پشتیبانی شده توسط آردوینو IDE برتری هایی دارد، اکنون می توانید پروژه ها را با استفاده از این برد انجام دهید.
انواع مختلفی از بردهای مبتنی بر تراشه RP2040 هستند که امکانات گوناگونی دارند؛ از پشتیبانی از انواع پروتکل های ارتباطی مانند NFC، LORA، WIFI، Bluetooth و CAN گرفته تا نسخه های دیگری از این برد که دارای صفحه نمایش هستند. شما اکنون می توانید با همگی آنها کار کنید!
در اینجا چند نمونه از این بردها را معرفی می کنیم:
- Arduino Nano RP2040 Connect
این برد، علاوه بر چیپ RP2040، دارای ارتباط بلوتوث و وای فای، سنسور شتابسنج و ژیروسکوپ، و همچنین یک میکروفن Omnidirectional است. حافظه فلش این برد، به 16 مگابایت ارتقا داده شده است.
- SparkFun MicroMod RP2040
این برد یکی از کوچکترین بردهای ساخته شده برای چیپ RP2040 است. شما می توانید این برد را با کنکتور M.2 بر روی برد دیگری سوار کنید. تمامی پین های چیپ RP2040 قابل دسترسی بوده و می توانید از آنها در پروژه های مختلف استفاده کنید.
- Pimoroni Motor 2040 Quad Motor Controller
این برد به تنهایی قادر به کنترل 4 عدد موتور است و برای اینکار نیاز به هیچ قطعه اضافه دیگری ندارد.
- Waveshare RP2040 LCD 1.28
این برد، تمام کارایی رزبری پای پیکو را به واسطه 30 عدد پایه چندکاره فراهم می کند. علاوه بر آن، از سنسور شتاب سنج، ژیروسکوپ، مدار مدیریت شارژ باطری لیتیومی و از همه مهمتر، یک صفحه نمایش دایره ای شکل 1.28 اینچی 65000 رنگ IPS بهره می برد.