Raspberry Pi Pico Wを入手しました。
Arduino環境でLチカとBluetooth UART通信をします。
RaspberryPi PicoW
主なスペック
RaspberryPi Picoの上位互換基板で、無線モジュールを搭載したモデルです。
接続 | Micro B (USB1.1 ホスト/デバイス) |
CPU | RP2040 (50 – 300MHz) |
メモリ | RAM 264KByte フラッシュ 2MByte |
ロジックレベル | 3.3V |
GPIO | I/O 26 ADC 4ch(10bit 0 ~ 1023) PWM 26ch(8bit 0 ~ 255) |
通信 | UART 2ch I2C 2ch SPI 2ch |
そのほか | LED 緑(32) 無線モジュール IEEE802.11n(2.4GHz) |
入手 | 国内ショッピングサイト ネットストア 実店舗 |
参考価格 | 国内 \1,100 ~ \1,300 |
参考価格:変動することがあります。保証価格ではありません。単品、送料税込み価格です。
電波を出すために技適が必要になりますが、この製品では梱包材にシールが貼り付けられています。
大切に保管してください。

◆関連記事
ピン配置

RaspberryPi PicoではLEDにGPIO25を使用するが、RaspberryPi PicoWではGPIO32を使用する。
外観


使ってみた
Raspberry Pi Pico と比較しました。
左側がRaspberry Pi Pico、右側がRaspberry Pi Pico Wです。
無線モジュールが追加され、SWDの位置が中央にオフセットされています。

SWDのピン配置は同じですが、パッドの形状が変化しています。
RaspberryPi PicoWでは、左端がスクエア形状になってますがSWCLKです。
GNDではありません。

SWDを秋月のテストワイヤーで使ってみました。
スルーホールと無線モジュールが近いと感じていましたが、ワイヤーの引っ張り方向によってはショートすることがありそうです。

使用感
Good
手ごろな価格で無線の電子工作ができる
RaspberryPi Picoと高い互換性があるので、従来のスケッチを使うことができる
Bad
SWD用スルーホールと無線モジュールのケースが近いのでテストワイヤーではショートのリスクがある
そのほか
RaspberryPi Picoとは上位のモデルで高い互換性があります。
国内での入手性もよく、RaspberryPi Picoとの価格差も\200~\300程度で無線を使った電子工作ができます。
発売時には技適マークがついていないものが先行で販売されていたので、販売店によってはマークのないものが発送されるかもしれません。
購入前に販売店に確認できれば安心して購入できると思います。
Bluetooth UARTを使ってみました。
普段のワイヤーUARTと同じ感覚で使えるほどライブラリの設計がよくできています。
準備
ライブラリ
ボードライブラリ
Arduino IDEのボードマネージャからRaspberry Pi Pico W用のライブラリのインストールとボードの選択をします。
追加のボードマネージャのURL | https://github.com/earlephilhower/arduino-pico/releases/download/global/package_rp2040_index.json |
検索 | RP2040 |
ボードライブラリ | Raspberry Pi RP2040 Boards(x.x.x)※ |
選択するボード | Raspberry Pi RP2040 Boards(x.x.x) > Raspberry Pi Pico W |
BluetoothはライブラリVer3.0.0 以降で使用できます。
ArduinoIDE上の設定を以下のパラメータに変更します。
当記事の「Bluetooth通信」の「準備」でも説明します。
選択するボード | Raspberry Pi Pico W |
IP/Bluetooth Stack | IPv4 + Bluetooth |
基本スケッチ
タクトスイッチとLED点灯
説明
タクトスイッチを押下している間LEDは点灯します。
タクトスイッチを離すとLEDは消灯します。
従来のRaspberry Pi Pico 互換基板では実装LEDにはGPIO25で使用していましたが、Raspberry Pi Pico Wでは 32を使用します。
ボードライブラリ定義の LED_BUILTIN を使用しても同じ結果になります。
スケッチ
//Raspberry Pi Pico Wの基板実装LEDは GPIO25 ではなく、32を使用します。
//ボードライブラリの定義 LED_BUILTIN でも 32 でも動作します。
#define LED 32 //基板実装LED
#define BUTTON 28 //タクトスイッチ
void setup()
{
Serial.begin(115200);
pinMode(LED, OUTPUT); //ピン出力設定
pinMode(BUTTON, INPUT_PULLDOWN); //プルダウンで入力
}
void loop()
{
int iStat = digitalRead(BUTTON);
digitalWrite(LED, iStat); //ボタンの状態をLEDに出力
}
結果
ボタンを押下することでLEDが点灯しました。
ボタンを離すとLEDは消灯しました。
無線スケッチ
Bluetooth通信
説明
BluetoothとUARTを使ってスマホとパソコンの通信をします。
パソコンとRaspberryPi PicoWをUSBケーブル経由でUART通信します。
RaspberryPi PicoWとスマートフォンをBluetoothでペアリングしBluetoothUARTで通信します。
UARTから読み取った文字をBluetoothでスマートフォンに送信します。
Bluetoothから読み取った文字をUARTでパソコンに送信します。

