
micro:bitで身体動揺を測定する
こんにちはロック204チャンネルです。
このチャンネルではIT初心者のための動画を配信しています。
今回は「micro:bitで身体動揺を測定する」 といったタイトルでお送りします。
この記事の内容は
マイクロビットの加速度センサを使用した 身体の動揺を測定するプログラムについて
データのロギング機能と 統計値の算出機能の追加方法
また実際このプログラムで各種の条件で測定をおこないデータを比較しましたので紹介します。
それでは今回作成した身体動揺測定プログラムの概要について解説します。
使用した機能はマイクロビットに内蔵された加速度センサーより得られた情報を、 加速度ブロックで参照し絶対値を記録しました。
加速度はx軸・y軸・z軸 のデータも取れるのですが、体にマイクロビットを設置した時に、正確に マイクロビットの位置を決定することができないので絶対値を観測しました。
また マイクロビットを体に取り付けた場合 ケーブルで 動きが制約されるのを防ぐために二台のマイクロビットを無線で接続し
送信側を被験者の腰部ベルトに取り付け 受信側をパソコンで 接続し使用しました。

被検者に取り付けるマイクロビットの コードです。
「最初だけ」ブロックでは 無線グループを1として設定し、加速度センサーの計測範囲を 1Gに設定します。
そして変数modeに0を設定します。これはまだ測定が行われていない状態を識別するものです。
「Aボタンが」押されると ハートマークを表示した後、3秒後に音を鳴らします。
そして無線で文字列 「Start」を送ります。
そしてこの時の 「稼働時間」をst_timeに保存します。
今回はこの稼働時間より10秒 経過した時に測定を 終了するようにプログラムを書いています。

「ボタンBが押されたとき」これは測定を途中で中止するときに押します。
このボタンを押すと関数「end_sub」を実行します。
この関数ではmodeをゼロに切り替え、 測定モードでない ことを識別させます。
そしてバツ印を表示し、音を鳴らします。
次に 無線で文字列「End」を送信します。その後四角のアイコンを 表示します。

送信側では 測定を行ないますが このコードは 測定状態を監視するブロックになります。
「ずっと」ブロックの中に 「もしmodeが1なら」のを置き、この条件を満たすと 次の「もし」ブロックで測定終了時間かどうか判断します。
ここでは現在の稼働時間からst_timeを引いて その値が10秒未満であれば測定を行ないます。
ここでは無線で現在の加速度の絶対値を送信しています。
先ほどの条件が満たされない場合、つまり測定が終了したときend_sub関数を実行します。

受信用のプログラムでは 拡張機能としてData LoggerとBasicStatを使用します。
データロガー これは公式の メークコードで 拡張機能として公開されていますので そちらから取り込んでください。
ベーシックスタットのほうは 次のページ で説明します。
ここから先は
この記事が気に入ったらチップで応援してみませんか?