(57)【要約】【課題】周囲の環境状態の変化に影響を受けることなく、高精度の座標を算出する事が出来る座標入力装置を提供する。【解決手段】座標入力装置は投光手段により投光されていない状態で受光手段により得られる光量分布を示す非投光データと、投光手段により投光されている状態で受光手段により得られる光量分布を示す投光データとを取得し、それぞれを基準非投光データと基準投光データとしてメモリに記憶して管理し、基準非投光データおよび基準投光データと、取得された投光データを用いて、入力領域において指示された位置の座標を検出する。座標入力装置は、取得した非投光データを用いて、メモリに記憶されている基準非投光データと基準投光データを更新する。【選択図】  図７
2016076068.tif 000002
【特許請求の範囲】
【請求項１】
入力領域において指示された位置の座標を検出する座標入力装置であって、
前記入力領域に光を投光する投光手段と、
反射された前記投光手段からの光を受光する受光手段と、
前記投光手段により投光されていない状態で前記受光手段により得られる光量分布を示す非投光データと、前記投光手段により投光されている状態で前記受光手段により得られる光量分布を示す投光データとを取得する取得手段と、
前記取得手段により取得された前記非投光データと前記投光データをそれぞれ基準非投光データと基準投光データとしてメモリに記憶して管理する管理手段と、
前記メモリに記憶された前記基準非投光データおよび前記基準投光データと、前記取得手段により取得された前記投光データを用いて、前記指示された位置の座標を検出する検出手段と、を有し、
前記管理手段は、前記取得手段により取得された前記非投光データを用いて、前記メモリに記憶されている前記基準非投光データと前記基準投光データを更新することを特徴とする座標入力装置。
【請求項２】
前記入力領域の周囲に部分的に設置され、入射光を再帰的に反射する反射手段を更に有し、
前記受光手段は前記反射手段で反射された前記投光手段からの光を受光することを特徴とする請求項１に記載の座標入力装置。
【請求項３】
前記管理手段は、前記メモリに記憶されている前記基準非投光データと前記取得手段により取得された前記非投光データとの差分を前記メモリに記憶されている前記基準非投光データと前記基準投光データに加えることにより、前記基準非投光データと前記基準投光データを更新することを特徴とする請求項１または２に記載の座標入力装置。
【請求項４】
前記管理手段は、所定の周期で、前記取得手段により取得された前記非投光データを取得することを特徴とする請求項１から３のいずれか１項に記載の座標入力装置。
【請求項５】
前記管理手段は、前記入力領域における指示が行われていない状態が一定時間続いた場合に、前記取得手段により取得された前記非投光データを取得することを特徴とする請求項１から３のいずれか１項に記載の座標入力装置。
【請求項６】
前記取得手段により取得された前記非投光データを所定の閾値と比較することにより、座標の検出を行なえない異常状態であるか否かを判定する判定手段を更に有することを特徴とする請求項１から５のいずれか１項に記載の座標入力装置。
【請求項７】
前記管理手段は、前記判定手段により前記異常状態ではないと判定された場合に、前記基準非投光データと前記基準投光データを前記メモリに記憶することを特徴とする請求項６に記載の座標入力装置。
【請求項８】
前記管理手段は、前記判定手段により前記異常状態ではないと判定された場合に、前記基準非投光データと前記基準投光データを更新することを特徴とする請求項６または７に記載の座標入力装置。
【請求項９】
前記管理手段は、前記基準非投光データと、前記取得手段により取得された前記非投光データとの差が所定の閾値より大きい場合に、前記基準非投光データと前記基準投光データを更新することを特徴とする請求項６から８のいずれか１項に記載の座標入力装置。
【請求項１０】
前記検出手段は、前記判定手段により前記異常状態であると判定された場合に、前記指示された位置の座標を検出しないことを特徴とする請求項６から９のいずれか１項に記載の座標入力装置。
【請求項１１】
入力領域に光を投光する投光手段と、反射された前記投光手段からの光を受光する受光手段とを有し、前記入力領域において指示された位置の座標を検出する座標入力装置の制御方法であって、
前記投光手段により投光されていない状態で前記受光手段により得られる光量分布を示す非投光データと、前記投光手段により投光されている状態で前記受光手段により得られる光量分布を示す投光データとを取得する取得工程と、
前記取得工程において取得された前記非投光データと前記投光データをそれぞれ基準非投光データと基準投光データとしてメモリに記憶して管理する管理工程と、
前記メモリに記憶された前記基準非投光データおよび前記基準投光データと、前記取得手段により取得された前記投光データを用いて、前記指示された位置の座標を検出する検出工程と、を有し、
前記管理工程では、前記取得工程において取得された前記非投光データを用いて、前記メモリに記憶されている前記基準非投光データと前記基準投光データを更新することを特徴とする制御方法。
【請求項１２】
請求項１から請求項１０のいずれか１項に記載の座標入力装置の各手段としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報の入力や選択をするために指等の指示手段によって座標入力面に入力された座標位置を光学的に検出する座標入力装置、その制御方法およびプログラムに関する。特に、着脱可能で、可搬性を有する座標入力装置、その制御方法およびプログラムに関する。
【背景技術】
【０００２】
従来、この種の座標入力装置として、各種方式の座標入力装置（タッチパネルやデジタイザ）が提案、または製品化されている。例えば、特殊な器具等を用いずに、指で画面上をタッチすることで、ＰＣ（パーソナルコンピュータ）等の操作を簡単に行うことがきるタッチパネル等が広く用いられている。
【０００３】
座標入力装置における座標検出方式としては、抵抗膜を用いたもの、または、超音波を用いたもの等、種々のものがある。光を用いた座標検出方式として、座標入力面外側に再帰性反射材を設け、投光部からの光を再帰反射材で反射し、その光量分布を検出部により検出する方式が知られている。ユーザは、座標入力領域内を指等で指示する事によってこの光路を遮り、座標入力装置は、遮光された方向を検知する事で、指示位置を算出する（例えば、特許文献１、２参照）。
【０００４】
図１０に、特許文献１の構成を一般化した座標入力装置の構成例を示す。図１０の座標入力装置において、座標入力面の両端に配置されたセンサユニット１０１Ｌ、１０１Ｒと、座標を入力する際に使用する座標入力面である所の座標入力有効領域１０４が示される。そして座標入力有効領域１０４の周囲３辺には、進入してきた光を進入してきた方向に再帰的に反射する再帰反射部材１０３が設けられている。
【０００５】
センサユニット１０１Ｌ、１０１Ｒは、投光部および検出部（不図示）を有している。投光部は、座標入力有効領域１０４の入力面にほぼ平行に扇形に広がる光を投光し、検出部は、その光が再帰反射材１０３で再帰反射され、戻ってきた光を検出する。座標入力装置は、２つのセンサユニット１０１Ｌ、１０１Ｒでそれぞれ検知された光の遮光方向（遮光角度θＬ，θR）と当該センサユニット間の距離に基づいて、座標入力有効領域１０４に入力された指示位置Ｐを算出することができる。このように遮光位置を検出して座標を算出する方式を、以下、光学遮光方式と称する。
【０００６】
図中、センサユニット１０１Ｌ、１０１Ｒの光軸方向を対称線として、センサユニット１０１Ｌ、１０１Ｒの視野範囲が図示の如く対称に設定される。レンズ光学系を使ったこの種の測定装置では、光軸との成す角が増大すると、収差の影響により光学性能が劣化するのが常である。そのため、軸対称な光学系を採用する事でより高性能な装置を実現できる。なお、制御・演算ユニット１０２は、センサユニット１０１Ｌ、１０１Ｒを制御し、また、センサユニット１０１Ｌ、１０１Ｒから出力された信号を受信して処理する。制御・演算ユニット１０２は、処理結果を外部装置に出力してもよい。また、特許文献２には、特許文献１で示された光学遮光方式の座標入力装置におけるセンサユニット中の投光部、及び受光部の具体的な構成の一例が示されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】米国特許第４５０７５５７号明細書
【特許文献２】特開２００４-２７２３５３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
上述の光学遮光方式の座標入力装置は、初めに、指示具による座標入力動作が行われていない（光を遮る物体が存在しない）状態で基準となる波形データを取得する。座標入力装置は、投光部が投光をしない状態での検出部の波形データと、投光部が投光する状態での検出部の波形データを取得し、これを基準非投光データｎｅｌ＿ｉｎｉ［Ｎ］、基準投光データｅｌ＿ｉｎｉ［Ｎ］としてメモリに記憶しておく。ここで、Ｎはセンサの画素番号に相当する。そして、座標入力装置は、遮光位置を検出する為に投光部が投光した時の検出部の波形データ（投光データｅｌ［Ｎ］）を定期的に取得し、記憶してある基準非投光データｎｅｌ＿ｉｎｉ［Ｎ］と基準投光データｅｌ＿ｉｎｉ［Ｎ］を用いて最終的な遮光位置を検出する。
【０００９】
しかしながら、座標入力装置が基準非投光データと基準投光データ取得後に、周囲の環境（例えば、照明）の変化の影響によって、これらのデータが変化した場合、座標算出精度が劣化、あるいは致命的な誤動作を引き起こす可能性がある。従って、そのような場合には座標入力装置は、基準非投光データと基準投光データを更新する必要があり、しかも座標入力動作が確実に行われていない状態でデータを再取得しなければならない。また、この場合、データの取得中は操作者に座標入力動作を中断させる必要がある。また、座標入力装置が指示位置と違う位置座標を出力する様な致命的な症状が発生する場合、操作者は故障と判断、あるいは例えばマニュアルを参照してその修復を行わなければならず、その対応を即座に行う為には、熟練を必要とする。
【００１０】
また、光学遮光方式の座標入力装置では、大型表示装置に重ねて配置して入出力一体の装置を構成し、指示具の一連の座標入力動作を筆跡として表示するシステムを実現する事ができる。しかしながら、このような場合、操作者は不特定多数の人であり、またこれらの人はシステムに不慣れでもある。この為、このような障害が発生すると、会議の中断あるいは中止といった弊害を引き起こす。
【００１１】
本発明は上記の課題を解決する為になされたものであり、周囲の環境状態の変化に影響を受けることなく、高精度の座標を算出する事が出来る座標入力装置を提供する事を目的とする。
【課題を解決するための手段】
【００１２】
上記目的を達成するための一手段として、本発明の座標入力装置は以下の構成を有する。すなわち、入力領域において指示された位置の座標を検出する座標入力装置であって、前記入力領域に光を投光する投光手段と、反射された前記投光手段からの光を受光する受光手段と、前記投光手段により投光されていない状態で前記受光手段により得られる光量分布を示す非投光データと、前記投光手段により投光されている状態で前記受光手段により得られる光量分布を示す投光データとを取得する取得手段と、前記取得手段により取得された前記非投光データと前記投光データをそれぞれ基準非投光データと基準投光データとしてメモリに記憶して管理する管理手段と、前記メモリに記憶された前記基準非投光データおよび前記基準投光データと、前記取得手段により取得された前記投光データを用いて、前記指示された位置の座標を検出する検出手段と、を有し、前記管理手段は、前記取得手段により取得された前記非投光データを用いて、前記メモリに記憶されている前記基準非投光データと前記基準投光データを更新することを特徴とする。
【発明の効果】
【００１３】
本発明によれば、周囲の環境状態の変化に影響を受けることなく高精度に座標を算出する事が出来る座標入力装置を提供することが可能となる。
【図面の簡単な説明】
【００１４】
【図１】本願発明の遮光方式の座標入力装置の概略構成図。
【図２】センサユニットの構成図。
【図３】（Ａ）制御・演算ユニットの詳細ブロック図、（Ｂ）制御・演算ユニットの動作を示すタイミングチャート。
【図４】センサユニットにより得られる光量分布の一例を示す図。
【図５】座標入力有効領域上に定義する座標とセンサユニットとの位置関係を示す図。
【図６】環境光の影響を受けた時にセンサユニットにより得られる光量分布の一例。
【図７】本実施形態による座標算出処理を示すフローチャート。
【図８】本実施形態による基準非投光データ取得処理のフローチャート。
【図９】本実施形態による非投光データ更新処理のフローチャート。
【図１０】光学式座標入力装置の基本構成を説明する図（従来技術）。
【発明を実施するための形態】
【００１５】
以下、添付の図面を参照して、本発明をその好適な実施形態に基づいて詳細に説明する。なお、以下の実施形態において示す構成は一例に過ぎず、本発明は図示された構成に限定されるものではない。
【００１６】
＜実施形態１＞
＜装置構成の概略説明＞
図１は本発明の実施形態の光学遮光方式の座標入力装置の概略構成を示す図である。図１において、センサユニット１０１Ｌ及び１０１Ｒは、投光部及び検出部を有し、本実施形態の場合、図示の如く座標入力面（入力領域）であるところの座標入力有効領域１０４のＸ軸に平行に、かつＹ軸に対称な位置（角部）に、所定距離離れて配置されている。センサユニット１０１Ｌ及び１０１Ｒは、制御・演算ユニット１０２に接続され、制御信号を制御・演算ユニット１０２から受信すると共に、検出した信号を制御・演算ユニット１０２に送信する。
【００１７】
再帰反射部材１０３は、入射光を到来方向に再帰的に反射する再帰反射面を有し、座標入力有効領域１０４の周辺部（図１の例では、部分的に周囲３辺）に設置されている。そして、再帰反射部材１０３は、左右それぞれのセンサユニット１０１Ｌ及び１０１Ｒから略９０°範囲に投光された光をセンサユニット１０１Ｌ及び１０１Ｒに向けて再帰反射する。なお、再帰反射部材１０３は、ミクロ的に見て３次元的な構造を有し、現在では、主にビーズタイプの再帰反射テープ、或いはコーナキューブを機械加工等により規則正しく配列することで再帰現象を起こす再帰反射テープにより構成できることが知られている。
【００１８】
再帰反射部材１０３で再帰反射された光は、センサユニット１０１Ｌ及び１０１Ｒによって１次元的に検出され、その光量分布を示す波形信号が制御・演算ユニット１０２に送信される。座標入力有効領域１０４は、ＰＤＰやリアプロジェクタ、ＬＣＤパネルなどの表示装置（座標出力先の外部端末に接続される）の表示画面で構成することで、インタラクティブな入力装置として、利用可能となっている。
【００１９】
このような構成において、座標入力有効領域１０４に指等の指示具による入力指示がなされると、センサユニット１０１Ｌ及び１０１Ｒの投光部から投光された光が遮られる（遮光部分）。その結果、センサユニット１０１Ｌ及び１０１Ｒの検出部ではその遮光部分の光（再帰反射による反射光）を検出できないので、どの方向からの光が検出できなかったかを判別することが可能となる。
【００２０】
そこで、制御・演算ユニット１０２は、左右のセンサユニット１０１Ｌ及び１０１Ｒが検出する信号の変化から、指示具によって入力指示された部分の遮光範囲を検出する。そして、制御・演算ユニット１０２は、その遮光範囲の情報から、センサユニット１０１Ｌ及び１０１Ｒそれぞれに対する遮光位置の方向（指示具角度）をそれぞれ算出する。そして、制御・演算ユニット１０２は、指示具角度、及びセンサユニット１０１Ｌ及び１０１Ｒ間の距離情報等から、座標入力有効領域１０４上の指示具の遮光位置（指示位置）を幾何学的に算出する。座標入力装置は、この算出した遮光位置に対応する座標値を、表示装置に接続されているホストコンピュータ等の外部端末にインタフェース（例えば、ＵＳＢ、ＩＥＥＥ１３９４等）を経由して出力する。このようにして、指示具等によって、画面上に線を描画する操作や、表示装置に表示されるアイコンを操作したりする等の外部端末の操作が可能になる。
【００２１】
＜センサユニットの詳細説明＞
まず、センサユニット１０１Ｌ及び１０１Ｒの内部概略構成について、図２を用いて説明する。図２はセンサユニット１０１の概要を説明するための図であり、図２（Ａ）は図１における断面Ａ-Ａの断面図であり、図２（Ｂ）及び（Ｃ）はそれぞれ、座標入力有効領域１０４の面に対して垂直方向からセンサユニット１０１内の投光部２３０、及び検出部２４０を見た図である。
【００２２】
図２（Ａ）において、センサユニット１０１は、投光部２３０及び検出部２４０で構成される。本実施形態の場合、投光部２３０と検出部２４０は、重ねて配置されている。保護部材２０１は、光透過性の部材であって、センサーバー１内へのゴミ等の異物の侵入を防止するための部材である。投光部２３０と検出部２４０の光軸間の距離Ｌ_pdは、投光部２３０から再帰反射部材１０３までの距離に比べて十分に小さな値である。これにより、距離Ｌ_pdを有していても十分な再帰反射光を検出部２４０で受光する事が可能である。
【００２３】
図２（Ｂ）において、投光部２３０は、投光手段である赤外ＬＥＤ２３１、投光レンズ２３２、両者を固定するための接着層２３３で構成される。投光レンズ２３２は、赤外ＬＥＤ２３１の光を、座標入力面と略平行な光束となるように構成する。そして投光部２３０は、再帰反射部材１０３を照明するように、扇状の光束を出射する。
【００２４】
図２（Ｃ）において、検出部２４０は、投光部２３０が投光した光が、再帰反射部材１０３によって再帰反射された光を受光する。検出部２４０は、光電変換素子であるラインＣＣＤ２４１、受光レンズ２４２、視野絞り２４３、赤外線通過フィルタ２４４で構成される。なお、上述した保護部材２０１に赤外通過フィルタ機能をもたせる事で、赤外線通過フィルタ２４４を廃止してもかまわない。検出部２４０は、入射する光の方向に応じて、ラインＣＣＤ２４１の画素に集光されるので、ラインＣＣＤ２４１の画素番号は入射する光の角度情報を表す事になる。
【００２５】
＜制御・演算ユニットの説明＞
図３（Ａ）は、制御、演算ユニット１０２のブロック図である。センサユニット１０１内のラインＣＣＤ２４１を制御するＣＣＤ制御信号は、ワンチップマイコンなどで構成されるＣＰＵ３０１から出力されている。ＣＣＤ制御信号により、ＣＣＤのシャッタータイミングやデータの出力制御などが行われる。ＣＣＤ用のクロックは、クロック発生回路ＣＬＫ３０２から各センサユニット１０１に送信されるとともに、ＣＣＤとの同期をとって各種制御を行うためにＣＰＵ３０１にも入力されている。また、センサユニット１０１内の赤外ＬＥＤ２３１を駆動するＬＥＤ駆動信号は、ＣＰＵ３０１から供給されている。センサユニット１０１の検出部内のラインＣＣＤ２４１からの信号は、Ａ／Ｄコンバータ３０３に入力され、ＣＰＵ３０１からの制御によって、デジタル値に変換される。変換されたデジタル値はメモリ３０４に記憶され、角度情報を算出するために用いられる。そして、算出された角度情報から幾何学的に入力指示位置が算出される。また、ＣＰＵ３０１からの制御に基づいて、メモリ３０４に記憶されるデータの管理が行われる。
【００２６】
図３（Ｂ）は、センサユニット１０１のＣＰＵ３０１が出力する制御信号、及びセンサユニット１０１の動作を示すタイミングチャートである。ＳＨ信号３７１はＣＣＤのシャッタ解放時間を決定する信号であり、具体的には、ＳＨ信号３７１の間隔でＣＣＤのシャッタ解放時間が決定される。ＩＣＧＬ信号３７２とＩＣＧＲ信号３７３はそれぞれ、センサユニット１０１Ｌとセンサユニット１０１Ｒへのゲート信号であり、ＣＣＤ内部の光電変換部の電荷を読み出し部へ転送する信号である。ＣＣＤＬ信号３７４とＣＣＤＲ信号３７５はそれぞれ、センサユニット１０１Ｌとセンサユニット１０１ＲのＣＣＤシャッタ解放時間を示す信号である。ＬＥＤＬ信号３７６とＬＥＤＲ信号３７７は、ＬＥＤの駆動信号である。ＳＨ信号３７１の最初の周期でセンサユニット１０１Ｌ、１０１Ｒの赤外ＬＥＤ２３１を点灯するために、ＬＥＤＬ信号３７６、ＬＥＤＲ信号３７７のＬＥＤ駆動信号が、各々のＬＥＤ駆動回路(不図示)を経て赤外ＬＥＤ２３１に供給される。
【００２７】
制御、演算ユニット１０２は、ＬＥＤの駆動及びＣＣＤのシャッタ開放が終了した後に、ＣＣＤの信号をセンサユニット１０１から読み出し、後述する方法で角度情報を算出する。なお、後述する非投光データと投光データとの取得方法の違いは、ＣＰＵ３０１が赤外ＬＥＤ２３１を駆動して赤外光を投光した場合か、赤外ＬＥＤ２３１を駆動しないで赤外光を投光しない場合かの違いとなる。
【００２８】
＜光量分布検出の説明＞
図４を用いて、センサユニット１０１から出力される信号について説明する。図４は、センサユニット１０１により得られる光量分布の一例を示す図である。センサユニット１０１の投光部２３０が赤外光を投光していない時の検出部２４０の出力信号は図４（Ａ）のようになり、投光部２３０で赤外光を投光した時の検出部２４０の出力信号は図４（Ｂ）のようになる。図４（Ａ）、（Ｂ）において、レベルＢ０は光を受光出来ていないレベルを示し、図４（Ｂ）においてレベルＡ０は検出した光量の最大レベルを示す。
【００２９】
センサユニット１０１の投光部２３０が投光した赤外光は、再帰反射部材１０３で再帰反射され、該センサユニット１０１の検出部２４０で検出される。本実施形態による座標入力装置は、検出部２４０で検出される光量が最適なレベルで得られるように、ＳＨ信号３７１（図３（Ｂ））を制御する事によって、ＣＣＤのシャッタ開放時間、及びＬＥＤの露光時間を調整する。すなわち、座標入力装置は、検出部２４０から得られる光量が多ければシャッタ解放時間を短く、逆に少なければシャッタ解放時間を長くなる様に制御する。また、座標入力装置は、検出光量レベルに応じて、赤外ＬＥＤ２３１に流す電流を制御しても良い。この様に、本実施形態による座標入力装置は、検出部２４０の出力信号を監視する事で、最適な光量が得られるように構成される。
【００３０】
＜遮光範囲の決定＞
投光部２３０が赤外光を投光し、光量分布が図４（Ｂ）のような状態で、入力面へのタッチにより光路が遮られると、図４（Ｃ）のように、例えば画素番号Ｎｃでの光量が減少する。本実施形態では、制御・演算ユニット１０２は、図４（Ａ）、（Ｂ）及び（Ｃ）に示される信号を用いて、入力指示のあった方向、言い換えると角度を算出する。
【００３１】
具体的には、まず、制御・演算ユニット１０２は、システムの起動時またはシステムのリセット時に、基準となるデータを取得する。制御・演算ユニット１０２は、電源投入時、操作者によるタッチ操作が行われてない状態で、投光部２３０の投光なしの状態でラインＣＣＤ２４１の出力をＡ／Ｄコンバータ３０３でＡ／Ｄ変換する。そして、制御・演算ユニット１０２は、これを基準非投光データｎｅｌ＿ｉｎｉ［Ｎ］（ＮはＣＣＤの画素番号）としてメモリ３０４に記憶する。この基準非投光データは、ＣＣＤのバイアスのばらつき等を含んだデータとなり、図４（Ａ）のレベルＢ０付近のデータとなる。同様に、制御・演算ユニット１０２は、操作者によるタッチ操作が行われてない状態で、投光部２３０から投光した状態でラインＣＣＤ２４１の出力信号をＡ／Ｄコンバータ３０３でＡ／Ｄ変換する。そして、制御・演算ユニット１０２は、この信号を基準投光データｅｌ＿ｉｎｉ［Ｎ］としてメモリ３０４に記憶する。これは図４（Ｂ）の実線で表されたデータとなる。
【００３２】
その後、制御・演算ユニット１０２は、定期的にセンサユニット１０１を駆動して座標入力検知を行う。入力指示が行われてなければ同図（Ｂ）の様なデータとなるが、入力指示が行われると、同図（Ｃ）の様にその入力指示位置に応じて影Ｃが現れたデータとなる。投光部２３０から投光した状態で得られるデータを、投光データｅｌ＿ｃｕｒ［Ｎ］と定義する。制御・演算ユニット１０２は、これらのデータを用いて、まずは入力が成された（遮光範囲がある）かどうかの判定を行う。
【００３３】
制御・演算ユニット１０２は、まず遮光範囲を特定するために、各画素における変化量ｄｉｆｆ［Ｎ］を各々の画素において予め設定してある閾値Ｖｔｈａと比較する。変化量ｄｉｆｆ［Ｎ］は式(1)のように表される。
diff[N] = el_cur[N] - el_ini[N]        (1)
制御・演算ユニット１０２は、ｄｉｆｆ［Ｎ］と閾値Ｖｔｈａとの比較により、ノイズなどによる誤判定を防止した上で、所定量の確実な変化を検出する。そして、制御・演算ユニット１０２は、閾値Ｖｔｈａを超えるデータが、例えば所定数以上の連続した画素で発生した場合に、タッチ操作が有ったものと判定する。この処理は、差をとり比較するだけなので、短時間での演算が可能であり、入力の有無判定を高速に行う事ができる。
【００３４】
次に、より高精度に遮光位置を検出するために、制御・演算ユニット１０２は、変化の比を計算して遮光範囲の決定を行う。変化の比は式(2)のように表される。
nrm[N] = diff[N]/(nel_ini[N] - el_ini[N])        (2)
ここで、ｎｒｍ［Ｎ］は遮光率を表していて、０％から１００％を示す。制御・演算ユニット１０２は、ｎｒｍ［Ｎ］に対して別途設定される閾値Ｖｔｈｒを適用して、その立ち上がり部と立下り部の画素番号から、両者の中央を入力画素として、角度を算出する。
【００３５】
図４（Ｄ）は、式(2)による比計算を終わったあとの遮光位置の検出の例である。いま、閾値Ｖｔｈｒで検出すると、遮光領域の立ち上がり部分として、Ｎｓ番目の画素でｎｒｍ［Ｎ］が閾値Ｖｔｈｒを超えたとする。さらに、Ｎｔ番目の画素でｎｒｍ［Ｎ］が閾値Ｖｔｈｒを下まわったとする。このとき、制御・演算ユニット１０２は、ｎｒｍ［Ｎ］が閾値Ｖｔｈｒを上回る画素範囲の中心画素Ｎｐを単純に、
Np = Nｓ + (Nｔ - Nｓ) / 2        (3)
のように計算してもよい。しかしその場合、ＣＣＤの画素間隔が最小の分解能になってしまう。そこで、より高い分解能で検出するために、制御・演算ユニット１０２は、上記Ｎｓ番目とＮｔ番目それぞれの画素のレベルとその一つ前の画素のレベルを用いて、閾値Ｖｔｈｒを横切った仮想の画素番号を計算する。
【００３６】
すなわち、図４（Ｄ）を示されるように、立ち上がり部分と立ち下がり部分の仮想画素番号をＮｓvとＮｔvとすると、ＮｓvとＮｔvはそれぞれ式(4)と式(5)のように計算できる。
Nsv = Ns-1 + (Vthr - nrm[Ns-1])/(nrm[Ns] - nrm[Ns-1] )        (4)
Ntv = Nt-1 + (Vthr - nrm [Nt-1])/( nrm[Nt] - nrm[Nt-1] )      (5)
そして、仮想中心画素Ｎｐｖは式(6)で決定される。
Npv = Nｓv + ( Nｔv - Nｓv ) / 2        (6)
このように、制御・演算ユニット１０２は、閾値Ｖｔｈｒを上回る画素番号及び下回る画素番号とそれらの画素番号におけるレベルから仮想的な中央画素番号を計算することで、より分解能の高い検出ができる。
【００３７】
＜角度計算の説明＞
上記のように得られた中央画素番号から、実際の座標値を計算するためには、角度情報に変換する必要がある。後述する実際の座標計算では、角度そのものよりもその角度における正接（ｔａｎｇｅｎｔ）の値を求めるほうが都合がよい。なお、画素番号からtａnθへの変換には、テーブル参照や変換式が用いられる。変換式は、例えば高次の多項式を用いると精度を確保できるが、次数などは計算能力および精度スペック等を鑑みて決定すればよい。
【００３８】
ここで、５次多項式を用いる場合の例を示すと、５次多項式を用いる場合には係数が６個必要になるので、出荷時などにこのデータを不揮発性メモリなどに記憶しておけばよい。今、５次多項式の係数をＬ５，Ｌ４，Ｌ３，Ｌ２，Ｌ１，Ｌ０としたとき、tａnθは式(7)のように表すことができる。
tanθ= (L5 * Npr + L4) * Npr + L3) * Npr + L2) * Npr + L1) * Npr + L0    (7)
、制御・演算ユニット１０２は、このtａnθの算出方法を各々のセンサに対して適用することにより、それぞれの角度データを決定できる。もちろん、上述の例ではtａnθを求めているが、角度そのものを求め、その後tａnθを求めても構わない。
【００３９】
＜座標算出方法の説明＞
次に、画素番号から変換された角度データ（ｔａｎθ）から、指示具の位置座標を算出する座標算出方法について説明する。ここで、座標入力有効領域１０４上に定義する座標とセンサユニット１０１Ｌ及び１０１Ｌとの位置関係について、図５を用いて説明する。
【００４０】
図５は、本実施形態による座標入力有効領域１０４の上に定義する座標とセンサユニット１０１Ｌ及び１０１Ｌとの位置関係を示す図である。図５では、座標入力有効領域１０４の水平方向がＸ軸、垂直方向がＹ軸と定義し、また、座標入力有効領域１０４の中央を原点位置Ｏ（０，０）と定義する。そして、座標入力有効領域１０４の座標入力範囲の上辺左右に、それぞれのセンサユニット１０１Ｌ及び１０１ＲをＹ軸に対称に取り付けており、その間の距離はＤｓである。また、センサユニット１０１Ｌ及び１０１Ｒそれぞれの受光面は、その法線方向がＸ軸と４５度の角度を成すように配置され、その法線方向（基準方向）が０度と定義する。
【００４１】
このとき、角度の符号は、左側に配置されたセンサユニット１０１Ｌの場合には、時計回りの方向を『＋』方向に、また、右側に配置されたセンサユニット１０１Ｒの場合には、反時計回りの方向を『＋』方向と定義する。さらには、Ｐｏはセンサユニット１０１Ｌ及び１０１Ｒの法線方向の交点位置である。また、Ｙ軸方向の原点からの距離をＹＰｏと定義する。この時、それぞれのセンサユニット１０１Ｌ及び１０１Ｒで得られた角度をθL、θRとすると、検出すべき点Ｐの座標Ｐ（ｘ，ｙ）は、式(8)と式(9)のように計算できる。
x = Ds/2 * (tanθR - tanθL) / (1 - (tanθR * tanθL))      (8)
y = Ds/2 * (tanθR + tanθL + (2 * tanθR * tanθL)) /
(1 - (tanθR * tanθL)) + P0y                               (9)
【００４２】
＜基準データ更新の説明＞
次に、環境の変化によってセンサユニット１０１からの出力信号がどのように変化するかについて図６を用いて説明する。図６は、環境光の影響を受けた場合にセンサユニット１０１により得られる光量分布の一例を示す図である。図６（Ａ）は、センサユニット１０１内の投光部２３０で赤外光を投光していない状態での検出部２４０の出力信号（以後、非投光信号と呼ぶ）を表す。図６（Ａ）のｎｅｌ１［Ｎ］は、外部環境の影響がほとんどない場合の非投光信号を表し、ｎｅｌ２［Ｎ］は、外部環境の影響として、例えば、蛍光灯あるいは太陽光等の照明（以後、環境光と呼ぶ）がある場合の非投光信号を表す。つまり、非投光信号ｎｅｌ１［Ｎ］とｎｅｌ２［Ｎ］の差分値が環境光の影響によって変化した部分となる。
【００４３】
図６（Ｂ）は、センサユニット１０１内の投光部２３０で赤外光を投光した時の検出部２４０の出力信号を表す。ｅｌ１［Ｎ］は環境光の影響が殆どない場合の信号、ｅｌ２［Ｎ］は環境光の影響がある場合の信号を表す。ｅｌ１［Ｎ］とｅｌ２［Ｎ］の差分は、環境光の影響を表すので、ｎｅｌ１［Ｎ］とｎｅｌ２［Ｎ］の差分値と略一致する。また、ｎｅｌ１［Ｎ］とｅｌ１［Ｎ］の差分と、ｎｅｌ２［Ｎ］とｅｌ２［Ｎ］の差分は、投光データから環境光の要因を除いた値である事から略一致する。この事から、環境光の影響がある場合の投光データｅｌ２［Ｎ］は、基準投光データｅｌ＿ｉｎｉ［Ｎ］と基準非投光データｎｅｌ＿ｉｎｉ［Ｎ］を用いて式(10)のように表すことができる。
el2[N] = (el_ini[N] - nel_ini[N]) + nel2[N]      (10)
ここで、制御・演算ユニット１０２は、ｅｌ２［Ｎ］をｅｌ＿ｉｎｉ［Ｎ］に、ｎｅｌ２［Ｎ］をｎｅｌ＿ｉｎｉ［Ｎ］に置き換えることにより、メモリ３０４における基準投光データと基準非投光データを更新する事になる。
【００４４】
図６（Ｃ）は、センサユニット１０１内の投光部２３０で赤外光を投光した時に、指示具等による遮光があった場合の信号を表す。ｅｌ３［Ｎ］は、環境光の影響が殆どない場合の信号を表す。ｅｌ４［Ｎ］は環境光の影響がある場合の信号を表す。ｅｌ３［Ｎ］とｅｌ４［Ｎ］の差分もまた、環境光の影響を表すので、ｎｅｌ１［Ｎ］とｎｅｌ２［Ｎ］の差分値と一致する。
【００４５】
図４を用いて先に説明したように、制御・演算ユニット１０２は、遮光信号を表す変化量ｄｉｆｆ［Ｎ］として、環境光の影響がない場合はｅｌ１［Ｎ］とｅｌ３［Ｎ］の差分値、環境光の影響がある場合はｅｌ２［Ｎ］とｅｌ４［Ｎ］の差分値を計算すればよい。しかし、しかし、ここで問題になるのは、制御・演算ユニット１０２が、基準非投光データｎｅｌ＿ｉｎｉ［Ｎ］と基準投光データｅｌ＿ｉｎｉ［Ｎ］を取得した後に環境光が変化した場合である。
【００４６】
例えば、制御・演算ユニット１０２は、基準非投光データとして図６（Ａ）に示すｎｅｌ１［Ｎ］を、基準投光データとして図６（Ｂ）に示すｅｌ１［Ｎ］をメモリ３０４に取込んでいるとする。この状態で、制御・演算ユニット１０２が基準データとしてｎｅｌ１［Ｎ］とｅｌ１［Ｎ］を取得した後、環境光が変化して指示具等による遮光がある場合の信号がｅｌ３［Ｎ］からｅｌ４［Ｎ］に変化したとする。このとき、基準投光データはｅｌ１［Ｎ］のままである。この為、制御・演算ユニット１０２は、遮光信号を表す変化量ｄｉｆｆ［Ｎ］としてｅｌ４［Ｎ］とｅｌ１［Ｎ］の差分を計算し（式(1)）、入力の検出を行うことになる。この場合、環境光の変化分がオフセットされた状態となり、座標が入力し難い状況や、座標入力できない状況が発生する。
【００４７】
この状況を避ける為、制御・演算ユニット１０２は、定期的に、センサユニット１０１内の投光部２３０で赤外光を投光しない時の非投光データｎｅｌ＿ｃｕｒ［Ｎ］（ｎｅｌ２「Ｎ」に相当する信号）を取得する。そして、制御・演算ユニット１０２は、式(10)によってｅｌ２［Ｎ］を求め、求めたｅｌ２［Ｎ］使用して遮光検出を行う事により、環境光の影響をなくす事が可能となる。
【００４８】
なお、図６（Ａ）〜（Ｃ）には、環境光がセンサ出力に対して一様に影響している例が表されているが、環境光がセンサ出力の一部分だけに影響している場合であっても、同様の処理で環境光の影響をなくすことが可能である。また、上述したように、非投光データを用いて基準となるデータ（基準非投光データと基準投光データ）を更新している事から、指示具等と座標面との近接状態（指示具等が座標面に近いが入力はされていない状態）であってもその影響を殆ど受けない。
【００４９】
＜異常光検出＞
環境光の状況によっては、制御・演算ユニット１０２は、指示具による遮光を検出する事が不可能となる場合がある。例えば太陽光が直接センサユニットに入った場合、投光部２３０から投光した赤外光が再帰反射部材１０３に再帰反射してきた光量に比較して強いレベルとなる。この場合は図６（Ｄ）のように非投光データがｎｅｌ３［Ｎ］のようになる。この為、制御・演算ユニット１０２は、投光データから遮光のありなしを検出する事が不可能になるため、座標入力が行えない状況となる。このような場合、ユーザに対して座標入力が行えない事を通知することができる。なお、環境光の影響により座標入力が行えない異常状態の検出は、非投光データに対して予め設定してある閾値Ｖｔｈｌと絶対値で比較する事により検出する事が出来る。
【００５０】
次に、以上の構成に基づく座標入力装置の座標算出部処理について、図７を用いて説明する。図７は本実施形態の座標入力装置が実行する座標算出処理を示すフローチャートである。
【００５１】
まず、座標入力装置は電源が投入されると、ステップＳ１０１で、制御・演算ユニット１０２のポート設定、タイマ設定等の座標入力装置に関する各種初期設定を行う。ステップ７０２で、座標入力装置は、ラインＣＣＤ２４１のＣＣＤ画素有効範囲を、例えばメモリ３０４に予め記憶されている設定値から設定する。ステップ７０３で、座標入力装置は、ラインＣＣＤ２４１の初期取込動作の初期取込回数を設定する。この初期取込動作は、座標入力装置の起動時におけるラインＣＣＤ２４１の不要電荷除去を行う為の動作であり、ラインＣＣＤ２４１では、動作させていない時に不要な電荷を蓄積している場合がある。電荷が蓄積している状態で座標入力が行われると、検出不能や誤検出の原因となる。そこで、これを避ける為に、ステップ７０４では、座標入力装置は、投光部２３０による投光を停止した状態で取込動作を実行する。
【００５２】
ステップ７０５では、座標入力装置は、不要電荷の除去を所定回数行ったかどうかを判断する。所定回数の取込動作を実行していない場合（ステップ７０５でＮｏ）、ステップ７０４に戻る。所定回数の取込動作を実行した場合（ステップ７０５でＹｅｓ）、処理はステップ７０６に進む。ステップ７０６では、制御・演算ユニット１０２は、基準非投光データｎｅｌ＿ｉｎｉ［Ｎ］の取得を行う。この処理を図８のフローチャートで説明する。
【００５３】
図８において、ステップ８０１では、投光部２３０による投光を停止した状態で、制御・演算ユニット１０２は、検出部２４０のラインＣＣＤ２４１のデータをＡ／Ｄコンバータ３０３でデジタル信号に変換し、メモリ３０４に取込む。ステップ８０２では、制御・演算ユニット１０２は、非投光データと所定の異常光検出閾値とを比較し、閾値を超えた場合（ステップ８０２でＹｅｓ）、処理を中止する。閾値を超えなかった場合（ステップ８０２でＮｏ）、処理はステップ８０３に進む。ステップ８０３では、制御・演算ユニット１０２は、投光部２３０による投光を行った状態で検出部２４０のラインＣＣＤ２４１のデータをＡ／Ｄコンバータ３０３でデジタル信号に変換し、メモリ３０４に取込む。
【００５４】
図７に戻り、ステップ７０７では、ステップ７０６で異常光が検出された場合（ステップ７０７でＹｅｓ）、制御・演算ユニット１０２は座標計算が出来ない為、処理は終了する。ステップ７０６異常光が検出されなかった場合（ステップ７０７でＮｏ）は、処理はステップ７０８に進む。ステップ７０８では、制御・演算ユニット１０２は、投光データを取込むか、非投光データを取込むのかの判断を行う。非投光データを取込むタイミングの判断の一例としては、座標入力が行われていない状態が（例えば１秒といった）一定時間続いた場合に非投光データを取得する事が考えられる。このようにする事により、座標入力が行われている間は、出力座標のレートを落とすことなく、かつ座標入力が行われていない時には、非投光データを取得する事が出来る。また、別の一例としては、座標の入力に関係なく、１秒間に１回の周期で取込む事も考えられる。このようにする事により、座標入力中であっても環境光の変化に対応する事が出来る。どういったタイミングや周期で取込むかは、座標入力を優先するのか、非投光データの取込を優先するのか、総合的に判断して決定すればよい。
【００５５】
ステップ７０８で非投光データを取得するタイミングではない場合（ステップ７０８でＮｏ）には、処理はステップ７０９に進む。非投光データ取得タイミングであった場合（ステップ７０８でＹｅｓ）、処理はステップ７１７に進む。ここでは処理がステップ７０９に進む（座標算出処理を行う）場合を先に説明する。ステップ７０９では、制御・演算ユニット１０２は、投光部２３０により赤外光を投光した状態で検出部２４０のラインＣＣＤ２４１のデータをＡ／Ｄコンバータ３０３でデジタル信号に変換し、メモリ３０４に投光データｅｌ＿ｃｕｒ［Ｎ］を取込む。
【００５６】
ステップ７１０では、制御・演算ユニット１０２は、メモリ３０４内の投光データｅｌ＿ｃｕｒ［Ｎ］と基準投光データｅｌ＿ｉｎｉ［Ｎ］の差データｄｉｆｆ［Ｎ］を式(1)を用いて計算する。ステップ７１１では、制御・演算ユニット１０２は、差分データｄｉｆｆ［Ｎ］が所定の閾値を超えるかどうかにより、座標入力があるかどうかを判断する。入力がない場合（ステップ７１１でＮｏ）、座標を算出する必要がない為、処理はステップ７０８へ戻る。入力がある場合（ステップ７１１がＹｅｓ）、処理はステップ７１２に進み、制御・演算ユニット１０２は、遮光率ｎｒｍ［Ｎ］を式(2)を用いて算出する。
【００５７】
ステップ７１３では、計算された遮光率と閾値から、制御・演算ユニット１０２は、仮想的な遮光中心画素番号を式(4)、式(5)および式(6)を用いて算出する。ステップ７１４では、制御・演算ユニット１０２は、決定された中心画素番号と近似多項式により式(7)を用いてtａnθを算出する。ステップ７１５では、制御・演算ユニット１０２は、センサユニット１０１Ｌ、１０１Ｒの位置とtａnθから、入力位置の座標Ｐ（ｘ,ｙ）を式(8)と式(9)を用いて算出する。
【００５８】
そしてステップ７１６で、制御・演算ユニット１０２は、算出した座標値を外部端末へ出力する。制御・演算ユニット１０２は、この出力を、ＵＳＢやＲＳ２３２Ｃ等のシリアル通信で送ってもよいし、無線ＬＡＮやＢｌｕｅｔｏｏｔｈ（登録商標）等の無線通信で送信してもよい。外部端末では、座標入力装置を制御するデバイスドライバが受信データを解釈して、座標データとスイッチ情報とする事により、表示画像の操作を実現する。なお、ステップ７１６の処理が終了した後、処理はステップ７０８に戻り、ステップ７０８以降の処理が繰り返される。
【００５９】
次に、ステップ７０８からステップ７１７に進む場合（非投光データデータの更新）を説明する。ステップ７１７では、制御・演算ユニット１０２は、非投光データｎｅｌ＿ｉｎｉ［Ｎ］の更新を行うが、この処理を図９のフローチャートを用いて説明する。図９において、ステップ９０１では、制御・演算ユニット１０２は、投光部２３０により赤外光を停止した状態で検出部２４０のラインＣＣＤ２４１のデータをＡ／Ｄコンバータ３０３でデジタル信号に変換しメモリ３０４に非投光データを取込む。ステップ９０２では、制御・演算ユニット１０２は、取込んだ非投光データと所定の異常光検出閾値とを比較し、閾値を超えた場合（ステップ９０２でＹｅｓ）、処理を中止する。閾値を超えたかった場合（ステップ９０２でＮｏ）、処理はステップ９０３に進む。また、制御・演算ユニット１０２は、取込んだ非投光データと、基準非投光データとの差が所定の閾値を超えた場合に、ステップ９０３に進むようにしてよい。
【００６０】
ステップ９０３では、制御・演算ユニット１０２は、取込んだ非投光データを基準非投光データｎｅｌ＿ｉｎｉ［Ｎ］と、式(10)で求めた投光データと基準投光データｅｌ＿ｉｎｉ［Ｎ］と置き換えることにより、基準データの更新を行う。ステップ７１８ではステップ７１７で異常光が検出された場合（ステップ７１８でＹｅｓ）、座標計算が出来ない為、処理は終了する。異常光が検出されなかった場合（ステップ７１８でＮｏ）、処理はステップ７０８へ戻る。
【００６１】
このように、本実施形態による座標入力装置は、環境の変化に影響を受けないよう、赤外光を投光しないデータを定期的に取得し、遮光を検出する為の基準データを更新する。これにより、本実施形態による座標入力装置は、周囲の環境状態の変化に影響を受けることなく高精度に座標を算出する事が可能となる。また、本実施形態による座標入力装置は、非投光時のデータを用いて基準データ（基準非投光データと基準投光データ）を更新する事から、指示具等による座標入力の影響を殆ど受けずに周辺の環境変化に対応する事が可能となる。
【００６２】
＜その他の実施形態＞
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００６３】
１０１  センサユニット、１０２  制御・演算ユニット、１０３  再帰反射部材、１０４  座標入力領域、２０１  保護部材、２３０  投光部、２３１  赤外ＬＥＤ、２３２  投光レンズ、２３３  接着層、２４０  検出部、２４１  ラインＣＣＤ、２４２  受光レンズ、２４３  視野絞り、２４４  赤外通過フィルタ、３０１  ＣＰＵ、３０２  クロック発生回路、３０３  Ａ／Ｄコンバータ、３０４  メモリ
【図１】
2016076068.tif 000003
【図２】
2016076068.tif 000004
【図３】
2016076068.tif 000005
【図４】
2016076068.tif 000006
【図５】
2016076068.tif 000007
【図６】
2016076068.tif 000008
【図７】
2016076068.tif 000009
【図８】
2016076068.tif 000010
【図９】
2016076068.tif 000011
【図１０】
2016076068.tif 000012