準備
RaspberryPi PicoWのBluetoothを使用するために以下2つの手順を実行します。
1.RaspberryPi PicoWのArduinoIDE上の設定を変更
2.ペアリング
手順:1.RaspberryPi PicoWのArduinoIDE上の設定を変更
Raspberry Pi Pico/RP2040 by Earle F.Philhower Ver3.0.0 以降で使用できます。
ツールメニューから設定するパラメータを変更します。
ボード | Raspberry Pi Pico W |
IP/Bluetooth Stack | “IPv4 + Bluetooth |

手順:2.ペアリング
この作業はスケッチの書き込み後、RaspberryPi PicoWを再起動させた後で行います。
BT通信をする場合ペアリング作業が必要です。
ノートPC、スマートフォン、タブレットまた、BTレシーバを準備してください。
ペアリングの方法については一般のBT製品と同じですので詳細は省略します。
個々のマニュアルを参照してください。
今回当方の確認方法としてAndroidスマートフォンでのペアリングを掲載します。
1.スケッチを書き込み、マイコンボードを起動させます。
2.BT設定画面から周囲のBT機器を検索します。
今回のサンプルでは [PicoW Serial]という名前で見つかります。

作業の方法は同じです。
3.シリアル通信をする場合、シリアル通信用のアプリケーションをインストールします。
参考として当方が利用している「Serial Bluetooth Terminal」を紹介します。

作業の方法は同じです。
配線
不要
スケッチ
/**********************************************************************
【ライセンスについて】
Copyright(c) 2022 by tamanegi
Released under the MIT license
'http://tamanegi.digick.jp/about-licence/
【マイコン基板】
RaspberryPi PicoW
【スケッチの説明】
BluetoothとUARTを使ってスマホとパソコンの通信をします。
パソコンとRaspberryPi PicoWをUSBケーブル経由でUART通信します。
RaspberryPi PicoWとスマートフォンをBluetoothでペアリングしBluetoothUARTで通信します。
UARTから読み取った文字をBluetoothでスマートフォンに送信します。
Bluetoothから読み取った文字をUARTでパソコンに送信します。
【ライブラリ】
Raspberry Pi Pico / RP2040 > Raspberry Pi Pico W
【準備】
パソコンとRaspberryPi PicoWをUSBケーブルで接続します。
スケッチ書き込み後、スマートフォンとRaspberryPi PicoWをBluetoothでペアリングします。
【バージョン情報】
2023/10/1 : 新規
**********************************************************************/
#include <SerialBT.h>
void setup()
{
Serial.begin(115200);
SerialBT.begin();
}
void loop()
{
while(SerialBT)
{
//UARTにデータがあれば読み出して、BluetoothUARTに送信
if(Serial.available())
{
SerialBT.write(Serial.read());
}
//BluetoothUARTにデータがあれば読み出して、UARTに送信
if (SerialBT.available())
{
Serial.write(SerialBT.read());
}
}
}
結果
結果の確認にパソコン側はTeraterm、スマートフォン側はSerial Bluetooth Terminalを使って確認します。
スケッチの書き込み後、スマートフォンとRaspberryPi PicoWをBluetoothペアリングします。
TeratermのCOMには、RaspberryPi PicoWのポート番号を選択して接続します。
Serial Bluetooth Terminalでは、PicoW Serialを選択して接続します。
結果の画面はTeratermから「tamanegi」と入力することで、Serial Bluetooth Terminalにも「tamanegi」と表示されている様子です。
Serial Bluetooth Terminalから「BLOG」と入力することで、Teratermにも「BLOG」と表示されている様子です。

コメント