Arduino環境でRaspberryPi PicoWの無線を使う

it

Raspberry Pi Pico Wを入手しました。
Arduino環境でLチカとBluetooth UART通信をします。

RaspberryPi PicoW

主なスペック

RaspberryPi Picoの上位互換基板で、無線モジュールを搭載したモデルです。

接続Micro B
(USB1.1 ホスト/デバイス)
CPURP2040
(50 – 300MHz)
メモリRAM 264KByte
フラッシュ 2MByte
ロジックレベル3.3V
GPIOI/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用のライブラリのインストールとボードの選択をします。

追加のボードマネージャのURLhttps://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
※動作確認はバージョン 3.1.0です

BluetoothはライブラリVer3.0.0 以降で使用できます。
ArduinoIDE上の設定を以下のパラメータに変更します。
当記事の「Bluetooth通信」の「準備」でも説明します。

選択するボードRaspberry Pi Pico W
IP/Bluetooth StackIPv4 + 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]という名前で見つかります。

画像はNODE MCU ESP-32Sのものを流用しています。
作業の方法は同じです。

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

画像はNODE MCU ESP-32Sのものを流用しています。
作業の方法は同じです。

配線

不要

スケッチ

/**********************************************************************
【ライセンスについて】
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」と表示されている様子です。

コメント

タイトルとURLをコピーしました