. Raspberry Pi Pico C言語開発の始め方 インストール〜Lチカまで(C/C SDK編) – Indoor Corgi
Raspberry Pi Pico C言語開発の始め方 インストール〜Lチカまで(C/C SDK編) – Indoor Corgi
Raspberry Pi Pico C言語開発の始め方 インストール〜Lチカまで(C/C SDK編) – Indoor Corgi

Raspberry Pi Pico C言語開発の始め方 インストール〜Lチカまで(C/C++ SDK編)

まずマイコンボードについて説明しておきましょう。マイコンボードとはその名の通り、マイコン(マイクロコントローラー)を搭載した基板やデバイスのことです。マイコンに自分が作成したプログラムを書き込むことで、様々な動作をさせることができます。例えば、ディスプレイに文字を表示させたり、温度を測定したり、インターネットと通信したり、といった具合です。(もちろん必要なディスプレイやセンサーなどが接続されている必要はありますが・・) つまり、 「こんな機能をもつデバイスを作れないかな?」というユーザーの希望を実現できるのがマイコンボード なのです。

  • 処理能力に優れている(Pico2:2コア150MHz、RAM520kB、Flash4MB)一方で、低価格(千円程度)
  • 情報が豊富で、公式のドキュメントやサンプルプログラムが充実
Raspberry Piとの違い

Raspberry Pi Pico以外に、Raspberry Pi 5、4、3やZeroといった製品もあります。これらはLinuxというOSで制御する、 パソコンに近い仕組み で動作しており、ユーザーが作ったプログラムだけが動作するPico(マイコンボード)とは仕組みが異なります。

Raspberry PiとRaspberry Pi Picoの違いをまとめてみました。

比較項目Raspberry PiシリーズRaspberry Pi Picoシリーズ処理能力 高い 低い リアルタイム性、応答性 低い 高い 動作するプログラム多数システム、通信、既存ソフト、ユーザープログラムなど1つユーザープログラム消費電力 多い (PCよりは少ない)数W〜十数W 少ない 〜1W、スリープも可能起動までの時間 遅い 〜数十秒 早い 〜0.1秒向いている用途処理能力を必要とする用途既存ソフトや通信ハードウェアと組み合わせて使う用途専門性の高い用途リアルタイム性が求められる用途 開発の始め方
  1. プログラミング言語を使ってプログラムを記述する
  2. プログラムをPicoが理解できる形式に変換する(ビルド)
  3. プログラムをPicoに書き込む

Pico用の開発環境は主に「 C / C++ SDK 」、「 Arduino Core 」、「 MicroPython 」の3つがあり、以下が比較になります。

開発環境特徴C / C++ SDKソフトはVS Codeを使用公式が提供している開発環境でドキュメントが充実Picoの全機能に直接アクセスでき、性能を引き出せるArduino CoreソフトはArduino IDEを使用 (VS Codeも可)有志がC / C++ SDKに加えてArduinoと互換性を持たせるために開発SDKにない機能が統合されていて多機能既存のArduino用コードが利用できる可能性が高いMicroPythonソフトはVS CodeやThonnyなど柔軟性の高いPython言語で、C/C++より簡潔に記述できる

本記事では「 C / C++ SDK 」を利用した開発の始め方を解説していきます。

当初、「C / C++ SDK」を利用した方法は導入方法が分かりにくかったのですが、VS Codeの拡張機能が用意されたことで、関連ソフトが自動インストールされたりサンプルプログラムが簡単にインポートできるなど、 簡単に利用できる ようになりました。

VS Codeのインストール 必要なソフトのインストール (Mac/Linuxのみ) $ xcode-select --install $ sudo apt install python3 git tar build-essential Raspberry Pi Pico拡張機能の追加

次にRaspberry Pi Picoの拡張機能をVS Codeに追加していきます。

拡張機能一覧が表示されるので、上部の検索ボックスに「raspberry pi pico」と入力します。すると、Raspberry Pi Pico拡張機能が見つかるので、その横にある「Install」ボタンをクリックします。

LED点滅プロジェクトを作成

今回は、 LEDを点滅させるサンプルプログラムをPicoで動作 させてみたいと思います。LEDはあらかじめPicoの基板に取り付けられているので、別途用意する必要はありません。

Pico拡張機能のメニューが表示されるので、上の方の「General」一覧にある「New Project From Example」をクリックします。ここから、サンプルプログラムをもとに新規のプロジェクトを作成できます。

