AndroidのアプリPhysics Toolbox Suiteで測定した加速度データを使って、片足立ちのブレと言うかふらつき度合いを評価しようと思った。
Pythonインタプリタ用に作っても良いのですが、どうせ作るならWindows, Linux, Androidで使えるように出来ると言うPyodideと言うのを使ってみた。
ブラウザで動くらしい。HTML, CSS, Pythonを組み合わせて作るようだが、初心者の上にHTML, CSSはあまりなじみが無いのでPyodideを紹介してくれたGeminiに作ってもらうことにして、以下の様に依頼しました。
AndroidのPhysics Toolboxで片足立ち時の加速度データ(重力加速度を含むCSV)を採取しました。データの先頭部分は以下の様になっています。実際には数千行のデータです。
# Target Sample Rate: 200 Hz
time,gFx,gFy,gFz,TgF
0.001973,-0.0029,0.8218,0.6098,1.02
0.043018,-0.0088,0.8248,0.5658,1.00
0.065412,-0.0078,0.8228,0.5375,0.98
0.089115,-0.0274,0.8443,0.5355,1.00
0.112668,0.0020,0.8209,0.4573,0.94
このCSVファイルを使って以下のようなPyodideアプリケーションを作って下さい。
1.ファイル読み込み
ドラッグ&ドロップまたはファイル選択によって読み込みます。どちらの方法を使うかはユーザーが任意に選択出来るようにして下さい。データの先頭と末尾は各々指定秒数(デフォルトは5秒)だけ削除します。
2.鉛直方向及び水平方向のデータ変換
以下の様に変換してください。
(1)鉛直方向がz方向になるように換算してU(x1,y1,z)を得ます。
(2)x1,y1の一次近似直線を得て、これがx1軸と同じになるように回転し、分布の中心が原点になるように平行移動を行って、x2,y2を得ます。
(3)x2,y2の最大振幅を計算しxw,ywとします。
3.散布図の表示
汎用性のあるグラフ表示エリアを作って、ここにx2,y2の散布図(ドットのみ)を表示します。
4.最大振幅表示
汎用性のあるテキストボックスを作って、xw,ywの値を表示します。
HTML,CSS,Phthonを含む1ファイル(.html)にまとめて下さい。
ファイル読み込み、グラフ描画、テキストボックスの各領域は、Python部を書き換えることで他の用途に使えるように汎用性のあるものにして下さい。
同じファイル(.html)がPC(Windows,Linux)とAndroidで使えるようにして下さい。
最初に出来たファイルを実行したところエラーが発生しましたが、エラーの内容を知らせてたところ、修正版を作ってもらってWindows, Linux, Androidで正常動作を確認出来ました。(ブラウザはいずれもBraveでした。)
タイトル画像はファイル選択の部分です。初回起動時はPyodideおよび必要ライブラリ(NumPy, Pandas, Matplotlib)のWebからの読み込みと初期化に数秒かかり、「準備完了」と表示されています。
Physics Toolbox Suiteに出力させたCSVファイルを指定するとすぐに、計算して「準備完了」のステータスバーの下に散布図と結果を表示します。
計算結果のテキストボックスだけ拡大すると、下図の様になっています。
グラフ(散布図)を表示するエリアとテキストボックスは汎用性があるように作ってもらったので、これを元にPython部だけ変更していろいろ作って見たいと思います。
PythonとJavaScriptとのデータのやり取りを勉強すれば、私でもそれなりに使えそうです。
Googleサイトに埋め込めば、無料でWebアプリのようにも出来そうです。
今後とも宜しくお願いします。