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 軸加速度センサーが自由落下になり落ちてくるのも検出します。 投げ上げ・自由落下の検出を使用して、下図のように 3 軸加速度センサーの投げ上げ・ 自由落下を模倣したアプリケーションの作成が可能になります。 図 1 傾斜検出を利用したアプリケーションイメージ HOKURIKU 1 ピエゾ抵抗型3軸加速度センサー HAAM-326B 投げ上げ・自由落下出編 2007 年 2 月 第 1 版 1 構成 本アプリケーションノートでは、HAAM-326B と接続する CPU に例として 78K0/KB2 (uPD78F0500)で説明します。 電気特性については HAAM-326B カタログを参考にして下さい。 HAAM-326B CPU GND STANBY +3V Vcc +3V AVss +3V 78K0/KB2 (uPD78F0500) AVref X out P20/ANI0 Y out P21/ANI1 Z out P22/ANI2 図 2 HAAM-326B と CPU の接続 HOKURIKU 2 ピエゾ抵抗型3軸加速度センサー HAAM-326B 投げ上げ・自由落下出編 ■ 2007 年 2 月 第 1 版 入力電圧と変換結果について アナログ入力端子(ANI0- ANI2)に入力されたアナログ入力電圧と論理上の A/D 変 換結果(10 ビット A/D 変換結果レジスタ)には下図に示す関係があります。 本アプリケーションノートで使用する 78K0/KB2 の場合は下図のようになります。 図 3 ■ 入力電圧と変換結果 変換結果で採用する値について 本アプリケーションノートでは、0G の時のデジタル値は0で考えています。 A/D 変換結果にオフセットを加算した図 3 入力電圧と変換結果の Correction0=0G (Digital value)の値を以後の説明では使用します。 ■ サンプリングレートについて 本アプリケーションノートでは、4ms 毎に XYZ のサンプリングを行なっています。 HOKURIKU 3 ピエゾ抵抗型3軸加速度センサー HAAM-326B 投げ上げ・自由落下出編 2007 年 2 月 第 1 版 2 投げ上げ・自由落下を検出するアルゴリズム 投げ上げ・自由落下を判断するには以下のことを、まずは判断する必要があります。 1、センサー停止状態を判断 2、センサー移動開始を判断 3、投げ上げ量の判断 4、投げ上げ・自由落下の判断 ■ センサー停止状態を判断 センサーが停止しているときデジタル値には大きな変化が表れず、 受信した最新のデジタル値(今回値)と前回受信したデジタル値(前回値)には大きな 差がありません。 よって前回値と今回値の差(絶対値)が 0 に近い状態が少しの間続いたときセンサ ーは停止していると判断します。 また、この少しの間続いた 0 に近い値をセンサー停止状態におけるデジタル値の平 均値とします。 • 停止状態判断の条件 停止条件1、前回受信したデジタル値と今回受信したデジタル値の差(絶対値)が 0 に近い値(20 以下推奨)となる。 停止条件2、条件1の状態が少しの間続く(120msec 以上推奨)。 HOKURIKU 4 ピエゾ抵抗型3軸加速度センサー HAAM-326B 投げ上げ・自由落下出編 2007 年 2 月 第 1 版 200 前回値と今回値の差が0に近くない状態 150 100 50 0 -50 -100 -150 前回値と今回値の差が0に近い状態 この状態が続いたとき停止状態と判断します -200 図 4 ■ センサーを右方向に移動させたときの停止状態を判断(Y軸のみ) センサー移動開始を判断 センサーが停止している状態から、移動を開始したか判断します。 センサーが停止しているときデジタル値には大きな変化がありません。つまりセン サーが移動したときにはデジタル値は大きく変化が表れるということです。 • 移動開始判断の条件 移動条件1、センサー停止状態におけるデジタル値の平均値からデジタル値が大きく 変化(30 以上推奨)したとき、移動開始と判断する。 HOKURIKU 5 ピエゾ抵抗型3軸加速度センサー HAAM-326B 投げ上げ・自由落下出編 2007 年 2 月 第 1 版 移動方向を判断 デジタル値が大きく変化してセンサーが移動を開始したと判断したとき、そのデジ タル値が、プラス,またはマイナス方向どちらに大きく変化したかによりセンサーの 移動方向を判断します。 各軸における、正負による移動方向は下記図 5 に示す通りです。 X Y Z 正(プラス) 後(手前) 左 下 負(マイナス) 前(奥) 右 上 図 5 方向判断表 200 停止状態の平均値を保存 150 100 50 0 -50 デジタル値がマイナスに変化 -100 右の移動を開始したと判断 -150 -200 図 6 センサーを右方向に移動させたときの停止状態を判断(Y軸のみ) HOKURIKU 6 ピエゾ抵抗型3軸加速度センサー HAAM-326B 投げ上げ・自由落下出編 ■ 2007 年 2 月 第 1 版 投げ上げ量の判断 投げ上げと判断したとき、どれくらいの力でセンサーを投げ上げたか判断するために必要と なる、移動開始と判断したときの最初の波形の最大値を検知します。 波形の増大判断 受信したデジタル値とセンサー停止状態で求めた平均値との差(前回比較値)を求め ます。 次に受信した新たなデジタル値と平均値との差(今回比較値)を求めます。 移動方向がプラスの場合、 1 * 今回比較値 > 1 * 前回比較値 移動方向がマイナスの場合、 -1 * 今回比較値 > -1 * 前回比較値 以上の条件が真となるとき、波形は増大していると判断します。 今回比較値を前回比較値とし、次に受信した新たなデジタル値と平均値との差を今回 比較値として再度比較を繰り返していきます。 • 波形の増大条件 初回波形増大条件1、移動方向がプラスの場合、 1 * 今回比較値 > 1 * 前回比較値 移動方向がマイナスの場合、 -1 * 今回比較値 > -1 * 前回比較値 HOKURIKU 7 ピエゾ抵抗型3軸加速度センサー HAAM-326B 投げ上げ・自由落下出編 2007 年 2 月 第 1 版 波形の折り返し判断 波形の折り返しを判断するには、 初回波形増大条件1が偽となったときの波形が折り返し始めていると考えられます。 最初に偽となったときの前回比較値を折り返しの基準とするため, この前回比較値は保存したままにしておきます。 以下の条件が波形の折り返しているときの条件となります。 移動方向がプラスの場合、 ① 1 * 今回比較値 < 1 * 基準とした前回比較値 移動方向がマイナスの場合、 ② -1 * 今回比較値 < -1 * 基準とした前回比較値 下記,図 4 のような小さく波形が折り返したものを“完全に折り返した”と判断しな いように①または②の状態がしばらくの間続き、そのときのデジタル値が、基準と した前回比較値より大きく変化していたとき完全に波形が折り返したと判断するこ とができます。 また、完全に折り返したと判断したら、基準とした前回比較値を初回波形最大値と します。 • 波形の折り返し判断条件 初回折り返し条件1、波形が増加していた状態から 初回波形増大条件1が偽となる。 (このときの前回比較値を基準としておく。) 以下の条件が真となる。 移動方向がプラスの場合、 ① 1 * 今回比較値 < 1 * 基準とした前回比較値 移動方向がマイナスの場合、 ② -1 * 今回比較値 < -1 * 基準とした前回比較値 初回折り返し条件2、折り返し条件1の状態がしばらくの間続く(20msec 以上推奨) 初回折り返し条件3、折り返し条件2をクリアしたときの今回比較値(絶対値) が基準とした前回比較値より大きく変化(5 以上推奨)している。 基準とした前回比較値を初回波形最大値とする。 HOKURIKU 8 ピエゾ抵抗型3軸加速度センサー HAAM-326B 投げ上げ・自由落下出編 2007 年 2 月 第 1 版 100 注1 50 0 -50 注2 -100 -150 図 7 折り返しと判断(Y軸のみ) (注1)しばらくの間、初回折り返し条件2の①の状態が続き、基準とした前回比較値と今 回比較値に大きな差が表れたので折り返しと判断します。 (注 2)しばらくの間、初回り折返し条件2の①の状態が続いたとしても、基準とした前回 比較値と今回比較値に大きく差が表れなければ折り返しとは判断しません。 HOKURIKU 9 ピエゾ抵抗型3軸加速度センサー HAAM-326B 投げ上げ・自由落下出編 2007 年 2 月 第 1 版 移動終了判断 移動終了判断はセンサー停止状態と同様の処理を行います。 センサーが停止しているときデジタル値には大きな変化が表れず、 受信した最新のデジタル値(今回値)と前回受信したデジタル値(前回値)には大きな 差がありません。 よって前回値と今回値の差(絶対値)が 0 に近い状態が少しの間続いたときセンサ ーは停止していると判断します。 また、この少しの間続いた 0 に近い値をセンサー停止状態におけるデジタル値の平 均値 とします。 • 停止状態判断の条件 停止条件1、前回受信したデジタル値と今回受信したデジタル値の差(絶対値)が 0 に近い値(20 以下推奨)となる。 停止条件2、条件1の状態が少しの間続く(120msec 以上推奨)。 HOKURIKU 10 ピエゾ抵抗型3軸加速度センサー HAAM-326B 投げ上げ・自由落下出編 ■ 2007 年 2 月 第 1 版 投げ上げ・自由落下判断 • 投げ上げ判断の条件 投げ上げ条件1、センサーは投げ上げたあと無重力状態となることから、移動終了 と判断したときの 3 軸合成値が 0 に近い値となる。(50 以下推奨) 投げ上げ条件2、投げ上げはセンサーを上方向に投げるということを前提としてい ることにより、センサーが上方向へ移動したときと同様のデジタ ル値の変化が表れる。つまり、 センサーが移動を開始したと判断したときの Z 軸デジタル値の波 形がマイナス方向へ変化する。 • 自由落下判断の条件 自由落下条件1、自由落下状態であれば 3 軸にかかる重力は 0G に近い値となり無重 力状態となることから、移動終了と判断したときの 3 軸合成値が 0 に近い値となる。(50 以下推奨) 自由落下条件2、自由落下はセンサーを水平に持ち、そのまま手を離すことを前提 としていることにより、センサーが下方向へ移動したときと同様 のデジタル値の変化が表れる。 つまり、センサーが移動を開始したと判断したときの Z 軸デジタ ル値の波形がプラス方向へ変化する。 (注)3 軸合成値→x,y,z 軸を合成したものです。センサーに激しい動作が加えられてい ないとき 3 軸の合計は 1G になります。 3 軸合成値の求め方 x = X デジタル値 * X デジタル値 y = Y デジタル値 * Y デジタル値 z = Z デジタル値 * Z デジタル値 3 軸合成値 = √( x + y + z ) HOKURIKU 11 ピエゾ抵抗型3軸加速度センサー HAAM-326B 投げ上げ・自由落下出編 2007 年 2 月 第 1 版 センサーを真上に投げ上げたとき 400 この時点で移動終了と判断したと 300 き、3軸合成値が 0 に近い値 200 100 0 -100 -200 -300 Z 軸がマイナス方向に変化、センサーが上方向に移動したと判断 -400 図 8 • 投げ上げを判断(Z軸) 仮にセンサーを真上以外に投げ上げたとき 500 400 300 3 軸合成値が 50 以下 X キャッチしたとき Y 200 100 0 -100 -200 -300 -400 Z 軸がマイナス方向に変化、センサーが上方向に移動したと判断 図 9 センサーを手前方向に投げ上げたとき HOKURIKU 12 ピエゾ抵抗型3軸加速度センサー HAAM-326B 投げ上げ・自由落下出編 • 2007 年 2 月 第 1 版 センサーを自由落下させたとき 300 3 軸合成値が 0 に近い値 200 100 0 -100 -200 Z 軸がプラス方向に変化、センサーが下方向に移動したと判断 -300 図 10 自由落下を判断(Z軸) HOKURIKU 13