「Board type」で使用するボードの種類(Pico WやPico 2など)を選択します。

初めてプロジェクトを作成する場合は、必要なソフトをダウンロードするため、完了まで時間がかかります

プログラムのビルドと書き込み

プログラムはC言語などのプログラム言語で記述されています。まずはこれを Picoで動作する形式に変換する 必要があります。この手順を「ビルド」と呼びます。

まとめると、 以下の3ステップが必要 です。Pico拡張機能にはそれぞれのステップに対応したボタンが用意されています。

  1. CMake (下準備)
  2. コンパイル (Picoで動作するプログラムに変換)
  3. 書き込み (Picoに転送、保存、実行される)
CMake コンパイル

右下のログ画面に「Linking CXX executable blink.elf」などと表示されて終了していれば成功です。プログラムにミスがあるなどの理由で失敗した場合は、問題の箇所がログに表示されるのでチェックするようにします。

USB書き込み

PC側で書き込み操作をする前に、 Picoを「書き込み待ち」の状態にしておく 必要があります。「書き込み待ち」状態にするには、Picoの基板上の 白色の「BOOTSEL」ボタンを押したままUSBケーブルを挿入して電源を入れます 。挿入後は「BOOTSEL」ボタンを離して構いません。

次にPico拡張機能メニューの「Project」以下にある「Run Project (USB)」をクリックします。

プロジェクトのファイル構成

それぞれの役割について表にまとめました。この中で、自分でプログラムを作成する際に編集するのは 「blink.c」と「CMakeLists.txt」だけ です。

ファイル / ディレクトリ役割blink.c (拡張子.cや.hのファイル)動作を記述するプログラム本体CMakeLists.txtCMake(下準備)の動作を記述ボードの指定、コンパイルするファイルの指定、使用するライブラリの指定などpico_sdk_import.cmakeC / C++ SDKを使うための設定CMakeLists.txtから参照されている編集しないbuildビルド時に必要なファイルや、Picoに書き込む.elfファイルなどが自動生成される編集しない消しても再度ビルドした際に生成されるので問題ない.gitignoreバージョン管理ソフトGitを使う場合に使われる.vscodeVS Codeの設定や動作 点滅速度の変更

次に、下にスクロールして、「int main () で囲まれた部分は特に重要です。なぜなら、 プログラムが起動すると、ここに書かれている命令が上から順に実行される からです。

変更したら、コンパイルしてPicoに書き込んでみてください。書き込む際は、BOOTSELボタンを押しながらUSBケーブルを挿し直す必要があります。点灯時間が約0.5秒、消灯時間が約1秒と、 先程よりゆっくりした点滅になっていれば成功 です!

USBケーブルを抜かずに書き込み リセットボタンをつける

PicoのRUNピン(ピン番号30)をグラウンド(GND)に接続してから切断することで、Picoをリセットすることができます。書き込み待ち状態にするには、BOOTSELボタンを押した状態でリセットすれば良いので、RUNピンとGNDの間に追加スイッチをつけておくと、 BOOTSELボタンを押したまま追加スイッチを押して離す ことで書き込み待ち状態にできます。

Picoのピン配置 (Raspberry Piより引用) デバッグプローブで書き込む まとめ

C / C++ SDKを利用したRaspberry Pi Picoの開発環境のインストール方法、プログラムのビルド、書き込み方法の解説は以上です。LED点滅サンプルプログラムを利用して、簡単なプログラムの編集についても解説しました。自分の思い通りに動作をプログラムできるマイコンボードの面白さを少しでも感じていただけたら嬉しいです。

Raspberry Pi PicoにラズパイHATを取り付けるアダプター「RPP-HAT-Adapter」

Raspberry Pi PicoシリーズにRaspberry Pi(ラズパイ)用の拡張基板(HAT)を取り付けるためのアダプター基板です。LEDやセンサー、赤外線通信、モータードライバーなど、既存のラズパイ用拡張基板の機能をPicoに追加することができます。プログラム書き換えに便利なリセットスイッチを搭載。サンプルプログラムも用意しており、Picoで様々なアプリケーションを開発することができます。

デバッグプローブの接続方法とプログラム書き込み (Raspberry Pi Pico&C/C++ SDK) シリアルモニターにUART/printfでログ出力 (Raspberry Pi Pico&C/C++ SDK) Sales Technical Support Copyright

© Indoor Corgi All rights reserved.

📎📎📎📎📎📎📎📎📎📎