<電子機器の外観>
図1及び2は電子機器1の外観の一例を示す斜視図及び背面図である。電子機器1は、例えば、スマートフォン等の携帯電話機である。図1及び2に示されるように、電子機器1は、平面視で略長方形の板状の機器ケース11を備えている。機器ケース11は電子機器1の外装を構成している。
機器ケース11の前面11aには、文字、記号、図形等の各種情報が表示される表示面121が位置している。本例では、表示面121は、機器ケース11に含まれる透明部分によって構成されている。表示面121の背面側には後述するタッチセンサ130が位置する。これにより、ユーザは、電子機器1の前面の表示面121を指等で操作することによって、電子機器1に対して各種情報を入力することができる。表示面121は、ユーザによって操作される操作対象面であると言える。図3は、ユーザが表示面121を指で操作する様子の一例を示す図である。図3では、ユーザが、右手300で電子機器1を持った状態で、左手310の人差し指311で表示面121を操作する様子が示されている。以後、表示面121を操作対象面121と呼ぶことがある。なお、ユーザは、指以外の操作物、例えば、スタイラスペンなどのタッチセンサ用ペンで表示面121を操作することによっても、電子機器1に対して各種情報を入力することができる。
機器ケース11の前面11aの上端部にはレシーバ穴12が位置している。前面11aの下端部にはスピーカ穴13が位置している。機器ケース11の下側の側面11cにはマイク穴14が位置している。
機器ケース11の前面11aの上端部からは、後述する第1カメラ190が有するレンズ191が視認可能となっている。図2に示されるように、機器ケース11の背面11bの上端部からは、後述する第2カメラ200が有するレンズ201が視認可能となっている。
電子機器1は、複数の操作ボタンを含む操作ボタン群140(後述の図4参照)を備える。複数の操作ボタンのそれぞれはハードウェアボタンである。具体的には、複数の操作ボタンのそれぞれは押しボタンである。なお、操作ボタン群140に含まれる少なくとも一つの操作ボタンは、表示面121に表示されるソフトウェアボタンであってもよい。
操作ボタン群140には、機器ケース11の前面11aの下端部に位置する操作ボタン141,142,143が含まれる。また、操作ボタン群140には、機器ケース11の表面に位置する電源ボタン及びボリュームボタンが含まれてもよい。
操作ボタン141は、例えばバックボタンである。バックボタンは、表示面121の表示を一つ前の表示に切り替えるための操作ボタンである。ユーザが操作ボタン141を操作することよって、表示面121の表示が一つ前の表示に切り替わる。操作ボタン142は、例えばホームボタンである。ホームボタンは、表示面121にホーム画面を表示させるための操作ボタンである。ユーザが操作ボタン142を操作することよって、表示面121にホーム画面が表示される。操作ボタン143は、例えば履歴ボタンである。履歴ボタンは、電子機器1で実行されたアプリケーションの履歴を表示面121に表示させるための操作ボタンである。ユーザが操作ボタン143を操作することよって、表示面121には、電子機器1で実行されたアプリケーションの履歴が表示される。
以下では、図1及び2に示されるXYZ直交座標系を用いて電子機器1を説明することがある。X軸方向、Y軸方向及びZ軸方向は、電子機器1の短手方向、長手方向及び厚み方向にそれぞれ設定されている。
<電子機器の電気的構成>
図4は電子機器1の電気的構成の一例を主に示すブロック図である。図4に示されるように、電子機器1は、制御部100、無線通信部110、表示部120、タッチセンサ130、操作ボタン群140及び加速度センサ150を備える。さらに電子機器1は、レシーバ160、スピーカ170、マイク180、第1カメラ190、第2カメラ200及び電池210を備える。電子機器1が備えるこれらの構成要素は、機器ケース11内に収められている。電子機器1は、一種のコンピュータであると言える。
制御部100は、電子機器1の他の構成要素を制御することによって、電子機器1の動作を統括的に管理することが可能である。制御部100は制御装置あるいは制御回路とも言える。制御部100は、以下にさらに詳細に述べられるように、種々の機能を実行するための制御及び処理能力を提供するために、少なくとも1つのプロセッサを含む。
種々の実施形態によれば、少なくとも1つのプロセッサは、単一の集積回路(IC)として、または複数の通信可能に接続された集積回路(IC)及び/またはディスクリート回路(discrete circuits)として実行されてもよい。少なくとも1つのプロセッサは、種々の既知の技術に従って実行されることが可能である。
1つの実施形態において、プロセッサは、例えば、関連するメモリに記憶された指示を実行することによって1以上のデータ計算手続又は処理を実行するように構成された1以上の回路又はユニットを含む。他の実施形態において、プロセッサは、1以上のデータ計算手続き又は処理を実行するように構成されたファームウェア(例えば、ディスクリートロジックコンポーネント)であってもよい。
種々の実施形態によれば、プロセッサは、1以上のプロセッサ、コントローラ、マイクロプロセッサ、マイクロコントローラ、特定用途向け集積回路(ASIC)、デジタル信号処理装置、プログラマブルロジックデバイス、フィールドプログラマブルゲートアレイ、またはこれらのデバイス若しくは構成の任意の組み合わせ、または他の既知のデバイス及び構成の組み合わせを含み、以下に説明される機能を実行してもよい。
本例では、制御部100は、CPU(Central Processing Unit)101、DSP(Digital Signal Processor)102及び記憶部103を備える。記憶部103は、ROM(Read Only Memory)及びRAM(Random Access Memory)などの、CPU101及びDSP102が読み取り可能な非一時的な記録媒体を含む。記憶部103が有するROMは、例えば、不揮発性メモリであるフラッシュROM(フラッシュメモリ)である。記憶部103には、電子機器1を制御するための複数の制御プログラム103a等が記憶されている。制御部100の各種機能は、CPU101及びDSP102が記憶部103内の各種制御プログラム103aを実行することによって実現される。
記憶部103内の複数の制御プログラム103aには、様々なアプリケーション(アプリケーションプログラム)が含まれている。記憶部103には、例えば、音声通話及びビデオ通話を行うための通話アプリケーション、ウェブサイトを表示するためのブラウザ、電子メールの作成、閲覧及び送受信を行うためのメールアプリケーションが記憶されている。また記憶部103には、第1カメラ190及び第2カメラ200を利用して被写体を撮影するためのカメラアプリケーション、記憶部103に記録されている静止画及び動画を表示するための記録画像表示アプリケーション、記憶部103に記憶されている音楽データの再生制御を行うための音楽再生制御アプリケーションなどが記憶されている。記憶部103内の少なくとも一つのアプリケーションは、記憶部103内にあらかじめ記憶されているものであってよい。また、記憶部103内の少なくとも一つのアプリケーションは、電子機器1が他の装置からダウンロードして記憶部103内に記憶したものであってよい。
なお、制御部100の構成は上記の例に限られない。制御部100は、例えば、複数のCPU101を備えてもよい。この場合、制御部100は、比較的複雑な処理を行う、処理能力が高いメインCPUと、比較的簡単な処理を行う、処理能力が低いサブCPUとを備えてもよい。また制御部100は、DSP102を備えなくてもよいし、複数のDSP102を備えてもよい。また、制御部100の全ての機能あるいは制御部100の一部の機能は、その機能の実現にソフトウェアが不要なハードウェア回路によって実現されてもよい。また記憶部103は、ROM及びRAM以外の、コンピュータが読み取り可能な非一時的な記録媒体を備えてもよい。記憶部103は、例えば、小型のハードディスクドライブ及びSSD(Solid State Drive)などを備えていてもよい。
無線通信部110は、アンテナ111を有している。無線通信部110は、アンテナ111を用いて、例えば複数種類の通信方式で無線通信することが可能である。無線通信部110の無線通信は、制御部100によって制御される。
無線通信部110は、携帯電話システムの基地局と無線通信することが可能である。無線通信部110は、当該基地局及びインターネット等のネットワークを通じて、電子機器1とは別の携帯電話機及びウェブサーバ等と通信することが可能である。電子機器1は、他の携帯電話機等と、データ通信、音声通話及びビデオ通話等を行うことが可能である。無線通信部110は無線通信回路と言える。
また無線通信部110、WiFi等の無線LAN(Local Area Network)を用いて無線通信を行うことが可能である。また無線通信部110は、近距離無線通信を行うことが可能である。例えば、無線通信部110は、Bluetooth(登録商標)に準拠して無線通信することが可能である。無線通信部110は、ZigBee(登録商標)及びNFC(Near Field Communication)の少なくとも一方に準拠して無線通信することが可能であってもよい。
無線通信部110は、アンテナ111で受信した信号に対して増幅処理等の各種処理を行い、処理後の受信信号を制御部100に出力する。制御部100は、入力される受信信号に対して各種処理を行って、当該受信信号に含まれる情報を取得する。また、制御部100は、情報を含む送信信号を無線通信部110に出力する。無線通信部110は、入力される送信信号に対して増幅処理等の各種処理を行って、処理後の送信信号をアンテナ111から無線送信する。
表示部120は、電子機器1の前面に位置する表示面121と、表示パネル122とを備える。表示パネル122は、例えば液晶表示パネルであって、液晶、ガラス基板、偏光板及びバックライト等を備える。表示パネル122は、各種情報を表示することが可能である。表示パネル122は、機器ケース11内において、表示面121と対向している。これにより、表示パネル122に表示される情報が表示面121に表示される。
タッチセンサ130は、表示面121に対する指等の操作物による操作を検出することが可能である。タッチセンサ130はタッチパネルとも呼ばれる。タッチセンサ130は、例えば、投影型静電容量方式のタッチセンサである。タッチセンサ130は、例えば、表示面121の裏側に位置する。ユーザが指等の操作物によって表示面121に対して操作を行ったとき、その操作に応じた電気信号をタッチセンサ130は制御部100に入力することが可能である。制御部100は、タッチセンサ130からの電気信号(出力信号)に基づいて、表示面121に対して行われた操作の内容を特定することが可能である。そして制御部100は、特定した操作内容に応じた処理を行うことが可能である。なお、表示パネル122及びタッチセンサ130の代わりに、タッチセンサが組み込まれたインセル型の表示パネルが採用されてもよい。
操作ボタン群140の各操作ボタンは、ユーザによって操作されると、操作されたことを示す操作信号を制御部100に出力することが可能である。これにより、制御部100は、各操作ボタンについて、当該操作ボタンが操作されたか否かを判断することができる。操作信号が入力された制御部100が他の構成要素を制御することによって、電子機器1では、操作された操作ボタンに割り当てられている機能が実行される。
マイク180は、電子機器1の外部から入力される音を電気的な音信号に変換して制御部100に出力することが可能である。電子機器1の外部からの音は、マイク穴14から電子機器1の内部に取り込まれてマイク180に入力される。
スピーカ170は、例えばダイナミックスピーカである。スピーカ170は、制御部100からの電気的な音信号を音に変換して出力することが可能である。スピーカ170から出力される音は、スピーカ穴13から外部に出力される。ユーザは、スピーカ穴13から出力される音を、電子機器1から離れた場所でも聞こえることが可能である。
レシーバ160は受話音を出力することが可能である。レシーバ160は例えばダイナミックスピーカである。レシーバ160は、制御部100からの電気的な音信号を音に変換して出力することが可能である。レシーバ160から出力される音はレシーバ穴12から外部に出力される。レシーバ穴12から出力される音の音量は、スピーカ穴13から出力される音の音量よりも小さくなっている。ユーザは、レシーバ穴12から出力される音を、当該レシーバ穴12に耳を近づけることによって聞くことができる。なお、レシーバ160の代わりに、機器ケース11の前面部分を振動させる、圧電振動素子等の振動素子を設けてもよい。この場合には、音は、当該前面部分の振動によりユーザに伝達される。
第1カメラ190は、レンズ191及びイメージセンサなどを備えている。第2カメラ200は、レンズ201及びイメージセンサなどを備えている。第1カメラ190及び第2カメラ200のそれぞれは、制御部100による制御に基づいて被写体を撮影し、撮影した被写体を示す静止画あるいは動画を生成して制御部100に出力することが可能である。
第1カメラ190のレンズ191は、機器ケース11の前面11aから視認可能となっている。したがって、第1カメラ190は、電子機器1の前面側(表示面121側)に存在する被写体を撮影することが可能である。第1カメラ190はインカメラと呼ばれる。一方で、第2カメラ200のレンズ201は、機器ケース11の背面11bから視認可能となっている。したがって、第2カメラ200は、電子機器1の背面側に存在する被写体を撮影することが可能である。第2カメラ200はアウトカメラと呼ばれる。
加速度センサ150は、電子機器1の加速度を検出することが可能である。加速度センサ150は例えば3軸加速度センサである。加速度センサ150は、X軸方向、Y軸方向及びZ軸方向(図1及び2参照)の電子機器1の加速度を検出することが可能である。加速度センサ150は、所定間隔ごとに、加速度を検出してその検出結果を出力する。電子機器1の加速度は、電子機器1の振動に応じて変化することから、加速度センサ150は電子機器1の振動を検出するセンサであると言える。ここで、振動は、周期的な振動と非周期的な振動の両方を含む概念である。振動は、揺れあるいは揺動とも言える。以後、加速度センサ150で検出される加速度を検出加速度と呼ぶことがある。
電池210は電子機器1の電源を出力することが可能である。電池210は例えば充電式の電池である。電池210から出力される電源は、電子機器1が備える制御部100及び無線通信部110などの各種構成に対して供給される。
なお電子機器1は、加速度センサ150を備えなくてもよい。この場合、電子機器1は、それとは別体の加速度センサと、無線あるいは有線で接続されてよい。また電子機器1は、加速度センサ150以外のセンサを備えてもよい。例えば、電子機器1は、気圧センサ、地磁気センサ、温度センサ、近接センサ、照度センサ、位置センサ及びジャイロセンサの少なくとも一つを備えてもよい。また電子機器1は、それとは別体の、加速度センサ150以外のセンサと、無線あるいは有線で接続されてもよい。
<操作対象面に対する操作の判定>
制御部100は、タッチセンサ130での検出結果に基づいて、タッチセンサ130で検出される操作がどのような操作であるかを判定する。言い換えれば、制御部100は、タッチセンサ130での検出結果に基づいて、操作対象面121に対する操作がどのような操作であるかを判定する。制御部100は、タッチセンサ130で検出される操作を判定する判定部として機能する。以後、タッチセンサ130で検出される操作を検出操作と呼ぶことがある。
制御部100は、検出操作が、例えば、タップ操作であるのか、ドラッグ操作であるのか、フリック操作であるのか、ピンチ操作であるのかを判定することができる。制御部100が判定する操作の種類はこの限りではない。
タップ操作とは、指等の操作物が操作対象面121に接触してからすぐに操作対象面121から離れる操作である。制御部100は、検出操作が、表示面121に表示されている表示物に対するタップ操作であると判定すると、当該表示物に対応けられた処理を実行することが可能である。タップ操作が行われた表示物が、アプリケーションを実行するためのアイコンである場合、制御部100は、当該アイコンに対応するアプリケーションを記憶部103内から読み出して実行する。
ドラッグ操作とは、指等の操作物が操作対象面121に接触した状態でスライドする操作である。言い換えれば、ドラッグ操作とは、操作物が操作対象面121に接触した状態で移動する操作である。ドラッグ操作は、スワイプ操作と呼ばれることがある。制御部100は、検出操作がドラッグ操作であると判定すると、例えば、表示部120に、表示面121の表示をスクロールさせたり、表示面121に表示されているページを変更させたり、表示面121に表示されるアイコン等の表示物を移動させたりすることができる。
フリック操作とは、操作対象面121を指等の操作物で払う操作である。制御部100は、検出操作がフリック操作であると判定すると、例えば、表示部120に、表示面121の表示をスクロールさせたり、表示面121に表示されているページを変更させたりすることができる。
ピンチ操作には、ピンチアウト操作とピンチイン操作の2種類が存在する。ピンチアウト操作とは、二本の指が操作対象面121に接触した状態で当該二本の指が離れる(開く)操作である。一方で、ピンチイン操作とは、二本の指が操作対象面121に接触した状態で当該二本の指が近づく(閉じる)操作である。制御部100は、検出操作がピンチアウト操作であると判定すると、例えば、表示部120に表示面121の表示を拡大させることができる。また制御部100は、検出操作がピンチイン操作であると判定すると、例えば、表示部120に表示面121の表示を縮小させることができる。
<操作の判定条件の決定>
電子機器1が振動している場合に、ユーザが、所定操作を操作対象面121に対して実行しようとした場合、操作対象面121の振動により、制御部100が、操作対象面121に対する操作を、当該所定操作とは別の操作として判定する可能がある。例えば、ユーザがタップ操作を操作対象面121に対して実行しようとした場合、操作対象面121の振動により、制御部100が、操作対象面121に対する操作を、例えばドラッグ操作として判定する可能がある。
そこで、本例では、制御部100は、操作対象面121に対する操作の判定条件を、加速度センサ150で検出される電子機器1の振動に基づいて決定する条件決定処理を実行する。これにより、操作対象面121に対する操作が、ユーザが意図した操作とは別の操作として判定される可能性を低減することができる。以下に条件決定処理について詳細に説明する。以後、条件決定処理を、振動に基づく条件決定処理と呼ぶことがある。
本例では、制御部100は、条件決定処理において、ドラッグ操作の判定条件を決定する。まずドラッグ操作の判定条件について説明する。以後、ドラッグ操作の判定条件をドラッグ判定条件と呼ぶことがある。
制御部100は、検出操作がドラッグ操作であるか否かを判定する場合には、操作物が操作対象面121に接触したとき、操作対象面121に対して第1判定領域400を設定する。第1判定領域400には、操作物が操作対象面121に接触したときの、操作対象面121に対する操作物の接触位置410が含まれる。以後、当該接触位置410を基準点410と呼ぶことがある。制御部100は、操作物が操作対象面121に接触したときに、操作物が操作対象面121に対して面接触しているときには、操作対象面121に対する操作物の接触領域の中心位置を接触位置とする。制御部100は、接触領域の中心位置以外の位置を接触位置としてもよい。図5は第1判定領域400の一例を示す図である。
ドラッグ判定条件には、例えば、第1条件と第2条件とが含まれる。第1条件は、例えば、操作物が、操作対象面121に接触した状態において、操作対象面121上を基準点410から第1判定領域400の外側に相対的に移動するという条件である。言い換えれば、第1条件は、操作対象面121に対する操作物の接触位置が基準点410から第1判定領域400の外側に移動するという条件である。第2条件は、操作物が操作対象面121に接触してからの、操作物の操作対象面121に対する接触時間がしきい値以上であるという条件である。操作物が操作対象面121上を相対的に移動するとは、操作物の絶対的な位置(言い換えれば、空間に対する位置)と、操作対象面121の絶対的な位置の少なくとも一方が変化して、互いに接触する操作物及び操作対象面121の位置関係が変化することを意味する。
制御部100は、タッチセンサ130での検出結果に基づいて、第1条件及び第2条件のそれぞれが満たされたと判定すると、検出操作をドラッグ操作であると判定する。つまり、制御部100は、操作物が、操作対象面121に接触した状態において、操作対象面121上を基準点410から第1判定領域400の外側に相対的に移動し、かつ、操作物が操作対象面121に接触してからの、操作物の操作対象面121に対する接触時間がしきい値以上のとき、検出操作がドラッグ操作であると判定する。言い換えれば、制御部100は、操作対象面121に対する操作物の接触位置が基準点410から第1判定領域400の外側に移動し、かつ、操作物が操作対象面121に接触してからの、操作物の操作対象面121に対する接触時間がしきい値以上のとき、検出操作がドラッグ操作であると判定する。
図6はユーザが指320でドラッグ操作を行う様子の一例を示す図である。図6に示されるように、操作物である指320が、操作対象面121に接触した状態において、基準点410から第1判定領域400の外側に移動し、かつ、指320が操作対象面121に接触してからの、指320の操作対象面121に対する接触時間がしきい値以上のとき、検出操作がドラッグ操作であると判定される。
図5に示されるように、第1判定領域400は、操作物が操作対象面121に接触したときの、当該操作物の操作対象面121での接触位置である基準点410を含む。図5には、第1判定領域400の初期範囲が示されている。後述するように、条件決定処理では、第1判定領域400が初期範囲から変更される。図5に示されるように、第1判定領域400の初期範囲は、基準点410を中心とする円形領域となっている。初期範囲の円形領域の直径を第1距離D1とすると、第1距離D1は、例えば、4mm~6mmに設定される。操作物が操作対象面121上を直線的に相対的に移動する場合、制御部100は、操作物が操作対象面121に接触した状態での、操作対象面121に対する操作物の基準点410からの相対的な移動距離が第1距離D1の半分よりも大きく、かつ第2条件を満たす場合、検出操作がドラッグ操作であると判定する。操作物が、操作対象面121に接触した状態で、操作対象面121上を基準点410から第1判定領域400の初期範囲の外側に相対的に移動し、かつ、操作物が操作対象面121に接触してからの、操作物の操作対象面121に対する接触時間がしきい値以上であるという条件は、ドラッグ判定条件の初期条件であると言える。電子機器1の動作が開始するときには、ドラッグ判定条件は初期条件に設定される。
タップ操作の判定条件(以後、タップ判定条件と呼ぶことがある)には、例えば、第3条件と第4条件とが含まれる。第3条件は、例えば、操作物が操作対象面121に接触してから操作対象面121から離れるまで第1判定領域400内に存在するという条件である。言い換えれば、第3条件は、操作物が操作対象面121に接触してから操作対象面121から離れるまで、操作対象面121に対する操作物の接触位置が、第1判定領域400内に存在するという条件である。第4条件は、例えば、操作物が操作対象面121に接触してから操作対象面121から離れるまでの時間がしきい値以下であるという条件である。制御部100は、タッチセンサ130での検出結果に基づいて、第3条件及び第4条件のそれぞれが満たされたと判定すると、検出操作をタップ操作であると判定する。つまり、制御部100は、操作物が、操作対象面121に接触してから操作対象面121から離れるまで、第1判定領域400内に存在し、かつ、操作物が操作対象面121に接触してから操作対象面121から離れるまでの時間がしきい値以下である場合には、検出操作をタップ操作として判定する。操作物が、操作対象面121に接触してから操作対象面121から離れるまで、第1判定領域400の初期範囲内に存在し、かつ、操作物が操作対象面121に接触してから操作対象面121から離れるまでの時間がしきい値以下であるという条件は、タップ判定条件の初期条件であると言える。電子機器1の動作が開始するときには、タップ判定条件は初期条件に設定される。
なお、ドラッグ判定条件の第2条件は、操作物が操作対象面121に接触してからの、操作物の操作対象面121に対する接触時間がしきい値よりも大きいという条件であってもよい。また、タップ判定条件の第4条件は、操作物が操作対象面121に接触してから操作対象面121から離れるまでの時間がしきい値未満であるという条件であってもよい。また、ドラッグ判定条件及びタップ判定条件の内容は上記の限りではない。
本例では、条件決定処理において、制御部100は、電子機器1の振動に基づいて、第1判定領域400の範囲を決定する。これにより、電子機器1の振動に基づいてドラッグ判定条件が決定される。図7は電子機器1がドラッグ判定条件を決定する場合の当該電子機器1の動作の一例を示すフローチャートである。
図7に示されるように、ステップs1において、制御部100は、加速度センサ150から検出加速度を取得する。次にステップs2において、制御部100は、ステップs1で取得した検出加速度に基づいて、電子機器1が振動しているか否かを判定する。制御部100は、例えば、電子機器1のX軸方向、Y軸方向及びZ軸方向の加速度を合成した合成加速度を求める。そして、制御部100は、合成加速度の大きさが一定時間内において増加及び減少を繰り返すときには、電子機器1が振動していると判定する。
ステップs2において、電子機器1が振動していないと判定されると、ステップs3において、制御部100は、ドラッグ判定条件を初期条件に設定する。これにより、ドラッグ操作の判定に使用される第1判定領域400が初期範囲に設定される。
一方で、ステップs2において、電子機器1が振動していると判定されると、ステップs4において、制御部100は、振動に基づく条件決定処理を行う。ステップs4では、制御部100は、ドラッグ操作の判定条件を初期条件から変更する。具体的には、制御部100は、第1判定領域400を初期範囲から変更する。ステップs4において、制御部100は、第1判定領域400を初期範囲よりも拡大する。例えば、制御部100は、第1判定領域400の直径を、第1距離D1のX倍(X>1)に設定する。Xの値は例えば2.0に設定される。
ステップs3の後、再度ステップs1が実行され、制御部100は以後同様に動作する。またステップs4の後、再度ステップs1が実行され、制御部100は以後同様に動作する。制御部100は、ステップs1~s4までの一連の処理を繰り返し実行する。制御部100は、電子機器1が振動している場合、ステップs4で決定される第1判定領域400を用いてドラッグ操作を判定する。
図8は、ステップs4の条件決定処理において決定される第1判定領域400の一例を示す図である。図8に示される第1判定領域400の直径は、初期範囲の直径のX倍となっている。
ここで、条件決定処理で決定される第1判定領域400の直径を第2距離D2とする。電子機器1が振動している場合であって、操作物が操作対象面121上を直線的に移動する場合、操作物が操作対象面121に接触した状態での、操作対象面121に対する操作物の基準点410からの相対的な移動距離が第2距離D2の半分よりも大きい場合、第1条件を満たすと判定される。電子機器1が振動している場合に、第1判定領域400が初期範囲から大きくなることによって、操作対象面121に対する操作が、ユーザが意図した操作とは別のドラッグ操作として判定される可能性を低減することができる。例えば、ユーザがタップ操作のつもりで操作対象面121に対して行った操作が、電子機器1において、誤ってドラッグ操作であると判定される可能性を低減することができる。また、制御部100がダブルタップ操作を判定することができる場合には、ユーザがダブルタップ操作のつもりで操作対象面121に対して行った操作が、電子機器1において、誤ってドラッグ操作であると判定される可能性を低減することができる。また、制御部100がロングタップ操作を判定することができる場合には、ユーザがロングタップ操作のつもりで操作対象面121に対して行った操作が、電子機器1において、誤ってドラッグ操作であると判定される可能性を低減することができる。ダブルタップ操作とは、操作物が操作対象面121に接触してからすぐに操作対象面121から離れる操作をすばやく2回行う操作である。ロングタップ操作とは、操作物が操作対象面121に接触してから、しばらく時間が経過した後に、操作物が操作対象面121から離れる操作である。
なお、第1判定領域400はタップ操作の判定でも使用されていることから、第1判定領域400を変更する処理は、ドラッグ操作の判定条件を変更する処理だけではなく、タップ操作の判定条件を変更する処理でもあると言える。したがって、本例に係る条件決定処理では、電子機器1の振動に基づいて、ドラッグ操作の判定条件だけではなく、タップ操作の判定条件も決定されると言える。電子機器1が振動していない場合には、タップ操作は初期条件に設定される。電子機器1の振動に基づいてタップ判定条件が決定されることによって、ユーザがタップ操作のつもり操作対象面121に行った操作を、制御部100はユーザの意図通りにタップ操作として判定することができる。
以上のように、本例では、制御部100は、操作対象面121に対する操作の判定条件を電子機器1の振動に基づいて決定する。これにより、電子機器1が振動している場合に、操作対象面121に対する操作が、ユーザが意図する操作とは別の操作として判定される可能性を低減することができる。よって、電子機器1の利便性が向上する。
制御部100は、条件決定処理において、電子機器1の振動の振幅(以後、単に振動振幅と呼ぶことがある)に基づいて、ドラッグ操作の判定条件を決定してもよい。この場合、制御部100は、ステップs4において、例えば、ステップs2で求めた合成加速度に基づいて振動振幅を求める。そして、制御部100は、求めた振動振幅に基づいて第1判定領域400を初期範囲から変更する。具体的には、制御部100は、上記のXの値を振動振幅に基づいて決定する。ステップs4において、制御部100は、振動振幅が大きいほど、Xの値を大きくする。これにより、振動振幅に合わせて第1判定領域400を広くすることができる。第1判定領域400を広くしすぎると、ユーザは、ドラッグ操作を行う場合に、操作物を大きく移動させる必要があることから、ドラッグ操作に関する操作性が低下する。本例のように、振動振幅に合わせて第1判定領域400を広くすることによって、ドラッグ操作に関する操作性が劣化する可能性を低減することができる。
条件決定処理において、例えば、制御部100は、振動振幅が1.5mm未満のとき、Xの値を1.5に設定する。また制御部100は、振動振幅が1.5mm以上3.5mm未満のとき、Xの値を2.0に設定する。そして制御部100は、振動振幅が3.5mm以上のとき、Xの値を2.5に設定する。
他の例としては、制御部100は、振動振幅が1.5mm未満のとき、Xの値を1.5に設定する。また制御部100は、振動振幅が1.5mm以上2.5mm未満のとき、Xの値を1.8に設定する。また制御部100は、振動振幅が2.5mm以上3.5m未満のとき、Xの値を2.0に設定する。そして制御部100は、振動振幅が3.5mm以上のとき、Xの値を2.5に設定する。
なお、電子機器1の振動の振幅に基づく第1判定領域400の決定方法は上記の例には限られない。例えば、Xの値は2段階で設定されてもよいし、5段階以上で設定されてもよい。また、Xの値を決定する際の振動振幅の場合分けは上記の例以外であってもよい。
このように、電子機器1の振動の振幅に基づいて操作の判定条件が決定されることによって、操作対象面121に対する操作がユーザが意図する操作とは別の操作として判定される可能性を低減しつつ、電子機器1に対する操作性が劣化する可能性を低減することができる。よって、電子機器1の利便性がさらに向上する。
条件決定処理において、制御部100は、電子機器1の振動の方向(以後、単に振動方向と呼ぶことがある)に基づいて、ドラッグ操作の判定条件を決定してもよい。この場合、制御部100は、ステップs4において、例えば、ステップs2で求めた合成加速度に基づいて振動方向を求める。そして、ステップs4において、制御部100は、求めた振動方向に基づいて第1判定領域400を初期範囲から変更する。例えば、制御部100は、振動方向に沿って第1判定領域400を拡大して、第1判定領域400を楕円形とする。制御部100は、例えば、第1判定領域400における振動方向の径を初期範囲の当該径のX倍とする。これにより、長軸の長さが第1距離D1のX倍であって、短軸の長さが第1距離D1である楕円形の第1判定領域400が得られる。なお、制御部100は、振動方向がZ軸方向に沿っている場合、第1判定領域400を初期範囲に設定する。
図9は、振動方向500がX軸方向に沿った方向である場合の第1判定領域400の一例を示す図である。図10は、振動方向500がY軸方向に沿った方向である場合の第1判定領域400の一例を示す図である。図11は、振動方向500がX軸方向及びY軸方向に対して斜め方向である場合の第1判定領域400の一例を示す図である。
ここで、ステップs4で決定される楕円形の第1判定領域400の長軸の長さを第3距離D3とする。図9の例では、操作物が操作対象面121上をX軸方向に沿って相対的に移動する場合、制御部100は、操作物が操作対象面121に接触した状態での、操作対象面121に対する操作物の基準点410からの相対的な移動距離が第3距離D3(つまり第1距離D1のX倍)の半分よりも大きい場合、第1条件を満たすと判定する。一方で、操作物が操作対象面121上をY軸方向に沿って相対的に移動する場合、制御部100は、操作物が操作対象面121に接触した状態での、操作対象面121に対する操作物の基準点410からの相対的な移動距離が第1距離D1の半分よりも大きい場合、第1条件を満たすと判定する。第1判定領域400が振動方向に沿って拡大することによって、ユーザがタップ操作のつもりで操作対象面121に対して行った操作が、電子機器1において、誤ってドラッグ操作であると判定される可能性を低減することができる。また、ユーザは、電子機器1の振動の方向500とは異なる方向に沿って操作物を移動させてドラッグ操作を行う場合には、操作物を大きく移動させることなくドラッグ操作を行うことができる。
このように、電子機器1の振動の方向に基づいて操作の判定条件が決定されることによって、操作対象面121に対する操作がユーザが意図する操作とは別の操作として判定される可能性を低減しつつ、電子機器1に対する操作性が劣化する可能性を低減することができる。よって、電子機器1の利便性がさらに向上する。
なお、制御部100は、条件決定処理において、振動方向だけではなく振動振幅にも基づいてドラッグ判定条件を決定してもよい。この場合、制御部100は、楕円形の第1判定領域400の長軸の長さを決定するXの値を、上記のように振動振幅に応じて大きくしてもよい。
制御部100は、電子機器1の振動の周波数(以後、単に振動周波数と呼ぶことがある)がしきい値以下の場合、条件決定処理を実行しなくてもよい。図12はこの場合の制御部100の動作の一例を示すフローチャートである。図12のフローチャートは上述の図7のフローチャートにおいてステップs11を追加したものである。
図12に示されるように、ステップs1及びs2の実行後、ステップs11において、制御部100は、ステップs2で求めた合成加速度に基づいて振動周波数を求める。そして制御部100は、求めた振動周波数がしきい値よりも大きいか否かを判定する。このしきい値は、例えば1Hzに設定されるが、1Hz以外の値でもよい。ステップs11において振動周波数がしきい値よりも大きいと判定されると、ステップs4が実行されて条件決定処理が実行される。一方で、ステップs11において振動周波数がしきい値以下であると判定されると、条件決定処理が実行されずにステップs3が実行される。以後、制御部100は同様に動作する。
電子機器1の振動の周波数が小さい場合には、ユーザは、電子機器1の振動に合わせて操作対象面121を適切に操作できる可能性が高い。その結果、電子機器1の振動の周波数が小さい場合には、電子機器1では、操作対象面121に対する操作がユーザが意図した操作として判定される可能性が高い。本例のように、電子機器1の振動の周波数がしきい値以下の場合に、条件決定処理が実行されないことによって、無駄な処理が実行される可能性を低減することができる。よって、電子機器1の動作を簡素化することができる。なお、制御部100は、電子機器1の振動の周波数がしきい値未満の場合、条件決定処理を実行しなくてもよい。
制御部100は、電子機器1の振動の振幅がしきい値以下の場合、条件決定処理を実行しなくてもよい。図13はこの場合の制御部100の動作の一例を示すフローチャートである。図13のフローチャートは上述の図7のフローチャートにおいてステップs21を追加したものである。
図13に示されるように、ステップs1及びs2の実行後、ステップs21において、制御部100は、ステップs2で求めた合成加速度に基づいて振動振幅を求める。そして制御部100は、求めた振動振幅がしきい値よりも大きいか否かを判定する。このしきい値は例えば1mmに設定されるが、1mm以外の値でもよい。ステップs21において振動振幅がしきい値よりも大きいと判定されると、ステップs4が実行されて条件決定処理が実行される。一方で、ステップs21において振動振幅がしきい値以下であると判定されると、条件決定処理が実行されずにステップs3が実行される。以後、制御部100は同様に動作する。
電子機器1の振動の振動が小さい場合には、ユーザは、電子機器1の振動の影響をあまり受けずに操作対象面121を適切に操作できる可能性が高い。その結果、電子機器1の振動の振幅が小さい場合には、電子機器1では、操作対象面121に対する操作がユーザが意図した操作として判定される可能性が高い。本例のように、電子機器1の振動の振幅がしきい値以下の場合に、条件決定処理が実行されないことによって、無駄な処理が実行される可能性を低減することができる。よって、電子機器1の動作を簡素化することができる。なお、制御部100は、電子機器1の振動の振幅がしきい値未満の場合、条件決定処理を実行しなくてもよい。
制御部100は、電子機器1がユーザの手に持たれている場合、条件決定処理を実行しなくてもよい。図14はこの場合の制御部100の動作の一例を示すフローチャートである。図14のフローチャートは上述の図7のフローチャートにおいてステップs31を追加したものである。
図14に示されるように、ステップs1の前にステップs31が実行される。ステップs31では、制御部100は、電子機器1がユーザの手に持たれているか否かを判定する。制御部100は、例えば、検出加速度に基づいて、電子機器1がユーザの手に持たれているか否かを判定する。電子機器1がユーザの手に持たれている場合、電子機器1のX軸、Y軸及びZ軸の加速度は固有の時間変化のパターンを示す。制御部100は、加速度センサ150で検出されるX軸、Y軸及びZ軸方向の加速度の時間変化のパターンが、電子機器1がユーザの手に持たれている状態に応じたパターンを示す場合には、電子機器1がユーザの手に持たれていると判定する。
なお、制御部100は、電子機器1がユーザの手に持たれているか否かを他の方法で判定してもよい。例えば、電子機器1が、機器ケース11の背面11bに対する人の手の接触を検出するタッチセンサを備える場合を考える。電子機器1がユーザの手で持たれている場合、上述の図3に示されるように、ユーザの手が機器ケース11の背面11bに接触する可能性が高い。制御部100は、機器ケース11の背面11bに対する人の手の接触を検出するタッチセンサでの検出結果に基づいて、電子機器1が人の手に持たれているか否かを判定してもよい。
ステップs31において電子機器1がユーザの手に持たれていないと判定されると、上述のステップs1及びs2が実行される。一方で、ステップs31において、電子機器1がユーザの手に持たれていると判定されると、ステップs3が実行される。ステップs2においてYESと判定されるとステップs4が実行され、ステップs2においてNOと判定されるとステップs3が実行される。ステップs3の後、ステップs31が実行されて、以後、制御部100は同様に動作する。また、ステップs4の後、ステップs31が実行されて、以後、制御部100は同様に動作する。
ユーザは、電子機器1を手に持っている場合、電子機器1にかかる振動を当該手で吸収することができるため、電子機器1の振動の影響をあまり受けずに操作対象面121を適切に操作できる可能性が高い。その結果、電子機器1がユーザの手に持たれている場合には、電子機器1では、操作対象面121に対する操作がユーザが意図した操作として判定される可能性が高い。これに対して、電子機器1が自転車及び自動車等の乗り物に固定されている場合には、電子機器1の振動の振幅が大きくなる可能性が高い。そのため、電子機器1では、操作対象面121に対する操作がユーザが意図した操作とは別の操作として判定される可能性が高い。本例のように、電子機器1がユーザの手に持たれている場合に、条件決定処理が実行されないことによって、無駄な処理が実行される可能性を低減することができる。よって、電子機器1の動作を簡素化することができる。
なお、図15に示されるように、図14の例において、ステップs2の後に、図12に示されるステップs11が実行されてもよい。また、図16に示されるように、図14の例において、ステップs2の後に、図13に示されるステップs21が実行されてもよい。また、図17に示されるように、図14の例において、ステップs2の後に、ステップs11及びs21が実行されてもよい。図17の例では、制御部100は、振動周波数が大きく、かつ振動振幅が大きい場合に、振動に基づく条件決定処理を実行する。図17の例において、ステップs11とステップs21の実行順は逆であってもよい。また、図17の例において、ステップs31が実行されずに、ステップs3及びs4の後にステップs1が実行されてもよい。
また、制御部100は、ユーザの指示に応じて、条件決定処理を行うか否かを決定してもよい。この場合、ユーザが電子機器1に対して条件決定処理を実行しないことを指示した場合、制御部100は、条件決定処理を実行しない。一方で、ユーザが電子機器1に対して条件決定処理の実行を指示した場合、制御部100は、上述のようにして条件決定処理を実行する。ユーザは、例えば操作対象面121を操作することによって、条件決定処理を実行するか否かを電子機器1に対して指示することができる。
また、振動に基づく条件決定処理では、ドラッグ操作の判定条件に加えて、あるいはその替わりに、ドラッグ操作以外の操作の判定条件が決定されてもよい。例えば、制御部100は、振動に基づく条件決定処理において、フリック操作の判定条件を決定してもよい。以下に、制御部100が電子機器1の振動に基づいてフリック操作の判定条件を決定する場合の当該制御部100の動作を説明する。
制御部100は、検出操作がフリック操作であるか否かを判定する場合には、操作物が操作対象面121に接触したとき、操作対象面121に対して第2判定領域を設定する。第2判定領域には、操作物が操作対象面121に接触したときの、操作対象面121に対する操作物の接触位置410(言い換えれば、基準点410)が含まれる。
フリック操作の判定条件(以後、フリック判定条件と呼ぶことがある)には、例えば、第5条件と第6条件とが含まれる。第5条件は、例えば、操作物が、操作対象面121に接触した状態において、操作対象面121上を基準点410から第2判定領域の外側に相対的に移動するという条件である。第6条件は、例えば、操作物が操作対象面121に接触してから操作対象面121から離れるまでの時間がしきい値以下であるという条件である。
制御部100は、タッチセンサ130での検出結果に基づいて、第5条件及び第6条件のそれぞれが満たされたと判定すると、検出操作をフリック操作であると判定する。つまり、制御部100は、操作物が、操作対象面121に接触した状態において、操作対象面121上を基準点410から第2判定領域の外側に相対的に移動し、かつ、操作物が操作対象面121に接触してから操作対象面121を離れるまでの時間がしきい値以下のとき、検出操作がフリック操作であると判定する。言い換えれば、制御部100は、操作対象面121に対する操作物の接触位置が基準点410から第2判定領域の外側に移動し、かつ、操作物が操作対象面121に接触してから操作対象面121を離れるまでの時間がしきい値以下のとき、検出操作がフラッグ操作であると判定する。なお、第6条件は、操作物が操作対象面121に接触してから操作対象面121から離れるまでの時間がしきい値未満であるという条件であってもよい。また、フリック判定条件の内容は上記の限りではない。
ステップs4においては、制御部100は、第2判定領域を初期範囲から変更する。第2判定領域の初期範囲は、上述の図5に示される第1判定領域400の初期範囲と同じであってもよいし、異なっていてもよい。本例では、第2判定領域の初期範囲は、第1判定領域400の初期範囲と同様に、円形領域とし、当該円形領域の直径を第4距離とする。第4距離は第1距離D1と同じであってもよいし、異なっていてもよい。ステップs4において、制御部100は、例えば、第2判定領域の直径を、第4距離のY倍(Y>1)に設定する。
このように、制御部100が、フリック操作の判定条件を電子機器1の振動に基づいて決定することによって、電子機器1が振動している場合に、操作対象面121に対する操作が、ユーザが意図しないフリック操作であると判定される可能性を低減することができる。例えば、ユーザがタップ操作を操作対象面121に対して実行しようとした場合、操作対象面121の振動により、制御部100が、操作対象面121に対する操作をフリック操作として判定する可能性を低減することができる。よって、電子機器1の利便性が向上する。
なお制御部100は、電子機器1の振動の振幅に基づいて、フリック操作の判定条件を決定してもよい。この場合、例えば、制御部100は、振動振幅に基づいてドラッグ操作の判定条件を決定する場合と同様に、第2判定領域を決定するYの値を振動振幅に基づいて決定してもよい。
また制御部100は、電子機器1の振動の方向に基づいて、フリック操作の判定条件を決定してもよい。この場合、例えば、制御部100は、振動方向に基づいてドラッグ操作の判定条件を決定する場合と同様に、振動方向に沿って第2判定領域を拡大して、第2判定領域を楕円形としてもよい。
上記の例では、操作対象面121は、各種情報を表示する表示面として機能したが、表示機能を備えていなくてもよい。
また上記の例では、電子機器1は、スマートフォン等の携帯電話機であったが、他の種類の電子機器であってもよい。電子機器1は、例えば、タブレット端末、パーソナルコンピュータ、自動車及び飛行機等の乗り物に搭載される機器、あるいはウェアラブル機器などであってもよい。電子機器1として採用される、乗り物に搭載される機器としては、例えば、カーナビゲーション装置あるいはオーディオ装置などが考えられる。また、電子機器1として採用されるウェアラブル機器は、リストバンド型あるいは腕時計型などの腕に装着するタイプであってもよいし、ヘッドバンド型あるいはメガネ型などの頭に装着するタイプであってもよいし、服型などの体に装着するタイプであってもよい。
以上のように、電子機器1は詳細に説明されたが、上記した説明は、全ての局面において例示であって、この開示がそれに限定されるものではない。また、上述した各種の例は、相互に矛盾しない限り組み合わせて適用可能である。そして、例示されていない無数の例が、この開示の範囲から外れることなく想定され得るものと解される。