C / C++ SDKを利用したRaspberry Pi Picoの開発環境のインストール方法、プログラムの作成、書き込み方法を、初心者の方でも分かりやすいように解説しています。また、LEDを点滅するプログラムの編集例も載せています。本記事の内容を踏まえれば、自分でプログラムを作成することができると思います。
更新日 : 2025年3月13日Raspberry Pi Picoとは
Raspberry Pi Pico(以降、Picoと表記)はマイコンボードの一種です。
まずマイコンボードについて説明しておきましょう。マイコンボードとはその名の通り、マイコン(マイクロコントローラー)を搭載した基板やデバイスのことです。マイコンに自分が作成したプログラムを書き込むことで、様々な動作をさせることができます。例えば、ディスプレイに文字を表示させたり、温度を測定したり、インターネットと通信したり、といった具合です。(もちろん必要なディスプレイやセンサーなどが接続されている必要はありますが・・) つまり、「こんな機能をもつデバイスを作れないかな?」というユーザーの希望を実現できるのがマイコンボードなのです。

他の有名なマイコンボードとしては、ArduinoやESP32、STM32などがあります。Picoの特徴を簡単にまとめると以下の通りで、マイコンボードの入門として最適な製品の一つです。
- 処理能力に優れている(Pico2:2コア150MHz、RAM520kB、Flash4MB)一方で、低価格(千円程度)
- 情報が豊富で、公式のドキュメントやサンプルプログラムが充実
これから始める場合はPico 2か、WiFi/Bluetooth搭載のPico 2Wがおすすめです。
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秒 |
向いている用途 | 処理能力を必要とする用途 既存ソフトや通信ハードウェアと組み合わせて使う用途 | 専門性の高い用途 リアルタイム性が求められる用途 |
それぞれの向いている用途に合わせて適材適所で使用するのが良いでしょう。リアルタイム性の高い部分をPicoに任せつつ、通信やサーバー処理をRaspberry Piで行うといったように、組み合わせて使うことも可能です。
Raspberry Piの始め方の記事も用意しているので、興味のある方はそちらも参考にしてみてください。
開発の始め方
ではPico用のプログラムはどのようにして作ればよいのでしょうか?プログラムの作成はパソコン(PC)で行い、以下のような手順になります。
- プログラミング言語を使ってプログラムを記述する
- プログラムをPicoが理解できる形式に変換する(ビルド)
- プログラムをPicoに書き込む
これらのステップを行ってくれるソフトは「開発環境」などと呼ばれています。
Pico用の開発環境は主に「C / C++ SDK」と「Arduino Core」の2つがあり、以下が比較になります。
開発環境 | 特徴 |
---|---|
C / C++ SDK | ソフトはVS Codeを使用 公式が提供している開発環境でドキュメントが充実 Picoの全機能に直接アクセスでき、性能を引き出せる |
Arduino Core | ソフトはArduino IDEを使用 (VS Codeも可) 有志がC / C++ SDKに加えてArduinoと互換性を持たせるために開発 SDKにない機能が統合されていて多機能 既存のArduino用コードが利用できる可能性が高い |
本記事では「C / C++ SDK」を利用した開発の始め方を解説していきます。
当初、「C / C++ SDK」を利用した方法は導入方法が分かりにくかったのですが、VS Codeの拡張機能が用意されたことで、関連ソフトが自動インストールされたりサンプルプログラムが簡単にインポートできるなど、簡単に利用できるようになりました。
VS Codeのインストール
VS Codeとは高機能ながら軽量なエディターで、プログラミングの分野で広く使われています。まず、公式ダウンロードページからダウンロードしてインストールしてください。Windows、Mac、Linuxに対応しています。
なお、インストール中のオプションで、「Codeで開く」を追加する部分を有効にしておくと、既存のプロジェクトを右クリックから開くことができて便利です。

必要なソフトのインストール (Mac/Linuxのみ)
Macの場合は以下$に続くコマンドをターミナルで実行して、必要なソフトをインストールします。
$ xcode-select --install
Linux(Debian系)の場合は以下の$に続くコマンドをターミナルで実行して、必要なソフトをインストールします。
$ sudo apt install python3 git tar build-essential
Raspberry Pi Pico拡張機能の追加
次にRaspberry Pi Picoの拡張機能をVS Codeに追加していきます。
VS Codeを開き、左に並んでいるアイコンの中から、以下の拡張機能のアイコンをクリックします。

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

Pico拡張機能がダウンロードされてVS Codeに追加されます。必要な他の拡張機能もいくつか自動的に追加されます。
LED点滅プロジェクトを作成
Pico拡張機能には、すぐに動作するサンプルプログラムが多数用意されています。
今回は、LEDを点滅させるサンプルプログラムをPicoで動作させてみたいと思います。LEDはあらかじめPicoの基板に取り付けられているので、別途用意する必要はありません。
この例で、開発の流れを理解することができると思います。また、自分でプログラムを書く場合でも、ゼロからコードを用意するのは大変なので、既存のサンプルを書き換えることから始めるとスムーズです。
まず、左のアイコン一覧の中からPico拡張機能のアイコンをクリックします。

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

