本出願に係る電子機器、制御方法、及び制御プログラムを実施するための実施形態を、図面を参照しつつ詳細に説明する。以下では、携帯電子機器の例として、スマートフォンについて説明する。
(実施形態)
図1から図3を参照しながら、実施形態に係るスマートフォン1の全体的な構成について説明する。図1から図3に示すように、スマートフォン1は、ハウジング20を有する。ハウジング20は、フロントフェイス1Aと、バックフェイス1Bと、サイドフェイス1C1〜1C4とを有する。フロントフェイス1Aは、ハウジング20の正面である。バックフェイス1Bは、ハウジング20の背面である。サイドフェイス1C1〜1C4は、フロントフェイス1Aとバックフェイス1Bとを接続する側面である。以下では、サイドフェイス1C1〜1C4を、どの面であるかを特定することなく、サイドフェイス1Cと総称することがある。
スマートフォン1は、タッチスクリーンディスプレイ2と、ボタン3A〜3Cと、照度センサ4と、近接センサ5と、レシーバ7と、マイク8と、カメラ12とをフロントフェイス1Aに有する。スマートフォン1は、スピーカ11と、カメラ13とをバックフェイス1Bに有する。スマートフォン1は、ボタン3D〜3Fと、コネクタ14とをサイドフェイス1Cに有する。以下では、ボタン3A〜3Fを、どのボタンであるかを特定することなく、ボタン3と総称することがある。
タッチスクリーンディスプレイ2は、ディスプレイ2Aと、タッチスクリーン2Bとを有する。図1の例では、ディスプレイ2A及びタッチスクリーン2Bはそれぞれ略長方形状であるが、ディスプレイ2A及びタッチスクリーン2Bの形状はこれに限定されない。ディスプレイ2A及びタッチスクリーン2Bは、それぞれが正方形又は円形等のどのような形状もとりうる。図1の例では、ディスプレイ2A及びタッチスクリーン2Bは重ねて配置されているが、ディスプレイ2A及びタッチスクリーン2Bの配置はこれに限定されない。ディスプレイ2A及びタッチスクリーン2Bは、例えば、並べて配置されてもよいし、離して配置されてもよい。図1の例では、ディスプレイ2Aの長辺はタッチスクリーン2Bの長辺に沿っており、ディスプレイ2Aの短辺はタッチスクリーン2Bの短辺に沿っているが、ディスプレイ2A及びタッチスクリーン2Bの重ね方はこれに限定されない。ディスプレイ2Aとタッチスクリーン2Bとが重ねて配置される場合、例えば、ディスプレイ2Aの1ないし複数の辺がタッチスクリーン2Bのいずれの辺とも沿っていなくてもよい。
ディスプレイ2Aは、液晶ディスプレイ(LCD:Liquid Crystal Display)、有機ELディスプレイ(OELD:Organic Electro−Luminescence Display)、又は無機ELディスプレイ(IELD:Inorganic Electro−Luminescence Display)等の表示デバイスを備える。ディスプレイ2Aは、文字、画像、記号、及び図形等を表示する。
タッチスクリーン2Bは、タッチスクリーン2Bに対する指、ペン、又はスタイラスペン等の接触を検出する。タッチスクリーン2Bは、複数の指、ペン、又はスタイラスペン等がタッチスクリーン2Bに接触した位置を検出することができる。以下の説明では、タッチスクリーン2Bに対して接触する指、ペン、又はスタイラスペン等を、「接触オブジェクト」又は「接触物」と呼ぶことがある。
タッチスクリーン2Bの検出方式は、静電容量方式、抵抗膜方式、表面弾性波方式(又は超音波方式)、赤外線方式、電磁誘導方式、及び荷重検出方式等の任意の方式でよい。以下の説明では、説明を簡単にするため、利用者はスマートフォン1を操作するために指を用いてタッチスクリーン2Bに接触するものと想定する。
スマートフォン1は、タッチスクリーン2Bにより検出された接触、接触が検出された位置、接触が検出された位置の変化、接触が検出された間隔、及び接触が検出された回数の少なくとも1つに基づいてジェスチャの種別を判別する。ジェスチャは、タッチスクリーン2Bに対して行われる操作である。スマートフォン1によって判別されるジェスチャは、例えば、タッチ、ロングタッチ、リリース、スワイプ、タップ、ダブルタップ、ロングタップ、ドラッグ、フリック、ピンチイン、及びピンチアウトを含むがこれらに限定されない。
「タッチ」は、タッチスクリーン2Bに指が触れるジェスチャである。スマートフォン1は、タッチスクリーン2Bに指が接触するジェスチャをタッチとして判別する。「ロングタッチ」は、タッチスクリーン2Bに指が一定時間より長く触れるジェスチャである。スマートフォン1は、タッチスクリーン2Bに指が一定時間より長く接触するジェスチャをロングタッチとして判別する。
「リリース」は、指がタッチスクリーン2Bから離れるジェスチャである。スマートフォン1は、指がタッチスクリーン2Bから離れるジェスチャをリリースとして判別する。「スワイプ」は、指がタッチスクリーン2Bに接触したままで移動するジェスチャである。スマートフォン1は、指がタッチスクリーン2Bに接触したままで移動するジェスチャをスワイプとして判別する。
「タップ」は、タッチに続いてリリースをするジェスチャである。スマートフォン1は、タッチに続いてリリースをするジェスチャをタップとして判別する。「ダブルタップ」は、タッチに続いてリリースをするジェスチャが2回連続するジェスチャである。スマートフォン1は、タッチに続いてリリースをするジェスチャが2回連続するジェスチャをダブルタップとして判別する。
「ロングタップ」は、ロングタッチに続いてリリースをするジェスチャである。スマートフォン1は、ロングタッチに続いてリリースをするジェスチャをロングタップとして判別する。「ドラッグ」は、移動可能なオブジェクトが表示されている領域を始点としてスワイプをするジェスチャである。スマートフォン1は、移動可能なオブジェクトが表示されている領域を始点としてスワイプをするジェスチャをドラッグとして判別する。
「フリック」は、指が、タッチスクリーン2Bに触れた後移動しながらタッチスクリーン2Bから離れるジェスチャである。すなわち、「フリック」は、タッチに続いて指が移動しながらリリースが行われるジェスチャである。スマートフォン1は、指が、タッチスクリーン2Bに触れた後移動しながらタッチスクリーン2Bから離れるジェスチャをフリックとして判別する。フリックは、指が一方方向へ移動しながら行われることが多い。フリックは、指が画面の上方向へ移動する「上フリック」、指が画面の下方向へ移動する「下フリック」、指が画面の右方向へ移動する「右フリック」、指が画面の左方向へ移動する「左フリック」等を含む。フリックにおける指の移動は、スワイプにおける指の移動よりも素早いことが多い。
「ピンチイン」は、複数の指が互いに近付く方向にスワイプするジェスチャである。スマートフォン1は、タッチスクリーン2Bにより検出されるある指の位置と他の指の位置との間の距離が短くなるジェスチャをピンチインとして判別する。「ピンチアウト」は、複数の指が互いに遠ざかる方向にスワイプするジェスチャである。スマートフォン1は、タッチスクリーン2Bにより検出されるある指の位置と他の指の位置との間の距離が長くなるジェスチャをピンチアウトとして判別する。
以下の説明では、1本の指により行われるジェスチャを「シングルタッチジェスチャ」と呼び、2本以上の指により行われるジェスチャを「マルチタッチジェスチャ」と呼ぶことがある。マルチタッチジェスチャは、例えば、ピンチインおよびピンチアウトを含む。タップ、フリックおよびスワイプ等は、1本の指で行われればシングルタッチジェスチャであり、2本以上の指で行われればマルチタッチジェスチャである。
スマートフォン1は、タッチスクリーン2Bを介して判別するこれらのジェスチャに従って動作を行う。このため、利用者にとって直感的で使いやすい操作性が実現される。判別されるジェスチャに従ってスマートフォン1が行う動作は、ディスプレイ2Aに表示されている画面に応じて異なることがある。以下の説明では、説明を簡単にするために、「タッチスクリーン2Bが接触を検出し、検出された接触に基づいてジェスチャの種別をスマートフォン1がXと判別すること」を、「スマートフォンがXを検出する」、又は「コントローラがXを検出する」と記載することがある。
図4は、スマートフォン1のブロック図である。スマートフォン1は、タッチスクリーンディスプレイ2と、ボタン3と、照度センサ4と、近接センサ5と、通信ユニット6と、レシーバ7と、マイク8と、ストレージ9と、コントローラ10と、スピーカ11と、カメラ12及び13と、コネクタ14と、加速度センサ15と、方位センサ16と、ジャイロスコープ17と、気圧センサ19とを有する。
タッチスクリーンディスプレイ2は、上述したように、ディスプレイ2Aと、タッチスクリーン2Bとを有する。ディスプレイ2Aは、文字、画像、記号、又は図形等を表示する。タッチスクリーン2Bは、接触を検出する。コントローラ10は、スマートフォン1に対するジェスチャを検出する。具体的には、コントローラ10は、タッチスクリーン2Bと協働することによって、タッチスクリーン2B(タッチスクリーンディスプレイ2)に対する操作(ジェスチャ)を検出する。
ボタン3は、利用者によって操作される。ボタン3は、ボタン3A〜ボタン3Fを有する。コントローラ10はボタン3と協働することによってボタン3に対する操作を検出する。ボタン3に対する操作は、例えば、クリック、ダブルクリック、トリプルクリック、プッシュ、及びマルチプッシュを含むが、これらに限定されない。
ボタン3A〜3Cは、例えば、ホームボタン、バックボタン又はメニューボタンである。ボタン3Dは、例えば、スマートフォン1のパワーオン/オフボタンである。ボタン3Dは、スリープ/スリープ解除ボタンを兼ねてもよい。ボタン3E及び3Fは、例えば、音量ボタンである。
照度センサ4は、スマートフォン1の周囲光の照度を検出する。照度は、光の強さ、明るさ、又は輝度を示す。照度センサ4は、例えば、ディスプレイ2Aの輝度の調整に用いられる。近接センサ5は、近隣の物体の存在を非接触で検出する。近接センサ5は、磁界の変化又は超音波の反射波の帰還時間の変化等に基づいて物体の存在を検出する。近接センサ5は、例えば、タッチスクリーンディスプレイ2が顔に近付けられたことを検出する。照度センサ4及び近接センサ5は、一つのセンサとして構成されていてもよい。照度センサ4は、近接センサとして用いられてもよい。
通信ユニット6は、無線により通信する。通信ユニット6によってサポートされる通信方式は、無線通信規格である。無線通信規格として、例えば、2G、3G、4G等のセルラーフォンの通信規格がある。セルラーフォンの通信規格として、例えば、LTE(Long Term Evolution)、W−CDMA(Wideband Code Division Multiple Access)、CDMA2000、PDC(Personal Digital Cellular)、GSM(登録商標)(Global System for Mobile Communications)、PHS(Personal Handy−phone System)等がある。無線通信規格として、さらに、例えば、WiMAX(Worldwide Interoperability for Microwave Access)、IEEE802.11、Bluetooth(登録商標)、IrDA(Infrared Data Association)、NFC(Near Field Communication)等がある。通信ユニット6は、上述した通信規格の1つ又は複数をサポートしていてもよい。
レシーバ7及びスピーカ11は、音出力部である。レシーバ7及びスピーカ11は、コントローラ10から送信される音信号を音として出力する。レシーバ7は、例えば、通話時に相手の声を出力するために用いられる。スピーカ11は、例えば、着信音及び音楽を出力するために用いられる。レシーバ7及びスピーカ11の一方が、他方の機能を兼ねてもよい。マイク8は、音入力部である。マイク8は、利用者の音声等を音信号へ変換してコントローラ10へ送信する。
ストレージ9は、プログラム及びデータを記憶する。ストレージ9は、コントローラ10の処理結果を一時的に記憶する作業領域としても利用される。ストレージ9は、半導体記憶媒体、及び磁気記憶媒体等の任意の非一過的(non−transitory)な記憶媒体を含んでよい。ストレージ9は、複数の種類の記憶媒体を含んでよい。ストレージ9は、メモリカード、光ディスク、又は光磁気ディスク等の可搬の記憶媒体と、記憶媒体の読み取り装置との組み合わせを含んでよい。ストレージ9は、RAM(Random Access Memory)等の一時的な記憶領域として利用される記憶デバイスを含んでよい。
ストレージ9に記憶されるプログラムには、フォアグランド又はバックグランドで実行されるアプリケーションと、アプリケーションの動作を支援する制御プログラムとが含まれる。アプリケーションは、例えば、ディスプレイ2Aに画面を表示させ、タッチスクリーン2Bを介して検出されるジェスチャに応じた処理をコントローラ10に実行させる。制御プログラムは、例えば、OSである。アプリケーション及び制御プログラムは、通信ユニット6による無線通信又は非一過的な記憶媒体を介してストレージ9にインストールされてもよい。
ストレージ9は、例えば、制御プログラム9A、算出アプリケーション9B、加速度データ9W、気圧データ9X、状態データ9Y、及び設定データ9Zを記憶する。算出アプリケーション9Bは、例えば、スマートフォン1を所持する利用者の移動時におけるエネルギ消費量を算出するための機能を提供する。加速度データ9Wは、スマートフォン1に作用する加速度を示す情報を含む。気圧データ9Xは、スマートフォン1に作用する気圧を示す情報を含む。状態データ9Yは、スマートフォン1の利用者の移動状態を示す情報を含む。設定データ9Zは、スマートフォン1の動作に関する各種の設定に関する情報を含む。
制御プログラム9Aは、スマートフォン1を稼働させるための各種制御に関する機能を提供する。制御プログラム9Aは、例えば、通信ユニット6、レシーバ7、及びマイク8等を制御することによって、通話を実現させる。制御プログラム9Aが提供する機能には、タッチスクリーン2Bを介して検出されたジェスチャに応じて、ディスプレイ2Aに表示されている情報を変更する等の各種制御を行う機能が含まれる。制御プログラム9Aが提供する機能には、加速度センサ15及び気圧センサ19等を制御することによって、スマートフォン1を所持する利用者の移動、停止等を検出する機能が含まれる。制御プログラム9Aが提供する機能は、算出アプリケーション9B等の他のプログラムが提供する機能と組み合わせて利用されることがある。
制御プログラム9Aは、加速度センサ15が検出した加速度の値に基づいて、スマートフォン1(自機)を所持している利用者(対象物)が所定の移動方法で移動しているかを判定するための機能を提供する。移動方法としては、例えば、利用者が自力で移動する第1移動方法と、利用者が移動体によって移動される第2移動方法とを含む。第1移動方法としては、例えば、徒歩、ランニング、自転車等によって利用者が自力で移動する方法を含む。第2移動方法としては、例えば、自動車、電車、エレベーター、エスカレーター等の移動体によって利用者が移動される方法を含む。制御プログラム9Aは、加速度センサ15が検出した加速度の値に基づいて、利用者が移動していることを判定して、スマートフォン1の移動を判定する。
算出アプリケーション9Bは、例えば、利用者のエネルギ消費量を算出するために用いられる。算出アプリケーション9Bは、例えば、利用者の移動速度(歩数)とエネルギ消費量との関係式に、利用者の移動速度を当てはめて、利用者の消費量を算出するための機能を提供する。この利用者のエネルギ消費量は、利用者の移動方法を考慮して算出してもよい。例えば、利用者が同じ歩数を歩いた場合に、算出アプリケーション9Bは、利用者が歩きおよび走行のいずれかに応じて、エネルギ消費量の関係式を変更してもよい。この利用者のエネルギ消費量は、利用者の移動環境を考慮して算出してもよい。例えば、利用者が同じ歩数を歩いた場合に、算出アプリケーション9Bは、利用者が歩いている道が平坦であるか、上り坂であるかに応じて、エネルギ消費量の関係式を変更してもよい。このエネルギ消費量としては、例えば、日本国の計量法に基づいて「人若しくは動物が摂取する物の熱量又は人若しくは動物が代謝により消費する熱量の計量」として熱力学カロリー(cal)が採用される。エネルギ消費量の計量はこれに限られるものではなく、CGPM(Conference General des Poids et Mesures)に基づいてジュール(J)が採用されてもよい。
算出アプリケーションが算出する対象は、利用者のエネルギ消費量に限定されるものではなく、利用者のエクササイズ、歩行によって移動した際の歩数などを算出してもよい。「エクササイズ」とは、身体活動の量を表す単位である。エクササイズは、後述するメッツに身体活動の実施時間を乗じて算出される運動の量である。このメッツとは、身体活動の強さを表す単位である。この身体活動の強さは、身体活動の種類ごとに異なる。メッツは、例えば使用者の移動方法ごとに設定される。メッツは、活動量を示す活動ファクタであるエネルギ消費量の演算に用いてもよい。メッツでは、安静時の身体活動の強さに対する比として表される。例えば、座って安静にしている状態が1メッツ、普通歩行が3メッツに相当するとされる。つまり、普通歩行の身体活動の強さは、安静時の身体活動の強さに対して、3倍であることを意味する。
加速度データ9Wには、複数の加速度情報が時系列的に記憶される。加速度情報は、時間と、加速度の値といった項目を含む。時間は、加速度センサ15によって加速度を検出した時間を示す。加速度の値は、加速度センサ15によって検出した加速度の値を示す。
気圧データ9Xには、複数の気圧情報が時系列的に記憶される。気圧情報は、時間と、気圧の値と、気圧の変化量といった項目を含む。時間は、気圧センサ19によって気圧を検出した時間を示す。気圧の値は、気圧センサ19によって検出した気圧の値を示す。気圧の変化量は、気圧センサ19によって検出した気圧の単位時間当たりの変化量を示す。
状態データ9Yには、複数の状態情報が記憶される。状態データ9Yの詳細については、後述する。
設定データ9Zは、スマートフォン1の移動に関する判定を行うための判定条件データを含む。判定条件データは、制御プログラム9Aが加速度センサ15によって検出した加速度の値に基づいて、自機(スマートフォン1)を所持している利用者が所定の移動方法で移動しているかを判定するための条件を含む。例えば、判定条件データには、所定の移動方法で移動しているときにスマートフォン1に加わる加速度の方向及び大きさに基づく加速度の振動パターン、加速度の方向及び大きさの範囲等が含まれる。
コントローラ10は、演算処理装置である。演算処理装置は、例えば、CPU(Central Processing Unit)、SoC(System−on−a−chip)、MCU(Micro Control Unit)、FPGA(Field−Programmable Gate Array)、及びコプロセッサを含むが、これらに限定されない。コントローラ10は、スマートフォン1の動作を統括的に制御して各種の機能を実現する。
具体的には、コントローラ10は、ストレージ9に記憶されているデータを必要に応じて参照しつつ、ストレージ9に記憶されているプログラムに含まれる命令を実行する。そして、コントローラ10は、データ及び命令に応じて機能部を制御し、それによって各種機能を実現する。機能部は、例えば、ディスプレイ2A、通信ユニット6、レシーバ7、及びスピーカ11を含むが、これらに限定されない。コントローラ10は、検出部の検出結果に応じて、制御を変更することがある。検出部は、例えば、タッチスクリーン2B、ボタン3、照度センサ4、近接センサ5、マイク8、カメラ12、カメラ13、加速度センサ15、方位センサ16、ジャイロスコープ17、及び気圧センサ19を含むが、これらに限定されない。
コントローラ10は、例えば、制御プログラム9Aを実行することにより、タッチスクリーン2Bを介して検出されたジェスチャに応じて、ディスプレイ2Aに表示されている情報を変更する等の各種制御を実行する。
カメラ12は、フロントフェイス1Aに面している物体を撮影するインカメラである。カメラ13は、バックフェイス1Bに面している物体を撮影するアウトカメラである。
コネクタ14は、他の装置が接続される端子である。コネクタ14は、USB(Universal Serial Bus)、HDMI(登録商標)(High−Definition Multimedia Interface)、ライトピーク(サンダーボルト(登録商標))、イヤホンマイクコネクタのような汎用的な端子であってもよい。コネクタ14は、Dockコネクタのような専用の端子でもよい。コネクタ14に接続される装置は、例えば、外部ストレージ、スピーカ、及び通信装置を含むが、これらに限定されない。
加速度センサ15は、スマートフォン1に働く加速度の方向及び大きさを検出する。方位センサ16は、地磁気の向きを検出する。ジャイロスコープ17は、スマートフォン1の角度及び角速度を検出する。気圧センサ19は、スマートフォン1に作用する気圧を検出する。加速度センサ15、方位センサ16、ジャイロスコープ17、及び気圧センサ19の検出結果は、スマートフォン1の位置及び姿勢の変化を検出するために、組み合わせて利用される。
図4においてストレージ9が記憶するプログラム及びデータの一部又は全部は、通信ユニット6による無線通信で他の装置からダウンロードされてもよい。図4においてストレージ9が記憶するプログラム及びデータの一部又は全部は、ストレージ9に含まれる読み取り装置が読み取り可能な非一過的な記憶媒体に記憶されていてもよい。図4においてストレージ9が記憶するプログラム及びデータの一部又は全部は、コネクタ14に接続される読み取り装置が読み取り可能な非一過的な記憶媒体に記憶されていてもよい。非一過的な記憶媒体は、例えば、CD(登録商標)、DVD(登録商標)、Blu−ray(登録商標)等の光ディスク、光磁気ディスク、磁気記憶媒体、メモリカード、及びソリッドステート記憶媒体を含むが、これらに限定されない。
図4に示したスマートフォン1の構成は例であり、本発明の要旨を損なわない範囲において適宜変更してよい。例えば、ボタン3の数と種類は図4の例に限定されない。スマートフォン1は、画面に関する操作のためのボタンとして、ボタン3A〜3Cに代えて、テンキー配列又はQWERTY配列等のボタンを備えていてもよい。スマートフォン1は、画面に関する操作のために、ボタンを1つだけ備えてもよいし、ボタンを備えなくてもよい。図4に示した例では、スマートフォン1が2つのカメラを備えるが、スマートフォン1は、1つのカメラのみを備えてもよいし、カメラを備えなくてもよい。図4に示した例では、スマートフォン1が位置及び姿勢を検出するために4種類のセンサを備えるが、スマートフォン1は、このうちいくつかのセンサを備えなくてもよい。あるいは、スマートフォン1は、位置及び姿勢の少なくとも1つを検出するための他の種類のセンサを備えてもよい。
次に、スマートフォン1による移動状態及び高度変化の検出に関する制御の例について説明する。
スマートフォン1のコントローラ10は、加速度センサ15に加速度を検出させ、気圧センサ19に気圧を検出させる。そして、加速度センサ15は、軸(例えばx軸、y軸、z軸)ごとの加速度の値を電流値としてコントローラ10に出力する。気圧センサ19は、気圧の値を電流値としてコントローラ10に出力する。
一般に、気圧の値は、高度が低いほど高く、高度が高いほど低い。そして、気圧の変動は、日々刻々と変化量も異なり、一概に規定することが難しい。そして、図5は、スマートフォン1が検出したある1日の大気圧の推移を示す図である。図5は、スマートフォン1が静止した状態で、高度の変化がない雨の日に、当該スマートフォン1によって検出された大気圧の推移を示している。
図5に示すように、大気圧は、1日を通して、1008[hPa]から1000[hPa]に変化している。8[hPa]の気圧変化が高度の変化によって生じたとすると、80[m]の高度変化に相当する。図5に示すように大気圧が変化している間に、利用者が移動していると、スマートフォン1は、検出した気圧の変化に基づいて算出した高度の変化に、大気圧の変動による80[m]の誤差が含まれてしまうおそれがある。スマートフォン1は、静止している状態であれば、大気の変動による気圧の変動を精度よく検出することができる。そこで、本実施形態のスマートフォン1は、利用者が静止している状態における大気の変動に応じた気圧の変化量を算出し、算出した気圧の変化量に基づいて、利用者が移動している状態における気圧の変化量を補正する。スマートフォン1は、大気変動によって算出した高度変化に誤差が生じるのを低減することができる。
図6を参照しながら、スマートフォン1による気圧の検出に関する制御の例について説明する。図6は、気圧と時間と移動状態との関係の例を説明するための図である。
スマートフォン1は、所定の時間ごとに、加速度センサ15によって検出された加速度の値に基づいて、スマートフォン1を所持する利用者(対象者)の移動状態を判定する。所定の時間は、加速度及び気圧を検出するために定められたサンプリングの間隔を示す時間である。移動状態は、利用者が移動している歩行状態と、利用者が移動していない静止状態とを含む。
スマートフォン1は、所定の時間ごとに加速度の値を検出すると、検出した加速度に基づいて、利用者が静止しているか、歩行(移動)しているかを判定する。スマートフォン1は、設定データ9Zの判定条件データを参照し、加速度センサ15の加速度が、歩行しているときにスマートフォン1に加わる加速度の方向及び大きさに基づく加速度パターンに一致するかを判定する。スマートフォン1は、加速度パターンに一致している場合、利用者が歩行していると判定し、加速度パターンに一致していない場合、利用者が静止していると判定する。スマートフォン1は、判定結果を示す移動状態にタイムスタンプを付加して状態データ9Yに記憶する。
本実施形態では、スマートフォン1は、利用者が静止しているか、歩行しているかを判別する場合について説明するが、これに限定されない。例えば、スマートフォン1は、歩行以外の移動状態を判別するようにしてもよい。歩行以外の移動状態としては、例えば、ランニング、自転車、車、電車、エレベーター、エスカレーターを含む。
スマートフォン1は、所定の時間ごとに、気圧センサ19によって検出された気圧の値に基づいて、所定時間当たりの気圧の変化量を算出する。スマートフォン1は、気圧の値と算出した気圧の変化量とにタイムスタンプを付加し、気圧情報として気圧データ9Xに記憶する。
図6に示すように、時間t0から時間t1において、利用者は静止状態であり、気圧はなだらかに上昇している。時間t1において、スマートフォン1は、加速度センサ15によって検出された加速度の値と判定条件データに基づいて、利用者が静止状態であると判別する。スマートフォン1は、気圧センサ19によって検出された気圧の値に基づいて、単位時間当たりの気圧の第1変化量ΔP1/Δtを算出し、算出した第1変化量ΔP1/Δtにタイムスタンプを付加して気圧データ9Xに記憶する。気圧の第1変化量は、利用者が静止状態である場合の気圧の変化量を示している。
図6に示す例では、時間t0から時間t1において、利用者が静止状態である場合、スマートフォン1が検出する気圧の変化量には、高度の変化による気圧の変化量は含まれない。これにより、スマートフォン1は、第1変化量ΔP1/Δtを、大気の変動に対応した気圧の変動量として検出する。
時間t1から時間t2において、利用者は、なだらかな上り坂を歩行している。時間t2において、スマートフォン1は、加速度センサ15によって検出された加速度の値と判定条件データに基づいて、利用者が歩行状態であると判別する。スマートフォン1は、気圧センサ19によって検出された気圧の値に基づいて、単位時間当たりの気圧の第2変化量ΔP2/Δtを算出し、算出した第2変化量ΔP2/Δtにタイムスタンプを付加して気圧データ9Xに記憶する。第2変化量は、利用者が歩行状態である場合の気圧の変化量を示している。
図6に示す例では、時間t1から時間t2において、利用者は歩行状態であり、気圧はほとんど変化していない。そして、所定の時間が経過しただけでは、大気圧が急激に変化する可能性は低い。すなわち、時間t1から時間t2における大気による気圧の変化量は、時間t0から時間t1における第1変化量ΔP1/Δtと同等である可能性が高い。これにより、スマートフォン1は、今回検出した歩行時の気圧の第2変化量ΔP2/Δtが、静止時の気圧の第1変化量ΔP1/Δtよりも小さい場合、高度の変化による気圧の変化はなく、平坦な環境を歩行していると判断する。そして、スマートフォン1は、歩行時の気圧の第2変化量ΔP2/Δtから静止時の気圧の第1変化量ΔP1/Δtを差し引くことで、第2変化量ΔP2/Δtを補正する。すなわち、歩行時の気圧の第2変化量ΔP2/Δtは、歩行時の気圧の変化量から静止時の気圧の変動量を減じた値になっている。
本実施形態では、スマートフォン1は、気圧の第2変化量ΔP2/Δtと直前の静止時の変化量ΔP1/Δtとを比較し、比較結果に基づいて利用者の高度に変化が生じているかを推定する。気圧の値は、高度が低いほど高く、高度が高いほど低い。これにより、スマートフォン1は、歩行中の気圧の変化量が静止時の気圧の変化量(変動量)よりも小さい場合、利用者が上り坂を歩行していると推定する。スマートフォン1は、歩行中の気圧の変化量が静止時の気圧の変化量よりも大きい場合、利用者が下り坂を歩行していると推定する。
スマートフォン1は、歩行中の気圧の第2変化量ΔP2/Δtと静止時の気圧の第1変化量ΔP1/Δtとの差が、坂道判定閾値を超えない場合、なだらかな坂道と判定する。スマートフォン1は、第2変化量ΔP2/Δtと第1変化量ΔP1/Δtとの差が、坂道判定閾値を超える場合、急な坂道と判定する。坂道判定閾値は、例えば、坂道を歩行した場合に利用者の消費量に影響を及ぼす高度、坂道の傾斜角等に基づいて設定される。
図6に示す例では、時間t1から時間t2において、歩行中の気圧の第2変化量ΔP2/Δtが直前の静止時の第1変化量ΔP1/Δtよりも小さい。これにより、スマートフォン1は、利用者がなだらかな上り坂を歩行していると判定する。しかし、なだらかな坂道は、利用者の消費量に影響を及ぼさない。これにより、スマートフォン1は、利用者の移動環境を「平坦」とし、加速度値に紐付けて状態データ9Yに記憶する。
本実施形態では、スマートフォン1は、上り坂及び下り坂がなだらかであるか、急であるかを判別する場合について説明するが、これに限定しない。例えば、スマートフォン1は、利用者が歩行している移動環境が、上り坂であるか下り坂であるか、坂道であるか否かを判定するように構成されてもよい。
時間t2から時間t3において、利用者は、急な下り坂を歩行している。時間t3において、スマートフォン1は、加速度センサ15によって検出された加速度の値と判定条件データに基づいて、利用者が歩行状態であると判別する。スマートフォン1は、気圧センサ19によって検出された気圧の値に基づいて、単位時間当たりの気圧の第2変化量ΔP3/Δtを算出し、算出した第2変化量ΔP3/Δtにタイムスタンプを付加して気圧データ9Xに記憶する。そして、スマートフォン1は、歩行時の気圧の第2変化量ΔP3/Δtが静止時の第1変化量ΔP1/Δtよりも大きく、その差が坂道判定閾値を超えていることを検出する。これにより、スマートフォン1は、利用者が急な下り坂を歩行していると判定し、利用者の移動環境を「坂道」とし、加速度値に紐付けて状態データ9Yに記憶する。
時間t3から時間t4において、利用者は、なだらかな下り坂を歩行している。時間t4において、スマートフォン1は、加速度センサ15によって検出された加速度の値と判定条件データに基づいて、利用者が歩行状態であると判別する。スマートフォン1は、気圧センサ19によって検出された気圧の値に基づいて、単位時間当たりの気圧の第2変化量ΔP4/Δtを算出し、算出した第2変化量ΔP4/Δtにタイムスタンプを付加して気圧データ9Xに記憶する。そして、スマートフォン1は、気圧の第2変化量ΔP4/Δtが静止時の第1変化量ΔP1/Δtとほぼ等しいことを検出する。これにより、スマートフォン1は、利用者が平地を歩行していると判定し、利用者の移動環境を「平坦」とし、加速度値に紐付けて状態データ9Yに記憶する。
時間t4から時間t5において、利用者は歩行を止めて静止しており、気圧は上昇していない。時間t5において、スマートフォン1は、加速度センサ15によって検出された加速度の値と判定条件データに基づいて、利用者が静止状態であると判別する。スマートフォン1は、気圧センサ19によって検出された気圧の値に基づいて、単位時間当たりの気圧の第1変化量ΔP5/Δtを算出し、算出した第1変化量ΔP5/Δtにタイムスタンプを付加して気圧データ9Xに記憶する。以降、スマートフォン1は、単位時間ごとに上述した処理を行う。
このように、スマートフォン1は、利用者の移動前の静止時における気圧の変化量に基づいて、利用者が移動しているときの気圧の変化量を補正し、補正した気圧の変化量に基づいて利用者の高度変化を算出する。これにより、スマートフォン1は、利用者の高度が変化している場合に、気圧の変化に対する大気の変化の影響を低減することができる。その結果、スマートフォン1は、利用者の移動時における高度変化を算出する精度を向上することができる。さらに、スマートフォン1は、その高度変化に基づいて利用者の移動環境を判別することにより、移動環境を判別する精度も向上することができる。
次に、図7を参照しながら、状態データ9Yについて説明する。図7は、状態データ9Yの例を示す図である。図7に示すように、状態データ9Yには、所定時間ごとの状態情報が記憶される。状態情報は、時間と、移動状態と、移動環境といった項目を含む。時間は、加速度及び気圧を検出した時間を示す。移動状態は、スマートフォン1を所持する利用者の移動状態を示す。移動環境は、歩行している利用者の環境を示す。
図7に示す例では、状態データ9Yは、上記の時間t1から時間t5に対応する状態情報を含む。図7に示す例では、時間t1、時間t2、時間t3、時間t4、時間t5の移動状態として、それぞれ、「静止」、「歩行」、「歩行」、「歩行」、「静止」が設定されている。時間t2、時間t3、時間t4の移動環境として、それぞれ、「平坦」、「坂道」、「平坦」が設定されている。そして、時間t1及び時間t5の移動状態は、静止であるため、移動環境としては、何も設定されていない。
状態情報は、図7に示す例に限定されない。例えば、状態情報は、移動環境が歩行の場合に、坂道が上り坂、下り坂等であるかを捕捉する項目を含んでもよい。例えば、状態情報は、時間ごとの気圧の変化量、高度の変化量、利用者の消費量(カロリー)等の他の項目を含んでもよい。
次に、スマートフォン1が利用者の消費量を算出する場合の例について説明する。スマートフォン1は、算出アプリケーション9Bを実行し、単位時間ごとの加速度値に基づいて利用者の移動速度を推定する。例えば、スマートフォン1は、上下方向の加速度値に基づいて利用者の歩数を算出し、算出した歩数から移動速度を推定する。スマートフォン1は、単位時間ごとの気圧の変化量を高度算出式に当てはめて、歩行時における利用者の高度変化を算出する。高度算出式は、気圧の変化量から高度変化を算出するための算出式である。そして、スマートフォン1は、補正された気圧データ9Xと、状態データ9Yと、利用者の移動環境、高度変化等に対応する移動速度と消費量との関係を示す関係式とに基づいて、利用者の消費量を算出する。これにより、スマートフォン1は、大気の変化による気圧の変化が減じられた利用者の高度変化を考慮することで、消費量の算出精度を向上することができる。
図8を参照しながら、スマートフォン1による制御の処理手順について説明する。図8は、スマートフォン1による制御の例の処理手順を示すフローチャートである。図8に示す処理手順は、コントローラ10が制御プログラム9Aを実行することによって実現される。図8に示す処理手順は、所定の時間ごとに繰り返し実行される。
図8に示すように、スマートフォン1のコントローラ10は、ステップS101として、加速度センサ15に加速度を検出させ、加速度センサ15によって検出された加速度の値を示す加速度情報にタイムスタンプを付加して加速度データ9Wに記憶する。コントローラ10は、ステップS102として、気圧センサ19に気圧を検出させ、気圧センサ19によって検出された気圧の値を示す気圧情報にタイムスタンプを付加して気圧データ9Xに記憶する。
コントローラ10は、ステップS103として、取得した加速度情報と判定条件データに基づいて、利用者の移動状態を判別する。具体的には、コントローラ10は、利用者が歩行状態であるか、静止状態であるかを判別する。歩行状態ではない、すなわち、静止状態である場合(ステップS104,No)、コントローラ10は、ステップS105に進む。
コントローラ10は、ステップS105として、気圧データ9Xに基づいて、静止時の気圧の第1変化量を算出する。そして、コントローラ10は、ステップS106として、タイムスタンプを付加して、第1変化量をストレージ9に記憶する。そして、コントローラ10は、ステップS107として、第1変化量に基づいて高度変化を算出してストレージ9に記憶する。高度変化としては、例えば、高度の変化量、変化した高度の値を含む。その後、コントローラ10は、図8に示す処理手順を終了させる。
歩行状態である場合(ステップS104,Yes)、コントローラ10は、ステップS108に進む。コントローラ10は、ステップS108として、移動時の気圧の第2変化量を算出する。そして、コントローラ10は、ステップS109として、第1変化量と第2変化量とに基づいて歩行中の利用者の移動環境を判別する。そして、コントローラ10は、ステップS110として、第1変化量に基づいて第2変化量を補正する。具体的には、コントローラ10は、第2変化量から第1変化量を差し引くことで、移動時の気圧の変化量から静止時の気圧変動分を減じる。
続いて、コントローラ10は、ステップS111として、タイムスタンプを付加した第2変化量に移動環境を紐付けて気圧データ9Xに記憶する。そして、コントローラ10は、ステップS112として、補正した第2変化量に基づいて高度変化を算出してストレージ9に記憶する。その後、コントローラ10は、図8に示す処理手順を終了させる。
上記の実施形態では、スマートフォン1は、加速度及び気圧を検出するごとに、単位時間当たりの高度の変化を算出する場合について説明したが、これに限定されない。例えば、スマートフォン1は、利用者の移動が終了した後に、移動中の気圧の変化量に基づいて高度変化を算出するように構成されてもよい。
本出願の開示する実施形態は、発明の要旨及び範囲を逸脱しない範囲で変更することができる。さらに、本出願の開示する実施形態及びその変形例は、適宜組み合わせることができる。例えば、上記の実施形態は、以下のように変形してもよい。
例えば、図4に示した各プログラムは、複数のモジュールに分割されていてもよいし、他のプログラムと結合されていてもよい。
上記の実施形態において、スマートフォン1は、利用者が静止状態と歩行状態では異なる間隔で加速度及び気圧を検出するように変形してもよい。図9を参照しながら、スマートフォン1による制御の処理手順の第1の変形例について説明する。図9は、スマートフォン1による制御の第1の変形例の処理手順を示すフローチャートである。図9に示す処理手順は、コントローラ10が制御プログラム9Aを実行することによって実現される。以下の説明においては、重複する説明は省略することがある。
図9に示すように、スマートフォン1のコントローラ10は、ステップS201として、加速度センサ15に加速度を検出させ、加速度センサ15によって検出された加速度の値を示す加速度情報にタイムスタンプを付加して加速度データ9Wに記憶する。コントローラ10は、ステップS202として、気圧センサ19に気圧を検出させ、気圧センサ19によって検出された気圧の値を示す気圧情報にタイムスタンプを付加して気圧データ9Xに記憶する。
コントローラ10は、ステップS203として、取得した加速度情報と判定条件データに基づいて、利用者の移動状態を判別する。歩行状態ではない、すなわち、静止状態である場合(ステップS204,No)、コントローラ10は、ステップS205に進む。
コントローラ10は、ステップS205として、気圧データ9Xに基づいて、静止時の気圧の第1変化量を算出する。そして、コントローラ10は、ステップS206として、タイムスタンプを付加して、第1変化量をストレージ9に記憶する。そして、コントローラ10は、ステップS207として、加速度センサ15及び気圧センサ19の検出時間に第2間隔を設定する。第2間隔は、利用者が静止状態の場合に気圧変動をモニタリングする時間である。具体的には、コントローラ10は、次に加速度及び気圧を検出する検出時間が第2間隔となるように設定する。そして、コントローラ10は、ステップS208として、第1変化量に基づいて高度変化を算出してストレージ9に記憶する。その後、コントローラ10は、ステップS215に進む。
コントローラ10は、ステップS215として、検出時間であるかを判定する。検出時間である場合(ステップS215,Yes)、コントローラ10は、ステップS201に戻る。検出時間ではない場合(ステップS215,No)、コントローラ10は、ステップS216に進む。
コントローラ10は、ステップS216において、終了するかを判定する。例えば、コントローラ10は、スマートフォン1の電源オフの操作を検出した場合に、終了すると判定する。終了ではない場合(ステップS216,No)、コントローラ10は、ステップS215に戻る。終了である場合(ステップS216,Yes)、コントローラ10は、図9に示す処理手順を終了させる。
歩行状態である場合(ステップS204,Yes)、コントローラ10は、ステップS209に進む。コントローラ10は、ステップS209として、気圧データ9Xに基づいて、移動時の気圧の第2変化量を算出する。そして、コントローラ10は、ステップS210として、第1変化量と第2変化量とに基づいて歩行中の利用者の移動環境を判別する。そして、コントローラ10は、ステップS211として、第1変化量に基づいて第2変化量を補正する。
続いて、コントローラ10は、ステップS212として、タイムスタンプを付加した第2変化量に移動環境を紐付けて気圧データ9Xに記憶する。そして、コントローラ10は、ステップS213として、加速度センサ15及び気圧センサ19の検出時間に第1間隔を設定する。第1間隔は、利用者が歩行状態の場合に気圧変動をモニタリングする時間である。第1間隔は、第2間隔よりも長い時間である。そして、コントローラ10は、ステップS214として、補正した第2変化量に基づいて高度変化を算出してストレージ9に記憶する。その後、コントローラ10は、既に説明したステップS215に進む。
このように、スマートフォン1は、利用者が歩行(移動)している場合に、第1間隔で気圧センサ19に気圧を検出させ、利用者が静止している場合に、第1間隔よりも短い第2間隔で気圧センサ19に気圧を検出させる。これにより、スマートフォン1は、利用者が歩行している状態になった場合、気圧センサ19を駆動させる回数が静止状態よりも少なくなり、移動中の消費電力を低減させることができる。しかも、スマートフォン1は、静止時における気圧の検出回数は移動時よりも多くすることで、気圧変動を判断する精度を向上することができる。その結果、スマートフォン1は、静止時における気圧の変動量が大気の変化によるものかを判別し、その気圧の変動量を移動時の気圧の変化量から減じることができる。
上記の実施形態において、スマートフォン1は、歩行状態の気圧の変化量を、移動後の静止状態における気圧の変動に基づいて補正するように変形してもよい。図10を参照しながら、スマートフォン1による制御の処理手順の第2の変形例について説明する。図10は、スマートフォン1による制御の第2の変形例の処理手順を示すフローチャートである。図10に示す処理手順は、コントローラ10が制御プログラム9Aを実行することによって実現される。
図10に示すように、スマートフォン1のコントローラ10は、ステップS301として、加速度センサ15に加速度を検出させ、加速度センサ15によって検出された加速度の値を示す加速度情報にタイムスタンプを付加して加速度データ9Wに記憶する。コントローラ10は、ステップS302として、気圧センサ19に気圧を検出させ、気圧センサ19によって検出された気圧の値を示す気圧情報にタイムスタンプを付加して気圧データ9Xに記憶する。
コントローラ10は、ステップS303として、取得した加速度情報と判定条件データに基づいて、利用者の移動状態を判別する。歩行状態ではない、すなわち、静止状態である場合(ステップS304,No)、コントローラ10は、ステップS305に進む。
コントローラ10は、ステップS305として、気圧データ9Xに基づいて、静止時の気圧の第1変化量を算出する。そして、コントローラ10は、ステップS306として、タイムスタンプを付加して第1変化量をストレージ9に記憶する。そして、コントローラ10は、ステップS307として、第1変化量に基づいて高度変化を算出してストレージ9に記憶する。
続いて、コントローラ10は、ステップS308として、変更期間であるかを判定する。変更期間は、歩行状態から静止状態へ切り替わってから、気圧を検出するサンプリングレートを一時的に上げるために定められた時間の範囲である。コントローラ10は、歩行状態から静止状態に切り替わってからの時間が範囲内である場合に、変更期間であると判定する。変更期間である場合(ステップS308,Yes)、コントローラ10は、ステップS309に進む。コントローラ10は、ステップS309として、加速度センサ15及び気圧センサ19の検出時間に第3間隔を設定する。第3間隔は、利用者が静止状態の場合に気圧変動をモニタリングする時間を、一時的に第2間隔よりも短くした時間である。その後、コントローラ10は、ステップS320に進む。
コントローラ10は、ステップS320として、検出時間であるかを判定する。検出時間である場合(ステップS320,Yes)、コントローラ10は、ステップS301に戻る。検出時間ではない場合(ステップS320,No)、コントローラ10は、ステップS321に進む。
コントローラ10は、ステップS321において、終了するかを判定する。例えば、コントローラ10は、スマートフォン1の電源オフの操作を検出した場合に、終了すると判定する。終了ではない場合(ステップS321,No)、コントローラ10は、ステップS320に戻る。終了である場合(ステップS321,Yes)、コントローラ10は、図10に示す処理手順を終了させる。
変更期間ではない場合(ステップS308,No)、コントローラ10は、ステップS310に進む。コントローラ10は、ステップS310として、加速度センサ15及び気圧センサ19の検出時間に第2間隔を設定する。
続いて、コントローラ10は、ステップS311として、補正タイミングであるかを判定する。補正タイミングは、利用者の停止後に検出した気圧変動に基づいて、利用者が移動していたときの気圧変化を補正するタイミングである。本実施形態では、補正タイミングは、利用者が歩行状態から静止状態に移項して、サンプリングレートの変更期間を終了した場合としている。具体的には、コントローラ10は、利用者が静止状態になってからの経過時間が変更期間から逸脱した場合に、補正タイミングであると判定する。補正タイミングではない場合(ステップS311,No)、コントローラ10は、既に説明したステップS320に進む。
補正タイミングである場合(ステップS311,Yes)、コントローラ10は、ステップS312に進む。コントローラ10は、ステップS312として、移動後の第1変化量に基づいて第2変化量を補正する。例えば、コントローラ10は、移動前と移動後の第1変化量の差が所定条件を満たす場合に補正を行う。さらに、補正を行う第2変化量の対象は、例えば、移動中の全ての第2変化量、移動後の静止状態から所定の件数分だけ遡った第2変化量等を含む。気体の第2変化量の補正方法としては、例えば、移動前と移動後の第1変化量の差分を第2変化量から差し引いて補正する方法、移動後の第1変化量に基づいて補正前の第2変化量を補正する方法等を含む。そして、コントローラ10は、ステップS313として、補正した第2変化量に基づいてストレージ9に記憶している高度変化を補正する。その後、コントローラ10は、既に説明したステップS320に進む。
歩行状態である場合(ステップS304,Yes)、コントローラ10は、ステップS314に進む。コントローラ10は、ステップS314として、気圧データ9Xに基づいて、移動時の気圧の第2変化量を算出する。そして、コントローラ10は、ステップS315として、第1変化量と第2変化量とに基づいて歩行中の利用者の移動環境を判別する。そして、コントローラ10は、ステップS316として、移動前の第1変化量に基づいて第2変化量を補正する。
続いて、コントローラ10は、ステップS317として、タイムスタンプを付加した第2変化量に移動環境を紐付けて気圧データ9Xに記憶する。そして、コントローラ10は、ステップS318として、加速度センサ15及び気圧センサ19の検出時間に第1間隔を設定する。そして、コントローラ10は、ステップS319として、補正した第2変化量に基づいて高度変化を算出してストレージ9に記憶する。その後、コントローラ10は、既に説明したステップS320に進む。
このように、スマートフォン1は、利用者が静止状態になったことを検出した場合に、一時的に第2間隔よりも短い第3間隔で気圧センサ19に気圧を検出させて、静止状態における気圧の第1変化量を算出する。これにより、スマートフォン1は、利用者が歩行状態から静止状態になった直後に、大気の変化による気圧の変化量を把握することができる。
さらに、スマートフォン1は、移動前の第1変化量に加えて、移動後の第1変化量でも移動中の第2変化量を補正する。これにより、利用者の移動時間が長くなって、移動前と移動後の気圧の第1変化量が大きく変化した場合に、スマートフォン1は、移動中の気圧の変化量を補正することができる。
上記の第2の変形例では、コントローラ10は、ステップS313として、補正した第2変化量に基づいて高度変化を補正する場合について説明したが、これに限定されない。例えば、コントローラ10は、補正した第2変化量に基づいて高度変化を算出し直すように構成されてもよい。
上記の実施形態において、スマートフォン1は、利用者による坂道の歩行が継続した場合に、気体の第2変化量を静止状態における気圧の変動に基づいて補正するように変形してもよい。図11を参照しながら、スマートフォン1による制御の処理手順の第3の変形例について説明する。図11は、スマートフォン1による制御の第3の変形例の処理手順を示すフローチャートである。図11に示す処理手順は、コントローラ10が制御プログラム9Aを実行することによって実現される。図11に示す処理手順は、所定の時間ごとに繰り返し実行される。
図11に示すように、スマートフォン1のコントローラ10は、ステップS401として、加速度センサ15に加速度を検出させ、加速度センサ15によって検出された加速度の値を示す加速度情報にタイムスタンプを付加して加速度データ9Wに記憶する。コントローラ10は、ステップS402として、気圧センサ19に気圧を検出させ、気圧センサ19によって検出された気圧の値を示す気圧情報にタイムスタンプを付加して気圧データ9Xに記憶する。
コントローラ10は、ステップS403として、取得した加速度情報と判定条件データに基づいて、利用者の移動状態を判別する。歩行状態ではない、すなわち、静止状態である場合(ステップS404,No)、コントローラ10は、ステップS405に進む。コントローラ10は、ステップS405として、気圧データ9Xに基づいて、静止時の気圧の第1変化量を算出する。そして、コントローラ10は、ステップS406として、タイムスタンプを付加して第1変化量をストレージ9に記憶する。そして、コントローラ10は、ステップS407として、第1変化量に基づいて高度変化を算出してストレージ9に記憶する。その後、コントローラ10は、図11に示す処理手順を終了させる。
歩行状態である場合(ステップS404,Yes)、コントローラ10は、ステップS408に進む。コントローラ10は、ステップS408として、気圧データ9Xに基づいて、移動時の気圧の第2変化量を算出する。そして、コントローラ10は、ステップS409として、第1変化量と第2変化量とに基づいて歩行中の利用者の移動環境を判別する。そして、コントローラ10は、ステップS410として、タイムスタンプを付加した第2変化量に移動環境を紐付けてストレージ9に記憶する。
続いて、コントローラ10は、ステップS411として、ステップS409で判別された移動環境が坂道であるかを判定する。坂道ではない場合(ステップS411,No)、コントローラ10は、図11に示す処理手順を終了させる。坂道である場合(ステップS411,Yes)、コントローラ10は、ステップS412に進む。
コントローラ10は、ステップS412として、状態データ9Yの移動状態に基づいて、坂道を歩行している継続時間を算出する。そして、コントローラ10は、ステップS413として、継続時間は判定閾値を超えたかを判定する。判定閾値は、連続的な移動と判定するために定められた時間である。継続時間は判定閾値を超えていない場合(ステップS413,No)、コントローラ10は、図11に示す処理手順を終了させる。継続時間は判定閾値を超えている場合(ステップS413,Yes)、コントローラ10は、ステップS414に進む。
コントローラ10は、ステップS414として、第1変化量に基づいて第2変化量を補正する。具体的には、コントローラ10は、第2変化量から第1変化量を差し引くことで、移動時の気圧の変化量から静止時の気圧変動分を減じる。そして、コントローラ10は、ステップS415として、補正した第2変化量に基づいて高度変化を算出してストレージ9に記憶する。その後、コントローラ10は、図11に示す処理手順を終了させる。
このように、スマートフォン1は、利用者が坂道を長時間歩行した場合に、静止時における気圧の変化量に基づいて、利用者が移動しているときの気圧の変化量を補正し、補正した気圧の変化量に基づいて利用者の高度変化を算出する。これにより、スマートフォン1は、利用者の高度の変化によって気圧が変化する可能性がある場合に、気圧の変化に対する大気の変化の影響を低減することができる。その結果、スマートフォン1は、大きな誤差になり得る部分についてのみ効率的に補正処理を行って、コントローラ10の負荷を低減することができる。
上記の実施形態では、スマートフォン1は、加速度センサ15及び気圧センサ19を同じタイミングで検出させる場合について説明したが、これに限定されない。例えば、スマートフォン1は、加速度センサ15及び気圧センサ19を異なるタイミングで検出させてもよい。
上記の実施形態では、スマートフォン1は、利用者が歩行で移動している場合について説明したが、利用者の移動方法はこれに限定されない。例えば、スマートフォン1は、利用者が走って移動している場合の気圧の変化量を、移動前後の気圧の変化量に基づいて補正するように構成してもよい。
上記の実施形態において、スマートフォン1は、例えば、一日、時間帯等における天気に基づいて、移動状態の第2変化量を静止状態の第1変化量で補正するか否かを判断してもよい。例えば、天気予報が晴れである場合、天候は、変わらない可能性がある。これにより、スマートフォン1は、通信ユニット6による通信を介して天気予報データを取得し、取得した天気予報データに基づいて天候の変化がない場合に、気圧変動がないとみなす判断をし、第2変化量の補正を行わないように構成してもよい。
上記の実施形態では、気圧センサを備える携帯電子機器の例として、スマートフォンについて説明したが、添付の請求項に係る携帯電子機器は、スマートフォンに限定されない。添付の請求項に係る携帯電子機器は、スマートフォン以外の携帯電子機器であってもよい。携帯電子機器は、例えば、モバイルフォン、タブレット、携帯型パソコン、デジタルカメラ、メディアプレイヤ、電子書籍リーダ、ナビゲータ、及びゲーム機を含むが、これに限定されない。
添付の請求項に係る技術を完全かつ明瞭に開示するために特徴的な実施形態に関し記載してきた。しかし、添付の請求項は、上記実施形態に限定されるべきものでなく、本明細書に示した基礎的事項の範囲内で当該技術分野の当業者が創作しうるすべての変形例及び代替可能な構成を具現化するように構成されるべきである。