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ページ上に値を表示しています.
コメント