メイン画面に新規プロジェクトの設定が表示されます。
まず、「Name」の右にある下矢印をクリックしてサンプルプログラム一覧を表示させ、LED点滅プログラム「blink」を選択します。

「Board type」で使用するボードの種類(Pico WやPico 2など)を選択します。
必要であれば「Location」で作成する場所を選び、最後に「Create」を押してプロジェクトを作成します。

初めてプロジェクトを作成する場合は、必要なソフトをダウンロードするため、完了まで時間がかかります。
指定した場所にフォルダーとファイルがいくつか作成され、自動的にVS Codeで開かれます。
プログラムのビルドと書き込み
次に、プログラムをPicoで動作させる手順を説明していきます。
プログラムはC言語などのプログラム言語で記述されています。まずはこれをPicoで動作する形式に変換する必要があります。この手順を「ビルド」と呼びます。
今回使用している開発環境では、「ビルド」はさらに「CMake」と「コンパイル」の2ステップに分けられます。プロジェクトにあるCMakeLists.txtにある内容をもとに下準備をするのが「CMake」、blink.cなどのプログラムコードをPicoで動作するように変換するのが「コンパイル」です。
最後に、「コンパイル」したプログラムをPicoに転送する「書き込み」手順が必要です。
まとめると、以下の3ステップが必要です。Pico拡張機能にはそれぞれのステップに対応したボタンが用意されています。
- CMake (下準備)
- コンパイル (Picoで動作するプログラムに変換)
- 書き込み (Picoに転送、保存、実行される)
CMake
まず、最初のステップのCMakeを実行するには、Pico拡張機能メニューの「Project」以下にある「Configure CMake」をクリックします。

右下に以下のようなポップアップが出れば成功です。

なお、CMakeはプロジェクトの「CMakeLists.txt」を編集した場合のみ再度実行が必要です。cファイルを書き換えた場合などは再度実行しなくて構いません。
また、実際には裏で自動的にCMakeが行われ、明示的に実行しなくても動作する場合もあるのですが、ビルドに必要なステップとして理解しておいた方が、トラブル時に対処しやすいと思います。
コンパイル
コンパイルを実行するには、Pico拡張機能メニューの「Project」以下にある「Compile Project」をクリックします。

右下のログ画面に「Linking CXX executable blink.elf」などと表示されて終了していれば成功です。プログラムにミスがあるなどの理由で失敗した場合は、問題の箇所がログに表示されるのでチェックするようにします。
USB書き込み
最後は書き込みの手順です。今回はPCとPicoを接続しているUSBを使って書き込む方法を解説します。
PC側で書き込み操作をする前に、Picoを「書き込み待ち」の状態にしておく必要があります。「書き込み待ち」状態にするには、Picoの基板上の白色の「BOOTSEL」ボタンを押したままUSBケーブルを挿入して電源を入れます。挿入後は「BOOTSEL」ボタンを離して構いません。

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

転送されたプログラムは自動的に実行されます。基板上の緑色LEDが点滅したら成功です!

プロジェクトのファイル構成
ここからは、プログラムの簡単な編集を行い、点滅速度を変えてみたいと思います。
まず、プロジェクトに含まれるファイルについて解説します。プロジェクトのファイル一覧を見るには、左のバーのエクスプローラーアイコンをクリックします。

それぞれの役割について表にまとめました。この中で、自分でプログラムを作成する際に編集するのは「blink.c」と「CMakeLists.txt」だけです。
ファイル / ディレクトリ | 役割 |
---|---|
blink.c (拡張子.cや.hのファイル) | 動作を記述するプログラム本体 |
CMakeLists.txt | CMake(下準備)の動作を記述 ボードの指定、コンパイルするファイルの指定、使用するライブラリの指定など |
pico_sdk_import.cmake | C / C++ SDKを使うための設定 CMakeLists.txtから参照されている 編集しない |
build | ビルド時に必要なファイルや、Picoに書き込む.elfファイルなどが自動生成される 編集しない 消しても再度ビルドした際に生成されるので問題ない |
.gitignore | バージョン管理ソフトGitを使う場合に使われる |
.vscode | VS Codeの設定や動作 |
点滅速度の変更
点滅速度はプログラムに記述されているので、「blink.c」ファイルを編集することで変更可能です。
VS Codeのエクスプローラーで「blink.c」ファイルをクリックすると、メイン画面に内容が表示されて編集できるようになります。

