آموزش رزبری پای

برنامه نویسی رزبری پای پیکو با C/C++ SDK

در سال 2012، بنیاد Raspberry Pi یک کامپیوتر تک بردی را به ما معرفی کرد. Raspberry Pi که عمدتاً برای آموزش مبانی علوم کامپیوتر به بچه ها استفاده میشد و 9 سال بعد یک برد میکروکنترلر به نام رزبری پای پیکو معرفی کرد. Raspberry Pi Pico با تراشه سیلیکونی RP2040 عرضه می شود. پیکو یک میکروکنترلر ارزان است که 4 دلار قیمت دارد. از آنجایی که دارای پردازنده ARM دو هسته‌ای به همراه GPIO و لوازم جانبی دیجیتال/آنالوگ است، می‌توانیم به راحت پروژه های امبدد را با آن راه اندازی کنیم.

راه اندازی C/C++ SDK برای پیکو

برای توسعه برنامه ها به یک محیط توسعه نرم افزار C/C++ نیاز داریم. برای راه اندازی C/C++ SDK، من از Ubuntu 20.04 LTS استفاده می کنم.

موسسه رزبری پای یک اسکریپت راه‌اندازی برای Linux و سیستم عامل رزبری پای ارائه می‌کند که به‌طور خودکار پیش‌نیازهایی را برای C/C++ SDK و Visual Studio Code ایجاد و نصب می‌کند. برای دانلود اسکریپت راه اندازی C/C++ SDK، باید دستورات زیر را فراخوانی کنیم.

mkdir ~/raspberry-pi-pico
cd ~/raspberry-pi-pico
wget https://raw.githubusercontent.com/raspberrypi/pico-setup/master/pico_setup.sh
chmod +x pico_setup.sh
./pico_setup.sh

توجه: من بخش دانلود VSCode IDE را مسدود کردم و بسته به سیستم عاملم IDE را جداگانه دانلود و نصب کردم.

درست مانند اسکریپت راه اندازی، می توانیم پیش نیازها، SDK و IDE را نیز یکی یکی با استفاده از دستورات ذکر شده در زیر نصب کنیم.

پیش نیازها را نصب کنید

sudo apt update
sudo apt install git cmake gcc-arm-none-eabi gcc g++ libstdc++-arm-none-eabi-newlib
sudo apt install automake autoconf build-essential texinfo libtool libftdi-dev libusb-1.0-0-dev

پیش نیازها را نصب کنید

مخزن SDK Pico C/C++ را دانلود کنید و مسیرهای محیطی SDK را به‌روزرسانی کنید

mkdir ~/raspberry-pi-pico
cd ~/raspberry-pi-pico
mkdir pico
cd pico
git clone -b master https://github.com/raspberrypi/pico-sdk.git
cd pico-sdk
git submodule update --init
cd ..
git clone -b master https://github.com/raspberrypi/pico-examples.git
git clone -b master https://github.com/raspberrypi/pico-extras.git
git clone -b master https://github.com/raspberrypi/pico-playground.git

مخزن C SDK رزبری پای پیکو

پس از دانلود SDK، زمان آن رسیده است که متغیر Environment را برای مسیر هر مخزن با PICO_SDK_PATH, PICO_EXAMPLES_PATH, PICO_EXTRAS_PATH, PICO_PLAYGROUND_PATH در bashrc. برای استفاده در آینده به روز کنید. همچنین، کاربران می توانند زمانی که روی Raspberry Pico کار می کنند، متغیر Environment را به روز کنند.

export PICO_SDK_PATH=/home/<user-name>/raspberry-pi-pico/pico/pico-sdk
export PICO_EXAMPLES_PATH=/home/<user-name>/raspberry-pi-pico/pico/pico-examples
export PICO_EXTRAS_PATH=/home/<user-name>/raspberry-pi-pico/pico/pico-extras
export PICO_PLAYGROUND_PATH=/home/<user-name>/raspberry-pi-pico/pico/pico-playground

آپدیت متغیر Environment

دانلود و نصب Picotool و Picoprobe

برای بازیابی اطلاعات جاسازی شده از باینری های Raspberry Pi Pico باید Picotool را دانلود و نصب کنیم.

cd ~/raspberry-pi-pico/pico
git clone -b master https://github.com/raspberrypi/picotool.git
cd picotool
mkdir build
cd build
export PICO_SDK_PATH=/home/<user-name>/raspberry-pi-pico/pico/pico-sdk
cmake ../
make
sudo cp picotool /usr/local/bin/

