説明

運動検出装置、電子機器、運動検出方法及びプログラム

【課題】いずれの軸方向に運動したか及び運動の大きさを簡易な処理で正確に検出する。
【解決手段】3軸加速度センサ12により検出された、運動検出装置10に作用する加速度の3軸の加速度成分データの各々を、ローパスフィルタ処理して得られた静止成分と、加速度成分データの各々から静止成分の各々を除いた動き成分とに分離する。分離された最大の値を示す動き成分に基づいて、いずれの軸方向に運動したかを検出する。また、その動き成分が、所定範囲の上限値を示す閾値Thuを超えた時点から下限値を示す閾値Thd未満となった後に所定範囲内の値となるまでの時間、または閾値Thd未満となった時点から閾値Thuを超えた後に所定範囲内の値となるまでの時間をシェイク時間として検出し、シェイク時間が判定時間以上か否かにより、またはシェイク時間内のベクトル積分値が判定閾値以上か否かにより振りの大きさを判定する。

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

【特許請求の範囲】
【請求項1】
作用する加速度の三次元直交座標系の各軸の加速度成分の各々を検出して、加速度成分データの各々を出力する加速度検出手段と、
前記加速度検出手段から出力された加速度成分データに基づいて、前記加速度検出手段が前記各軸のいずれの軸方向に運動したかを検出すると共に、該軸方向の加速度成分データが、0を含む所定範囲の下限値未満となるより先に該所定範囲の上限値を超えた場合には、前記上限値を超えた時点から前記下限値未満となった後に前記所定範囲内の値となるまでの第1の時間または前記第1の時間内の前記動き成分の大きさの積分値、前記最大の値を示す動き成分が、前記上限値を超えるより先に前記下限値未満となった場合には、前記下限値未満となった時点から前記上限値を超えた後に前記所定範囲内の値となるまでの第2の時間または前記第2の時間内の前記動き成分の大きさの積分値に基づいて、運動の大きさを検出する運動検出手段と、
を含む運動検出装置。
【請求項2】
前記加速度検出手段から出力された加速度成分データの各々を、ローパスフィルタ処理して得られた静止成分と、前記加速度成分データの各々から前記静止成分の各々を除いた動き成分とに分離する分離手段を含み、
前記運動検出手段は、前記分離手段で分離された最大の値を示す動き成分に基づいて、前記加速度検出手段が前記各軸のいずれの軸方向に運動したかを検出する
請求項1記載の運動検出装置。
【請求項3】
前記運動検出手段は、前記加速度検出手段をいずれかの軸方向に沿って往復で運動させた場合の前記最大の値を示す動き成分が、前記下限値未満となるより先に前記上限値を超えた場合には、前記上限値を超えた時点から前記下限値未満となるまでの時間、前記最大の値を示す動き成分が、前記上限値を超えるより先に前記下限値未満となった場合には、前記下限値未満となった時点から前記上限値を超えるまでの時間が、予め定めた所定時間を超える場合に、前記加速度検出手段が前記最大の値を示す動き成分に対応する軸方向に運動したことを検出する請求項2記載の運動検出装置。
【請求項4】
前記加速度検出手段から出力された加速度成分データの各々を、ローパスフィルタ処理して得られた静止成分と、前記加速度成分データの各々から前記静止成分の各々を除いた動き成分とに分離する分離手段を含み、
前記運動検出手段は、いずれかの軸を重力方向に向けて前記加速度検出手段を重力方向に運動させた場合の前記静止成分に基づいて、いずれの軸が重力方向に対応する重力軸かを検出すると共に、前記重力軸の動き成分に基づいて、運動の大きさを検出する
請求項1記載の運動検出装置。
【請求項5】
前記運動検出手段は、前記重力軸の動き成分が、前記下限値未満となるより先に前記上限値を超えた場合には、前記上限値を超えた時点から前記下限値未満となるまでの時間、前記最大の値を示す動き成分が、前記上限値を超えるより先に前記下限値未満となった場合には、前記下限値未満となった時点から前記上限値を超えるまでの時間が、予め定めた所定時間を超える場合に、前記加速度検出手段が重力方向に運動したことを検出する請求項4記載の運動検出装置。
【請求項6】
前記運動検出手段は、前記第1の時間または前記第2の時間と予め定めた複数の判定時間の各々とを比較して、前記第1の時間または前記第2の時間がいずれの前記判定時間を超えたかにより、または前記第1の積分値または前記第2の積分値と予め定めた複数の判定値の各々とを比較して、前記第1の積分値または前記第2の積分値がいずれの前記判定値を超えたかにより運動の大きさの程度を検出する請求項1〜請求項5のいずれか1項記載の運動検出装置。
【請求項7】
請求項1〜請求項6のいずれか1項記載の運動検出装置を備えた電子機器。
【請求項8】
加速度検出手段により、前記加速度検出手段に作用する加速度の三次元直交座標系の各軸の加速度成分の各々を検出して、加速度成分データの各々を出力し、
出力された加速度成分データに基づいて、前記加速度検出手段が前記各軸のいずれの軸方向に運動したかを検出し、
検出された軸方向の加速度成分データが、0を含む所定範囲の下限値未満となるより先に該所定範囲の上限値を超えた場合には、前記上限値を超えた時点から前記下限値未満となった後に前記所定範囲内の値となるまでの第1の時間または前記第1の時間内の前記動き成分の大きさの積分値、前記最大の値を示す動き成分が、前記上限値を超えるより先に前記下限値未満となった場合には、前記下限値未満となった時点から前記上限値を超えた後に前記所定範囲内の値となるまでの第2の時間または前記第2の時間内の前記動き成分の大きさの積分値に基づいて、運動の大きさを検出する
運動検出方法。
【請求項9】
コンピュータを、
作用する加速度の三次元直交座標系の各軸の加速度成分の各々を検出して、加速度成分データの各々を出力する加速度検出手段から出力された加速度成分データの各々を取得する取得手段、及び
前記取得手段で取得された加速度成分データに基づいて、前記加速度検出手段が前記各軸のいずれの軸方向に運動したかを検出すると共に、該軸方向の加速度成分データが、0を含む所定範囲の下限値未満となるより先に該所定範囲の上限値を超えた場合には、前記上限値を超えた時点から前記下限値未満となった後に前記所定範囲内の値となるまでの第1の時間または前記第1の時間内の前記動き成分の大きさの積分値、前記最大の値を示す動き成分が、前記上限値を超えるより先に前記下限値未満となった場合には、前記下限値未満となった時点から前記上限値を超えた後に前記所定範囲内の値となるまでの第2の時間または前記第2の時間内の前記動き成分の大きさの積分値に基づいて、運動の大きさを検出する運動検出手段
として機能させるための運動検出プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate


【公開番号】特開2011−169864(P2011−169864A)
【公開日】平成23年9月1日(2011.9.1)
【国際特許分類】
【出願番号】特願2010−36275(P2010−36275)
【出願日】平成22年2月22日(2010.2.22)
【出願人】(308033711)OKIセミコンダクタ株式会社 (898)
【Fターム(参考)】