🗂

Seeed Studio XIAO nRF52840でBLEからLEDを点灯する

2022/10/10に公開

概要

前回XIAOをBLEキーボードとして接続してみた。今回はLightBlueを操作してXIAO上のLEDを点灯させてみる。
https://zenn.dev/articles/60f93496a7ee1a/

機材

公式チュートリアル通りに進めてみる

https://wiki.seeedstudio.com/XIAO-BLE-Sense-Bluetooth-Usage/

エラーが発生

チュートリアル通りに進めていたがエラーが発生した。

/Users/miyano-yuji/Documents/Arduino/libraries/ArduinoBLE/src/utility/HCIUartTransport.cpp:33:2: error: #error "Unsupported board selected!"
   33 | #error "Unsupported board selected!"
      |  ^~~~~
/Users/miyano-yuji/Documents/Arduino/libraries/ArduinoBLE/src/utility/HCIUartTransport.cpp:99:40: error: 'SerialHCI' was not declared in this scope; did you mean 'Serial'?
   99 | HCIUartTransportClass HCIUartTransport(SerialHCI, 912600);
      |                                        ^~~~~~~~~
      |                                        Serial
次のフォルダのライブラリArduinoBLEバージョン1.3.2を使用中:/Users/miyano-yuji/Documents/Arduino/libraries/ArduinoBLE 
exit status 1
ボードSeeed XIAO nRF52840 Senseに対するコンパイル時にエラーが発生しました。

別のボードマネージャをインストール

調べてみると以下のサイトで同様のエラーに遭遇している人がいた。
https://forum.seeedstudio.com/t/seeed-nrf52-non-sense-bluetooth-broken/265838/2

以下のチュートリアルでボードマネージャーから「seeed nrf52」をインストールする際に、上のものだけをダウンロードしていたが、両方ダウンロードする必要があるらしい。「You can install both.」って書いてあるとどっちかでいいのかなと思ってしまっていた。

https://wiki.seeedstudio.com/XIAO_BLE/#software-setup

ボードライブラリで「mbed enabled」と入れると2つ目だけが表示されるので、こちらをインストール。

別のボードでもエラーが発生

2つ目のボードを選択してコンパイルしてみたが、別のエラーが出た。

fork/exec /Users/miyano-yuji/Library/Arduino15/packages/Seeeduino/tools/arm-none-eabi-gcc/7-2017q4/bin/arm-none-eabi-g++: no such file or directory
ボードSeeed XIAO BLE Sense - nRF52840に対するコンパイル時にエラーが発生しました。

ボードを再インストール

検索してみるとボードライブラリのフォルダを全部消して再インストールするって書いてあったので、ボードマネージャー上で先ほど入れた2つを両方削除してみて、「Seeed nRF52 mbed-enabled Boards」だけを再度インストールしてみたらコンパイルできた。
https://stackoverflow.com/a/60496056

ビルドしてLED点灯のテストをしてみる

シリアルモニタを起動する。

LightBlueを起動したら「LED」というデバイスが表示されるので選択して、0を書き込むとLED消灯、1を書き込むと点灯した。



ArduinoBLEのサンプルを試す(途中)

ArduinoBLE -> Peripheral -> Advertising -> RawDataAdvertisingをビルドしてみた。

LightBlueで表示された。

ソースに書かれている値が表示されている。


ソースの数値の先頭の数値の意味を後で調べてみる

Discussion