3軸加速度センサーアプリケーションノート ピエゾ抵抗型3軸加速度センサー 北陸電気工業株式会社 HAAM-326B 歩数計編 2007 年 2 月 第 1 版 はじめに 本アプリケーションノートでは、ピエゾ抵抗型3軸加速度センサ(HAAM-326B)を使 用して歩数を計測する方法をユーザーに理解していただく事を目的としています。 本アプリケーションノートでは、ピエゾ抵抗型3軸加速度センサ(HAAM-326B)から アナログで出力される加速度をデジタル値に変換した値を使用して説明しています。 参考資料: HAAM-326B カタログ http://www.hdk.co.jp/pdf/jpn/j137507.pdf 3軸加速度センサーアプリケーションノート(センサー個体差の補正編) 歩数計では、3 軸加速度センサーを内蔵してその人が歩いた歩数を計測します。 尚、3 軸加速度センサーを採用することにより、センサー角度は 360 度任意で取り付け 場所も任意とすることが可能です。 1 構成 本アプリケーションノートでは、HAAM-326B と接続する CPU に例として 78K0/KB2 (uPD78F0500)で説明します。 電気特性については HAAM-326B カタログを参考にして下さい。 HAAM-326B CPU GND STANBY Vcc AVss +3V +3V +3V 78K0/KB2 (uPD78F0500) AVref X out P20/ANI0 Y out P21/ANI1 Z out P22/ANI2 図 1 HAAM-326B と CPU の接続 HOKURIKU 1 ピエゾ抵抗型3軸加速度センサー HAAM-326B 歩数計編 2007 年 2 月 第 1 版 ■ 入力電圧と変換結果について アナログ入力端子(ANI0- ANI2)に入力されたアナログ入力電圧と論理上の A/D 変 換結果(10 ビット A/D 変換結果レジスタ)には下図に示す関係があります。 本アプリケーションノートで使用する 78K0/KB2 の場合は下図のようになります。 図 2 入力電圧と変換結果 ■ 変換結果で採用する値について 本アプリケーションノートでは、0G の時のデジタル値は0で考えています。 A/D 変換結果にオフセットを加算した図 2 入力電圧と変換結果の Correction0=0G (Digital value)の値を以後の説明では使用します。 ■ サンプリングレートについて 本アプリケーションノートでは、4ms 毎に XYZ のサンプリングを行なっています。 HOKURIKU 2 ピエゾ抵抗型3軸加速度センサー HAAM-326B 歩数計編 2007 年 2 月 第 1 版 2 歩数を認識するアルゴリズム ■ センサーの取り付け角度に依存しない方法について X,Y,Z軸をそれぞれ参照してしまうと、センサーの傾きに依存してしまうため、 歩数検出では、3軸を合成した 3 軸合成値のみを採用します。 ■ 歩行時の 3 軸合成値とXYZ軸の値 センサーを前後左右斜め何れかに動かした場合は、初動のときに 3 軸合成値が 1G から外 れる値になります。 3 軸合成値が 1G から外れる間を、歩数として識別処理を行ないます。 300 3 軸合成値 200 100 0 -100 -200 Z軸 X軸 Y軸 -300 図 3 センサーを移動させたときのデータグラフ HOKURIKU 3 ピエゾ抵抗型3軸加速度センサー HAAM-326B 歩数計編 2007 年 2 月 第 1 版 ■ 歩行以外の 3 軸合成値とXYZ軸の値 センサーを回転させたときなどは、3 軸合成値が 1G から外れないため、3 軸合成値が安定 している期間は歩数として認識しません。 200 3 軸合成値 150 100 X軸 50 0 -50 Y軸 -100 -150 Z軸 -200 図 4 センサーを X 軸方向に一回転傾斜させたときのデータグラフ HOKURIKU 4 ピエゾ抵抗型3軸加速度センサー HAAM-326B 歩数計編 2007 年 2 月 第 1 版 ■ さまざまな歩数の認識アルゴリズム 下図に示すように歩き方には様々なものがありますが、基本的に3軸合成値が1G より低くなりその後1Gより高くなります。 そのサイクルをカウントしていけば、ゆっくり歩くのも、走るのも検出は可能とな ります。 ■歩数の計測方法 1.1Gより低くなるのを検出 2.1Gより高くなるのを検出 および 前回と検出した差が一定以上あること 3.一定時間内に2.が成立したら歩数としてカウント 4.一定時間内に成立、もしくは一定時間を過ぎたら1.に戻って繰り返し 1Gより低くなった事を認識する重力閾値 0.9G 1Gより高くなった事を認識する重力閾値 1.1G 前回と検出した差の重力閾値 0.2G 一定時間 1秒 表 1 各種閾値表 歩数計デモ機動作チェック 条件 歩行時 フィルタ:0.150μF 胸ポケット内 波形測定サンプリング周波数:50Hz しきい値 上限:1.2G 下限:0.8G ウェイト時間:100mS A/Dサンプリング周波数:100Hz 3 G値 2 G 検出信号 1 0 -1 0 2 4 6 8 10 12 14 16 18 時間 図 5 歩く(胸ポケットにセンサー) HOKURIKU 5 ピエゾ抵抗型3軸加速度センサー HAAM-326B 歩数計編 2007 年 2 月 第 1 版 歩数計デモ機動作チェック 条件 ジョギング時 フィルタ:0.150μF 胸ポケット内 波形測定サンプリング周波数:50Hz しきい値 上限:1.2G 下限:0.8G ウェイト時間:100mS A/Dサンプリング周波数:100Hz 4 3 G値 2 G 検出信号 1 0 -1 -2 0 図 6 2 4 6 8 10 時間 12 14 16 18 ジョギング(胸ポケットにセンサー) 歩数計デモ機動作チェック 条件 階段を上る時 フィルタ:0.150μF 胸ポケット内 波形測定サンプリング周波数:50Hz しきい値 上限:1.2G 下限:0.8G ウェイト時間:100mS A/Dサンプリング周波数:100Hz 2 1 G値 G 検出信号 0 -1 0 図 7 2 4 6 8 10 時間 12 14 16 18 階段を上る(胸ポケットにセンサー) HOKURIKU 6