次に、下にスクロールして、「int main () {」と書かれている行(記事執筆時点で44行目)に移動してください。このmain(){ … }で囲まれた部分は特に重要です。なぜなら、プログラムが起動すると、ここに書かれている命令が上から順に実行されるからです。

これ以外のコードは、プログラムの下準備か、mainを実行している途中で呼び出されて実行される関数(サブルーチン)となっています。
main内部のコードについてもう少し見ていきます。最初の2行(45, 46行目)はLEDを光らせるための信号を初期化しています。
47行目〜52行目のwhile(true) { … }は無限ループする記述です。つまり、51行目を実行したあとは48行目に戻って繰り返し命令が実行されます。
ループ内のpico_set_led(…)はLEDを点灯/消灯させる命令、sleep_msは()内に指定した時間待機する命令です。

まとめると、以下のような流れで動作することでLED点滅を実現していることがわかります。
- LEDを光らせる信号を初期化
- LED点灯
- 待機
- LED消灯
- 待機
- 2に戻る
点滅間隔を変えるにはsleep_ms()の待機時間を変えれば良さそうですね。サンプルではLED_DELAY_MSと書かれていますが、16行目にLED_DELAY_MSが250を意味するという指示があり、実際には250を指定した動作になっています。待機時間はミリ秒で指定するので、0.25秒に相当します。
今回は以下のように直接変更してみます。

変更したら、コンパイルしてPicoに書き込んでみてください。書き込む際は、BOOTSELボタンを押しながらUSBケーブルを挿し直す必要があります。点灯時間が約0.5秒、消灯時間が約1秒と、先程よりゆっくりした点滅になっていれば成功です!
USBケーブルを抜かずに書き込み
USB書き込みの欠点として、プログラムを書き込む際にBOOTSELボタンを押しながらUSBケーブルを抜き差しするのが面倒くさいという点があります。そこで、USBケーブルを挿したまま書き換えできる方法についていくつか紹介します。
リセットボタンをつける
PicoのRUNピン(ピン番号30)をグラウンド(GND)に接続してから切断することで、Picoをリセットすることができます。書き込み待ち状態にするには、BOOTSELボタンを押した状態でリセットすれば良いので、RUNピンとGNDの間に追加スイッチをつけておくと、BOOTSELボタンを押したまま追加スイッチを押して離すことで書き込み待ち状態にできます。
ブレッドボードにリセットボタンを取り付けた例を示します。黒いスイッチを押すとRUNとGNDがつながるように配線しています。
デバッグプローブで書き込む
今回はPicoのUSB端子から書き込んでいましたが、別途デバッグプローブをPCとPicoに接続し、デバッグプローブ経由で書き込むこともできます。この場合はスイッチ操作を一切せずに書き込むことができます。他にもデバッグに便利な機能があるので、本格的な開発におすすめです。
デバッグプローブの使い方はこちらの記事で解説しています。

Arduino Core開発環境を利用する
今回紹介した開発環境以外にも、Arduino coreと呼ばれる開発環境もあります。こちらはUSBのプログラム書き込み要求を検知する機能が統合されているため、初回の書き込み以降はスイッチ操作せずに書き込むことができます。
まとめ
C / C++ SDKを利用したRaspberry Pi Picoの開発環境のインストール方法、プログラムのビルド、書き込み方法の解説は以上です。LED点滅サンプルプログラムを利用して、簡単なプログラムの編集についても解説しました。自分の思い通りに動作をプログラムできるマイコンボードの面白さを少しでも感じていただけたら嬉しいです。センサーで温度を測定したり、モーターを回転させたり、WiFiで通信したりなど、アイデア次第で色々なことが可能です。

デバッグプローブの接続方法とプログラム書き込み (Raspberry Pi Pico&C/C++ SDK)
デバッグプローブをラズパイピコに接続する方法と、プログラムを書き込む方法について解説しています。デバッグプローブを使うことで、迅速なプログラム書き込みや動作検証が可能になるので、本格的な開発をする場合におすすめです。手持ちのPicoにファームウェアを書き込んでデバッグプローブとして使う方法も解説しました。

シリアルモニターにUART/printfでログ出力 (Raspberry Pi Pico&C/C++ SDK)
ラズパイピコで、UARTとprintfを使って動作ログをPCのシリアルモニターに表示する方法を解説しています。固定メッセージだけでなく、変数の値やセンサーなどの測定値を出力することも可能です。シリアルモニターを使うことでプログラムの動作を追うことができるので、意図したとおりに動いているか確認したり、問題発生時に原因を特定するのに役立ちます。

RPZ-IR-Sensor (Raspberry Pi用 温度/湿度/気圧/明るさ/赤外線 ホームIoT拡張ボード)
動作をプログラミング可能な、Raspberry Pi/Zero(ラズパイ)用ホームIoT拡張ボードです。温度、湿度、気圧、明るさセンサー、赤外線送受信機能を搭載。温度が上がったらエアコンをオンにする、暗くなったら照明を点灯する、外出先から家電の操作をする、気温や日照時間を記録する、といった使い方が可能です。LEDにステータスを表示したり、スイッチを押したら特定の処理をすることもできます。