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://blog2.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です。とても簡単ですね!
- #include “SerialBT.h” を追加
- 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 W】WiFi UDP通信 サンプルプログラム
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のキューブを回転表示