XIAO nRF52840 SenseでIMUのデータをストリーミング

Arduino

Seeed Studio Xiao nRF52840 SenseはXIAO Familyの1つでIMUとマイクが内蔵されている高機能ボードになっています.今回はこの内蔵されているIMUのデータを読み取って,BLEでストリーミングしてみました.

実演

コード

今回開発したコードはGitHubで公開しています.

Arduino

GitHub - botamochi6277/XIAO-BLE-IMU-STREAMING: Seeeduino XIAO BLE Sense Streaming IMU Data with Bluetooth Low Energy
Seeeduino XIAO BLE Sense Streaming IMU Data with Bluetooth Low Energy - GitHub - botamochi6277/XIAO-BLE-IMU-STREAMING: Seeeduino XIAO BLE Sense Streaming IMU Da...

ReactJS (Web UI)

GitHub - botamochi6277/reactjs-ble-console: ReactJS application reading predefined BLE service values.
ReactJS application reading predefined BLE service values. - GitHub - botamochi6277/reactjs-ble-console: ReactJS application reading predefined BLE service valu...

解説

すこし,どう動いているかという技術的な話をしていきます.BLEではCentralとPeripheralという2つの役割を持ったデバイスが登場します.CentralがiPhoneを代表としたBLEデバイスに接続する役割で,Peripheralがイヤホンのように接続される側になっています.今回のXIAOはPeripheralです.

Peripheralは最低1つのServiceという箱を持っています.さらにCharactaristicというデータをやり取りするための箱をServiceは1つあるいは複数持っています.今回のXIAOはArduinoIMUというServiceを持っていて,このServiceがaccXやgyroXなどのCharacteristicを持っています.次のような形です.

{
  "service":
  {
    "name": "ArduinoIMU",
    "uuid":"ABF0E000-B597-4BE0-B869-6054B7ED0CE3",
    "characteristics":[{"name":"accX","property":["read","notify"],"uuid":"ABF0E002-B597-4BE0-B869-6054B7ED0CE3"}]
  }
}

今回はWeb Bluetooth APIを使ってXIAOと通信して,Webページ上に値を表示しています.

コメント

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