本発明を実施するための実施形態を、図面を参照しつつ詳細に説明する。以下では、本発明に係る携帯端末の一例として、スマートフォンについて説明する。
(実施形態1)
図1を参照しつつ、実施形態に係るスマートフォン1の機能構成の一例を説明する。図1は、実施形態1に係るスマートフォンの機能構成を示すブロック図である。以下の説明においては、同様の構成要素に同一の符号を付すことがある。さらに、重複する説明は省略することがある。
図1に示すように、スマートフォン1は、タッチスクリーンディスプレイ2と、ボタン3と、照度センサ4と、近接センサ5と、通信ユニット6と、レシーバ7と、マイク8と、ストレージ9と、コントローラ10と、スピーカ11と、カメラ12と、赤外線照射部13と、コネクタ14と、加速度センサ15と、方位センサ16とを備える。
タッチスクリーンディスプレイ2は、ディスプレイ2Aと、タッチスクリーン2Bとを有する。ディスプレイ2A及びタッチスクリーン2Bは、例えば、重ねて配置されてもよいし、並べて配置されてもよいし、離して配置されてもよい。ディスプレイ2Aとタッチスクリーン2Bとが重ねて配置される場合、例えば、ディスプレイ2Aの1ないし複数の辺がタッチスクリーン2Bのいずれの辺とも沿っていなくてもよい。タッチスクリーンディスプレイ2は、表示部の一例である。
ディスプレイ2Aは、液晶ディスプレイ(LCD:Liquid Crystal Display)、有機ELディスプレイ(OELD:Organic Electro−Luminescence Display)、又は無機ELディスプレイ(IELD:Inorganic Electro−Luminescence Display)等の表示デバイスを備える。ディスプレイ2Aは、文字、画像、記号、及び図形等を表示する。ディスプレイ2Aが表示する文字、画像、記号、及び図形等を含む画面には、ロック画面と呼ばれる画面、ホーム画面と呼ばれる画面、アプリケーションの実行中に表示されるアプリケーション画面が含まれる。ホーム画面は、デスクトップ、待受画面、アイドル画面、標準画面、アプリ一覧画面又はランチャー画面と呼ばれることもある。
タッチスクリーン2Bは、タッチスクリーン2Bに対する指、ペン、又はスタイラスペン等の接触を検出する。タッチスクリーン2Bは、複数の指、ペン、又はスタイラスペン等(以下、単に「指」という)がタッチスクリーン2B(タッチスクリーンディスプレイ2)に接触したときのタッチスクリーン2B上の位置(以下、接触位置と表記する)を検出することができる。タッチスクリーン2Bは、タッチスクリーン2Bに対する指の接触を、接触位置とともにコントローラ10に通知する。タッチスクリーン2Bは、接触位置検出部の一例である。
タッチスクリーン2Bの検出方式は、静電容量方式、抵抗膜方式、表面弾性波方式(又は超音波方式)、赤外線方式、電磁誘導方式、及び荷重検出方式等の任意の方式でよい。以下の説明では、説明を簡単にするため、利用者はスマートフォン1を操作するために指を用いてタッチスクリーン2Bに接触するものと想定する。
コントローラ10(スマートフォン1)は、タッチスクリーン2Bにより検出された接触、接触が検出された位置、接触が検出された位置の変化、接触が検出された間隔、及び接触が検出された回数の少なくとも1つに基づいて、ジェスチャの種別を判別する。ジェスチャは、指を用いて、タッチスクリーン2B(タッチスクリーンディスプレイ2)に対して行われる操作である。コントローラ10(スマートフォン1)が、タッチスクリーン2Bを介して判別するジェスチャには、例えば、タッチ、ロングタッチ、リリース、スワイプ、タップ、ダブルタップ、ロングタップ、ドラッグ、フリック、ピンチイン、及びピンチアウトが含まれるが、これらに限定されない。
ボタン3は、利用者からの操作入力を受け付ける。ボタン3の数は、単数であっても、複数であってもよい。
照度センサ4は、照度を検出する。照度は、照度センサ4の測定面の単位面積に入射する光束の値である。照度センサ4は、例えば、ディスプレイ2Aの輝度の調整に用いられる。
近接センサ5は、近隣の物体の存在を非接触で検出する。近接センサ5は、磁界の変化又は超音波の反射波の帰還時間の変化等に基づいて物体の存在を検出する。近接センサ5は、例えば、ディスプレイ2Aが顔に近づけられたことを検出する。照度センサ4及び近接センサ5は、1つのセンサとして構成されていてもよい。照度センサ4は、近接センサとして用いられてもよい。
通信ユニット6は、無線により通信する。通信ユニット6によってサポートされる無線通信規格には、例えば、2G、3G、4G等のセルラーフォンの通信規格と、近距離無線の通信規格がある。セルラーフォンの通信規格としては、例えば、LTE(Long Term Evolution)、W−CDMA(Wideband Code Division Multiple Access)、WiMAX(Worldwide Interoperability for Microwave Access)、CDMA2000、PDC(Personal Digital Cellular)、GSM(登録商標)(Global System for Mobile Communications)、PHS(Personal Handy−phone System)等がある。近距離無線の通信規格としては、例えば、IEEE802.11、Bluetooth(登録商標)、IrDA(Infrared Data Association)、NFC(Near Field Communication)、WPAN(Wireless Personal Area Network)等がある。WPANの通信規格には、例えば、ZigBee(登録商標)がある。通信ユニット6は、上述した通信規格の1つ又は複数をサポートしていてもよい。
レシーバ7は、音出力部である。レシーバ7は、コントローラ10から送信される音信号を音として出力する。レシーバ7は、例えば、通話時に相手の声を出力するために用いられる。マイク8は、音入力部である。マイク8は、利用者の音声等を音信号へ変換してコントローラ10へ送信する。
ストレージ9は、プログラム及びデータを記憶する。ストレージ9は、コントローラ10の処理結果を一時的に記憶する作業領域としても利用される。ストレージ9は、半導体記憶媒体、及び磁気記憶媒体等の任意の非一過的(non−transitory)な記憶媒体を含んでよい。ストレージ9は、複数の種類の記憶媒体を含んでよい。ストレージ9は、メモリカード、光ディスク、又は光磁気ディスク等の記憶媒体と、記憶媒体の読み取り装置との組み合わせを含んでよい。ストレージ9は、RAM(Random Access Memory)等の一時的な記憶領域として利用される記憶デバイスを含んでよい。
ストレージ9に記憶されるプログラムには、フォアグランド又はバックグランドで実行されるアプリケーションと、アプリケーションの動作を支援する制御プログラム(図示略)とが含まれる。フォアグランドで実行されるアプリケーションは、例えば、ディスプレイ2Aに画面が表示される。制御プログラムには、例えば、OSが含まれる。アプリケーション及び基本プログラムは、通信ユニット6による無線通信又は非一過的な記憶媒体を介してストレージ9にインストールされてもよい。
ストレージ9は、視線位置検出プログラム9A、接触位置補正プログラム9B、電話アプリケーション9C、設定データ9Zなどを記憶する。
視線位置検出プログラム9Aは、タッチスクリーンディスプレイ2に対する利用者の視線位置を検出するための機能を提供する。なお、視線位置は、利用者の眼球内にある瞳孔の中心位置を起点として直線的に延伸する視線がタッチスクリーンディスプレイ2と交差するときのタッチスクリーンディスプレイ2上の位置に該当する。
視線位置検出プログラム9Aは、例えば、利用者の画像に対して角膜反射法に基づくアルゴリズムを適用することにより、上記視線位置を検出する。具体的には、視線位置検出プログラム9Aは、利用者の画像を取得する際に、赤外線照射部13から赤外線を照射させる。視線位置検出プログラム9Aは、取得した利用者の画像から、瞳孔の位置と赤外線の角膜反射の位置をそれぞれ特定する。視線位置検出プログラム9Aは、瞳孔の位置と赤外線の角膜反射の位置の位置関係に基づいて、利用者の視線の方向を特定する。視線位置検出プログラム9Aは、瞳孔の位置が角膜反射の位置よりも目尻側にあれば、視線の方向は目尻側であると判定し、瞳孔の位置が角膜反射の位置よりも目頭側にあれば、視線の方向は目頭側であると判定する。視線位置検出プログラム9Aは、例えば、虹彩の大きさに基づいて、利用者の眼球とタッチスクリーンディスプレイ2との距離を算出する。視線位置検出プログラム9Aは、利用者の視線の方向と、利用者の眼球とタッチスクリーンディスプレイ2との距離とに基づいて、利用者の眼球内にある瞳孔の中心位置から、瞳孔を起点とする視線がタッチスクリーンディスプレイ2と交差するときのタッチスクリーンディスプレイ2上の位置である視線位置を検出する。
上記の例では、視線位置検出プログラム9Aが、角膜反射法を利用した処理を実行することにより、利用者の視線位置を検出する場合を説明したが、この例には限られない。例えば、視線位置検出プログラム9Aが、利用者の画像について画像認識処理を実行することにより、上記視線位置を検出するようにしてもよい。例えば、視線位置検出プログラム9Aは、利用者の画像から、利用者の眼球を含む所定の領域を抽出し、目頭と虹彩との位置関係に基づいて視線方向を特定し、特定した視線方向と、利用者の眼球からタッチスクリーンディスプレイ2までの距離とに基づいて上記視線位置を検出する。あるいは、視線位置検出プログラム9Aは、利用者がタッチスクリーンディスプレイ2上の表示領域各所を閲覧しているときの複数の眼球の画像を参照画像としてそれぞれ蓄積しておき、参照画像と、判定対象として取得される利用者の眼球の画像とを照合することにより、上記視線位置を検出する。視線位置検出プログラム9Aは、接触位置検出部の一例である。
接触位置補正プログラム9Bは、タッチスクリーンディスプレイ2に対する接触位置と当該接触位置の検出が行われた際のタッチスクリーンディスプレイ2に対する視線位置との間に差分が生じた場合、当該接触位置の検出が行われた際のタッチスクリーンディスプレイ2に対する視線位置に基づいてタッチスクリーンディスプレイ2に対する接触位置を補正するための機能を提供する。
具体的に説明すると、接触位置補正プログラム9Bは、タッチスクリーンディスプレイ2に対する接触位置とタッチスクリーンディスプレイ2に対する視線位置とが完全一致しない場合には、接触位置と視線位置との間に差分が生じたと判定する。あるいは、接触位置補正プログラム9Bは、タッチスクリーンディスプレイ2に対する接触位置とタッチスクリーンディスプレイ2に対する視線位置とが一致しない場合、接触位置と視線位置との間の距離を検出し、検出した距離が閾値を超える場合には、接触位置と視線位置との間に差分が生じたと判定してもよい。
接触位置補正プログラム9Bは、接触位置と視線位置との間に差分が生じたと判定すると、接触位置の検出が行われた際のタッチスクリーンディスプレイ2に対する上記視線位置を、補正後の接触位置として決定する。あるいは、接触位置補正プログラム9Bは、接触位置と視線位置との間に差分が生じたと判定すると、タッチスクリーンディスプレイ2に対する接触位置と当該接触位置の検出が行われた際のタッチスクリーンディスプレイ2に対する上記視線位置とを結ぶ線上の所定位置を補正後の接触位置に決定する。あるいは、接触位置補正プログラム9Bは、接触位置と視線位置との間に差分が生じたと判定すると、タッチスクリーンディスプレイ2に表示される画面に含まれる複数の操作対象の中から、上記視線位置に対応する操作対象を1つ特定し、特定した操作対象がタッチスクリーンディスプレイ2に表示されている位置を補正後の上記接触位置として決定する。
電話アプリケーション9Cは、無線通信による通話のための通話機能を提供する。電話アプリケーション9Cにより提供される機能には、通話を実行するための画面をタッチスクリーンディスプレイ2に表示する機能が含まれる。
設定データ9Zは、制御プログラム、視線位置検出プログラム9A及び接触位置補正プログラム9Bによる機能に基づいて実行される処理に用いられる各種データを含んで構成される。設定データ9Zは、例えば、利用者の眼球に関する各種データを含んでよい。設定データ9Zは、例えば、補正後の上記接触位置を決定するために用いるパラメータを含んでよい。
コントローラ10は、演算処理装置である。演算処理装置は、例えば、CPU(Central Processing Unit)、SoC(System−on−a−Chip)、MCU(Micro Control Unit)、FPGA(Field−Programmable Gate Array)、およびコプロセッサを含むが、これらに限定されない。コントローラ10は、スマートフォン1の動作を統括的に制御して各種の機能を実現する。コントローラ10は、制御部の一例である。
具体的には、コントローラ10は、ストレージ9に記憶されているデータを必要に応じて参照しつつ、ストレージ9に記憶されているプログラムに含まれる命令を実行する。そして、コントローラ10は、データ及び命令に応じて機能部を制御し、それによって各種機能を実現する。機能部は、例えば、ディスプレイ2A、通信ユニット6、マイク8、スピーカ11、及び赤外線照射部13を含むが、これらに限定されない。コントローラ10は、検出部の検出結果に応じて、制御を変更することがある。検出部は、例えば、タッチスクリーン2B、ボタン3、照度センサ4、近接センサ5、マイク8、カメラ12、加速度センサ15、及び方位センサ16を含むが、これらに限定されない。
コントローラ10は、視線位置検出プログラム9Aを実行することにより、上記視線位置を検出する処理を実行する。コントローラ10は、接触位置補正プログラム9Bを実行することにより、次の処理を実行する。すなわち、コントローラ10は、タッチスクリーンディスプレイ2に対する接触位置と当該接触位置の検出が行われた際のタッチスクリーンディスプレイ2に対する視線位置との間に差分が生じた場合、当該接触位置の検出が行われた際のタッチスクリーンディスプレイ2に対する視線位置に基づいてタッチスクリーンディスプレイ2に対する接触位置を補正する。
以下、図2〜図4を用いて、実施形態1に係るスマートフォン1により実行される処理の例を説明する。図2〜図4は、実施形態1に係るスマートフォン1により実行される処理の例を説明するための図である。図2及び図3に示す目100は、スマートフォン1を操作する利用者の目に該当する。図2及び図3に示す指200は、スマートフォン1を操作する利用者の指に該当する。
図2に示すように、スマートフォン1は、タッチスクリーンディスプレイ2に対する接触位置P1と、タッチスクリーンディスプレイ2に対する視線位置P2との間に差分があるかを判定する(ステップS11)。視線位置P2は、タッチスクリーン2Bにより接触位置P1の検出が行われた際の利用者の視線位置に対応する。
スマートフォン1は、判定の結果、接触位置P1と視線位置P2との間に差分がある場合、接触位置P1の検出が行われた際のタッチスクリーンディスプレイ2に対する視線位置P2を、補正後の接触位置P3として決定する(ステップS12)。スマートフォン1は、利用者によって実際に操作された接触位置P1に対応する処理を実行するのではなく、補正後の接触位置P3に対応する処理を実行する。
図3に示すように、スマートフォン1は、タッチスクリーンディスプレイ2に対する接触位置P1と、タッチスクリーンディスプレイ2に対する視線位置P2との間に差分があるかを判定する(ステップS21)。
スマートフォン1は、判定の結果、接触位置P1と視線位置P2との間に差分がある場合、タッチスクリーンディスプレイ2に対する接触位置P1と当該接触位置P1の検出が行われた際のタッチスクリーンディスプレイ2に対する視線位置P2とを結ぶ線上の所定位置を、補正後の接触位置P3として決定する(ステップS22)。図3に示す例では、スマートフォン1は、例えば、接触位置P1と視線位置P2とを結ぶ線分の中点を、補正後の接触位置P3に決定する。スマートフォン1は、利用者によって実際に操作された接触位置P1に対応する処理を実行するのではなく、補正後の接触位置P3に対応する処理を実行する。
図4に示すように、スマートフォン1は、タッチスクリーンディスプレイ2に電話アプリケーション9Cの画面50を表示する(ステップS31)。画面50に含まれる複数のキーは、操作対象の一例である。
続いて、スマートフォン1は、タッチスクリーンディスプレイ2に表示される画面50に対する接触位置P1と、タッチスクリーンディスプレイ2に対する視線位置P2との間に差分があるかを判定する(ステップS32)。
スマートフォン1は、判定の結果、接触位置P1と視線位置P2との間に差分がある場合、複数の操作対象として画面50に含まれる複数のキーの中から視線位置P2に対応するキーを1つ特定し、特定したキーがタッチスクリーンディスプレイ2に表示されている位置を補正後の接触位置P3として決定する(ステップS33)。図4に示す例では、スマートフォン1は、視線位置P2に対応するキー50kを特定し、特定したキー50kが表示されている位置を補正後の接触位置P3に決定する。スマートフォン1は、利用者によって実際に操作された接触位置P1に対応する処理を実行するのではなく、補正後の接触位置P3に対応する処理を実行する。その結果、例えば、画面50には数字の「5」が表示される。
スピーカ11は、音出力部である。スピーカ11は、コントローラ10から送信される音信号を音として出力する。スピーカ11は、例えば、着信音及び音楽を出力するために用いられる。レシーバ7及びスピーカ11の一方が、他方の機能を兼ねてもよい。
カメラ12は、撮影した画像を電気信号へ変換する。カメラ12は、ディスプレイ2Aに面している物体を撮影するインカメラである。カメラ12は、例えば、タッチスクリーンディスプレイ2に視線を向ける利用者の眼球の画像を撮影する。カメラ12は、インカメラ及びアウトカメラを切り換えて利用可能なカメラユニットとしてスマートフォン1に実装されてもよい。赤外線照射部13は、カメラ12により実行される撮影に同期して、赤外線を照射する。
コネクタ14は、他の装置が接続される端子である。コネクタ14は、USB(Universal Serial Bus)、HDMI(登録商標)(High−Definition Multimedia Interface)、ライトピーク(サンダーボルト(登録商標))、イヤホンマイクコネクタのような汎用的な端子であってもよい。コネクタ14は、Dockコネクタのような専用の端子でもよい。コネクタ14に接続される装置は、例えば、外部ストレージ、スピーカ、及び通信装置を含むが、これらに限定されない。
加速度センサ15は、スマートフォン1に作用する加速度の方向及び大きさを検出する。方位センサ16は、例えば、地磁気の向きを検出し、地磁気の向きに基づいて、スマートフォン1の向き(方位)を検出する。
スマートフォン1は、上記の各機能部の他、GPS受信機、及びバイブレータを備えてもよい。GPS受信機は、GPS衛星からの所定の周波数帯の電波信号を受信し、受信した電波信号の復調処理を行って、処理後の信号をコントローラ10に送出する。バイブレータは、スマートフォン1の一部又は全体を振動させる。バイブレータは、振動を発生させるために、例えば、圧電素子、又は偏心モータなどを有する。図1には示していないが、バッテリなど、スマートフォン1の機能を維持するために当然に用いられる機能部はスマートフォン1に実装される。
図5〜図8を参照しつつ、実施形態1に係るスマートフォン1による処理の流れを説明する。図5〜図8は、実施形態1に係るスマートフォン1による処理の流れを示すフローチャートである。図5〜図8に示す処理は、コントローラ10が、ストレージ9に記憶されている視線位置検出プログラム9A、及び接触位置補正プログラム9Bなどを実行することにより実現される。
図5を用いて、実施形態1に係るスマートフォン1による基本的な処理の流れを説明する。図5に示すように、コントローラ10は、タッチスクリーンディスプレイ2に対する視線位置が検出されたかを判定する(ステップS101)。コントローラ10は、判定の結果、タッチスクリーンディスプレイ2に対する視線位置が検出されない場合には(ステップS101,No)、ステップS101の処理手順を繰り返す。
一方、コントローラ10は、判定の結果、タッチスクリーンディスプレイ2に対する視線位置が検出された場合には(ステップS101,Yes)、タッチスクリーンディスプレイ2に対する接触位置が検出されたかを判定する(ステップS102)。コントローラ10は、判定の結果、タッチスクリーンディスプレイ2に対する接触位置が検出されない場合には(ステップS102,No)、ステップS102の処理手順を繰り返す。
一方、コントローラ10は、判定の結果、タッチスクリーンディスプレイ2に対する接触位置が検出された場合には(ステップS102,Yes)、ステップS101で検出された視線位置と、ステップS102で検出された接触位置との間に差分があるかを判定する(ステップS103)。
コントローラ10は、判定の結果、ステップS101で検出された視線位置と、ステップS102で検出された接触位置との間に差分がある場合には(ステップS103,Yes)、ステップS101で検出された視線位置に基づいて、ステップS102で検出された接触位置の補正を実行する(ステップS104)。
続いて、コントローラ10は、ステップS104における補正後の接触位置に基づく処理を実行し(ステップS105)、図5に示す処理を終了する。
上記ステップS103において、コントローラ10は、判定の結果、ステップS101で検出された視線位置と、ステップS102で検出された接触位置との間に差分がない場合には(ステップS103,No)、ステップS102で検出された接触位置に基づく処理を実行し(ステップS106)、図5に示す処理を終了する。
上記図5に示す処理において、ステップS101の処理手順と、ステップS102の処理手順は、順序が逆であってもよい。また、上記図5に示す処理において、タッチスクリーンディスプレイ2に対する視線位置が検出されない状態で、接触位置だけが先に検出された場合には、接触位置に基づいて処理を実行するような設定に変更可能としてもよい。
図6を用いて、上記図2に対応するスマートフォン1による処理の流れを説明する。図6に示すように、コントローラ10は、タッチスクリーンディスプレイ2に対する視線位置が検出されたかを判定する(ステップS201)。コントローラ10は、判定の結果、タッチスクリーンディスプレイ2に対する視線位置が検出されない場合には(ステップS201,No)、ステップS201の処理手順を繰り返す。
一方、コントローラ10は、判定の結果、タッチスクリーンディスプレイ2に対する視線位置が検出された場合には(ステップS201,Yes)、タッチスクリーンディスプレイ2に対する接触位置が検出されたかを判定する(ステップS202)。コントローラ10は、判定の結果、タッチスクリーンディスプレイ2に対する接触位置が検出されない場合には(ステップS202,No)、ステップS202の処理手順を繰り返す。
一方、コントローラ10は、判定の結果、タッチスクリーンディスプレイ2に対する接触位置が検出された場合には(ステップS202,Yes)、ステップS201で検出された視線位置と、ステップS202で検出された接触位置との間に差分があるかを判定する(ステップS203)。
コントローラ10は、判定の結果、ステップS201で検出された視線位置と、ステップS202で検出された接触位置との間に差分がある場合には(ステップS203,Yes)、ステップS201で検出された視線位置を、補正後の接触位置として決定する(ステップS204)。これにより、例えば、指がキーボード上にある視線位置を遮らないように、視線位置から離れた箇所を接触位置とすることができる。
続いて、コントローラ10は、ステップS204における補正後の接触位置に基づく処理を実行し(ステップS205)、図6に示す処理を終了する。
上記ステップS203において、コントローラ10は、判定の結果、ステップS201で検出された視線位置と、ステップS202で検出された接触位置との間に差分がない場合には(ステップS203,No)、ステップS202で検出された接触位置に基づく処理を実行し(ステップS206)、図6に示す処理を終了する。
図7を用いて、上記図3に対応するスマートフォン1による処理の流れを説明する。図7に示すように、コントローラ10は、タッチスクリーンディスプレイ2に対する視線位置が検出されたかを判定する(ステップS301)。コントローラ10は、判定の結果、タッチスクリーンディスプレイ2に対する視線位置が検出されない場合には(ステップS301,No)、ステップS301の処理手順を繰り返す。
一方、コントローラ10は、判定の結果、タッチスクリーンディスプレイ2に対する視線位置が検出された場合には(ステップS301,Yes)、タッチスクリーンディスプレイ2に対する接触位置が検出されたかを判定する(ステップS302)。コントローラ10は、判定の結果、タッチスクリーンディスプレイ2に対する接触位置が検出されない場合には(ステップS302,No)、ステップS302の処理手順を繰り返す。
一方、コントローラ10は、判定の結果、タッチスクリーンディスプレイ2に対する接触位置が検出された場合には(ステップS302,Yes)、ステップS301で検出された視線位置と、ステップS302で検出された接触位置との間に差分があるかを判定する(ステップS303)。
コントローラ10は、判定の結果、ステップS301で検出された視線位置と、ステップS302で検出された接触位置との間に差分がある場合には(ステップS303,Yes)、ステップS301で検出された視線位置と、ステップS302で検出された接触位置とを結ぶ線上の所定位置を、補正後の接触位置として決定する(ステップS304)。
続いて、コントローラ10は、ステップS304における補正後の接触位置に基づく処理を実行し(ステップS305)、図7に示す処理を終了する。
上記ステップS303において、コントローラ10は、判定の結果、ステップS301で検出された視線位置と、ステップS302で検出された接触位置との間に差分がない場合には(ステップS303,No)、ステップS302で検出された接触位置に基づく処理を実行し(ステップS306)、図7に示す処理を終了する。
図8を用いて、上記図4に対応するスマートフォン1による処理の流れを説明する。図8に示すように、コントローラ10は、タッチスクリーンディスプレイ2に対する視線位置が検出されたかを判定する(ステップS401)。コントローラ10は、判定の結果、タッチスクリーンディスプレイ2に対する視線位置が検出されない場合には(ステップS401,No)、ステップS401の処理手順を繰り返す。
一方、コントローラ10は、判定の結果、タッチスクリーンディスプレイ2に対する視線位置が検出された場合には(ステップS401,Yes)、タッチスクリーンディスプレイ2に対する接触位置が検出されたかを判定する(ステップS402)。コントローラ10は、判定の結果、タッチスクリーンディスプレイ2に対する接触位置が検出されない場合には(ステップS402,No)、ステップS402の処理手順を繰り返す。
一方、コントローラ10は、判定の結果、タッチスクリーンディスプレイ2に対する接触位置が検出された場合には(ステップS402,Yes)、ステップS401で検出された視線位置と、ステップS402で検出された接触位置との間に差分があるかを判定する(ステップS403)。
コントローラ10は、判定の結果、ステップS401で検出された視線位置と、ステップS402で検出された接触位置との間に差分がある場合には(ステップS403,Yes)、タッチスクリーンディスプレイ2に表示される複数の操作対象の中から視線位置に対応する操作対象を1つ特定し、特定した操作対象の表示位置を補正後の接触位置として決定する(ステップS404)。
続いて、コントローラ10は、ステップS404における補正後の接触位置に基づく処理を実行し(ステップS405)、図8に示す処理を終了する。
上記ステップS403において、コントローラ10は、判定の結果、ステップS401で検出された視線位置と、ステップS402で検出された接触位置との間に差分がない場合には(ステップS403,No)、ステップS402で検出された接触位置に基づく処理を実行し(ステップS406)、図8に示す処理を終了する。
上記の実施形態1では、スマートフォン1は、タッチスクリーンディスプレイ2に対する接触位置と当該接触位置の検出が行われた際のタッチスクリーンディスプレイ2に対する視線位置との間に差分が生じた場合、当該接触位置の検出が行われた際のタッチスクリーンディスプレイ2に対する視線位置に基づいてタッチスクリーンディスプレイ2に対する接触位置を補正する。このため、実施形態1によれば、利用者による入力の位置をより正確に調整することができる。
(実施形態2)
図9を参照しつつ、実施形態2に係るスマートフォン1の機能構成の一例を説明する。
図9は、実施形態2に係るスマートフォン1の機能構成を示すブロック図である。実施形態2に係るスマートフォン1の機能構成は、以下に説明する点が実施形態1とは異なる。
ストレージ9は、閾値データ9Dをさらに記憶する。閾値データは、コントローラ10により実行される処理に用いられる。閾値データ9Dは、スマートフォン1に作用する振動の大きさを判定するためのデータである。ここで、振動の大きさとは、単位時間内に発生した最大振幅のことである。
接触位置補正プログラム9Bは、タッチスクリーンディスプレイ2に対する接触位置と当該接触位置の検出が行われた際のタッチスクリーンディスプレイ2に対する視線位置との間に差分が生じた場合に、当該接触位置の検出が行われた際のスマートフォン1に作用する振動の大きさが所定の閾値以上であるかを判定する機能をさらに提供する。接触位置補正プログラム9Bは、判定の結果、スマートフォン1に作用する振動の大きさが所定の閾値以上である場合には上記接触位置を補正し、スマートフォン1に作用する振動の大きさが所定の閾値以上ではない場合には上記接触位置を補正しない機能をさらに提供する。
コントローラ10は、接触位置補正プログラム9Bを実行することにより、以下の処理を実行する。コントローラ10は、加速度センサ15の検出結果に基づいて、スマートフォン1に作用する振動の大きさを計測する。コントローラ10は、タッチスクリーンディスプレイ2に対する接触位置と当該接触位置の検出が行われた際のタッチスクリーンディスプレイ2に対する視線位置との間に差分が生じた場合、スマートフォン1に作用する振動の大きさが所定の閾値以上であるかを判定する。コントローラ10は、判定の結果、スマートフォン1に作用する振動の大きさが所定の閾値以上である場合には上記接触位置を補正し、スマートフォン1に作用する振動の大きさが所定の閾値以上ではない場合には上記接触位置を補正しない。
図10を参照しつつ、実施形態2に係るスマートフォン1による処理の流れを説明する。図10は、実施形態2に係るスマートフォン1による処理の流れを示すフローチャートである。図10に示す処理は、コントローラ10が、ストレージ9に記憶されている視線位置検出プログラム9A、及び接触位置補正プログラム9Bなどを実行することにより実現される。図10に示す処理は、ステップS504及びステップS507の処理手順が、実施形態1に係るスマートフォン1による処理(例えば、図5に示す処理)とは異なる。
図10に示すように、コントローラ10は、タッチスクリーンディスプレイ2に対する視線位置が検出されたかを判定する(ステップS501)。コントローラ10は、判定の結果、タッチスクリーンディスプレイ2に対する視線位置が検出されない場合には(ステップS501,No)、ステップS501の処理手順を繰り返す。
一方、コントローラ10は、判定の結果、タッチスクリーンディスプレイ2に対する視線位置が検出された場合には(ステップS501,Yes)、タッチスクリーンディスプレイ2に対する接触位置が検出されたかを判定する(ステップS502)。コントローラ10は、判定の結果、タッチスクリーンディスプレイ2に対する接触位置が検出されない場合には(ステップS502,No)、ステップS502の処理手順を繰り返す。
一方、コントローラ10は、判定の結果、タッチスクリーンディスプレイ2に対する接触位置が検出された場合には(ステップS502,Yes)、ステップS501で検出された視線位置と、ステップS502で検出された接触位置との間に差分があるかを判定する(ステップS503)。
コントローラ10は、判定の結果、ステップS501で検出された視線位置と、ステップS502で検出された接触位置との間に差分がある場合には(ステップS503,Yes)、スマートフォン1に作用する振動の大きさが閾値以上であるかを判定する(ステップS504)。
コントローラ10は、判定の結果、スマートフォン1に作用する振動の大きさが閾値以上である場合には(ステップS504,Yes)、ステップS501で検出された視線位置に基づいて、ステップS502で検出された接触位置の補正を実行する(ステップS505)。
続いて、コントローラ10は、ステップS505における補正後の接触位置に基づく処理を実行し(ステップS506)、図10に示す処理を終了する。
上記ステップS504において、コントローラ10は、判定の結果、スマートフォン1に作用する振動の大きさが閾値以上ではない場合には(ステップS504,No)、ステップS502で検出された接触位置に基づく処理を実行せずに(ステップS507)、図10に示す処理を終了する。すなわち、コントローラ10は、スマートフォン1に対して所定の大きさの振動が作用している場合には、視線位置と接触位置とのずれが利用者の誤操作によるものであると判定し、接触位置に基づく処理を行わない。
上記ステップS503において、コントローラ10は、判定の結果、ステップS501で検出された視線位置と、ステップS502で検出された接触位置との間に差分がない場合には(ステップS503,No)、ステップS502で検出された接触位置に基づく処理を実行し(ステップS508)、図10に示す処理を終了する。
実施形態2によれば、スマートフォン1は、自機に対して所定の大きさの振動が作用している場合には接触位置の補正を行って、補正後の接触位置に基づく処理を実行する。一方、スマートフォン1は、自機に対して所定の大きさの振動が作用していない場合には、接触位置に基づく処理を実行しない。このため、実施形態2によれば、振動などの環境要因に基づく利用者の誤操作と単なる誤操作と区別して、利用者による入力の位置調整を状況に応じて実行することができる。
上記の実施形態では、添付の請求項に係る装置の例として、スマートフォン1について説明したが、添付の請求項に係る装置は、スマートフォン1に限定されない。添付の請求項に係る装置は、タッチスクリーンを有する電子機器であれば、スマートフォン以外の装置であってもよい。
添付の請求項に係る技術を完全かつ明瞭に開示するために特徴的な実施形態に関し記載してきた。しかし、添付の請求項は、上記の実施形態に限定されるべきものでなく、本明細書に示した基礎的事項の範囲内で当該技術分野の当業者が創作しうるすべての変形例及び代替可能な構成により具現化されるべきである。