IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社ステラリンクの特許一覧 ▶ アルプス電気株式会社の特許一覧

特開2024-162833非接触入力装置、及び、入力支援アプリケーション
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024162833
(43)【公開日】2024-11-21
(54)【発明の名称】非接触入力装置、及び、入力支援アプリケーション
(51)【国際特許分類】
   G06F 3/04812 20220101AFI20241114BHJP
   G06F 3/041 20060101ALI20241114BHJP
【FI】
G06F3/04812
G06F3/041 580
【審査請求】未請求
【請求項の数】17
【出願形態】OL
(21)【出願番号】P 2023078754
(22)【出願日】2023-05-11
(71)【出願人】
【識別番号】514065564
【氏名又は名称】株式会社ステラリンク
(71)【出願人】
【識別番号】000010098
【氏名又は名称】アルプスアルパイン株式会社
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(72)【発明者】
【氏名】前田 保宏
(72)【発明者】
【氏名】内田 慶太郎
(72)【発明者】
【氏名】瀬尾 昌隆
(72)【発明者】
【氏名】萩原 康嗣
(72)【発明者】
【氏名】▲高▼田 正博
【テーマコード(参考)】
5E555
【Fターム(参考)】
5E555AA06
5E555BA04
5E555BB04
5E555BC04
5E555CA12
5E555CB12
5E555CB23
5E555DB06
5E555DC11
5E555EA14
5E555FA00
(57)【要約】
【課題】二次元位置にのみ対応可能なアプリケーションプログラムを搭載した装置において、三次元的な動作での非接触入力を可能にする非接触入力装置を提供する。
【解決手段】操作面と、前記操作面に対して非接触で操作を行う対象物の二次元位置及び前記操作面から前記対象物までの距離を測定する検出部と、前記操作面の裏側に配置されるディスプレイと、平面GUIを用いるOSと入力支援アプリケーションとを有する制御装置とを含み、前記入力支援アプリケーションは、前記OSが前記ディスプレイに表示する第1ポインターとは異なる第2ポインターを前記二次元位置及び前記距離に応じて前記ディスプレイにオーバーレイで表示する命令を前記OSに出力し、前記二次元位置及び前記距離に基づいて前記対象物による操作が決定したと判定すると、前記操作が決定したときの前記二次元位置とクリックイベントとを前記OSに対して出力する。
【選択図】図4
【特許請求の範囲】
【請求項1】
操作面と、
前記操作面に対して非接触で操作を行う対象物の二次元位置及び前記操作面から前記対象物までの距離を測定する検出部と、
前記操作面の裏側に配置されるディスプレイと、
平面GUIを用いるOSと入力支援アプリケーションとを有する制御装置と
を含み、
前記入力支援アプリケーションは、
前記OSが前記ディスプレイに表示する第1ポインターとは異なる第2ポインターを前記二次元位置及び前記距離に応じて前記ディスプレイにオーバーレイで表示する命令を前記OSに出力し、
前記二次元位置及び前記距離に基づいて前記対象物による操作が決定したと判定すると、前記操作が決定したときの前記二次元位置とクリックイベントとを前記OSに対して出力する、非接触入力装置。
【請求項2】
前記入力支援アプリケーションは、前記第1ポインターを非表示にする命令を前記OSに出力する、請求項1に記載の非接触入力装置。
【請求項3】
前記距離が第1閾値より短い第1領域は、前記入力支援アプリケーションがクリックイベントを出力する決定領域であり、
前記入力支援アプリケーションは、
前記対象物の前記距離が前記第1領域内に位置するときに、前記対象物によって行われる操作に応じて移動する前記第2ポインターを前記OSに表示させ、
前記対象物の前記距離が前記第1領域内に留まると、時間経過に応じて長くなる円弧であって、前記対象物が前記第1領域内に入ってから第1所定時間で円環になる円弧を前記第2ポインターとして前記OSに表示させ、
前記対象物の前記距離が前記第1領域内に留まっている時間が、前記第1所定時間を超えると、前記操作が決定したと判定し、前記円環を前記第2ポインターとして前記OSを介して表示させ、クリックイベントを前記OSに発行し、かつ、前記操作が決定したときの前記二次元位置を前記OSに出力する、請求項1に記載の非接触入力装置。
【請求項4】
前記入力支援アプリケーションは、
前記OSにクリックイベントを発行してから前記対象物の前記距離が前記第1領域内に留まり続けると、時間経過に応じて長くなる円弧であって、前記円弧の描画開始から第2所定時間で円環になる円弧を前記第2ポインターとして前記OSに表示させ、
前記クリックイベントを発行してから前記第2所定時間が経過すると、前記円環を前記第2ポインターとして前記OSに表示させ、前記二次元位置と前記クリックイベントを前記OSに出力する、請求項3に記載の非接触入力装置。
【請求項5】
前記入力支援アプリケーションは、前記対象物の前記距離が、前記第1領域の外に出てから前記第1領域内に戻ると、時間経過に応じて長くなる円弧を前記第2ポインターとして前記OSに表示させる、請求項4に記載の非接触入力装置。
【請求項6】
前記入力支援アプリケーションは、前記第1所定時間が0に設定された場合、
前記対象物の前記距離が前記第1領域内に位置すると、前記操作が決定したと判定し、
クリックイベントを前記OSに発行し、かつ、前記操作が決定したときの前記二次元位置を前記OSに出力する、請求項3に記載の非接触入力装置。
【請求項7】
前記入力支援アプリケーションは、前記クリックイベントの出力後に、前記円環より小さな円を前記第2ポインターとして前記OSに表示させる請求項3に記載の非接触入力装置。
【請求項8】
前記距離が前記第1閾値以上、かつ、前記第1閾値よりも長い第2閾値より短い第2領域は、前記入力支援アプリケーションが選択モードを実行する選択領域であり、
前記入力支援アプリケーションは、
前記対象物の距離が、前記第1領域から前記第2領域に移動してから第4所定時間が経過すると、前記クリックイベントを出力する決定モードから前記選択モードに遷移する、請求項3に記載の非接触入力装置。
【請求項9】
前記入力支援アプリケーションは、
前記対象物の距離が前記第2領域内に位置するときに、複数の時点で算出した複数の前記二次元位置の変動量の合計を前記対象物の位置精度の指標として算出し、
前記対象物の位置精度が向上するほど、前記OSに前記第2ポインターを小さく表示させる、請求項8に記載の非接触入力装置。
【請求項10】
前記入力支援アプリケーションは、
前記対象物の前記距離が前記第2領域内に位置するときに、前記対象物の二次元位置に応じて移動する前記第2ポインターを前記OSに表示させ、
前記対象物の前記距離が前記第2領域内で第3所定時間留まり、かつ、前記対象物の二次元位置が静止すると、前記OSに機能メニューをオーバーレイで表示させる、請求項8に記載の非接触入力装置。
【請求項11】
前記距離が前記第2閾値以上、かつ、前記第2閾値よりも長い第3閾値より短いの第3領域は、前記入力支援アプリケーションが近接モードを実行する近接領域であり、
前記入力支援アプリケーションは、前記距離が前記第3領域内に位置するときに、近接モード用の画像又はメッセージを前記ディスプレイにオーバーレイで表示する命令を前記OSに出力する、請求項8に記載の非接触入力装置。
【請求項12】
前記距離が前記第3閾値以上の第4領域は、前記入力支援アプリケーションが前記対象物の二次元位置を出力しない待機領域であり、
前記入力支援アプリケーションは、前記対象物が前記第1領域、前記第2領域、及び前記第3領域で検出されないときに、待機モード用の画像又はメッセージを前記ディスプレイにオーバーレイで表示する命令を前記OSに出力する、請求項11に記載の非接触入力装置。
【請求項13】
前記入力支援アプリケーションは、
複数の時点で取得された前記二次元位置の移動平均を前記対象物の二次元位置として算出し、
前記算出した二次元座標の位置に、前記OSを介して、前記第2ポインターを表示させる、請求項9に記載の非接触入力装置。
【請求項14】
前記入力支援アプリケーションは、前記対象物による操作が決定したと判定すると、前記操作が決定したときに前記二次元位置の移動平均として算出した前記対象物の二次元位置と前記クリックイベントとを前記OSに対して出力する、請求項13に記載の非接触入力装置。
【請求項15】
前記入力支援アプリケーションは、ユーザによって計算に用いるデータの個数を設定された前記複数の時点を用いて、複数の前記二次元位置の変動量の合計を前記対象物の位置精度の指標として算出する、請求項14に記載の非接触入力装置。
【請求項16】
前記入力支援アプリケーションは、ユーザによって設定された前記第2ポインターの大きさで、前記ディスプレイにオーバーレイで表示する命令を前記OSに出力する、請求項1に記載の非接触入力装置。
【請求項17】
操作面に対して非接触で操作入力を行う対象物の二次元位置及び前記操作面から対象物までの距離を測定出する検出部によって、平面GUIを用いるOS上で動作するアプリケーションプログラムを操作するための入力支援アプリケーションであって、
前記入力支援アプリケーションは、
前記OSがディスプレイに表示する第1ポインターとは異なる第2ポインターを前記二次元位置及び前記距離に応じて前記ディスプレイにオーバーレイで表示する命令を前記OSに出力し、
前記二次元位置及び前記距離に基づいて前記対象物による操作が決定したと判定すると、前記操作が決定したときの前記二次元位置とクリックイベントとを前記OSに対して出力する、入力支援アプリケーション。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、非接触入力装置、及び、入力支援アプリケーションに関する。
【背景技術】
【0002】
従来より、位置入力対象物を介してユーザの操作を入力する入力端末装置において、前記ユーザが操作する前記位置入力対象物の位置を非接触で検出する位置検出部と、前記位置検出部で検出した位置に基づいてポインターを表示する表示部と、前記位置検出部で検出した位置に基づいて対応する操作処理を実行させる操作処理制御部を備える入力端末装置がある。前記操作処理制御部は、前記操作処理の実行に関する複数の動作モードを有し、該動作モードの1つには、前記位置入力対象物の位置に応じた前記ポインターの移動以外のいずれの操作処理も実行しない状態を含み、前記操作処理制御部は、前記ユーザが前記位置入力対象物を介して特定の操作を行った場合、前記複数の動作モードを切り替える(例えば、特許文献1参照)。また、操作画面に接近する手の3次元空間位置に基づき、手が操作画面のどの位置に向かい、かつ、手と操作画面の距離に応じて、ポインターの大きさを変えることも知られている(例えば、特許文献2)。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】国際公開第2007-064771号
【特許文献2】特開2010-244422号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
ところで、従来の入力端末装置は、位置入力対象物(対象物)の三次元の位置を非接触で検出するために、三次元の位置を検出可能な専用のアプリケーションプログラムを用いている。このため、二次元の位置にのみ対応可能なアプリケーションプログラムを搭載した装置で、従来の入力端末装置を実現することはできない。
【0005】
そこで、二次元位置にのみ対応可能なアプリケーションプログラムを搭載した装置において、三次元的な動作での非接触入力を可能にする非接触入力装置、及び、入力支援アプリケーションを提供することを目的とする。
【課題を解決するための手段】
【0006】
本開示の実施形態の非接触入力装置は、操作面と、前記操作面に対して非接触で操作を行う対象物の二次元位置及び前記操作面から前記対象物までの距離を測定する検出部と、前記操作面の裏側に配置されるディスプレイと、平面GUIを用いるOSと入力支援アプリケーションとを有する制御装置とを含み、前記入力支援アプリケーションは、前記OSが前記ディスプレイに表示する第1ポインターとは異なる第2ポインターを前記二次元位置及び前記距離に応じて前記ディスプレイにオーバーレイで表示する命令を前記OSに出力し、前記二次元位置及び前記距離に基づいて前記二次元位置とクリックイベントとを前記OSに対して出力する。
【発明の効果】
【0007】
二次元位置にのみ対応可能なアプリケーションプログラムを搭載した装置において、三次元的な動作での非接触入力を可能にする非接触入力装置、及び、入力支援アプリケーションを提供することができる。
【図面の簡単な説明】
【0008】
図1】実施形態の非接触入力装置の構成の一例を示す図である。
図2】実施形態の非接触入力装置の静電センサ及び制御装置等の構成の一例を示す図である。
図3】実施形態の非接触入力装置の操作面からのZ方向の距離に応じた4つの領域の一例を示す図である。
図4】実施形態の非接触入力装置の制御部のOS、入力支援アプリケーション、及び所定のアプリケーションプログラムを説明する図である。
図5A】実施形態の非接触入力装置における対象物の位置精度の指標を説明する図である。
図5B】実施形態の非接触入力装置における対象物の位置精度の指標を説明する図である。
図5C】実施形態の非接触入力装置における対象物の位置精度の指標を説明する図である。
図6A】実施形態の非接触入力装置のディスプレイの表示の一例を示す図である。
図6B】実施形態の非接触入力装置のディスプレイの表示の一例を示す図である。
図6C】実施形態の非接触入力装置のディスプレイの表示の一例を示す図である。
図6D】実施形態の非接触入力装置のディスプレイの表示の一例を示す図である。
図6E】実施形態の非接触入力装置のディスプレイの表示の一例を示す図である。
図6F】実施形態の非接触入力装置のディスプレイの表示の一例を示す図である。
図7A】実施形態の非接触入力装置の入力支援アプリケーションが実行する処理の一例を示す図である。
図7B】実施形態の非接触入力装置の入力支援アプリケーションが実行する処理の一例を示す図である。
図7C】実施形態の非接触入力装置の入力支援アプリケーションが実行する処理の一例を示す図である。
図7D】実施形態の非接触入力装置の入力支援アプリケーションが実行する処理の変形例の一例を示す図である。
図8A】実施形態の非接触入力装置の入力支援アプリケーションが実行する処理の一例を示す図である。
図8B】実施形態の非接触入力装置の入力支援アプリケーションが実行する処理の一例を示す図である。
図8C】実施形態の非接触入力装置の入力支援アプリケーションが実行する処理の一例を示す図である。
図8D】実施形態の非接触入力装置の入力支援アプリケーションが実行する処理の一例を示す図である。
図8E】実施形態の非接触入力装置の入力支援アプリケーションが実行する処理の一例を示す図である。
図8F】実施形態の非接触入力装置の入力支援アプリケーションが実行する処理の一例を示す図である。
図9A】実施形態の非接触入力装置の入力支援アプリケーションが実行する処理の一例を示す図である。
図9B】実施形態の非接触入力装置の入力支援アプリケーションが実行する処理の一例を示す図である。
図9C】実施形態の非接触入力装置の入力支援アプリケーションが実行する処理の一例を示す図である。
図9D】実施形態の非接触入力装置の入力支援アプリケーションが実行する処理の一例を示す図である。
図9E】実施形態の非接触入力装置の入力支援アプリケーションが実行する処理の一例を示す図である。
図9F】実施形態の非接触入力装置の入力支援アプリケーションが実行する処理の一例を示す図である。
図10】設定画面の一例を示す図である。
図11】フォルダの構成の一例を示す図である。
図12】設定処理の一例を示すフローチャートである。
【発明を実施するための形態】
【0009】
以下、本開示の非接触入力装置、及び、入力支援アプリケーションを適用した実施形態について説明する。
【0010】
<実施形態>
図1は、実施形態の非接触入力装置100の構成の一例を示す図である。図1は、ディスプレイ110が入力画像を表示している状態を示す。
【0011】
図2は、非接触入力装置100の静電センサ120及び制御装置130等の構成の一例を示す図である。図3は、非接触入力装置100の操作面105AからのZ方向の距離に応じた4つの領域を示す図である。
【0012】
以下では、XYZ座標系を定義して説明する。X軸は第1軸であり、Y軸は第2軸であり、Z軸は第3軸である。X軸に平行な方向(X方向)、Y軸に平行な方向(Y方向)、Z軸に平行な方向(Z方向)は、互いに直交する。また、以下では、-Z方向を静電センサ120に近づく方向、+Z方向を静電センサ120から離れる方向として説明する。また、平面視とはXY面視することをいう。また、以下では構成が分かり易くなるように各部の長さ、太さ、厚さ等を誇張して示す場合がある。
【0013】
非接触入力装置100は、例えば、店舗や施設等に配置され不特定多数のユーザが利用するタブレット型の入力装置やATM(Automatic Teller Machine)の入力部であってよい。また、清潔な状態を保つ必要のある調理用電化製品の入力部であってもよい。
【0014】
<非接触入力装置100の全体構成>
非接触入力装置100は、筐体101、トップパネル105、ディスプレイ110、静電センサ120、入力センサ回路125A、画像表示回路125B、及び制御装置130を含む。入力センサ回路125Aは、静電センサ120の測定結果からXYZ座標を算出する。図1では制御装置130(図2参照)を省略するが、制御装置130は、一例として筐体101の内部でディスプレイ110及び静電センサ120の下側に設けられる。非接触入力装置100は、図2に示す静電センサ120及び制御装置130を含む。
【0015】
<筐体101とトップパネル105>
筐体101は、ディスプレイ110、静電センサ120、及び制御装置130を収容する樹脂製又は金属製等のケースである。ディスプレイ110は、透明な静電センサ120の下側に配置され、筐体101の上部にある開口部に設けられる透明なトップパネル105の上面である操作面105Aを介して視認可能である。既存のディスプレイ110に、静電センサ120を後付けしてもよい。タブレット型コンピュータのようにディスプレイと、制御装置130が一体になっていてもよい。デスクトップ型コンピュータのようにし、ディスプレイと、制御装置130が別体でもよい。
【0016】
<非接触入力装置100の4つの領域と操作方法>
非接触入力装置100は、ユーザの手等の指示体が操作面105Aに対して非接触の状態と、ユーザの手等の指示体が操作面105Aに対して接触した状態との両方の状態で操作可能である。ここでは、非接触入力装置100の入力支援アプリケーションが実行するモードと併せて説明する。入力支援アプリケーションのモードは、決定モード、選択モード、近接モード、及び待機モードの4つである。
【0017】
非接触入力装置100は、ユーザが指差操作を行うことによって操作する入力装置である。指差操作とは、操作面105Aに対して、指を略垂直に立てて行う操作である。指差操作で使用する指の本数は複数であってもよいが、1本であることが好ましい。
【0018】
このような指差操作を行う際に、操作面105Aに対して指が略垂直でない場合には、掌全体が操作面105Aに近づくことになり、指先FTの位置の測定が難しい。
【0019】
以下では、特に断らない限り、ユーザが指示体としての指先FTで指差操作を行う場合について説明する。また、以下では、指先FTで、操作(近接操作、選択操作、決定操作、又は接触操作)を行うことを、単に指先FTで操作(近接操作、選択操作、決定操作、又は接触操作)すると表現する。
【0020】
非接触入力装置100の操作方法には、近接操作、選択操作、及び、決定操作の3種類がある。
【0021】
非接触入力装置100は、4つの操作方法を判別するために、図3に示す4つの領域を用いる。4つの領域は、操作面105A側から順番に、決定領域、選択領域、近接領域、及び待機領域である。
【0022】
<決定領域、選択領域、近接領域、及び待機領域>
決定領域は、操作面105AからのZ方向の距離がZ1(例えば2cm)より短い第1領域であり、入力支援アプリケーションが入力支援アプリケーションのモードを決定モードに設定する領域である。Z1は、第1閾値の例である。決定領域内に指先FTが位置すると入力支援アプリケーションが判定すると、決定操作が行われる。尚、操作面105AからのZ方向の距離が0cm(接触)も決定領域に含まれる。尚、Z方向距離と、静電容量の関係は、個人差や、設置環境の影響を受ける。しかし、操作者と使用環境が同一であれば、静電容量は、Z方向距離に反比例する。このため、同一の操作者に対する相対的な距離を測定できれば良い場合、静電容量を距離と見なすことができる。尚、決定領域と決定操作の詳細は、後述する。
【0023】
なお、入力支援アプリケーションは、Z方向の距離の代わりに指先FTと静電センサ120との間の静電容量に比例した値(Z値)を用いる。入力センサ回路125Aは、複数のセンサ電極121Xと、複数のセンサ電極121Yとの複数の交点における静電容量に基づいて、操作面105Aに対向する指先FTの位置(XY座標)と、操作面105Aから指先FTまでの静電容量に比例した値(Z値)とを算出する。
【0024】
決定領域は、Z値がCz1(例えば60)より大きい領域である。Cz1は、距離Z1に対応する静電容量に比例した値である。Cz1は、第1閾値の一例である。この実施形態では、指先FTが操作面105Aに触れた場合も、決定領域に含めている。但し、指先FTが操作面105Aに触れたこともZ値から判断できる。例えば、指先FTが操作面105Aに軽く触れたときにZ値が100になるように設計することも可能である。Z値が100より大きければ、指先FTが接触領域にあると判断し、接触モードとして動作してもよい。
【0025】
選択領域は、操作面105Aからの距離がZ1以上で、かつ、Z1よりも長いZ2(例えば4cm)より短い第2領域であり、入力支援アプリケーションが入力支援アプリケーションのモードを選択モードに設定する領域である。Z2は第2閾値の一例である。選択領域内に指先FTが位置すると入力支援アプリケーションが判定すると選択操作が行われる。選択操作の詳細は後述する。
【0026】
選択領域は、Z値がCz2(例えば40)より大きく、Cz1以下の領域である。Cz2は、Cz1よりも小さい値である。Cz2及びCz1は、それぞれ、距離Z2及び距離Z1に対応する静電容量に比例した値である。静電容量Cz2は、第2閾値の一例である。
【0027】
近接領域は、操作面105Aからの距離がZ2以上、かつ、Z2よりも長いZ3(例えば7cm)より短い第3領域であり、入力支援アプリケーションが入力支援アプリケーションのモードを近接モードに設定する領域である。Z3は第3閾値の一例である。近接領域内に指先FTが位置すると入力支援アプリケーションが判定すると近接操作が行われる。近接領域は、対象物のXY座標を算出可能な領域のうち、操作面105Aから最も遠い領域である。近接操作の詳細は、後述する。
【0028】
近接領域は、Z値がCz3(例えば10)より大きく、Cz2以下の領域である。Cz3は、Cz2よりも小さい値である。Cz3及びCz2は、それぞれ、距離Z3及び距離Z2に対応する静電容量に比例した値である。Cz3は、第3閾値の一例である。
【0029】
待機領域は、操作面105Aからの距離がZ3よりも長い第4領域であり、入力支援アプリケーションが入力支援アプリケーションのモードを待機モードに設定する領域である。待機領域は、Z値がCz3以下の領域である。尚、操作面105A周辺に指先FTが無い場合に測定される静電容量値は、基準値に等しい。操作面105A周辺に指先FTが無い場合のZ値が0になるように較正する。入力支援APIは、待機モードにおいて、ディスプレイの電源を切断してもよい。
【0030】
<近接操作、選択操作、決定操作、及び接触操作>
近接操作とは、指先FTを非接触入力装置100の操作面105Aに触れることなく、操作面105Aに対して近づける操作であり、ディスプレイ110の表示を待機モードの表示から近接モードの表示に切り換えるための操作である。
【0031】
選択操作とは、近接操作を行った状態から、指先FTを非接触入力装置100の操作面105Aに触れることなく、操作面105Aに対してさらに近づけて、ディスプレイ110に表示されるGUIボタンを選択する操作である。
【0032】
決定操作とは、選択操作を行った状態から、指先FTを非接触入力装置100の操作面105Aに触れることなく、操作面105Aに対してさらに近づけて、クリックイベントを発行する操作である。GUIボタン上でクリックイベントが発行されると、OS140とアプリケーションプログラム160が、操作入力を決定する。決定操作は、非接触で操作入力を行うことであり、指先FTで操作面105Aに触れずに、非接触で非接触入力装置100を操作することである。非接触での選択操作及び決定操作によって行う操作入力をホバー入力又はタッチレス入力と称してもよい。尚、指先FTを非接触入力装置100の操作面105Aに触れても、決定モードとして扱ってもよい。または、指先FTを非接触入力装置100の操作面105Aに触れた場合、即座に、入力を確定してもよい。または、指先FTを非接触入力装置100の操作面105Aに触れた場合、警告画面を表示してもよい。
【0033】
<ディスプレイ110>
ディスプレイ110は、液晶ディスプレイや有機EL(Electroluminescence)ディスプレイ等である。ディスプレイ110は、GUI(Graphic User Interface)を実現するための表示である。ディスプレイ110は、OSのグラフィカルシェルが提供する画像(デスクトップ画面等:図示省略)と、入力支援アプリケーション150がオーバーレイ表示する第2ポインター112と、アプリケーションソフトの画像115を表示する。入力支援アプリケーション150は、第2ポインター112のZオーダーを最上位(視点に最も近い順序)にすることで、オーバーレイ表示する。アプリケーションソフトの画像115には、GUIボタン110Aの画像が含まれる。GUIボタン110Aは、操作部であり、一例として押しボタンを模した形状である。アプリケーションソフトは、マウス等の二次元位置入力装置で操作することを想定して作られている。
【0034】
図1には、一例として飲食店の注文端末の画面を示す。注文画面には、メニュー用の8個のGUIボタン110Aと、数字などのテンキー形式の9個のGUIボタン110Aとの合計17個のGUIボタン110Aを示す。17個のGUIボタン110Aは、Y方向に3行または4行、X方向に5行にわたって配列されている。行はX方向に延在し、Yは列方向に延在する。なお、GUIボタン110Aは、飲食店の注文端末の画面に限らず、タッチパネル用の操作画面であれば、他のアプリケーションでもよい。
【0035】
<静電センサ120、入力センサ回路125A、画像表示回路125B>
静電センサ120は、ディスプレイ110の上に重ねて配置され、図2に示すように、X方向に延在する複数のセンサ電極121Xと、Y方向に延在する複数のセンサ電極121Yとを有する。また、静電センサ120には、入力センサ回路125Aが一体に設けられている。また、ディスプレイ110には、画像表示回路125Bが一体に設けられている。入力センサ回路125Aは、配線122X、122Yと制御装置130との間に接続されている。画像表示回路125Bは、ディスプレイ110と制御装置130との間に接続されている。
【0036】
センサ電極121X、121Yは、配線122X、122Y及び入力センサ回路125Aを介して制御装置130に接続されている。このような静電センサ120は、透明ガラスの表面にITO(Indium Tin Oxide)等の透明導電膜を形成し、センサ電極121X、121Y及び配線122X、122Yにパターニングしたものを用いることができる。静電センサ120が検出する静電容量は、制御装置130に入力される。
【0037】
図2には、複数のセンサ電極121X及び複数のセンサ電極121Yを示す。尚、GUIボタン110A同士の間隔より、センサ電極121X同士の間隔及びセンサ電極121Yの同士の間隔が狭いことが好ましい。つまり、GUIボタン110A同士の間隔に応じた、静電センサ120を用いることが好ましい。
【0038】
入力センサ回路125Aは、配線基板に実装されている。入力センサ回路125Aは、配線122X、122Yと制御装置130との間に設けられており、複数の配線122X及び複数の配線122Yを順番に選択して取得した静電センサ120の静電容量をAD(Analog to Digital)変換する。入力センサ回路125Aは、各配線の静電容量値から、指先FTのXY座標と、操作面105Aと指先FTとの間の静電容量値に比例するZ値を算出する。入力センサ回路125Aは、接触操作式のデジタイザと同じ形式のXY出力が可能であると共に、独自の形式のXYZ出力が可能である。入力支援アプリケーション150は、デジタイザ形式のXY出力を停止する命令を、座標用デバイスドライバを介して、入力センサ回路125Aに送る。入力支援アプリケーション150は、XYZ出力に基づき、処理を行う。画像表示回路125Bは、ディスプレイ110と制御装置130との間に設けられており、制御装置130から送られる画像データに従って、ディスプレイ110に画像を表示する。
【0039】
<制御装置130>
制御装置130は、制御部131及びメモリ132を有する。制御装置130は、CPU(Central Processing Unit)、RAM(Random Access Memory)、ROM(Read Only Memory)、入出力インターフェース、及び内部バス等を含むコンピュータによって実現される。制御部131は、制御装置130が実行するプログラムの機能を機能ブロックとして示したものである。また、メモリ132は、制御装置130のメモリを機能的に表したものである。
【0040】
制御部131は、非接触入力装置100の動作を制御する。制御部131は、入力センサ回路125Aから入力されるXY座標と、Z値を受け取る。制御部131は、画像表示回路125Bを通じて行うディスプレイ110の画像の表示を制御する。制御部131は、指先FTの決定操作によって決定した操作内容に対応した命令の出力を行う。例えば、非接触入力装置100が飲食店の注文端末であれば、客が注文した料理の名前と個数を厨房の注文管理端末に送信する。
【0041】
制御部131は、平面GUIを用いるOS、座標用デバイスドライバ、表示用デバイスドライバ、入力支援アプリケーション、及び所定のアプリケーションプログラムを有する。ここで、OS、入力支援アプリケーション、及び所定のアプリケーションプログラムについて説明するために、図4を用いる。図4は、制御部131のOS、入力支援アプリケーション、及び所定のアプリケーションプログラムを説明する図である。
【0042】
図4には、制御部131が有するOS140、入力支援アプリケーション150、及びアプリケーションプログラム160を示す。OS140は、Windows(登録商標)やAndroid(登録商標)等の平面GUIを用いるOS(Operating System)である。平面GUIを用いるOSは、3次元入力に適したUI(User Interface)を提供しない。アプリケーションプログラム160は、飲食店の注文端末等のアプリケーションプログラムである。
【0043】
OS140は、座標用デバイスドライバ141及び表示用デバイスドライバ142を有する。座標用デバイスドライバ141は、静電センサ120から入力されるXY座標とZ値を入力支援アプリケーション150に渡す。OS140は、入力支援アプリケーション150からXY座標及びクリックイベントが入力されると、入力されたXY座標上のボタンに対応する命令をアプリケーションプログラム160に実行させる。また、表示する画像のデータと、表示する画像のXY位置と、表示する画像のZオーダー(視点からの距離の順番)を表示用デバイスドライバ142に渡す。入力支援アプリケーション150により、第2ポインター112のZオーダーは最上位になっている。
【0044】
表示用デバイスドライバ142は、入力支援アプリケーション150から入力されるXY座標に第2ポインター112を表示する制御や、決定操作が行われたときに、アプリケーションプログラム160から入力される命令に従って画像を表示する制御等を行う。尚、OSは、第2ポインター112を単なる画像として扱う。
【0045】
入力支援アプリケーション150は、非接触入力装置100を利用するユーザの入力支援を行うアプリケーションである。入力支援アプリケーション150は、指先FTの位置精度の指標を算出する処理を行ってもよい。入力支援アプリケーション150は、指先FTのXY座標と位置精度の指標とに基づいて、OS140がディスプレイ110に表示する第1ポインター111とは異なる第2ポインター112の画像をOS140に表示させる処理を行う。また、入力支援アプリケーション150は、決定操作が行われた場合に、決定操作が行われたときのXY座標をマウスポインターの位置としてOS140に出力してから、クリックイベントを発行する。OS140は、クリックイベントが発行されたときのマウスポインターの位置に相当するGUIボタンが押されたことを、アプリケーションプログラム160に通知する。入力支援アプリケーション150が実行するその他の処理や、各処理の詳細については、後述する。
【0046】
アプリケーションプログラム160は、通常の(二次元座標を出力する)マウスや、タッチパネルで操作することを想定して作られている。アプリケーションプログラム160は、OS140から、GUIボタン上で、クリックイベントが発行されたことを通知されると、クリックされたGUIボタンに応じた処理を行う。
【0047】
ディスプレイ110、制御装置130、OS140、表示用デバイスドライバ142、アプリケーションプログラム160は、3次元入力(非接触入力)に対応していない既存の装置でよい。非接触入力可能な静電センサ120を、既存のディスプレイ110に固定すると共に、制御装置130に座標用デバイスドライバ141と、入力支援アプリケーション150をインストールすることで、既存の装置が非接触入力装置になる。
【0048】
<入力センサ回路125AによるXY座標とZ値の算出>
入力センサ回路125Aは、複数のセンサ電極121Xを1行ずつ走査するとともに、複数のセンサ電極121Yを1列ずつ走査し、複数のセンサ電極121Xと複数のセンサ電極121Yとの複数の交点における静電容量をデジタル値に変換する。制御部131は、静電容量をデジタル値の出力の変化分をカウントし、各交点における差分値ΔADを算出する。差分値ΔADは、入力センサ回路125Aの出力の基準値に対する変化分のカウント値である。基準値は、センサ電極121X及び121Yの周辺に指先FT等の対象物が無い場合におけるセンサ電極121X及び121Yの各交点の静電容量に比例した値である。入力センサ回路125Aは、各交点における差分値から、指先FTと対向するディスプレイ上のXY座標を計算するとともに、各交点の差分値ΔADの内、最大のΔADをZ値として選択する。Z値は、指先FTと、操作面との間の静電容量に比例する値である。尚、XY座標とZ値は、制御部131が算出してもよい。
【0049】
なお、補間法により、センサ電極121X同士の間隔や、センサ電極121Y同士の間隔より、分解能を高めることも可能である。この場合、GUIボタン110A同士の間隔より、センサ電極121X同士の間隔及びセンサ電極121Yの同士の間隔が広くてもよい。尚、座標用デバイスドライバ141がXY座標とZ値を算出してもよい。座標用デバイスドライバ141がXY座標とZ値を算出する場合、算出を行うハードウェアは、制御部131である。
【0050】
<対象物の位置精度の指標>
入力支援アプリケーション150は、ディスプレイ110に第2ポインター112を表示する際に、対象物の位置精度の指標を求める。対象物とは、静電センサ120との間の静電容量に基づいて、XY座標と操作面105AからのZ方向の距離とが求められる対象物であり、非接触入力装置100のユーザの手や指先等の体の一部分である。ここでは、対象物の位置精度の指標について説明する。
【0051】
図5A図5Bは、対象物の位置精度の指標を説明する図である。非接触入力装置100は、対象物の位置精度の指標として、指先FTのXY座標(二次元位置)の変動量を用いる。
【0052】
図5Aには、時刻t1及びt2において測定される静電容量のX方向における分布の一例を示す。時刻t1において指先FTのX座標はX1と算出され、時刻t2において指先FTのX座標はX2と算出されたこととする。
【0053】
指先FTを動かしていなくても、ノイズによってX座標は変動する。時刻t1におけるX座標X1と、時刻t2においてX座標X2とには差があり、このような座標の差が、座標の変動量として現れる。なお、これは、Y座標についても同様である。
【0054】
非接触入力装置100は、一定時間内に測定された座標の変動量を位置精度の指標として用いる。より具体的には、測定される座標の標準偏差を位置精度の指標として用いる。例えば、標準偏差の1σを半径とする円を第2ポインター112とした場合には、第2ポインター112内に指がある可能性は約68%となり、2σを半径とする円を第2ポインター112とした場合には、第2ポインター112内に指がある可能性は約95%となる。このように、位置精度をポインターの大きさで表すことで、ユーザに対して直感的に位置精度をフィードバックすることができる。
【0055】
図5Bには、操作面105Aに対して指先FTを立てて操作していて、徐々に指先FTを操作面105Aに近づけた場合のX方向における静電容量の分布の一例を示す。図5Bにおける左側の指先FTが操作面105Aから最も遠く、図5Bにおける右側の指先FTが操作面105Aから最も近い。図5Bにおける両矢印は、静電容量が検出される範囲を示す。なお、図5Bには、X方向における静電容量の分布を示すが、図5Cにおいて説明したように、対称性からY方向における静電容量の分布も同様である。
【0056】
指先FTが操作面105Aから遠い場合(左側)には、静電センサ120は広い範囲で指先FTの影響を受けるため、静電容量が平坦な分布になる。ノイズの大きさが点線で示す二本の線の間隔ならば、指先FTのX座標として検出される可能性のある範囲は、下側の点線より静電容量が大きい範囲である。つまり、指先FTが検出される可能性のあるX方向の範囲は、左右方向の矢印で図示した広い範囲となる。
【0057】
また、指先FTが操作面105Aに近い(右側)場合には、静電センサ120は狭い範囲で指先FTの影響を受けるため、静電容量が急峻な分布になる。ノイズの大きさが点線で示す二本の線の間隔ならば、指先FTのX座標として検出される可能性のある範囲は、下側の点線より静電容量が大きい範囲である。つまり、指先FTが検出される可能性のあるX方向の範囲は、左右方向の矢印で図示した狭い範囲となる。
【0058】
また、図5Bの中央に示すように指先FTの操作面105Aからの距離が中間的な場合には、静電容量のX方向における分布は、左側の緩やかな分布と、右側の急峻な分布との中間的な分布になる。
【0059】
このように、測定されるXY座標がノイズによって変動する範囲は、指先FTが操作面105Aから遠い場合(左側)の方が、指先FTが操作面105Aに近い(右側)場合よりも大きくなる。静電容量が検出される面積が大きい分だけ、座標の変動量が大きくなる。
【0060】
図5Cには、操作面105Aに対して指先FTを立てて操作している場合(左側)と、操作面105Aに対して指先FTを寝かせて操作している場合(右側)とにおけるX方向における静電容量の分布の一例を示す。両矢印は、静電容量が検出される範囲を示す。なお、図5Cには、X方向における静電容量の分布を示すが、Y方向における静電容量の分布も同様である。
【0061】
図5Cの左側に示すように、指先FTを立てて操作している場合には、静電容量の分布が急峻になり、指先FTが検出される範囲が狭くなる。図5Cの右側に示すように、指先FTを寝かせて掌が操作面105Aに近づいた状態で操作している場合には、静電容量の分布が平坦になり、指先FTが検出される範囲が広くなる。
【0062】
このように、測定されるXY座標がノイズによって変動する変動量は、図5Cの左側に示すように指先FTを立てて操作している場合よりも、図5Cの右側に示すように指先FTを寝かせて操作している場合の方が大きくなる。
【0063】
以上、図5A図5B図5Cを用いて説明したように、測定されるXY座標がノイズによって変動する変動量は、指先FTから操作面105Aまでの距離や、指先FTの向き等によって変わる。さらに、ノイズの大きさによっても、変動量が変化する。また、指先FTを実際に動かした場合にも、変動量が大きくなる。いずれの理由で変動量が大きくなっても、測定精度が悪いので、第2ポインター112を大きく表示する。また、変動量が小さくなれば、第2ポインター112を小さく表示する。これにより位置精度が第2ポインターの大きさで表されることになり、ユーザに対して直感的に位置精度をフィードバックできる。
【0064】
また、図5Cを用いて説明したように、指先FTを立てて操作している場合よりも、指先FTを寝かせて掌が操作面105Aに近づいた状態で操作している場合の方が、測定されるXY座標の変動量が大きい。このため、非接触入力装置100は、XY座標の変動量が所定の閾値よりも大きい場合には、指先FTを操作面105Aの近くで立てて操作していない判定し、指先FTを操作面105Aの近くで立てて操作するように促すメッセージを表示してもよい。
【0065】
<対象物のXY座標の算出(移動平均の算出)>
図5A図5Cを用いて説明したように、入力センサ回路125Aによって計算されるXY座標は変動量を有するため、入力支援アプリケーション150は、複数の時点で取得されたX座標の移動平均と複数の時点で取得されたY座標の移動平均を指先FTのXY座標として算出する。複数の時点は、移動平均を算出するための直近の複数の時点であり、時点同士の間隔は、数ミリ秒である。
【0066】
入力支援アプリケーション150は、移動平均として算出したXY座標に第2ポインターの画像を表示するようにOS140に命令を出力する。
【0067】
非接触入力装置100が静電センサ120を用いて検出する指先FTのXY座標は、一例として、指先FTが存在する領域内において最も静電容量が大きい位置のXY座標を表す。尚、最も大きい静電容量との差が閾値以下の複数の点からなる図形の重心位置を指先FTのXY座標と見なしてもよい。また、最も静電容量が大きい位置、及びそれとX方向(又はY方向)に隣接する3点の静電容量を二次曲線に当てはめた頂点のX座標(又はY座標)を指先FTのX(Y)座標と見なしてもよい。また、静電容量は距離に反比例する。静電容量と距離は1対1に対応するので、距離の代わりに静電容量を用いることができる。また、本発明の非接触入力装置100では、静電容量の単位を、ファラッド[F]で表す必要がない。本発明では、静電容量に比例した値をZ値と呼ぶ。入力センサ回路125Aは、指先FTを操作面105Aに接触させたときのZ値を約100に、操作面105Aの近くに指先FTが無いときのZ値を約0に設計されている。
【0068】
入力支援アプリケーション150は、近接モード、または待機モードの場合、XY座標の移動平均や、XY座標の変動量の算出を中止してもよい。また、待機モードでは、ディスプレイの電源を切断してもよい。
【0069】
<入力支援アプリケーション150による対象物の位置精度の指標の算出>
非接触入力装置100によって測定されるXY座標の変動量による誤差大きさを示すために、入力支援アプリケーション150は、対象物の位置精度の指標として、XY座標の標準偏差を算出する。XY座標の標準偏差を算出する方法については、図9Dを用いて後述する。
【0070】
<非接触入力装置100の表示例>
図6A図6Fは、非接触入力装置100のディスプレイ110の表示の一例を示す図である。図6A及び図6Bには、ディスプレイ110と操作面105Aを重ねて示す。ディスプレイ110の表示は、操作面105Aを通じてユーザが視認可能である。図6C図6Fには、ディスプレイ110に表示される画像の一部を示す。
【0071】
図6Aには、待機モードにおけるディスプレイ110の表示を示す。ユーザの指先FTが操作面105Aの近くにないとき、図6Aに示すように、「タッチレス操作が可能です」及び「画面上に指を出して下さい」というメッセージが表示される。これにより、ユーザが非接触入力装置100を初めて利用する場合であっても、指先FTを操作面105Aに案内でき、その後の円滑な利用に繋げることができる。
【0072】
図6Bには、近接モードにおけるメッセージの一例を示す。図6Bでは、「位置精度に応じてポインターが縮小します」及び「ポインターが大きい場合、指を近づけるか、指を立てて下さい」というメッセージが表示される。ユーザが指先FTを操作面105Aに近づけると、ディスプレイ110には第2ポインター112が表示される。なお、ポインターとは、ディスプレイ110に表示される画面(画像)において、現在の入力位置を示す図形又は記号等である。
【0073】
第2ポインター112は、入力支援アプリケーション150がOS140に表示させる図形である。尚、入力支援アプリケーション150は、OSが用意する第1ポインター(マウス用ポインター)111を非表示にする。第2ポインター112は、図6Bに示すような円環状の図形の他に、円形や楕円形等の図形であってもよい。入力支援アプリケーション150は、位置精度の指標であるXY座標の変動量が大きくなるほど第2ポインター112の半径を大きくし、XY座標の変動量が小さくなるほど第2ポインター112の半径を小さくする。換言すれば、入力支援アプリケーション150は、XY座標の変動量が大きくなるほど半径が大きい第2ポインター112をOS140を介して、ディスプレイ110に表示させ、XY座標の変動量が小さくなるほど半径が小さい第2ポインター112をOS140を介して、ディスプレイ110に表示させる。
【0074】
ここで、図6Cを用いて、選択モードにおいて、数字の6のGUIボタンを選択するためにユーザが指先FTを操作面105Aに近づける際のより具体的な動作について説明する。図6Cでは、第1ポインター111は非表示になっているため、第2ポインター112のみを示す。選択モードでは、円環状の第2ポインター112が表示される。
【0075】
図6Cの左側に示すように、入力支援アプリケーション150は、XY座標の変動量が大きくなるほど半径が大きい第2ポインター112をOS140によって表示させる。例えば、指先FTが操作面105Aから遠い場合、XY座標の変動量が大きくなる。
【0076】
また、図6Cの右側に示すように、入力支援アプリケーション150は、XY座標の変動量が小さくなるほど半径が小さい第2ポインター112をOS140に表示させる。例えば、指先FTが操作面105Aに近い場合、XY座標の変動量が小さくなる。
【0077】
すなわち、数字の6のGUIボタンを操作する際に、指先FTが操作面105Aから遠いときには、図6Cの左側に示すように、半径が大きい第2ポインター112が表示される。そして、指先FTを操作面105Aに近づけると、第2ポインター112の半径が小さくなり、図6Cの右側に示すように、半径が小さい第2ポインター112が表示される。このように、指先FTが操作面105Aから遠くてXY座標の精度が低い場合には、第2ポインター112の半径が大きく設定され、指先FTが操作面105Aに近くてXY座標の精度が高い場合には、第2ポインター112の半径が小さく設定される。このようにして、非接触入力装置100は、ユーザに対して直感的に位置精度をフィードバックすることができる。
【0078】
また、図6Dには、決定モードにおいて、数字の6のGUIボタンの操作入力を決定するためにユーザが指先FTを操作面105Aに近づけて保持しているときの動作について説明する。第2ポインター112Aは、図6Cに示す第2ポインター112とは表示色を変更する。このため、図6Cでは、第2ポインター112Aを二重線で示す。入力支援アプリケーション150は、第2ポインター112の円環形状を、第2ポインター112Aの円弧に変えることで、入力モードが変わったことを直感的に示す。更に、入力支援アプリケーション150は、第2ポインターを赤色(112)から、黄色(112A)に変えることで、入力モードの変更を強調できる。尚、第2ポインターの色は、赤色から黄色への変更に限らない。第2ポインターの色(112、112A)は、後述する設定画面で変更可能にしてもよい。また、色を変更する代わりに輝度を変えてもよいし、色と輝度の両方を変えてもよい。
【0079】
図6Dには、時間経過に沿って、左上から矢印に従って、右上、左下、右下の順に画像が切り替わる様子を示す。
【0080】
決定モードでは、まず左上のように、円弧状の第2ポインター112Aが表示され、指先FTを操作面105Aに近づけて保持していると、右上に示すように円弧が伸び、さらに左下に示すように、第2ポインター112Aの円弧が伸びる。指先FTが操作面105Aに対して静止されてから第1所定時間T1が経過すると、第2ポインター112Aは円環になる。第2ポインター112Aが円環になることで、操作内容が決定する。すなわち、第2ポインター112Aが円環になるまで指先FTで数字の6を指し続けることで、操作内容が決定する。非接触入力装置100では、このようにして、操作面105Aを触る操作の代わりに非接触でのクリック操作をユーザが行えるようにしている。
【0081】
操作内容が決定すると、入力支援アプリケーション150は、クリックイベントを出力する。入力支援アプリケーション150は、非接触での指先FTでの操作入力によって、マウスをクリックした場合と同一のイベントを発行する。入力支援アプリケーション150は、指先FTのXY座標をOS140に出力するとともに、クリックイベントを出力する。また、クリックイベント出力音をOS140に再生させてもよい。このような非接触でのXY座標の出力と、クリックイベントの出力は、操作面105AのGUIボタン110Aを触る操作に相当する。
【0082】
入力支援アプリケーション150は、クリックイベントを出力すると、図6Dの右下に示すように円環よりも半径が小さい円形の第2ポインター112Bを所定時間(例えば1秒~2秒程度)にわたって表示する。
【0083】
円形の第2ポインター112Bは、操作入力が決定したときの指先FTのXY座標(移動平均)に、ユーザへの確認用に表示される。第2ポインター112Bは、一例として、所定時間(1秒~2秒程度)表示され、所定時間が経過すると非表示になる。第2ポインター112Bは、第2ポインター112及び112Aとは表示色が異なっていてよい。入力支援アプリケーション150は、第2ポインター112A(円弧)の中心角が360度になった直後に、第2ポインター112Bを小さな円形に変えることで、操作入力が確定したことを直感的に示す。更に、色を変えることで、操作入力が確定したことを強調できる。また、色を変更する代わりに輝度を変えてもよいし、色と輝度の両方を変えてもよい。
【0084】
図6C図6Dでは、OS140の第1ポインター111を消去した例を図示したが、図6Eのように、OS140の第1ポインター111(マウスポインター)と、入力支援アプリケーション150による第2ポインター112(非接触入力装置用ポインター)の両方を表示してもよい。第1ポインター111と第2ポインター112の双方を表示する場合、後述する選択モード及び決定モードにおいて、入力支援アプリケーション150は、XY座標をOS140に出力し続ける。第1ポインター111は、XY座標の位置を高精度に示すレチクルと同じ機能を果たす。
【0085】
<機能メニューの表示>
図6Fには、機能メニュー112Cを示す。選択モードにおいて、指先FTを操作面105Aに近づけて、第2ポインター112の半径が図6Cの右側のように小さくなった状態で、指先FTのXY座標が所定時間にわたって静止している場合に、入力支援アプリケーション150は、OS140に機能メニュー112Cを表示させる。この所定時間は、第3所定時間の一例である。図6Eには、一例として、クリックモード、ドラッグモード、及び、ピンチインを選択可能な機能メニュー112Cを示す。
【0086】
<フローチャート>
図7A図7C図8A図8F、及び、図9A図9Fは、非接触入力装置100の入力支援アプリケーション150が実行する処理の一例を示す図である。図7A図7Cは、メインの処理の一例を示し、図7Dは、図7Cに示す処理の変形例の一例を示し、図8A図8F、及び、図9A図9Fは、サブルーチンの処理の一例を示す。
【0087】
入力支援アプリケーション150は、処理を開始すると(図7A参照)、初期値設定を行う(ステップS1)。ステップS1はサブルーチンであり、その詳細については図8Aを用いて後述するが、移動平均を求めるためのデータの数Nma等の初期値を設定する。
【0088】
入力支援アプリケーション150は、第1ポインター111の消去命令をOS140に出力する(ステップS2)。これにより、第1ポインター111がディスプレイ110から消去される。なお、ステップS2の処理を行わずに、第1ポインター111(マウスポインター)を表示してもよい(図6E参照)。この場合は、第1ポインター111及び第2ポインター112がともに表示されることになる。この場合は、入力支援アプリケーション150が、指先FTのXY座標を、OSに出力し続ける。第1ポインター111の位置と、第2ポインター112の中心が一致するので、第2ポインター112が大きい円でも、その中心が分かりやすくなる。
【0089】
入力支援アプリケーション150は、指先FTのXY座標を計算する(ステップS3)。ステップS3はサブルーチンであり、その詳細については後述するが、複数の時点で算出した指先FTのXY座標を用いて、指先FTのXY座標の移動平均を求める。
【0090】
入力支援アプリケーション150は、入力支援アプリケーション150のモードが決定モードであるかどうかを判定する(ステップS4)。ここでは、説明を分かり易くするために、入力支援アプリケーション150のモードが決定モードである場合を先に説明する。
【0091】
入力支援アプリケーション150は、入力支援アプリケーション150のモードが決定モードである(S4:YES)と判定すると、Z値がCz1より大きいかどうかを判定する(ステップS5)。入力支援アプリケーション150は、Z値がCz1より大きい場合、操作面105Aから指先FTまでの距離が第1閾値Z1より短いとみなす。入力支援アプリケーション150は、Z値から、指先FTが決定領域内に位置するかどうかを判定する。
【0092】
入力支援アプリケーション150は、Z値がCz1より大きい(S5:YES)と判定すると、SelectionOffTimeとProximityOffTimeを現在の時刻(現時刻)に設定する(ステップS6)。SelectionOffTimeは、Z値がCz1より大きいと判断されたときの時刻に更新される。よって、SelectionOffTimeは、Z値がCz1より大きいと判断された最後の時刻を示す。また、後述する通り、ProximityOffTimeは、Z値がCz2より大きいと判断されたときにも更新される。よって、ProximityOffTime は、Z値がCz2より大きいと判断された最後の時刻を示す。
【0093】
入力支援アプリケーション150は、DecisionTHが0か判断する(S7)。DecisionTHは、ユーザが設定可能な値である。もし、DecisionTHが0ならば、後述する円弧のカーソルを表示せずに、決定モードになると即座に、入力を確定する。一方、DecisionTHが0以外であれば、後述する円弧のカーソルを表示した後に、入力を確定する。
【0094】
入力支援アプリケーション150は、DecisionTHが0ではない(S7:No)と判定すると、ステップS3で計算したXY座標(移動平均:Xave、Yave)に円弧状の第2ポインター112Aを表示する命令をOS140に出力する(ステップS8)。ステップS8でOS140に出力される命令は、XY座標(移動平均)を中心として、半径が予め決められた所定値(固定値)の円弧を表示する命令である。円弧は、固定端に対して移動端が時計回りに伸びる円弧であり、固定端は時計の12時に相当する位置に位置し、移動端が12時から時計回りに伸びる円弧である。入力支援アプリケーション150は、固定端と移動端の間の円弧の角度を、一例として、次式(1)で算出する。
円弧の角度=360度×(現時刻-DecisionTime)/DecisionTH (1)
【0095】
ここで、DecisionTimeは、円弧の描画を始めた時刻であり、DecisionTHは、円弧の描画を始めてからクリックイベントを出力するまでに要する時間である。クリックイベントとは、指先FTでの操作入力によって、操作内容が決定した場合に行うイベントである。操作内容は、第2ポインター112Aが円弧から円環になることで決定する。操作内容が決定すると、入力支援アプリケーション150は、クリックイベントを出力する。ユーザは、指先FTを決定領域内で操作面105Aに対して近づけ、第2ポインター112Aが伸びて円環になるまで指先FTを保持することで、操作内容を決定させることができる。
【0096】
入力支援アプリケーション150は、現時刻-DecisionTime>DecisionTHが成立するかどうかを判定する(ステップS9)。すなわち、決定モードに遷移したときの時刻(DecisionTime)からの経過時間が、DecisionTHを超えたかどうかを判定する。操作内容が決定したかどうかを判定するためであり、操作内容が決定した場合に行うクリックイベントを出力するかどうかを判定するためである。決定モードに遷移したときの時刻(DecisionTime)からの経過時間は、第1所定時間の一例である。
【0097】
入力支援アプリケーション150は、現時刻-DecisionTime>DecisionTHが成立しない(S9:NO)と判定すると、フローをステップS3にリターンする。ステップS3~S8の処理が繰り返し行われることにより、円弧が伸びて行く。
【0098】
入力支援アプリケーション150は、現時刻-DecisionTime>DecisionTHが成立する(S9:YES)と判定すると、クリックイベントを出力するために処理を進める。現時刻-DecisionTime>DecisionTHが成立したとき、円弧のカーソルが円環になる。
【0099】
入力支援アプリケーション150は、第2ポインター112Aを消去する(ステップS10)。
【0100】
入力支援アプリケーション150は、ステップS3で算出したXY座標(移動平均)をOS140に出力してから、クリックイベントをOS140に出力する。更に、入力支援アプリケーション150は、クリックイベント出力音をOS140に再生させる(ステップS11)。これにより、スピーカからクリックイベント出力音が出力される。また、XY座標が、アプリケーションプログラム160のGUIボタン110Aと重なるときに、クリックイベントが発行されると、アプリケーションプログラム160は、GUIボタン110Aが示す処理を実行する。
【0101】
入力支援アプリケーション150は、DecisionTHが0(S7:Yes)と判定すると、前述したステップS11の処理を実行する。つまり、入力支援アプリケーション150は、「DecisionTHが0と判定した場合」(S7:Yes)と、「現時刻-DecisionTime>DecisionTHが成立すると判定した場合(S9:YES)」に、XY座標と、クリックイベントとをOS140に出力すると共に、クリックイベント出力音をOS140に再生させる。
【0102】
入力支援アプリケーション150は、ステップS3で算出したXY座標(移動平均)を中心とする第2ポインター112Bを所定時間OS140に表示させる(ステップS12)。
【0103】
第2ポインター112Bの中心は、ステップS3で算出したXY座標(移動平均)である。所定時間は、一例として、1秒~2秒程度であり、所定時間が経過すると、第2ポインター112Bは非表示になる。
【0104】
入力支援アプリケーション150は、ReClickTH=0が成立するかどうかを判定する(ステップS13)。ReClickTHは、クリックイベント出力後に、決定領域内に指先FTが位置し続けている場合に、再び第2ポインター112Aを表示し始めるまでの時間(クリック再出力時間)である。非接触入力装置100のユーザは、ディスプレイ110に表示された設定画面を通じて、入力支援アプリケーション150に対してReClickTHを設定することができる。
【0105】
入力支援アプリケーション150は、ReClickTH=0が成立する(S13:YES)と判定すると、指先FTのXY座標を計算する(ステップS14)。ステップS14は、ステップS3と同様にサブルーチンであり、その詳細については後述するが、複数の時点で算出した指先FTのXY座標を用いて、指先FTのXY座標の移動平均を求める。
【0106】
入力支援アプリケーション150は、Z値がCz1よりも大きいかどうかを判定する(ステップS15)。入力支援アプリケーション150は、操作内容が決定した後に、指先FTが引き続き決定領域内に位置するかどうかを判定する。
【0107】
入力支援アプリケーション150は、Z値がCz1よりも大きくない(S15:NO)と判定すると、選択モードに設定する(ステップS16)。そして、フローをステップS3にリターンする。Z値ΔADがCz1よりも大きくない場合は、指先FTが決定領域から選択領域や近接領域等に移動した場合である。指先FTが決定領域から選択領域や近接領域等に移動した場合は、再入力可能にするために、ステップS14の処理を設けている。
【0108】
入力支援アプリケーション150は、ステップS15において、Z値がCz1よりも大きい(S15:YES)と判定すると、ステップS14で算出したXY座標(移動平均)に、OS140に第2ポインター112Bを表示させる(ステップS17)。円形の第2ポインター112Bの大きさは、予め決められた所定値である。
【0109】
クリック再出力時間(ReClickTH)を0に設定した場合は、入力支援アプリケーション150は、決定モードから他のモードに移行しない限り、クリックイベントを再出力せずに、第2ポインター112Bを指先FTのXY座標の位置に表示し続ける。
【0110】
入力支援アプリケーション150は、ステップS17の処理を終えると、フローをS14にリターンする。ステップS7でYES、又は、ステップS9でYESになって操作内容が決定して、ステップS12で第2ポインター112Bを表示した後に、指先FTが引き続き決定領域内にある場合には、入力支援アプリケーション150は、ステップS17で第2ポインター112Bを表示した後に、フローをステップS14にリターンする。つまり、第2ポインター112Bの位置を更新しながら、第2ポインター112Bを表示し続ける。操作内容が一度決定した後に、次の操作内容を決定させるには、一度、指先FTを決定領域の外に出せばよい。
【0111】
<S5:NO>
また、入力支援アプリケーション150は、ステップS5において、Z値がCz1よりも大きくない(S5:NO)と判定すると、現時刻-SelectionOffTime>SelectionOffTHが成立するかどうかを判定する(ステップS18)。すなわち、指先FTが決定領域外に継続的に位置しているときに、指先FTが決定領域内に位置すると最後に判定された時刻(SelectionOffTime)からの経過時間が、SelectionOffTHを超えたかどうかを判定する。この経過時間は、第4所定時間の一例である。
【0112】
SelectionOffTHは、指先FTを選択領域に移動した場合に、決定モードから選択モードに遷移するまでの時間である。非接触入力装置100のユーザは、ディスプレイ110に表示された設定画面を通じて、入力支援アプリケーション150に対してSelectionOffTHを設定することができる。なお、指先FTが決定領域内に位置すると最後に判定された時刻とは、指先FTが決定領域内に位置すると判定された最新の時刻である。
【0113】
入力支援アプリケーション150は、現時刻-SelectionOffTime>SelectionOffTHが成立しない(S18:NO)と判定すると、Z値がCz2より大きいかどうかを判定する(ステップS19)。入力支援アプリケーション150は、Z値がCz2より大きい場合、指先FTが第1領域に留まっているとみなす。ZがCz2より大きければ(S19:YES)、フローをステップS7にリターンする。この結果、決定モードでの動作が継続される。Z値は、移動平均を用いておらず、ノイズによって、実際よりも小さな値が測定されることがある。つまり、指先FTが決定領域に位置する場合でも、Z>Cz1が成立しない(S5:NO)の場合がある。このため、Z値がCz1より大きくなくても、Z値がCz2より大きければ、暫くの間(SelectionOffTHの間)、第2ポインター112Aの描画を継続する。一方、入力支援アプリケーション150は、Z値がCz2より大きくなければ(S19:NO)、選択モードに設定すると共にSelectionTimeに現時刻を設定する(ステップS20)。Z値がCz2より大きくなければ、指先FTは、決定領域に無いと見なす。
【0114】
また、入力支援アプリケーション150は、現時刻-SelectionOffTime>SelectionOffTHが成立する(S18:YES)と判定すると、入力支援アプリケーション150のモードを選択モードに設定すると共にSelectionTimeに現時刻を設定する(ステップS20)。Z値が、Cz1より大きくない状態(ステップS5)が、SelectionOffTHより長く継続した場合、指先FTが、決定領域に無いと見なす。
【0115】
入力支援アプリケーション150は、OS140に第2ポインター112Aを非表示にさせる(ステップS21)。
【0116】
入力支援アプリケーション150は、OS140に第2ポインター112を表示させる(ステップS22)。第2ポインター112は、図6Cに示した選択モード用の第2ポインターである。入力支援アプリケーション150は、第2ポインター112をOS140に表示させる前に、第2ポインター112Aを非表示にさせる。第2ポインター112の中心は、指先FTのXY座標(移動平均)であり、第2ポインター112の半径は、XY座標の変動量に応じた半径である。入力支援アプリケーション150は、ステップS22において、OS140に第2ポインター112を表示させる際に、指先FTのXY座標(移動平均)に応じた第2ポインター112の位置をOS140に出力する。また、入力支援アプリケーション150は、第2ポインター112の大きさをXY座標の変動量に応じた大きさにする。
【0117】
入力支援アプリケーション150は、機能メニュー表示要否の判定処理を実行する(ステップS23)。機能メニュー表示要否の判定処理は、サブルーチン処理であるため、詳細は後述する。入力支援アプリケーション150は、ステップS23の処理を終えると、フローをステップS3にリターンする。
【0118】
<S12:NO>
入力支援アプリケーション150は、ステップS13において、ReClickTH=0が成立しない(S13:NO)と判定すると、ClickTimeを現在の時刻に設定する(ステップS24)。ClickTimeは、クリックイベントを出力したときの時刻である。
【0119】
入力支援アプリケーション150は、現時刻-ClickTime>ReClickTHが成立するかどうかを判定する(ステップS25)。
【0120】
入力支援アプリケーション150は、現時刻-ClickTime>ReClickTHが成立する(S25:YES)と、DecisionTimeを現時刻に設定する(ステップS26)。そして、フローをステップS3にリターンする。よって、DecisionTimeは、ステップS3にリターンしたときの時刻になる。指先FTを決定領域に留めると、再び、徐々に長くなる円弧が描画される。一度、クリックイベントが出力されてから、再び、第2ポインター112A(円弧)の描画が開始されるまでの時間は、ステップS12の「所定時間」と、ReClickTHを加えた時間になる。第2ポインター112A(円弧)の描画が開始されてから、第2ポインター112Aが円環になるまでは、DecisionTimeTHの時間がかかる。ステップS12の「所定時間」と、ReClickTHと、DecisionTimeTHを加えた時間が、経過するたびに、クリックイベントが出力される。つまり、ステップS12の「所定時間」と、ReClickTHと、DecisionTimeTHを加えた時間が、第2所定時間になる。
【0121】
入力支援アプリケーション150は、ステップS25において、現時刻-ClickTime>ReClickTHが成立しない(S25:NO)と判定すると、指先FTのXY座標を計算する(ステップS27)。ステップS27は、ステップS3と同様にサブルーチンであり、その詳細については後述するが、複数の時点で算出した指先FTのXY座標を用いて、指先FTのXY座標の移動平均を求める。
【0122】
入力支援アプリケーション150は、Z値がCz1より大きいかどうかを判定する(ステップS28)。指先FTが決定領域内に位置するかどうかを判定するためである。
【0123】
入力支援アプリケーション150は、Z値がCz1より大きい(S28:YES)と判定すると、指先FTのXY座標を中心とする位置に第2ポインター112Bを表示させる(ステップS29)。入力支援アプリケーション150は、決定モードに留まっている場合は、クリック再出力時間(ReClickTH)が経過するまで、第2ポインター112BをOS140に表示させる。
【0124】
入力支援アプリケーション150は、ステップS27において、Z値がCz1より大きくない(S28:NO)と判定すると、入力支援アプリケーション150のモードを選択モードに設定すると共にSelectionTimeに現時刻を設定する(ステップS30)。指先FTが決定領域から選択領域に移動すると、直ちに選択モードに遷移する。できるだけ早く次の操作入力を行いたいユーザは、指先FTを操作面105Aから少し離すことで、選択モードに切り替えることができる。入力支援アプリケーション150は、ステップS30の処理を終えると、フローをステップS3にリターンする。
【0125】
<S4:NO>
また、入力支援アプリケーション150は、ステップS4において、決定モードではない(S4:NO)と判定すると、Z値がCz1より大きいかどうかを判定する(ステップS4A)。すなわち、入力支援アプリケーション150は、指先FTが決定領域内に位置するかどうかを判定する。Z値がCz1より大きければ指先FTが決定領域内に位置することになる。
【0126】
入力支援アプリケーション150は、Z値がCz1より大きい(S4A:YES)と判定すると、SelectionOffTimeとProximityOffTimeを現在の時刻(現時刻)に設定する(ステップS5A)。SelectionOffTimeは、Z値がCz1より大きいと判断されたときの時刻に更新されるので、SelectionOffTimeは、Z値がCz1より大きいと判断された最後の時刻を示す。また、後述する通り、ProximityOffTimeは、Z値がCz2より大きいと判断されたときにも更新される。よって、ProximityOffTime は、Z値がCz2より大きいと判断された最後の時刻を示す。
【0127】
入力支援アプリケーション150は、DecisionTimeを現在の時刻に設定する(ステップS6A)。入力支援アプリケーション150は、決定モードを継続した時間がDecisionTHになると、クリックイベントを出力する。ステップS4において、決定モードではないと判定された後に、ステップS4AでZ値がCz1より大きいと判定されたので、ステップS6Aを実行する時刻は、決定モードなった時刻である。つまり、ステップS6Aで設定されたDecisionTimeは、決定モードになった時刻である。
【0128】
入力支援アプリケーション150は、入力支援アプリケーション150のモードを決定モードに設定する(ステップS7A)。更に、入力支援アプリケーション150は、選択モード用の第2ポインター112を消去する(ステップS8A)。ステップS8Aの処理を終えると、フローをステップS7に進める。
【0129】
フローがステップS4:NO、S4A:YESと進行するのは、指先FTが決定領域以外から、決定領域に入った場合である。このように、指先FTが操作面105Aに近づく場合には、すぐに決定モードに遷移することになる。その一方で、指先FTが操作面105Aから遠ざかる場合には、すぐにはモードを変更しないことになる。前述したとおり、Z値が小さくなった場合(指先FTが操作面105Aから遠ざかる状態が測定された場合)、すぐにはモードを変更しないことで、動作を安定化している。一方、Z値に移動平均を用いず、指先FTが操作面105Aに近づく場合には、すぐに決定モードに遷移することで、素早い操作を実現している。尚、ノイズの影響で決定モードになったとき、指先FTが決定領域に無いが、決定領域の近く(選択領域)にある。このため、ユーザは、誤動作と感じない。反応速度の低下防止と、誤入力の防止を両立できる。
【0130】
<S4A:NO>
また、入力支援アプリケーション150は、ステップS4Aにおいて、Z値がCz1より大きくない(S4A:NO)と判定すると、入力支援アプリケーション150のモードが選択モードであるかどうかを判定する(ステップS4B)。
【0131】
選択モードの場合、入力支援アプリケーション150は、Z値がCz2より大きいかを判定する(ステップS5B)。すなわち、入力支援アプリケーション150は、指先FTが選択領域内に位置するかどうかを判定する。
【0132】
入力支援アプリケーション150は、Z値がCz2より大きい(S5B:YES)と判定すると、ProximityOffTimeを現在の時刻に設定する(ステップS6B)。ProximityOffTimeは、指先FTが選択領域内に継続的に位置しているときに、選択領域内に位置すると最後に判定された時刻である。指先FTが選択領域内に位置すると、ProximityOffTimeが更新されるので、ProximityOffTimeは、指先FTが選択領域内に位置すると判定された最新の時刻になる。
【0133】
入力支援アプリケーション150は、XY座標の変動量に応じて第2ポインター112の半径を設定する第2ポインター半径設定処理を実行する(ステップS7B)。第2ポインター半径設定処理はサブルーチン処理であるため詳細は後述するが、選択モードにおいて、XY座標の変動量に応じて、第2ポインター112(図6C参照)の半径が設定される。入力支援アプリケーション150は、ステップS7Bの処理を終えると、フローをステップS21に進め、第2ポインター112をOS140に表示させる。
【0134】
<S5B:NO>
入力支援アプリケーション150は、ステップS5Bにおいて、Z値がCz2より大きくない(S5B:NO)と判定すると、現時刻-ProximityOffTime>ProximityOffTHが成立するかどうかを判定する(ステップS8B)。すなわち、指先FTが選択領域内に継続的に位置しているときに、指先FTが選択領域内に位置すると最後に判定された時刻(ProximityOffTime)からの経過時間が、ProximityOffTHを超えたかどうかを判定する。ProximityOffTHは、選択モードから近接モードに遷移するまでの時間である。非接触入力装置100のユーザは、ディスプレイ110に表示された設定画面を通じて、入力支援アプリケーション150に対してProximityOffTHを設定することができる。
【0135】
入力支援アプリケーション150は、現時刻-ProximityOffTime>ProximityOffTHが成立しない(S8B:NO)と判定すると、XY座標の変動量に応じて第2ポインター112の半径を設定する第2ポインターの半径設定処理を実行する(ステップS9B)。第2ポインターの半径設定処理はサブルーチン処理であるため詳細は後述するが、選択モードにおいて、XY座標の変動量に応じて、第2ポインター112(図6C参照)の半径が設定される。入力支援アプリケーション150は、ステップS9Bの処理を終えると、フローをステップS21に進め、第2ポインター112をOS140に表示させる。Z値は、移動平均を用いておらず、ノイズによって、実際よりも小さな値が測定されることがある。しかし、指先FTの実際の位置が、選択領域にあるにも関わらず、Z>Cz2が成立しない状態は、ProximityOffTH より短い時間で解消する。このため、第2ポインター112を表示している最中に、ノイズによって、小さなZ値が測定されても、第2ポインター112の表示が継続する。一方、実際に指先FTを近接領域に移動しても、暫く、第2ポインター112の表示が継続する。大半のユーザは、第2ポインター112の表示が消える時間が遅くなっても、反応が遅いと感じない。このため、S8B:NOからS9Bの処理は、感覚的な反応速度を低下させずに、動作を安定化できる。
【0136】
入力支援アプリケーション150は、ステップS8Bにおいて、現時刻-ProximityOffTime>ProximityOffTHが成立する(S8B:YES)と判定すると、入力支援アプリケーション150のモードを近接モードに設定する(ステップS10B)。
【0137】
入力支援アプリケーション150は、近接モード用の画像及びメッセージ(図6B参照)をOS140に表示させる(ステップS11B)。この結果、図6Bに示すように、近接モード用の画像及びメッセージがディスプレイ110に表示される。入力支援アプリケーション150は、ステップS11Bの処理を終えると、フローをステップS3に進める。
【0138】
<S4B:NO>
また、入力支援アプリケーション150は、ステップS4Bにおいて、入力支援アプリケーション150のモードが選択モードではない(S4B:NO)と判定すると、Z値がCz2より大きいかどうかを判定する(ステップS4C)。すなわち、入力支援アプリケーション150は、指先FTが再び選択領域内に入ったかどうかを判定する。
【0139】
入力支援アプリケーション150は、Z値がCz2より大きい(S4C:YES)と判定すると、ProximityOffTimeを現在の時刻に設定する(ステップS5C)。前述したとおり、Z>Cz1(S5またはS4A)がYES、若しくは、Z>Cz2(S5BまたはS4C)がYESならば、ProximityOffTimeが現在の時刻に更新される。よって、ZがCz2より大きかったときの最後の時刻が、ProximityOffTimeとして記憶される。
【0140】
入力支援アプリケーション150は、入力支援アプリケーション150のモードを選択モードに設定すると共にSelectionTimeに現時刻を設定する(ステップS6C)。
【0141】
入力支援アプリケーション150は、第2ポインター112の半径を初期値に設定する処理を行う(ステップS7C)。第2ポインター112の半径を初期値に設定する処理はサブルーチン処理であるため詳細は後述するが、第2ポインター112の半径をXY座標の変動量に応じた半径ではなく、初期値に設定する処理である。入力支援アプリケーション150は、ステップS7Cの処理を終えると、フローをステップS21に進め、第2ポインター112をOS140に表示させる。尚、指先FTが実際には、近接領域に有るが、ノイズによって、Z値が実際よりも大きく測定され、選択モードになることがある。しかし、指先FTが、ある程度近くにある状態で、選択モードになるので、大半のユーザは、誤動作と認識しない。逆に言えば、指先FTが遠い位置(待機領域)にある場合は、通常存在するレベルのノイズが入っても、選択モードにならない。
【0142】
<S4C:NO>
入力支援アプリケーション150は、ステップS4Cにおいて、Z値がCz2より大きくない(S4C:NO)と判定すると、入力支援アプリケーション150のモードが近接モードであるかどうかを判定する(ステップS4D)。
【0143】
入力支援アプリケーション150は、入力支援アプリケーション150のモードが近接モードである(S4D:YES)と判定すると、Z値がCz3より大きいかどうかを判定する(ステップS5D)。入力支援アプリケーション150は、Z値がCz2より大きい場合、操作面105Aから指先FTまでの距離が、第3閾値Z3より短いとみなす。
【0144】
入力支援アプリケーション150は、Z値がCz3より大きい(S5D:YES)と判定すると、フローをステップS11Bに進める。この結果、ステップS11Bにおいて、図6Bに示すように、近接モード用の画像及びメッセージがディスプレイ110に表示される。
【0145】
<S5D:NO>
入力支援アプリケーション150は、ステップS5Dにおいて、Z値がCz3より大きくない(S5D:NO)と判定すると、入力支援アプリケーション150のモードを待機モードに設定する(ステップS6D)。入力支援アプリケーション150は、Z値がCz3より大きくない場合、操作面105Aから指先FTまでの距離が第3閾値Z3より長いとみなす。
【0146】
入力支援アプリケーション150は、待機モード用の画像及びメッセージをOS140に表示させる(ステップS7D)。この結果、待機モード用の画像及びメッセージがディスプレイ110に表示される。入力支援アプリケーション150は、ステップS7Dの処理を終えると、フローをステップS3に進める。尚、待機モードでは、ディスプレイの電源を切ってもよい(図7DのS7D')。
【0147】
<S4D:NO>
入力支援アプリケーション150は、ステップS4Dにおいて、入力支援アプリケーション150のモードが近接モードではない(S4D:NO)と判定すると、Z値がCz3より大きいかどうかを判定する(ステップS4E)。入力支援アプリケーション150は、指先FTが再び近接領域内に入ったかどうかを判定する。
【0148】
入力支援アプリケーション150は、Z値がCz3より大きい(S4E:YES)と判定すると、入力支援アプリケーション150のモードを近接モードに設定する(ステップS5E)。入力支援アプリケーション150は、ステップS11Bに進み、近接モード用の画像及びメッセージを表示する。
【0149】
また、入力支援アプリケーション150は、ステップS4Eにおいて、Z値がCz3より大きくない(S4E:NO)と判定すると、フローをステップS7Dに進める。この場合は、入力支援アプリケーション150のモードが待機モードであるため、ステップS7Dにおいて、待機モード用の画像及びメッセージがディスプレイ110に表示される。
【0150】
以上で、一連のメインのフローが終了する。入力支援アプリケーション150は、メインのフローを繰り返し実行する。次に各サブルーチンについて説明する。
【0151】
図8A:初期値設定>
入力支援アプリケーション150は、入力支援アプリケーション150のモードを待機モードに設定し、フラグnullをYESに設定する(ステップS101)。
【0152】
入力支援アプリケーション150は、Nmaを所定の整数に設定する(ステップS102)。
Nmaは、移動平均を計算する際に用いる複数のデータの個数の計算値であり、Nma=int(MATime/Nmea)として計算される。所定の整数は、int(MATime/Nmea)として求まる。int(MATime/Nmea)は、MATime/Nmeaの小数を切り捨てた整数を表す。MATimeは移動平均に用いる時間(始期から終期までの時間)であり、Nmeaは測定間隔である。すなわち、Nma=int(MATime/Nmea)となる。なお、非接触入力装置100のユーザは、ディスプレイ110に表示された設定画面を通じて、入力支援アプリケーション150に対してMATimeを設定することができる。
【0153】
入力支援アプリケーション150は、NmaとNdevを比べ、どちらが大きいかを判定する(ステップS103)。Ndevは、位置精度の指標を計算する際に用いる複数のデータの個数である。
【0154】
入力支援アプリケーション150は、Nmaと、Ndevの大きい方を、配列の個数Numに設定する(ステップS104、S105)。つまり、「移動平均の計算に必要なデータの個数」と、「位置精度の指標の計算に必要なデータの個数」のどちらか大きい方の値を、配列の個数Numに設定する。配列の要素の数が決まるので、この段階で、配列の宣言を行ってもよい。入力支援アプリケーション150は、ステップS104の処理を終えると、初期値設定のサブルーチンを終了する。
【0155】
図8B:座標計算>
入力支援アプリケーション150は、入力センサ回路125AからXY座標とZ値を取得する(ステップS111)。
【0156】
入力支援アプリケーション150は、現在の時刻(現時刻)をOS140から取得する(ステップS112)。前述したメインループで用いる「現時刻」は、ステップS112で取得した値を用いる。
【0157】
入力支援アプリケーション150は、X座標の配列を更新する(ステップS113)。ステップS113はサブルーチン処理であるため詳細は後述するが、入力支援アプリケーション150は、ステップS113において、X座標の移動平均や、位置精度の指標を算出する際に用いる配列から、最も古い値を除き、最新の値を追加する。
【0158】
入力支援アプリケーション150は、Y座標の配列を更新する(ステップS114)。ステップS113はサブルーチン処理であるため詳細は後述するが、入力支援アプリケーション150は、ステップS114において、Y座標の移動平均や、位置精度の指標を算出する際に用いる配列から、最も古い値を除き、最新の値を追加する。
【0159】
入力支援アプリケーション150は、ステップS113で更新したX座標の配列から移動平均を算出する(ステップS115)。
【0160】
入力支援アプリケーション150は、ステップS114で更新したY座標の配列移動平均を算出する(ステップS116)。
【0161】
入力支援アプリケーション150は、ステップS111で取得したZ値がCz3より大きいかを判定する(ステップS117)。Z値がCz3より大きくない場合には、Z値が待機領域内の値になり、ステップS111で取得した最新のXY座標及びそれ以前にステップS111で取得したXY座標の信頼性が低く、XY座標の移動平均を求めるのに適した座標値ではないため、ステップS117の処理を設けている。
【0162】
入力支援アプリケーション150は、ステップS111で取得したZ値がCz3より大きい(S117:YES)と判定すると、フラグnullをNOに設定する(ステップS118)。最新のXY座標は、XY座標の移動平均や位置精度の指標を求めるのに適した座標値であるため、フラグnullをNOに設定する。
【0163】
入力支援アプリケーション150は、ステップS111で取得したZ値がCz3より大きくない(S117:NO)と判定すると、フラグnullをYESに設定する(ステップS119)。最新のXY座標は、XY座標の移動平均を求めるのに適した座標値ではないため、フラグnullをYESに設定する。
【0164】
以上で、座標計算のサブルーチンが終了する。
【0165】
図8C:X座標の配列の更新>
図8Cは、図8BのステップS113のX座標の配列を更新するサブルーチン処理の詳細を示す。以下では、複数の時点で取得された複数のX座標をX(i)として区別する。複数のX座標X(i)が取得された時刻は互いに異なり、非接触入力装置100が所定のサンプリング周期で連続的に取得した複数のX座標である。i=1~Numであり、X(1)は最新のX座標である。
【0166】
入力支援アプリケーション150は、フラグnullがYESであるかどうかを判定する(ステップS121X)。最新のX座標が適切であるかどうかを判定するためである。
【0167】
入力支援アプリケーション150は、フラグnullがYESである(S121X:YES)と判定すると、非測定値をX(i)に代入してX座標を作成するサブルーチン処理を行う。
【0168】
入力支援アプリケーション150は、iが2~NumまでのNum-1個のX座標(X(2)~X(Num))を1つずつ選択し、非測定値を代入する(ステップS122X)。非測定値は、測定して得た値ではない値であり、ダミーの値である。ここでは一例として非測定値として0xFFFFを用いる。入力支援アプリケーション150は、ステップS122Xを含むサブルーチン処理を終えると、フローをステップS123Xに進める。なお、非測定値は、測定されることがない値であればよく、0xFFFF以外の値であってもよい。
【0169】
入力支援アプリケーション150は、X(1)に最新のX座標を代入する(ステップS123X)。このようにして、入力支援アプリケーション150は、Num個のX座標X(1)~X(Num)を更新する。
【0170】
また、入力支援アプリケーション150は、フラグnullがNOである(S121X:NO)と判定すると、iが1~Num-1までのNum-1個のX座標(X(1)~X(Num-1))を1つずつ選択し、i番号を1ずつ加算して、X座標(X(2)~X(Num))に移動する(ステップS124X)。
【0171】
入力支援アプリケーション150は、ステップS124Xの処理を終えると、フローをステップS123Xに進める。ステップS124Xで取得したX座標(X(2)~X(Num))に、X座標X(1)を加えることで、入力支援アプリケーション150は、X座標の配列X(1)~X(Num)を更新する。
【0172】
図8D:最新のNum個のY座標の取得>
図8Dは、図8BのステップS114のY座標の配列を更新するサブルーチン処理の詳細を示す。以下では、複数のY座標をY(i)として区別する。複数のY座標Y(i)が取得された時刻は互いに異なり、非接触入力装置100が所定のサンプリング周期で連続的に取得した複数のY座標である。複数のY座標Y(i)が取得された時刻は、それぞれ、複数のX座標X(i)が取得された時刻と等しい。i=1~Numであり、Y(1)は最新のY座標である。
【0173】
図8Dに示すステップS121Y~S124Yの処理は、入力支援アプリケーション150がY座標Y(i)について実行する処理であり、図8Cに示したX座標X(i)についてのステップS121X~S124Xの処理をY座標Y(i)についての処理に置き換えた処理である。このため、ここでは図8Dの説明を省略する。尚、S121XからS123Xと、S121YからS123Yの処理に代えて、配列中の最も古い値を、最新の値に置き換える処理をしてもよい。この場合、配列の各要素をコピーする必要がなくなる。但し、最も古い値が格納されている要素を特定する添え字(index)と、最新の値が格納されている要素を特定する添え字(index)が必要になる。また、後述する移動平均や、変動量の算出の際のループ処理も変更する必要がある。
【0174】
図8E:X座標の移動平均>
図8Eは、図8BのステップS115のX座標の移動平均を算出するサブルーチン処理の詳細を示す。
【0175】
入力支援アプリケーション150は、X座標の積算値Xaccを0にリセットする(ステップS131X)。
【0176】
入力支援アプリケーション150は、X座標の積算を行うサブルーチンに含まれるステップS132X、133X、及び134Xの処理を実行する。このサブルーチンでは、X(i)のiが1からNmaまで1つずつ積算を行う。
【0177】
入力支援アプリケーション150は、X(i)が0xFFFFであるかどうかを判定する(ステップS132X)。0xFFFFは、X座標の計算に用いるZ値の測定値がないことを意味する。
【0178】
入力支援アプリケーション150は、X(i)が0xFFFFである(S132X:YES)と判定すると、積算値XaccをXacc+X(1)に更新する(ステップS133X)。すなわち、X(i)にダミーデータが格納されている場合、積算値の算出に最新のX座標(X(1))を用いる。このため、Xacc=Xacc+X(1)の計算をする。
【0179】
また、入力支援アプリケーション150は、ステップS132Xにおいて、X(i)が0xFFFFではない(S132X:NO)と判定すると、積算値XaccをXacc+X(i)に更新する(ステップS134X)。すなわち、以前測定されたX座標(X(i))を順に累積する。このため、Xacc=Xacc+X(i)の計算をする。
【0180】
入力支援アプリケーション150は、ステップS132X、133X、及び134Xの処理をX(i)のiについて1からNmaまで繰り返し実行すると、X座標の積算を行うサブルーチンの処理を終え、フローをステップS135Xに進める。
【0181】
入力支援アプリケーション150は、積算値XaccをNmaで除算することで、X座標の移動平均を求める(ステップS135X)。すなわち、X座標の移動平均Xave=Xacc/Nmaである。
【0182】
図8F:Y座標の移動平均>
図8Fは、図8BのステップS116のY座標の移動平均を算出するサブルーチン処理の詳細を示す。
【0183】
図8Fに示すステップS131Y~S135Yの処理は、入力支援アプリケーション150がY座標Y(i)について実行する処理であり、図8Eに示したX座標X(i)についてのステップS131X~S135Xの処理をY座標Y(i)についての処理に置き換えた処理である。このため、ここでは図8Fの説明を省略する。
【0184】
図9A:第2ポインター112の半径を初期値に設定する処理>
図9Aは、ステップS7Cの第2ポインター112の半径を初期値に設定する処理の一例を示す。
【0185】
入力支援アプリケーション150は、第2ポインター112の半径Radiusの初期値を最大値Rmaxに設定する(ステップS141A)。すなわち、Radius=Rmaxである。非接触入力装置100のユーザは、ディスプレイ110に表示された設定画面を通じて、入力支援アプリケーション150に対してRmaxを設定することができる。
【0186】
図9B:第2ポインター112の半径を初期値に設定する処理>
図9Bは、ステップS7Cの第2ポインター112の半径を初期値に設定する処理の他の一例を示す。
【0187】
入力支援アプリケーション150は、位置精度の指標としてのXY座標の変動量Dを算出する(ステップS141B)。ステップS141Bは、サブルーチン処理であり、詳細は図9Eを用いて後述する。入力支援アプリケーション150は、一例として、選択モードになると変動量Dを算出する。入力支援アプリケーション150は、第2ポインター112の半径の最大値RmaxをXY座標の変動量Dに定数を乗じた値に設定する(ステップS142B)。すなわち、Rmax=D×定数である。なお、所定の定数は、予め決められた値である。
【0188】
入力支援アプリケーション150は、第2ポインター112の半径RadiusをステップS142Bで設定した最大値Rmaxに設定する(ステップS143B)。すなわち、Radius=Rmax=D×定数である。なお、図9Bの処理を行う場合は、入力支援アプリケーション150は、ユーザが最大値Rmaxを設定可能にする処理を行わない。
【0189】
図9C:第2ポインター112の半径を設定する処理>
図9Cは、ステップS7B及びS9Bの第2ポインターの半径設定処理の一例を示す図である。
【0190】
入力支援アプリケーション150は、位置精度の指標としてのXY座標の変動量Dを算出する(ステップS141C)。ステップS141Cは、サブルーチン処理であり、詳細は図9Eを用いて後述する。入力支援アプリケーション150は、一例として、選択モードになると変動量Dを算出する。
【0191】
入力支援アプリケーション150は、ステップS141Cで求めた変動量Dを用いて、第2ポインター112の半径Radiusを計算する(ステップS142C)。半径Radius=Rmin+(Rmax-Rmin)×(D/Rmax)である。なお、Rminは、第2ポインター112の半径の最小値であり、一例として予め決められた値である。
【0192】
入力支援アプリケーション150は、ステップS142Cで計算した半径Radiusが、最大値Rmaxよりも大きいかどうかを判定する(ステップS143C)。
【0193】
入力支援アプリケーション150は、半径Radiusが、最大値Rmaxよりも大きい(S143C:YES)と判定すると、半径Radiusを最大値Rmaxに設定する(ステップS144C)。すなわち、Radius=Rmaxである。
【0194】
また、入力支援アプリケーション150は、半径Radiusが、最大値Rmaxよりも大きくない(S143C:NO)と判定すると、計算した半径Radiusをそのまま利用する。
【0195】
以上のように、入力支援アプリケーション150は、一例として、選択モードになると変動量Dを算出する。選択モードで第2ポインター112を表示し始めるときに、第2ポインター112の大きさが徐々に変わることになり、位置精度に応じた大きさの第2ポインター112を視認し易くなる。
【0196】
なお、入力支援アプリケーション150は、一例として、近接モードになると変動量Dを算出してもよい。選択モードで第2ポインター112を表示する前から位置精度を算出することで、第2ポインター112を表示し始めるときから、位置精度に応じた大きさの第2ポインター112を表示できる。
【0197】
図9D:XY座標の変動量Dの計算処理>
図9Dは、XY座標の変動量Dの計算処理の一例を示す図である。図9Dは、図8CのステップS141Cの変動量Dの計算処理の一例を示す。
【0198】
入力支援アプリケーション150は、X座標の変動量DX、及び、Y座標の変動量DYをリセットする(ステップS151A)。すなわち、DX=0、DY=0である。
【0199】
入力支援アプリケーション150は、変動量Dの累積を計算するサブルーチン処理を行う。このサブルーチンは、ステップS152A、S153A、及びS154Aを含み、X座標X(i)、Y座標Y(i)について、iを1からNdevまで設定して行う。すなわち、入力支援アプリケーション150は、最新のNdev個のXY座標を用いて、変動量Dを計算する。
【0200】
入力支援アプリケーション150は、X座標X(i)が0xFFFFであるかどうかを判定する(ステップS152A)。
【0201】
入力支援アプリケーション150は、X座標X(i)が0xFFFFである(S152A:YES)と判定すると、X座標の変動量DX、及び、Y座標の変動量DYに定数を加算する(ステップS153A)。すなわち、DX=DX+定数、DY=DY+定数となる。
【0202】
また、入力支援アプリケーション150は、X座標X(i)が0xFFFFではない(S152A:NO)と判定すると、X座標の変動量DX、及び、Y座標の変動量DYにX座標の移動平均Xave、Y座標の移動平均Xaveとの差分の二乗を加算する(ステップS154A)。すなわち、DX=DX+(X(i)-Xave)、DY=DY+(Y(i)-Yave)となる。
【0203】
入力支援アプリケーション150は、ステップS152A、S153A、及びS154Aを含み、X座標X(i)、Y座標Y(i)について、iを1からNdevまで設定して行うと、フローをステップS155Aに進める。
【0204】
入力支援アプリケーション150は、サブルーチン処理で計算したDX及びDYを用いて、XY座標の変動量Dを次式(2)に従って算出する(ステップS155A)。
【0205】
【数1】
【0206】
以上で、変動量Dが求まる。ステップS154AでDX及びDYを求めて、ステップS155Aで変動量Dを求めることで、XY座標の標準偏差を位置精度の指標として求めることができる。
【0207】
入力支援アプリケーション150は、変動量Dにより、指先FTが、操作面105Aの近くで、指を立てて操作しているか判断する(ステップS156A)。変動量Dが大きい場合、指先FTが、操作面105Aから遠いか、指を伸ばしていないか、指を寝かせているか、いずれかの状態である。変動量Dが掌閾値より大きい場合(S156A:YES)、警告を表示する(ステップS157A)。警告は、「指を立てて、操作面に近づけて操作してください」等のメッセージである。また、警告とともに、画面全体を赤い色にしてもよい。
【0208】
なお、待機モードから急に指先FTを操作面105Aに近づけた場合には、変動量Dは大きな値になり、位置精度が悪いことになる。また、指先FTを操作面105A面の近くに留めておくと、徐々にステップS122Xで代入されるダミーデータが測定データに置き換わり、変動量Dが小さくなる。この場合は、位置精度が徐々に良くなることになる。また、変動量Dは、図9Eに示す処理で求めてもよい。
【0209】
図9E:XY座標の変動量Dの計算処理の変形例>
図9Eは、XY座標の変動量Dの計算処理の一例を示す図である。図9Dは、図8CのステップS141Cの変動量Dの計算処理の一例を示す。
【0210】
図9Eに示す処理は、図9Dに示す処理のステップS155Aの内容を変更したものである。このため、図9EにおけるステップS151B~S154Bまでの処理は、図9DにおけるステップS151A~S154Aまでの処理と同一である。このため、ここでは、ステップS155Bの処理について説明する。
【0211】
入力支援アプリケーション150は、サブルーチン処理で計算したDX及びDYを用いて、XY座標の変動量Dを次式(3)に従って算出する(ステップS155A)。
【0212】
D=DX+DY (3)
【0213】
図9Eでは、変動量DをNdevで除算しない。例えば、Ndevが定数である場合には、Ndevで除算していないDXとDYの和(合計)を変動量Dとして用いてもよい。また、変動量Dは、XY座標の変動量Dではなく、DXやDYのいずれか一方を変動量Dとして用いてもよい。例えば、X座標の変動量DX/Ndev、または、Y座標の変動量DY/Ndevのいずれか一方であってもよい。
【0214】
図9F:メニュー表示要否の判定処理>
図9Fは、メニュー表示要否の判定処理の一例を示す図である。図9Fは、ステップS23のメニュー表示要否の判定処理を示す。
【0215】
ここで、Nmenuは、メニュー表示要否の判定処理のタイムスロットに相当するデータ個数である。Nmenuは、設計時に定めてもよいし、ユーザが設定画面から設定できるようにしてもよい。また、Dmenuは、X座標及びY座標の移動量の閾値に相当する距離である。
【0216】
入力支援アプリケーション150は、X(i)のi番号を2からNmenuまで1ずつ加算しながらX座標の判定処理(判定X)を行う。X座標の判定処理は、サブルーチン処理である。
【0217】
入力支援アプリケーション150は、X(i)-X(1)の絶対値がDmenu未満であるかどうかを判定する(ステップS161)。X(1)は最新のX座標である。
【0218】
入力支援アプリケーション150は、X(2)~X(Nmenu)とX(1)との差の絶対値がすべてDmenu未満(すべてのS161:YES)である場合には、フローをY座標についてのサブルーチン処理を行う。
【0219】
入力支援アプリケーション150は、Y(i)のi番号を2からNmenuまで1ずつ加算しながらY座標の判定処理(判定Y)を行う。Y座標の判定処理は、サブルーチン処理である。
【0220】
入力支援アプリケーション150は、Y(i)-Y(1)の絶対値がDmenu未満であるかどうかを判定する(ステップS162)。Y(1)は最新のY座標である。
【0221】
入力支援アプリケーション150は、Y(2)~Y(Nmenu)とY(1)との差の絶対値がすべてDmenu未満(すべてのS162:YES)である場合には、フローをステップS163に進める。
【0222】
入力支援アプリケーション150は、現時刻-SelectionTime>SelectionTHが成り立つか判定する(ステップS163)。つまり、選択モードになってからの経過時間が、所定時間を超えた場合には、フローをステップS164に進める。
【0223】
入力支援アプリケーション150は、メニューを表示する(ステップS164)。メニューは、一例として、機能メニュー112C(図6E参照)である。もし、指が動いているか(S161:NO、または、S162:NO)、選択モードになった直後(S163:NO)であれば、機能メニューを表示しない。
【0224】
メニューは、選択モードにおいて、Nmenu個のXY座標が略移動していない場合(静止している場合)に表示される。すなわち、入力支援アプリケーション150は、選択モードにおいて、Nmenu個のXY座標が取得される時間にわたって指先FTのXY座標が静止している場合に、OS140にメニューを表示させる。Nmenu個のXY座標が取得される時間は、第3所定時間の一例である。
【0225】
<設定画面>
図10は、設定画面の一例を示す図である。入力支援アプリケーション150は、OS140に対して、ディスプレイ110に図10に示す設定画面を表示させる。設定画面は、各種設定を入力可能な画面を表す画像である。
【0226】
図10に示す設定画面は、モード切替閾値を設定する5つのテキストボックス、待機モード及び近接モードでディスプレイ110に表示するメッセージ、第2ポインター112の位置の移動平均、クリックイベント発行時間、第2ポインター112の半径の最小値及び最大値、及び、クリック再出力時間を入力するテキストボックスを含む。近接モードの閾値はZ値Cz3に相当し、選択モードの閾値はZ値Cz2に相当し、決定モードの閾値はZ値Cz1に相当する。
【0227】
図11は、フォルダの構成の一例を示す図である。フォルダは、メモリ132(図2参照)の内部に格納されており、入力支援アプリケーション150は、フォルダにアクセス可能である。
【0228】
図11には、設定画面で選択可能な音声ファイル(Click.wav)や、各モードにおける背景画像ファイル(Proximity.png, Waiting.png)を示す。なお、ここでは、音声ファイルと背景画像ファイルを1つのフォルダ内に示すが、音声ファイルと背景画像ファイルのフォルダは別々であってよい。
【0229】
<設定処理のフローチャート>
図12は、設定処理の一例を示すフローチャートである。入力支援アプリケーション150は、タスクトレイ内のメニューから「設定」が選択されると、設定プログラムを起動し、図12に示す処理を実行する。
【0230】
入力支援アプリケーション150は、設定画面をOS140にディスプレイ110に表示させる(ステップS201)。ユーザは、図10に示した設定画面に各値等を入力することができる。
【0231】
入力支援アプリケーション150は、適用ボタンがクリックされたかどうかを判定する(ステップS202)。
【0232】
入力支援アプリケーション150は、適用ボタンがクリックされた(S202:YES)と判定すると、各値等を設定する(ステップS203)。具体的には、入力支援アプリケーション150は、近接モード設定ボックスの値をProximityTHに入力し、選択モード設定ボックスの値をSelectionTHに入力し、決定モード設定ボックスの値をDecisionTHに入力し、近接モードへのOFF判定の値をProximityOffTHに入力し、選択モードへのOFF判定の値をSelectionOffTHに入力する。また、入力支援アプリケーション150は、クリック再出力時間の値をReClickTHに入力し、第2ポインター移動平均の時間をMATimeに入力し、クリックイベント発行時間の値をDecisionTimeTHに入力し、半径の最小値をRminに入力し、半径の最大値をRmaxに入力し、待機モード用メッセージを保存し、近接モード用メッセージを保存する。
【0233】
また、入力支援アプリケーション150は、ステップS202において、適用ボタンがクリックされていない(S202:NO)と判定すると、OKボタンがクリックされたかどうかを判定する(ステップS204)。なお、入力支援アプリケーション150は、OKボタンがクリックされるまで、ステップS202以降の処理を繰り返し実行する。
【0234】
入力支援アプリケーション150は、OKボタンがクリックされた(S204:YES)と判定すると、OS140に設定画面を閉じさせる(ステップS205)。入力支援アプリケーション150は、ステップS205の処理を終えると、フローを終了する。尚、OKボタンがクリックされた場合、各値等を設定してから、フローを終了してもよい。
【0235】
<効果>
非接触入力装置100は、操作面105Aと、操作面105Aに対して非接触で操作を行う対象物の二次元位置及び操作面105Aから対象物までの距離を測定する検出部(センサ電極121X、121Y、入力センサ回路125A)と、操作面105Aに裏側に配置されるディスプレイ110と、平面GUIを用いるOS140と入力支援アプリケーション150とを有する制御装置130とを含み、入力支援アプリケーション150は、OS140がディスプレイ110に表示する第1ポインター111とは異なる第2ポインター112を二次元位置及び距離に応じてディスプレイ110にオーバーレイで表示する命令をOS140に出力し、二次元位置及び距離に基づいて対象物による操作が決定したと判定すると、操作が決定したときの二次元位置とクリックイベントとをOS140に対して出力する。
【0236】
したがって、二次元位置にのみ対応可能なOS及びアプリケーションプログラムを搭載した装置において、三次元的な動作での非接触入力を可能にする非接触入力装置100を提供することができる。また、OSが用意する第1ポインター(マウスポインター)に代えて、アプリケーションが第2ポインターを表示することで、二次元位置にのみ対応した第1ポインター(マウスポインター)を表示するOSでも、三次元位置に対応した第2ポインターを表示できる。
【0237】
入力支援アプリケーション150は、第1ポインター111を非表示にする命令をOS140に出力してもよい。OS140に変更を加えずに、OS140が用意しない機能として、操作入力に応じて大きさや円弧の長さ等を動的に変更可能な第2ポインターをディスプレイ110に表示できる。
【0238】
また、操作面105Aから指先FTまでの距離が第1閾値より短い決定領域(第1領域)は、入力支援アプリケーション150が決定モードを実行する決定領域である。入力支援アプリケーション150は、測定された静電容量が第1閾値Cz1より大きければ、指先が決定領域(第1領域)にあるとみなす。入力支援アプリケーション150は、指先FT(対象物)の操作面105Aからの距離が決定領域(第1領域)内に位置するときに、指先FT(対象物)によって行われる操作に応じて移動する第2ポインター112を表示する。入力支援アプリケーション150は、指先FT(対象物)の操作面105Aからの距離が決定領域(第1領域)内に留まると、時間経過に応じて長くなる円弧であって、静止から第1所定時間で円環になる円弧を第2ポインター112Aとして表示する。入力支援アプリケーション150は、指先FT(対象物)の操作面105Aからの距離が決定領域(第1領域)内で留まっている時間が第1所定時間経過すると、操作内容が決定したと判定し、円環を第2ポインター112Bとして表示して、クリックイベントをOS140に発行し、かつ、操作内容が決定したときの二次元位置をOS140に出力してもよい。決定領域で指先FTを一定時間静止すると操作内容が決定されることをユーザが直感的に理解できる。
【0239】
また、入力支援アプリケーション150は、OS140にクリックイベントを発行してから指先FT(対象物)の操作面105Aからの距離が決定領域(第1領域)内に留まると、時間経過に応じて長くなる円弧であって、円弧の描画開始から第2所定時間で円環になる円弧を第2ポインター112AとしてOS140に表示させ、クリックイベントを発行してから第2所定時間が経過すると、円環を第2ポインター112BとしてOS140に表示させ、二次元位置とクリックイベントをOS140に出力する。連続的な決定操作が可能になり、三次元的な動作での非接触入力を可能で使い勝手がより良好な非接触入力装置100を提供することができる。
【0240】
また、入力支援アプリケーション150は、指先FT(対象物)の操作面105Aからの距離が、決定領域(第1領域)の外に出てから決定領域(第1領域)内に戻ると、時間経過に応じて長くなる円弧を第2ポインター112AとしてOS140に表示させてもよい。連続的な決定操作が行われた場合に、即座にポインターを表示できる。
【0241】
また、操作面105Aから指先FTまでの距離が第1閾値以上で、かつ、第1閾値よりも長い第2閾値よりも短い選択領域(第2領域)は、入力支援アプリケーション150が選択モードを実行する選択領域である。入力支援アプリケーション150は、対象物の距離が第2領域内に位置するときに、対象物の二次元位置に応じて移動する第2ポインター112をOS140に表示させ、対象物の距離が第2領域内で第3所定時間留まり、かつ、対象物の二次元位置が静止すると、OS140に機能メニューをオーバーレイで表示させる。入力支援アプリケーション150は、指先FT(対象物)の操作面105Aからの距離が選択領域(第2領域)内に位置するときに、指先FT(対象物)によって行われる操作に応じて移動する第2ポインター112AをOS140に表示させ、指先FT(対象物)の操作面105Aからの距離が選択領域(第2領域)内で第3所定時間静止すると、OS140に機能メニューをオーバーレイで表示させてもよい。第2ポインター112(112A、112B)と同様に、OS140に変更を加えることなく、機能メニューを表示することができる。
【0242】
また、入力支援アプリケーション150は、指先FT(対象物)の操作面105Aからの距離が選択領域(第2領域)内に位置するときに、複数の時点で算出した二次元位置の変動量を指先FT(対象物)の位置精度の指標として算出し、指先FT(対象物)の位置精度が向上するほど、OS140に第2ポインター112を小さく表示させてもよい。OS140に変更を加えることなく、オーバーレイによって、位置精度に応じて第2ポインター112が小さくなるように表示することができる。また、位置精度に応じて第2ポインター112が小さくなるように表示することで、視覚的に位置精度をユーザに伝達することができる。
【0243】
また、入力支援アプリケーション150は、指先FT(対象物)の操作面105Aからの距離が、決定領域(第1領域)から選択領域(第2領域)に移動してから第4所定時間が経過すると、決定モードから選択モードに遷移してもよい。決定モードから選択モードに安定的に切り替えることができる。
【0244】
また、操作面105Aから指先FTまでの距離が第2閾値以上で、かつ、第2閾値よりも長い第3閾値より短い近接領域(第3領域)は、入力支援アプリケーション150が近接モードを実行する近接領域である。入力支援アプリケーション150は、距離が第3領域内に位置するときに、近接モード用の画像又はメッセージをディスプレイ110にオーバーレイで表示する命令をOS140に出力する。入力支援アプリケーション150は、指先FT(対象物)の二次元位置が近接領域(第3領域)内に位置するときに、近接モード用の画像又はメッセージをディスプレイ110にオーバーレイで表示する命令をOS140に出力してもよい。近接モード用の画像やメッセージをオーバーレイで表示できるので、OS140に変更を加えずに、ユーザに向けて容易に近接モード用の画像やメッセージを表示できる。近接モード用の画像として、操作方法を示す画像を用いると、適切なタイミングで操作方法を示すことができる。また、入力支援アプリケーション150側で画像やメッセージを簡単に差し替える操作画面を提供することで、非接触入力装置100の管理者が、ディスプレイ110にアプリケーションプログラムに即した画像やメッセージを表示できる。
【0245】
操作面105Aから指先FTまでの距離が第3閾値以上の第4領域は、入力支援アプリケーション150が指先FT(対象物)の二次元位置を算出しない待機領域である。入力支援アプリケーション150は、対象物が第1領域、第2領域、及び第3領域で検出されないときに、待機モード用の画像又はメッセージをディスプレイにオーバーレイで表示する命令をOSに出力する。入力支援アプリケーション150は、指先FT(対象物)が決定領域(第1領域)、選択領域(第2領域)、及び近接領域(第3領域)で検出されないときに、待機モード用の画像又はメッセージをディスプレイ110にオーバーレイで表示する命令をOS140に出力してもよい。OS140に変更を加えずに、ユーザに向けて容易に待機モード用の画像やメッセージを表示できる。また、入力支援アプリケーション150側で画像やメッセージを簡単に差し替えられるので、ディスプレイ110にアプリケーションプログラムに即した画像やメッセージを表示できる。
【0246】
また、入力支援アプリケーション150は、複数の時点で取得された二次元位置の移動平均を指先FT(対象物)の二次元位置として算出し、算出した二次元座標の位置に、OS140に第2ポインター112(112A,112B)を表示させてもよい。X座標及びY座標の移動平均を指先FTのXY座標として算出することで、外来ノイズや手の動きによる変動を抑制した指先FTのXY座標が得られ、変動量の影響を抑制した高精度なXY座標に第2ポインター112(112A,112B)を表示することができる。
【0247】
また、入力支援アプリケーション150は、指先FT(対象物)による操作内容が決定したと判定すると、操作内容が決定したときに二次元位置の移動平均として算出した指先FT(対象物)の二次元位置とクリックイベントとをOS140に対して出力してもよい。移動平均で算出した精度の高いXY座標で決定操作が行われたことをOS140に出力でき、決定操作の内容を高精度に反映することができる。また、クリックイベントを発行するまでは、OS140に対してXY座標を伝達しないので、OS140の処理負担を軽減できる。
【0248】
また、入力支援アプリケーション150は、ユーザによって計算に用いるデータの個数を設定された複数の時点を用いて、複数の二次元位置の変動量の合計を指先FT(対象物)の位置精度の指標として算出してもよい。ユーザが設定した数の二次元位置に応じた位置精度の指標を算出できる。ユーザは、位置精度の指標のレベルを調整できる。
【0249】
また、入力支援アプリケーション150は、ユーザによって設定された第2ポインター112の大きさで、ディスプレイ110にオーバーレイで表示する命令をOS140に出力する。OS140に変更を加えずに、ユーザが第2ポインター112の大きさを設定できる。ユーザは、入力支援アプリケーション150を介して第2ポインター112の大きさを設定できる。
【0250】
また、入力支援アプリケーション150は、第2ポインターの大きさをZ値(静電容量に比例した値)の逆数に比例する大きさとしてもよい。この場合でも、指先FTを操作面105Aに近づけることを促せる。但し、Z値に基づく第2ポインターの大きさは、統計学上の意味が無い。
【0251】
以上、本開示の例示的な実施形態の非接触入力装置、及び、入力支援アプリケーションについて説明したが、本開示は、具体的に開示された実施形態に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。
【0252】
以上の実施形態に関し、さらに以下の付記を開示する。
(付記1)
操作面と、
前記操作面に対して非接触で操作を行う対象物の二次元位置及び前記操作面から前記対象物までの距離を測定する検出部と、
前記操作面の裏側に配置されるディスプレイと、
平面GUIを用いるOSと入力支援アプリケーションとを有する制御装置と
を含み、
前記入力支援アプリケーションは、
前記OSが前記ディスプレイに表示する第1ポインターとは異なる第2ポインターを前記二次元位置及び前記距離に応じて前記ディスプレイにオーバーレイで表示する命令を前記OSに出力し、
前記二次元位置及び前記距離に基づいて前記対象物による操作が決定したと判定すると、前記操作が決定したときの前記二次元位置とクリックイベントとを前記OSに対して出力する、非接触入力装置。
(付記2)
前記入力支援アプリケーションは、前記第1ポインターを非表示にする命令を前記OSに出力する、付記1に記載の非接触入力装置。
(付記3)
前記距離が第1閾値より短い第1領域は、前記入力支援アプリケーションが決定モードを実行する決定領域であり、
前記入力支援アプリケーションは、
前記対象物の前記距離が前記第1領域内に位置するときに、前記対象物によって行われる操作に応じて移動する前記第2ポインターを前記OSに表示させ、
前記対象物の前記距離が前記第1領域内に留まると、時間経過に応じて長くなる円弧であって、前記対象物が前記第1領域内に入ってから第1所定時間で円環になる円弧を前記第2ポインターとして前記OSに表示させ、
前記対象物の前記距離が前記第1領域内に留まっている時間が、前記第1所定時間を超えると、前記操作が決定したと判定し、前記円環を前記第2ポインターとして前記OSを介して表示させ、クリックイベントを前記OSに発行し、かつ、前記操作が決定したときの前記二次元位置を前記OSに出力する、付記1又は2に記載の非接触入力装置。
(付記4)
前記入力支援アプリケーションは、
前記OSにクリックイベントを発行してから前記対象物の前記距離が前記第1領域内に留まり続けると、時間経過に応じて長くなる円弧であって、前記円弧の描画開始から第2所定時間で円環になる円弧を前記第2ポインターとして前記OSに表示させ、
前記クリックイベントを発行してから前記第2所定時間が経過すると、前記円環を前記第2ポインターとして前記OSに表示させ、前記クリックイベントを前記OSに発行し、かつ、前記操作が決定したときの前記二次元位置と前記クリックイベントを前記OSに出力する、付記3に記載の非接触入力装置。
(付記5)
前記入力支援アプリケーションは、前記対象物の前記距離が、前記第1領域の外に出てから前記第1領域内に戻ると、時間経過に応じて長くなる円弧を前記第2ポインターとして前記OSに表示させる、付記4に記載の非接触入力装置。
(付記6)
前記入力支援アプリケーションは、前記第1所定時間が0に設定された場合、
前記対象物の前記距離が前記第1領域内に位置すると、前記操作が決定したと判定し、
クリックイベントを前記OSに発行し、かつ、前記操作が決定したときの前記二次元位置を前記OSに出力する、付記3乃至5のいずれか1項に記載の非接触入力装置。
(付記7)
前記入力支援アプリケーションは、前記クリックイベントの出力後に、前記円環より小さな円を前記第2ポインターとして前記OSに表示させる付記3乃至6のいずれか1項に記載の非接触入力装置。
(付記8)
前記距離が前記第1閾値以上、かつ、前記第1閾値よりも長い第2閾値より短い第2領域は、前記入力支援アプリケーションが選択モードを実行する選択領域であり、
前記入力支援アプリケーションは、
前記対象物の距離が、前記第1領域から前記第2領域に移動してから第4所定時間が経過すると、前記クリックイベントを出力する決定モードから前記選択モードに遷移する、請求項3乃至7のいずれか1項に記載の非接触入力装置。
(付記9)
前記入力支援アプリケーションは、
前記対象物の距離が前記第2領域内に位置するときに、複数の時点で算出した複数の前記二次元位置の変動量の合計を前記対象物の位置精度の指標として算出し、
前記対象物の位置精度が向上するほど、前記OSに前記第2ポインターを小さく表示させる、付記8に記載の非接触入力装置。
(付記10)
前記入力支援アプリケーションは、
前記対象物の前記距離が前記第2領域内に位置するときに、前記対象物の二次元位置に応じて移動する前記第2ポインターを前記OSに表示させ、
前記対象物の前記距離が前記第2領域内で第3所定時間留まり、かつ、前記対象物の二次元位置が静止すると、前記OSに機能メニューをオーバーレイで表示させる、請求項8又は9に記載の非接触入力装置。
(付記11)
前記距離が前記第2閾値以上、かつ、前記第2閾値よりも長い第3閾値より短いの第3領域は、前記入力支援アプリケーションが近接モードを実行する近接領域であり、
前記入力支援アプリケーションは、前記距離が前記第3領域内に位置するときに、近接モード用の画像又はメッセージを前記ディスプレイにオーバーレイで表示する命令を前記OSに出力する、付記8乃至10のいずれか1項に記載の非接触入力装置。
(付記12)
前記距離が前記第3閾値以上の第4領域は、前記入力支援アプリケーションが前記対象物の二次元位置を出力しない待機領域であり、
前記入力支援アプリケーションは、前記対象物が前記第1領域、前記第2領域、及び前記第3領域で検出されないときに、待機モード用の画像又はメッセージを前記ディスプレイにオーバーレイで表示する命令を前記OSに出力する、付記11に記載の非接触入力装置。
(付記13)
前記入力支援アプリケーションは、
複数の時点で取得された前記二次元位置の移動平均を前記対象物の二次元位置として算出し、
前記算出した二次元座標の位置に、前記OSを介して、前記第2ポインターを表示させる、付記9乃至12のいずれか1項に記載の非接触入力装置。
(付記14)
前記入力支援アプリケーションは、前記対象物による操作が決定したと判定すると、前記操作が決定したときに前記二次元位置の移動平均として算出した前記対象物の二次元位置と前記クリックイベントとを前記OSに対して出力する、付記13に記載の非接触入力装置。
(付記15)
前記入力支援アプリケーションは、ユーザによって計算に用いるデータの個数を設定された前記複数の時点を用いて、複数の前記二次元位置の変動量の合計を前記対象物の位置精度の指標として算出する、付記14に記載の非接触入力装置。
(付記16)
前記入力支援アプリケーションは、ユーザによって設定された前記第2ポインターの大きさで、前記ディスプレイにオーバーレイで表示する命令を前記OSに出力する、付記1乃至15のいずれか1項に記載の非接触入力装置。
(付記17)
操作面に対して非接触で操作入力を行う対象物の二次元位置及び前記操作面から対象物までの距離を測定出する検出部によって、平面GUIを用いるOS上で動作するアプリケーションプログラムを操作するための入力支援アプリケーションであって、
前記入力支援アプリケーションは、
前記OSがディスプレイに表示する第1ポインターとは異なる第2ポインターを前記二次元位置及び前記距離に応じて前記ディスプレイにオーバーレイで表示する命令を前記OSに出力し、
前記二次元位置及び前記距離に基づいて前記対象物による操作が決定したと判定すると、前記操作が決定したときの前記二次元位置とクリックイベントとを前記OSに対して出力する、入力支援アプリケーション。
【符号の説明】
【0253】
100 非接触入力装置
101 筐体
105 トップパネル
105A 操作面
110 ディスプレイ
120 静電センサ
121X、121Y センサ電極
125A 入力センサ回路
125B 画像表示回路
130 制御装置
131 制御部
132 メモリ
140 OS
150 入力支援アプリケーション
160 アプリケーションプログラム
図1
図2
図3
図4
図5A
図5B
図5C
図6A
図6B
図6C
図6D
図6E
図6F
図7A
図7B
図7C
図7D
図8A
図8B
図8C
図8D
図8E
図8F
図9A
図9B
図9C
図9D
図9E
図9F
図10
図11
図12