歩数計を作ろう(要件設定編)
はじめに
皆さんは最近歩いているでしょうか?私は散歩が趣味でそれなりに歩きます。そこで、歩数計を使って健康管理ができたら面白いと思いました。しかし、私は歩数計を使うときに毎回手で振り回して不正をしてしまうので、ずるができない歩数計を作りたいと思いました。
今回の記事では、要件設定として使用するマイコンやセンサの選定、要件の検討を行おうと思います。途中、要件が変更された際はこの記事も随時変更する予定なので、最終決定ではなくあくまで目標という立ち位置です。
M5Stack BasicとIMU(BNO055)を使おうと思います。タイトルを要件設定編としているように複数回での完成を目指します。
要件(目標)
目標は以下の通りとしました。ちなみに、優先度が高い順に書いています。
歩行時のセンサデータを保存する(データの分析のため)
歩いたときにのみ歩数をカウントする
歩く速度も計測して消費カロリーの計算をする
消費カロリーをスマホやPCに送れる(できれば)
できれば、機械学習を絡めたものにしたいと思っています。
ちなみに、不正防止策として、次の案を考えています。
閾値的に歩行と手の振り回しを区別する(一番楽)
機械学習を使って、歩行と振り回しを分類して歩行のみカウントする。
ただ、実際にデータを計測してみないと何とも言えないのが現状です。
使用機材
マイコン
マイコンにはM5Stack Basicを使用します。
理由は以下の通りです。
ディスプレイやボタン、メモリカードなどインターフェースが豊富
内臓バッテリ駆動が可能
ただし、欠点としてマイコンとしては大きく、取り回しが悪いことが懸念されます。また、Arduinoなどと比較して少し高価です。
センサ
センサにはBNO055を使用します。
こちらも少し高価なセンサとなっています。私はスイッチサイエンスで購入しました。BNO055の特徴は以下の通りです。
重力ベクトルが計測可能(加速度と重力加速度を分離しやすい)
クォータニオンやオイラー角を検出可能(多分使わない)
(MPU6050と比較して)零点誤差が小さい
Arduinoライブラリが用意されている
I2C通信でマイコンと接続可能
最初は安価なMPU6050の使用を検討していました。
想定する手順・今後の予定
想定する手順を図に示します。
次回の更新では、IMUセンサデータの計測プログラムを作成する予定です。