Pico Wのディジタル信号出力をLEDの点灯・消灯で確認しよう。

2025年2月27日

【 当サイトには広告リンクが含まれています。 】

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(発光ダイオード)、固定抵抗など実験に使う部品を準備します。

部 品 名規 格数 量取扱い店(参考)
LED5mm 赤色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」を選択します。


以下のように設定します。

項 目説 明
Namegpio_blink
Board typePico W
Location任意(全角文字、半角カタカナが含まれていないこと。)
※自身のユーザ内に「GpioBlink」ファルダを作成しました。
Select Pico SDK versionv2.1.1
Stdio supportConsole 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++でプログラミングで点灯・消灯させ、ディジタル信号出力ができることを確認しました。



おすすめの一冊

本書を読むのにプログラム言語の知識は一切不要です。もっとも親しみやすいC言語の入門書として、現代の環境に合わせてアップデートされた、安心して勉強を始められる一冊です。