以下、添付の図面を参照して、本発明をその好適な実施形態に基づいて詳細に説明する。尚、以下の実施形態において示す構成は一例に過ぎず、本発明は図示された構成に限定されるものではない。
<実施形態1>
本願発明の座標入力装置の概略構成を、図1を用いて説明する。
図中、1L及び1Rはそれぞれ、少なくとも2個のセンサユニット2−L1及び2−L2、及び2−R1及び2−R2を装備する筺体であるところのセンサーバーである。
各々のセンサバー1L及び1R(総称する場合は、センサバー1と表記)は、図示のように矩形状の座標入力有効領域5の対向する2辺に設けられる。表示装置が仮にフロントプロジェクターとすれば、表示領域は座標入力有効領域5の範囲内であってかつ同一平面上に設定され、例えば、平面状のホワイトボード6に投影される。無論、ホワイトボード6に限定されるものではなく、壁面等であっても良い。
センサバー1L及び1Rの側面にはそれぞれ、図示のように再帰反射部4L及び4R(総称する場合は、再帰反射部4と表記)が装着されている。そして、再帰反射部4L及び4Rはそれぞれ、対向する辺に設けられたセンサバー1Lあるいは1Rのセンサユニットが投光した赤外光を再帰的に反射できるように構成してある。
センサバー1Lにはセンサユニット2−L1及び2−L2が内蔵され、センサバー1Rにはセンサユニット2−R1及び2−R2が内蔵されている。センサバー1Lに内蔵される演算制御回路3Lはセンサユニット2−L1及び2−L2を制御して、その出力結果を演算処理すると共に、センサバー1Rの演算制御回路3Rを制御する。センサバー1Rの演算制御回路3Rは、センサユニット2−R1及び2−R2を制御して、その出力結果を演算処理して、センサバー1Lの演算制御回路3Lにその結果を送信する。そしてセンサバー1Lの演算制御回路3Lは、4つのセンサユニット2−L1、2−L2、2−R1及び2−R2からの出力結果を処理して、タッチ位置を算出し、パーソナルコンピュータ等の外部機器へ結果を出力する。
図1では、センサバー1Lの演算制御回路3Lとセンサバー1Rの演算制御回路3Rとはコードで接続される構成(つまり、有線接続)となっているが、これに限定されない。例えば、無線等の通信機能を互いに搭載して、それらの通信機能を使用してデータの送受信(無線接続)を行っても良い。
尚、以後の説明にあっては、水平方向をX軸(図面右側が+)、天地方向をY軸(下側が+)として説明する。
図2はセンサユニット2−L1、2−L2、2−R1及び2−R2(総称する場合は、センサユニット2と表記する)の詳細構成を示す図である。図2(A)は図1における断面A−Aであり、図2(B)及び(C)は図中の矢印方向から見た正面図である。
図2(A)において、センサユニット2は、センサバー1に収納されており、投光部30及び受光部40で構成される。投光部30と受光部40の距離はL_pdであり、その間に再帰反射部4が図示のように設けられている。45は光透過性の部材であって、センサバー1内へのゴミ等の異物の侵入を防止するための保護部材である。
図2(B)において、投光部30は、発光部である赤外LED31、投光レンズ32、両者を固定するための接着層33で構成される。投光レンズ32は、赤外LED31の光を、座標入力面となるホワイトボード6と略平行な光束となるように構成する。そして、対向する辺に設けられたセンサバー1の再帰反射部4の全領域を照明するように、投光範囲がg〜h範囲であって、頂点が点Oの位置(センサユニット2の重心位置)の扇状の光束を出射する。この時、投光部30の光軸はf方向に設定されることになるが、その理由は後述する。
図2(C)において、受光部40は、投光部30が投光した光が、対向する辺に設けられたセンサバー1に装着されている再帰反射部4によって再帰反射された光を検出する。41は光電変換素子であるところのラインCCD、42は受光レンズ、43は視野絞り、44は赤外線通過フィルターである。また、保護部材45に赤外通過フィルター機能を設けることで、赤外線通過フィルター44を廃止してもかまわない。
受光部40の光軸はX軸方向に設定される。視野範囲はg〜h範囲であり、点Oの位置が光学的な中心位置となっている。また、受光部40は、図示のように光軸に対して非対称な光学系となっている。点Oの位置、及び方向g、方向hが略一致するように、投光部30と受光部40は、図2(A)のように重ねて配置される。また、受光部40は、入射する光の方向に応じて、ラインCCD41の画素に集光されるので、ラインCCD41の画素番号は入射する光の角度情報を表す。
また、受光部40は、座標入力有効領域5の座標入力面と略平行な視野範囲を有し、その光軸方向は、ラインCCD41の受光面の法線方向と一致するように配置されている。
図3(A)は座標入力装置の概略と投光部30及び受光部40の光学系の配置を示す図である。センサバー1Lの投光部30より対向する辺に設けられたセンサバー1Rに設けられた再帰反射部4Rに向けて照明される範囲はg〜h範囲である。そして、実際に再帰反射部4Rが装着されている範囲j〜fの方向の光が再帰反射され、受光部40で検出される。
図2(A)で模式的に示す投光部30で投光した光の光束は完全には平行とはならず、投光距離が延びるに従って、その光束幅は広くなる。従って、再帰反射部4Rで再帰反射される光の量は、再帰反射部4Rに到達する距離が長くなれば減少する。従って、投光地点Oから再帰反射部4Rまでの距離が近い方向jに比べて距離の遠い方向fは再帰反射効率が悪い。
更には、再帰反射部4Rは再帰反射面に垂直方向から入射した場合より、その角度が斜めになるに従って、再帰反射効率が低下する。言い換えれば、再帰反射部4Rに入射する光が再帰反射光として再帰反射する割合は、入射角に依存しており、方向fは最もその再帰反射効率が低下する方向と言える。
更には、受光部40の光軸は方向Xに設定されており、方向fが最も光軸となす角度が大きな方向となっている。一般的な光学レンズのレンズ特性は、光軸となす角度が大きくなるに従って性能が劣化することが知られており、例えば、方向fでの集光効率の低下により、その方向が最も暗くなる方向と言える。
以上より、仮に投光部30が方向によらず一定の強度で照明することができたとしても、方向jから帰ってくる再帰反射光に比べて、方向Jから方向fに向かうに従って、受光部40で検出できる再帰反射光は弱くなる(図3(B)参照)。
一方で、赤外LED31は光軸方向に光の放射強度が最大となるように構成されるのが一般的である。そして、光軸からのなす角度が大きくなるに従って放射強度は低下することになるが、その度合いを、光軸方向の照明強度の半分となる角度『半値角』で定義することが通常である(図3(C)参照)。
そこで、再帰反射光レベルが最も弱い方向fに投光部30の光軸を向けることで、方向fの照明強度を増大させ、相対的に方向fから方向jに向かうに従って、照明強度を低下させている。その結果、方向jから方向fまでの間、検出できる再帰反射光の強度を均一化できるようになる(図3(D)参照)ので、方向によらずより安定した信号が得られるようになる。
尚、本実施形態では、赤外LED31の放射強度分布を基に投光部30の光軸を再帰反射光レベルが最も弱い方向fに向ける構成を示しているが、投光部30の受光部40に対する傾斜角はこれに限られるものではない。例えば、投光レンズ32自体の光軸が非対称となる光学系を搭載する場合には、その光量分布も、図3(c)の放射強度分布も非対称性を有する。この場合、その非対称性を有する分布が最大となる方向と方向fとが一致するように、投光部30の受光部40に対する傾斜角を設定しても良い。
図4を用いて、センサバー1Lの構成の詳細を説明する。尚、図4では、センサバー1Lに着目して説明するが、センサバー1Rも同様の構成を有する。
上述のように、2本のセンサバー1L及び1Rを、例えば、平面状のホワイトボードや壁面に装着し、そのホワイトボードや壁面に投影されている表示画面を直接タッチして操作できるようにすることが本装置の狙いでもある。表示画面の大きさは、ホワイトボードの大きさや、壁面の大きさに応じてユーザが適宜設定するものであり、固定値では無い。更には、市販されているホワイトボードには種々のサイズのものが有り、投影画面のスクリーンとして大画面を投影できる標準サイズとしては、縦横寸法900×1200mm、900×1800mm、1200×1800mmがある。
しかしながら、この寸法はホワイトボードとして有効に使える範囲を定義しているのではなく、ホワイトボード6の4辺周囲部の筺体枠を含んだ寸法であることが多い。従って、実際に使える平面領域はそれより小さく、その大きさも製造メーカによってまちまちとなっている現状が有る。
そこで、本願発明の座標入力装置は、センサバー1に伸縮機構(2つのセンサユニットの重心を結ぶ線分方向に伸縮する伸縮部)を設けている。これにより、センサバー1の長さを、言い換えればセンサバー1に内蔵される2つのセンサユニット2のセンサ間の距離を可変にできるように構成している。実際には、例えば、縦寸法900〜1200mmのホワイトボードの平面部分の大きさ820mmから1200mmに装着できるように、センサバー1の外形長さが820mmから1200mmまで可変できる構成とする。
尚、図1では、ホワイトボードの左右2箇所にセンサバーを装着するものとして、ホワイトボードの縦寸法を基準にして伸縮量を設定しているが、これに限定されるものではない。例えば、ホワイトボードの左右でなく、上下2箇所に装着することを想定する場合には、センサバー1を伸ばした時の最大寸法はより長く設定することになる。さらには、壁面等により大きな画面を投影した場合でも使えるようにすることを想定する場合には、想定する最大表示画面の大きさに応じて、センサバーの伸縮量を設定することになる。
また、本願発明において、ホワイトボードへセンサバーを装着することを前提とすると、センサバーを左右に装着することが、上下に装着することよりもより優位と考えられる。
第1の理由は、表示装置のアスペクト比とホワイトボードのアスペクト比を考慮すると、ホワイトボード上に可能な限り表示領域を最大に設定した場合に、ホワイトボードの左右領域に空白部分(表示されない領域)ができる。従って、その空白部分にセンサバー1を設置すれば、そのことによって、表示画像を小さくしなければならないと言った障害が発生することがない。言い換えれば、より大きな画面を使うことができる操作環境を提供することが可能になる。
第2の理由は、表示画面のアスペクト比は、例えば、16:9等の横長であることが通例である。表示画面と等しい領域をタッチ操作可能とするためには、本願発明のセンサユニットを、表示画面の角部に設ける必要がある。従って、表示画面の左右にセンサバー1を設けることで、上下にセンサバー1を設ける場合より、そのセンサバー1の長さを抑えることが可能となる。
本願発明の座標入力装置は、ユーザが所望する会議室等に持ち運んで、既に会議室に設置されているホワイトボードや、会議室の壁面を使って、直ぐに使えることを狙いの一つとしている。従って、センサバー1の大きさや重量は、より小さく、より軽いことが好適であり、センサバー1の長さを抑制することができる左右に装着する仕様がより好ましい形態である。
第3の理由は、左右装着仕様とすることで、設置が容易となる点である。言い換えれば、上下装着仕様の場合、表示画面が大きくなれば上側にセンサバー1を装着する際に脚立等を用意した上での高所作業が発生してしまう。従って、上下に装着する仕様は、表示サイズによっては設置容易性に欠ける場合がある。
図4(A)は、センサバー1の概略構成を示しており、センサバー1は、上側筺体51、及び下側筺体52で構成される。53は外側パイプ、54は内側パイプで有り、外側パイプ53の内径と内側パイプ54の外形が略勘合の関係にある。外側パイプ53は上側筺体51に固定され、内側パイプ54は下側筺体52に固定される。上側筺体51と下側筺体52とでセンサバー1の長さを伸縮させようとすると、外側パイプ53と内側パイプ54が勘合関係を維持した状態でスライドする(図4(B)参照)。本願発明にあっては、これらのパイプを金属製とすることで、伸縮動作時のセンサバー1の伸縮方向や機械的強度を得ている。金属製パイプの一端は絞り加工が施され、押しつぶされた状態となり、その部分で筺体に機械的に結合されると共に、センサユニット2が装着される。
本願発明にあっては、センサバー1の伸縮方向に対して直角な方向にセンサユニット2の受光部40の光軸が配置されている。先に説明したとおり、受光部40の視野範囲は光軸に対して非対称に設けられている。このように構成することで、センサバー1の筺体を細く構成することが可能となる。この理由として、ラインCCD41、及び、ラインCCD41が実装される実装面となる回路基板(不図示)の長手方向が、センサバー1の長手方向と一致し、首尾よく配置されることによる。また、光電変換素子であるラインCCD41を実装する回路基板の実装面が、座標入力有効領域5に対して略垂直となるように構成されている。
図4(C)は、従来技術であるところの軸対称な光学系を採用している投光部の例である。受光部40に必要な視野範囲を確保するために、センサバーのスライド方向に対して、受光部40の光学系の光軸は傾いた状態にならざるを得ない。その結果、その光学系を収納するセンサバー1の幅Lwが、本願発明の実施形態のセンサバー1の幅より大きくなってしまう。このことは、筺体がより大きくなることで重量増につながり、可搬性を低下させるだけではなく、センサバーを装着するために必要な面積がより大きくなることを意味する。よって、ホワイトボード等に装着する場合には、表示装置の投影面積が小さくなってしまう。
図4(C)において、軸対称な光学系を用いて、かつセンサバー1のスライド方向に垂直な方向に受光部40の光学系を設定し、光学系で光線を折り曲げて必要な視野範囲を確保する場合を考える。当然のことながら、光路上にミラー等の新たな光学素子を設けることになり、センサユニット2がより大きくなることは避けられない。つまり、そのような構成としても、本願発明の非軸対称な光学系を用いる場合より、センサバー1の幅Lwは大きくなる。
更には、十分に大きな視野範囲を有する受光部40の光学系(例えば、光軸を中心として±50°の視野範囲を採用した場合を考える。図3(A)に於いて、受光光学系の視野範囲は方向hから方向mの範囲であり、光軸方向Xに対して、角度Xoh=角度Xom=50°の関係となる。本願発明の座標入力装置が必要とする視野範囲は、対向する辺に設けられた再帰反射部4の全域をカバーする範囲(方向fから方向jの範囲)のみである。従って、片側略半分の視野範囲(方向jから方向mの範囲)は無効な領域となる。従って、このような場合であっても、受光部40の有効な視野範囲は、実質的に非対称な光学系を採用している構成した場合の視野範囲と同等と言える。
図5(A)は演算制御回路3のブロック図である。本実施形態におけるセンサバー1Lの演算制御回路3Lとセンサバー1Rの演算制御回路3Rは、外部へのインタフェース仕様を除き、いずれも同様の回路構成であり、接続される対応するセンサユニット2の制御、演算を行う。図5(A)は、特に、センサバー1Lの演算制御回路3Lの構成を示している。
センサユニット2−L1及び2−L2のラインCCD41用のCCD制御信号は、ワンチップマイコン等で構成されるCPU61から出力され、ラインCCD41のシャッタータイミングやデータの出力制御等を行う。CCD用のクロックはクロック発生回路CLK62から各センサユニット2−L1及び2−L2に送信されるとともに、ラインCCD41との同期をとって各種制御を行うためにCPU61にも入力されている。尚、センサユニット2−L1及び2−L2の赤外LED31を駆動するLED駆動信号は、CPU61から供給される。
センサユニット2−L1及び2−L2それぞれのラインCCD41からの検出信号は、A/Dコンバータ63に入力され、CPU61からの制御によって、デジタル値に変換される。変換されたデジタル値はメモリ64に記憶され、角度計算に用いられる。そして、計算された角度情報から幾何学的なタッチ位置を算出し、外部PC等の情報処理装置にインタフェース68(例えば、USBインタフェース)を介して出力される。
先に示した通り、各センサバー1の演算制御回路3は、各々2つのセンサユニット2を制御している。仮に、センサバー1Lの演算制御回路3Lがメイン機能を果たすものとすれば、CPU61はシリアル通信部67を介して、センサバー1Rの演算制御回路3Rに制御信号を送信して、回路間の同期を行う。そして、演算制御回路3Rから、必要なデータの取得を行うことになる。
演算制御回路3L及び3R間の動作は、マスター・スレーブ制御にて動作する。本実施形態の場合、演算制御回路3Lがマスターで、演算制御回路3Rがスレーブである。尚、各演算制御回路は、マスター・スレーブのどちらにもなりうるが、ディップスイッチ(不図示)等の切替部で、CPUのポートに切替信号を入力することで、マスター・スレーブの切替が可能となっている。
マスターであるセンサバー1Lの演算制御回路3Lからは、対向する辺に設けられたセンサバー1Rのセンサユニット2−R1及び2−R2のデータを取得するために、制御信号がスレーブの演算制御回路3Rにシリアル通信部67を介して送信される。そして、センサユニット2−R1及び2−R2で得られた角度情報が算出され、シリアル通信部67を介してマスター側の演算制御回路3Lに送信される。
尚、インタフェース68は、本実施形態の場合、マスター側の演算制御回路3Lに実装されることになる。また、66は、指示具として、赤外線を発光する専用ペン(不図示)を使用した時の赤外線受光部である。65は専用ペンからの信号をデコードするためのサブCPUである。専用ペンは、ペン先が入力面を押圧したことを検知するスイッチや、ペン筺体サイド部に種々のスイッチを有する。それらのスイッチの状態やペンの識別情報を専用ペンに設けられた赤外線発光部で送信することにより、専用ペンの操作状態を検知することが可能となる。
図5(B)はセンサユニット2を動作させるためにマスター側の演算制御回路3LのCPU61が出力する制御信号、及びセンサユニット2の動作を示すタイミングチャートである。
71、72、73がラインCCD41制御用の制御信号であり、SH信号71の間隔でラインCCD41のシャッター開放時間が決定される。ICGL信号72はセンサバー1Lのセンサユニット2−L1及び2−L2へのゲート信号であり、ラインCCD41内部の光電変換部の電荷を読出部へ転送する信号である。
CCDL信号74は、センサユニット2−L1及び2−L2のラインCCD41のシャッター開放時間を示す信号である。ICGR信号73は、対向するセンサバー1Rのセンサユニット2−R1及び2−R2へのゲート信号であり、シリアル通信部67を介してセンサバー1Rの演算制御回路3Rに送信される。そして、演算制御回路3RがラインCCD41内部の光電変換部の電荷を読出部へ転送する信号を生成する。CCDR信号75は、センサユニット2−R1及び2−R2のラインCCD41のシャッター開放時間を示す信号である。
LEDL信号76及びLEDR信号77は、各センサユニット2の赤外LED31の駆動信号である。SH信号71の最初の周期でセンサバー1Lのセンサユニット2−L1及び2−L2の赤外LED31を点灯するために、LEDL信号76が各々のLED駆動回路(不図示)を経て赤外LED31に供給される。
そして、SH信号71の次の周期で、対向する辺に設けられたセンサバー1Rのセンサユニット2−R1及び2−R2の赤外LED31を点灯するために、LEDR信号77がシリアル通信部67を介して演算制御回路3Rに送信される。そして、演算制御回路3Rが各々のLED駆動回路に供給するための信号を生成する。
赤外LED31の駆動、及びラインCCD41のシャッター開放が終了した後に、ラインCCD41の信号がセンサユニット2から読み出され、後述する方法で角度情報を算出する。そして、スレーブ側の演算制御回路3Rの演算結果はマスター側の演算制御回路3Lに送信される。
以上のように動作させることで、センサバー1Lのセンサユニット2−L1及び2−L2と対向するセンサバー1Rのセンサユニット2−R1及び2−R2とは、異なるタイミングで動作するようになる。このように構成することで、対向する辺に設けられたセンサユニットの赤外光を検出することなく、センサユニット自身が発光した再帰反射光のみを検出できる。
図6を用いて、センサバー1のセンサユニット2から出力される信号について説明する。先ず、センサユニット2の投光部30の発光が無い状態である場合の受光部40の出力は図6(A)となり、発光が有る場合の受光部40の出力は図6(B)となる。図6(B)において、レベルAが検出した光量の最大レベルであり、レベルBが光を全く検出(受光)できてないレベルと言える。
センサユニット2が発光した赤外線は、対向する辺に設けられた再帰反射部4で再帰反射され、自身のセンサユニット2で検出される。従って、光出力が得られ始める画素番号Njの方向は図3における方向jであり、同様に、画素番号Nfの方向は図3における方向fということになる。画素番号Njから画素番号Nfまでの光量は、表示画面の大きさやそのアスペクト比、それに対応したセンサバー1の配置状態(特に、2つのセンサバー1間の距離)や伸縮状態等によって変化する。
本願発明の座標入力装置は、最適な光量レベルが得られるように、SH信号を制御することによって、ラインCCD41のシャッター開放時間、及び赤外LED31の露光時間を調整する。センサユニット2から得られる光量が多ければ時間を短くし、逆に少なければ時間を長く設定することができる。さらには、検出光量レベルに応じて、赤外LED31に流す電流を調整しても良い。このように出力信号を監視することで、最適な光量が得られるように構成されている。このような調整を、レベル変動が有った場合に適宜行う仕様としても良い。もしくは、センサバー1が設置され、その状態が保持されている間は、安定した一定の信号が得られるはずであるので、このような光量の調整は、設置が完了した電源投入時に行えばよい。
再び、図6に戻り、座標入力有効領域5の入力面をタッチすることで光路を遮ると、図6(C)のように、例えば、画素番号Ncで光量が検出できなくなる。本願発明では、この図6(A)〜(C)の信号を用いて、タッチした方向、言い換えると、角度を算出する。
まず、システムの起動時、システムのリセット時、あるいは自動的に、基準データを取得する。以降、一つのセンサユニット2のデータ処理について説明するが、他のセンサユニットでも同様の処理を行っている。
電源投入時、操作者によるタッチ操作が行われてない状態で、投光部30の照明無しの状態でラインCCD41の出力をA/Dコンバータ63によりA/D変換して、この値をBase_Data[N]としてメモリ64に記憶する。これは、ラインCCD41のバイアスのばらつき等を含んだデータとなり、図6(A)のレベルB付近のデータとなる。ここで、[N]はラインCCD41のCCD画素番号であり、有効な入力範囲に対応する画素番号が用いられる。
同様に、操作者によるタッチ操作が行われてない状態で、投光部30から投光した状態での光量分布を取得して記憶する。これは、図6(B)の実線で表されたデータであり、Ref_Data[N]としてメモリ64に記憶する。これにより、初期データとして2種類のデータの記憶を管理する。
その後、サンプリングを開始することになるが、タッチ操作が行われてなければ、図6(B)に示すデータは、タッチ操作が行われると、そのタッチ位置に応じて影Cが検出された図6(C)に示すデータが検出される。この投光部30の照明有りの状態で得られるサンプルデータをNorm_Data[N]と定義する。
これらのデータ(メモリ64に記憶されているBase_Data[N]とRef_Data[N])を用いて、まずは、指示具の入力の有無、遮光部分の有無の判定を行う。まず、遮光部分を特定するために、データの変化の絶対量を各々の画素において算出し、予め設定してある閾値Vthaと比較する。
Norm_Data0[N] = Norm_Data[N] - Ref_Data[N] (1)
ここで、Norm_Data0[N]は、各画素における絶対変化量であり、閾値比較により、ノイズ等による誤判定を防止し、所定量の確実な変化を検出する。そして、閾値を超えるデータが、例えば、所定数以上の連続した画素で発生した場合に、タッチ操作が有ると判定する。この処理は、差を取り比較するだけなので、短時間での演算が可能であり、入力の有無判定を高速に行うことができる。
次に、より高精度に検出するために、画素データの変化の比を計算して入力点の決定を(2)式を用いて行う。
Norm_DataR[N] = Norm_Data0[N] / (Base_Data[N] - Ref_Data[N]) (2)
この画素データ(光量分布)に対して、別途設定される閾値Vthrを適用する。そして、その閾値Vthrを横切る点に対応する、光量分布中の遮光部分に対応する光量変動領域の立ち上がり部と立ち下がり部の画素番号から、両者の中央を指示具による入力に対応する画素とすることで、角度を算出する。
図6(D)は変化の比の計算を終了後の検出結果の例である。今、閾値Vthrで検出すると、遮光部分の立ち上がり部分は、Ns番目の画素でレベルLsとなり閾値Vthrを超えたとする。さらに、Nt番目の画素でレベルLtとなり閾値Vthrを下まわったとする。
この時、出力すべきラインCCD41の画素番号Npを、立ち上がり部と立ち下がり部の画素番号の中央値として式(3)のように計算しても良いが、そうすると、ラインCCD41の画素間隔が出力画素番号の分解能になる。
Np = Ns + (Nt - Ns) / 2 (3)
そこで、より高分解能に検出するために、それぞれの画素のデータレベルとその一つ前の隣接画素のデータレベルを用い、閾値Vthrを横切る仮想の画素番号を計算する。
画素NsのレベルをLs、画素Ns−1番のレベルをLs−1、そして、画素NtのレベルをLt、画素Nt−1のレベルをLt−1とすると、それぞれの仮想画素番号Nsv、Ntvは、
Nsv = Ns-1 + ( Vthr - Ls-1 ) / ( Ls -LS-1 ) (4)
Ntv = Nt-1 + ( Vthr - Lt-1 ) / ( Lt -Lt-1 ) (5)
と計算できる。この計算式によれば、出力レベルに応じた仮想画素番号、つまり、ラインCCD41の画素番号よりも細かい画素番号を取得できる。そして、これらの仮想画素番号Nsv、Ntvの仮想中心画素Npvは、式(6)で決定される。
Npv = Nsv + ( Ntv - Nsv ) / 2 (6)
このように、閾値Vthrを越えるデータレベルの画素の画素番号とその隣接する画素番号と、それらのデータレベルから、所定レベルの閾値Vthrを横切る仮想的な仮想画素番号を計算することで、より分解能の高い検出を実現できる。
このように得られた中心画素番号から、実際の指示具の座標値を計算するためには、この中心画素番号を角度情報に変換する必要がある。
後述する実際の座標計算では、角度そのものよりもその角度における正接(tangent)の値を計算するほうが都合がよい。尚、画素番号から、tanθへの変換には、テーブル参照や変換式を用いる。変換式は、例えば、高次の多項式を用いると精度を確保できるが、次数等は計算能力及び精度スペック等を鑑みて決定すればよい。
ここで、5次多項式を用いる場合の例を示すと、5次多項式を用いる場合には係数が6個必要になるので、出荷時等にこの係数データを不揮発性メモリ等のメモリに記憶しておけばよい。今、5次多項式の係数をL5、L4、L3、L2、L1、L0としたとき、tanθは
tanθ=(L5*Npr+L4)*Npr+L3)*Npr+L2)*Npr+L1)*Npr+L0 (7)
であらわすことができる。同様なことを、各々のセンサユニットに対して行えば、それぞれの角度データを決定できる。もちろん、上記例では、tanθを計算しているが、角度データそのものを計算し、その後、tanθを計算しても構わない。
図7は、画面座標との位置関係を示す図である。センサバー1Lのセンサユニット2−L1の視野範囲は方向jから方向fの範囲であり、角度の正負を図示のように設定する。そして、センサユニット2−L1の光軸はX軸方向であり、その方向を角度0°と定義する。同様に、センサユニット2−L2の視野範囲は方向fから方向jの範囲であり、角度の正負を図示のように設定し、及び、センサユニット2−L2の光軸の方向を角度0°と定義する。そして、センサユニット2−L1の光軸中心とセンサユニット2−L2の光軸中心を結ぶ線分をY軸と定義すれば、各センサユニットの光軸はその線分の法線方向となる。また、センサユニット2−L1の光軸中心とセンサユニット2−L2の光軸中心との距離をdhと定義する。
今、点Pの位置でタッチ操作が行われた場合を想定する。
センサユニット2−L1で算出される角度はθL1であり、センサユニット2−L2で算出される角度はθL2である。この2つの角度情報と距離dhを用いて、幾何学的にタッチ位置Pの座標を算出することが可能となる。
x=dh・tan(π/2-θL2)・tan(π/2-θL1)/(tan(π/2-θL2)+tan(π/2-θL1)) (8)
y=dh・tan(π/2-θL2)/(tan(π/2-θL2)+tan(π/2-θL1)) (9)
また、一方のセンサユニットの出力がθL1=0、もしくはθL2=0の場合であっても、他方のセンサユニットが出力する角度情報に基づき、幾何学的に容易にタッチ位置を算出することが可能である。
ここで、センサユニット2−L1及びセンサユニット2−L2の視野範囲から、タッチ位置Pが図7(B)のハッチング部の範囲に有る場合のみ、そのタッチ位置を算出することが可能である。タッチ位置がその範囲に無い場合には、図7(C)、(D)、(E)に示す様に、演算に用いるセンサユニットの組み合わせを変更することで、座標入力有効領域5全域のタッチ位置を検出できるようになる。従って、各センサユニット2が検出した遮光方向の有無、及び遮光方向に基づき、座標算出に必要なセンサユニットを選択して、タッチ位置を算出する。そして、選択したセンサユニット2の組み合わせに応じて、式(8)、式(9)のパラメータを変更して、座標変換を行えばよい。
尚、図7(F)に示すように、センサユニット選択の境界領域近傍にタッチ位置Pが存在すると、この場合は、図7(B)もしくは図7(C)の状態のセンサユニットの組み合わせで、そのタッチ位置を算出できる。具体的な構成として、例えば、センサユニット2−L2の視野範囲と、センサユニット2−R1の視野範囲は、座標入力有効領域5の対角線方向で重複するように構成される。そして、重複した領域でタッチした場合には、複数通りのセンサユニットの組み合わせで座標算出が可能となる。その場合にあっては、両者の組み合わせで算出した座標値の平均値を確定座標として出力しても良い。
さて、このように算出された座標値は、本願発明の座標入力装置が持つ第1の座標系(以後、デジタイザ座標系と称す)の値であって、位置算出が可能な有効領域は図3における座標入力有効領域5である。そして、この座標入力有効領域5の範囲内にディスプレイの表示面を設けることになる。ディスプレイが仮にフロントプロジェクターとすると、図8に示すように、投影画像である表示領域8が座標入力有効領域5内に設定されることになる。図8では、d1を原点としてdx軸、dy軸からなる表示座標系である第2の座標系(以後、スクリーン座標系と称す)からなる。表示されている画像を直接タッチすることで、アイコン等のタップ操作を行うためには、デジタイザ座標系とスクリーン座標系の相関をとる必要が有る。
通常、この種の相関を得るために、表示制御を行っているパーソナルコンピュータ(PC)には、専用のアプリケーションソフトがインストールされる。アプリケーションを起動すると、表示画面には十字クロス等が表示され、ユーザにそのクロス位置をタッチするように促す。その動作を異なる位置で所定回数繰り返すことで得られるデジタイザ座標系の座標値と、十字クロスが表示されている位置のスクリーン座標系の座標値とが一致するように、座標系の変換が行われる。
本願発明の座標入力装置にあっては、アプリケーションソフトを使って十字クロスの位置を表示させてタッチさせるのではなく、表示画面の4隅頂点をタッチすることで、この座標変換を行っている。このように構成することで、その場にあるPCに接続することで、特別なソフトをインストールすることなく直ぐに使えると言う優れた効果が得られる。特に、本願発明の座標入力装置は、センサバー1を持ち運んで会議室に設置する可搬型であり、一緒にPCを持ち運ぶ必要が無いと言うことは大きな利点である。持ち運んだ先の、その場のPC、その場の表示装置を利用して、簡単に設置を完了させて直ぐに使えると言う優れた効果を発揮する。
この座標系を一致させるモードへの遷移は、例えば、センサバー1に設けられたモード遷移スイッチ(不図示)で行われる。モード遷移スイッチによりモードが遷移すると、センサバー1に内蔵されるスピーカ等の出力部により、4隅部を順次タッチするようにガイダンスする。また、隅部のタッチが完了する毎に、入力が完了したことを示すブザー音を報知しても良い。または、センサバー1に内蔵されるインジケータで、その操作を促しても良い。
さて、デジタイザ座標系での座標算出では、式(8)及び式(9)で演算に用いるセンサユニット2間の距離dhが既知である必要が有る。しかしながら、表示装置と組み合わせて使用する図1のような使用態様の場合、この距離dhは必ずしも既知である必要は無い。つまり、ディスプレイの大きさを示す4隅部の情報が、タッチ操作することにより順次デジタイザ座標系における各センサユニットでの角度情報として取得される。その結果、比による計算だけで、スクリーン座標系のタッチ位置座標を算出することが可能となるからである。
さて、本願発明の座標入力装置は、種々の表示サイズの表示面に対して、ユーザが2本のセンサバー1を装着して使用することを想定している。そして、2本のセンサバー間の相対的な位置関係が図7(A)となる(2つのセンサバーが平行、同一長さ、かつX軸方向に他方のセンサバーのセンサユニットが配置される)ことで、デジタイザ座標系での高精度な位置検出が可能となる。2本のセンサバー1がこのような配置となる仕組みを設けることも可能であるが、その場合、ユーザにそれなりの慎重な設置作業を強いることになる。仮に、2つのセンサバーを目分量で簡単に装着できれば、利便性の向上、設置時間の大幅短縮へとつながる。そこで、本願発明にあっては、利便性向上のために、座標検出モードとして第2の検出モードを有する。
図9(A)は第2の検出モードを説明するためのマスター側のセンサバー1LのCPU61が出力する制御信号、及びセンサユニット2の動作を示すタイミングチャートである。
91、92、93がラインCCD41制御用の制御信号であり、SH信号91の間隔でラインCCD41のシャッター開放時間が決定される。ICGL信号92はセンサバー1Lのセンサユニット2−L1及び2−L2へのゲート信号であり、ラインCCD41内部の光電変換部の電荷を読出部へ転送する信号である。
CCDL信号94は、センサユニット2−L1及び2−L2のラインCCD41のシャッター開放時間を示す信号である。ICGR信号93は、対向するセンサバー1Rのセンサユニット2−R1及び2−R2へのゲート信号であり、シリアル通信部67を介してセンサバー1Rの演算制御回路3Rに送信される。そして、演算制御回路3RがラインCCD41内部の光電変換部の電荷を読出部へ転送する信号を生成することになる。CCDR信号95は、センサユニット2−R1及び2−R2のラインCCD41のシャッター開放時間を示す信号である。
LEDL信号96及びLEDR信号97は、各センサユニット2の赤外LED31の駆動信号である。SH信号91の最初の周期でセンサバー1Rのセンサユニット2−R1及び2−R2の赤外LED31を点灯するために、LEDR信号97がシリアル通信部67を介してセンサバー1Rの演算制御回路3Rに送信される。そして、演算制御回路3Rが各々のLED駆動回路に供給するための信号を生成する。
そして、SH信号91の次の周期で、センサバー1Lのセンサユニット2−L1及び2−L2の赤外LED31を点灯するために、LEDL信号96が各々のLED駆動回路を経て赤外LED31に供給する。
赤外LED31の駆動、及びラインCCD41のシャッター開放が終了した後に、ラインCCD41の信号がセンサユニット2から読み出され、後述する方法で角度情報を算出する。そして、スレーブ側の演算制御回路3Rの演算結果はマスター側の演算制御回路3Lに送信される。
以上のように動作させることで、センサバー1Lのセンサユニット2−L1及び2−L2は、対向するセンサバー1Rのセンサユニット2−R1及び2−R2が発光した赤外LED31の赤外光を直接検出する。同様に、センサバー1Rのセンサユニット2−R1及び2−R2は、対向するセンサバー1Lのセンサユニット2−L1及び2−L2が発光した赤外LED31の赤外光を直接検出する。
尚、図5では、センサバー1Lのセンサユニット2−L1及び2−L2と対向するセンサバー1Rのセンサユニット2−R1及び2−R2とを異なるタイミングで動作する座標検出モードであり、これが第1の検出モードとなる。
図9(B)は、第2の検出モードで動作する場合に、センサユニット2で得られる検出信号波形を示している。対向する辺に設けられた2つのセンサユニット2の投光部30からの発光をそれぞれ受光するので、ピーク信号が2つ生成される。そして、先に述べた角度算出の方法と同様な方法で、その方向を各々算出する。尚、図中の破線は、図6(B)で示す受光部40の出力(光量分布)を示すものであり、方向Nj、方向Nfの間にピーク信号が生成されることを示している。
上述のように、ユーザが2つのセンサバー1を目分量で装着した場合であっても、高精度な位置検出を実現することが本願発明の目的の一つである。そのために、各センサユニット2が、対向するセンサバー1に収納されているセンサユニット2の投光部30の光を検出することで、対向するセンサユニット2がどの方向に位置するかを検出する。
図10を用いて、その様子を説明する。
図10において、センサユニット2−L1の光軸中心とセンサユニット2−L2の光軸中心を結ぶ線分をY軸、その法線方向をX軸とすれば、センサユニット2−L1及び2−L2の光軸はX軸と平行である。そして、対向するセンサユニット2−R1は、センサユニット2−L1から見ると角度θ1の方向であり、センサユニット2−L2から見ると角度θ3の方向である。同様に、θ1からθ8までの角度を算出することが可能であり、その結果、センサバー1Lのセンサユニット2−L1の光軸と、センサバー1Rのセンサユニット2−R1の光軸の成す角度θ9が算出される。
言い換えると、センサバー1Lとセンサバー1Rの相対的な傾きを検出することができる。更には、センサバー1の長手方向の長さが伸縮することによって変化した場合であっても、各センサユニット2間の絶対的距離を知ることはできないが、4つのセンサユニットの相対的な位置関係を取得することが可能である。そして、先に述べたディスプレイの大きさを示す4隅部の情報を、タッチ操作することで取得すれば、比による演算だけでも、スクリーン座標系での座標を高精度で算出することが可能となる。
図11は電源投入時からの初期設定処理を示すフローチャートである。
まず、投影画像である表示領域8の全領域を含む矩形状の座標入力有効領域5を形成するために、操作者によってセンサバー1がホワイトボード6に装着されると、例えば、電源投入が行われて初期設定を行う(ステップS101)。
次に、CPU61のポート設定、タイマ設定等の座標入力装置に係る各種初期化を行うとともに、光電変換素子に残っている余分な電荷を除去する等のラインCCD41の初期化も行う(ステップS102)。次に、ラインCCD41が検出する光量の最適化を行う。上述のように、表示領域8の大きさは、ホワイトボード6の大きさにより一意では無い。そのような場合であっても、センサバー1の長さを伸縮させたり、センサバー1間の距離が適宜ユーザによって設定される。従って、装着の状態によって、検出される光の強度は異なるので、ラインCCD41のシャッター開放時間や赤外LED31の点灯時間、もしくは赤外LED31の駆動電流の設定を含む第2の検出モードで動作設定を行う(ステップS103)。次に、ラインCCD41の出力信号を取り込む(ステップS104)。
ここで、ステップS103における動作設定とは、対向するセンサユニット2から直接光を受ける動作の状態(図9における第2の検出モード)であって、4つのセンサユニット2の相対的な位置関係を導出することを目的とする。ステップS103で、仮に最初の動作設定を光量が最大に得られるように設定すると、ステップS105において、光が検出できない状態とは、センサユニット2の受光部40の視野範囲に、対向する位置にあるセンサユニット2が位置していないということになる。つまり、ユーザによるセンサバー1の配置/設置が不適な状態にあり、ステップS106でその旨を報知して、センサバーの再設置を促す。そして、ユーザによる再設置が完了すると、再び、ステップS101を開始することになる。尚、ステップS105及びステップS106で検出される信号は、図9(B)に示すような信号となり、本実施形態の場合は、2つの信号が出力されている状態が正常状態と言える。
次に、検出信号の波形のチェックを行う(ステップS107)。対向する位置にあるセンサユニット2の光が強すぎる場合、例えば、検出信号の波形(波形レベル)の少なくとも一部が所定の閾値を超える場合(ステップS107でNO)、ステップS103に戻り、例えば、露光時間をより短くする等の再設定を行う。そして、今度、ステップS107でチェックされる検出信号波形は、より光強度が弱い状態となっているはずである。そして、その信号レベルが適正である場合(ステップS107でYES)、例えば、検出信号波形の少なくとも一部が所定の閾値以下である場合、ステップS108に進む。この動作を、各センサユニット(本実施形態の場合、4つ)で実行し、すべての信号が最適化されると、センサユニット2の相対的な位置関係を算出する(ステップS108)。
ステップS109以降では、センサユニット2が投光した赤外光が、対向するセンサバー1に設けられた再帰反射部4で再帰反射され、その光を自身の受光部40で検出した時の信号レベルを最適化する。上述したとおり、センサバー1の配置は一意では無く、その配置に応じた検出レベルを最適化することで、安定した信号を得ることを目的とする。設定する項目は、ラインCCD41のシャッター開放時間や赤外LED31の点灯時間、もしくは赤外LED31の駆動電流の設定を含む第1の検出モードで動作設定を行う(ステップS109)。ステップS109で、仮に最初の動作設定を光量が最大に得られるように設定すると、その時のラインCCD41の出力信号を取り込む(ステップS110)。
取り込まれた出力信号は、照明時のデータであり、図6(B)の様な波形となる。光が強すぎると、ラインCCD41のダイナミックレンジの範囲を超え、出力が飽和することになるので、正確な角度を算出することが困難となる。その場合は、ステップS111で、検出信号の波形が不適と判定され(ステップS111でNO)、ステップS109に戻り、検出信号の波形(波形レベル)がより小さくなるように、再設定が行われる。再帰反射光を検出するので、ステップS103〜ステップS108での処理(つまり、第2の検出モード)でセンサユニット2の投光を直接受光部40で検出する場合と比べて、格段に投光する光量が大きくなるように設定することになる。
そして、ステップS111で、波形レベルが最適と判断される場合(ステップS111でYES)、照明無しの状態の信号Base_Data[N](図6(A)参照)を取得してメモリ64に記憶する(ステップS112)。次に、照明有りの状態の信号Ref_Data[N](図6(B)参照)を取得してメモリ64に記憶する(ステップS113)。
このようにして、全てのセンサユニットでのデータが取得されると、一連の初期設定処理が完了する。
図12(A)は初期設定処理後の通常のサンプリング動作を示すフローチャートである。
図11の初期設定処理を実行する(ステップS101)。その後、通常の取込動作(第1の検出モード)として、センサユニット2が投光した赤外光が、対向するセンサバー1に設けられた再帰反射部4で再帰反射され、その光を自身の受光部40で検出した時の信号を検出する(ステップS201)。その時のデータは、Norm_data[N]であり、仮にタッチ操作があって光路を遮ると、図6(C)のように、画素番号Ncの辺りで光信号が検出できなくなる。
いずれかのセンサユニット2で、このような光の遮光部分が生成されたか否か、つまり、入力の有無を判定する(ステップS202)。入力が無いと判定される場合(ステップS202でNO)、再度、ステップS201に戻り、サンプリングを繰り返すことになる。一方、入力が有ると判定される場合(ステップS202でYES)、出力信号に遮光部分が生成されているセンサユニットを選択する(ステップS203)。その選択したセンサユニットを用いて、遮光部分が生成されている方向(角度)を各々算出する(ステップS204)。算出した角度に基づいて、デジタイザ座標系でのタッチ位置座標を算出する(ステップS205)。算出したタッチ位置座標を変換パラメータを用いてスクリーン座標系に変換して、パーソナルコンピュータの外部機器に、その座標値を出力(送信)する(ステップS206)。
尚、この際に、入力面をタッチしている状態であるか否かを示すタッチダウン信号/タッチアップ信号をあわせて出力しても良い。この種の座標入力装置にあっては、タッチ面をタッチすることで、光路は100%遮断されることになるが、タッチ状態から少しずつ浮かせることによって、少しずつ光が透過するようになる。従って、光がどの程度遮られたかを演算することで、タッチ状態にあるのか、タッチはしてないが、光路を遮っている(角度演算は可能であり、その場合でもその位置を演算可能)状態であるのかを、閾値を設定することで判定できる。
センサバー1に構成されているスイッチ等の切替部の操作により、デジタイザ座標系とスクリーン座標系を一致させるためのキャリブレーションモード(第2の検出モード)に遷移することになる。そこで、図12(B)を用いて、そのキャリブレーションモードのフローチャートを説明する。
キャリブレーションモードは、センサバー1を装着した直後、あるいは設置完了後であっても、何らかの拍子でディスプレイの表示位置がずれてしまった場合に行われる。キャリブレーションモードに遷移すると、先ずは、初期設定処理を行う(ステップS101)。これは、センサバーが使用中に設置状態がずれた場合を想定して、光出力の最適化、センサユニットの位置ずれを補正することになる。
そして、ユーザによる表示領域8の4隅頂点のタッチ操作を行わせるために、ステップS201及びステップS202を経て、そのひとつの位置のタッチが行われたかを判定する。ステップS203及びステップS204で、必要な角度情報を算出する。ステップS205で、算出した角度情報に基づいて、デジタイザ座標系でのタッチ位置座標を算出する。その後、データの取得が完了したことを報知する(ステップS301)。この報知は、例えば、完了を示すビープ音を出力する。
次に、表示領域8の4隅頂点の全ての情報(タッチ位置座標)の取得が完了したか否かを判定する(ステップS302)。取得が完了していない場合(ステップS302でNO)、ステップS201に戻る。一方、取得が完了している場合(ステップS302でYES)、算出した4つのデジタイザ座標系でのタッチ位置座標の位置関係を認識する(ステップS303)。
例えば、図8におけるセンサバー1Lは表示領域8に対して左側に、センサバー1Rは表示領域8に対して右側に配置するように左右専用仕様とする。その場合、ステップS205で算出した4つのデジタイザ座標系でのタッチ位置座標d1、d2、d3、d4の位置関係、つまり、上下左右の位置関係を、ステップS303において、一意的に認識することができる。
前述のように、従来では、デジタイザ座標系とスクリーン座標系の相関(対応関係)をとるために、専用のアプリケーションにより予め定まった順番に表示された十字クロス位置をタッチすることで、デジタイザ座標系とスクリーン座標系の相関をとっている。従来、このデジタイザ座標系の座標をスクリーン座標系の十字クロス位置の座標に単純に対応させればよかったので、本発明のように、デジタイザ座標とスクリーン座標間の相互位置関係を認識する必要はなかった。
しかしながら、本発明のような、表示領域8の4隅頂点をユーザにタッチさせその座標を用いて座標変換する手法においては、ユーザにタッチする位置、順番が委ねられており、ユーザがどの場所をどのタイミングでタッチしたか不明である。そのためには、まず、上記の様に、ステップS303で、デジタイザ座標系でのタッチ位置座標の位置関係を本装置自身で認識する必要がある。つまり、ステップS303において、入力点のそのデジタイザ座標系での上下左右の位置関係を認識し、それに基づいて、その位置に対応するスクリーン座標系の上下左右の4隅頂点座標に対応付ける。
そして、この対応付けに基づいて、デジタイザ座標系からスクリーン座標系へと変換するための変換パラメータを算出して、通常動作に戻ることになる(ステップS304)。そして、ここで算出された変換パラメータは、ステップS206における座標変換で使用されることになる。
尚、上記実施形態では、センサバー1L及び1Rの左右の特定は仕様に寄るとしたが、センサバーの位置の検出機能はこれに限定されるものではなく、更には、左右に限らず上下に配置する場合にも対応しても良い。例えば、センサバー1L及び1Rに角度センサ、角速度センサ、地磁気センサ、識別切替スイッチ等の位置検出部を設けても良い。
以上説明したように、実施形態1によれば、座標入力有効領域内に形成される表示領域の4隅頂点をユーザがタッチした座標の位置関係を認識して、座標入力有効領域の座標系をその表示領域の座標系に関連付けさせるキャリブレーションを行う。これにより、その場に、ある情報処理装置に接続することで、特別なソフトウェアをインストールすることなく直ぐに、その表示領域における座標入力環境を提供することができる。従って、常に、専用のソフトウェアをインストール済の情報処理装置を持ち運ぶ必要が無くなり、あるいは、その場での専用のソフトウェアのインストール作業が不要となり、任意の場所で容易に座標入力環境を構築することができる。
つまり、座標入力装置の座標系(デジタイザ座標系)と表示装置の座標系(スクリーン座標系)の一致(キャリブレーション)作業を、パーソナルコンピュータを介在させること無く行える。
<実施形態2>
実施形態1では、表示領域8が座標入力有効領域5の範囲内に収まる場合を想定して説明しているが、ユーザが表示領域8を座標入力有効領域5の範囲内に収まらないように設置している場合についての構成を実施形態2として説明する。そのような場合の一例を、図13を用いて説明する。
図13では、表示領域8の4隅頂点の内、左下の頂点の座標d3の近傍領域が、座標入力有効領域5の左下にはみ出して配置されている。この場合、キャリブレーションモードにおいては、表示領域8の4隅頂点の内、左下の頂点の座標d3をタッチした場合に、座標入力有効領域5の範囲外なので、デジタイザ座標系でのタッチ位置座標検出ができず、キャリブレーションが完結しない。従って、その場合には、ユーザに警告を出し、表示領域8の位置をずらし、あるいは、センサバーの位置をずらし、表示領域8が座標入力有効領域5の範囲内となるようにする必要がある。
そこで、実施形態2では、キャリブレーションモードにおいて、このような表示領域8の表示位置ずれを検出して、補正するための表示位置ずれ検出処理を実行する。この表示位置ずれ検出処理は、実施形態1の図12(B)の処理の応用となり、これについて、図14を用いて説明する。
図14は実施形態2のキャリブレーション処理を示すフローチャートである。
尚、図14において、実施形態1の図12(B)と共通の処理については、同一のステップ番号を付加し、その詳細については省略する。
まず、センサバー1に構成されているスイッチ等の切替部の操作により、デジタイザ座標系とスクリーン座標系を一致させるためのキャリブレーションモードに遷移し、初期設定処理を行う(ステップS101)。
そして、ユーザによる表示領域8の4隅頂点のタッチ操作を行わせるために、ステップS201及びステップS202を経て、そのひとつの位置のタッチが行われたかを判定する。
例えば、図13で座標入力有効領域5の範囲内の表示領域8の4隅頂点位置の内、d1、d2、d4をタッチした場合には、ステップS202において問題なく入力ありと判定される。しかしながら、座標入力有効領域5の範囲外の表示領域8の4隅頂点であるd3をタッチした場合には、入力が有ると判定されない。
つまり、入力が無いと判定される場合(ステップS202でNO)、一定時間内に表示領域8の表示領域8の4隅頂点をそれぞれ入力させるためのカウンタTの値を1インクリメントする(ステップS305)。次に、カウンタTの値が一定時間Tlimitを経過しているか否かを判定する(ステップS306)。一定時間Tlimit経過していない場合(ステップS306でNO)、ステップS201に戻り、再度、ステップS202で、入力の有無を判定する。一方、一定時間Tlimit経過している場合(ステップS306でYES)、4隅頂点の各頂点の座標入力動作の完了の有無をカウントするためのカウンタSを1インクリメントする(ステップS307)。4隅頂点の内の1つの頂点の座標入力動作が完了したことを報知する(ステップS301)。
一方、入力が有ると判定される場合(ステップS202でYES)、座標入力有効領域5範囲内の表示領域8の4隅頂点の1つの頂点に対する座標入力であるから、従来と同様に、ステップS203及びステップS205で、必要な角度情報を算出する。そして、カウントSを1インクリメントする(ステップS307)。4隅頂点の内の1つの頂点の座標入力動作が完了したことを報知する(ステップS301)。
次に、カウンタS=4であるか否かを判定する(ステップS309)。カウンタS=4でない場合(ステップS309でNO)、ステップS201に戻る。一方、カウンタS=4である場合(ステップS309でYES)、ステップS205に進む。
ここまでの処理により、仮に、表示領域8の4隅頂点の内、座標入力有効領域5の範囲外の頂点をユーザがタッチした場合にも、タッチの入力順によらず、座標入力有効領域5の範囲内の他の頂点の角度情報についてはすべて取得することができる。換言すれば、座標入力有効領域5の範囲外の頂点については、座標入力動作がなされても、その角度情報については取得されない。
次に、算出した角度情報に基づいて、デジタイザ座標系でのタッチ位置座標を算出する(ステップS205)。次に、表示領域8の4隅頂点の全ての情報(タッチ位置座標)の取得が完了したか否かを判定する(ステップS302)。取得が完了している場合(ステップS302でYES)、ステップS303及びステップS304を経て、通常動作に戻る。つまり、表示領域8が座標入力有効領域5の範囲内の場合には、実施形態1と同様に、ステップS302で、表示領域8の4隅頂点の全てのタッチ位置座標が取得できている。そのため、ステップS303で、算出した4つのデジタイザ座標系でのタッチ位置座標の位置関係(対応付け)を認識する。そして、この対応付けに基づいて、デジタイザ座標系からスクリーン座標系へと変換するための変換パラメータを算出して、通常動作に戻ることになる(ステップS304)。
一方、取得が完了していない場合(ステップS302でNO)、つまり、表示領域8の一部が座標入力有効領域5の範囲外の場合には、4隅頂点の全てのタッチ位置座標が取得できていないので、表示位置ずれ検出ルーチンに移る(ステップS308)。このように、ステップS302では、表示領域8の4隅頂点それぞれに対する指示位置の座標の内、指示位置を検出できなかった頂点である未入力点の有無を検出する(未入力点検出部)。そして、未入力点が検出された場合、未入力点に対応する頂点以外の頂点に対する指示位置の座標から、該未入力点の座標を推定する処理(表示位置ずれ検出ルーチン)を実行することになる。
この表示位置ずれ検出ルーチンについて、図15を用いて説明する。
図15は表示位置ずれ検出ルーチンの詳細を示すフローチャートである。
まず、算出された表示領域8の頂点に対応するタッチ位置座標から、検出できなかった残りの頂点の座標(未入力座標値)を推定する(ステップS3081)。例えば、図13において、表示領域8の4隅頂点位置であるd1、d2、d4の座標値から表示領域8の縦横寸法が算出されるので、一意的に残りの頂点d3の座標値を導出することができる。通常の場合、アスペクト比は未知であるので、検出点は3点必要である。
しかしながら、アスペクト比が既知である場合には、検出された座標が3点の場合のみならず2点の場合でも、未入力点の算出が可能な場合がある。例えば、図16の場合の様に、検出された座標がd1、d2の2点のみの場合であっても、未入力点は、図の位置のd3、d4の座標として算出可能である。この算出処理は、下記の通りである。
まず、第1の候補として、d1、d2が表示領域の一辺を形成すると仮定して、図16のd3、d4の座標が算出される。更に、候補として、線分d1d2に対して線対称位置のd3’、d4’も候補となる。しかしながら、この場合には、d3’の座標は座標入力有効領域5の範囲内になっているので、本来、d3’の座標は検出されているはずで、実態と矛盾することになり、d3’、d4’は候補から除外する。
一方、d1、d2が対角の表示領域の対角の頂点を形成すると仮定すると、図17で示される表示領域を形成する頂点d3”、d4”の座標が算出される。しかし、この場合にも、d3”の座標は座標入力有効領域5の範囲内になっているので、本来、d3”の座標は検出されているはずで、実態と矛盾することになり、d3”、d4”は候補から除外する。
従って、検出された座標がd1、d2の2点のみの場合であっても、この場合には、未入力点は、図16におけるd3、d4の座標であると推定することができる。但し、検出された座標が2点のみの場合、未入力点の候補が複数発生し、絞りこめない場合がある。そこで、未入力点の候補が確定するか否かを判定する(ステップS3082)。確定しない場合(ステップS3082でNO)、センサバーの配置、あるいは表示領域8の表示位置の不良の警告を報知する(ステップS3083)。
一方、未入力点の候補が確定する場合(ステップS3082でYES)、未入力点の座標により、センサバー1の設置位置、或は、表示領域8の表示位置を修正するための移動方向を算出して、修正情報として生成する(ステップS3084)。
図13の場合、未入力点であるd3の座標は、デジタイザ座標系の座標入力有効領域5の左下方に位置していることが認識される。従って、この位置関係を修正するために、センサバー1の下方移動・伸長方向(図中矢印A)、或は、表示位置の上方への移動方向(図中矢印B)を修正情報として生成する。この場合、修正情報としては、修正方向のみならず、修正するために十分な移動距離を修正情報として算出しても良い。
そして、この修正情報をセンサバー1上の報知部(不図示(例えば、表示部、或は、音声出力部)でユーザへ報知する(ステップS3085)。この報知は、例えば、センサバー1の位置(あるいは表示領域8の表示位置)の移動を案内する音声ガイダンスや、その旨を示す文字情報を表示することで行う。ユーザは、この報知を受けて、センサバー1の位置(あるいは表示領域8の表示位置)の修正(表示領域8の4隅頂点の入力)を行うために、ステップS101に戻ることになる。
これにより、ステップS308の表示位置ずれ検出ルーチンは終了し、図14のステップS309に戻り、カウンタSを0にリセットし、キャリブレーションモードの遷移前に戻る。
以上説明したように、実施形態2によれば、ユーザ設定により生じた座標入力有効領域5内に表示領域8が収まっていない場合において、キャリブレーション時にユーザに座標入力有効領域5内に表示領域8を収めるための指示を報知することができる。
<実施形態3>
実施形態2では、検出できたタッチ位置座標を算出し、そのタッチ位置座標間の関係より、未入力点の座標を算出する構成としているが、これに限定されない。例えば、検出できたタッチ位置座標を算出せずに、遮光情報、角度情報のみで概略の表示領域の位置ずれを修正するための修正情報を算出するようにしても良い。
<<本願発明の特徴的な構成及び効果>>
上述のように、本願発明は、略矩形状の座標入力有効領域に対する指示位置の座標を算出する座標入力装置であって、センサユニットを少なくとも2つ内蔵する第1の筺体及び第2の筺体(センサバー)を有する。各々の筺体には入射した光をもとの方向に戻すための再帰反射部が設けられ、略矩形状の座標入力有効領域の対向する2辺に、第1の筺体及び第2の筺体が各々設けられる。
各々の筺体に設けられたセンサユニットは、対向する辺に設けられた筺体の再帰反射部に向かって赤外線を投光する投光部と、該再帰反射部で再帰反射された光を受光する受光部よりなる。座標入力有効領域をタッチすることによって光路が遮られ、少なくとも2つのセンサユニットは、タッチ位置に応じた光が遮られた方向を検知することができる。少なくとも2つのセンサユニットが検出した角度情報と、当該2つのセンサユニット間の距離情報に基づき、幾何学的な演算によりタッチ位置を算出できる。
第1の筺体及び第2の筺体は座標入力面であるところのスクリーン面に装着、取り外し可能にするための着脱部が設けられ、第1の筺体及び第2の筺体を持ち運ぶことができるように構成される。
持ち運ぶことを考慮すると、第1の筺体及び第2の筺体はより小さく小型に、より軽量に構成されることが望ましい。本願発明のセンサユニットの受光光学系は予め指定された範囲(約50°程度)の視野範囲を有し、受光光学系の光軸は光電変換素子の画素の法線方向に設定されるものの、視野範囲は光軸対称には設定されておらず、光軸非対称な光学系を有する。そして、その光軸(もしくは光電変換素子の画素の法線方向)は、筺体に収納されている少なくとも2つのセンサユニット(受光光学系の光軸中心)を結ぶ直線と垂直になるように設定されている。このように構成することで、センサユニットを格納する筺体を、より小型に構成できる。
スクリーン面の大きさは種々のサイズ、あるいはアスペクト比が想定され、スクリーン面の大きさ、形状に合わせて、座標入力有効領域が設定されるのが好ましい。従って、第1の筺体及び第2の筺体には伸縮部が設けられ、伸縮量を調整することによって筺体内に設けられるセンサユニットの距離が可変し、スクリーン面の大きさに応じてセンサユニットを適宜配置できるように構成される。
さらには、センサユニットを具備する第1の筺体及び第2の筺体を装着する際、両者の相対的な位置関係が精密に位置決めされなくても、高精度にタッチ位置の検出が行えることが好ましい。従って、筺体を装着した際に、各々の筺体に格納されているセンサユニット間の相対的な位置情報を検出する検出部を設け、ユーザが意識することなく簡単に筺体を装着できる。
さらには、座標入力装置が出力した情報を受信する、例えば、パーソナルコンピュータ等に、専用のドライバソフトをインストールする必要が無ければ、どのパーソナルコンピュータ等に接続しても直ぐに使えることになる。従って、座標入力装置の座標系(デジタイザ座標系)と表示装置の座標系(スクリーン座標系)の一致(キャリブレーション)作業を、パーソナルコンピュータを介在させること無く行えるように構成している。
以上の座標入力装置における本願発明の主要部分は以下のようになる。
座標入力有効領域に対する指示位置を検出する座標入力装置であって、
前記座標入力有効領域に対して平行に向けて投光する投光手段と、
前記投光手段が投光した光を再帰的に反射する反射手段と、
前記投光手段あるいは前記反射手段からの光を受光する受光手段と、
それぞれが、1つの前記投光手段と1つの前記受光手段とを備えるセンサユニットを少なくとも2つ内蔵する第1の筺体と第2の筺体であって、前記第1の筺体と前記第2の筺体にはそれぞれ、互いの前記センサユニットの前記投光手段からの光を再帰反射するように前記反射手段が設けられていて、かつ当該第1の筺体と当該第2の筺体は、前記座標入力有効領域を構成する矩形状の領域の対向する2辺に配置されている、前記第1の筺体と前記第2の筺体と、
前記第1の筺体と前記第2の筺体それぞれの前記受光手段から得られる光量分布の変動に基づいて前記座標入力有効領域の前記指示位置の座標を計算する計算手段と、
前記座標入力有効領域に設定される表示装置からの投影画像である表示領域の4隅頂点それぞれに対する指示位置の座標を前記計算手段によって計算する制御手段と、
前記制御手段によって計算した前記表示領域の4隅頂点それぞれに対する指示位置の座標を用いて、当該座標入力装置の前記座標入力有効領域における第1の座標系と、前記表示領域における第2の座標系との相関をとるキャリブレーションを実行するキャリブレーション手段と
を有する。
以上説明したよう、本願発明によれば、タッチ位置の検出に必要な構成要素が、2つの筺体内に全て収納され、当該筺体を、例えば、平面状のホワイトボード、壁面等に装着することで、タッチ位置の検出が可能となる。つまり、本願発明の座標入力装置は、座標入力有効領域であるタッチ入力面を必須の構成要素として持っていない。従って、たとえ座標入力有効領域が大型(例えば、90インチクラス)になるとしも、当該2つの筺体のみを持ち運ぶことで、何処でもその操作環境を実現することができる。更には、タッチ入力面を構成要素として具備していないので、製品コストは当然のことながら大幅に低下させることができる。言い換えれば、ユーザが所有している既存のホワイトボード等を活用することで、導入コストを低下させることができる大きな効果が得られる。
更には、構成要素が2つの筺体に全て具備されているので、ユーザによるホワイトボードへの装着、配線等も容易にできる効果が得られる。無論、持ち運ぶことを想定すれば、より軽量/小型の筺体で有ることが好ましく、センサユニットの受光光学系を光軸非対称とすることで、筺体の軽量化/小型化を実現し、可搬性を向上させることができる。
更には、例えば、既存のホワイトボードに装着することを考慮すると、製造メーカ、製品の型番等により、そのサイズは種々存在する。従って、ユーザが既に購入して使用しているホワイトボードを活用して使用できると言うことは、導入コストの削減、あるいは資源の有効利用と言う点で優れた効果が得られる。
更には、高精度な位置検出を可能とする座標入力装置にあって、装着する筺体をそこそこの精度で装着可能とすることで、設置の煩わしさ、設置時間を大幅に削減する効果も得られる。
例えば、ホワイトボード、パーソナルコンピュータ、フロントプロジェクターが既に導入されている会議室に、2つの筺体からなる当該座標入力装置を運び入れて、画面を直接タッチして操作する環境を構築することを想定する。
この時、会議室に既に導入されているパーソナルコンピュータを直ぐに使えることが好ましく、座標入力装置を動作させるためにドライバー等のインストールを不要にすることで、設置容易性、可搬性が向上する。つまり、当該座標入力装置と共に、ドライバー等が既にインストールされている専用のパーソナルコンピュータを持ち運ぶ必要が無くなる。もしくは、会議室のパーソナルコンピュータへのインストール作業が不要であることから、余分なセットアップ時間がかからず、直ぐに会議を始めることができる優れた利点が得られるようになる。
また、座標入力有効領域に設定される表示領域の4隅頂点をユーザがタッチしたタッチ位置座標(座標入力装置の座標系)の位置関係を認識して、表示領域の座標系に関連付けさせるキャリブレーションを行う。これにより、その場にある情報処理装置に接続することで、特別なソフトウェアをインストールすることなく、座標入力装置を直ぐに使うことが可能となる。従って、常に専用のインストール済の情報処理装置を持ち運ぶ必要が無くなり、或は、その場のPCのインストール作業が不要となる、と言う優れた効果が得られる。
尚、本発明の座標入力装置における処理(フローチャート)は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステムまたは装置に供給し、そのシステムまたは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。