Raspberry Pi Pico W でPCとBluetooth(シリアル)接続する

2023年3月27日に、Raspberry Pi Pico W (Wifi/Bluetooth対応版)が日本でもようやく販売開始されました。

Raspberry Pi Pico Wは海外では2022年6月に販売開始されており、ハード的にはWifiとBluetoothに対応していましたが、当初はBluetoothはSDKが対応しておらず、Wifiのみ利用できる状況でした。
2023年2月にBluetooth対応のSDKがリリースされ、Arduino(EarlePhilhower版)でもBluetoothが利用できるようになっています。
なお、本記事はArduino公式版ではなくEarlePhilhower版を前提に記述しています。

今回はArduino開発環境で、Pico WとWindows PCをBluetooth(シリアル:SPP)接続してみます。
有線シリアル通信のプログラムを簡単に無線化できますよ!

Pico W側のセットアップとプログラム

セットアップはこちら↓の記事を参照してください。

Raspberry Pi Pico/Pico WをArduino開発環境で使うためのメモ
https://blog.studiok-i.net/2576.html

ArduinoのPico Wサポート(EarlePhilhower版)は記事執筆時点で最新のv3.1.1を使用しました。

プログラムは以下になります。

#include "SerialBT.h"

int count = 0;

void setup() {
  SerialBT.begin();
  pinMode(LED_BUILTIN, OUTPUT);
}

void loop() {
  while (SerialBT.available()) {
    char c = SerialBT.read();
    SerialBT.println(c);
  }

  count++;
  SerialBT.println(count);

  digitalWrite(LED_BUILTIN, count % 2);

  delay(1000);
}

通常のシリアル通信を使用するプログラムがある場合は以下の2点を変更すればOKです。とても簡単ですね!

  1. #include “SerialBT.h” を追加
  2. Serial.xxx() を SerialBT.xxx() に変更

上の2つ目の変更は、プログラムの先頭で

#define Serial SerialBT

とすればひとつひとつ書き換えなくて良いですし、元に戻すのも簡単ですね!

Arduinoの「ボード」には「Raspberry Pi Pico」ではなく、「Raspberry Pi Pico W」を選択してください。

Bluetoothを使用する場合は下図のように、
[ツール] → [IP/Bluetooth Stack: …] → [IPv4 + Bluetooth]を選択してください。

プログラムを書き込んだら、LEDが点滅しますので、動作していることが確認できると思います。

ちなみに、オンボードLEDはPicoの時はGP25に接続されていましたが、Pico WではWifiチップ側の接続に変更されています。
ですが、Arduinoが変更を吸収してくれていますので、これまで通り↓のような記述でOKです。

pinMode(LED_BUILTIN, OUTPUT);
digitalWrite(LED_BUILTIN, HIGH);

Windows PC側のBluetoothの設定(ペアリング)

当たり前ですが、Bluetoothが搭載されているPCを使用する必要があります。
以下はWindows11での設定手順ですが、Windows10でも似たような感じで設定できます。

  • Pico Wは上記のプログラムを書き込んで、動作している状態にします。
  • [設定]画面を開き、[Bluetoothとデバイス]を選択します
    [デバイス]欄の「>」をクリックします
  • 画面の下の方の「その他の Bluetooth 設定」をクリックします
  • 「Bluetooth設定」画面が開きます
    [COMポート]タブを選択し、[追加]ボタンをクリックします
  • 「発信 (PCが接続を開始する)」を選択し、
    「COMポートを使用するデバイス」のプルダウンから、
    「PicoW Serial:xx:xx:xx:…」を選択します
  • COMポートが割り当てられます
  • 割り当てられたCOMポートにターミナルソフト(下図はTeraTermを使用)で接続すると、Bluetoothでシリアル通信ができます

これまで有線でシリアル通信していたものが簡単に無線に置き換えできますね!

■Raspberry Pi Picoの関連記事
Raspberry Pi Pico+Arduinoでサーボをたくさん動かしたい
会話ができる「ぴよロボ」作りました! (Raspberry Pi + Pico + ChatGPT)
Raspberry Pi Pico W でPCとBluetooth(シリアル)接続する
Raspberry Pi Pico/Pico WをArduino開発環境で使うためのメモ
超音波距離センサー + Raspberry Pi Picoで潜水艦ソナー風
コップの水がこぼれない台 MPU6050 + Raspberry Pi Pico(Arduino)
MPU6050 + Raspberry Pi Pico(Arduino) -> PCで3Dのキューブを回転表示

本格派対局将棋 ぴよ将棋
本格派対局将棋アプリ ぴよ将棋
[Android] [iOS]

かわいい「ひよこ」と対局する将棋アプリ。かわいいけどAIは本格派!
対局後の検討機能や棋譜管理機能も充実!棋譜解析機能も搭載!

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です