(57)【要約】【課題】いずれの軸方向に運動したかを簡易な処理で正確に検出することができる運動検出装置、電子機器、運動検出方法及びプログラムを提供することを目的とする。【解決手段】３軸加速度センサ１２により、運動検出装置１０に作用するＸ軸、Ｙ軸、及びＺ軸の加速度成分の各々を検出して加速度成分データを出力し、加速度成分データの各々を、ローパスフィルタ処理して得られる静止成分と、加速度成分データの各々から静止成分の各々を除いた動き成分とに分離する。分離された動き成分のうち、はじめに閾値を超えた動き成分に基づいて、所定時間の範囲内で所定の運動が検出された場合に、運動検出装置１０がはじめに閾値を超えた動き成分に対応する軸方向にスナップシェイクされたことを検出する。また、静止成分に基づいて、重力方向を判定する。【選択図】図６
2011047879.tif 000002
【特許請求の範囲】
【請求項１】
作用する加速度の三次元直交座標系の各軸の加速度成分の各々を検出して、加速度成分データの各々を出力する加速度検出手段と、
前記加速度検出手段から出力された加速度成分データの各々を、ローパスフィルタ処理して得られた静止成分と、前記加速度成分データの各々から前記静止成分の各々を除いた動き成分とに分離する分離手段と、
前記分離手段で分離された最大の値を示す動き成分に基づいて、前記加速度検出手段が前記各軸のいずれの軸方向に運動したかを検出する運動検出手段と、
を含む運動検出装置。
【請求項２】
前記運動検出手段は、前記加速度検出手段をいずれかの軸方向に沿って往復で運動させた場合の前記最大の値を示す動き成分が、先に予め定めた第１の閾値を超えた場合には、予め定めた第２の閾値を超えてから次に前記第２の閾値を超えるまでの時間、先に前記第２の閾値を超えた場合には、前記第１の閾値を超えてから次に前記第１の閾値を超えるまでの時間が、予め定めた所定時間の範囲の場合に、前記加速度検出手段が前記最大の値を示す動き成分に対応する軸方向に運動したことを検出する請求項１記載の運動検出装置。
【請求項３】
作用する加速度の三次元直交座標系の各軸の加速度成分の各々を検出して、加速度成分データの各々を出力する加速度検出手段と、
前記加速度検出手段から出力された加速度成分データの各々を、ローパスフィルタ処理して得られた静止成分と、前記加速度成分データの各々から前記静止成分の各々を除いた動き成分とに分離する分離手段と、
いずれかの軸を重力方向に向けて前記加速度検出手段を重力方向に運動させた場合の前記静止成分に基づいて、いずれの軸が重力方向に対応する重力軸かを判定する重力軸判定手段と、
を含む運動検出装置。
【請求項４】
前記重力軸判定手段は、前記重力軸の動き成分が、予め定めた正方向の第１の閾値、及び負方向の第２の閾値を、所定時間内に交互に少なくとも各１回超えた場合に、前記加速度検出手段が重力方向及び重力方向と反対方向に運動したことを検出する請求項３記載の運動検出装置。
【請求項５】
請求項１〜請求項４のいずれか１項記載の運動検出装置を備えた電子機器。
【請求項６】
加速度検出手段により、前記加速度検出手段に作用する加速度の三次元直交座標系の各軸の加速度成分の各々を検出して、加速度成分データの各々を出力し、
前記加速度検出手段から出力された加速度成分データの各々を、ローパスフィルタ処理して得られた静止成分と、前記加速度成分データの各々から前記静止成分の各々を除いた動き成分とに分離し、
分離された最大の値を示す動き成分に基づいて、前記加速度検出手段が前記各軸のいずれの軸方向に運動したかを検出するか、または、いずれかの軸を重力方向に向けて前記加速度検出手段を重力方向に運動させた場合の前記静止成分に基づいて、いずれの軸が重力方向に対応する重力軸かを判定する
運動検出方法。
【請求項７】
コンピュータを、
作用する加速度の三次元直交座標系の各軸の加速度成分の各々を検出して、加速度成分データの各々を出力する加速度検出手段から出力された加速度成分データの各々を、ローパスフィルタ処理して得られた静止成分と、前記加速度成分データの各々から前記静止成分の各々を除いた動き成分とに分離する分離手段、及び
前記分離手段で分離された最大の値を示す動き成分に基づいて、前記加速度検出手段が前記各軸のいずれの軸方向に運動したかを検出する運動検出手段、または、いずれかの軸を重力方向に向けて前記加速度検出手段を重力方向に運動させた場合の前記静止成分に基づいて、いずれの軸が重力方向に対応する重力軸かを判定する重力軸判定手段
として機能させるための運動検出プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、運動検出装置、電子機器、運動検出方法及びプログラムに係り、特に、３軸加速度センサを用いて運動を検出する運動検出装置、電子機器、運動検出方法及びプログラムに関する。
【背景技術】
【０００２】
従来、携帯電話機等の電子機器において、内部に３軸加速度センサを設けて、この３軸加速度センサの各軸方向の加速度成分データを検出して、電子機器の傾斜角度を算出することが行われている。
【０００３】
また、電子機器の傾斜角度の算出中に、バイブレーション機能等の外乱が生じた場合には、傾斜角度が正確に算出できないという問題があった。そこで、３軸加速度センサにより検出した３軸の加速度データから、加速度ベクトルの大きさである加速度値を算出し、この加速度値と静止状態での加速度値との差が所定値以上の場合には、外乱が生じたと判定して、外乱が生じた際の加速度データを用いずに傾斜角度を算出する携帯電子機器が提案されている（例えば、特許文献１参照）。
【０００４】
また、携帯電話の内部に設けられた加速度センサで加速度データを検出して、３軸毎の傾斜量を演算して携帯電話が大地を基準にしてどの面がどちら方向に向いているのかを把握し、携帯電話の特定の面が叩かれた際に生じる加速度を検出して、加えられた加速度が閾値以上かどうかを判断して、力が加えられた面を算出する携帯電子機器が提案されている（例えば、特許文献２参照）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００９−８９０４８号公報
【特許文献２】特開２００９−３３６５１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、上記特許文献１の技術では、外乱の有無が判定できるものの、外乱による運動がどの方向に生じているかを判定することはできないため、モーション入力のように、電子機器を所定の方向に運動させることにより、所定の入力操作を行う場合には、１種類の入力にしか相当せず、複雑な操作に対応することができない、という問題がある。
【０００７】
また、特許文献２の技術では、合計ベクトルを用いて加えられた加速度の方向及び大きさを算出しているが、この合計ベクトルの方向と各軸方向とをどのように対応させているのか具体的に記載されておらず、正確に軸方向を判定できない場合がある、という問題がある。
【０００８】
本発明は、上述した問題を解決するために成されたものであり、いずれの軸方向に運動したかを簡易な処理で正確に検出することができる運動検出装置、電子機器、運動検出方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記目的を達成するために、第１の発明の運動検出装置は、作用する加速度の三次元直交座標系の各軸の加速度成分の各々を検出して、加速度成分データの各々を出力する加速度検出手段と、前記加速度検出手段から出力された加速度成分データの各々を、ローパスフィルタ処理して得られた静止成分と、前記加速度成分データの各々から前記静止成分の各々を除いた動き成分とに分離する分離手段と、前記分離手段で分離された最大の値を示す動き成分に基づいて、前記加速度検出手段が前記各軸のいずれの軸方向に運動したかを検出する運動検出手段と、を含んで構成されている。
【００１０】
第１の発明の運動検出装置によれば、加速度検出手段が、作用する加速度の三次元直交座標系の各軸の加速度成分の各々を検出して、加速度成分データの各々を出力し、分離手段が、加速度検出手段から出力された加速度成分データの各々を、ローパスフィルタ処理して得られた静止成分と、加速度成分データの各々から静止成分の各々を除いた動き成分とに分離する。そして、運動検出手段が、分離手段で分離された最大の値を示す動き成分に基づいて、加速度検出手段が各軸のいずれの軸方向に運動したかを検出する。
【００１１】
このように、加速度成分データをローパスフィルタ処理して得られた静止成分を除いた動き成分の各々のうち、最大の値を示す動き成分に基づいて加速度検出手段がいずれの軸方向に運動したかを検出するため、簡易な処理で正確に運動した軸方向を検出することができる。
【００１２】
また、第１の発明において、前記運動検出手段は、前記加速度検出手段をいずれかの軸方向に沿って往復で運動させた場合の前記最大の値を示す動き成分が、先に予め定めた第１の閾値を超えた場合には、予め定めた第２の閾値を超えてから次に前記第2の閾値を超えるまでの時間、先に前記第２の閾値を超えた場合には、前記第１の閾値を超えてから次に前記第１の閾値を超えるまでの時間が、予め定めた所定時間の範囲の場合に、前記加速度検出手段が前記最大の値を示す動き成分に対応する軸方向に運動したことを検出するようにすることができる。これにより、所定時間の範囲で閾値を超えるような所定の運動のみが検出され、誤検出を防止することができる。
【００１３】
また、第２の発明の運動検出装置は、作用する加速度の三次元直交座標系の各軸の加速度成分の各々を検出して、加速度成分データの各々を出力する加速度検出手段と、前記加速度検出手段から出力された加速度成分データの各々を、ローパスフィルタ処理して得られた静止成分と、前記加速度成分データの各々から前記静止成分の各々を除いた動き成分とに分離する分離手段と、いずれかの軸を重力方向に向けて前記加速度検出手段を重力方向に運動させた場合の前記静止成分に基づいて、いずれの軸が重力方向に対応する重力軸かを判定する重力軸判定手段と、を含んで構成されている。
【００１４】
第２の発明の運動検出装置によれば、加速度検出手段が、作用する加速度の三次元直交座標系の各軸の加速度成分の各々を検出して、加速度成分データの各々を出力し、分離手段が、加速度検出手段から出力された加速度成分データの各々を、ローパスフィルタ処理して得られた静止成分と、加速度成分データの各々から静止成分の各々を除いた動き成分とに分離する。重力軸の静止成分と重力軸以外の静止成分とでは異なる値を示すため、重力軸判定手段が、いずれかの軸を重力方向に向けて加速度検出手段を重力方向に運動させた場合の静止成分に基づいて、いずれの軸が重力方向に対応する重力軸かを判定する。
【００１５】
このように、いずれかの軸を重力方向に向けて加速度検出手段を重力方向に運動させた場合に、加速度成分データをローパスフィルタ処理して得られた静止成分に基づいて、重力軸を検出するため、簡易な処理で正確に重力方向、すなわち運動した軸方向を検出することができる。
【００１６】
また、第２の発明において、前記重力軸判定手段は、前記重力軸の動き成分が、予め定めた正方向の第１の閾値、及び負方向の第２の閾値を、所定時間内に交互に少なくとも各１回超えた場合に、前記加速度検出手段が重力方向及び重力方向と反対方向に運動したことを検出するようにすることができる。これにより、閾値を超えるような所定の運動のみが検出され、誤検出を防止することができる。
【００１７】
第３の発明の電子機器は、第１または第２の発明の運動検出装置を備えた電子機器である。電子機器としては、例えば、携帯電話やゲーム機器のコントローラなどに適用することができる。
【００１８】
第４の発明の運動検出方法は、加速度検出手段により、前記加速度検出手段に作用する加速度の三次元直交座標系の各軸の加速度成分の各々を検出して、加速度成分データの各々を出力し、前記加速度検出手段から出力された加速度成分データの各々を、ローパスフィルタ処理して得られた静止成分と、前記加速度成分データの各々から前記静止成分の各々を除いた動き成分とに分離し、分離された最大の値を示す動き成分に基づいて、前記加速度検出手段が前記各軸のいずれの軸方向に運動したかを検出するか、または、いずれかの軸を重力方向に向けて前記加速度検出手段を重力方向に運動させた場合の前記静止成分に基づいて、いずれの軸が重力方向に対応する重力軸かを判定する方法である。
【００１９】
第５の発明の運動検出プログラムは、コンピュータを、作用する加速度の三次元直交座標系の各軸の加速度成分の各々を検出して、加速度成分データの各々を出力する加速度検出手段から出力された加速度成分データの各々を、ローパスフィルタ処理して得られた静止成分と、前記加速度成分データの各々から前記静止成分の各々を除いた動き成分とに分離する分離手段、及び前記分離手段で分離された最大の値を示す動き成分に基づいて、前記加速度検出手段が前記各軸のいずれの軸方向に運動したかを検出する運動検出手段、または、いずれかの軸を重力方向に向けて前記加速度検出手段を重力方向に運動させた場合の前記静止成分に基づいて、いずれの軸が重力方向に対応する重力軸かを判定する重力軸判定手段として機能させるためのプログラムである。
【発明の効果】
【００２０】
以上説明したように、本発明の運動検出装置、電子機器、運動検出方法及びプログラムによれば、加速度成分データをローパスフィルタ処理して得られた静止成分、または、加速度成分データから静止成分を除いた動き成分を用いて運動した軸方向を検出するため、簡易な処理で運動した軸方向を正確に検出することができる、という効果が得られる。
【図面の簡単な説明】
【００２１】
【図１】本実施の形態の運動検出装置の構成を示すブロック図である。
【図２】本実施の形態の運動検出装置に用いられる３軸加速度センサを示す外観斜視図である。
【図３】スナップシェイクの（Ａ）縦持ち時の左右振り、（Ｂ）縦持ち時の前後振り、（Ｃ）横持ち時の左右振り、及び（Ｄ）横持ち時の前後振りを説明するための図である。
【図４】スナップシェイクの（Ａ）縦持ち時の長手方向への振り、及び（Ｂ）横持ち時の長手方向への振りを説明するための図である。
【図５】第１の実施の形態の運動検出装置における運動検出処理ルーチンの内容を示すフローチャートである。
【図６】第１の実施の形態の運動検出装置における加速度分離処理ルーチンの内容を示すフローチャートである。
【図７】３軸加速度センサを水平に置いた状態から重力方向に複数回振ったときの加速度成分データを示す図である。
【図８】図７の加速度成分データをローパスフィルタ処理して得られた静止成分を示す図である。
【図９】図７の加速度成分データから図８の静止成分を減算して得られた動き成分を示す図である。
【図１０】第１の実施の形態の運動検出装置におけるスナップシェイク検出処理ルーチンの内容を示すフローチャートである。
【図１１】第１の実施の形態におけるスナップシェイクの方向の判定方法を説明するための図である。
【図１２】第１の実施の形態におけるスナップシェイクの検出を説明するための図である。
【図１３】３軸加速度センサを水平に置いた状態から、（Ａ）重力方向に１回振ったときの加速度成分データ、及び（Ｂ）水平方向に１回振ったときの加速度成分データを示す図である。
【図１４】第２の実施の形態の運動検出装置における運動検出処理ルーチンの内容を示すフローチャートである。
【図１５】第２の実施の形態の運動検出装置におけるシェイキング検出処理ルーチンの内容を示すフローチャートである。
【図１６】動き成分、正方向の閾値Ｔｈｕ、及び負方向の閾値Ｔｈｄを示す図である。
【図１７】第２の実施の形態におけるシェイキングの検出を説明するための図である。
【発明を実施するための形態】
【００２２】
以下、本発明の実施の形態について図面を参照しながら詳細に説明する。
【００２３】
図１に示すように、第１の実施の形態の運動検出装置１０は、直交座標系のＸ軸、Ｙ軸、及びＺ軸の各軸方向の加速度成分を検出して、加速度成分データを出力する３軸加速度センサ１２、及び運動検出装置１０がどの軸方向に運動したかを検出し、検出された軸方向に応じた検出信号を出力するマイクロコンピュータ１４を備えている。
【００２４】
３軸加速度センサ１２は、図２に示すような直交座標系のＸ軸、Ｙ軸、及びＺ軸の各軸方向の加速度成分を検出して、加速度成分データを出力する。加速度成分データは、その値の符号（”＋”か”−”か）で加速度成分の方向を表し、その値の絶対値で加速度成分の大きさを表す。加速度成分の方向は、図２のＸ軸について、右方向が”＋”、左方向が”−”となる。また、同図のＹ軸について、奥に向かう方向が”＋”、手前に向かう方向が”−”となる。また、同図のＺ軸について、下方向が”＋”、上方向が”−”となる。これにより、Ｘ軸＋方向、Ｘ軸−方向、Ｙ軸＋方向、Ｙ軸−方向、Ｚ軸＋方向、及びＺ軸−方向の６方向の加速度成分を検出することができる。
【００２５】
また、３軸加速度センサ１２は、図２に示すような向きで静止状態にある場合には、Ｘ軸及びＹ軸については加速度成分データ「０ｇ」、Ｚ軸については加速度成分データ「＋１ｇ」を出力する。なお、「ｇ」は、加速度成分データの単位を表す重力加速度である。
【００２６】
マイクロコンピュータ１４は、運動検出装置１０全体の制御を司るＣＰＵ２０、後述する運動検出プログラム等各種プログラムを記憶した記憶媒体としてのＲＯＭ２２、ワークエリアとしてデータを一時的に格納するＲＡＭ２４、各種情報が記憶された記憶手段としてのメモリ２６、Ｉ／Ｏ（入出力）ポート２８、及びこれらを接続するバスを含んで構成されている。Ｉ／Ｏポート２８には、３軸加速度センサ１２が接続されている。
【００２７】
次に、第１の実施の形態の運動検出装置１０の動作について説明する。第１の実施の形態では、運動検出装置１０をいずれかの軸方向に沿って振った場合に、運動検出装置１０がいずれの軸方向に振られたかを検出する場合について説明する。なお、第１の実施の形態において、このように３軸加速度センサ１２のいずれかの軸方向へ運動検出装置１０を振ることを「スナップシェイク」という。
【００２８】
図３及び図４を参照して、第１の実施の形態の運動検出装置１０が設けられた携帯電話を用いたスナップシェイクについて説明する。図３（Ａ）は、携帯電話を縦方向に持った（縦持ち）場合の左右方向のスナップシェイクである。同図（Ｂ）は、縦持ちの場合の前後方向のスナップシェイクである。同図（Ｃ）は、携帯電話を横方向に持った（横持ち）場合の左右方向のスナップシェイクである。同図（Ｄ）は、横持ちの場合の前後方向のスナップシェイクである。図４（Ａ）は、縦持ちの場合の長手方向へのスナップシェイクである。同図（Ｂ）横持ちの場合の長手方向へのスナップシェイクである。
【００２９】
次に、図５を参照して、第１の実施の形態の運動検出装置１０における運動検出処理ルーチンについて説明する。本ルーチンは、ＲＯＭ２２に記憶された運動検出プログラムをＣＰＵ２０が実行することにより行われる。
【００３０】
ステップ１００で、加速度成分データを静止成分と動き成分とに分離する加速度分離処理を実行する。ここで、図６を参照して、加速度分離処理ルーチンについて説明する。
【００３１】
ステップ１２０で、３軸加速度センサ１２から各軸についての加速度成分データを取得する。取得された加速度成分データの一例を図７に示す。この状態から、どの軸方向に運動検出装置１０が振られたかを検出する必要があるが、図中Ｓで示す箇所（○で囲んだ箇所）では、３軸の加速度成分データの各々が同程度の値を示している点が複数あり、この点においては、どの軸方向に振られたかを検出することが困難となる場合がある。
【００３２】
そこで、次に、ステップ１２２へ移行して、取得した加速度成分データの各々に対して、ローパスフィルタ処理を施す。ローパスフィルタ処理を施したデータを図８に示す。図８に示すように、ローパスフィルタ処理後の加速度成分データは、略「０ｇ」を示すＸ軸及びＹ軸と、略「＋１ｇ」を示すＺ軸とが完全に分離できている。このように、取得された加速度成分データにローパスフィルタ処理を施すことにより抽出されたデータを、加速度成分データの「静止成分」という。
【００３３】
次に、ステップ１２４で、Ｘ軸、Ｙ軸、及びＺ軸のそれぞれについて、上記ステップ１２０で取得された加速度成分データから、上記ステップ１２２で抽出された静止成分のデータを減算する。減算後のデータを図９に示す。このように、取得された加速度成分データからローパスフィルタ処理後のデータを減算することにより抽出されたデータを、加速度成分データの「動き成分」という。この方法により、高度なハイパスフィルタ処理を行わなくても、加速度成分データを簡易な処理で静止成分と動き成分とに分離することができる。
【００３４】
次に、図５のステップ１０２に戻って、予め定めた大きさ以上の振りであって、所定時間の範囲で行われた振りをスナップシェイクとして検出するスナップシェイク検出処理を実行する。ここで、図１０を参照して、スナップシェイク検出処理ルーチンについて説明する。
【００３５】
ステップ１４０で、３軸の各々について、加速度分離処理（図６）のステップ１２４で抽出された動き成分ａを時系列に観測開始する。
【００３６】
次に、ステップ１４２で、いずれかの軸の動き成分ａが、予め定めた＋方向の閾値Ｔｈｕ、または−方向の閾値Ｔｈｄのいずれかを超えたか否かを判定する。なお、運動検出装置１０が搭載される電子機器の搭載位置等によって、スナップシェイクによる動き成分の波形が異なるため、搭載位置等を考慮して、閾値Ｔｈｕ及び閾値Ｔｈｄはそれぞれ別に設定できるようにしておく。いずれかの動き成分ａがいずれかの閾値を超えた場合には、ステップ１４４へ移行し、いずれも超えない場合には、ステップ１５６へ移行する。
【００３７】
ステップ１４４では、上記ステップ１４２でいずれかの閾値を超えたと判定された動き成分ａに対応する軸方向に運動検出装置１０が振られたと判定する。また、いずれの閾値を先に超えたかにより、その軸方向の＋方向の振りか−方向の振りかを判定する。図１１（Ａ）に示すように、動き成分ａが閾値Ｔｈｕを先に超えた場合には＋方向の振り、同図（Ｂ）に示すように、閾値Ｔｈｄを先に超えた場合には−方向の振りと判定する。より具体的には、Ｚ軸の動き成分ａＺが、Ｘ軸の動き成分ａＸ及びＹ軸の動き成分ａＹより先に閾値を超え、その閾値が閾値Ｔｈｕであった場合には、Ｚ軸＋方向が振りの方向となる。
【００３８】
次に、ステップ１４６で、上記ステップ１４２で動き成分ａが閾値Ｔｈｕまたは閾値Ｔｈｄのいずれかを超えてから所定時間Δｔ１以降に、前回超えたのとは逆の閾値Ｔｈｕまたは閾値Ｔｈｄを超えたか否かを判定する。すなわち、上記ステップ１４２で動き成分ａが閾値Ｔｈｕを超えた場合には、Δｔ１以降にＴｈｄを超えたか否かを判定する。また、上記ステップ１４２で動き成分ａが閾値Ｔｈｄを超えた場合には、Δｔ１以降に閾値Ｔｈｕを超えたか否かを判定する。なお、Δｔ１は、スナップシェイク無効時間であり、誤判定防止のため、いずれかの閾値を超えてから他方の閾値を超えるまでの時間がΔｔ１未満の場合には、スナップシェイプを検出しないようにするための所定時間である。Δｔ１以降に動き成分ａが逆の閾値Ｔｈｕまたは閾値Ｔｈｄを超えた場合には、ステップ１４８へ移行し、Δｔ１を経過する前に動き成分ａが逆の閾値Ｔｈｕまたは閾値Ｔｈｄを超えた場合には、ステップ１５６へ移行する。なお、Δｔ１経過後、所定時間経過しても動き成分ａが逆の閾値Ｔｈｕまたは閾値Ｔｈｄを超えない場合も、ステップ１５６へ移行する。
【００３９】
ステップ１４８では、変数ｎに０をセットすると共に、スナップシェイク設定回数ｓを読み込む。変数ｎは、スナップシェイクの検出回数をカウントするための変数であり、スナップシェイクが１回検出される毎に１インクリメントされる。また、スナップシェイク設定回数ｓは、ｓ回の連続スナップシェイクが検出された場合に、１つの検出信号が出力されるようにするための設定値で、任意に設定可能である。ここでは、ｓ＝２の場合について説明する。
【００４０】
次に、ステップ１５０で、上記ステップ１４６で動き成分ａが前回と逆の閾値Ｔｈｕまたは閾値Ｔｈｄを超えたと判定されてから次に同じ閾値Ｔｈｕまたは閾値Ｔｈｄを超えるまでの時間が、所定時間Δｔ２の範囲内であるか否かを判定する。すなわち、上記ステップ１４６で閾値Ｔｈｕを超えた場合には、動き成分ａが次に閾値Ｔｈｕを超えるまでの時間がΔｔ２の範囲内であるか否かを判定する。また、上記ステップ１４６で閾値Ｔｈｄを超えた場合には、動き成分ａが次に閾値Ｔｈｄを超えるまでの時間がΔｔ２の範囲内であるか否かを判定する。なお、Δｔ２は、スナップシェイク判定周期であり、誤判定防止のため、所定周波数の範囲を超える振りをスナップシェイプとして検出しないようにするための所定時間である。肯定される場合には、ステップ１５２へ移行し、否定される場合には、ステップ１５６へ移行する。
【００４１】
なお、Δｔ１及びΔｔ２は、歩行時、ランニング時、乗り物への乗車時等における誤動作を防止するため、加速度成分データの波形周期が遅いとき（歩行時、ランニング時：約４Ｈｚ以下）や、速いとき（スナップシェイクの限界：約６Ｈｚ以上）については、スナップシェイクの判定を行わないようにするための適切な時間を設定しておく。図１２に、いずれかの動き成分が先に閾値Ｔｈｕを超えた場合のスナップシェイク無効時間Δｔ１、及びスナップシェイク判定周期Δｔ２を示す。
【００４２】
ステップ１５２では、１回のスナップシェイクが検出されたことをカウントするために、変数ｎを１インクリメントして、ステップ１５４へ移行し、観測を終了するか否かを判定する。この判定は、例えば、動き成分ａが所定時間以上略０を示した場合を観測の終了とすることができる。観測を終了する場合は、ステップ１５８へ移行し、観測を終了しない場合には、ステップ１５０へ戻る。
【００４３】
一方、上記ステップ１４２、ステップ１４６、及びステップ１５０で否定されてステップ１５６へ移行した場合には、観測を終了するか否かを判定し、観測を終了する場合には、ステップ１５８へ移行し、終了しない場合には、ステップ１４２へ戻る。
【００４４】
ステップ１５８では、検出されたスナップシェイクの回数ｎとスナップシェイク設定回数ｓとに基づいて検出結果を求めて、所定の記憶領域に一旦記憶する。ここでは、ｓ＝２であるので、検出結果は、検出されたスナップシェイクの回数ｎが２回であれば、検出信号１出力分となり、ｎが４回であれば、検出信号２出力分となる。また、ｎが３回や５回などの場合には、切り上げや切り捨てを行って検出結果を求める。また、ｎが１回の場合には、ｓ＝２を満たさないため、検出結果は”なし”となる。
【００４５】
なお、上記では１回の検出処理で複数出力分の検出信号が得られる場合について説明したが、１回の検出で１出力分の検出信号のみを検出するようにしてもよい。この場合には、上記ステップ１５４で、ｎ＝ｓとなった場合にも、観測を終了するようにするとよい。
【００４６】
次に、図５のステップ１０４へ戻って、スナップシェイク検出処理（図１０）のステップ１５８で記憶された検出結果に基づいて検出信号を生成して出力する。
【００４７】
例えば、第１の実施の形態の運動検出装置１０を、長手方向上向きにＸ軸＋方向、下向きにＸ軸−方向、幅方向左向きにＹ軸＋方向、右向きにＹ軸−方向、厚み方向奥向きにＺ軸＋方向、手前向きにＺ軸−方向となるように携帯電話に設けた場合について説明する。
【００４８】
左方向へのスナップシェイクは音量をアップ、右方向では音量ダウン、前方向ではワンセグのチャンネル変更（戻る）、後方向ではワンセグのチャンネル変更（進む）、下方向ではアドレス帳の次ページへ進む、上方向ではアドレス帳の前ページへ戻る、などのように、種々の操作入力の内容とスナップシェイクの方向とを対応付けておくことができる。従って、本ステップでは、この対応付けに応じた検出信号を出力する。なお、第１の実施の形態では、動き成分に基づいて振りを検出するため、携帯電話の縦持ちか横持ちかに関わらず軸方向に沿ったスナップシェイクを検出することができる。例えば、検出結果がＹ軸＋方向であった場合には、音量をアップさせるような検出信号とする。また、複数出力分の検出結果が得られた場合には、その出力分に応じてアップダウンの度合いを操作するような検出信号とする。例えば、上記のｓ＝２の例で、ｎ＝４のスナップシェイクが検出されて２出力分の検出結果が記憶されていた場合には、音量を２段階アップさせるような検出信号とする。
【００４９】
以上説明したように、第１の実施の形態の運動検出装置によれば、３軸加速度センサから取得した加速度成分データのローパスフィルタ処理後のデータを静止成分、取得した加速度成分データから静止成分のデータを減算したデータを動き成分として分離し、３軸の動き成分のうちはじめに閾値を超えた軸に対応する方向のスナップシェイクを検出するため、いずれの軸方向に運動したかを簡易な処理で正確に検出することができる。
【００５０】
次に、第２の実施の形態の運動検出装置２１０について説明する。第１の実施の形態では、いずれの軸方向に振られたかを検出する場合について説明したが、第２の実施の形態では、重力方向への振りを検出し、いずれの軸が重力軸かを判定する場合について説明する。なお、第２の実施の形態の運動検出装置２１０の構成は、第１の実施の形態の運動検出装置１０と同様であるため、説明を省略する。
【００５１】
次に、第２の実施の形態の運動検出装置２１０の動作について説明する。第２の実施の形態では、３軸加速度センサ１２のいずれかの面を下にして重力方向へ運動検出装置２１０を振り、重力方向を判定することによりどの面を下にしたかを検出して、それに応じて異なる検出信号を出力する。なお、第２の実施の形態において、このように３軸加速度センサ１２のいずれかの面を下にして重力方向へ運動検出装置２１０を振ることを「シェイキング」という。
【００５２】
ここで、第２の実施の形態において、シェイキングの方向を重力方向とした理由について説明する。
【００５３】
例えば、図２に示すように、Ｚ軸＋方向が重力方向となるように３軸加速度センサ１２を水平に置いた状態、すなわち、Ｘ軸及びＹ軸についての加速度成分データが「０ｇ」、Ｚ軸についての加速度成分データが「＋１ｇ」の状態から、運動検出装置２１０を重力方向へ１回振ったときの各軸についての加速度成分データを図１３（Ａ）に、Ｙ軸に沿った横方向へ１回振ったときの各軸についての加速度成分データを同図（Ｂ）に示す。図１３（Ａ）に示すように、重力方向に振った場合には、Ｚ軸についての加速度成分データの振幅が、Ｘ軸及びＹ軸についての加速度成分データの振幅に比べて大きくなっている。また、加速度成分データの値も、＋方向への変化が大きなっている。このことより、運動検出装置２１０がＺ軸＋方向に振られたことがわかる。
【００５４】
一方、図１３（Ｂ）に示すように、Ｙ軸方向に振った場合には、Ｙ軸についての加速度成分データだけでなく、Ｘ軸の加速度成分データについても振幅の向きは逆向きではあるが同程度の振幅が検出されている。このため、Ｙ軸方向に振ったにもかかわらず、Ｘ軸方向に振られたとの誤判定をする可能性がある。
【００５５】
そこで、第２の実施の形態では、振りの方向に対する確度の高い重力方向へ振ることを前提としている。
【００５６】
図１４を参照して、第２の実施の形態における運動検出処理ルーチンについて説明する。本ルーチンは、ＲＯＭ２２に記憶された運動検出プログラムをＣＰＵ２０が実行することにより行われる。なお、第１の実施の形態の運動検出装置１０における処理と同様の処理については、同一の符号を付して説明を省略する。
【００５７】
ステップ１００で、加速度分離処理を実行する。運動検出装置２１０がＺ軸＋方向を重力方向にして静止状態にある場合には、Ｘ軸及びＹ軸についての加速度成分データが「０ｇ」、Ｚ軸についての加速度成分データが「＋１ｇ」となり、Ｚ軸＋方向を重力方向として判定することができる。しかし、図７に示すように、運動検出装置２１０が振られた図中Ｓで示す箇所（○で囲んだ箇所）では、３軸の加速度成分データの各々が同程度の値を示している点が複数あり、この点においては、どの軸が重力方向に対応しているかを判定することができない。そこで、第１の実施の形態における加速度分離処理（図６）と同様に、加速度成分データを静止成分と動き成分とに分離する。
【００５８】
次に、ステップ２００で、加速度分離処理（図５）のステップ１２２で抽出された静止成分に基づいて、重力方向に対応する軸（以下、「重力軸」ともいう）及び方向を判定する。例えば、図８に示すような静止成分が抽出された場合には、Ｚ軸の静止成分が「＋１ｇ」を示しているため、Ｚ軸＋方向が重力方向であると判定される。
【００５９】
次に、ステップ２０２で、予め定めた大きさ以上の振りをシェイキングとして検出するシェイキング検出処理を実行する。ここで、図１５を参照して、シェイキング検出処理ルーチンについて説明する。
【００６０】
ステップ２２０で、図１４のステップ２００で重力軸と判定された軸について、加速度分離処理（図５）のステップ１２４で抽出された動き成分ａを時系列に観測開始する。
【００６１】
次に、ステップ２２２で、変数ｎに０をセットすると共に、シェイキング設定回数ｓを読み込む。変数ｎは、シェイキングの検出回数をカウントするための変数であり、シェイキングが１回検出される毎に１インクリメントされる。また、シェイキング設定回数ｓは、ｓ回の連続シェイキングが検出された場合に、１つの検出信号が出力されるようにするための設定値で、任意に設定可能である。ここでは、ｓ＝２の場合について説明する。
【００６２】
次に、ステップ２２４で、動き成分ａが、予め定めた＋方向の閾値Ｔｈｕ、または−方向の閾値Ｔｈｄのいずれかを超えたか否かを判定する。図１６に動き成分ａの時間変化の一部拡大図を示す。閾値Ｔｈｕ及び閾値Ｔｈｄは、予め定めた大きさ以上の振りをシェイキングとして検出するための値を設定しておく。いずれかを超えた場合には、ステップ２２６へ移行し、いずれも超えない場合には、ステップ２３２へ移行する。
【００６３】
ステップ２２６では、上記ステップ２２４で動き成分ａが閾値Ｔｈｕまたは閾値Ｔｈｄのいずれかを超えてから所定時間Δｔ以内に、前回超えたのとは逆の閾値Ｔｈｕまたは閾値Ｔｈｄを超えたか否かを判定する。すなわち、図１７に示すように、上記ステップ２２４で動き成分ａが閾値Ｔｈｕを超えた場合には、Δｔ以内に閾値Ｔｈｄを超えたか否かを判定する。また、上記ステップ２２４で動き成分ａが閾値Ｔｈｄを超えた場合には、Δｔ以内に閾値Ｔｈｕを超えたか否かを判定する。なお、Δｔは、シェイキング判定時間であり、誤判定防止のため、いずれかの閾値を超えてから他方の閾値を超えるまでの時間がΔｔを超えた場合には、シェイキングとして検出しないようにするための所定時間である。Δｔ以内に動き成分ａが逆の閾値Ｔｈｕまたは閾値Ｔｈｄを超えた場合には、ステップ２２８へ移行し、動き成分ａが逆の閾値Ｔｈｕまたは閾値Ｔｈｄを超えることなくΔｔを経過した場合には、ステップ２３２へ移行する。
【００６４】
ステップ２２８で、１回のシェイキングが検出されたことをカウントするために、変数ｎを１インクリメントして、ステップ２３０へ移行し、観測を終了するか否かを判定する。この判定は、例えば、動き成分ａが所定時間以上略０を示した場合を観測の終了とすることができる。観測を終了する場合は、ステップ２３４へ移行し、観測を終了しない場合には、ステップ２２６へ戻る。
【００６５】
一方、上記ステップ２２４及びステップ２２６で否定されてステップ２３２へ移行した場合には、観測を終了するか否かを判定し、観測を終了する場合には、ステップ２３４へ移行し、終了しない場合には、ステップ２２２へ戻る。
【００６６】
ステップ２３４では、検出されたシェイキングの回数ｎとシェイキング設定回数ｓとに基づいて検出結果を求めて、所定の記憶領域に一旦記憶する。ここでは、ｓ＝２であるので、検出結果は、検出されたシェイキングの回数ｎが２回であれば、検出信号１出力分となり、ｎが４回であれば、検出信号２出力分となる。また、ｎが３回や５回などの場合には、切り上げや切り捨てを行って検出結果を求める。また、ｎが１回の場合には、ｓ＝２を満たさないため、検出結果は”なし”となる。
【００６７】
なお、上記では１回の検出処理で複数出力分の検出信号が得られる場合について説明したが、１回の検出で１出力分の検出信号のみを検出するようにしてもよい。この場合には、上記ステップ２３０で、ｎ＝ｓとなった場合にも、観測を終了するようにするとよい。また、ここでは、連続シェイキングを検出する場合について説明したが、断続的なシェイキングの回数を検出するようにしてもよい。その場合、上記ステップ２３２で否定された場合には、変数ｎをリセットすることなく、ステップ２２４へ戻るようにするとよい。
【００６８】
次に、図１４のステップ１０４へ戻って、上記ステップ２００で判定された重力軸及び方向と、シェイキング検出処理（図９）のステップ２３４で記憶された検出結果とに基づいて検出信号を生成して出力する。
【００６９】
例えば、第２の実施の形態の運動検出装置２１０を携帯電話に設けた場合に、Ｚ軸＋方向に対応する面を下に向けて携帯電話をシェイキングしたときは音量をアップ、Ｚ軸−方向でのシェイキングは音量をダウン、Ｘ軸＋方向でのシェイキングはワンセグのチャンネル変更（進む）、Ｘ軸−方向でのシェイキングはワンセグのチャンネル変更（戻る）、Ｙ軸＋方向でのシェイキングはアドレス帳の次ページへ進む、Ｙ軸−方向でのシェイキングはアドレス帳の前ページへ戻る、などのように、種々の操作入力の内容とシェイキングの際に下向きになる軸方向とを対応付けておくことができる。従って、本ステップでは、この対応付けに応じた検出信号を出力する。例えば、Ｚ軸＋方向のシェイキングが検出された場合には、音量をアップさせるような検出信号とする。また、複数出力分の検出結果が得られた場合には、その出力分に応じてアップダウンの度合いを操作するような検出信号とする。例えば、上記のｓ＝２の例で、ｎ＝４のシェイキングが検出されて２出力分の検出結果が記憶されていた場合には、音量を２段階アップさせるような検出信号とする。
【００７０】
以上説明したように、第２の実施の形態の運動検出装置によれば、運動検出装置のいずれかの面を下にして重力方向に振った場合に、３軸加速度センサから取得した加速度成分データを、ローパスフィルタ処理して得られる静止成分と、取得した加速度成分データから静止成分を減算した動き成分とに分離し、静止成分に基づいて重力軸及び方向を判定すると共に、重力軸の動き成分に基づいてシェイキングを検出するため、いずれの軸方向が重力方向であるか、及び重力方向にどの程度シェイキングされたかを簡易な処理で正確に検出することができる。
【００７１】
なお、上記実施の形態では、３軸加速度センサとマイクロコンピュータとが一体となった場合について説明したが、３軸加速度センサのみを電子機器内に設け、マイクロコンピュータを電子機器の外部に設けるように構成してもよい。
【符号の説明】
【００７２】
１０、２１０  運動検出装置
１２   ３軸加速度センサ
１４   マイクロコンピュータ
２０   ＣＰＵ
２２   ＲＯＭ
２４   ＲＡＭ
２６   メモリ
【図１】
2011047879.tif 000003
【図２】
2011047879.tif 000004
【図３】
2011047879.tif 000005
【図４】
2011047879.tif 000006
【図５】
2011047879.tif 000007
【図６】
2011047879.tif 000008
【図７】
2011047879.tif 000009
【図８】
2011047879.tif 000010
【図９】
2011047879.tif 000011
【図１０】
2011047879.tif 000012
【図１１】
2011047879.tif 000013
【図１２】
2011047879.tif 000014
【図１３】
2011047879.tif 000015
【図１４】
2011047879.tif 000016
【図１５】
2011047879.tif 000017
【図１６】
2011047879.tif 000018
【図１７】
2011047879.tif 000019