دانلود و نصب Picotool و Picoprobe 

پس از نصب Picotool، نوبت به دانلود و نصب Picobrobe می رسد. با کمک Picoprobe، می‌توانیم از Raspberry Pi Pico به عنوان یک دستگاه برنامه‌نویس/debugger برای Raspberry Pi Pico استفاده کنیم.

cd ~/raspberry-pi-pico/pico
git clone -b master https://github.com/raspberrypi/picoprobe.git
cd picoprobe
mkdir build
cd build
export PICO_SDK_PATH=/home/<user-name>/raspberry-pi-pico/pico/pico-sdk
cmake ../
make

نصب Picobrobe

دانلود و راه اندازی کامپایلر OpenOCD (برای اشکال زدایی)

اکنون زمان دانلود و راه اندازی OpenOCD برای دیباگ کردن Raspberry Pico است.

همچنین اگر در مورد این مطلب سوالی داشتید در انتهای صفحه در قسمت نظرات بپرسید
cd ~/raspberry-pi-pico/pico
git clone https://github.com/raspberrypi/openocd.git --branch rp2040 --depth=1
cd openocd
./bootstrap
./configure --enable-picoprobe --enable-ftdi --enable-sysfsgpio --enable-bcm2835gpio
make
sudo make install​

دانلود و راه اندازی کامپایلر OpenOCD (برای اشکال زدایی)

برنامه نویسی OpenOCD پیکو

Visual Studio Code IDE را دانلود و نصب کنید

پس از دانلود و راه اندازی تمامی نرم افزارهای SDK و دیباگر، اکنون قصد داریم تا برای توسعه آسان و سریع، IDE Visual Studio Code را نصب کنیم. قبلاً اشاره کردم که از اوبونتو 20.04LTS – 64 بیتی استفاده می کنم، بنابراین، فایل code_1.xx.xx_amd64.deb را از وب سایت رسمی ویژوال استودیو دانلود کردم و VSCode IDE را نصب کردم.

Visual Studio Code IDE را دانلود و نصب کنید

cd ~/raspberry-pi-pico/pico
sudo apt install libx11-xcb1 libxcb-dri3-0 libdrm2 libgbm1 libegl-mesa0
code --install-extension marus25.cortex-debug
code --install-extension ms-vscode.cmake-tools
code --install-extension ms-vscode.cpptools

Visual Studio Code IDE

کامپایل اولین پروژه به زبان سی [Led چشمک زن]

اکنون که همه چیز آماده است، بیایید اولین پروژه خود را کامپایل کنیم، یعنی چشمک زدن ال ای دی با Raspberry Pi Pico با استفاده از زبان C.

کامپایل اولین پروژه [Led چشمک زن]

حالا یک “pico_workspace” در داخل پوشه ~/raspberry-pi-pico/ ایجاد کنید و کد VisualStudio را باز کنید. سپس روی «Explorer» در سمت چپ بالا کلیک کنید یا Ctrl+Shift+E را فشار دهید و سپس روی «Open Folder» در زیر تب Explorer کلیک کنید. در پنجره Open Folder به ~/raspberry-pi-pico/pico_workspace بروید و یک پوشه با نام blink-led ایجاد کنید و روی دکمه OK کلیک کنید.

محیط کار در پیکو

پیکربندی رزبری پای پیکو

پس از ایجاد و وارد کردن پوشه پروژه blink-led، اکنون با انتخاب گزینه “File->New File or Ctrl+N” از نوار منو یک فایل ایجاد کنید و سپس Ctrl+S را فشار دهید تا به عنوان “main.c” ذخیره شود. پس از ذخیره فایل، کد چشمک زن led را در “main.c” بنویسید.

/**
 * Copyright (c) 2020 Raspberry Pi (Trading) Ltd.
 *
 * SPDX-License-Identifier: BSD-3-Clause
 */
#include "pico/stdlib.h"
int main() {
#ifndef PICO_DEFAULT_LED_PIN
#warning blink example requires a board with a regular LED
#else
    const uint LED_PIN = PICO_DEFAULT_LED_PIN;
    gpio_init(LED_PIN);
    gpio_set_dir(LED_PIN, GPIO_OUT);
    while (true) {
        gpio_put(LED_PIN, 1);
        sleep_ms(250);
        gpio_put(LED_PIN, 0);
        sleep_ms(250);
    }
#endif
}

چشمک زدن LED به زبان C در پیکو

