Raspberry Pi Pico W の無線機能としてWiFiは以前にチェックしていていますが,新たにBluetoothも使えるようになったので試してみました。

Pico W は技適は通っていて,あらかじめ持っていたBluetooth機能がライセンスを取得したので使用可能になったのだそうです。

現在のIDEとPicoのボード(ライブラリ)のバージョンは以下です。
・Arduino IDE 2.2.1
・Raspberry Pi Pico/RP2040 by Earle F. Philhower III 3.6.0




なにはともあれ,UARTと同じように簡単にBluetooth経由でシリアル通信できるので,私のようなものには大助かりです(^^)。


[テストプログラム]
 "SerialBT.h"を使って普通のUARTのように出力するだけのシンプルすぎるプログラムです(^^;;;;;;;。




☆コンパイル・ダウンロードのセッティングの注意
 Pico WでBluetoothを使う時は必ず
"IP/Bluetooth Stack: IPv4+Bluetooth"
を設定しておかないとコンパイルエラーになります。









[PCとのペアリングと接続]
 上記のようなプログラムでPicoから発信させておいて,PCとのペアリングを行い,接続します。以下は私のPC, Windows11との接続です。

1.ペアリング

1)「設定」の「Bluetoothとデバイス」でPicoをデバイスとして追加します。ペアリングできても接続はされていません。





2)PCのCOMポートの確認
 ペアリングしたPCのCOMポート番号を確認して,シリアルモニタ(ターミナル)の接続ポート設定に使います。

「デバイスの追加」から元画面に戻り「デバイス」を押してデバイスページに移ります。




デバイスページをずっと下にスクロールしていくと「その他のBluetooth設定」項目があります。選択して開いたWindowの"COMポート"タブにPicoとのBluetooth通信に使用するCOMポートが2つ表示されます。この番号はその時のPCの環境によって変化します。

シリアルモニタには「発信」のCOMポート(図の場合はCOM12)を設定すると良いようです。







2.シリアルモニタ(ターミナル)との接続

 Teratermなどの専用ソフトやスマホの準備がなくても,Arduino IDE のシリアルモニタが使えます。

Arduino IDEのポートをPicoのBluetoothとの接続に使われているCOMに設定して,シリアルモニタを開きます。
(後にまたプログラムを書込む時は元のポートに戻します,,)





シリアルモニタを開いたところです。
Pico からの出力を受信して表示していますV(^^)。





[スマホのターミナルソフトとの接続]

AndroidスマホにGoogle play から"Serial Bluetooth Terminal"をダウンロードして使ってみました。

イヤホンなどと同じようにペアリングした後,ソフトからデバイスに指定すると案外スムースに通信できました。





Raspberry Pi Pico W のBluetooth通信は普通のシリアル通信と同じような関数,
SerialBT.begin()
SerialBT.print()
SerialBT.println()
SerialBT.write()
SerialBT.available()
SerialBT.read()
などで構成できます。
実際やってみるとプログラムも見やすくて使いやすいですねV(^^)。


繋がる事が分かればこちらのもので,Teratermを使ってのデータのやりとりなどやってみましたが,なかなか順調です。

ま,使っている earlephilhower/arduino-Pico はPicoでのマルチコア動作や高速・パラレルのデジタル出力も分かりやすく使える関数が用意されています。

Pico w ではそれにwifiとBluetoothが追加されたのでより楽しく使えそうですね。