Androidのメモとか

ポキオの日記です。今日も遅延してない。

micro:bitの磁気センサーの値をWeb Bluetooth APIで読み取ってみる

micro:bitはBLEのインターフェイスが充実!

micro:bit web bluetooth api

今度は磁気センサー

前回は、加速度センサーの値をWeb Bluetooth APIを使ってブラウザから読み込んでみました。

relativelayout.hatenablog.com

そして、今回は磁気センサーの値を読んでみました。

micro:bit側のプログラミングは前回と同じ。

とりあえず、Bluetooth系のサービスをすべて初期化するコードです。

micro:bit web bluetooth api

前回と変える必要がないので、このままの実装で進めます。

bluetooth.startAccelerometerService()
bluetooth.startButtonService()
bluetooth.startIOPinService()
bluetooth.startLEDService()
bluetooth.startTemperatureService()
bluetooth.startMagnetometerService()

JavaScriptはこんな感じ。

HTML側のプログラミング

例によって、このプロファイル仕様書を参考にしています。

Bluetooth Developer Studio - Profile Report

磁気センサー系のサービスには、

  • x,y,zそれぞれの生値を返すサービス
  • 更新間隔の調整するサービス
  • 0-360の方角を返すサービス

この3つがありますが、今回は下の2つを使いました。

github.com

pokiiio.github.io

今回もこんな感じでGitHubにコードをアップして、Pagesで公開して見ました。

  • 更新頻度を160msecごとに変更
  • 方角の更新通知の受信を開始
  • 方角を受信したら、その角度を表示する(そのときに文字を角度分傾ける)

こんなことを実装しました。実際の動作はこんな感じ。

#microbit の磁気センサーを #webbluetooth で拾ってみた!

A post shared by pokio (@pokiiiiio) on

たーのしー。

とりあえず実装してみたけど、これを何に使おうか。

「Androidのメモとか」は、Amazon.co.jpを宣伝しリンクすることによってサイトが紹介料を獲得できる手段を提供することを目的に設定されたアフィリエイト宣伝プログラムである、Amazonアソシエイト・プログラムの参加者です。

このブログは個人的なメモ書きであったり、考えを書く場所であります。執筆者の所属する団体や企業のコメントや意向とは無関係であります。また、このブログは必ずしも正しいことが書かれているとは限らず、誤字脱字や意図せず誤った情報を載せる場合がありえます。それが原因で読者が不利益を被ったとしても、執筆者はいかなる責任も負いません。ありがとうございます。