C/C++ SDK Raspberry Pi Pico با ابزار اتوماسیون ساخت CMake همراه است. بنابراین، پس از ایجاد فایل .C برای پروژه، باید “CMakeLists.txt” را ایجاد کنیم. CMakeLists.txt حاوی دستورالعمل‌های مجموعه‌ای است که فایل‌ها و اهداف منابع پروژه را توصیف می‌کند.

# Set minimum required version of CMake
cmake_minimum_required(VERSION 3.12)
#include build functions from Pico SDK
include($ENV{PICO_SDK_PATH}/external/pico_sdk_import.cmake)
# Set name of project (as PROJECT_NAME) and C/C++ Standards
project(blink-led C CXX ASM)
set(CMAKE_C_STANDARD 11)
set(CMAKE_CXX_STANDARD 17)
# Creates a pico-sdk subdirectory in our project for the libraries
pico_sdk_init()
# point out the CMake, where to find the executable source file
add_executable(${PROJECT_NAME}
        main.c
)
# create map/bin/hex/uf2 files.
pico_add_extra_outputs(${PROJECT_NAME})
# Pull in our pico_stdlib which pulls in commonly used features (gpio, timer-delay etc)
target_link_libraries(${PROJECT_NAME}
            pico_stdlib
)

CMakeLists در رزبری پای پیکو

اکنون، کد ویژوال استودیو را برای تنظیم خودکار برنامه افزودنی Cmake برای پروژه چشمک زن مجدداً راه اندازی کنید. پس از راه اندازی مجدد، می توانید گزارش ساخت CMake را در پنجره خروجی در پایین مشاهده کنید.

[cmake] -- Configuring done
[cmake] -- Generating done
[cmake] -- Build files have been written to: /home/<user-name>/raspberry-pi-pico/pico_workspace/blink-led/build

و سپس روی نماد Build در پایین نوار وضعیت کلیک کنید تا پروژه blink-led ساخته شود و فایل uf2. خروجی فرآیند ساخت در پنجره Output Log نشان داده می شود. پس از ساخت موفق، وضعیت ساخت نیز در پنجره خروجی نشان داده می شود.

[build] [100%] Linking CXX executable blink-led.elf
[build] [100%] Built target blink-led
[build] Build finished with exit code 0

رزبری پای پیکو LED چشمک زن

توجه: مطمئن شوید که “GCC x.x.x arm-none-eabi” را انتخاب کرده اید. اگر درست نیست، بر روی آیکون Wrench+ScrewDriver در نوار وضعیت پایین کلیک کنید و زنجیره ابزار درست را مانند تصویر از لیست انتخاب کنید.

بارگذاری کد در رزبری پای پیکو

آپلود کد در رزبری پای پیکو به زبان C

آپلود کد در رزبری پای پیکو به زبان C

اکنون، پس از تنظیم همه چیز برای برنامه نویسی Pi Pico، نوبت به آپلود کد رسیده است. همانطور که می دانیم، برای برنامه ریزی Raspberry Pico به هیچ پروگرامری نیاز نداریم. باید USB را به pico وصل کنیم در حالی که دکمه BOOTSEL روی برد فشار داده شده و نگه داشته شده تا Pico به سیستم وصل شود و سپس دکمه BOOTSEL را رها کنید.

رزبری پای بوت لودر

اکنون، زمان آپلود کد چشمک زدن LED با رزبری پای Pico است. هنگامی که ما پروژه Blink-led را می سازیم، یک فایل باینری UF2 در پوشه ~/raspberry-pi-pico/pico_workspace/blink-led/build ایجاد می شود. پس از نصب Raspberry Pi Pico، باید blink-led.uf2 را در درایو RPI-RP2 نصب شده کپی کنیم و Raspberry Pi Pico به طور خودکار خود را مجددا راه اندازی می کند و باید چشمک زدن led روی برد را مشاهده کنید.

مدار چشمک زدن LED در رزبری پای

این مراحل برای برنامه نویسی Raspberry Pi Pico با استفاده از C/C++ SDK است.

5/5 - (1 امتیاز)

برای دریافت مطالب جدید کانال تلگرام یا پیج اینستاگرام آیرنکس را دنبال کنید.
تصویر از محمد رحیمی

محمد رحیمی

محمد رحیمی هستم. سعی میکنم در آیرنکس مطالب مفید قرار بدهم. سوالات مربوط به این مطلب را در قسمت نظرات همین مطلب اعلام کنید. سعی میکنم در اسرع وقت به نظرات شما پاسخ بدهم.

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

نشانی ایمیل شما منتشر نخواهد شد.