本出願に係る携帯機器、制御方法、及び制御プログラムを実施するための複数の実施形態を、図面を参照しつつ詳細に説明する。以下では、携帯機器の例として、スマートフォンについて説明する。
図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が検出する複数の指、ペン、及びスタイラスペン等は、「指」と表記する場合がある。タッチスクリーン2Bが検出した指が接触又は近接した位置を「検出位置」と表記する場合がある。タッチスクリーン2Bは、タッチスクリーン2Bに対する指の接触を、検出位置とともにコントローラ10に通知する。タッチスクリーン2Bが行える動作を、タッチスクリーン2Bを有するタッチスクリーンディスプレイ2は実行できる。言い換えると、タッチスクリーン2Bが行う動作は、タッチスクリーンディスプレイ2が行ってもよい。
タッチスクリーン2Bは、自機が水に浸かっているか否かを推定するための情報を測定できる。タッチスクリーン2Bは、検出方式として静電容量方式を採用する場合、自機が水に浸かっているか否かを推定するための情報として静電分布を測定できる。静電分布は、例えば、タッチスクリーン2B上の複数の検出点における静電容量の変化を含む。タッチスクリーン2Bは、当該タッチスクリーン2Bに格子状に張り巡らされた複数のセンサ電極のそれぞれに対して所定の信号を印加し、各センサ電極からの出力値を読み取ることを繰り返す。これにより、タッチスクリーン2Bは、当該タッチスクリーン2B上の複数の検出点における静電容量の変化を静電分布として測定できる。センサ電極は、検出点の一例である。
スマートフォン1は、タッチスクリーン2Bにより検出された接触、接触が検出された位置、接触が検出された位置の変化、接触が検出された間隔、及び接触が検出された回数の少なくとも1つに基づいてジェスチャの種別を判別する。ジェスチャは、タッチスクリーン2Bに対して行われる操作である。スマートフォン1によって判別されるジェスチャは、例えば、タッチ、ロングタッチ、リリース、スワイプ、タップ、ダブルタップ、ロングタップ、ドラッグ、フリック、ピンチイン、及びピンチアウトを含むがこれらに限定されない。
スマートフォン1は、タッチスクリーン2Bを介して判別するこれらのジェスチャに従って動作を行う。このため、利用者にとって直感的で使いやすい操作性が実現される。判別されるジェスチャに従ってスマートフォン1が行う動作は、ディスプレイ2Aに表示されている画面に応じて異なることがある。以下の説明では、説明を簡単にするために、「タッチスクリーン2Bが接触を検出し、検出された接触に基づいてジェスチャの種別をスマートフォン1がXと判別すること」を、「スマートフォンがXを検出する」、又は「コントローラがXを検出する」と記載することがある。
スマートフォン1のハウジング20は、内部への水の侵入が妨げられる構造になっている。スマートフォン1は、封止構造を実現するために、ハウジング20に形成された開口部を、気体は通すが液体は通さない機能性部材、およびキャップ等によって閉塞している。気体は通すが液体は通さない機能性部材は、例えば、Gore−Tex(登録商標)、Drytec、eVent、BERGTECH、HyventDなどを用いて実現される。本実施形態では、ハウジング20は、タッチスクリーンディスプレイ2及びボタン3を有する。この場合、スマートフォン1は、ハウジング20とタッチスクリーンディスプレイ2及びボタン3との隙間への水の侵入を、気体は通すが液体は通さない機能性部材等によって、妨げている。
スマートフォン1は、封止構造を備えることで、様々なユースケースを提供できる。ユースケースは、例えば、水場で使用されるケース、水中で使用されるケースを含む。
図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(Wideband Code Division Multiple Access 2000)、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は、音を出力する出力部の1つの例である。レシーバ7及びスピーカ11は、コントローラ10から送信される音信号を音として出力できる。レシーバ7は、例えば、通話時に相手の声を出力するために用いてもよい。スピーカ11は、例えば、着信音及び音楽を出力するために用いてもよい。レシーバ7及びスピーカ11の一方が、他方の機能を兼ねてもよい。マイク8は、音を入力する入力部の1つの例である。マイク8は、利用者の音声等を音信号へ変換してコントローラ10へ送信できる。
ストレージ9は、プログラム及びデータを記憶できる。ストレージ9は、コントローラ10の処理結果を一時的に記憶する作業領域としても利用してもよい。ストレージ9は、記録媒体を含む。記録媒体は、半導体記憶媒体、及び磁気記憶媒体等の任意の非一過的(non−transitory)な記憶媒体を含んでよい。ストレージ9は、複数の種類の記憶媒体を含んでよい。ストレージ9は、メモリカード、光ディスク、又は光磁気ディスク等の可搬の記憶媒体と、記憶媒体の読み取り装置との組み合わせを含んでよい。ストレージ9は、RAM(Random Access Memory)等の一時的な記憶領域として利用される記憶デバイスを含んでよい。
ストレージ9に記憶されるプログラムには、フォアグランド又はバックグランドで実行されるアプリケーションと、アプリケーションの動作を支援する制御プログラムとが含まれる。アプリケーションは、例えば、ディスプレイ2Aに画面を表示させ、タッチスクリーン2Bを介して検出されるジェスチャに応じた処理をコントローラ10に実行させる。制御プログラムは、例えば、OSである。アプリケーション及び制御プログラムは、通信ユニット6による無線通信又は非一過的な記憶媒体を介してストレージ9にインストールされてもよい。
ストレージ9は、例えば、制御プログラム9A、加速度データ9Y、及び設定データ9Zを記憶できる。加速度データ9Yは、スマートフォン1に作用する加速度に関する情報を含む。設定データ9Zは、スマートフォン1の動作に関する各種の設定に関する情報を含む。
制御プログラム9Aは、スマートフォン1を稼働させるための各種制御に関する機能を提供できる。制御プログラム9Aは、例えば、通信ユニット6、レシーバ7、及びマイク8等を制御することによって、通話を実現させる。制御プログラム9Aが提供する機能には、タッチスクリーン2Bを介して検出されたジェスチャに応じて、ディスプレイ2Aに表示されている情報を変更する等の各種制御を行う機能が含まれる。制御プログラム9Aが提供する機能には、加速度センサ15、ジャイロスコープ17及び気圧センサ19等を制御することによって、スマートフォン1を所持する利用者の移動、停止等を検出する機能が含まれる。制御プログラム9Aが提供する機能は、気圧アプリケーション9B等の他のプログラムが提供する機能と組み合わせて利用されることがある。
制御プログラム9Aは、スマートフォン1(自機)が水に浸かっているかを推定するための機能を提供できる。スマートフォン1が水に浸かっていると推定する方法については、後述する。
加速度データ9Yには、加速度センサ15の測定結果として送信されてくる複数の加速度情報が時系列的に記憶される。加速度情報は、時間と、加速度の方向および大きさといった項目を含む。時間は、加速度センサ15によって加速度の方向および大きさを測定した時間を示す。加速度の値は、加速度センサ15によって測定した加速度の方向および大きさの値を示す。
例えば、コントローラ10には、加速度センサ15の検出結果が送信されてくる。送信結果は、X軸方向の加速度と、Y軸方向の加速度と、Z軸方向の加速度と、各加速度を合成したベクトル値とを含む。コントローラ10は、検出結果をストレージ9の加速度データ9Yにロギングする。コントローラ10は、X軸方向の加速度、Y軸方向の加速度、およびZ軸方向の加速度を演算して合成ベクトルを計算してもよい。
設定データ9Zは、スマートフォン1(自機)が水に浸かったことを推定するための条件データを含む。自機が水に浸かるとは、例えば、自機全体が水に浸かること、自機が水没すること、自機の一部が水に浸かることを含む。条件データについては、後述する。設定データ9Zは、自機が水に浸かっているか否かを推定する周期を示す周期データを含む。周期データは、第1の周期と第2の周期とを含む。第1の周期は、第2の周期よりも長い周期となっている。
コントローラ10は、演算処理装置を含む。演算処理装置は、例えば、CPU(Central Processing Unit)、SoC(System−on−a−chip)、MCU(Micro Control Unit)、FPGA(Field−Programmable Gate Array)、及びコプロセッサを含むが、これらに限定されない。コントローラ10は、スマートフォン1の動作を統括的に制御できる。コントローラ10の各種機能は、コントローラ10の制御に基づいて実現される。
具体的には、コントローラ10は、ストレージ9に記憶されているプログラムに含まれる命令を実行できる。コントローラ10は、ストレージ9に記憶されているデータを必要に応じて参照できる。コントローラ10は、データ及び命令に応じて機能部を制御する。コントローラ10は、機能部を制御することによって、各種機能を実現する。機能部は、例えば、ディスプレイ2A、通信ユニット6、レシーバ7、及びスピーカ11を含むが、これらに限定されない。コントローラ10は、検出部の検出結果に応じて、制御を変更することがある。検出部は、例えば、タッチスクリーン2B、ボタン3、照度センサ4、近接センサ5、マイク8、カメラ12、カメラ13、加速度センサ15、方位センサ16、ジャイロスコープ17、及び気圧センサ19を含むが、これらに限定されない。
コントローラ10は、例えば、制御プログラム9Aを実行することにより、各種制御を実行できる。コントローラ10が実行できる各種制御には、タッチスクリーン2Bを介して検出されたジェスチャに応じて、ディスプレイ2Aに表示されている情報を変更することが含まれる。
カメラ12は、フロントフェイス1Aに面している物体を撮影するインカメラである。カメラ13は、バックフェイス1Bに面している物体を撮影するアウトカメラである。
コネクタ14は、他の装置が接続される端子である。コネクタ14は、USB(Universal Serial Bus)、HDMI(登録商標)(High−Definition Multimedia Interface)、ライトピーク(サンダーボルト(登録商標))、イヤホンマイクコネクタのような汎用的な端子であってもよい。コネクタ14は、Dockコネクタのような専用の端子でもよい。コネクタ14に接続される装置は、例えば、外部ストレージ、スピーカ、及び通信装置を含むが、これらに限定されない。
加速度センサ15は、スマートフォン1に働く加速度の方向及び大きさを検出できる。加速度センサ15は、重力による静的な加速度を検出してもよい。方位センサ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つを検出するための他の種類のセンサを備えてもよい。
コントローラ10は、制御プログラム9Aを実行することにより、自機が水に浸かっているか否かを推定する処理を実現できる。コントローラ10は、タッチスクリーン2Bの検出結果に基づいて、自機が水に浸かっているか否かを推定することができる。図5は、タッチスクリーン2Bにより測定される静電容量の例を示す図である。図6及び図7は、タッチスクリーン2Bにより測定される静電容量の他の例を示す図である。図5は、自機が水に浸かっている場合の静電容量に対応する。図6は、自機が水に浸かっていない場合の静電容量に対応する。図7は、タッチスクリーン2Bに対して指で触れたときの静電容量に対応する。図5から図7は、タッチスクリーン2Bの平面座標での静電容量を示している。
スマートフォン1が完全に水に浸かっている場合、タッチスクリーン2Bは、その表面全体が水と接触するために、複数の検出点の全てで検出値が変化する。すなわち、タッチスクリーン2Bは、水中の方が大気中よりも検出値が大きくなる。このため、スマートフォン1は、複数の検出点の検出結果を示す静電分布に基づいて、自機が水に浸かっているか否かを推定することができる。
例えば、自機の全てが水に浸かっている場合、タッチスクリーン2Bは、図5に示す静電分布を測定できる。図5に示す静電分布は、静電容量がある正の値近傍で均一となる静電分布を示している。例えば、自機が水に浸かっていない場合、すなわち、自機が大気中にある場合、タッチスクリーン2Bは、図6に示す静電分布を測定できる。図6に示す静電分布は、静電容量がある負の値近傍で均一となる静電分布を示している。例えば、タッチスクリーン2Bに対して指が触れている場合、タッチスクリーン2Bは、図7に示す均一ではない静電分布を測定できる。図7に示す静電分布は、図5及び図6に示す例とは異なり、静電容量の値が指の接触位置付近のみ高い値となる静電分布を示している。
コントローラ10は、タッチスクリーン2Bにより測定される静電分布が、図5に示す静電分布への変化を示した場合に、自機が水に浸かっていると推定できる。コントローラ10は、タッチスクリーン2Bにより測定される静電分布が、図6に示す静電分布への変化を示した場合に、自機が水に浸かっていないと推定できる。
コントローラ10は、自機の一部が水に浸かったことを推定することができる。スマートフォン1の一部が水に浸かっている場合、タッチスクリーン2Bは、水に浸かっている表面の一部が水と接触する。タッチスクリーン2Bは、水に浸かっている部分の静電容量の値が高く、水に浸かっていない部分の静電容量の値が低い静電分布を測定できる。よって、コントローラ10は、自機の一部が水に浸かっていることを、自機が水に浸かっていると推定してもよい。
設定データ9Zの条件データは、第1の条件を示す情報を含む。第1の条件は、自機が水に浸かっていることを推測するための条件を含む。第1の条件は、例えば、図5に示す静電分布を推定するための条件を含む。第1の条件は、例えば、当該推定に用いる検出点に対応した検出閾値、検出範囲、検出した接触点の範囲等を含む。
条件データは、第2の条件を示す情報を含む。第2の条件は、自機が水中から出たことを推定するための条件を含む。第2の条件は、例えば、図6に示す静電分布を推定するための条件を含む。第2の条件は、例えば、当該推定に用いる検出点に対応した検出閾値、検出範囲、検出した接触点の範囲等を含む。
コントローラ10は、制御プログラム9Aを実行することにより、自機が水に浸かっているか否かの推定を周期的に実行することができる。コントローラ10は、例えば、自機が水に浸かっているか否かの推定を異なる周期で実行することができる。
コントローラ10は、制御プログラム9Aを実行することにより、静的な加速度の方向および大きさに基づいて、自機に作用している重力の方向を判別することができる。例えば、コントローラ10は、加速度データ9Yのうち零ヘルツ(Hz)の加速度を分析して、自機に作用している重力の方向を判別する制御を行う。
コントローラ10は、制御プログラム9Aを実行することにより、加速度の方向および大きさに基づいて、自機が移動している方向を判定することができる。例えば、コントローラ10は、加速度データ9Yを分析して、自機が移動している方向を判別する制御を行う。例えば、コントローラ10は、加速度が重力方向に大きい値となっている場合、自機が重力方向へ沿って移動していると判定できる。例えば、コントローラ10は、加速度が重力方向とは反対方向に大きな値となっている場合、自機が重力方向と反対の方向へ沿って移動していると判定できる。
加速度センサ15によって検出される加速度は、利用者が一の方向へ移動する場合、反対方向にも作用する場合がある。例えば、一の方向へ移動している際に減速されると、加速度センサ15は、一の方向とは反対方向への加速度を検出する場合がある。例えば、利用者が階段を降りている場合、着地する際に、加速度センサ15は、反対方向の加速度を検出する場合がある。すなわち、加速度センサ15の検出結果は、自機が同一の方向に移動している場合でも、加速および減速を含む可能性がある。コントローラ10は、加速度センサ15の検出結果が示す加速、減速のパターンと加速度パターンとを比較し、比較結果に基づいて自機が移動している方向を判定する。加速度パターンは、重力方向および重力方向とは反対方向に対応した加速度パターンが加速度センサ15により特徴的に検出されるのかを予め計測した加速度パターンである。コントローラ10は、加速度データ9Yの加速度パターンが、重力方向の加速度パターンと一致すると、自機が重力方向に沿って移動していると判定する。なお、パターンの一致とは、完全に一致している場合、所定の割合で一致している場合を含む。その結果、スマートフォン1は、加速度センサ15の検出結果に基づいて、移動方向を正確に判別することができる。
スマートフォン1は、利用者によって水中で利用される場合、タッチスクリーン2Bを用いて大気中から水中への自機の移動を推定することができる。スマートフォン1は、水に浸かっている場合、タッチスクリーン2Bを介してジェスチャを検出することができない。このため、スマートフォン1は、自機が水に浸かっていると推定した後、タッチスクリーン2Bの動作を制限することができる。水中のスマートフォン1は、タッチスクリーン2Bを用いて水中から大気中への自機の移動を推定するために、タッチスクリーン2Bを駆動させる必要がある。タッチスクリーン2Bの駆動には、電力消費を伴うため、駆動時間を短くすることが好ましい。そのため、スマートフォン1は、適切なタイミングでタッチスクリーン2Bを駆動させて、大気中から水中、水中から大気中への変化を正しく把握する必要がある。
図8を参照しながら、スマートフォン1による水に浸かっているかの推定に関する制御について説明する。図8は、スマートフォン1による制御の例の処理手順を示すフローチャートである。図8に示す処理手順は、コントローラ10が制御プログラム9Aを実行することによって実現される。図8に示す処理手順は、コントローラ10によって繰り返し実行される。図8に示す処理手順は、例えば、所定のトリガーに応じて、実行を開始してもよい。所定のトリガーは、例えば、自機の起動、利用者の操作開始、自機の移動開始等を含む。
図8に示すように、スマートフォン1のコントローラ10は、ステップS101として、タッチスクリーン2Bの測定結果を取得し、当該測定結果をストレージ9の加速度データ9Yに記憶する。具体的には、コントローラ10は、タッチスクリーン2Bの複数のセンサ電極を起動させ、各センサ電極からの出力値を示す測定結果を取得する。
コントローラ10は、ステップS102として、取得した測定結果と条件データとに基づいて、自機が水に浸かっているかを推定し、推定結果をストレージ9に記憶する。具体的には、コントローラ10は、加速度センサ15の測定結果が示す静電分布が条件データの第1の条件を満たす場合に、自機が水に浸かっていると推定する。コントローラ10は、加速度センサ15の測定結果が示す静電分布が条件データの第2の条件を満たす場合に、自機が水に浸かっていないと推定する。
コントローラ10は、ステップS103として、加速度センサ15の検出結果を取得し、当該検出結果をストレージ9に記憶する。コントローラ10は、ステップS104として、自機の移動方向を特定し、当該特定結果をストレージ9に記憶する。具体的には、コントローラ10は、加速度の方向及び大きさに基づいて、自機の移動方向を特定する。例えば、Z軸方向における負の方向に重力が作用している状況において、コントローラ10は、加速度がZ軸方向における負の方向に所定の値よりも大きい場合、自機が重力方向へ沿って移動していると特定する。例えば、Z軸方向における負の方向に重力が作用している状況において、コントローラ10は、加速度がZ軸方向における正の方向に所定の値よりも大きい場合、自機が重力方向とは反対方向へ沿って移動していると特定する。
コントローラ10は、ステップS105として、ステップS102で自機が水に浸かっていると推定したかを判定する。コントローラ10は、ステップS102で自機が水に浸かっていると推定したと判定した場合(ステップS105でYes)、処理をステップS106に進める。
コントローラ10は、ステップS106として、ステップS104で自機が重力方向とは反対方向へ沿って移動していると特定したかを判定する。コントローラ10は、自機が重力方向とは反対方向へ沿って移動していると特定したと判定した場合(ステップS106でYes)、処理をステップS107に進める。
コントローラ10は、ステップS107として、周期的な推定処理を実行中であるかを判定する。コントローラ10は、周期的な推定処理を実行中ではないと判定した場合(ステップS107でNo)、処理をステップS108に進める。コントローラ10は、ステップS108として、周期的な推定処理を実行する。周期的な推定処理については、後述する。コントローラ10は、周期的な推定処理を実行すると、図8に示す処理手順を終了させる。
コントローラ10は、周期的な推定処理を実行中であると判定した場合(ステップS107でYes)、周期的な推定処理を実行させる必要がないため、図8に示す処理手順を終了させる。
コントローラ10は、ステップS104で自機が重力方向とは反対方向へ沿って移動していると特定していないと判定した場合(ステップS106でNo)、図8に示す処理手順を終了させる。すなわち、コントローラ10は、自機が水に浸かっていると推定し、かつ自機が重力方向とは反対方向へ沿って移動していない場合は、図8に示す処理手順を終了させる。
コントローラ10は、ステップS102で自機が水に浸かっていると推定していないと判定した場合(ステップS105でNo)、処理をステップS109に進める。コントローラ10は、ステップS109として、ステップS104で自機が重力方向へ沿って移動していると特定したかを判定する。コントローラ10は、ステップS104で自機が重力方向へ沿って移動していると特定したと判定した場合(ステップS109でYes)、処理を既に説明したステップS107に進める。
コントローラ10は、自機が重力方向へ沿って移動していると特定していないと判定した場合(ステップS109でNo)、図8に示す処理手順を終了させる。すなわち、コントローラ10は、自機が水に浸かっていないと推定し、かつ自機が重力方向とは反対方向へ沿って移動している場合は、図8に示す処理手順を終了させる。
図9を参照しながら、周期的な推定処理の処理手順の例について説明する。図9は、周期的な推定処理の例を示すフローチャートである。図9に示す処理手順は、コントローラ10が図8に示すステップS108の処理を実行することによって起動される。図9に示す処理手順は、コントローラ10によって実行される。
図9に示すように、スマートフォン1のコントローラ10は、ステップS201として、周期に対応した推定タイミングであるか否かを判定する。具体的には、コントローラ10は、現在の時刻、タイマー等を用いて、前回の推定を行ってから所定の時間が経過した場合に、周期に対応した推定タイミングであると判定する。コントローラ10は、周期に対応した推定タイミングではないと判定した場合(ステップS201でNo)、ステップS201の処理を繰り返す。コントローラ10は、周期に対応した推定タイミングであると判定した場合(ステップS201でYes)、処理をステップS202に進める。
コントローラ10は、ステップS202として、タッチスクリーン2Bの測定結果を取得し、当該測定結果をストレージ9に記憶する。コントローラ10は、ステップS203として、取得した測定結果と条件データとに基づいて、自機が水に浸かっているかを推定し、推定結果をストレージ9に記憶する。なお、ステップS202およびS203の処理は、図8に示すステップS101およびS102の処理と同一とすることができる。
コントローラ10は、ステップS204として、加速度センサ15の検出結果を取得し、当該検出結果をストレージ9に記憶する。コントローラ10は、ステップS205として、自機の移動方向を特定し、当該特定結果をストレージ9に記憶する。なお、ステップS204およびS205の処理は、図8に示すステップS103およびS104の処理と同一とすることができる。
コントローラ10は、ステップS206として、ステップS203で自機が水に浸かっていると推定したかを判定する。コントローラ10は、ステップS203で自機が水に浸かっていると推定したと判定した場合(ステップS206でYes)、処理をステップS207に進める。
コントローラ10は、ステップS207として、ステップS205で自機が重力方向へ沿って移動していると特定したかを判定する。コントローラ10は、自機が重力方向へ沿って移動していると特定していないと判定した場合(ステップS207でNo)、処理を既に説明したステップS201に戻す。コントローラ10は、自機が重力方向へ沿って移動していると特定したと判定した場合(ステップS207でYes)、周期的な推定処理を停止して、図9に示す処理手順を終了させる。
コントローラ10は、自機が水に浸かっていると推定していないと判定した場合(ステップS206でNo)、処理をステップS208に進める。コントローラ10は、ステップS208として、ステップS205で自機が重力方向とは反対方向へ沿って移動していると特定したかを判定する。コントローラ10は、自機が重力方向とは反対方向へ沿って移動していると特定していないと判定した場合(ステップS208でNo)、処理を既に説明したステップS201に戻す。コントローラ10は、自機が重力方向とは反対方向へ沿って移動していると特定したと判定した場合(ステップS208でYes)、周期的な推定処理を停止して、図9に示す処理手順を終了させる。
図8に示す処理手順では、コントローラ10は、自機が水に浸かっていると推定し、かつ自機が重力方向とは反対方向へ沿って移動している場合に、周期的な推定処理を実行することができる。例えば、水中にある自機が重力方向とは反対方向へ沿って移動している場合、スマートフォン1は、水中から大気中へ出る可能性がある。一方、水中にある自機が重力方向へ沿って移動している場合、スマートフォン1は、水中から大気中へ出る可能性が低い。スマートフォン1は、自機が水中から大気中へ出る可能性がある場合に、停止しているタッチスクリーン2Bを周期的に駆動させることができる。その結果、スマートフォン1は、タッチスクリーン2Bの消費電力を抑制し、自機が水中から大気中へ出たタイミングを正しく把握することができる。
コントローラ10は、自機が水に浸かっていないと推定し、かつ自機が重力方向へ沿って移動している場合に、周期的な推定処理を実行することができる。例えば、大気中にある自機が重力方向へ沿って移動している場合、スマートフォン1は、大気中から水中へ浸かる可能性がある。一方、大気中にある自機が重力方向とは反対方向へ沿って移動している場合、スマートフォン1は、大気中から水中へ浸かる可能性が低い。スマートフォン1は、自機が大気中から水中へ浸かる可能性がある場合、静電分布に基づいて自機が水に浸かっているか否かの推定を周期的に実行することができる。その結果、スマートフォン1は、タッチスクリーン2Bの消費電力を抑制し、自機が大気中から水中へ浸かるタイミングを正しく把握することができる。
コントローラ10は、自機が水に浸かっていないと推定した場合かつ推定処理を周期的に実行している場合、自機が重力方向とは反対方向へ向かうと、周期的な推定処理を停止することができる。その結果、スマートフォン1は、大気中から水中へ浸かる可能性が低い際に、タッチスクリーン2Bの消費電力を抑制することができる。
コントローラ10は、自機が水に浸かっていると推定した場合かつ推定処理を周期的に実行している場合、自機が重力方向へ向かうと、周期的な推定処理を停止することができる。その結果、スマートフォン1は、水中から大気中へ出る可能性が低い際に、タッチスクリーン2Bの消費電力を抑制することができる。
図8に示す処理手順では、コントローラ10は、自機が水に浸かっていると推定した場合および水に浸かっていないと推定した場合の推定の制御について説明したが、これに限定されない。例えば、コントローラ10は、自機が水に浸かっていると推定した場合または水に浸かっていないと推定した場合のいずれかで推定の制御を行ってもよい。
図10を参照しながら、スマートフォン1による水に浸かっているかの推定の他の例に関する制御について説明する。図10は、スマートフォン1による制御の他の例の処理手順を示すフローチャートである。図10に示す処理手順は、コントローラ10が制御プログラム9Aを実行することによって実現される。図10に示す処理手順は、コントローラ10によって繰り返し実行される。図10に示す処理手順は、例えば、上記の所定のトリガーに応じて、実行を開始してもよい。
図10に示すように、スマートフォン1のコントローラ10は、ステップS301として、第1の周期を推定の周期に設定する。コントローラ10は、ステップS302として、推定の周期に対応した推定タイミングであるか否かを判定する。コントローラ10は、周期に対応した推定タイミングではないと判定した場合(ステップS302でNo)、ステップS302の処理を繰り返す。コントローラ10は、推定の周期に対応した推定タイミングであると判定した場合(ステップS302でYes)、処理をステップS303に進める。
コントローラ10は、ステップS303として、タッチスクリーン2Bの測定結果を取得し、当該測定結果をストレージ9に記憶する。コントローラ10は、ステップS304として、取得した測定結果と条件データとに基づいて、自機が水に浸かっているかを推定し、推定結果をストレージ9に記憶する。
コントローラ10は、ステップS305として、加速度センサ15の検出結果を取得し、当該検出結果をストレージ9に記憶する。コントローラ10は、ステップS306として、自機の移動方向を特定し、当該特定結果をストレージ9に記憶する。
コントローラ10は、ステップS307として、ステップS304で自機が水に浸かっていると推定したかを判定する。コントローラ10は、ステップS304で自機が水に浸かっていると推定したと判定した場合(ステップS307でYes)、処理をステップS308に進める。
コントローラ10は、ステップS308として、ステップS306で自機が重力方向とは反対方向へ沿って移動していると特定したかを判定する。コントローラ10は、自機が重力方向とは反対方向へ沿って移動していると特定したと判定した場合(ステップS308でYes)、処理をステップS309に進める。
コントローラ10は、ステップS309として、第1の周期よりも短い第2の周期を推定の周期に設定する。コントローラ10は、ステップS309の処理が終了すると、処理を既に説明したステップS302に戻す。
コントローラ10は、自機が重力方向とは反対方向へ沿って移動していると特定していないと判定した場合(ステップS308でNo)、処理をステップS310に進める。コントローラ10は、ステップS310として、ステップS307で自機が重力方向へ沿って移動していると特定したかを判定する。コントローラ10は、自機が重力方向へ沿って移動していると特定していないと判定した場合(ステップS310でNo)、処理を既に説明したステップS302に戻す。コントローラ10は、自機が重力方向へ沿って移動していると特定したと判定した場合(ステップS310でYes)、推定の周期的な実行を中止するために、図10に示す処理手順を終了させる。
コントローラ10は、ステップS305で自機が水に浸かっていると推定していないと判定した場合(ステップS307でNo)、処理をステップS311に進める。コントローラ10は、ステップS311として、ステップS306で自機が重力方向へ沿って移動していると特定したかを判定する。コントローラ10は、自機が重力方向へ沿って移動していると特定したと判定した場合(ステップS311でYes)、処理を既に説明したステップS309に進める。
コントローラ10は、自機が重力方向へ沿って移動していると特定していないと判定した場合(ステップS311でNo)、処理をステップS312に進める。コントローラ10は、ステップS312として、ステップS306で自機が重力方向とは反対方向へ沿って移動していると特定したかを判定する。コントローラ10は、自機が重力方向とは反対方向へ沿って移動していると特定していないと判定した場合(ステップS312でNo)、処理を既に説明したステップS302に戻す。コントローラ10は、自機が重力方向とは反対方向へ沿って移動していると特定したと判定した場合(ステップS312でYes)、推定の周期的な実行を中止するために、図10に示す処理手順を終了させる。
図10に示す処理手順では、コントローラ10は、自機が水に浸かっていると推定し、かつ自機が重力方向とは反対方向へ沿って移動している場合に、推定の周期を短くすることができる。その結果、スマートフォン1は、推定を行う場合におけるタッチスクリーン2Bの消費電力を抑制し、自機が水中から大気中へ出たタイミングを正しく把握することができる。
コントローラ10は、自機が水に浸かっていないと推定し、かつ自機が重力方向へ沿って移動している場合に、推定の周期を短くすることができる。その結果、スマートフォン1は、推定を行う場合におけるタッチスクリーン2Bの消費電力を抑制し、自機が大気中から水中へ浸かるタイミングを正しく把握することができる。
コントローラ10は、自機が水に浸かっていないと推定した場合かつ推定を周期的に実行している場合、自機が重力方向とは反対方向へ向かうと、推定の周期的な実行を中止することができる。その結果、スマートフォン1は、大気中から水中へ浸かる可能性が低い際に、タッチスクリーン2Bの消費電力を抑制することができる。
コントローラ10は、自機が水に浸かっていると推定した場合かつ推定を周期的に実行している場合、自機が重力方向へ向かうと、推定の周期的な実行を中止することができる。その結果、スマートフォン1は、水中から大気中へ出る可能性が低い際に、タッチスクリーン2Bの消費電力を抑制することができる。
図11を参照しながら、スマートフォン1による水に浸かっているかの推定の他の例に関する制御について説明する。図11は、スマートフォン1による制御の他の例の処理手順を示すフローチャートである。図11に示す処理手順は、コントローラ10が制御プログラム9Aを実行することによって実現される。図11に示す処理手順は、コントローラ10によって繰り返し実行される。図11に示す処理手順は、例えば、上記の所定のトリガーに応じて、実行を開始してもよい。以下の説明においては、同様の構成要素には同一の符号を付し、重複する説明は省略することがある。
図11に示すように、スマートフォン1のコントローラ10は、ステップS301として、第1の周期を推定の周期に設定する。コントローラ10は、ステップS321として、推定を終了するかを判定する。例えば、制御部10は、自機の終了が要求された場合に、終了すると判定する。コントローラ10は、推定を終了すると判定した場合(ステップS321でYes)、図11に示す処理手順を終了させる。コントローラ10は、推定を終了しないと判定した場合(ステップS321でNo)、処理をステップS302に進める。
図11に示す例では、ステップS303からステップS309及びステップS311の処理は、図10に示すステップS303からステップS309及びステップS311の処理と同一であるため、異なる部分のみを説明し、同一部分の説明は省略する。
コントローラ10は、ステップS309の処理が終了すると、処理を既に説明したステップS321に戻す。
コントローラ10は、ステップS310として、ステップS307で自機が重力方向へ沿って移動していると特定したかを判定する。コントローラ10は、自機が重力方向へ沿って移動していると特定していないと判定した場合(ステップS310でNo)、処理を既に説明したステップS321に戻す。コントローラ10は、自機が重力方向へ沿って移動していると特定したと判定した場合(ステップS310でYes)、処理をステップS331に進める。
コントローラ10は、ステップS331として、第1の周期を推定の周期に設定する。コントローラ10は、ステップS331の処理が終了すると、処理を既に説明したステップS321に戻す。
コントローラ10は、ステップS312として、ステップS306で自機が重力方向とは反対方向へ沿って移動していると特定したかを判定する。コントローラ10は、自機が重力方向とは反対方向へ沿って移動していると特定していないと判定した場合(ステップS312でNo)、処理を既に説明したステップS321に戻す。コントローラ10は、自機が重力方向とは反対方向へ沿って移動していると特定したと判定した場合(ステップS312でYes)、処理をステップS341に進める。
コントローラ10は、ステップS341として、第1の周期を推定の周期に設定する。コントローラ10は、ステップS341の処理が終了すると、処理を既に説明したステップS321に戻す。
図11に示す処理手順では、コントローラ10は、自機が水に浸かっているかの推定結果と自機の移動状態とに基づいて、推定の周期を変更することができる。その結果、スマートフォン1は、タッチスクリーン2Bを用いて水中の推定を行う場合、自機の状態から水中を推定する周期を決定することができる。スマートフォン1は、推定を行う場合におけるタッチスクリーン2Bの消費電力を抑制し、自機が水中から大気中へ出たタイミングを正しく把握することができる。
図11に示す処理手順では、コントローラ10は、自機の終了が要求された場合に、処理手順を終了させる場合について説明したが、これに限定されない。例えば、コントローラ10は、自機の終了が要求された場合で第2の周期で推定を行っている場合、推定の周期を第1の周期に変更し、第1の周期で推定を継続してもよい。
例えば、スマートフォン1は、利用者が操作を行わなくなってから所定時間が経過すると、ディスプレイ2Aを非表示状態にすることができる。非表示状態とは、例えば、ディスプレイ2Aを消灯させた状態を含む。コントローラ10は、第2の周期で推定を行っている場合に、ディスプレイ2Aを非表示状態に遷移させると、推定の周期を第1の周期に変更し、第1の周期で推定を継続してもよい。
本出願の開示する実施形態は、発明の要旨及び範囲を逸脱しない範囲で変更することができる。さらに、本出願の開示する実施形態及びその変形例は、適宜組み合わせることができる。例えば、上記の実施形態は、以下のように変形してもよい。
例えば、図4に示した各プログラムは、複数のモジュールに分割されていてもよいし、他のプログラムと結合されていてもよい。
上記の実施形態では、スマートフォン1は、水中から大気中へおよび大気中から水中への自機が移動する双方の可能性があるときに推定の周期を変更する場合について説明したが、これに限定されない。例えば、スマートフォン1は、水中から大気中または大気中から水中のいずれか一方の可能性があるときに推定の周期を変更してもよい。
上記の実施形態において、スマートフォン1は、加速度の方向および大きさに基づいて、重力方向における自機の速度(移動量)を検出することができる。スマートフォン1は、検出した自機の速度に基づいて、推定の周期を速度(自機の移動量)に応じた周期に動的に変更してもよい。例えば、スマートフォン1は、重力方向における自機の速度が早くなるにしたがって、推定の周期を短くしてもよい。例えば、スマートフォン1は、重力方向における速度が遅くなるにしたがって推定の周期を長くしてもよい。
例えば、コントローラ10は、図10に示すステップS309の処理を、自機の速度を特定し、速度に対応した周期を推定の周期に設定する処理に変更することができる。コントローラ10は、速度と周期との関係を示すテーブル、算出プログラム等を用いて、速度に対応した周期を特定することができる。
例えば、落としたスマートフォン1が水に浸かった場合、スマートフォン1は、水中に沈む可能性がある。上記の実施形態において、スマートフォン1は、水中であると推定した場合、重力方向への移動量を算出し、入水した位置から遠ざかるにしたがって、推定の周期を長くしてもよい。例えば、スマートフォン1は、入水した位置から所定の位置になった場合に、推定の周期的な実行を中止してもよい。
例えば、コントローラ10は、図10に示すステップS309の処理を、気圧センサ19によって水圧に基づいて水深を測定し、測定した水深に対応した周期を推定の周期に設定する処理に変更することができる。コントローラ10は、水深と周期との関係を示すテーブル、算出プログラム等を用いて、水深に対応した周期を特定することができる。
上記の実施形態では、スマートフォン1は、加速度センサ15を用いて重力方向を推定する場合について説明したが、これに限定されない。スマートフォン1は、重力方向を判別する第2のセンサを有してもよい。第2のセンサは、例えば、重力センサ、速度センサを含む。第2のセンサは、x軸方向、y軸方向およびz軸方向に働く重力を測定できる。スマートフォン1は、第2のセンサの測定結果に基づいて、重力方向を判別してもよい。
上記の実施形態では、タッチスクリーン2Bを備える携帯機器の例として、スマートフォン1について説明したが、添付の請求項に係る携帯機器は、スマートフォンに限定されない。添付の請求項に係る携帯機器は、スマートフォン以外の携帯電子機器であってもよい。携帯電子機器は、例えば、モバイルフォン、タブレット、携帯型パソコン、デジタルカメラ、スマートウォッチ、メディアプレイヤ、電子書籍リーダ、ナビゲータ、及びゲーム機を含むが、これに限定されない。
添付の請求項に係る技術を完全かつ明瞭に開示するために特徴的な実施形態に関し記載してきた。しかし、添付の請求項は、上記実施形態に限定されるべきものでなく、本明細書に示した基礎的事項の範囲内で当該技術分野の当業者が創作しうるすべての変形例及び代替可能な構成を具現化するように構成されるべきである。