(58)【調査した分野】(Int.Cl.,DB名)
前記運動検出手段は、前記重力軸の動き成分が、前記第1の閾値、及び前記第2の閾値を、前記判定時間内に交互に少なくとも各1回超えた場合に、前記加速度検出手段が重力方向及び重力方向と反対方向に運動したことを検出する請求項1記載の電子機器。
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、上記特許文献1の技術では、外乱の有無が判定できるものの、外乱による運動がどの方向に生じているかを判定することはできないため、モーション入力のように、電子機器を所定の方向に運動させることにより、所定の入力操作を行う場合には、1種類の入力にしか相当せず、複雑な操作に対応することができない、という問題がある。
【0007】
また、特許文献2の技術では、合計ベクトルを用いて加えられた加速度の方向及び大きさを算出しているが、この合計ベクトルの方向と各軸方向とをどのように対応させているのか具体的に記載されておらず、正確に軸方向を判定できない場合がある、という問題がある。
【0008】
本発明は、上述した問題を解決するために成されたものであり、いずれの軸方向に運動したかを簡易な処理で正確に検出することができる運動検出装置、電子機器、運動検出方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【0009】
上記目的を達成するために、第1の発明の運動検出装置は、作用する加速度の三次元直交座標系の各軸の加速度成分の各々を検出して、加速度成分データの各々を出力する加速度検出手段と、前記加速度検出手段から出力された加速度成分データの各々を、ローパスフィルタ処理して得られた静止成分と、前記加速度成分データの各々から前記静止成分の各々を除いた動き成分とに分離する分離手段と、前記分離手段で分離された最大の値を示す動き成分に基づいて、前記加速度検出手段が前記各軸のいずれの軸方向に運動したかを検出する運動検出手段と、を含んで構成されて
おり、前記運動検出手段は、前記加速度検出手段をいずれかの軸方向に沿って往復で運動させた場合の前記最大の値を示す動き成分が、予め定めた正方向の第1の閾値及び負方向の第2の閾値の一方の閾値を超えてから他方の閾値を超えるまでの時間が、予め定めた無効時間未満の場合には、前記加速度検出手段の運動を検出しないようにすることができる。
【0010】
第1の発明の運動検出装置によれば、加速度検出手段が、作用する加速度の三次元直交座標系の各軸の加速度成分の各々を検出して、加速度成分データの各々を出力し、分離手段が、加速度検出手段から出力された加速度成分データの各々を、ローパスフィルタ処理して得られた静止成分と、加速度成分データの各々から静止成分の各々を除いた動き成分とに分離する。そして、運動検出手段が、分離手段で分離された最大の値を示す動き成分に基づいて、加速度検出手段が各軸のいずれの軸方向に運動したかを検出する。
【0011】
このように、加速度成分データをローパスフィルタ処理して得られた静止成分を除いた動き成分の各々のうち、最大の値を示す動き成分に基づいて加速度検出手段がいずれの軸方向に運動したかを検出するため、簡易な処理で正確に運動した軸方向を検出することができる。
【0012】
また、第1の発明において、前記運動検出手段は、前記加速度検出手段をいずれかの軸方向に沿って往復で運動させた場合の前記最大の値を示す動き成分が、先に
前記第1の閾値を超えた場合には、
前記第2の閾値を超えてから次に前記第2の閾値を超えるまでの時間、先に前記第2の閾値を超えた場合には、前記第1の閾値を超えてから次に前記第1の閾値を超えるまでの時間が、予め定めた所定時間の範囲の場合に、前記加速度検出手段が前記最大の値を示す動き成分に対応する軸方向に運動したことを検出するようにすることができる。これにより、所定時間の範囲で閾値を超えるような所定の運動のみが検出され、誤検出を防止することができる。
【0013】
また、第2の発明の
電子機器は、作用する加速度の三次元直交座標系の各軸の加速度成分の各々を検出して、加速度成分データの各々を出力する加速度検出手段と、前記加速度検出手段から出力された加速度成分データの各々を、ローパスフィルタ処理して得られた静止成分と、前記加速度成分データの各々から前記静止成分の各々を除いた動き成分とに分離する分離手段と、いずれかの軸を重力方向に向けて前記加速度検出手段を重力方向に運動させた場合の前記静止成分に基づいて
、重力方向に対応する
軸及び該軸の方向を、重力軸
及び方向として判定する重力軸判定手段と、前記重力軸判定手段で判定された重力軸の動き成分に基づいて、前記加速度検出手段の重力軸方向への運動を検出する運動検出手段と、を含
み、前記運動検出手段は、前記重力軸の動き成分が、予め定めた正方向の第1の閾値及び負方向の第2の閾値の一方の閾値を超えてから他方の閾値を超えるまでの時間が、予め定めた判定時間を超えた場合には、前記加速度検出手段の運動を検出しない
運動検出装置と、前記運動検出手段により重力軸方向への運動が検出された場合に、各軸及び各軸の方向に対応して予め定められた操作に基づいて、前記重力軸判定手段により重力軸と判定された軸及び該軸の方向に対応する操作が行われるように制御する制御部とを含んで構成することができる。
【0014】
第2の発明の
電子機器によれば、加速度検出手段が、作用する加速度の三次元直交座標系の各軸の加速度成分の各々を検出して、加速度成分データの各々を出力し、分離手段が、加速度検出手段から出力された加速度成分データの各々を、ローパスフィルタ処理して得られた静止成分と、加速度成分データの各々から静止成分の各々を除いた動き成分とに分離する。重力軸の静止成分と重力軸以外の静止成分とでは異なる値を示すため、重力軸判定手段が、いずれかの軸を重力方向に向けて加速度検出手段を重力方向に運動させた場合の静止成分に基づいて
、重力方向に対応する
軸及び該軸の方向を、重力軸
及び方向として判定する。
【0015】
このように、いずれかの軸を重力方向に向けて加速度検出手段を重力方向に運動させた場合に、加速度成分データをローパスフィルタ処理して得られた静止成分に基づいて、重力軸を検出するため、簡易な処理で正確に重力方向、すなわち運動した軸方向を検出することができる。
【0016】
また、第2の発明において、前記
運動検出手段は、前記重力軸の動き成分が、
前記第1の閾値、及び
前記第2の閾値を、
前記判定時間内に交互に少なくとも各1回超えた場合に、前記加速度検出手段が重力方向及び重力方向と反対方向に運動したことを検出するようにすることができる。これにより、閾値を超えるような所定の運動のみが検出され、誤検出を防止することができる。
【0017】
第
2の発明の電子機器は
、例えば、携帯電話やゲーム機器のコントローラなどに適用することができる。
第2の発明の電子機器の制御部は、前記運動検出手段により重力軸方向への運動が検出された場合に、各軸及び各軸の方向に対応して予め定められた操作に基づいて、前記重力軸判定手段により重力軸と判定された軸及び該軸の方向に対応する操作が行われるように制御する。
【0018】
第
3の発明の運動検出方法は、加速度検出手段により、前記加速度検出手段に作用する加速度の三次元直交座標系の各軸の加速度成分の各々を検出して、加速度成分データの各々を出力し、前記加速度検出手段から出力された加速度成分データの各々を、ローパスフィルタ処理して得られた静止成分と、前記加速度成分データの各々から前記静止成分の各々を除いた動き成分とに分離し
、いずれかの軸を重力方向に向けて前記加速度検出手段を重力方向に運動させた場合の前記静止成分に基づいて
、重力方向に対応する
軸及び該軸の方向を、重力軸
及び方向として判定し、判定された重力軸の動き成分に基づいて、前記加速度検出手段の重力軸方向への運動を検出する際に、前記重力軸の動き成分が、予め定めた正方向の第1の閾値及び負方向の第2の閾値の一方の閾値を超えてから他方の閾値を超えるまでの時間が、予め定めた判定時間を超えた場合には、前記加速度検出手段の運動を検出
せず、前記加速度検出手段の重力軸方向への運動が検出された場合には、各軸及び各軸の方向に対応して予め定められた操作に基づいて、前記重力軸と判定された軸及び該軸の方向に対応する操作が行われるように制御する方法である。
【0019】
第
4の発明の運動検出プログラムは、コンピュータを、作用する加速度の三次元直交座標系の各軸の加速度成分の各々を検出して、加速度成分データの各々を出力する加速度検出手段から出力された加速度成分データの各々を、ローパスフィルタ処理して得られた静止成分と、前記加速度成分データの各々から前記静止成分の各々を除いた動き成分とに分離する分離手段
、いずれかの軸を重力方向に向けて前記加速度検出手段を重力方向に運動させた場合の前記静止成分に基づいて
、重力方向に対応する
軸及び該軸の方向を、重力軸
及び方向として判定する重力軸判定手段、及び前記重力軸判定手段で判定された重力軸の動き成分に基づいて、前記加速度検出手段の重力軸方向への運動を検出する運動検出手段であって、前記重力軸の動き成分が、予め定めた正方向の第1の閾値及び負方向の第2の閾値の一方の閾値を超えてから他方の閾値を超えるまでの時間が、予め定めた判定時間を超えた場合には、前記加速度検出手段の運動を検出
せず、前記加速度検出手段の重力軸方向への運動が検出された場合には、各軸及び各軸の方向に対応して予め定められた操作に基づいて、前記重力軸と判定された軸及び該軸の方向に対応する操作が行われるように制御する運動検出手段として機能させるためのプログラムである。
【発明の効果】
【0020】
以上説明したように、本発明の運動検出装置、電子機器、運動検出方法及びプログラムによれば、加速度成分データをローパスフィルタ処理して得られた静止成分、または、加速度成分データから静止成分を除いた動き成分を用いて運動した軸方向を検出するため、簡易な処理で運動した軸方向を正確に検出することができる、という効果が得られる。
【図面の簡単な説明】
【0021】
【
図1】本実施の形態の運動検出装置の構成を示すブロック図である。
【
図2】本実施の形態の運動検出装置に用いられる3軸加速度センサを示す外観斜視図である。
【
図3】スナップシェイクの(A)縦持ち時の左右振り、(B)縦持ち時の前後振り、(C)横持ち時の左右振り、及び(D)横持ち時の前後振りを説明するための図である。
【
図4】スナップシェイクの(A)縦持ち時の長手方向への振り、及び(B)横持ち時の長手方向への振りを説明するための図である。
【
図5】第1の実施の形態の運動検出装置における運動検出処理ルーチンの内容を示すフローチャートである。
【
図6】第1の実施の形態の運動検出装置における加速度分離処理ルーチンの内容を示すフローチャートである。
【
図7】3軸加速度センサを水平に置いた状態から重力方向に複数回振ったときの加速度成分データを示す図である。
【
図8】
図7の加速度成分データをローパスフィルタ処理して得られた静止成分を示す図である。
【
図9】
図7の加速度成分データから
図8の静止成分を減算して得られた動き成分を示す図である。
【
図10】第1の実施の形態の運動検出装置におけるスナップシェイク検出処理ルーチンの内容を示すフローチャートである。
【
図11】第1の実施の形態におけるスナップシェイクの方向の判定方法を説明するための図である。
【
図12】第1の実施の形態におけるスナップシェイクの検出を説明するための図である。
【
図13】3軸加速度センサを水平に置いた状態から、(A)重力方向に1回振ったときの加速度成分データ、及び(B)水平方向に1回振ったときの加速度成分データを示す図である。
【
図14】第2の実施の形態の運動検出装置における運動検出処理ルーチンの内容を示すフローチャートである。
【
図15】第2の実施の形態の運動検出装置におけるシェイキング検出処理ルーチンの内容を示すフローチャートである。
【
図16】動き成分、正方向の閾値Thu、及び負方向の閾値Thdを示す図である。
【
図17】第2の実施の形態におけるシェイキングの検出を説明するための図である。
【発明を実施するための形態】
【0022】
以下、本発明の実施の形態について図面を参照しながら詳細に説明する。
【0023】
図1に示すように、第1の実施の形態の運動検出装置10は、直交座標系のX軸、Y軸、及びZ軸の各軸方向の加速度成分を検出して、加速度成分データを出力する3軸加速度センサ12、及び運動検出装置10がどの軸方向に運動したかを検出し、検出された軸方向に応じた検出信号を出力するマイクロコンピュータ14を備えている。
【0024】
3軸加速度センサ12は、
図2に示すような直交座標系のX軸、Y軸、及びZ軸の各軸方向の加速度成分を検出して、加速度成分データを出力する。加速度成分データは、その値の符号(”+”か”−”か)で加速度成分の方向を表し、その値の絶対値で加速度成分の大きさを表す。加速度成分の方向は、
図2のX軸について、右方向が”+”、左方向が”−”となる。また、同図のY軸について、奥に向かう方向が”+”、手前に向かう方向が”−”となる。また、同図のZ軸について、下方向が”+”、上方向が”−”となる。これにより、X軸+方向、X軸−方向、Y軸+方向、Y軸−方向、Z軸+方向、及びZ軸−方向の6方向の加速度成分を検出することができる。
【0025】
また、3軸加速度センサ12は、
図2に示すような向きで静止状態にある場合には、X軸及びY軸については加速度成分データ「0g」、Z軸については加速度成分データ「+1g」を出力する。なお、「g」は、加速度成分データの単位を表す重力加速度である。
【0026】
マイクロコンピュータ14は、運動検出装置10全体の制御を司るCPU20、後述する運動検出プログラム等各種プログラムを記憶した記憶媒体としてのROM22、ワークエリアとしてデータを一時的に格納するRAM24、各種情報が記憶された記憶手段としてのメモリ26、I/O(入出力)ポート28、及びこれらを接続するバスを含んで構成されている。I/Oポート28には、3軸加速度センサ12が接続されている。
【0027】
次に、第1の実施の形態の運動検出装置10の動作について説明する。第1の実施の形態では、運動検出装置10をいずれかの軸方向に沿って振った場合に、運動検出装置10がいずれの軸方向に振られたかを検出する場合について説明する。なお、第1の実施の形態において、このように3軸加速度センサ12のいずれかの軸方向へ運動検出装置10を振ることを「スナップシェイク」という。
【0028】
図3及び
図4を参照して、第1の実施の形態の運動検出装置10が設けられた携帯電話を用いたスナップシェイクについて説明する。
図3(A)は、携帯電話を縦方向に持った(縦持ち)場合の左右方向のスナップシェイクである。同図(B)は、縦持ちの場合の前後方向のスナップシェイクである。同図(C)は、携帯電話を横方向に持った(横持ち)場合の左右方向のスナップシェイクである。同図(D)は、横持ちの場合の前後方向のスナップシェイクである。
図4(A)は、縦持ちの場合の長手方向へのスナップシェイクである。同図(B)横持ちの場合の長手方向へのスナップシェイクである。
【0029】
次に、
図5を参照して、第1の実施の形態の運動検出装置10における運動検出処理ルーチンについて説明する。本ルーチンは、ROM22に記憶された運動検出プログラムをCPU20が実行することにより行われる。
【0030】
ステップ100で、加速度成分データを静止成分と動き成分とに分離する加速度分離処理を実行する。ここで、
図6を参照して、加速度分離処理ルーチンについて説明する。
【0031】
ステップ120で、3軸加速度センサ12から各軸についての加速度成分データを取得する。取得された加速度成分データの一例を
図7に示す。この状態から、どの軸方向に運動検出装置10が振られたかを検出する必要があるが、図中Sで示す箇所(○で囲んだ箇所)では、3軸の加速度成分データの各々が同程度の値を示している点が複数あり、この点においては、どの軸方向に振られたかを検出することが困難となる場合がある。
【0032】
そこで、次に、ステップ122へ移行して、取得した加速度成分データの各々に対して、ローパスフィルタ処理を施す。ローパスフィルタ処理を施したデータを
図8に示す。
図8に示すように、ローパスフィルタ処理後の加速度成分データは、略「0g」を示すX軸及びY軸と、略「+1g」を示すZ軸とが完全に分離できている。このように、取得された加速度成分データにローパスフィルタ処理を施すことにより抽出されたデータを、加速度成分データの「静止成分」という。
【0033】
次に、ステップ124で、X軸、Y軸、及びZ軸のそれぞれについて、上記ステップ120で取得された加速度成分データから、上記ステップ122で抽出された静止成分のデータを減算する。減算後のデータを
図9に示す。このように、取得された加速度成分データからローパスフィルタ処理後のデータを減算することにより抽出されたデータを、加速度成分データの「動き成分」という。この方法により、高度なハイパスフィルタ処理を行わなくても、加速度成分データを簡易な処理で静止成分と動き成分とに分離することができる。
【0034】
次に、
図5のステップ102に戻って、予め定めた大きさ以上の振りであって、所定時間の範囲で行われた振りをスナップシェイクとして検出するスナップシェイク検出処理を実行する。ここで、
図10を参照して、スナップシェイク検出処理ルーチンについて説明する。
【0035】
ステップ140で、3軸の各々について、加速度分離処理(
図6)のステップ124で抽出された動き成分aを時系列に観測開始する。
【0036】
次に、ステップ142で、いずれかの軸の動き成分aが、予め定めた+方向の閾値Thu、または−方向の閾値Thdのいずれかを超えたか否かを判定する。なお、運動検出装置10が搭載される電子機器の搭載位置等によって、スナップシェイクによる動き成分の波形が異なるため、搭載位置等を考慮して、閾値Thu及び閾値Thdはそれぞれ別に設定できるようにしておく。いずれかの動き成分aがいずれかの閾値を超えた場合には、ステップ144へ移行し、いずれも超えない場合には、ステップ156へ移行する。
【0037】
ステップ144では、上記ステップ142でいずれかの閾値を超えたと判定された動き成分aに対応する軸方向に運動検出装置10が振られたと判定する。また、いずれの閾値を先に超えたかにより、その軸方向の+方向の振りか−方向の振りかを判定する。
図11(A)に示すように、動き成分aが閾値Thuを先に超えた場合には+方向の振り、同図(B)に示すように、閾値Thdを先に超えた場合には−方向の振りと判定する。より具体的には、Z軸の動き成分a
Zが、X軸の動き成分a
X及びY軸の動き成分a
Yより先に閾値を超え、その閾値が閾値Thuであった場合には、Z軸+方向が振りの方向となる。
【0038】
次に、ステップ146で、上記ステップ142で動き成分aが閾値Thuまたは閾値Thdのいずれかを超えてから所定時間Δt1以降に、前回超えたのとは逆の閾値Thuまたは閾値Thdを超えたか否かを判定する。すなわち、上記ステップ142で動き成分aが閾値Thuを超えた場合には、Δt1以降にThdを超えたか否かを判定する。また、上記ステップ142で動き成分aが閾値Thdを超えた場合には、Δt1以降に閾値Thuを超えたか否かを判定する。なお、Δt1は、スナップシェイク無効時間であり、誤判定防止のため、いずれかの閾値を超えてから他方の閾値を超えるまでの時間がΔt1未満の場合には、スナップシェイプを検出しないようにするための所定時間である。Δt1以降に動き成分aが逆の閾値Thuまたは閾値Thdを超えた場合には、ステップ148へ移行し、Δt1を経過する前に動き成分aが逆の閾値Thuまたは閾値Thdを超えた場合には、ステップ156へ移行する。なお、Δt1経過後、所定時間経過しても動き成分aが逆の閾値Thuまたは閾値Thdを超えない場合も、ステップ156へ移行する。
【0039】
ステップ148では、変数nに0をセットすると共に、スナップシェイク設定回数sを読み込む。変数nは、スナップシェイクの検出回数をカウントするための変数であり、スナップシェイクが1回検出される毎に1インクリメントされる。また、スナップシェイク設定回数sは、s回の連続スナップシェイクが検出された場合に、1つの検出信号が出力されるようにするための設定値で、任意に設定可能である。ここでは、s=2の場合について説明する。
【0040】
次に、ステップ150で、上記ステップ146で動き成分aが前回と逆の閾値Thuまたは閾値Thdを超えたと判定されてから次に同じ閾値Thuまたは閾値Thdを超えるまでの時間が、所定時間Δt2の範囲内であるか否かを判定する。すなわち、上記ステップ146で閾値Thuを超えた場合には、動き成分aが次に閾値Thuを超えるまでの時間がΔt2の範囲内であるか否かを判定する。また、上記ステップ146で閾値Thdを超えた場合には、動き成分aが次に閾値Thdを超えるまでの時間がΔt2の範囲内であるか否かを判定する。なお、Δt2は、スナップシェイク判定周期であり、誤判定防止のため、所定周波数の範囲を超える振りをスナップシェイプとして検出しないようにするための所定時間である。肯定される場合には、ステップ152へ移行し、否定される場合には、ステップ156へ移行する。
【0041】
なお、Δt1及びΔt2は、歩行時、ランニング時、乗り物への乗車時等における誤動作を防止するため、加速度成分データの波形周期が遅いとき(歩行時、ランニング時:約4Hz以下)や、速いとき(スナップシェイクの限界:約6Hz以上)については、スナップシェイクの判定を行わないようにするための適切な時間を設定しておく。
図12に、いずれかの動き成分が先に閾値Thuを超えた場合のスナップシェイク無効時間Δt1、及びスナップシェイク判定周期Δt2を示す。
【0042】
ステップ152では、1回のスナップシェイクが検出されたことをカウントするために、変数nを1インクリメントして、ステップ154へ移行し、観測を終了するか否かを判定する。この判定は、例えば、動き成分aが所定時間以上略0を示した場合を観測の終了とすることができる。観測を終了する場合は、ステップ158へ移行し、観測を終了しない場合には、ステップ150へ戻る。
【0043】
一方、上記ステップ142、ステップ146、及びステップ150で否定されてステップ156へ移行した場合には、観測を終了するか否かを判定し、観測を終了する場合には、ステップ158へ移行し、終了しない場合には、ステップ142へ戻る。
【0044】
ステップ158では、検出されたスナップシェイクの回数nとスナップシェイク設定回数sとに基づいて検出結果を求めて、所定の記憶領域に一旦記憶する。ここでは、s=2であるので、検出結果は、検出されたスナップシェイクの回数nが2回であれば、検出信号1出力分となり、nが4回であれば、検出信号2出力分となる。また、nが3回や5回などの場合には、切り上げや切り捨てを行って検出結果を求める。また、nが1回の場合には、s=2を満たさないため、検出結果は”なし”となる。
【0045】
なお、上記では1回の検出処理で複数出力分の検出信号が得られる場合について説明したが、1回の検出で1出力分の検出信号のみを検出するようにしてもよい。この場合には、上記ステップ154で、n=sとなった場合にも、観測を終了するようにするとよい。
【0046】
次に、
図5のステップ104へ戻って、スナップシェイク検出処理(
図10)のステップ158で記憶された検出結果に基づいて検出信号を生成して出力する。
【0047】
例えば、第1の実施の形態の運動検出装置10を、長手方向上向きにX軸+方向、下向きにX軸−方向、幅方向左向きにY軸+方向、右向きにY軸−方向、厚み方向奥向きにZ軸+方向、手前向きにZ軸−方向となるように携帯電話に設けた場合について説明する。
【0048】
左方向へのスナップシェイクは音量をアップ、右方向では音量ダウン、前方向ではワンセグのチャンネル変更(戻る)、後方向ではワンセグのチャンネル変更(進む)、下方向ではアドレス帳の次ページへ進む、上方向ではアドレス帳の前ページへ戻る、などのように、種々の操作入力の内容とスナップシェイクの方向とを対応付けておくことができる。従って、本ステップでは、この対応付けに応じた検出信号を出力する。なお、第1の実施の形態では、動き成分に基づいて振りを検出するため、携帯電話の縦持ちか横持ちかに関わらず軸方向に沿ったスナップシェイクを検出することができる。例えば、検出結果がY軸+方向であった場合には、音量をアップさせるような検出信号とする。また、複数出力分の検出結果が得られた場合には、その出力分に応じてアップダウンの度合いを操作するような検出信号とする。例えば、上記のs=2の例で、n=4のスナップシェイクが検出されて2出力分の検出結果が記憶されていた場合には、音量を2段階アップさせるような検出信号とする。
【0049】
以上説明したように、第1の実施の形態の運動検出装置によれば、3軸加速度センサから取得した加速度成分データのローパスフィルタ処理後のデータを静止成分、取得した加速度成分データから静止成分のデータを減算したデータを動き成分として分離し、3軸の動き成分のうちはじめに閾値を超えた軸に対応する方向のスナップシェイクを検出するため、いずれの軸方向に運動したかを簡易な処理で正確に検出することができる。
【0050】
次に、第2の実施の形態の運動検出装置210について説明する。第1の実施の形態では、いずれの軸方向に振られたかを検出する場合について説明したが、第2の実施の形態では、重力方向への振りを検出し、いずれの軸が重力軸かを判定する場合について説明する。なお、第2の実施の形態の運動検出装置210の構成は、第1の実施の形態の運動検出装置10と同様であるため、説明を省略する。
【0051】
次に、第2の実施の形態の運動検出装置210の動作について説明する。第2の実施の形態では、3軸加速度センサ12のいずれかの面を下にして重力方向へ運動検出装置210を振り、重力方向を判定することによりどの面を下にしたかを検出して、それに応じて異なる検出信号を出力する。なお、第2の実施の形態において、このように3軸加速度センサ12のいずれかの面を下にして重力方向へ運動検出装置210を振ることを「シェイキング」という。
【0052】
ここで、第2の実施の形態において、シェイキングの方向を重力方向とした理由について説明する。
【0053】
例えば、
図2に示すように、Z軸+方向が重力方向となるように3軸加速度センサ12を水平に置いた状態、すなわち、X軸及びY軸についての加速度成分データが「0g」、Z軸についての加速度成分データが「+1g」の状態から、運動検出装置210を重力方向へ1回振ったときの各軸についての加速度成分データを
図13(A)に、Y軸に沿った横方向へ1回振ったときの各軸についての加速度成分データを同図(B)に示す。
図13(A)に示すように、重力方向に振った場合には、Z軸についての加速度成分データの振幅が、X軸及びY軸についての加速度成分データの振幅に比べて大きくなっている。また、加速度成分データの値も、+方向への変化が大きなっている。このことより、運動検出装置210がZ軸+方向に振られたことがわかる。
【0054】
一方、
図13(B)に示すように、Y軸方向に振った場合には、Y軸についての加速度成分データだけでなく、X軸の加速度成分データについても振幅の向きは逆向きではあるが同程度の振幅が検出されている。このため、Y軸方向に振ったにもかかわらず、X軸方向に振られたとの誤判定をする可能性がある。
【0055】
そこで、第2の実施の形態では、振りの方向に対する確度の高い重力方向へ振ることを前提としている。
【0056】
図14を参照して、第2の実施の形態における運動検出処理ルーチンについて説明する。本ルーチンは、ROM22に記憶された運動検出プログラムをCPU20が実行することにより行われる。なお、第1の実施の形態の運動検出装置10における処理と同様の処理については、同一の符号を付して説明を省略する。
【0057】
ステップ100で、加速度分離処理を実行する。運動検出装置210がZ軸+方向を重力方向にして静止状態にある場合には、X軸及びY軸についての加速度成分データが「0g」、Z軸についての加速度成分データが「+1g」となり、Z軸+方向を重力方向として判定することができる。しかし、
図7に示すように、運動検出装置210が振られた図中Sで示す箇所(○で囲んだ箇所)では、3軸の加速度成分データの各々が同程度の値を示している点が複数あり、この点においては、どの軸が重力方向に対応しているかを判定することができない。そこで、第1の実施の形態における加速度分離処理(
図6)と同様に、加速度成分データを静止成分と動き成分とに分離する。
【0058】
次に、ステップ200で、加速度分離処理(
図5)のステップ122で抽出された静止成分に基づいて、重力方向に対応する軸(以下、「重力軸」ともいう)及び方向を判定する。例えば、
図8に示すような静止成分が抽出された場合には、Z軸の静止成分が「+1g」を示しているため、Z軸+方向が重力方向であると判定される。
【0059】
次に、ステップ202で、予め定めた大きさ以上の振りをシェイキングとして検出するシェイキング検出処理を実行する。ここで、
図15を参照して、シェイキング検出処理ルーチンについて説明する。
【0060】
ステップ220で、
図14のステップ200で重力軸と判定された軸について、加速度分離処理(
図5)のステップ124で抽出された動き成分aを時系列に観測開始する。
【0061】
次に、ステップ222で、変数nに0をセットすると共に、シェイキング設定回数sを読み込む。変数nは、シェイキングの検出回数をカウントするための変数であり、シェイキングが1回検出される毎に1インクリメントされる。また、シェイキング設定回数sは、s回の連続シェイキングが検出された場合に、1つの検出信号が出力されるようにするための設定値で、任意に設定可能である。ここでは、s=2の場合について説明する。
【0062】
次に、ステップ224で、動き成分aが、予め定めた+方向の閾値Thu、または−方向の閾値Thdのいずれかを超えたか否かを判定する。
図16に動き成分aの時間変化の一部拡大図を示す。閾値Thu及び閾値Thdは、予め定めた大きさ以上の振りをシェイキングとして検出するための値を設定しておく。いずれかを超えた場合には、ステップ226へ移行し、いずれも超えない場合には、ステップ232へ移行する。
【0063】
ステップ226では、上記ステップ224で動き成分aが閾値Thuまたは閾値Thdのいずれかを超えてから所定時間Δt以内に、前回超えたのとは逆の閾値Thuまたは閾値Thdを超えたか否かを判定する。すなわち、
図17に示すように、上記ステップ224で動き成分aが閾値Thuを超えた場合には、Δt以内に閾値Thdを超えたか否かを判定する。また、上記ステップ224で動き成分aが閾値Thdを超えた場合には、Δt以内に閾値Thuを超えたか否かを判定する。なお、Δtは、シェイキング判定時間であり、誤判定防止のため、いずれかの閾値を超えてから他方の閾値を超えるまでの時間がΔtを超えた場合には、シェイキングとして検出しないようにするための所定時間である。Δt以内に動き成分aが逆の閾値Thuまたは閾値Thdを超えた場合には、ステップ228へ移行し、動き成分aが逆の閾値Thuまたは閾値Thdを超えることなくΔtを経過した場合には、ステップ232へ移行する。
【0064】
ステップ228で、1回のシェイキングが検出されたことをカウントするために、変数nを1インクリメントして、ステップ230へ移行し、観測を終了するか否かを判定する。この判定は、例えば、動き成分aが所定時間以上略0を示した場合を観測の終了とすることができる。観測を終了する場合は、ステップ234へ移行し、観測を終了しない場合には、ステップ226へ戻る。
【0065】
一方、上記ステップ224及びステップ226で否定されてステップ232へ移行した場合には、観測を終了するか否かを判定し、観測を終了する場合には、ステップ234へ移行し、終了しない場合には、ステップ222へ戻る。
【0066】
ステップ234では、検出されたシェイキングの回数nとシェイキング設定回数sとに基づいて検出結果を求めて、所定の記憶領域に一旦記憶する。ここでは、s=2であるので、検出結果は、検出されたシェイキングの回数nが2回であれば、検出信号1出力分となり、nが4回であれば、検出信号2出力分となる。また、nが3回や5回などの場合には、切り上げや切り捨てを行って検出結果を求める。また、nが1回の場合には、s=2を満たさないため、検出結果は”なし”となる。
【0067】
なお、上記では1回の検出処理で複数出力分の検出信号が得られる場合について説明したが、1回の検出で1出力分の検出信号のみを検出するようにしてもよい。この場合には、上記ステップ230で、n=sとなった場合にも、観測を終了するようにするとよい。また、ここでは、連続シェイキングを検出する場合について説明したが、断続的なシェイキングの回数を検出するようにしてもよい。その場合、上記ステップ232で否定された場合には、変数nをリセットすることなく、ステップ224へ戻るようにするとよい。
【0068】
次に、
図14のステップ104へ戻って、上記ステップ200で判定された重力軸及び方向と、シェイキング検出処理(
図9)のステップ234で記憶された検出結果とに基づいて検出信号を生成して出力する。
【0069】
例えば、第2の実施の形態の運動検出装置210を携帯電話に設けた場合に、Z軸+方向に対応する面を下に向けて携帯電話をシェイキングしたときは音量をアップ、Z軸−方向でのシェイキングは音量をダウン、X軸+方向でのシェイキングはワンセグのチャンネル変更(進む)、X軸−方向でのシェイキングはワンセグのチャンネル変更(戻る)、Y軸+方向でのシェイキングはアドレス帳の次ページへ進む、Y軸−方向でのシェイキングはアドレス帳の前ページへ戻る、などのように、種々の操作入力の内容とシェイキングの際に下向きになる軸方向とを対応付けておくことができる。従って、本ステップでは、この対応付けに応じた検出信号を出力する。例えば、Z軸+方向のシェイキングが検出された場合には、音量をアップさせるような検出信号とする。また、複数出力分の検出結果が得られた場合には、その出力分に応じてアップダウンの度合いを操作するような検出信号とする。例えば、上記のs=2の例で、n=4のシェイキングが検出されて2出力分の検出結果が記憶されていた場合には、音量を2段階アップさせるような検出信号とする。
【0070】
以上説明したように、第2の実施の形態の運動検出装置によれば、運動検出装置のいずれかの面を下にして重力方向に振った場合に、3軸加速度センサから取得した加速度成分データを、ローパスフィルタ処理して得られる静止成分と、取得した加速度成分データから静止成分を減算した動き成分とに分離し、静止成分に基づいて重力軸及び方向を判定すると共に、重力軸の動き成分に基づいてシェイキングを検出するため、いずれの軸方向が重力方向であるか、及び重力方向にどの程度シェイキングされたかを簡易な処理で正確に検出することができる。
【0071】
なお、上記実施の形態では、3軸加速度センサとマイクロコンピュータとが一体となった場合について説明したが、3軸加速度センサのみを電子機器内に設け、マイクロコンピュータを電子機器の外部に設けるように構成してもよい。