(57)【特許請求の範囲】
【請求項１】
複数のセンサユニットから投光された光が、外部機器のグラフィカルユーザインタフェース（ＧＵＩ）に関連付けられた検出領域内の指示具により遮られ、再帰反射部による反射光が前記複数のセンサユニットにおいて得られなくなったことにより前記指示具が検出されるように配置された前記複数のセンサユニット及び前記再帰反射部を備える座標入力装置であって、
前記検出領域内への指示具の入来及び前記検出領域内からの指示具の離脱を前記複数のセンサユニットにより得られた受光量に基づいて検出する検出手段と、
前記指示具の座標値を前記複数のセンサユニットにより得られた受光量に基づいて導出する導出手段と、
前記検出手段により前記検出領域内への指示具の入来が検出されたときに前記導出手段により導出された前記指示具の座標値を前記外部機器に出力する出力手段と、
前記出力手段により前記外部機器に出力した前記入来の検出時の座標値が前記ＧＵＩを構成する所定のＧＵＩオブジェクトの範囲内に存在するか否かの情報を前記外部機器から受信する受信手段と、
を備え、
前記出力手段は、更に、
前記離脱に先行する入来の検出時の該指示具の座標値が前記所定のＧＵＩオブジェクトの範囲内に存在することを示す情報を前記外部機器から受信したとき、前記検出手段による指示具の離脱の検出時の該指示具の座標値と該離脱に先行する入来の検出時の該指示具の座標値とに応じた座標値を、前記検出手段による指示具の離脱の検出に応じて前記外部機器に出力し、前記離脱に先行する入来の検出時の該指示具の座標値が前記所定のＧＵＩオブジェクトの範囲内に存在しないことを示す情報を前記外部機器から受信したとき、該離脱の検出時の該指示具の座標値を、前記検出手段による指示具の離脱の検出に応じて前記外部機器に出力する
ことを特徴とする座標入力装置。
【請求項２】
前記出力手段は、前記検出手段による指示具の離脱の検出時の該指示具の座標値と該離脱に先行する入来の検出時の該指示具の座標値とに応じた座標値を、指示具の離脱を示すイベント信号に関連付けて出力することを特徴とする請求項１に記載の座標入力装置。
【請求項３】
前記出力する座標値は、前記離脱の検出時の該指示具の座標値と該離脱に先行する入来の検出時の該指示具の座標値とを結ぶ線分上の座標値であることを特徴とする請求項１に記載の座標入力装置。
【請求項４】
前記出力する座標値は、前記離脱の検出時の該指示具の座標値と該離脱に先行する入来の検出時の該指示具の座標値とを結ぶ線分の中点の座標値であることを特徴とする請求項１に記載の座標入力装置。
【請求項５】
複数のセンサユニットから投光された光が検出領域内の指示具により遮られ、再帰反射部による反射光が前記複数のセンサユニットにおいて得られなくなったことにより前記指示具が検出されるように配置された前記複数のセンサユニット及び前記再帰反射部を備える座標入力装置であって、
前記検出領域内への指示具の入来及び前記検出領域内からの指示具の離脱を前記複数のセンサユニットにより得られた受光量に基づいて検出する検出手段と、
前記指示具の座標値を前記複数のセンサユニットにより得られた受光量に基づいて導出する導出手段と、
前記検出手段による指示具の離脱の検出時の該指示具の座標値と該離脱に先行する入来の検出時の該指示具の座標値とに応じた座標値を、前記検出手段による指示具の離脱の検出に応じて出力する出力手段と、
を備え、
前記出力手段は、前記離脱の検出時の該指示具の座標値と該離脱に先行する入来の検出時の該指示具の座標値との間の距離が所定距離を超えるとき、該離脱の検出時の該指示具の座標値を、前記検出手段による指示具の離脱の検出に応じて出力する
ことを特徴とする座標入力装置。
【請求項６】
複数のセンサユニットから投光された光が検出領域内の指示具により遮られ、再帰反射部による反射光が前記複数のセンサユニットにおいて得られなくなったことにより前記指示具が検出されるように配置された前記複数のセンサユニット及び前記再帰反射部を備える座標入力装置であって、
前記検出領域内への指示具の入来及び前記検出領域内からの指示具の離脱を前記複数のセンサユニットにより得られた受光量に基づいて検出する検出手段と、
前記指示具の座標値を前記複数のセンサユニットにより得られた受光量に基づいて導出する導出手段と、
前記検出手段による指示具の離脱の検出時の該指示具の座標値と該離脱に先行する入来の検出時の該指示具の座標値とに応じた座標値を、前記検出手段による指示具の離脱の検出に応じて出力する出力手段と、
を備え、
前記出力手段は、前記離脱の検出時の該指示具の座標値と該離脱に先行する入来の検出時の該指示具の座標値との間の距離と表示オブジェクトの大きさとに応じて、前記検出手段による指示具の離脱の検出時の該指示具の座標値と該離脱に先行する入来の検出時の該指示具の座標値とに応じた座標値と、該離脱の検出時の該指示具の座標値と、の何れかを、前記検出手段による指示具の離脱の検出に応じて出力する
ことを特徴とする座標入力装置。
【請求項７】
複数のセンサユニットから投光された光が、外部機器のグラフィカルユーザインタフェース（ＧＵＩ）に関連付けられた検出領域内の指示具により遮られ、再帰反射部による反射光が前記複数のセンサユニットにおいて得られなくなったことにより前記指示具が検出されるように配置された前記複数のセンサユニット及び前記再帰反射部を備える座標入力装置の制御方法であって、
検出手段が、前記検出領域内への指示具の入来及び前記検出領域内からの指示具の離脱を前記複数のセンサユニットにより得られた受光量に基づいて検出する検出工程と、
導出手段が、前記指示具の座標値を前記複数のセンサユニットにより得られた受光量に基づいて導出する導出工程と、
出力手段が、前記検出工程により前記検出領域内への指示具の入来が検出されたときに前記導出工程により導出された前記指示具の座標値を前記外部機器に出力する第１の出力工程と、
受信手段が、前記第１の出力工程により前記外部機器に出力した前記入来の検出時の座標値が前記ＧＵＩを構成する所定のＧＵＩオブジェクトの範囲内に存在するか否かの情報を前記外部機器から受信する受信工程と、
前記出力手段が、前記離脱に先行する入来の検出時の該指示具の座標値が前記所定のＧＵＩオブジェクトの範囲内に存在することを示す情報を前記外部機器から受信したとき、前記検出工程による指示具の離脱の検出時の該指示具の座標値と該離脱に先行する入来の検出時の該指示具の座標値とに応じた座標値を、前記検出工程による指示具の離脱の検出に応じて出力し、前記離脱に先行する入来の検出時の該指示具の座標値が前記所定のＧＵＩオブジェクトの範囲内に存在しないことを示す情報を前記外部機器から受信したとき、該離脱の検出時の該指示具の座標値を、前記検出手段による指示具の離脱の検出に応じて出力する、第２の出力工程と、
を含むことを特徴とする座標入力装置の制御方法。
【請求項８】
前記第２の出力工程において、前記検出工程による指示具の離脱の検出時の該指示具の座標値と該離脱に先行する入来の検出時の該指示具の座標値とに応じた座標値を、指示具の離脱を示すイベント信号に関連付けて出力することを特徴とする請求項７に記載の座標入力装置の制御方法。
【請求項９】
複数のセンサユニットから投光された光が検出領域内の指示具により遮られ、再帰反射部による反射光が前記複数のセンサユニットにおいて得られなくなったことにより前記指示具が検出されるように配置された前記複数のセンサユニット及び前記再帰反射部を備える座標入力装置の制御方法であって、
検出手段が、前記検出領域内への指示具の入来及び前記検出領域内からの指示具の離脱を前記複数のセンサユニットにより得られた受光量に基づいて検出する検出工程と、
導出手段が、前記指示具の座標値を前記複数のセンサユニットにより得られた受光量に基づいて導出する導出工程と、
出力手段が、前記検出工程による指示具の離脱の検出時の該指示具の座標値と該離脱に先行する入来の検出時の該指示具の座標値とに応じた座標値を、前記検出工程による指示具の離脱の検出に応じて出力する出力工程と、
を含み、
前記出力工程において、前記離脱の検出時の該指示具の座標値と該離脱に先行する入来の検出時の該指示具の座標値との間の距離が所定距離を超えるとき、該離脱の検出時の該指示具の座標値を、前記検出手段による指示具の離脱の検出に応じて出力する
ことを特徴とする座標入力装置の制御方法。
【請求項１０】
複数のセンサユニットから投光された光が検出領域内の指示具により遮られ、再帰反射部による反射光が前記複数のセンサユニットにおいて得られなくなったことにより前記指示具が検出されるように配置された前記複数のセンサユニット及び前記再帰反射部を備える座標入力装置の制御方法であって、
検出手段が、前記検出領域内への指示具の入来及び前記検出領域内からの指示具の離脱を前記複数のセンサユニットにより得られた受光量に基づいて検出する検出工程と、
導出手段が、前記指示具の座標値を前記複数のセンサユニットにより得られた受光量に基づいて導出する導出工程と、
出力手段が、前記検出工程による指示具の離脱の検出時の該指示具の座標値と該離脱に先行する入来の検出時の該指示具の座標値とに応じた座標値を、前記検出工程による指示具の離脱の検出に応じて出力する出力工程と、
を含み、
前記出力工程において、前記離脱の検出時の該指示具の座標値と該離脱に先行する入来の検出時の該指示具の座標値との間の距離と表示オブジェクトの大きさとに応じて、前記検出工程による指示具の離脱の検出時の該指示具の座標値と該離脱に先行する入来の検出時の該指示具の座標値とに応じた座標値と、該離脱の検出時の該指示具の座標値と、の何れかを、前記検出工程による指示具の離脱の検出に応じて出力する
ことを特徴とする座標入力装置の制御方法。
【請求項１１】
座標入力装置と該座標入力装置と接続されたホスト装置とを含む座標入力システムであって、
前記座標入力装置は、
複数のセンサユニットから投光された光が、外部機器のグラフィカルユーザインタフェース（ＧＵＩ）に関連付けられた検出領域内の指示具により遮られ、再帰反射部による反射光が前記複数のセンサユニットにおいて得られなくなったことにより前記指示具が検出されるように配置された前記複数のセンサユニット及び前記再帰反射部を備えるとともに、
前記検出領域内への指示具の入来及び前記検出領域内からの指示具の離脱を前記複数のセンサユニットにより得られた受光量に基づいて検出する検出手段と、
指示具の座標値を前記複数のセンサユニットにより得られた受光量に基づいて導出する導出手段と、
前記検出手段により前記検出領域内への指示具の入来が検出されたときに前記導出手段により導出された前記指示具の座標値を前記ホスト装置に出力する出力手段と、
前記出力手段により前記ホスト装置に出力した前記入来の検出時の座標値が前記ＧＵＩを構成する所定のＧＵＩオブジェクトの範囲内に存在するか否かの情報を前記外部機器から受信する受信手段と、
を備え、
前記ホスト装置は、
前記座標入力装置から座標値を入力する入力手段と、
前記出力手段により前記ホスト装置に出力した前記入来の検出時の座標値が前記ＧＵＩを構成する所定のＧＵＩオブジェクトの範囲内に存在するか否かの情報を前記座標入力装置に送信する送信手段と、
を備え、
前記出力手段は、更に、前記離脱に先行する入来の検出時の該指示具の座標値が前記所定のＧＵＩオブジェクトの範囲内に存在することを示す情報を前記外部機器から受信したとき、前記検出手段による指示具の離脱の検出時の該指示具の座標値と該離脱に先行する入来の検出時の該指示具の座標値とに応じた座標値を、前記検出手段による指示具の離脱の検出に応じて出力し、前記離脱に先行する入来の検出時の該指示具の座標値が前記所定のＧＵＩオブジェクトの範囲内に存在しないことを示す情報を前記外部機器から受信したとき、該離脱の検出時の該指示具の座標値を、前記検出手段による指示具の離脱の検出に応じて出力する
ことを特徴とする座標入力システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、座標入力領域上の指示位置を決定する技術に関するものである。
【背景技術】
【０００２】
座標入力面に対して指示具（例えば、専用入力ペン、指等）による指示を行うことで座標を入力する座標入力装置がある。このような座標入力装置は、コンピュータの制御、あるいは文字や図形などを入力するために用いられる。この種の座標入力装置としては、タッチパネル装置として、各種方式のものが提案、または製品化されており、特殊な器具などを用いずに、画面上でパーソナルコンピュータ（ＰＣ）等の端末の操作が簡単にできるため、広く用いられている。座標入力装置における検出方法としては、抵抗膜を用いたもの、また、超音波を用いたものなど、さまざまなものがあり、例えば、光を用いたものもある（特許文献１）。特許文献１では、座標入力領域の外側に再帰性反射シートを設け、座標入力領域の角端部に配置された光を照明する照明部と光を受光する受光部とにより、座標入力領域内において指等の光を遮蔽する遮蔽物と受光部間の角度を検出している。そして、その検出結果に基づいて、遮蔽物の指示位置を決定する構成が開示されている。
【０００３】
また、特許文献２や３にあるように、再帰反射部材を座標入力領域周辺に構成し、再帰反射光が遮光される部分（遮光部分）の座標を検出する座標入力装置が開示されている。例えば、特許文献２では、微分等の波形処理演算によって受光部が受光する遮蔽物による遮光部分のピークを検出することにより、受光部に対する遮光部分の角度を検出し、その検出結果からその遮蔽物の座標を算出している。また、特許文献３では、特定のレベルパターンとの比較によって遮光部位の一方の端と他方の端を検出し、それらの座標の中心を検出する構成が示されている。
【０００４】
このような遮光方式の座標入力装置においては、光を照明する照明部とその光を反射する再帰反射部と光を受光する受光部とからなる光路面が入力面に対して略並行に所定の幅（高さ）を有して構成される。そのため、光路面に対する指示具による入力は、入力面に触れる直前や入力面から離れる直後においても検出されることとなる。これにより、例えば操作者が文字を書くときには入力面に触れる前後で軌跡が尾を引く現象が生じる。そこで、特許文献４には、指示具の状態に関して、その２次元座標だけでなく、座標入力／検出領域面に対する距離情報（深さ情報）も検出し、指示状態が挿入状態にあるか非挿入状態にあるかを判断する構成が開示されている。特許文献５には、指示具と光学ユニットとの距離で、座標入力／検出領域に指示具が挿入されたかどうかを判定するために用いる閾値を変更する構成が開示されている。さらに、特許文献６には、座標入力面高さの異なる平面からなる座標入力面を有し、その面の高さとその位置情報、並びに検出した座標値、センサが受光した光の分布変化から、指等の指示具が座標入力面をタッチしたかを判定する構成が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】米国特許第４５０７５５７号
【特許文献２】特開２０００−１０５６７１号公報
【特許文献３】特開２００１−１４２６４２号公報
【特許文献４】特開２００１−８４１０６号公報
【特許文献５】特開２００１−１４７７７６号公報
【特許文献６】特許第４４０１７３７号
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献４〜６に開示される技術を用いても、指示具が入力面に対して触れた位置とは、少なからずズレが生じてしまう場合がある。つまり、検出面と入力面とが異なる層に存在するため、ユーザが入力面に対し指示具で指示したと感知する座標と、検出面での実際の検出座標とはズレが生じることがある。そして、このズレは、画面に表示されているボタンオブジェクトを操作（つまり押下）する際に、ボタンを押したつもりが押されていない、というようなことの要因となる。
【０００７】
図１１は、光学式の座標入力装置の入力面を横から見た断面図である。光路は、検出の下限高さ（ＬＬ）と上限高さ（ＵＬ）との間の領域として示され、入力有りと反応する高さＬthrの検出面において座標位置が決定される。いま、入力面１２２に画像としてボタンオブジェクト１２３が領域１２Ｄに表示されているものとする。ここで、ユーザが、ボタンオブジェクト１２３を押下すべく、指示具を入力軌跡１２１に沿って動かした場合、ボタンオブジェクト１２３をタッチしたにもかかわらず、オブジェクトイベントが発生しないことになる。これは、座標値１２Ａ（ダウンイベント付き）は領域１２Ｄに入っているものの、座標値１２Ｂ（アップイベント付き）は領域１２Ｄから外れていたためイベントがキャンセルされたためである。つまり、ボタンオブジェクト１２３のイベントを実行するには、座標値１２Ａ（ダウンイベント付き）と座標値１２Ｂ（アップイベント付き）の双方がボタンオブジェクト１２３の領域１２Ｄに入っている必要がある。このように、ユーザは、正しく操作したつもりであっても、ユーザが期待するオブジェクトイベントが発生せず、操作性に影響を及ぼす。
【０００８】
本発明は上述の１以上の問題点を解決するためになされたものであり、タッチ操作の操作性を向上させた座標入力装置を提供することを目的とする。
【課題を解決するための手段】
【０００９】
上述の１以上の問題点を解決するため、本発明の座標入力装置は以下の構成を備える。すなわち、複数のセンサユニットから投光された光が、外部機器のグラフィカルユーザインタフェース（ＧＵＩ）に関連付けられた検出領域内の指示具により遮られ、再帰反射部による反射光が前記複数のセンサユニットにおいて得られなくなったことにより前記指示具が検出されるように配置された前記複数のセンサユニット及び前記再帰反射部を備える座標入力装置は、前記検出領域内への指示具の入来及び前記検出領域内からの指示具の離脱を前記複数のセンサユニットにより得られた受光量に基づいて検出する検出手段と、前記指示具の座標値を前記複数のセンサユニットにより得られた受光量に基づいて導出する導出手段と、前記検出手段により前記検出領域内への指示具の入来が検出されたときに前記導出手段により導出された前記指示具の座標値を前記外部機器に出力する出力手段と、前記出力手段により前記外部機器に出力した前記入来の検出時の座標値が前記ＧＵＩを構成する所定のＧＵＩオブジェクトの範囲内に存在するか否かの情報を前記外部機器から受信する受信手段と、を備え、前記出力手段は、更に、前記離脱に先行する入来の検出時の該指示具の座標値が前記所定のＧＵＩオブジェクトの範囲内に存在することを示す情報を前記外部機器から受信したとき、前記検出手段による指示具の離脱の検出時の該指示具の座標値と該離脱に先行する入来の検出時の該指示具の座標値とに応じた座標値を、前記検出手段による指示具の離脱の検出に応じて前記外部機器に出力し、前記離脱に先行する入来の検出時の該指示具の座標値が前記所定のＧＵＩオブジェクトの範囲内に存在しないことを示す情報を前記外部機器から受信したとき、該離脱の検出時の該指示具の座標値を、前記検出手段による指示具の離脱の検出に応じて前記外部機器に出力する。
【発明の効果】
【００１０】
本発明によれば、タッチ操作の操作性を向上させた座標入力装置を提供することが出来る。
【図面の簡単な説明】
【００１１】
【図１】第１実施形態に係る座標入力装置の概略構成を示す図である。
【図２】センサユニットの構成を説明する図である。
【図３】制御・演算ユニットのブロック図である。
【図４】発光のタイミングチャートである。
【図５】検出される光量分布を説明するである。
【図６】座標算出可能領域を説明する図である。
【図７】座標算出を説明する図である。
【図８】第１実施形態に係る座標入力装置の制御のフローチャートである。
【図９】イベントに関連する座標値の補正を例示的に説明する図である。
【図１０】出力イベント、座標決定処理工程（Ｓ１２３）の詳細フローチャートである。
【図１１】従来技術の問題点を説明するための図である。
【発明を実施するための形態】
【００１２】
以下に、図面を参照して、この発明の好適な実施の形態を詳しく説明する。なお、以下の実施の形態はあくまで例示であり、本発明の範囲を限定する趣旨のものではない。
【００１３】
（第１実施形態）
本発明に係る座標入力装置の第１実施形態として、遮光方式の座標入力装置を例に挙げて説明する。特に、アップイベントに伴う座標値を補正することにより、ユーザの期待する動作の予期せぬキャンセルを低減する構成について説明する。
【００１４】
＜装置全体構成＞
図１は、第１実施形態に係る座標入力装置の概略構成を示す図である。ユーザが指示具を用いて入力を行う入力領域４の周囲には、それぞれが投光部および受光部を有する４個のセンサユニット１Ａ〜１Ｄが互いに所定の距離離れて設置されている。また、センサユニット１Ａ及び１Ｄは制御・演算を行う制御・演算ユニット２Ａに、センサユニット１Ｂ及び１Ｃは制御・演算を行う制御・演算ユニット２Ｂに、それぞれ接続されている。各センサユニットは、接続されている制御・演算ユニットから制御信号を受信すると共に、受光部により検出した信号を制御・演算ユニットに送信する。なお、センサユニット及び制御・演算ユニットの構成についての詳細は後述する。
【００１５】
再帰反射部３Ａ，３Ｂは、入射光の到来方向に向けて反射光を反射する再帰反射面を有する。つまり、センサユニットの投光部から投光された光を、同一のセンサユニットに向けて再帰的に反射する。反射された光は、集光光学系とラインＣＣＤ等によって構成されたセンサユニットの受光部によって１次元的に検出され、その光量分布が制御・演算ユニットに送られる。
【００１６】
第１実施形態において、再帰反射部は、入力領域４の対向する２辺上に構成されており、センサユニット１Ａ、１Ｄは、再帰反射部３Ｂに対して投光し再帰反射光を受光する。同様に、センサユニット１Ｂ、１Ｃは、再帰反射部３Ａに対して投光し再帰反射光を受光する。つまり、入力領域４に指示具による入力指示がなされると、投光部から投光された光が遮られ、再帰反射による反射光が得られなくなるため、入力指示位置のみ光量が得られなくなる。なお、センサユニットは、入力領域４の外側に配置されている。また、入力領域４は、ＰＤＰやリアプロジェクタ、ＬＣＤパネルなどの表示装置の表示画面で構成したり、フロントプロジェクタで画像を投影したりすることで、インタラクティブな入力装置として、利用可能となっている。
【００１７】
各制御・演算ユニットは相互に通信可能なよう構成され、１Ａ〜１Ｄのセンサユニットにより検出された光量変化から、入力指示された部分の遮光範囲を検出する。そして、当該遮光範囲の方向（角度）および、センサユニット間の距離等から、入力領域における座標を算出する。その後、座標入力装置に接続されているホスト装置（不図示）などに、ＵＳＢなどのインタフェースを経由して決定した入力位置の座標値を出力する。
【００１８】
また、座標入力装置は、座標値を算出した後に、イベント信号（ムーブイベント、ダウンイベント、アップイベントのいずれか）を生成する。ムーブイベントは、カーソルを移動させる状態を示し、ダウンイベントは、指示具の検出状態（検出領域内への指示具の入来）を示し、アップイベントは、指示具の検出状態から未検出状態への変化（検出領域内からの指示具の離脱）を示している。
【００１９】
＜センサユニットの詳細説明＞
図２（ａ）〜（ｃ）は、第１実施形態に係る座標入力装置が備えるセンサユニットの詳細構成を示す図である。センサユニット１Ａ〜１Ｄは、大きく分けて投光部（図２（ａ））と受光部（図２（ｂ））から構成される。
【００２０】
図２（ａ）は、センサユニットの投光部を示している。１０１は、赤外光を発する赤外ＬＥＤであり、投光レンズ１０２によって、再帰反射部３の範囲内に光を投光する。ここで、センサユニット１Ａ〜１Ｄ中の投光部は、この赤外ＬＥＤ１０１と、投光レンズ１０２によって実現される。そして、投光部より投光された赤外光は、再帰反射部３により到来方向に再帰的に反射され、センサユニット１Ａ〜１Ｄ中の受光部によって、その光を検出する。
【００２１】
図２（ｂ）は、センサユニットの受光部を示している。受光部は、１次元のラインＣＣＤ１０３、集光光学系としての受光用レンズ１０４、入射光の入射方向を再帰反射部３の範囲内に制限する絞り１０５、及び可視光等の余分な光（外乱光）の入射を防止する赤外フィルター１０６から構成される。つまり、再帰反射部３によって反射された赤外光は、赤外フィルター１０６、絞り１０５を抜けて受光用レンズ１０４によって、ラインＣＣＤ１０３の検出素子面上に集光される。
【００２２】
図２（ｃ）は、図１のセンサユニット１Ａ，１Ｂ側から見た断面図である。センサユニット１Ａの赤外ＬＥＤ１０１Ａからの光は、投光レンズ１０２Ａにより、座標入力面に略平行に制限された光束として、主に再帰反射部３Ｂに対して光が投光されるように構成されている。同様に、センサユニット１Ｂの赤外ＬＥＤ１０１Ｂからの光は、投光レンズ１０２Ｂにより、主に再帰反射部３Ａに対して光が投光されるように構成されている。
【００２３】
ここで、投光部と受光部は、座標入力面である入力領域４の垂直方向に対しオーバレイ構成となっている。そして、正面方向（座標入力面に対し垂直方向）から見て、投光部の発光中心と受光部の基準位置（後述する角度を計測するための基準点位置に相当し、絞り１０５の位置）が一致する構造となっている。
【００２４】
また、投光部により投光された座標入力面に略平行な光束であって、面内方向に所定角度方向に投光されている光は、再帰反射部３により光の到来方向に再帰反射される。そして、赤外フィルター１０６Ａ（１０６Ｂ）、絞り１０５Ａ（１０５Ｂ）、受光用レンズ１０４Ａ（１０４Ｂ）を経て、ラインＣＣＤ１０３の検出素子面上に集光、結像することになる。従って、ラインＣＣＤ１０３の出力信号は、反射光の入射角に応じた光量分布を出力することになるので、ラインＣＣＤ１０３を構成する各画素の画素番号が当該入射角に対応することになる。
【００２５】
尚、図２（ｃ）に示す投光部と受光部の距離Ｌは、投光部から再帰反射部３までの距離に比べて十分に小さな値であり、距離Ｌを有していても十分な再帰反射光を受光部で検出することが可能となっている。
【００２６】
＜制御・演算ユニットの詳細説明＞
制御・演算ユニット２Ａ、２Ｂとセンサユニット１Ａ〜１Ｄの間では、ＣＣＤの制御信号、ＣＣＤ用クロック信号とＣＣＤの出力信号、および、ＬＥＤの駆動信号がやり取りされている。
【００２７】
図３は、制御・演算ユニットのブロック図である。なお、各制御・演算ユニットは、同様の回路構成となっている。
【００２８】
ワンチップマイコンなどで構成されるＣＰＵ４１は、ＣＣＤ制御信号を出力し、センサユニットの受光部であるＣＣＤのシャッタタイミングや、データの出力制御などを行っている。ＣＣＤ用のクロックはクロック発生回路ＣＬＫ４２からセンサユニットに送信されるとともに、ＣＣＤとの同期をとって、各種制御を行うために、ＣＰＵ４１にも入力されている。なお、ＣＰＵ４１はＬＥＤ駆動信号を同様に出力し、センサユニットの投光部である赤外ＬＥＤに供給している。
【００２９】
センサユニットの受光部であるＣＣＤからの検出信号は、制御・演算ユニットのＡ／Ｄコンバータ４３に入力され、ＣＰＵ４１からの制御によって、デジタル値に変換される。変換されたデジタル値はメモリ４４に記憶され、角度計算に用いられる。そして、計算された角度から、座標値が求められ外部ＰＣなどにシリアルインタフェース４８などを介して出力される。なお、シリアルインタフェース４８は、制御・演算ユニット２Ａ、２Ｂのいずれか１つがＰＣと接続される。
【００３０】
第１実施形態においては、図１を参照して上述したように、センサユニットおよび制御・演算ユニットが、入力領域４の上部と下部にそれぞれ分離して配置された構成となっている。上部と下部の間の制御・演算ユニットの通信には、例えば無線通信が用いられる。例えば、赤外線通信インタフェース４６を介して、サブＣＰＵ４５で処理されたデータにより、制御・演算ユニット間のやりとりが行われる。
【００３１】
なお、各制御・演算ユニット２Ａ、２Ｂは、マスター・スレーブ制御にて動作する。例えば、制御・演算ユニット２Ａがマスターで、制御・演算ユニット２Ｂがスレーブである。なお、各制御・演算ユニットは、マスター・スレーブのどちらにもなりうるが、不図示のディップスイッチなどで、ＣＰＵのポートに切替え信号を入力することで切替えることが可能となっている。マスターである制御・演算ユニット２Ａからは、各センサユニットの制御信号を送信するタイミングを制御する制御信号がスレーブの制御・演算ユニット２Ｂに各インタフェースを介して送信される。
【００３２】
図４は、制御信号のタイミングチャートである。制御信号５１，５２，５３は、それぞれＣＣＤ制御用の制御信号であり、制御信号５１（ＳＨ）で示される間隔で、ＣＣＤのシャッタ解放時間が決定される。制御信号５２、５３はそれぞれ上部センサユニット（センサユニット１Ａ，１Ｄ）と下部センサユニット（センサユニット１Ｂ，１Ｃ）へのゲート信号であり、ＣＣＤ内部の光電変換部の電荷を読み出し部へ転送する信号である。
【００３３】
制御信号５４、５５はＬＥＤの駆動信号であり、制御信号５１（ＳＨ）の最初の周期で上部センサユニットのＬＥＤを点灯するために、制御信号５４（ＬＥＤＵ）の駆動信号がＬＥＤ駆動回路を経てＬＥＤに供給される。そして、次の周期で下部センサユニットのＬＥＤを点灯するために、制御信号５５（ＬＥＤＤ）の駆動信号がＬＥＤ駆動回路を経てＬＥＤに供給される。双方のＬＥＤの駆動が終了した後に、ＣＣＤの信号がセンサから読み出される。したがって、上部センサユニットと下部センサユニットとでは、異なるタイミングで投光（５６Ｕと５６Ｄの期間露光）されて、各ＣＣＤが受光した複数のデータ（光量分布）が読み出されることになる。
【００３４】
＜光量分布検出の説明＞
図５（ａ）〜（ｃ）は、センサユニットから出力される光量分布を例示的に示す図である。
【００３５】
指示具による入力領域４への入力がない場合には、それぞれのセンサユニットからの出力として例えば、図５（ａ）のような光量分布が得られる。もちろん、この図に示される光量分布は単なる例示で有り、再帰反射シートの特性やＬＥＤの特性、また、経時変化（反射面の汚れなど）によって、光量分布は変化する。図５（ａ）においては、Ａのレベルが最大光量を示し、Ｂのレベルが最低光量のレベルを示している。この様にＣＣＤから出力されたデータ（光量分布）は、逐次Ａ／Ｄ変換されＣＰＵにデジタルデータとして取り込まれる。
【００３６】
図５（ｂ）は、指示具による入力領域４への入力がある、つまり、反射光を遮った場合の出力の例である。図５（ｂ）では符号Ｃで示される部分が指示具により反射光が遮られた位置に想到し当該部分のみ、光量が低下している（レベルがＢにまで落ちている）。
【００３７】
つまり、図５（ａ）のような入力の無い状態での光量分布を予め記憶しておいて、図４で示されるそれぞれのサンプル期間において図５（ｂ）のような光量分布を検出する。これにより、それらの差分（遮光範囲）から指示具のよる入力点として入力角度を決定することができる。
【００３８】
＜角度計算の説明＞
角度計算にあたっては、まず、上述した遮光範囲を検出する。以下の説明では、１つのセンサユニットからのデータについて説明するが、他のセンサユニットでも同様の処理を行っている。
【００３９】
まず、電源投入時、指示具による入力の無い状態、かつ、投光部による照明が無い状態でのＣＣＤの出力をＡ／Ｄ変換して、これをBas_Data[N]として、メモリに記憶する。これは、ＣＣＤのバイアスなどのばらつきを含んだデータとなり、図５（ａ）のＢのレベル付近のデータとなる。なお、Ｎは画素番号であり、有効な入力範囲に対応する画素番号が用いられる。次に、指示具による入力の無い状態、かつ、投光部から照明した状態での光量分布を記憶する。これは、図５（ａ）の実線で表されたデータに相当し、Ref_Data[N]とする。
【００４０】
そして、あるサンプル期間のデータをNorm_Data[N]とした際、上述のBas_Data[N]及びRef_Data[N]を用いて、遮光範囲が有るか否かの判定を行う。つまり、指示具による入力領域４への入力が成されたか否か、検出領域内に指示具が存在するか否かの判定が定期的に行われる。
【００４１】
まず遮光範囲を特定するために、データの変化の絶対量によって、有無を判定する。これは、ノイズなどによる誤判定を防止し、所定量の確実な変化を検出するためである。具体的には、変化の絶対量を各々の画素において以下の計算を行い、予め指定されてある閾値Ｖthaと比較する。
【００４２】
Norm_Data_A[N] = Norm_Data[N] - Ref_Data[N]    （１）
ここで、Norm_Data_A[N]は各画素における絶対変化量である。この処理は、２つのデータの差を取り比較するだけなので、処理時間をさほど使わないので、入力の有無の判定を高速に行う事が可能である。なお、Ｖthaを初めて超えた画素が所定数を超えて検出されたときに入力があったと判定する。
【００４３】
一方、より高精度に検出するために、変化の比を計算して入力点の決定を行ってもよい。具体的には、変化の比を各々の画素において以下の計算を行い、予め指定されてある閾値Ｖthrと比較する。
【００４４】
Norm_Data_R[N] = Norm_Data[N] / (Bas_Data[N] - Ref_Data[N])    （２）
このようにして得られるNorm_Data_R[N]に対して、閾値Ｖthrを適用して、その立ち上がり部と立下り部の画素番号から、両者の中央を入力画素として、角度を求める。
【００４５】
図５（ｃ）は、比の計算に基づく検出の例を示す図である。いま閾値Ｖthrで検出すると遮光領域の立ち上がり部分は、画素番号Ｎｒの画素で閾値を超えたとする。さらに、画素番号Ｎｆの画素でＶthrを下まわったとする。その場合、単に中心画素Ｎｐを
Np = Nr + (Nf - Nr) / 2    （３）
として算出してもよいが、そうすると、画素間隔が最小の分解能になってしまう。そこで、より細かく検出するために、以下の数式（４）〜（６）に示すように、それぞれの画素のレベルとその一つ前の画素番号の画素のレベルを用い閾値を横切った仮想の画素番号を計算することを考える。
【００４６】
画素番号Ｎｒの画素のレベルをＬｒ，画素番号Ｎｒ−１の画素のレベルをＬｒ−１とする。また、画素番号Ｎｆの画素のレベルをＬｆ、画素番号Ｎｆ−１の画素のレベルをＬｆ−１とする。そのとき、仮想画素番号Ｎｒｖ，Ｎｆｖは、
Nrv = Nr-1 + ( Vthr - Lr-1 ) / ( Lr -Lr-1 )    （４）
Nfv = Nf-1 + ( Vthr - Lf-1 ) / ( Lf -Lf-1 )    （５）
と計算でき、仮想中心画素Ｎｐｖは、
Npv = Nrv + ( Nfv - Nrv ) / 2    （６）
として算出される。このように、画素番号とその画素のレベルを用いて仮想的な画素番号を計算することで、より分解能の高い検出ができる。
【００４７】
上記のように得られた中央画素番号から、実際の座標値を計算するためには、角度情報に変換する必要がある。ただし、後述する実際の座標計算においては、角度そのものよりも当該角度の正接（ｔａｎｇｅｎｔ）の値を求めるほうが都合がよいため、ここでは正接を求めることにする。なお、画素番号から正接（ｔａｎθ）への変換には、テーブルを参照する方式や所定の変換式を用いることができる。なお、変換式を用いる際には、多項式の次数をより高次のものにすることによりより高い精度を確保できるが計算量が増加することになるため、計算能力および精度スペック等を鑑みて決定すればよい。
【００４８】
例えば、５次多項式を用いる場合、ｔａｎθは６個の係数（Ｌ５，Ｌ４，Ｌ３，Ｌ２，Ｌ１，Ｌ０）を用いて
tanθ = (L5 × Npr + L4) × Npr + L3) × Npr + L2) × Npr + L1) × Npr + L0    （７）
として導出することが出来る。係数のデータは、出荷時などに不揮発性メモリなどに記憶しておくとよい。
【００４９】
同様なことを各々のセンサユニットに対して行えば、それぞれの角度データを決定できる。もちろん、ここでは直接ｔａｎθを求めているが、他の値（角度そのものなど）を求め、その後ｔａｎθを導出しても構わない。
【００５０】
＜座標計算方法の説明＞
図６は、各センサユニットの組み合わせで座標計算可能な入力領域４の座標検出範囲を示している。図６に示すように、各センサユニットの投光および受光範囲が交わる領域が座標計算可能な領域となる。したがって、センサユニット１Ｃ，１Ｄで座標計算可能な範囲は斜線で示される範囲９１である。同様にセンサユニット１Ｂ，１Ｃで座標計算可能な範囲は斜線で示される範囲９２、センサユニット１Ａ，１Ｂで座標計算可能な範囲は斜線で示される範囲９３、センサユニット１Ａ，１Ｄで座標計算可能な範囲は斜線で示される範囲９４となる。なお、当該４つの範囲９１〜９４により入力領域４の全体をもれなくカバーするため、各範囲が互いに重複した領域を有するよう構成しても良い。
【００５１】
図７は、画面座標との位置関係を示す図である。いま、点Ｐの位置において指示具による入力があった場合、センサユニット１Ｂ，１Ｃにて遮光データが検出される。なお、当該２つのセンサユニット間の距離はＤｈであらわされており、また、画面中央が画面の原点位置であり、Ｐ０（０，ＹＰ０）はセンサユニット１Ｂ，１Ｃそれぞれの基準角度とＹ軸の交点である。センサユニット１Ｂ，１Ｃそれぞれにおける、基準角度と点Ｐ方向とのなす角をθＬ、θＲとして、ｔａｎθＬ，ｔａｎθＲを上述の多項式を用いて算出する。このとき点Ｐの座標は
x = Dh × (tanθL + tanθR) / ( 1 + (tanθL × tanθR) )    （８）
y = - Dh × (tanθR - tanθL - ( 2 × tanθL × tanθR) ) / ( 1 + ( tanθL × tanθR) ) + YP0    （９）
で計算される。なお、入力領域における点Ｐの位置によって、使用するセンサユニットの組み合わせが変更になることは上述した通りであるが、センサユニットの組み合わせで、座標算出式のパラメータが変更になる。例えば、センサユニット１Ｃ，１Ｄで検出されたデータで計算する場合は、数式（８）、（９）において、図７に示した値を用いる。具体的には、Ｄｈ→Ｄｖ、ＹＰ０→ＸＰ１の変換を行う。同様に、センサユニット１Ａ，１Ｂの組み合わせ、センサユニット１Ａ，１Ｄの組み合わせで遮光データが検出された場合も、パラメータを変更し、上記の数式（８）、（９）にて計算することができる。
【００５２】
なお、図６を参照して説明したように、各センサユニットのペアによって検出される範囲９１〜９４は互いに重なる領域を有する。つまり１つの指示具による入力が、異なるセンサユニットのペアにより検出されることがある。その場合は、それぞれのセンサユニットのペアにより検出された複数の座標値の平均値をとるなどの処理をすればよい。
【００５３】
＜装置の動作＞
図８は、第１実施形態に係る座標入力装置の制御・演算ユニットにおける動作フローチャートである。なお、ステップＳ１０１〜Ｓ１１０は電源投入時のみに行われる初期設定動作であり、ステップＳ１１０〜Ｓ１２４は各サンプル期間に行われる通常の取り込み動作である。
【００５４】
ステップＳ１０１で、電源が投入されると、ステップＳ１０２ではＣＰＵなどのポート設定、タイマ設定などさまざまな初期化が行われる。
【００５５】
ステップＳ１０３では、不要電荷除去のための準備動作を行う。これは、ＣＣＤなどの光電変換素子は、動作させていないときに不要な電荷が蓄積している場合があり、そのデータをそのままリファレンスデータとして用いると、検出不能／誤検出の原因となるためである。そこで、最初に照明無しで、複数回データの読み出しを行っている。具体的には、ステップＳ１０３では読み込み回数の設定を行い、ステップＳ１０４で照明無しでの所定回数のデータ読み出すを行うことで、不要電荷の除去を行っている。ステップＳ１０５は所定回数繰り返すための判断を行う。
【００５６】
ステップＳ１０６では、基準データに使用する照明無しでのデータ（上述のBas_Data[N]）の取り込みを行い、ステップＳ１０７でメモリに記憶する。ステップＳ１０８では、基準データに使用するもう一つのデータである、照明したときの初期光量分布に相当するデータ（上述のRef_Data[N]）を取り込み、ステップＳ１０９でこれもメモリに記憶する。なお、ステップＳ１０８におけるデータの取り込みは、上部のセンサユニットの組と下部のセンサユニットの組で異なるタイミングで照明してデータを取り込む。これは、上部のセンサユニットと下部のセンサユニットが対向する配置であるため、同時に照明してしまうと、互いの照明を互いの受光部にて検出してしまうことを避けるためである。ステップＳ１１０では、全てのセンサユニットにおける取り込みが終了したかどうかが判断される。なお、全てのセンサユニットにおいて取り込みが終了するまで、ステップＳ１０８とステップＳ１０９を繰り返す。
【００５７】
ステップＳ１１１では、各サンプル期間において光量分布Norm_Data[N]を取り込み、ステップＳ１１２で、全てのセンサユニットにおいて取込みが終了したかどうかが判断される。全てのセンサユニットの取り込みが終了するまでステップＳ１１１を繰り返す。
【００５８】
ステップＳ１１２で、全てのセンサユニットにおいて取込みが終了したと判断されたならば、全てのデータに対して、ステップＳ１１３でRef_Data[N]との差分値を計算し、ステップＳ１１４で遮光部分の有無を判定する。ステップＳ１１４において遮光領域が無いと判定されたときは、直ちにステップＳ１１１に戻る。このとき、サンプル期間の繰り返し周期を１０［ｍｓｅｃ］に設定すれば、１秒間に１００回サンプリングされることになる。
【００５９】
ステップＳ１１４において遮光領域が有ると判定されたときは、ステップＳ１１５で数式（２）の処理により比を計算する。ステップＳ１１６では得られた比に対して閾値で立ち上がり部、立下り部を決定し、数式（４）、（５）、（６）で中心座標（画素番号）を算出する。そして、ステップＳ１１７で得られた中心座標から近似多項式よりＴａｎθを計算する。
【００６０】
ステップＳ１１８では、遮光領域が有りと判定されたセンサユニットの組み合わせから、数式（８）、（９）におけるセンサ間距離などのＴａｎθ以外のパラメータが選択され、当該センサユニットの組み合わせに対応する数式が決定される。そして、ステップＳ１１９では、センサユニットでのＴａｎθ値からｘ、ｙ座標を、ステップＳ１１８で決定した数式（８）、（９）式を用いて算出する。
【００６１】
ステップＳ１２０では、ステップＳ１１４で指示具による入力有りと判定されたセンサユニットの全ての組合わせで座標計算が行われたか判定する。全ての組合わせで座標計算が終了していない場合には、ステップＳ１１５の動作にもどり繰り返し座標計算を行う。ステップＳ１２０で全ての組合わせで座標計算が行われたと判定されたならば、ステップＳ１２１に進む。
【００６２】
ステップＳ１２１では、図６で示される座標検出範囲が重複した重複領域かどうかが判断される。すなわち、複数の座標値が算出されたか否かを判断する。ステップＳ１２１で重複領域と判断された場合には、ステップＳ１２２に進み、例えば平均化などを用いて１つの座標値とする処理を行う。なお、ステップＳ１２１で重複領域と判断されない場合には、ステップＳ１２３に進む。
【００６３】
ステップＳ１２３では、ステップＳ１１１〜Ｓ１２２の処理により出力された座標値について、タッチされたか否かの判定を行う。その判定結果から、ホスト装置のアプリケーションで使用されるカーソルイベント信号（上述したムーブイベント、ダウンイベント、アップイベントのいずれか）を生成して、座標値に関連付ける処理を行う。なお、イベント信号の生成に関する詳細は後述する。
【００６４】
ステップＳ１２４では、ステップＳ１２３で決定された、座標値とカーソルイベント信号とを例えばホスト装置へ出力（送信）する。これは、ＵＳＢ、ＲＳ２３２などのシリアル通信インタフェースを含む任意のインタフェースで出力されうる。ホスト装置側では、座標入力装置に対応するデバイスドライバが受信データを解釈し、解釈された座標値、カーソルイベント信号などに基づいてホスト装置を操作する。例えば、解釈された座標値、カーソルイベント信号などに基づいて、カーソルの移動、ボタンオブジェクトへの指示などを行う。ステップＳ１２４の処理が終了したら、ステップＳ１１１の動作に戻り、以降電源ＯＦＦまでこの処理を繰り返すことになる。
【００６５】
＜カーソルイベント信号の生成および出力座標値の決定の動作＞
図９は、アップイベントを付与する座標値の補正について説明する図である。なお、図９は、入力面を横から見た断面を概念的に示す図であり、入力面の上層には検出領域が配されている。ここでは、ユーザーが指示具を入力軌跡８１のように動かして、画面に表示されているオブジェクト８３をタッチしようとしているものとする。
【００６６】
断面における光路の幅（高さ）は、検出の下限高さ（ＬＬ）と上限高さ（ＵＬ）との間の領域（検出領域）として示される。そして、その光路を指示具を挿入して遮光したときに、入力有りとして検出する高さＬthrを横切った（入力面に近づく方向）ときの位置８Ａにおいて、座標値を計算し、さらにダウンイベントを生成することになる。つまり、遮光の有無の変化（指示具の存在有無の変化）に基づいてカーソルイベントを生成する。そして、それ以降、入力有りと反応する高さＬthrよりも入力面に近い領域において座標計算が継続され、この期間ダウンイベントが生成されることになる。なお、位置８Ｂでは、入力有りと反応する高さＬthrを横切る（入力面から離れる方向）ので、ダウンイベントを生成しない処理となる。すなわち、ダウンイベントの生成、および、当該ダウンイベントを付与する座標値は、位置８Ａの座標値と位置８Ｂの１サイクル前の座標値の間で検出されることになる。
【００６７】
ところで、背景技術で説明したように、ボタンオブジェクト８３は、領域８Ｄの範囲内でしか反応しない。そのため、位置８Ｂの座標値にアップイベントを付与してホスト装置に出力しても、ボタンオブジェクト８３に対応するオブジェクトイベントは発生しないこととなる。
【００６８】
そこで、第１実施形態に係る座標入力装置においては、例えば、入力有りと反応する高さＬthrを横切る開始点である位置８Ａの座標値と終了点の位置８Ｂの座標値とを結ぶ線分の中点の座標値を算出する。つまり、離脱の検出時の座標値と当該離脱に先行する入来の検出時の座標値とを結ぶ線分の中点の座標値を算出する。そして、その結果得られた中点の座標値にアップイベントを関連付けてホスト装置に出力する構成となっている。図９においては、位置８Ａと位置８Ｂから計算された中点位置８Ｃに対して、アップイベントを付与してホスト装置に出力することとなる。中点位置８Ｃの座標値は、領域８Ｄの範囲内に入っているので、ボタンオブジェクトに対応するオブジェクトイベントが発生することとなる。
【００６９】
なお、ここでは、補正された座標値として高さＬthrを横切った２つの座標値の中点を例に挙げて説明したが、当該２つの座標値に対して重み情報を設定し当該２つの座標値を結ぶ線分上の任意の座標値を補正値として出力し得る。例えば、入力面に近づく方向でＬthrを横切ったときの座標値（図９の位置８Ａの座標値）を、アップイベントに関連付けて出力してもよい。また、例えば、高さＬthrを超えた範囲内での複数の座標値の平均値としてもよい。また、当該複数の座標値に対しサンプル期間あたりの距離で重みづけして平均値を算出してもよい。この手法は、入力面に近づく方向と入力面から離れる方向とで、指示具による入力有りと反応する高さを変えるときに有効である。
【００７０】
なお、アップイベントと関連付ける座標値を補正するかどうかは、高さＬthrを横切った２つの座標値の間の距離が所定距離を超えるか否かで判断するとよい。なお、当該所定距離は、座標入力装置の用途によって適宜設定すればよい。たとえば、入力領域４に表示されるオブジェクトの大きさによって決めることが考えられる。また、指示具のサイズ（ユーザの指の太さなど）を規定して、当該所定距離を設定するよう構成しても良い。
【００７１】
図１０は、出力イベント及び座標値を決定するステップ（ステップＳ１２３）の詳細動作を示すフローチャートである。
【００７２】
ステップＳ９１０では処理が開始され、ステップＳ９１１では、ダウン状態かどうか、つまり、遮光領域が有ると判定されているか否かを判定する。この処理は、上述したように入力が行われたことによる光量の変化量に対して所定の閾値と比較が行われる。ステップＳ９１１でダウン状態と判定された場合はステップＳ９１２に進み、ダウン状態ではないと判定された場合はステップＳ９１８に進む。
【００７３】
ステップＳ９１２では、ダウン状態であるかどうかを示すダウンフラグに”１”がセットされているかを判定する。なお、ダウンフラグは初期値において”０”（ダウン状態にない）である。ステップＳ９１２でダウンフラグが”０”と判定されたならば、ステップＳ９１３に進みダウンフラグに”１”をセットする。そして、ステップＳ９１４に進み、現在の座標値を一時的にメモリ内の所定領域に保存する。なお、ステップＳ９１２で、ダウンフラグが”１”であると判定された場合には、ダウンフラグが既にセットされた状態なので、直ちにステップＳ９１５に進む。
【００７４】
ステップＳ９１５では、イベント信号としてダウンイベントを生成する。そして、ステップＳ９１６で、現在の座標値を出力バッファなどにセットし、ステップＳ９１７で、メインルーチンにリターンし、ステップＳ１２４に進む。
【００７５】
ステップＳ９１８では、ダウンフラグが”１”かどうかを判定する。ダウンフラグに”１”がセットされていないと判定した場合には、ステップＳ９１９に進みムーブイベントを生成する。続いて、ステップＳ９１６に進み、現在の座標値を出力バッファにセットする。一方、ステップＳ９１８でダウンフラグに”１”がセットされていると判定した場合には、アップイベントに関連した処理（Ｓ９２０）に進む。
【００７６】
ステップＳ９２０では、アップイベントを生成し、ステップＳ９２１では、ステップＳ９１４で保存した座標値と現在の座標値との間の距離を計算する。ステップＳ９２２では、ステップＳ９２１で計算された距離について、所定距離との比較が行われる。ステップＳ９２１で計算された距離が所定距離以下の場合には、ステップＳ９２３に進み、所定の座標値の補正処理（２点の中点の計算など）が行われ、ステップ９２４において、補正された座標値を出力バッファにセットする。一方、ステップＳ９２１で計算された距離が所定距離よりも大きい場合には、ステップＳ９２８で現在の座標値を補正せずそのまま出力バッファにセットする。
【００７７】
ステップＳ９２５では、ダウンフラグをクリアする（”０”を設定する）し、ステップＳ９２６では、ステップＳ９１４にて一時的に保存した座標値をクリアする。その後、ステップＳ９２７に進み、メインルーチンにリターンし、ステップＳ１２４に進む。
【００７８】
以上説明したように、第１実施形態に係る座標入力装置は、アップイベントを付与する座標値を補正してホスト装置に出力する。これにより、ユーザが期待するオブジェクトイベントの意図しないキャンセルを低減することが可能となり、操作性を向上させることが可能となる。
【００７９】
（変形例１）
第１実施形態においては、座標入力装置が、入力有りと反応する高さを横切った２点の座標値間の距離を判定し、この距離が所定値の範囲内に有るか否かに基づいて座標値を補正するか否かを決定した。しかしながら、座標値の補正をするか否かを他の基準に基づいて決定しても良い。なお、ここでは入力面がグラフィカルユーザインタフェース（ＧＵＩ）に関連付けられていることを想定する。例えば、座標入力装置がダウンイベントと関連付けて出力した座標値が所定のＧＵＩオブジェクト（例えばボタンオブジェクト）の範囲内にあるか否かの情報を外部機器であるホスト装置（不図示）から受信する。ボタンオブジェクトの範囲内にある場合にのみ、上述の補正を行うように構成しても良い。これにより、例えば、ユーザが指示具により文字入力を行っている場合などにおける、意図しない補正動作を抑止することが可能となる。
【００８０】
（変形例２）
さらに、入力面に近づく方向で入力有りと反応する高さを横切った座標値（ダウンイベント）が、ボタンオブジェクトの領域８Ｄの範囲外で出力される場合に対応すべく、出力するイベント信号の出力を制御するよう構成しても良い。具体的には、入力面から離れていく方向で入力有りと反応する高さを横切った座標値の補正値（図９の位置８Ｃの座標値）に対して、アップイベント→ダウンイベント→アップイベント、と出力する。このように制御することにより、仮想的にボタンオブジェクトに対するダウンイベントとアップイベントのペアが生成され、イベント（ボタンの押下など）を実行することが可能となる。
【００８１】
ただし、このようなカーソルイベントの出力を行った場合、アプリケーションによっては、「ダブルタップ」の動作となってしまう場合がある。そこで、ホスト装置のデバイスドライバにおいて、所定時間内のダウンイベントとアップイベントのペアの繰り返しは、無視するなどの処理を入れるとよい。
【００８２】
（変形例３）
第１実施形態においては、座標値の補正処理を座標入力装置において行う構成について説明した。しかしながら、座標入力装置側ではセンサユニットにより検出した座標値を出力し外部のホスト装置（不図示）に送信し、ホスト装置で上述の座標補正処理を行うように構成した座標入力システムとして実現しても良い。その際、ホスト装置にインストールした、当該座標入力装置のデバイスドライバで行うよう構成すると良い。
【００８３】
つまり、座標入力装置は、入力有りと反応する高さを横切った座標値をダウンイベントまたはアップイベントを付与して単に出力すればよい。そして、ホスト装置のデバイスドライバで、カーソルイベント付きの座標値の送信間隔や、ダウンイベントからアップイベントに変化する場合のそれぞれのイベントのエッジの座標値間隔などから、アプリケーションに出力する座標値を決定すればよい。
【００８４】
（その他の実施例）
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
0005806573.tif 000002
【図２】
0005806573.tif 000003
【図３】
0005806573.tif 000004
【図４】
0005806573.tif 000005
【図５】
0005806573.tif 000006
【図６】
0005806573.tif 000007
【図７】
0005806573.tif 000008
【図８】
0005806573.tif 000009
【図９】
0005806573.tif 000010
【図１０】
0005806573.tif 000011
【図１１】
0005806573.tif 000012