Raspberry Pi Pico Wの汎用入出力(GPIO)に接続したLEDを、Windows PC にインストールしたVisual Studio CodeでC/C++プログラミングを行い点灯・消灯させます。
実験準備
実験に必要な機器と部品を準備します。
機器
「Windows PCとC/C++でRaspberry Pi Pico Wの開発を始めよう。」記事で書きましたラズパイPicoWと、Visual Studio Code(以下 VSCode)をインストールしたWindows PCを準備します。
部品
LED(発光ダイオード)、固定抵抗など実験に使う部品を準備します。
部 品 名 | 規 格 | 数 量 | 取扱い店(参考) |
---|---|---|---|
LED | 5mm 赤色 | 1 | 電子工作ステーション |
カーボン抵抗 | 1/4W 330Ω | 1 | 電子工作ステーション |
ブレッドボード | 830穴 (訳アリ品を除く) | 1 | 電子工作ステーション |
ジャンパーワイヤ | オス-メス(約20cm) | 1 | 電子工作ステーション |
機器と部品の実装
準備した機器と部品を実際につなぎます。
配線
ブレッドボードを使って「赤いLED」、「抵抗」などをジャンパーワイヤでつなぎます。

ライセンス
プロジェクトのビルドに必要なソースファイル、ソースコードをビルドするための設定ファイル等は、3条項BSDライセンスのもとで配布します。
3条項BSDライセンスの概要(意訳)は次のとおりです。
- サンプルファイルのソースコードまたはバイナリ形式の再配布時には、著作権表示とライセンス条文を記載(SPDX-License-Identifier: BSD-3-Clauseなど)してください。
- サンプルファイルはコピー/配布/変更/変更後の配布/商用利用/有料販売など、自由に使うことができます。
- 書面による許可なしに、サンプルファイルから派生した製品の宣伝や販促に、本ライセンス記載の組織や貢献者(ラズパイ実験室)の名前を使うことはできません。
- サンプルファイルにはなんの保証もついていません。
サンプルファイルを利用し、なにか問題が発生した場合でも、作者(ラズパイ実験室)は一切の責任を負いませんので、使用に伴うリスクを理解し、自己責任で利用してください。
プロジェクト
VSCodeの拡張機能(Raspberry Pi Pico Visual Studio Code extension)を利用して、LEDを点灯・消灯させるプロジェクト(gpio_blink)を作成します。
gpio_blinkプロジェクトは、コンパイルに必要な、ソースファイル(gpio_blink.c)、ソースコードをビルドするための設定ファイル(CMakeLists.txt)、PicoのSDKインポート用のファイル(pico_sdk_import.cmake)で構成されています。
ソースコードをVSCodeにコピーしてビルドします。
プロジェクト・フォーマットの作成
プロジェクト作成のためのフォーマットを作成します。
VSCodeを起動し、「Rasoberry Pi Pico Project」アイコンをクリックし、「New C/C++ Project」をクリックします。

Raspberry Pi Pico ダイアログが表示されますので、「Basic Setting」を選択します。

以下のように設定します。
項 目 | 説 明 |
Name | gpio_blink |
Board type | Pico W |
Location | 任意(全角文字、半角カタカナが含まれていないこと。) ※自身のユーザ内に「GpioBlink」ファルダを作成しました。 |
Select Pico SDK version | v2.1.1 |
Stdio support | Console over UART :✔ |

「Create」をクリックします。

保存するフォルダ内のファイル作成者の信頼についての、ダイアログが表示される場合がありますので、「はい、作成者を信頼します」をクリックします。

プロジェクトが読み込まれます。
「自動補完システム」が準備完了になるまで待ち、準備完了マーク({})が表示された後、「エクスプローラー」を選択します。
「build」を開き、「build.ninja」が存在していることを確認します。
「gpio_blink.c」を選択すると、ソースコードがエディタエリアに表示されます。

プロジェクトの作成
作成したプロジェクト・フォーマットに、ソースコードを入力またはコピーして、プロジェクトを作成します。
- 「エクスプローラー」アイコンをクリックして、関係ファイルを表示します。
- 現在、VSCodeに表示されている「gpio_blink.c」の内容をすべて削除します。
- 下記「gpio_blink.c」のソースコードを入力またはコピー/貼り付けし保存します。
【gpio_bilnk.c】
//
// Copyright (c) 2024 ラズパイ実験室
//
// SPDX-License-Identifier: BSD-3-Clause
//
//********************************
//
//GPIOに接続したLEDを点灯・消灯
//
//********************************
//picoの標準ライブラリを組込
#include "pico/stdlib.h"
//標準関数のヘッダ関数を組込
#include <stdio.h>
//GPIOピン定義
#define LED_PIN 28
//LED点滅の間隔(ms)
#define LED_INTERVAL 500
//インターバルタイマ コールバック処理
bool timer_callback(repeating_timer_t *t)
{
//LED点滅処理
if (gpio_get(LED_PIN) != 0)
{
//LED消灯
gpio_put(LED_PIN, 0);
//シリアル モニターに表示
printf("LED OFF\n");
}
else
{
//LED点灯
gpio_put(LED_PIN, 1);
//シリアル モニターに表示
printf("LED ON\n");
}
//戻る
return (true);
}
//メイン処理
int main() {
//全てのstdioを初期化
stdio_init_all();
//LEDピン 初期化
gpio_init(LED_PIN);
//LEDピンを出力ピンに設定
gpio_set_dir(LED_PIN, GPIO_OUT);
//LED消灯
gpio_put(LED_PIN, 0);
//インターバルタイマ設定
struct repeating_timer timer;
add_repeating_timer_ms(-LED_INTERVAL, timer_callback, NULL, &timer);
//ループ
while (true) {
}
}
プログラムの実行
Raspberry Pi Pico Wに接続されているUSBケーブルを外し、「BOOTSEL」ボタンを押しながら、USBケーブルを差し込みます。

「F5」キーを押して実行すると、途中、Temporary breakpointsで一時停止します。

もう一度、「F5」キーを押して続行します。
LEDが500ms間隔で点滅します。
パネルエリアで「シリアルモニター」を選択し、ポートを /dev/ttyACM0 – Raspberry Piに設定します。
ボーレートを115200に設定し、「監視の開始」をクリックすると、「LED ON」と「LED OFF」が500ms間隔で表示されます。

確認後、「Shift + F5」キーを押して、停止します。
まとめ
Raspberry Pi Pico Wの汎用入出力(GPIO)に接続したLEDをC/C++でプログラミングで点灯・消灯させ、ディジタル信号出力ができることを確認しました。
おすすめの一冊