(57)【特許請求の範囲】
【請求項１】
タッチパネルと、前記タッチパネルの面に対して略平行に広がる扇状の光を照射する２つの光照射手段と、前記２つの光照射手段が照射した光の反射光を受光するための前記２つの光照射手段の各々に対応して設けられる２つの受光素子から成る受光手段と、前記２つの光照射手段によって照射された光を前記受光手段に向けて反射する反射手段と、前記受光手段の各受光素子が受光した反射光の光量データと予め設定された閾値とを比較して、前記タッチパネル上の座標を検出する座標検出手段と、を有する座標入力装置において、
前記２つの光照射手段を、一方が点灯しているときには他方を消灯させ交互に点灯および消灯するように制御し、どちらか一方の光照射手段の点灯状態において該点灯状態にある光照射手段に対応する前記受光素子が受光する光量データを点灯時データとして、また、どちらか一方の光照射手段の消灯状態において該消灯状態にある光照射手段に対応する前記受光素子が受光する光量データを消灯時データとして、一方の受光素子から得られる点灯時データおよび消灯時データを順に入力し、続いて得られる他方の受光素子の点灯時データおよび消灯時データを順に入力する入力制御手段と、
前記入力制御手段で入力した各受光素子の消灯時データに基づいて、受光素子毎の補正用閾値データを設定する設定手段と、
を備え、
前記座標検出手段は、前記補正用閾値データを用いて、前記受光素子毎に前記閾値を補正し、前記受光素子毎の点灯時データと前記受光素子毎の補正後の閾値とを比較して、前記タッチパネル上の座標を検出することを特徴とする座標入力装置。
【請求項２】
前記入力制御手段は、１０ｍｓｅｃ以下の周期で前記消灯時データの入力を行うことを特徴とする請求項１に記載の座標入力装置。
【請求項３】
前記設定手段は、前記補正用閾値データとして、前記各受光素子の消灯時データの値に比例した値を設定することを特徴とする請求項１または２に記載の座標入力装置。
【請求項４】
前記補正用閾値データおよび前記補正後の閾値は、予めルックアップテーブルとして記憶されており、前記座標検出手段は、前記ルップアップテーブルを参照して前記補正後の閾値を求めることを特徴とする請求項１〜３のいずれか一つに記載の座標入力装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、タッチパネル上で指定された座標を光学的に検出し、コンピュータなどの機器に入力する座標入力装置に関し、より詳細には、太陽光や白熱電球の光などのように装置の置かれた環境からの光（周囲光）による外乱（ノイズ）を除去可能な座標入力装置に関する。
【０００２】
【従来の技術】
現在、タッチパネル上の任意の位置を指やペンで指定することにより、指定された位置の座標をコンピュータなどの機器に入力する座標入力装置がある。特に光学式の座標入力装置は、比較的構成が簡易でありながら充分な精度で座標の検出ができるという長所を有するため、電子黒板、ディスプレイ一体型のタブレットなどに多く用いられている。
【０００３】
光学式の座標入力装置の多くは、タッチパネルの略全面に光を照射できる照射部と、照射部が照射した光を反射する反射部材と、反射部材で反射された光を受光する複数の受光素子が配列されたＣＣＤ（Ｃｈａｒｇｅｄ  Ｃｏｕｐｌｅｄ  Ｄｅｖｉｃｅ）などの受光部とを備えている。タッチパネル上に指やペンを置くと、照射された光が指などによって遮られ、該当する位置の受光素子に受光されなくなる。座標入力装置は、受光素子の受光状態から指などが置かれた位置の座標を検出するものである。
【０００４】
このような座標入力装置では、受光部が受光する光は照射部から照射された光の反射光のみを受光することを前提として、受光部で受光した反射光の状況によってタッチされているか否か、タッチされた場所（座標位置）はどこか検出している。ところが、実際には、タッチパネルが使用されている場所によっては、周囲光（太陽光や照明光など）が直接または反射して受光部に入射してしまうことがある。
【０００５】
受光部は、照射部が照射する光の強度（光量）に基づいて、予め光学的な調整がなされているが、周囲光が受光部に入射してしまった場合には、その光量分だけ受光部に入る光量も増大するため、受光部の受光素子で受光可能な光量の最大値を超えて、受光素子が飽和してしまうことがある。
【０００６】
受光素子が飽和すると、照射された光が指などによって遮られた場合に減少する受光素子の光量変化（ディップ量）が小さくなり、ディップ検出（遮蔽検出）ができなくなってしまうという不具合が発生する。
【０００７】
この不具合に対処するために従来の座標入力装置では、照射部から照射される光の波長のみを通すフィルタを受光部の前に設けることが一般的に行われている。
【０００８】
また、関連する従来の技術として、特開平２０００−８９９０３号公報「光走査型タッチパネル」に開示されている装置がある。この光走査型タッチパネルは、走査光をオフとして、そのオフ期間に、走査光がオフである場合の受光素子での受光結果に基づいて、走査光の遮断位置を検出するための比較用基準信号（しきい値レベル）を設定することにより、比較用基準信号を所望のタイミングで設定できるようにしたものである。また、所定時間にわたって走査光をオフして光走査部を作動させ、その間の受光素子での受光結果の最大値と最小値との差を求め、求めた差を所定の基準値と比較することにより、外乱光の影響の程度を検知し、誤った検出動作を防ぐようにしたものである。
【０００９】
【発明が解決しようとする課題】
しかしながら、上記従来の技術によれば、フィルタを受光部の前に設けた場合でも、周囲光である太陽光や白熱電球などにも、色々な波長の光が混ざっているおり、周囲光の全部をカットすることは不可能であるため、周囲光の強さによって受光素子が飽和してディップ検出が行えなくなるという問題点があった。
【００１０】
また、特開平２０００−８９９０３号公報によれば、走査光がオフである場合の受光素子での受光結果に基づいて、走査光の遮断位置を検出するための比較用基準信号（しきい値レベル）を設定しているものの、具体的には、受光素子での受光結果の最大値と最小値との差から閾値（比較用基準信号）を決定し、１回の光走査の時間内に受光素子から出力される全ての受光信号に対して、前記決定した閾値（比較用基準信号）を用いてディップ検出を行っているため、特定方向の周囲光が強い場合や、タッチパネル上の遮蔽位置（座標位置）によっては必ずしも周囲光の影響を防ぐことができないという問題点があった。換言すれば、周囲光の影響によって誤検出が発生する虞があった。
【００１１】
本発明は、上記に鑑みてなされたものであって、周囲光の影響によってディップ検出が行えなくなることを確実に防ぐと共に、周囲光による誤検出を防ぐことを目的とする。
【００１２】
【課題を解決するための手段】
上記した課題を解決し、目的を達成するため、請求項１に記載の発明にかかる座標入力装置は、タッチパネルと、前記タッチパネルの面に対して略平行に広がる扇状の光を照射する２つの光照射手段と、前記２つの光照射手段が照射した光の反射光を受光するための前記２つの光照射手段の各々に対応して設けられる２つの受光素子から成る受光手段と、前記２つの光照射手段によって照射された光を前記受光手段に向けて反射する反射手段と、前記受光手段の各受光素子が受光した反射光の光量データと予め設定された閾値とを比較して、前記タッチパネル上の座標を検出する座標検出手段と、を有する座標入力装置において、前記２つの光照射手段を、一方が点灯しているときには他方を消灯させ交互に点灯および消灯するように制御し、どちらか一方の光照射手段の点灯状態において該点灯状態にある光照射手段に対応する前記受光素子が受光する光量データを点灯時データとして、また、どちらか一方の光照射手段の消灯状態において該消灯状態にある光照射手段に対応する前記受光素子が受光する光量データを消灯時データとして、一方の受光素子から得られる点灯時データおよび消灯時データを順に入力し、続いて得られる他方の受光素子の点灯時データおよび消灯時データを順に入力する入力制御手段と、前記入力制御手段で入力した各受光素子の消灯時データに基づいて、受光素子毎の補正用閾値データを設定する設定手段と、を備え、前記座標検出手段は、前記補正用閾値データを用いて、前記受光素子毎に前記閾値を補正し、前記受光素子毎の点灯時データと前記受光素子毎の補正後の閾値とを比較して、前記タッチパネル上の座標を検出するものである。
【００１３】
この請求項１に記載の発明によれば、入力制御手段が、２つの光照射手段を一方が点灯しているときには他方を消灯させるように交互に点灯および消灯させ、どちらか一方の光照射手段の点灯状態において該点灯状態にある光照射手段に対応する受光素子が受光する光量データを点灯時データとして、また、どちらか一方の光照射手段の消灯状態において該消灯状態にある光照射手段に対応する受光素子が受光する光量データを消灯時データとして、一方の受光素子から得られる点灯時データおよび消灯時データを順に入力し、続いて得られる他方の受光素子の点灯時データおよび消灯時データを順に入力する制御を行う。この入力制御手段の入力制御によって点灯時データおよび消灯時データがそれぞれのタイミングで１つずつ順に入力される。設定手段は、各受光素子の消灯時データを入力すると、各受光素子の消灯時データに基づいて、受光素子毎の補正用閾値データを設定する。次に、座標検出手段は、受光素子毎の補正用閾値データを用いて、受光素子毎に閾値を補正し、受光素子毎に、該当する点灯時データと補正後の閾値とを比較して、ディップ検出を行い、その結果からタッチパネル上の座標を検出する。
【００１５】
さらに、この請求項１に記載の発明によれば、入力制御手段が、上記のように、一方の受光素子から得られる点灯時データおよび消灯時データを順に入力し、続いて得られる他方の受光素子の点灯時データおよび消灯時データを順に入力している。したがって、１回の点灯時データ（または消灯時データ）の入力が行われると、続いて消灯時データ（または点灯時データ）が入力されることになり、設定手段における補正用閾値データの設定も消灯時データが入力される度に、すなわち、点灯時データを入力するのと同じ回数だけ行われる。
【００１６】
また、請求項２に係る座標入力装置は、請求項１に記載の座標入力装置において、前記入力制御手段が、１０ｍｓｅｃ以下の周期で前記消灯時データの入力を行うものである。
【００１７】
この請求項２に記載の発明によれば、入力制御手段が、１０ｍｓｅｃ以下の周期で消灯時データの入力を行う。一般的に人間がタッチパネルを押下して、光を遮蔽するときの動作速度（動きの速さ）は、大凡、１００ｍｓｅｃ単位であり、速い場合でも、せいぜい１０ｍｓｅｃであるので、１０ｍｓｅｃ以下の周期で消灯時データの入力を行うことにより、タッチパネルが押下される直前の消灯時データが入力される。
【００１８】
また、請求項３に係る座標入力装置は、請求項１または２に記載の座標入力装置において、前記設定手段が、前記補正用閾値データとして、前記各受光素子の消灯時データの値に比例した値を設定するものである。
【００１９】
この請求項３に記載の発明によれば、設定手段において、各受光素子の消灯時データの値に比例した値が補正用閾値データとして設定される。
【００２０】
また、請求項４に係る座標入力装置は、請求項１〜３のいずれか一つに記載の座標入力装置において、前記補正用閾値データおよび前記補正後の閾値が、予めルックアップテーブルとして記憶されており、前記座標検出手段が、前記ルップアップテーブルを参照して前記補正後の閾値を求めるものである。
【００２１】
この請求項４に記載の発明によれば、補正用閾値データおよび補正後の閾値が、予めルックアップテーブルとして記憶されている。座標検出手段は、特別な演算処理などを行うことなく、設定手段で設定された補正用閾値データに基づいてルップアップテーブルを参照し、補正後の閾値を求める。
【００２２】
【発明の実施の形態】
以下、本発明の座標入力装置の実施の形態について、添付を図面を参照して詳細に説明する。
【００２３】
図１は、本実施の形態の座標入力装置の概略を説明する図である。図１に示した座標入力装置は、タッチパネル１０１と、タッチパネルの２箇所に設けられた光学ユニット１０２ａ、１０２ｂと、タッチパネル１０１の三方に設けられた反射部１０３ａ、１０３ｂ、１０３ｃと、光学ユニット１０２ａ、１０２ｂの受光状態（暗点の有無および位置）からタッチパネル１０１に入力された座標を検出する制御部１０４と、制御部１０４で検出した座標を外部機器であるパーソナルコンピュータ（ＰＣ）１０６などへ出力するためのインターフェイス部１０５とを備えている。なお、１０７は、制御部１０４とインターフェイス部１０５が搭載されたＭＢＵ（マザー・ボード・ユニット）を示す。
【００２４】
図２は、光学ユニット１０２ａ、１０２ｂの構成を説明するための図である。本実施の形態のタッチパネル１０１は、四角形の平面であり、光学ユニット１０２ａ、１０２ｂは、タッチパネル１０１の面における同一の辺の両端に生じる２つの角部分にそれぞれ１つずつ設けられている。
【００２５】
図２に示した光学ユニット１０２ａは、光源２０１、拡散レンズ２０２、受光レンズ２０３、複数の受光素子が配列されたＣＣＤ（受光手段）２０４およびハーフミラー２０５を有している。光源２０１は、タッチパネル１０１の面と光軸が略平行な光を照射する。光源２０１から照射された光は、拡散レンズ２０２によってタッチパネル１０１の面と略平行に広がる扇状の光に拡散されてタッチパネル１０１上に照射される。
【００２６】
図示を省略するが、光学ユニット１０２ｂも光学ユニット１０２ａと同様に構成されていて、光学ユニット１０２ａと同様にタッチパネル１０１の面と略平行に広がる扇状の光をタッチパネル１０１上に照射する。２つの光学ユニット１０２ａ、１０２ｂから照射される光は、タッチパネルの全域に広がって照射され、反射部１０３ａ〜１０３ｃによって再帰的に反射される。反射された光（反射光）は、受光レンズ２０３で集光され、ＣＣＤ２０４によって受光される。
【００２７】
制御部１０４は、ＣＣＤ２０４における反射光の受光状態に基づいて、タッチパネル１０１に入力された（置かれた）指やペンといった遮蔽物の座標を検出する。
【００２８】
図３は、光学ユニット１０２ａ、１０２ｂおよびＭＢＵ１０７を説明するためのブロック図である。図示するように、光学ユニット１０２ａは、ＬＤ（レーザダイオード）からなる光源２０１を備えたＬＤＵ（レーザダイオードユニット）４０２、ＣＣＤ（Charge Coupled Device ）２０４を備えたＳＢＵ（センサ・ボード・ユニット）４０３を備えている。また、光学ユニット１０２ｂは、ＬＤ（レーザダイオード）からなる光源２０４を備えたＬＤＵ（レーザダイオードユニット）４０４、ＣＣＤ（Charge Coupled Device ）２０４を搭載した基板であるＳＢＵ（センサ・ボード・ユニット）４０５を備えている。
【００２９】
ＭＢＵ１０７は、ＣＰＵ（Central Processor Unit）４０１と、ＳＢＵ４０３のＣＣＤ２０４が出力する光量データ（アナログ信号）をディジタル信号に変換する画像処理ＬＳＩ４０６と、変換された信号をラインごとに格納するデータ格納メモリ４０７と、ＳＢＵ４０５のＣＣＤ２０４が出力する光量データ（アナログ信号）をディジタル信号に変換する画像処理ＬＳＩ４０９と、変換された信号をラインごとに格納するデータ格納メモリ４０８と、を備えている。
【００３０】
さらに、ＭＢＵ１０７は、ＣＰＵ４０１で使用されるプログラムなどを記録したＲＯＭ（Read Only Memory）４１０と、ＣＰＵ４０１のワークエリアとして使用されるＲＡＭ（Random Access Memory）４１１と、ＰＣ１０６とのインターフェイスとして機能するインターフェイス部１０５と、を備えている。
【００３１】
以上の構成において、先ず、タッチパネルの動作の一連の処理について簡単に説明する。ＣＰＵ４０１がＲＯＭ４１０のプログラムを実行して、ＬＤ点灯信号をＬＤＵ４０２，４０４に送信すると、ＬＤＵ４０２，４０４は点灯信号に基づいて、ＬＤ（光源）２０１を点灯する。ＳＢＵ４０３，４０５は、ＬＤ（光源）２０１が点灯しているときに、ＳＢＵ４０３，４０５内のＣＣＤ２０４にて受光したデータをＭＢＵ１０７の画像処理ＬＳＩ４０６，４０９に送出する。
【００３２】
画像処理ＬＳＩ４０６，４０９は、受け取ったデータをデジタル変換してシェーディング等の画像処理を行い、データ格納メモリ４０７，４０８に格納する。データ格納メモリ４０７，４０８に格納されたデータはＣＰＵ４０１にて読み出され、ディップ検出処理が行われ、その後、ディップ検出に基づいて座標位置が算出され、算出された座標位置がインターフェィス部１０５を介して外部のＰＣ１０６に送出される。
【００３３】
ここで、タッチパネル１０１が指等の遮蔽物で遮られたとき、その遮られた座標位置を算出する算出式について説明する。図４は座標位置の検出方法をより詳細に説明するための図である。タッチパネル１０１は、図中の横方向の長さ（幅）Ｗを有する長方形の板である。また、タッチパネル１０１の三辺には反射部材１０３（１０３ａ〜ｃ）が設けられている。ここでは、タッチパネル１０１上の点Ｐの座標を検出する場合を例にして座標の検出方法を説明する。
【００３４】
前述したように光源２０１およびＣＣＤ２０４は、一体的なユニット（光学ユニット１０２ａ，１０２ｂ）として構成されている。また、反射部材１０３は、照射された光の光軸と反射された光の光軸とが同一の軸となるように光を反射する再帰性の反射部材である。このため、光源２０１から照射された光は、反射部材１０３で再帰的に反射され、光源２０１と共に光学ユニット１０２ａ，１０２ｂに組み込まれているＣＣＤ２０４で受光される。図４では、光学ユニット１０２ａ，１０２ｂが、タッチパネル１０１の２つの角部分にそれぞれ１つずつ配置されおり、光学ユニット１０２ａ，１０２ｂの固定点を、図中に点ＣＬ，点ＣＲとして示すものとする。
【００３５】
タッチパネル１０１上の一点Ｐに指が置かれると、点Ｐと点ＣＬとを結ぶ直線ｌ2 と直線ｌ1 とは角度θＬをなす。また、点Ｐと点ＣＲとを結ぶ直線ｌ3 と直線ｌ1 とは角度θＲをなす。点Ｐに指が置かれたことにより、光源から照射された光の一部が指によって遮蔽され、点Ｐを通る反射光がＣＣＤ２０４で受光されなくなり、ＣＣＤ２０４の受光素子上に暗点が生じる。
【００３６】
このとき、点Ｐの座標（ｘ，ｙ）は、以下の式によって算出される。
ｘ＝（ｔａｎθＲ・Ｗ）／（ｔａｎθＬ＋ｔａｎθＲ）    …（１）
ｙ＝（ｔａｎθＬ・ｔａｎθＲ・Ｗ）／（ｔａｎθＬ＋ｔａｎθＲ）
＝ｘ・ｔａｎθＬ      …（２）
【００３７】
ところで、ＣＣＤ２０４が受光する光には、光源２０１から照射された光が反射部材２０３で反射された反射光と、該反射光以外の光（すなわち、周囲光）がある。ＣＣＤ２０４にて周囲光が受光された場合には、ＣＣＤ２０４は通常、反射光のみを受光する場合より、周囲光の分だけ受光する光量が増大する。例えば、周囲光が殆どない（周囲光なし）場合のＣＣＤ２０４の受光光量（所謂、白データ）を、図５（ａ）とすると、周囲光がある場合のＣＣＤ２０４の受光光量は、図５（ｂ）のようになり、周囲光の分だけ光量が増大する。
【００３８】
ＣＣＤ２０４の各受光素子は、周囲光を受光していない状態で光学調整されているため、周囲光を受光している所では、ＣＣＤ２０４の受光素子が飽和してしまうことがある。このような場合には、タッチパネル１０１を指等でさわり、光を遮ったときに、図６（ａ），（ｂ）に点線で示すように、周囲光なしの状態のディップ量よりも周囲光ありの状態のディップ量が小さくなるので、ディップ検出ができなくなってしまう。
【００３９】
なお、ＣＣＤ２０４が周囲光を受光しているかどうかは、通常、光源２０１を点灯している状態のデータでは、シェーディング補正を行っているために、殆どのデータが周囲光の入っていない状態でも白（０ｘＦＦ）に近い値となっているので判断できない。図７（ａ），（ｂ）は、周囲光なしの場合と、周囲光ありの場合のＣＣＤ２０４のデータにシェーディング補正を行った後のシェーディング補正後データを示している。図示の如く、シェーディング補正後データからはＣＣＤ２０４が周囲光を受光しているかどうかの判断を行うことはできない。
【００４０】
ＣＣＤ２０４が周囲光を受光していた場合には、光源２０１を点灯していない状態のときでも、ＣＣＤ２０４ではその周囲光の光量分だけ明るいデータとなるので、光源２０１を点灯していない状態のデータを使って周囲光がＣＣＤ２０４で受光されているか否かを判断する。しかしながら、タッチパネル１０１を使用する状態のときに、むやみに光源２０１を消灯してしまうと、タッチパネル１０１が使用できなくなる。そこで、本実施の形態では、速い周期で光源２０１を点滅（点灯／消灯を繰り返す）させ、タッチパネル１０１を使用しているときでもタッチパネル１０１が使えなくなったりすることなく、光源２０１を消灯させた状態のデータ（消灯時データ）を取り込んで周囲光がＣＣＤ２０４で受光されているかどうか判断可能とする。図８（ａ）は、周囲光なしの場合のＣＣＤ２０４の消灯時データを示し、図８（ｂ）は周囲光ありの場合のＣＣＤ２０４の消灯時データを示している。図示の如く、光源２０１を消灯した状態でも、周囲光によってＣＣＤ２０４のデータ（所謂、黒データ）が持ち上げられている。
【００４１】
なお、光源２０１を点滅させる周期は、人間の動作速度が一般的には、１００ｍｓｅｃ単位であるので（速い人でも、せいぜい１０ｍｓｅｃ）、本実施の形態では、それよりも十分速い５ｍｓｅｃ周期で点滅させることとする。また、光源２０１の点滅は、ソフトウェアの処理速度の低下を防ぐために、ソフトウェアでは点灯命令を出力し、ハードウェアにて点滅動作をする。図９は、５ｍｓｅｃ周期で光源２０１を点滅させた場合の、点灯時データと消灯時データの入力タイミングを示している。
【００４２】
次に、タッチパネル１０１が触れられたか否かの検出（ディップ検出）について説明する。通常、タッチパネル１０１が触れられたかどうかの検出は、光源２０１が点灯しているときの点灯時データにて、予め設定してある閾値よりも小さいデータが２画素以上連続して存在するかどうかで検出を行っている。ここで設定されている閾値は予め機械の特性を調査して、タッチパネル１０１のどの位置に触れられても検出できるように設定してあるが、周囲光がＣＣＤ２０４で受光されていた場合には、上述したようにディップ量が変化してしまうので検出できなくなる。
【００４３】
そこで、本実施の形態では、光源２０１を点灯していない場合のデータ（消灯時データ）を検出し、周囲光が入っていた場合には、閾値を補正（消灯時データの光量分可変させる）してタッチパネル１０１が触れられたかどうか検出する。したがって、ＣＣＤ２０４に周囲光が入った場合でも、ディップ検出ができなくなることはない。
【００４４】
閾値の補正は、ＣＣＤ２０４に入る周囲光の強さ（光量）と、そのときのディップ量の影響とを調査しておき、さらにその機械の特性にあったデータを調査して、周囲光の光量に対応する補正用閾値データ（周囲光の光量分の閾値）を作成し、テーブル化しておき、ディップ検出時に予め設定されている閾値からマイナスする（白データに近くなる方向）ことで行うことができる。
例えば、
補正後の閾値＝（予め設定されている閾値）−（周囲光の光量分の閾値）
【００４５】
または、予め設定されている閾値が調整不可能（すなわち、固定値）な場合には、補正用閾値データ（周囲光の光量分の閾値）と補正後の閾値とを、予めルックアップテーブルとして記憶し、ルップアップテーブルを参照して補正後の閾値を求めるようにしても良い。
【００４６】
いずれの場合にも、周囲光の光量分の閾値をテーブル化することで、不必要な計算が必要なくなり、処理速度の低下を最低限に抑えることができる。
【００４７】
また、周囲光がＣＣＤ２０４に受光する様子は、状況によってＣＣＤ２０４全体に受光したり、一部のみに受光したりする。このような場合に、周囲光があるからといって、補正後の閾値をＣＣＤ２０４全体に対して、すなわち、ＣＣＤ２０４の各受光素子に対して、一律に固定値として用いると周囲光が入っていない受光素子の部分では、閾値のレベルがシビアになるためノイズ等によって発生するディップもすべてディップとして検出して、多点検出が発生する。したがって、本実施の形態では、この多点検出を回避するために、周囲光によって可変させる閾値（補正する閾値）は、受光素子毎に行う。これによって、ＣＣＤ２０４に配列された受光素子のうち、周囲光を受光している部分も、受光していない部分も共に適切な閾値を設定でき、ノイズ等による多点検出も回避できる。
【００４８】
さらに、ＣＣＤ２０４が受光する周囲光、特に太陽光などは、時間によって刻々と変化する。また、タッチパネル１０１を使用する人がＣＣＤ２０４に入る周囲光を遮って周囲光が入っていない状態が発生することもある。このため、光源２０１を点灯していない状態のデータ（消灯時データ）はタッチパネル１０１が使用可能な状態において、常にディップ検出用の点灯時データと共に取り込むことにする。これによって、周囲光の経時的な変化や、一瞬の変化にも対応でき、常に同じ条件でディップ検出を行うことができる。
【００４９】
次に、図１０〜図１２のフローチャートを参照して、本実施の形態のディップ検出処理、点灯時データ・消灯時データの入力制御、閾値の補正処理について説明する。
【００５０】
ステップＳ１：座標入力装置の電源が投入されると、ディップ検出が開始され、ＬＤ（光源２０１）を点灯して、シェーディング処理を行う。
ステップＳ２：Ｒ側の光源２０１が消灯するのを待ち。消灯したら次のステップへ進む。
ステップＳ３：Ｒ側の光源２０１が点灯するのを待ち。点灯したら次のステップへ進む。
ステップＳ４：Ｒ側の黒データ入力を開始する。実際には、次のラインから開始されるので、Ｒ側の光源２０１が点灯していないデータ（消灯時データ）を入力する。
ステップＳ５：入力が終了したか否かを判定し、Ｒ側の光源２０１が点灯していないデータ（消灯時データ）の入力終了待ち状態となる。
ステップＳ６：Ｌ側の黒データ入力を開始する。実際には、次のラインから開始されるので、Ｌ側の光源２０１が点灯していないデータ（消灯時データ）を入力する。
ステップＳ７：入力が終了したか否かを判定し、Ｌ側の光源２０１が点灯していないデータ（消灯時データ）の入力終了待ち状態となる。
【００５１】
ステップＳ８：Ｌ側の白データ入力を開始する。実際には、次のラインから開始されるので、Ｌ側の光源２０１が点灯しているデータ（点灯時データ）を入力する。
ステップＳ９：入力が終了したか否かを判定し、Ｌ側の光源２０１が点灯しているデータ（点灯時データ）の入力終了待ち状態となる。
ステップＳ１０：Ｒ側の白データ入力を開始する。実際には、次のラインから開始されるので、Ｒ側の光源２０１が点灯しているデータ（点灯時データ）を入力する。
ステップＳ１１：入力が終了したか否かを判定し、Ｒ側の光源２０１が点灯しているデータ（点灯時データ）の入力終了待ち状態となる。
ステップＳ１２：Ｒ側の黒データ入力を開始する。実際には、次のラインから開始されるので、Ｒ側の光源２０１が点灯していないデータ（消灯時データ）を入力する。
【００５２】
以降、ステップＳ５〜ステップＳ１２を繰り返す。このステップＳ５〜ステップＳ１２は、ＣＰＵが介在しないＤＭＡ処理およびＤＭＡの終了割り込み内にて行い、ＣＰＵはメイン処理として、以降の処理を行う。
【００５３】
ステップＳ１３：Ｌ側ディップ検出開始、Ｌ側の白データ（点灯時データ）および黒データ（消灯時データ）からディップ検出を開始する。
ステップＳ１４：ディップ検出を行う開始アドレス、終了アドレスをセットする。
ステップＳ１５：アドレスを開始アドレスにセットする。
ステップＳ１６：光源２０１の消灯時データ（黒データ）からセットされているアドレスのデータ（Ｄｂ０）と、セットされているアドレスの次のアドレスのデータ（Ｄｂ１）を抽出する。
【００５４】
ステップＳ１７：抽出した消灯時データ（Ｄｂ０、Ｄｂ１）を用いて、予め記憶してあるルックアップテーブルから補正用閾値データ（ＴＨｃ０、ＴＨｃ１）を抽出して設定する。
ステップＳ１８：予め設定されている固定閾値（ＴＨｓ）と、補正用閾値データ（ＴＨｃ０、ＴＨｃ１）とを用いて、補正後の閾値（ＴＨ０、ＴＨ１）を算出する。具体的には、
ＴＨ０＝ＴＨｓ−ＴＨｃ０
ＴＨ１＝ＴＨｓ−ＴＨｃ１
で求める。
【００５５】
ステップＳ１９：光源２０１の点灯時データ（白データ）からセットされているアドレスのデータ（Ｄｗ０）と、セットされているアドレスの次のアドレスのデータ（Ｄｗ１）を抽出する。
ステップＳ２０：ディップの開始位置を検出しているのか、終了位置を検出しているのかを判定する。ここで、最初はディップの開始位置の検出へと進む。ステップＳ２１〜Ｓ２５の処理でディップ開始位置が検出されている場合にはＣＣＣ（ステップＳ２６）へ進む。
ステップＳ２１：（Ｄｗ０≦ＴＨ０）＆＆（Ｄｗ１≦ＴＨ１）か否か確認する。すなわち、Ｄｗ０がＴＨ０以下であり、かつ、Ｄｗ１がＴＨ１以下であるか確認する。
ステップＳ２２：ステップＳ２１で肯定である場合、セットされているアドレスをディップ開始位置とし、ステップＳ２４ｂへ進む。
【００５６】
ステップＳ２３：（Ｄｗ０≧ＴＨ０）＆＆（Ｄｗ１≦ＴＨ１）か否か確認する。すなわち、Ｄｗ０がＴＨ０以上であり、かつ、Ｄｗ１がＴＨ１以下であるか確認する。
ステップＳ２４ａ：ステップＳ２３で否定である場合、セットされているアドレスに＋１をする。
ステップＳ２４ｂ：ステップＳ２３で肯定である場合、セットされているアドレスに＋２をする。
ステップＳ２５：アドレスが終了アドレスに達したか確認する。ここで、終了アドレス未満の場合にはステップＳ１６へ戻り、終了アドレス以上の場合にはＢＢＢへ進む（ステップＳ１１へ戻る）。
【００５７】
ステップＳ２６：（Ｄｗ０≧ＴＨ０）＆＆（Ｄｗ１≧ＴＨ１）か否か確認する。すなわち、Ｄｗ０がＴＨ０以上であり、かつ、Ｄｗ１がＴＨ１以上であるか確認する。
ステップＳ２７：ステップＳ２６で肯定である場合、セットされているアドレスをディップ終了位置とし、ステップＳ３１へ進む。
【００５８】
ステップＳ２８：（Ｄｗ０≦ＴＨ０）＆＆（Ｄｗ１≦ＴＨ１）か否か確認する。すなわち、Ｄｗ０がＴＨ０以下であり、かつ、Ｄｗ１がＴＨ１以下であるか確認する。
ステップＳ２９ａ：ステップＳ２８で否定である場合、セットされているアドレスに＋１をする。
ステップＳ２９ｂ：ステップＳ２３で肯定である場合、セットされているアドレスに＋２をする。
ステップＳ３０：アドレスが終了アドレスに達したか確認する。ここで、終了アドレス未満の場合にはＤＤＤへ進み（ステップＳ１６へ戻り）、終了アドレス以上の場合にはＢＢＢへ進む（ステップＳ１１へ戻る）。
【００５９】
ステップＳ３１：Ｒ側の白データ（点灯時データ）および黒データ（消灯時データ）からディップ検出を開始する。なお、Ｒ側のディップ検出の内容は、Ｌ側のディップ検出（ステップＳ１３〜ステップＳ３０）と同じであるため省略する。
ステップＳ３２：検出したＬ側ディップ位置とＲ側ディップ位置から座標位置を算出する。
ステップＳ３３：算出した座標位置をインターフェイス部１０５を介してＰＣ１０６へ送出する。この後、ステップＳ１１に戻り、処理を繰り返す。
２つの光学ユニットの光源２０１を点滅させて、点灯時データと消灯時データとを入力するタイミングは、図９に示した通りである。
【００６０】
なお、本実施の形態では、２つの光学ユニットの光源２０１を点滅させるタイミングを交互に行うことにしているが、これは実施の形態の装置構成において、ハード的な制約により、２チャンネル（光学系Ｌ，Ｒ）同時にデータ送出することができないという条件があるため、その中で一番効率が良くなるように交互に点滅させているだけであり、交互点滅でなく同時点滅でも何ら問題はない。
【００６１】
前述したように本実施の形態の座標入力装置では、ＣＣＤ２０４で周囲光が受光された場合でも、タッチパネル１０１のディップ検出を確実に行うことができる。また、どのような状況でもディップ検出を同一の条件で精度良く行うことができる。
【００６２】
【発明の効果】
以上説明したように、請求項１に記載の発明にかかる座標入力装置は、入力制御手段が、２つの光照射手段を一方が点灯しているときには他方を消灯させるように交互に点灯および消灯するように制御し、点灯状態において該点灯状態にある光照射手段に対応する受光素子が受光する光量データを点灯時データとして、また、どちらか一方の光照射手段の消灯状態において該消灯状態にある光照射手段に対応する受光素子が受光する光量データを消灯時データとして、一方の受光素子から得られる点灯時データおよび消灯時データを順に入力し、続いて得られる他方の受光素子の点灯時データおよび消灯時データを順に入力する制御を行い、各受光素子の消灯時データを入力すると、設定手段が、各受光素子の消灯時データに基づいて、受光素子毎の補正用閾値データを設定し、座標検出手段が、受光素子毎の補正用閾値データを用いて、受光素子毎に閾値を補正し、受光素子毎に、該当する点灯時データと補正後の閾値とを比較して、ディップ検出を行い、その結果からタッチパネル上の座標を検出するため、周囲光の影響によってディップ検出が行えなくなることを確実に防ぐと共に、周囲光による誤検出を防ぐことができる。また、受光素子毎に閾値の補正を行えるので、周囲光を受光している部分の受光素子、受光していない部分の受光素子のそれぞれに適当な閾値を設定でき、ノイズ等による多点検出の発生も回避することができる。
【００６３】
さらに、請求項１に記載の発明によれば、入力制御手段が、一方の受光素子から得られる点灯時データおよび消灯時データを順に入力し、続いて得られる他方の受光素子の点灯時データおよび消灯時データを順に入力するので、１回の点灯時データ（または消灯時データ）の入力が行われると、続いて消灯時データ（または点灯時データ）が入力されることになり、設定手段における補正用閾値データの設定も消灯時データが入力される度に、すなわち、点灯時データを入力するのと同じ回数だけ行われる。換言すれば、常に点灯時データを入力したときの条件に近い条件の補正用閾値データを用いて、補正後の閾値を求めることができる。
【００６４】
また、請求項２に記載の発明によれば、入力制御手段が、１０ｍｓｅｃ以下の周期で消灯時データの入力を行うので、タッチパネルが押下される直前の消灯時データを入力することができる。換言すれば、常に点灯時データを入力したときの条件に近い条件の補正用閾値データを用いて、補正後の閾値を求めることができる。
【００６５】
また、請求項３に記載の発明によれば、設定手段において、各受光素子の消灯時データの値に比例した値が補正用閾値データとして設定されるので、さらに閾値の補正を精度良く行うことができる。
【００６６】
また、請求項４に記載の発明によれば、補正用閾値データおよび補正後の閾値が、予めルックアップテーブルとして記憶されているので、処理速度の低下を最低限に抑えることができる。
【図面の簡単な説明】
【図１】本実施の形態の座標入力装置の概略を説明する図である。
【図２】本実施の形態の光学ユニットの構成を示す説明図である。
【図３】本実施の形態の光学ユニットおよびＭＢＵを説明するためのブロック図である。
【図４】座標位置の検出方法をより詳細に説明するための図である。
【図５】周囲光なしの場合と周囲光ありの場合の受光光量（白データ）の違いを示す説明図である。
【図６】周囲光なしの場合と周囲光ありの場合のディップ量の違いを示す説明図である。
【図７】周囲光なしの場合と周囲光ありの場合のシェーディング補正後データを示す説明図である。
【図８】周囲光なしの場合の周囲光ありの場合のＣＣＤの消灯時データを示す説明図である。
【図９】５ｍｓｅｃ周期で光源を点滅させた場合の点灯時データと消灯時データの入力タイミングを示す説明図である。
【図１０】本実施の形態のディップ検出処理、点灯時データ・消灯時データの入力制御、閾値の補正処理を示すフローチャートである。
【図１１】本実施の形態のディップ検出処理、点灯時データ・消灯時データの入力制御、閾値の補正処理を示すフローチャートである。
【図１２】本実施の形態のディップ検出処理、点灯時データ・消灯時データの入力制御、閾値の補正処理を示すフローチャートである。
【符号の説明】
１０１  タッチパネル
１０２ａ、１０２ｂ  光学ユニット
１０３ａ、１０３ｂ、１０３ｃ  反射部（反射部材）
１０４  制御部
１０５  インターフェイス部
１０７  ＭＢＵ（マザー・ボード・ユニット）
２０１  光源
２０４  ＣＣＤ
４０２、４０４  ＬＤＵ（レーザダイオードユニット）
４０３、４０５  ＳＢＵ（センサ・ボード・ユニット）
【図１】
0004323076.tif 000002
【図２】
0004323076.tif 000003
【図３】
0004323076.tif 000004
【図４】
0004323076.tif 000005
【図５】
0004323076.tif 000006
【図６】
0004323076.tif 000007
【図７】
0004323076.tif 000008
【図８】
0004323076.tif 000009
【図９】
0004323076.tif 000010
【図１０】
0004323076.tif 000011
【図１１】
0004323076.tif 000012
【図１２】
0004323076.tif 000013