This program measures the number of steps using my own algorithm.
Androidアプリを作成する際に加速センサーを用いて開発できるようなる。 加速度センサーを用いて歩数計を作成する。
スマートフォンには3軸の加速度センサーが存在する。
これらの加速度センサーから得られる加速度の増減を利用して歩数をカウントする。 しかし、スマホがどのような状態で保持されているか分からないため、1軸の加速度だけでは正確に計測できない可能性がある。 そこで3軸の加速度を合成した以下の値の増減を利用して歩数を計測することにする。
歩行時、3軸の加速度を合成した値を取り、3軸の加速度を合成した値の極大値を取った回数を歩数としてカウントする。
また、センサーから取得した生のデータには歩数計算に邪魔なノイズが含まれるため、余分なノイズを取り除き、 なるべく正しい歩数をカウントできるようにローパスフィルタと呼ばれるフィルタリング処理を行う。 ローパスフィルタとは高周波成分を取り除いて、低周波成分のみを取り出す処理である。
- MainActivity.java を参照
- activity_main.xml を参照
アプリを起動するとこの画面が表示される。
Startボタンを押すとこの画面が表示される。 他にもRestartボタンは押されると歩数を0歩に初期化することができる。 Stopボタンを押すと計測をいったんストップすることができる。
実際に歩いて計測した。14歩歩いたが、計測上では16歩となってしまった。 2歩分の誤差が生まれてしまった。