JP2017040979A - 情報処理装置、情報処理方法及びプログラム - Google Patents
情報処理装置、情報処理方法及びプログラム Download PDFInfo
- Publication number
- JP2017040979A JP2017040979A JP2015160601A JP2015160601A JP2017040979A JP 2017040979 A JP2017040979 A JP 2017040979A JP 2015160601 A JP2015160601 A JP 2015160601A JP 2015160601 A JP2015160601 A JP 2015160601A JP 2017040979 A JP2017040979 A JP 2017040979A
- Authority
- JP
- Japan
- Prior art keywords
- coordinate
- cpu
- coordinate data
- display
- point
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/03—Arrangements for converting the position or the displacement of a member into a coded form
- G06F3/041—Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means
- G06F3/042—Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means by opto-electronic means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/03—Arrangements for converting the position or the displacement of a member into a coded form
- G06F3/041—Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means
- G06F3/0416—Control or interface arrangements specially adapted for digitisers
- G06F3/0418—Control or interface arrangements specially adapted for digitisers for error correction or compensation, e.g. based on parallax, calibration or alignment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/03—Arrangements for converting the position or the displacement of a member into a coded form
- G06F3/041—Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means
- G06F3/042—Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means by opto-electronic means
- G06F3/0425—Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means by opto-electronic means using a single imaging device like a video camera for tracking the absolute position of a single or a plurality of objects with respect to an imaged reference surface, e.g. video camera imaging a display or a projection screen, a table or a wall surface, on which a computer generated image is displayed or projected
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2203/00—Indexing scheme relating to G06F3/00 - G06F3/048
- G06F2203/041—Indexing scheme relating to G06F3/041 - G06F3/045
- G06F2203/04107—Shielding in digitiser, i.e. guard or shielding arrangements, mostly for capacitive touchscreens, e.g. driven shields, driven grounds
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Position Input By Displaying (AREA)
Abstract
【課題】連結部(重複領域)の精度を維持し、簡便に選択位置と表示位置との位置合わせを可能とすることを目的とする。【解決手段】表示装置の画面に第1のポイントを表示する第1の表示手段と、第1の表示手段により表示された第1のポイントを選択されたことに基づき検出された座標データを座標検出領域が重複し重複領域を有するよう構成された複数の座標入力装置から取得する第1の取得手段と、第1の取得手段により取得された座標データに基づき、画面の、重複領域に対応する位置に第2のポイントを表示する第2の表示手段と、第2の表示手段により表示された第2のポイントを選択されたことに基づき検出された座標データを、複数の座標入力装置から取得する第2の取得手段と、第1の取得手段により取得された座標データと第2の取得手段により取得された座標データとに基づいて、選択位置と、表示位置との位置合わせを行う位置合わせ手段と、を有する。【選択図】図19
Description
本発明は、情報処理装置、情報処理方法及びプログラムに関する。
座標入力面に、指示具(例えば、専用入力ペン、指等)によって指示して座標を入力することで、接続されたコンピュータの制御をしたり、文字や図形等を書き込んだりする座標入力装置が存在する。従来、この種の座標入力装置としては、一般に、タッチパネル等の入力部を用いて表示を行う電子機器又はシステムが知られている。そして、タッチパネル等からのタッチ入力によって、直感的な入力操作が可能なアプリケーションを用いたユーザーインターフェースが開発されている。座標入力方式としては、抵抗膜を用いたもの、光を用いたもの等、様々なものがあるが、遮光位置を検出して座標を算出する方式を、以下、遮光方式と称する。
遮光方式の座標入力装置においては、座標入力領域を制限無く大きくできるわけではなく、受光部では、座標入力領域内の遮蔽物の指示位置を算出できる程度の光量分布を得る必要がある。光量は、光を照明する部分の発光強度、再帰反射部材の再帰反射効率、受光部の受光感度等により決定される。したがって、1面のサイズは、座標入力装置の各構成要素の制限によって決まることになる。そのため、大画面化のための実用的なシステム構成として、1面の座標入力装置のシステムを横(又は縦)に並べるように組み合わせて、画面を横長(又は縦長)にして大型化する構成が考えられる。
特許文献1には、重なった領域を持つ複数のタッチ装置で構成された位置入力システムにおいて、複数のタッチ装置領域をまたがって移動するポインタの位置を追跡する構成が開示されている。特許文献1では、重なっている領域に対しては、定められたロジック(加重平均等)に従って処理されている。
特許文献1には、重なった領域を持つ複数のタッチ装置で構成された位置入力システムにおいて、複数のタッチ装置領域をまたがって移動するポインタの位置を追跡する構成が開示されている。特許文献1では、重なっている領域に対しては、定められたロジック(加重平均等)に従って処理されている。
タッチパネル等により、表示装置の表示画面をタッチすることで操作するユーザーインターフェースは、直観的であり誰もが使えるということで、携帯機器等で一般化されている。また、より大きな表示画面を有する装置であっても、そのような操作ができることが望まれている。この様なタッチパネル等によるタッチ入力を用いた電子機器等においては、座標ズレ等の要因によって、表示画面上の目標とする座標とこの目標とする座標にタッチ入力した際の検出座標とにズレ(座標ズレ)が生じる。そのため、この様なタッチパネルでは、通常、その操作前に、タッチパネル座標から、表示装置の表示座標へ変換するための校正(キャリブレーション)が行われる。この様な座標ズレを補正するため、電子機器等には、所謂キャリブレーションメニューが搭載されている。ユーザーは、このキャリブレーションメニューを用いて、座標ズレの補正を行うことができるようになっている。
光学遮光方式の座標入力装置では、少なくとも2つのセンサユニットが出力するタッチ位置の遮光方向(=角度)とそのセンサユニット間の距離情報とに基づき幾何学的にタッチ位置を算出している。したがって、高精度でタッチ位置を検出するためには、高精度でセンサユニットを位置決めして取り付けなければならない。しかしながら、センサユニットの取り付けは、部品等の寸法ばらつき、又は使用環境等、正確な位置を出すことができない場合があり、その結果、検出誤差が生じるため、座標ズレが生じる原因となっていた。
光学遮光方式の座標入力装置では、少なくとも2つのセンサユニットが出力するタッチ位置の遮光方向(=角度)とそのセンサユニット間の距離情報とに基づき幾何学的にタッチ位置を算出している。したがって、高精度でタッチ位置を検出するためには、高精度でセンサユニットを位置決めして取り付けなければならない。しかしながら、センサユニットの取り付けは、部品等の寸法ばらつき、又は使用環境等、正確な位置を出すことができない場合があり、その結果、検出誤差が生じるため、座標ズレが生じる原因となっていた。
また、入力面を大画面をとするために、複数の入力面を連結させる構成においては、各々の入力面の座標算出精度に依存して、特に連結領域(重複領域)で、各入力面に跨って入力された場合、少なからず段差や座標ズレが発生してしまう。上述した複数の入力面を連結させる構成において、キャリブレーションの操作は、例えば、入力面ごとのキャリブレーション操作を行うこととなる。したがって、複数面で大画面を構成する場合には、必然的に入力ポイント数が多くなるため、ユーザーの操作に係る煩わしさが生じてしまうこととなる。
また、キャリブレーション操作は、その装置を使用する前に行う以外にも、例えば、表示装置としてプロジェクタで投影する場合には、投影位置がずれた場合に、再度行う必要がある。上記キャリブレーションの操作は、従来通りの操作では再設定に時間がかかる構成であった。
本発明は、連結部(重複領域)の精度を維持し、簡便に選択位置と表示位置との位置合わせを可能とすることを目的とする。
また、キャリブレーション操作は、その装置を使用する前に行う以外にも、例えば、表示装置としてプロジェクタで投影する場合には、投影位置がずれた場合に、再度行う必要がある。上記キャリブレーションの操作は、従来通りの操作では再設定に時間がかかる構成であった。
本発明は、連結部(重複領域)の精度を維持し、簡便に選択位置と表示位置との位置合わせを可能とすることを目的とする。
そこで、本発明の情報処理装置は、表示装置の画面に第1のポイントを表示する第1の表示手段と、第1の表示手段により表示された第1のポイントを選択されたことに基づき検出された座標データを、座標検出領域が重複し、重複領域を有するよう構成された複数の座標入力装置から取得する第1の取得手段と、第1の取得手段により取得された座標データに基づき、画面の、重複領域に対応する位置に第2のポイントを表示する第2の表示手段と、第2の表示手段により表示された第2のポイントを選択されたことに基づき検出された座標データを、複数の座標入力装置から取得する第2の取得手段と、第1の取得手段により取得された座標データと、第2の取得手段により取得された座標データと、に基づいて、選択位置と、表示位置との位置合わせを行う位置合わせ手段と、を有する。
本発明によれば、連結部(重複領域)の精度を維持し、簡便に選択位置と表示位置との位置合わせを可能とすることができる。
以下、本発明の実施形態について図面に基づいて説明する。
<<実施形態1>>
<システムの構成の概略説明>
システムの概略構成について図1を用いて説明する。図1に示されるように、本実施形態のシステムは、複数の座標入力装置と、情報処理装置であるPC5と、が通信可能に接続されている。図1では、表示装置506(後述)としてのプロジェクタがPC5に接続されている。
図1中、センサユニット1A〜1D、1E〜1H、1I〜1Lは、投光部及び受光部を有するセンサユニットであり、それぞれ所定の距離離れて設置されている。制御・演算を行う制御・演算ユニット2A〜2Fは、2つのセンサユニット1と接続される。センサユニット1は、制御信号を制御・演算ユニット2から受け取ると共に、検出した信号を制御・演算ユニット2に送信する。
再帰反射部3A、3Bは、入射光を到来方向に反射する再帰反射面を有し、それぞれのセンサユニット1から投光された光を、センサユニット1に向けて再帰的に反射する。反射された光は、集光光学系とラインCCD等とによって構成されたセンサユニット1の検出部によって1次元的に検出され、その光量分布が制御・演算ユニット2に送られる。
座標入力領域4A〜4Cは、ユーザーが座標を入力する座標入力領域である。座標入力領域4Aは、センサユニット1A〜1Dにより検出される領域であり、同様に、座標入力領域4Bは、センサユニット1E〜1H、座標入力領域4Cは、センサユニット1I〜1Lにより検出される領域である。
<システムの構成の概略説明>
システムの概略構成について図1を用いて説明する。図1に示されるように、本実施形態のシステムは、複数の座標入力装置と、情報処理装置であるPC5と、が通信可能に接続されている。図1では、表示装置506(後述)としてのプロジェクタがPC5に接続されている。
図1中、センサユニット1A〜1D、1E〜1H、1I〜1Lは、投光部及び受光部を有するセンサユニットであり、それぞれ所定の距離離れて設置されている。制御・演算を行う制御・演算ユニット2A〜2Fは、2つのセンサユニット1と接続される。センサユニット1は、制御信号を制御・演算ユニット2から受け取ると共に、検出した信号を制御・演算ユニット2に送信する。
再帰反射部3A、3Bは、入射光を到来方向に反射する再帰反射面を有し、それぞれのセンサユニット1から投光された光を、センサユニット1に向けて再帰的に反射する。反射された光は、集光光学系とラインCCD等とによって構成されたセンサユニット1の検出部によって1次元的に検出され、その光量分布が制御・演算ユニット2に送られる。
座標入力領域4A〜4Cは、ユーザーが座標を入力する座標入力領域である。座標入力領域4Aは、センサユニット1A〜1Dにより検出される領域であり、同様に、座標入力領域4Bは、センサユニット1E〜1H、座標入力領域4Cは、センサユニット1I〜1Lにより検出される領域である。
本実施形態において、再帰反射部3は、座標入力領域4の2辺に構成されている。センサユニット1A、1D、1E、1H、1I、1Lは、2辺の再帰反射部3のうち一方の再帰反射部3Bに対して投光した光を受光する。同様に、センサユニット1B、1C、1F、1G、1J、1Kは、もう一方である再帰反射部3Aに対して投光した光を受光する。
図1の座標入力装置の例では、座標入力領域4が3面で隙間無く隣接された状態で形成されており、各座標入力領域4の座標を算出するために用いるセンサユニット1は、座標入力領域4の外側に配置されている。
座標入力領域4A〜4CをPDPやリアプロジェクタ、LCDパネル等の表示装置の表示画面で構成したり、フロントプロジェクタで画像を投影したりすることで、インタラクティブな座標入力装置として、利用可能となっている。
この様な構成において、座標入力領域4に指等による入力指示がなされると、投光部から投光された光が遮られ、再帰反射による反射光が得られなくなるため、入力指示位置のみ光量が得られなくなる。
各制御・演算ユニット2は、双方に通信する通信部を有する。制御・演算ユニット2は、センサユニット1A〜1Lの光量変化から、入力指示された部分の遮光範囲を検出し、同範囲内での検出点を特定してそれぞれの角度を算出する。制御・演算ユニット2は、算出した角度及び、センサユニット間の距離等から、入力エリア上の座標位置を算出し、表示装置に接続されているPC5等に、USB等のインタフェースを経由して座標値を出力する。
このようにして、指等によって、画面上に線を描画したり、アイコンの操作をしたりする等、PC5の操作が可能になる。
以降、部分毎に詳細説明を行う。
図1の座標入力装置の例では、座標入力領域4が3面で隙間無く隣接された状態で形成されており、各座標入力領域4の座標を算出するために用いるセンサユニット1は、座標入力領域4の外側に配置されている。
座標入力領域4A〜4CをPDPやリアプロジェクタ、LCDパネル等の表示装置の表示画面で構成したり、フロントプロジェクタで画像を投影したりすることで、インタラクティブな座標入力装置として、利用可能となっている。
この様な構成において、座標入力領域4に指等による入力指示がなされると、投光部から投光された光が遮られ、再帰反射による反射光が得られなくなるため、入力指示位置のみ光量が得られなくなる。
各制御・演算ユニット2は、双方に通信する通信部を有する。制御・演算ユニット2は、センサユニット1A〜1Lの光量変化から、入力指示された部分の遮光範囲を検出し、同範囲内での検出点を特定してそれぞれの角度を算出する。制御・演算ユニット2は、算出した角度及び、センサユニット間の距離等から、入力エリア上の座標位置を算出し、表示装置に接続されているPC5等に、USB等のインタフェースを経由して座標値を出力する。
このようにして、指等によって、画面上に線を描画したり、アイコンの操作をしたりする等、PC5の操作が可能になる。
以降、部分毎に詳細説明を行う。
<センサユニットの詳細説明>
次に、センサユニット1A〜1Lの構成について、図2及び図3を用いて説明する。センサユニット1A〜1Lは、大きく分けて投光部と受光部とから構成される。
図2及び図3は、センサユニット1の詳細構成を示す図である。
図2において、赤外LED101は、赤外光を発する赤外LEDであり、投光レンズ102によって、再帰反射部3に向けて所定範囲に光を投光する。ここで、センサユニット1A〜1L中の投光部は、この赤外LED101と、投光レンズ102と、によって実現される。
そして、投光部より投光された赤外光は、再帰反射部3により到来方向に再帰的に反射され、センサユニット1A〜1L中の受光部によって、その光が検出される。
受光部は、1次元のラインセンサであるラインCCD103、集光光学系としての受光用レンズ104、入射光の入射方向を概略制限する絞り105、及び可視光等の余分な光(外乱光)の入射を防止する赤外フィルター106からなる。
そして、再帰反射部3によって反射された光は、赤外フィルター106、絞り105を抜けて受光用レンズ104によって、ラインCCD103の検出素子面上に集光される。
次に、センサユニット1A〜1Lの構成について、図2及び図3を用いて説明する。センサユニット1A〜1Lは、大きく分けて投光部と受光部とから構成される。
図2及び図3は、センサユニット1の詳細構成を示す図である。
図2において、赤外LED101は、赤外光を発する赤外LEDであり、投光レンズ102によって、再帰反射部3に向けて所定範囲に光を投光する。ここで、センサユニット1A〜1L中の投光部は、この赤外LED101と、投光レンズ102と、によって実現される。
そして、投光部より投光された赤外光は、再帰反射部3により到来方向に再帰的に反射され、センサユニット1A〜1L中の受光部によって、その光が検出される。
受光部は、1次元のラインセンサであるラインCCD103、集光光学系としての受光用レンズ104、入射光の入射方向を概略制限する絞り105、及び可視光等の余分な光(外乱光)の入射を防止する赤外フィルター106からなる。
そして、再帰反射部3によって反射された光は、赤外フィルター106、絞り105を抜けて受光用レンズ104によって、ラインCCD103の検出素子面上に集光される。
図3のセンサユニットは、図1のセンサユニット1A、1B側から見た断面図である。センサユニット1Aの赤外LED101Aからの光は、投光レンズ102Aにより、座標入力面に略平行に制限された光束として、主に再帰反射部3Bに対して光が投光されるように構成されている。同様に、センサユニット1Bの赤外LED101Bからの光は、投光レンズ102Bにより、主に再帰反射部3Aに対して光が投光されるように構成している。
ここで、本実施形態の場合、投光部と受光部とは、座標入力面である座標入力領域4の垂直方向に対し重ねた配置構成となっている。そして、正面方向(座標入力面に対し垂直方向)から見て、投光部の発光中心と受光部の基準位置(つまり、角度を計測するための基準点位置に相当し、本実施形態にあっては絞り105の位置)とが一致する構造となっている。
また、投光部により投光された座標入力面に略平行な光束であって、座標入力面内方向に所定角度方向に投光されている光は、再帰反射部3により光の到来方向に再帰反射される。そして、赤外フィルター106A(106B)、絞り105A(105B)、受光用レンズ104A(104B)を経て、ラインCCD103A(103B)の検出素子面上に集光、結像することになる。
したがって、CCD出力信号は、反射光の入射角に応じた光量分布を出力することになるので、ラインCCD103を構成する各画素の画素番号が角度情報を示すことになる。
図3に示す投光部と受光部との距離Lは、投光部から再帰反射部3までの距離に比べて十分に小さな値であり、距離Lを有していても十分な再帰反射光を受光部で検出することが可能な構成となっている。
図3では、センサユニット1A及び1Bについて説明した。しかし、同様の関係を有する、センサユニット1E及び1F、センサユニット1D及び1C、センサユニット1H及び1G、及びセンサユニット1L及び1Kも、センサユニット1A及び1Bと同様の構成を有する。
以上説明したように、センサユニット1A〜1Lは、投光部と、各々の投光部で投光された光を各々検出する受光部と、を有する。
ここで、本実施形態の場合、投光部と受光部とは、座標入力面である座標入力領域4の垂直方向に対し重ねた配置構成となっている。そして、正面方向(座標入力面に対し垂直方向)から見て、投光部の発光中心と受光部の基準位置(つまり、角度を計測するための基準点位置に相当し、本実施形態にあっては絞り105の位置)とが一致する構造となっている。
また、投光部により投光された座標入力面に略平行な光束であって、座標入力面内方向に所定角度方向に投光されている光は、再帰反射部3により光の到来方向に再帰反射される。そして、赤外フィルター106A(106B)、絞り105A(105B)、受光用レンズ104A(104B)を経て、ラインCCD103A(103B)の検出素子面上に集光、結像することになる。
したがって、CCD出力信号は、反射光の入射角に応じた光量分布を出力することになるので、ラインCCD103を構成する各画素の画素番号が角度情報を示すことになる。
図3に示す投光部と受光部との距離Lは、投光部から再帰反射部3までの距離に比べて十分に小さな値であり、距離Lを有していても十分な再帰反射光を受光部で検出することが可能な構成となっている。
図3では、センサユニット1A及び1Bについて説明した。しかし、同様の関係を有する、センサユニット1E及び1F、センサユニット1D及び1C、センサユニット1H及び1G、及びセンサユニット1L及び1Kも、センサユニット1A及び1Bと同様の構成を有する。
以上説明したように、センサユニット1A〜1Lは、投光部と、各々の投光部で投光された光を各々検出する受光部と、を有する。
<制御・演算ユニットの説明>
図1の制御・演算ユニット2A〜2Fとセンサユニット1A〜1Lとの間では、CCD制御信号、CCD用クロック信号、CCD出力信号、及び、LEDの駆動信号がやり取りされている。制御・演算ユニット2Aは、センサユニット1A、1Dと接続されている。同様に制御・演算ユニット2Bは、センサユニット1B、1Cと接続されている。制御・演算ユニット2Cは、センサユニット1E、1Hと接続されている。制御・演算ユニット2Dは、センサユニット1F、1Gと接続されている。制御・演算ユニット2Eは、センサユニット1I、1Lと接続されている。制御・演算ユニット2Fは、センサユニット1J、1Kと接続されている。
図4は、制御・演算ユニット2の一例を示す図である。図4では、センサユニット1Aと1Dとに接続される制御・演算ユニット2Aの構成を例に挙げて説明するが、制御・演算ユニット2A〜2Fも同様の回路構成となっている。
CCD制御信号はワンチップマイコン等の構成部品で構成されているCPU41から出力されている。CPU41は、CCD制御信号によりラインCCD103のシャッタタイミングや、データの出力制御等を行っている。CCD用クロック信号はクロック発生回路CLK42からセンサユニット1に送信されると共に、CCDとの同期をとって、各種制御を行うために、CPU41にも入力されている。LEDの駆動信号はCPU41から、センサユニット1Aと1Dとの赤外LEDに供給されている。
センサユニット1Aと1Dとの検出部であるCCDからの検出信号は、制御・演算ユニット2AのA/Dコンバータ43に入力され、CPU41からの制御によって、デジタル値に変換される。変換されたデジタル値はメモリ44に記憶され、角度計算に用いられる。そして、計算された角度から、座標値が求められ、PC5等にシリアルインタフェース48等の通信インタフェースを介して出力される。制御・演算ユニット2A〜2Fのうちの少なくとも何れか1つのシリアルインタフェース48が、PC5と接続される。
図1の制御・演算ユニット2A〜2Fとセンサユニット1A〜1Lとの間では、CCD制御信号、CCD用クロック信号、CCD出力信号、及び、LEDの駆動信号がやり取りされている。制御・演算ユニット2Aは、センサユニット1A、1Dと接続されている。同様に制御・演算ユニット2Bは、センサユニット1B、1Cと接続されている。制御・演算ユニット2Cは、センサユニット1E、1Hと接続されている。制御・演算ユニット2Dは、センサユニット1F、1Gと接続されている。制御・演算ユニット2Eは、センサユニット1I、1Lと接続されている。制御・演算ユニット2Fは、センサユニット1J、1Kと接続されている。
図4は、制御・演算ユニット2の一例を示す図である。図4では、センサユニット1Aと1Dとに接続される制御・演算ユニット2Aの構成を例に挙げて説明するが、制御・演算ユニット2A〜2Fも同様の回路構成となっている。
CCD制御信号はワンチップマイコン等の構成部品で構成されているCPU41から出力されている。CPU41は、CCD制御信号によりラインCCD103のシャッタタイミングや、データの出力制御等を行っている。CCD用クロック信号はクロック発生回路CLK42からセンサユニット1に送信されると共に、CCDとの同期をとって、各種制御を行うために、CPU41にも入力されている。LEDの駆動信号はCPU41から、センサユニット1Aと1Dとの赤外LEDに供給されている。
センサユニット1Aと1Dとの検出部であるCCDからの検出信号は、制御・演算ユニット2AのA/Dコンバータ43に入力され、CPU41からの制御によって、デジタル値に変換される。変換されたデジタル値はメモリ44に記憶され、角度計算に用いられる。そして、計算された角度から、座標値が求められ、PC5等にシリアルインタフェース48等の通信インタフェースを介して出力される。制御・演算ユニット2A〜2Fのうちの少なくとも何れか1つのシリアルインタフェース48が、PC5と接続される。
ここで、図1に示したように、本実施形態においては、センサユニット1及び制御・演算ユニット2が、上部と下部とにそれぞれ分離して配置された構成となっている。更に、座標入力領域の上部と下部とのそれぞれにおいて、座標入力領域4A〜4Cの各領域の座標を検出するセンサユニット1及び制御・演算ユニット2の組に接続された回路構成となっている。
まず、上部及び下部のそれぞれにおける制御演算ユニット間の通信に関しては、有線のシリアル通信部等からなるインタフェース47を介して行われる。また、このインタフェース47を介して、上部のセンサユニット1A、1D、1E、1H及び1L、下部のセンサユニット1B、1C、1F、1G及び1Kの制御信号の同期が行われる。また、インタフェース47を介して、メモリ44に格納された各種のデータがやりとりされる。
また、上部と下部との間の制御・演算ユニット2の通信には、無線の通信部が用いられる。本実施形態では、赤外線通信インタフェース46を介して、サブCPU45で処理されたデータにより、制御・演算ユニット2間のやりとりが行われる。
各制御・演算ユニット2A〜2Fは、マスター・スレーブ制御にて動作する。本実施形態の場合は、制御・演算ユニット2A、2C、2Eがマスターで、その他の制御・演算ユニット2B、2D、2Fがスレーブである。各制御・演算ユニット2は、マスター・スレーブのどちらにもなりうるが、ディップスイッチ等で、CPU41のポートに切替え信号を入力することで切替えることが可能となっている。
マスターである制御・演算ユニット2A、2C、2Eからは、各センサユニット1の制御信号を送信するタイミングを制御する制御信号がスレーブの各制御・演算ユニット2に各インタフェースを介して送信される。そして、上述の手順に従って座標値が算出され、PC5等の情報処理装置に送信される。
CPU41が、CPUのメモリ等に記憶されているプログラムに基づき処理を実行することによって、制御・演算ユニット2の機能及び後述する図11のフローチャートの処理等が実現される。
まず、上部及び下部のそれぞれにおける制御演算ユニット間の通信に関しては、有線のシリアル通信部等からなるインタフェース47を介して行われる。また、このインタフェース47を介して、上部のセンサユニット1A、1D、1E、1H及び1L、下部のセンサユニット1B、1C、1F、1G及び1Kの制御信号の同期が行われる。また、インタフェース47を介して、メモリ44に格納された各種のデータがやりとりされる。
また、上部と下部との間の制御・演算ユニット2の通信には、無線の通信部が用いられる。本実施形態では、赤外線通信インタフェース46を介して、サブCPU45で処理されたデータにより、制御・演算ユニット2間のやりとりが行われる。
各制御・演算ユニット2A〜2Fは、マスター・スレーブ制御にて動作する。本実施形態の場合は、制御・演算ユニット2A、2C、2Eがマスターで、その他の制御・演算ユニット2B、2D、2Fがスレーブである。各制御・演算ユニット2は、マスター・スレーブのどちらにもなりうるが、ディップスイッチ等で、CPU41のポートに切替え信号を入力することで切替えることが可能となっている。
マスターである制御・演算ユニット2A、2C、2Eからは、各センサユニット1の制御信号を送信するタイミングを制御する制御信号がスレーブの各制御・演算ユニット2に各インタフェースを介して送信される。そして、上述の手順に従って座標値が算出され、PC5等の情報処理装置に送信される。
CPU41が、CPUのメモリ等に記憶されているプログラムに基づき処理を実行することによって、制御・演算ユニット2の機能及び後述する図11のフローチャートの処理等が実現される。
<光量分布検出の説明>
図5は、制御信号のタイミングチャートである。
制御信号51、52、53は、ラインCCD103の制御用の制御信号である。SH信号51の間隔で、ラインCCD103のシャッタ開放時間が決定される。制御信号52、53は、それぞれ上部センサユニット1(センサユニット1A、1D、1E、1H、1I、1L)と下部センサユニット1(センサユニット1B、1C、1F、1G、1J、1K)とへのゲート信号である。制御信号52、53は、CCD内部の光電変換部の電荷を読み出し部へ転送する信号である。
駆動信号54、55は、LEDの駆動信号である。SH信号51の最初の周期で上部センサユニット1のLEDを点灯するために駆動信号54がLED駆動回路を経てLEDに供給される。次の周期で駆動信号55が下部センサユニット1のLEDに供給され、このLEDが駆動される。双方のLEDの駆動が終了した後に、CCDの信号がセンサから読み出される。したがって、上部センサユニット1と下部センサユニット1とでは、異なるタイミングで投光されて、各CCDで受光した複数のデータ(光量分布)が読み出されることになる。
図5は、制御信号のタイミングチャートである。
制御信号51、52、53は、ラインCCD103の制御用の制御信号である。SH信号51の間隔で、ラインCCD103のシャッタ開放時間が決定される。制御信号52、53は、それぞれ上部センサユニット1(センサユニット1A、1D、1E、1H、1I、1L)と下部センサユニット1(センサユニット1B、1C、1F、1G、1J、1K)とへのゲート信号である。制御信号52、53は、CCD内部の光電変換部の電荷を読み出し部へ転送する信号である。
駆動信号54、55は、LEDの駆動信号である。SH信号51の最初の周期で上部センサユニット1のLEDを点灯するために駆動信号54がLED駆動回路を経てLEDに供給される。次の周期で駆動信号55が下部センサユニット1のLEDに供給され、このLEDが駆動される。双方のLEDの駆動が終了した後に、CCDの信号がセンサから読み出される。したがって、上部センサユニット1と下部センサユニット1とでは、異なるタイミングで投光されて、各CCDで受光した複数のデータ(光量分布)が読み出されることになる。
読み出される信号は、入力がない場合には、それぞれのセンサユニット1からの出力として、図6のような光量分布が得られる。もちろん、この様な分布がどのシステムでも必ず得られるわけではなく、再帰反射シートの特性やLEDの特性、また、計時変化(反射面の汚れ等)によって、分布は変化する。
図6においては、Aのレベルが最大光量であり、Bのレベルが最低のレベルとなる。つまり反射光のない状態では、得られるレベルがB付近になり、反射光量が増えるほどAのレベルの方向になっている。この様にCCDから出力されたデータは、逐次A/D変換されCPU41にデジタルデータとして取り込まれる。
図6においては、Aのレベルが最大光量であり、Bのレベルが最低のレベルとなる。つまり反射光のない状態では、得られるレベルがB付近になり、反射光量が増えるほどAのレベルの方向になっている。この様にCCDから出力されたデータは、逐次A/D変換されCPU41にデジタルデータとして取り込まれる。
図7は、指等で入力を行った、つまり、反射光を遮った場合の出力の一例を示す図である。Cの部分が指等で反射光が遮られたためその部分のみ、光量が低下している。CPU41は、この光量分布の変化から指等による入力の検出を行う。
より具体的には、CPU41は、図6のような入力の無い初期状態を予め記憶しておいて、それぞれのサンプル期間に図7のような変化があるか初期状態との差分によって検出し、変化があったらその部分を入力点として入力角度を決定する演算を行う。
より具体的には、CPU41は、図6のような入力の無い初期状態を予め記憶しておいて、それぞれのサンプル期間に図7のような変化があるか初期状態との差分によって検出し、変化があったらその部分を入力点として入力角度を決定する演算を行う。
<角度計算の説明>
角度計算にあたっては、まず、CPU41は、遮光範囲を検出する必要がある。
上述したように、光量分布は経時変化等で一定ではないため、システムの起動時等に記憶することが望ましい。そうすることで、例えば、再帰反射面がほこり等で汚れていても、まったく反射しないような場合を除いて使用可能になる。
以降一つのセンサのデータについて説明するが、他のセンサでも同様の処理を行っている。電源投入時、入力の無い状態で、CPU41は、まず投光部から照明されること無しにCCDの出力をA/D変換して、これをBas_Data[N]として、メモリに記憶する。これは、CCDのバイアスのばらつき等を含んだデータとなり、図6のBのレベル付近のデータとなる。ここで、Nは画素番号であり、有効な入力範囲に対応する画素番号が用いられる。
次に、CPU41は、投光部から照明された状態での光量分布を記憶する。図6の実線で表されたデータであり、Ref_Data[N]とする。
CPU41は、これらのデータを用いてまずは入力が成されたか、遮光範囲があるかどうかの判定を行う。CPU41は、あるサンプル期間のデータをNorm_Data[N]とする。
CPU41は、まず遮光範囲を特定するために、データの変化の量によって、有無を判定する。これは、ノイズ等による誤判定を防止し、所定量の確実な変化を検出するためである。
角度計算にあたっては、まず、CPU41は、遮光範囲を検出する必要がある。
上述したように、光量分布は経時変化等で一定ではないため、システムの起動時等に記憶することが望ましい。そうすることで、例えば、再帰反射面がほこり等で汚れていても、まったく反射しないような場合を除いて使用可能になる。
以降一つのセンサのデータについて説明するが、他のセンサでも同様の処理を行っている。電源投入時、入力の無い状態で、CPU41は、まず投光部から照明されること無しにCCDの出力をA/D変換して、これをBas_Data[N]として、メモリに記憶する。これは、CCDのバイアスのばらつき等を含んだデータとなり、図6のBのレベル付近のデータとなる。ここで、Nは画素番号であり、有効な入力範囲に対応する画素番号が用いられる。
次に、CPU41は、投光部から照明された状態での光量分布を記憶する。図6の実線で表されたデータであり、Ref_Data[N]とする。
CPU41は、これらのデータを用いてまずは入力が成されたか、遮光範囲があるかどうかの判定を行う。CPU41は、あるサンプル期間のデータをNorm_Data[N]とする。
CPU41は、まず遮光範囲を特定するために、データの変化の量によって、有無を判定する。これは、ノイズ等による誤判定を防止し、所定量の確実な変化を検出するためである。
CPU41は、変化の量を各々の画素において以下の計算を行い、予め決定してある閾値Vthaと比較する。
Norm_Data[N] = Norm_Data[N] − Ref_Data[N] 式(1)
ここで、Norm_Data[N]は各画素における変化量である。
この処理は、差を取り、比較するだけなので、処理時間をさほど使わないので、入力の有無の判定を高速に行うことが可能である。CPU41は、Vthaを初めて超えた画素が所定数を超えて検出されたときに入力があったと判定する。
次に、CPU41は、より高精度に検出するために、変化の比を計算して入力点の決定を行う。
Norm_Data[N] = Norm_Data[N] / (Bas_Data[N] − Ref_Data[N]) 式(2)
CPU41は、このデータに対して、閾値Vthrを適用して、その立ち上がり部と立下り部との画素番号から、両者の中央を入力画素として、角度を求める。
Norm_Data[N] = Norm_Data[N] − Ref_Data[N] 式(1)
ここで、Norm_Data[N]は各画素における変化量である。
この処理は、差を取り、比較するだけなので、処理時間をさほど使わないので、入力の有無の判定を高速に行うことが可能である。CPU41は、Vthaを初めて超えた画素が所定数を超えて検出されたときに入力があったと判定する。
次に、CPU41は、より高精度に検出するために、変化の比を計算して入力点の決定を行う。
Norm_Data[N] = Norm_Data[N] / (Bas_Data[N] − Ref_Data[N]) 式(2)
CPU41は、このデータに対して、閾値Vthrを適用して、その立ち上がり部と立下り部との画素番号から、両者の中央を入力画素として、角度を求める。
図8は、比計算を終わったあとの検出の一例を示す図である。いま閾値Vthrで検出すると遮光領域の立ち上がり部分は、Nr番目の画素で閾値を超えたとする。更に、Nf番の画素でVthrを下まわったとする。
CPU41は、このまま中心画素Npを
Np = Nr + (Nf − Nr) / 2 式(3)
のように計算してもよいが、そうすると、画素間隔が最小の分解能になってしまう。より細かく検出するために、CPU41は、それぞれの画素のレベルとその一つ前の画素のレベルを用い閾値を横切った仮想の画素番号を計算する。
いまNrのレベルをLr、Nr−1番画素のレベルをLr−1とする。また、NfのレベルをLf、Nf−1番のそのレベルをLf−1とすれば、それぞれの仮想画素番号Nrv、Nfvは、
Nrv = Nr−1 + ( Vthr − Lr−1 ) / ( Lr − Lr−1 ) 式(4)
Nfv = Nf−1 + ( Vthr − Lf−1 ) / ( Lf − Lf−1 ) 式(5)
と計算でき、仮想中心画素Npvは、
Npv = Nrv + ( Nfv − Nrv ) / 2 式(6)
で決定される。
CPU41は、このまま中心画素Npを
Np = Nr + (Nf − Nr) / 2 式(3)
のように計算してもよいが、そうすると、画素間隔が最小の分解能になってしまう。より細かく検出するために、CPU41は、それぞれの画素のレベルとその一つ前の画素のレベルを用い閾値を横切った仮想の画素番号を計算する。
いまNrのレベルをLr、Nr−1番画素のレベルをLr−1とする。また、NfのレベルをLf、Nf−1番のそのレベルをLf−1とすれば、それぞれの仮想画素番号Nrv、Nfvは、
Nrv = Nr−1 + ( Vthr − Lr−1 ) / ( Lr − Lr−1 ) 式(4)
Nfv = Nf−1 + ( Vthr − Lf−1 ) / ( Lf − Lf−1 ) 式(5)
と計算でき、仮想中心画素Npvは、
Npv = Nrv + ( Nfv − Nrv ) / 2 式(6)
で決定される。
このように、画素番号とそのレベルから仮想的な画素番号を計算することで、より分解能の高い検出ができる。
上記のように得られた中央画素番号から、実際の座標値を計算するためには、角度情報に変換する必要がある。
後述する実際の座標計算では、角度そのものよりもその角度における正接(tangent)の値を求めるほうが都合がよい。画素番号から、tanθへの変換には、CPU41は、テーブル参照や変換式を用いる。
CPU41は、変換式は例えば高次の多項式を用いることで精度を確保することができる。一方、CPU41は、次数等は計算能力及び精度スペック等を鑑みて決定すればよい。
ここで、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θを求めているが、CPU41は、角度そのものを求め、その後tanθを求めてもよい。
上記のように得られた中央画素番号から、実際の座標値を計算するためには、角度情報に変換する必要がある。
後述する実際の座標計算では、角度そのものよりもその角度における正接(tangent)の値を求めるほうが都合がよい。画素番号から、tanθへの変換には、CPU41は、テーブル参照や変換式を用いる。
CPU41は、変換式は例えば高次の多項式を用いることで精度を確保することができる。一方、CPU41は、次数等は計算能力及び精度スペック等を鑑みて決定すればよい。
ここで、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θを求めているが、CPU41は、角度そのものを求め、その後tanθを求めてもよい。
<座標計算方法の説明>
CPU41は、得られた角度データから座標を算出する。
図9は、各センサユニット1の組み合わせで座標計算可能な座標入力領域4Aの座標検出範囲を示す図である。
図9に示すように、各センサユニット1の投光及び受光範囲が交わる領域が座標計算可能な領域となる。したがって、センサユニット1C、1Dで座標計算可能な範囲は、図9(a)の斜線の範囲91である。同様にセンサユニット1B、1Cで座標計算可能な範囲は、図9(b)の斜線の範囲92、センサユニット1A、1Bで座標計算可能な範囲は、図9(c)の斜線の範囲93、センサユニット1A、1Dで座標計算可能な範囲は、図9(d)の斜線の範囲94となる。
CPU41は、得られた角度データから座標を算出する。
図9は、各センサユニット1の組み合わせで座標計算可能な座標入力領域4Aの座標検出範囲を示す図である。
図9に示すように、各センサユニット1の投光及び受光範囲が交わる領域が座標計算可能な領域となる。したがって、センサユニット1C、1Dで座標計算可能な範囲は、図9(a)の斜線の範囲91である。同様にセンサユニット1B、1Cで座標計算可能な範囲は、図9(b)の斜線の範囲92、センサユニット1A、1Bで座標計算可能な範囲は、図9(c)の斜線の範囲93、センサユニット1A、1Dで座標計算可能な範囲は、図9(d)の斜線の範囲94となる。
図10は、画面座標との位置関係を示す図である。いま、点Pの位置に入力があった場合、このときセンサユニット1B、1Cにて遮光データが検出される。
センサユニット間の距離はDhで表されている。また、画面中央が画面の原点位置である。P0(0、P0Y)は1B、1Cのセンサユニット1の角度0の交点である。角度0とは、それぞれのセンサユニットの投光可能な範囲の中心からの投光方向を示している。CPU41は、それぞれの角度をθL、θRとして、それぞれtanθL、tanθRを、上記多項式を用いて算出する。このとき点Pのx、y座標は
x = Dh * (tanθL + tanθR) / ( 1 + (tanθL * tanθR) ) 式(8)
y = − Dh * (tanθR − tanθL − ( 2 * tanθL * tanθR) ) / ( 1+ ( tanθL * tanθR) ) + P0Y 式(9)
で計算される。
座標入力領域4によって、センサユニット1の組み合わせが変更になることは上述した通りであるが、センサユニット1の組み合わせで、座標算出式のパラメータが変更になる。
例えば、CPU41は、センサユニット1C、1Dで検出されたデータで計算する場合は、式(8)、(9)において、図10に示した値を用いて、Dh→Dv、P0Y→P1Xの変換を行う。更に、CPU41は、計算したx及びyを、x⇔yに変換する。
同様に、センサユニット1A、1Bの組み合わせ、センサユニット1A、1Dの組み合わせで遮光データが検出された場合も、CPU41は、パラメータを変更し、上記の式(8)、(9)にて計算することができる。
センサユニット間の距離はDhで表されている。また、画面中央が画面の原点位置である。P0(0、P0Y)は1B、1Cのセンサユニット1の角度0の交点である。角度0とは、それぞれのセンサユニットの投光可能な範囲の中心からの投光方向を示している。CPU41は、それぞれの角度をθL、θRとして、それぞれtanθL、tanθRを、上記多項式を用いて算出する。このとき点Pのx、y座標は
x = Dh * (tanθL + tanθR) / ( 1 + (tanθL * tanθR) ) 式(8)
y = − Dh * (tanθR − tanθL − ( 2 * tanθL * tanθR) ) / ( 1+ ( tanθL * tanθR) ) + P0Y 式(9)
で計算される。
座標入力領域4によって、センサユニット1の組み合わせが変更になることは上述した通りであるが、センサユニット1の組み合わせで、座標算出式のパラメータが変更になる。
例えば、CPU41は、センサユニット1C、1Dで検出されたデータで計算する場合は、式(8)、(9)において、図10に示した値を用いて、Dh→Dv、P0Y→P1Xの変換を行う。更に、CPU41は、計算したx及びyを、x⇔yに変換する。
同様に、センサユニット1A、1Bの組み合わせ、センサユニット1A、1Dの組み合わせで遮光データが検出された場合も、CPU41は、パラメータを変更し、上記の式(8)、(9)にて計算することができる。
各センサユニット1の組み合わせによる座標検出可能な領域は、座標検出範囲が重なる領域があるため、複数の座標が検出されることがあるが、CPU41は、算出した座標値を平均する等して、座標を決定すればよい。
また、本実施形態では、3面の座標入力領域4を有しているが、センサユニット1E〜1H、1I〜1Lで検出されたデータで計算する場合も、CPU41は、上述と同様に座標値を計算することができる。
但し、PC5に出力される座標値は、PC5の表示モードによって異なる場合がある。例えば、3面のデスクトップ画面に同じ画像が表示されるいわゆるクローン表示の場合は、計算された座標値をそのままPC5に送信すればよい。また、2面の画像を1つのデスクトップ画面として扱う、いわゆる拡張デスクトップモードの場合は、計算された座標値をオフセットしてPC5に送信することが望ましい。
このように、算出された座標値をPC5の表示モードによって、適宜オフセットさせる等して、PC5に出力してもよいが、座標値は、算出されたままPC5に出力してもよい。この場合、後述するPC5のCPU501が座標値を変更してもよい。
また、本実施形態では、3面の座標入力領域4を有しているが、センサユニット1E〜1H、1I〜1Lで検出されたデータで計算する場合も、CPU41は、上述と同様に座標値を計算することができる。
但し、PC5に出力される座標値は、PC5の表示モードによって異なる場合がある。例えば、3面のデスクトップ画面に同じ画像が表示されるいわゆるクローン表示の場合は、計算された座標値をそのままPC5に送信すればよい。また、2面の画像を1つのデスクトップ画面として扱う、いわゆる拡張デスクトップモードの場合は、計算された座標値をオフセットしてPC5に送信することが望ましい。
このように、算出された座標値をPC5の表示モードによって、適宜オフセットさせる等して、PC5に出力してもよいが、座標値は、算出されたままPC5に出力してもよい。この場合、後述するPC5のCPU501が座標値を変更してもよい。
<座標算出工程の説明>
図11は、データ取得から座標計算までの情報処理の一例を示すフローチャートである。図11では、制御・演算ユニット2AのCPU41が処理を行うものとして説明を行う。制御・演算ユニット2C、2EのCPU41も制御・演算ユニット2AのCPU41と同様、図11の示す処理を実行する。
S101において、電源が投入されると、CPU41は、処理を開始する。
S102において、CPU41は、ポート設定、タイマ設定等様々な初期化を行う。
S103において、CPU41は、初期読み込み回数を設定する。この処理は、立ち上げ時のみに行う不要電荷除去のための準備である。CCD等の光電変換素子において、動作させていないときに不要な電荷が蓄積している場合があり、そのデータをそのままリファレンスデータとして用いると、検出不能や、誤検出の原因となる。それを避けるために、最初に照明無しで、複数回データの読み出しを行う。S103ではその読み込み回数を設定している。
S104において、CPU41は、照明無しで、データを読み出す。この処理で、不要電荷の除去を行っている。
S105において、CPU41は、S103で設定された回数、読み込みを行ったか否かを判定する。CPU41は、S103で設定された回数、読み込みを行ったと判定した場合(S105においてYES)、S106に進み、S103で設定された回数、読み込みを行っていないと判定した場合(S105においてNO)、S104の処理を繰り返す。
図11は、データ取得から座標計算までの情報処理の一例を示すフローチャートである。図11では、制御・演算ユニット2AのCPU41が処理を行うものとして説明を行う。制御・演算ユニット2C、2EのCPU41も制御・演算ユニット2AのCPU41と同様、図11の示す処理を実行する。
S101において、電源が投入されると、CPU41は、処理を開始する。
S102において、CPU41は、ポート設定、タイマ設定等様々な初期化を行う。
S103において、CPU41は、初期読み込み回数を設定する。この処理は、立ち上げ時のみに行う不要電荷除去のための準備である。CCD等の光電変換素子において、動作させていないときに不要な電荷が蓄積している場合があり、そのデータをそのままリファレンスデータとして用いると、検出不能や、誤検出の原因となる。それを避けるために、最初に照明無しで、複数回データの読み出しを行う。S103ではその読み込み回数を設定している。
S104において、CPU41は、照明無しで、データを読み出す。この処理で、不要電荷の除去を行っている。
S105において、CPU41は、S103で設定された回数、読み込みを行ったか否かを判定する。CPU41は、S103で設定された回数、読み込みを行ったと判定した場合(S105においてYES)、S106に進み、S103で設定された回数、読み込みを行っていないと判定した場合(S105においてNO)、S104の処理を繰り返す。
S106において、CPU41は、リファレンスデータとしての照明無しでのデータの取り込みを行う。このデータは、上記Bas_Dataに相当する。
S107において、CPU41は、取り込んだデータをメモリに記憶する。メモリに記憶されたデータは、以降の計算に用いられる。
S108において、CPU41は、もう一つのリファレンスデータである、照明したときの初期光量分布に相当するデータであるRef_Dataを取り込む。
S109において、CPU41は、取り込んだデータをメモリに記憶する。
ここで、上部のセンサユニット1の組のCPU41と下部のセンサユニット1の組のCPU41は、とで異なるタイミングで照明されたデータを取り込む。これは、上部のセンサユニット1と下部のセンサユニット1とが対向する配置であるため、同時に照明してしまうと、互いの照明を互いの受光部にて検出してしまうことを避けるためである。
そして、S110において、CPU41は、全てのセンサユニット1、即ち、センサユニット1A〜1D、において取り込みが終了したかどうかを判定する。CPU41は、全てのセンサユニット1において取り込みが終了した判定した場合(S110においてYES)、S111に進み、全てのセンサユニット1において取り込みが終了していない場合(S110においてNO)、S108、S109の処理を繰り返す。
このステップまでの処理が、電源投入時の初期設定動作になり、次から通常の取り込み動作になる。
S107において、CPU41は、取り込んだデータをメモリに記憶する。メモリに記憶されたデータは、以降の計算に用いられる。
S108において、CPU41は、もう一つのリファレンスデータである、照明したときの初期光量分布に相当するデータであるRef_Dataを取り込む。
S109において、CPU41は、取り込んだデータをメモリに記憶する。
ここで、上部のセンサユニット1の組のCPU41と下部のセンサユニット1の組のCPU41は、とで異なるタイミングで照明されたデータを取り込む。これは、上部のセンサユニット1と下部のセンサユニット1とが対向する配置であるため、同時に照明してしまうと、互いの照明を互いの受光部にて検出してしまうことを避けるためである。
そして、S110において、CPU41は、全てのセンサユニット1、即ち、センサユニット1A〜1D、において取り込みが終了したかどうかを判定する。CPU41は、全てのセンサユニット1において取り込みが終了した判定した場合(S110においてYES)、S111に進み、全てのセンサユニット1において取り込みが終了していない場合(S110においてNO)、S108、S109の処理を繰り返す。
このステップまでの処理が、電源投入時の初期設定動作になり、次から通常の取り込み動作になる。
S111において、CPU41は、上述したように光量分布を取り込む。
そして、S112において、CPU41は、全てのセンサユニット1において取り込みが終了したかどうかを判定する。CPU41は、全てのセンサユニット1において取り込みが終了したと判定した場合(S112においてYES)、S113に進み、全てのセンサユニット1において取り込みが終了していないと判定した場合(S112においてNO)、S111の処理を繰り返す。
S113において、CPU41は、全てのデータに対して、Ref_Dataとの差分値を計算する。
そして、S114において、CPU41は、遮光部分の有無を判定する。CPU41は、遮光部分がある、即ち入力がある、と判定した場合(S114においてYES)、S115に進み、遮光部分がない、即ち入力がない、と判定した場合(S114においてNO)、S111からの処理を繰り返す。このとき、この繰り返し周期を10[msec]程度に設定すれば、100回/秒のサンプリングになる。
S115において、CPU41は、式(2)を用いて比を計算する。
S116において、CPU41は、S115で得られた比に対して閾値で立ち上がり部、立下り部を決定し、式(4)、(5)、(6)を用いて中心画素を計算する。
そして、S117において、CPU41は、得られた中心画素から近似多項式よりTanθを計算する。
S118において、CPU41は、遮光領域が有りと判定されたセンサユニット1の組み合わせから、式(8)、(9)においてセンサ間距離等のTanΘ以外のパラメータを選択し、計算式を変更する。
そして、S119において、CPU41は、センサユニット1でのTanθ値からx、y座標を式(8)、(9)を用いて算出する。
そして、S112において、CPU41は、全てのセンサユニット1において取り込みが終了したかどうかを判定する。CPU41は、全てのセンサユニット1において取り込みが終了したと判定した場合(S112においてYES)、S113に進み、全てのセンサユニット1において取り込みが終了していないと判定した場合(S112においてNO)、S111の処理を繰り返す。
S113において、CPU41は、全てのデータに対して、Ref_Dataとの差分値を計算する。
そして、S114において、CPU41は、遮光部分の有無を判定する。CPU41は、遮光部分がある、即ち入力がある、と判定した場合(S114においてYES)、S115に進み、遮光部分がない、即ち入力がない、と判定した場合(S114においてNO)、S111からの処理を繰り返す。このとき、この繰り返し周期を10[msec]程度に設定すれば、100回/秒のサンプリングになる。
S115において、CPU41は、式(2)を用いて比を計算する。
S116において、CPU41は、S115で得られた比に対して閾値で立ち上がり部、立下り部を決定し、式(4)、(5)、(6)を用いて中心画素を計算する。
そして、S117において、CPU41は、得られた中心画素から近似多項式よりTanθを計算する。
S118において、CPU41は、遮光領域が有りと判定されたセンサユニット1の組み合わせから、式(8)、(9)においてセンサ間距離等のTanΘ以外のパラメータを選択し、計算式を変更する。
そして、S119において、CPU41は、センサユニット1でのTanθ値からx、y座標を式(8)、(9)を用いて算出する。
次にS120において、CPU41は、S119で算出した座標について、タッチされたか否かの判定を行う。ここで、CPU41は、マウスのボタンを押下せずにカーソルを移動させている状態のような近接入力状態か、左ボタンを押した状態であるタッチダウン状態かの判定を行っている。より具体的に説明すると、CPU41は、先に得られた比の最大値が、ある所定値、例えば0.5等の値を超えていればタッチダウン状態と判定し、それ以下なら近接入力状態と判定する。CPU41は、タッチダウン状態と判定した場合(S120においてYES)、S121に進み、近接入力状態と判定した場合(S120においてNO)、S122に進む。
S121において、CPU41は、ダウンフラグをセットする。
一方、S122において、CPU41は、ダウンフラグを解除する。
S123において、CPU41は、座標値とダウン状態の情報とを、PC5へ送信する。CPU41は、USB、RS232等のシリアル通信でデータ等をPC5に送ってもよいし、任意のインタフェースで送ってもよい。データが送られたPC5側では、後述するPC5のCPU501がデータを解釈し、カーソルの移動、マウスボタン状態の変更等を座標値、フラグ等を参照して行う。このことで、PC画面の操作が可能になる。
S123の処理が終了した場合、CPU41は、S111の処理に戻り、以降、電源OFFまで上述した処理を繰り返す。
S121において、CPU41は、ダウンフラグをセットする。
一方、S122において、CPU41は、ダウンフラグを解除する。
S123において、CPU41は、座標値とダウン状態の情報とを、PC5へ送信する。CPU41は、USB、RS232等のシリアル通信でデータ等をPC5に送ってもよいし、任意のインタフェースで送ってもよい。データが送られたPC5側では、後述するPC5のCPU501がデータを解釈し、カーソルの移動、マウスボタン状態の変更等を座標値、フラグ等を参照して行う。このことで、PC画面の操作が可能になる。
S123の処理が終了した場合、CPU41は、S111の処理に戻り、以降、電源OFFまで上述した処理を繰り返す。
<キャリブレーションの説明>
キャリブレーションとは、操作をして最終的にタッチした位置にカーソルがPC5の制御によって表示されるように調整することである。そのため、座標入力装置の座標系をコンピュータのオペレーティングシステムの表示座標系に変換するためのパラメータを取得し、又はパラメータを取得できるように操作者に一連の操作を促す。そして、結果的にタッチした位置にカーソルが表示されるように変換した座標値を出力することができる状態にする。
座標入力装置の入力とPC5の表示とは、それぞれ別々の座標系で構成されている。以下に座標入力装置の座標系とPC座標系(表示)とについて説明する。各座標入力装置は、電源起動時にセンサの位置関係を測定して各々の座標入力装置で独立した座標系を構成する。そして、各座標入力装置は、各座標系におけるタッチ位置を検出して座標データを出力する。各座標入力装置のセンサ間距離は、厳密には等距離に設置されないので、各座標入力装置が出力する座標値の絶対値は同じにはなるとは限らない。
キャリブレーションとは、操作をして最終的にタッチした位置にカーソルがPC5の制御によって表示されるように調整することである。そのため、座標入力装置の座標系をコンピュータのオペレーティングシステムの表示座標系に変換するためのパラメータを取得し、又はパラメータを取得できるように操作者に一連の操作を促す。そして、結果的にタッチした位置にカーソルが表示されるように変換した座標値を出力することができる状態にする。
座標入力装置の入力とPC5の表示とは、それぞれ別々の座標系で構成されている。以下に座標入力装置の座標系とPC座標系(表示)とについて説明する。各座標入力装置は、電源起動時にセンサの位置関係を測定して各々の座標入力装置で独立した座標系を構成する。そして、各座標入力装置は、各座標系におけるタッチ位置を検出して座標データを出力する。各座標入力装置のセンサ間距離は、厳密には等距離に設置されないので、各座標入力装置が出力する座標値の絶対値は同じにはなるとは限らない。
以下に本実施形態におけるキャリブレーションについて説明する。
図12は、各座標入力装置の座標系を模式的に示した図である。各座標入力装置は、各々で座標系を形成し、座標入力装置ごとに独立して座標やイベント等のデータ出力を行う。したがって、各座標入力装置で形成する座標系は、必ずしも傾き等が同一であることはなく各々で異なるように構成されることとなる。即ち、座標入力装置のIDとしてDigiID=0の場合の座標系は、ID0X軸及びID0Y軸の座標値として、座標値ID0(0、0)〜ID0(7FFF、7FFF)として出力される。DigiID=1、DigiID=2の場合も同様である。
図12は、各座標入力装置の座標系を模式的に示した図である。各座標入力装置は、各々で座標系を形成し、座標入力装置ごとに独立して座標やイベント等のデータ出力を行う。したがって、各座標入力装置で形成する座標系は、必ずしも傾き等が同一であることはなく各々で異なるように構成されることとなる。即ち、座標入力装置のIDとしてDigiID=0の場合の座標系は、ID0X軸及びID0Y軸の座標値として、座標値ID0(0、0)〜ID0(7FFF、7FFF)として出力される。DigiID=1、DigiID=2の場合も同様である。
図13は、図12で説明した独立した座標系を各座標入力領域4が重複領域を形成するように並べて構成した場合を模式的に示した図である。ここで、重複領域とは、各座標入力領域4が重なる領域のことを指す。図13においては、二重の網掛け部分となる。
また、各座標入力領域4における座標変換は、キャリブレーションポイントとして獲得される4点の座標値で形成される新たな座標系に対して行われる。キャリブレーションポイントは、PC5の表示位置として既知のポイントである。後述するPC5のCPU501がタッチされた位置を保存し、所定の座標変換関数に検出座標を入力して座標変換することによって、タッチ位置とPC5の表示位置(カーソル)との位置が合うようになる。
ここで、上述したキャリブレーションポイントは、座標入力領域ごとで各4点となるように構成される。即ち、図13に示すように、DigiID=0のキャリブレーションポイント4点は、そのうち2点はDigiID=0、 DigiID=1の重複領域となる。そして、DigiID=1は、キャリブレーションポイント4点が重複領域となるように構成される。DigiID=2は、DigiID=0と同様にキャリブレーションポイント4点のうち、2点が重複領域に構成され、DigiID=1、 DigiID=2の重複領域となるように構成される。更に、この状態で、図13に示すように全ての座標入力領域4の有効領域を包含する座標系の座標軸として、DigiX軸とDigiY軸とが構成される。
また、各座標入力領域4における座標変換は、キャリブレーションポイントとして獲得される4点の座標値で形成される新たな座標系に対して行われる。キャリブレーションポイントは、PC5の表示位置として既知のポイントである。後述するPC5のCPU501がタッチされた位置を保存し、所定の座標変換関数に検出座標を入力して座標変換することによって、タッチ位置とPC5の表示位置(カーソル)との位置が合うようになる。
ここで、上述したキャリブレーションポイントは、座標入力領域ごとで各4点となるように構成される。即ち、図13に示すように、DigiID=0のキャリブレーションポイント4点は、そのうち2点はDigiID=0、 DigiID=1の重複領域となる。そして、DigiID=1は、キャリブレーションポイント4点が重複領域となるように構成される。DigiID=2は、DigiID=0と同様にキャリブレーションポイント4点のうち、2点が重複領域に構成され、DigiID=1、 DigiID=2の重複領域となるように構成される。更に、この状態で、図13に示すように全ての座標入力領域4の有効領域を包含する座標系の座標軸として、DigiX軸とDigiY軸とが構成される。
図14は、PC5のオペレーティングシステムのデスクトップ画面として表示装置に表示されている表示座標系を模式的に示した図である。表示装置がプロジェクタの場合は、投影領域画像として、表示されるものであって、キャリブレーションポイントは、図13に示したポイントと同一の位置である。即ち、投影画像として示されたキャリブレーションポイントをユーザーがタッチして座標入力装置が検出する座標値は、図13のキャリブレーションポイントということになる。
本実施形態のキャリブレーションの処理は、ステップ1とステップ2とから構成される。ステップ1では、投影画像の4隅がタッチされた場合、後述するPC5のCPU501は、デジタイザ座標検出領域に投影されているプロジェクタからの投影領域を把握する。そして、後述するPC5のCPU501は、前記タッチによって検出した座標データを用いて、重複領域にポイントが表示されるようにPC表示座標系でキャリブレーションポイントを算出する。各デジタイザのセンサユニット1の位置関係は、ほぼ設計値通り設置されるものとする。ステップ2では、後述するPC5のCPU501が、ステップ1で算出したキャリブレーションポイントを表示して、順次タッチされることによって、座標データを取得する。そして、後述するPC5のCPU501は、キャリブレーション計算(座標系変換)用のパラメータを設定する。
本実施形態のキャリブレーションの処理は、ステップ1とステップ2とから構成される。ステップ1では、投影画像の4隅がタッチされた場合、後述するPC5のCPU501は、デジタイザ座標検出領域に投影されているプロジェクタからの投影領域を把握する。そして、後述するPC5のCPU501は、前記タッチによって検出した座標データを用いて、重複領域にポイントが表示されるようにPC表示座標系でキャリブレーションポイントを算出する。各デジタイザのセンサユニット1の位置関係は、ほぼ設計値通り設置されるものとする。ステップ2では、後述するPC5のCPU501が、ステップ1で算出したキャリブレーションポイントを表示して、順次タッチされることによって、座標データを取得する。そして、後述するPC5のCPU501は、キャリブレーション計算(座標系変換)用のパラメータを設定する。
図15は、PC5のハードウェア構成の一例を示す図である。PC5は、ハードウェア構成として、CPU501、ROM502、RAM503、2次記憶装置504、入力装置505、表示装置506、ネットワークI/F507、バス508を含む。
CPU501は、ROM502やRAM503に格納されたプログラムに従って命令を実行する。
ROM502は、不揮発性メモリであり、プログラムやCPU501がプログラムに基づき処理を実行する際に必要なデータ等を格納する。
RAM503は、揮発性メモリであり、フレーム画像データやパターン判別結果等の一時的なデータを記憶する。
2次記憶装置504は、ハードディスクドライブやフラッシュメモリー等の書き換え可能な2次記憶装置であり、画像情報や画像処理プログラムや、各種設定内容等を記憶する。これらの情報はRAM503に転送され、CPU501がプログラムの基づき処理を実行する際に利用される。
入力装置505は、キーボードやマウス等であり、ユーザーからの入力をCPU501に通知する。
表示装置506は、プロジェクタ又は液晶ディスプレイ等であり、図14に示す投影領域画像などのCPU501の処理結果等を表示する。表示装置506は、PC5の外部装置としてもよい。
ネットワークI/F507は、インターネットやイントラネット等のネットワークと接続を行うモデムやLAN等である。
バス508は、これらを接続して相互にデータの入出力を行う。
CPU501が、ROM502又は2次記憶装置504に記憶されたプログラムに基づき処理を実行することにより、情報処理装置としてのPC5の機能及び後述する図19のフローチャートにおけるPC5のステップの処理が実現される。
CPU501は、ROM502やRAM503に格納されたプログラムに従って命令を実行する。
ROM502は、不揮発性メモリであり、プログラムやCPU501がプログラムに基づき処理を実行する際に必要なデータ等を格納する。
RAM503は、揮発性メモリであり、フレーム画像データやパターン判別結果等の一時的なデータを記憶する。
2次記憶装置504は、ハードディスクドライブやフラッシュメモリー等の書き換え可能な2次記憶装置であり、画像情報や画像処理プログラムや、各種設定内容等を記憶する。これらの情報はRAM503に転送され、CPU501がプログラムの基づき処理を実行する際に利用される。
入力装置505は、キーボードやマウス等であり、ユーザーからの入力をCPU501に通知する。
表示装置506は、プロジェクタ又は液晶ディスプレイ等であり、図14に示す投影領域画像などのCPU501の処理結果等を表示する。表示装置506は、PC5の外部装置としてもよい。
ネットワークI/F507は、インターネットやイントラネット等のネットワークと接続を行うモデムやLAN等である。
バス508は、これらを接続して相互にデータの入出力を行う。
CPU501が、ROM502又は2次記憶装置504に記憶されたプログラムに基づき処理を実行することにより、情報処理装置としてのPC5の機能及び後述する図19のフローチャートにおけるPC5のステップの処理が実現される。
図16及び図17は、上述したキャリブレーション処理のステップ1とステップ2との処理を説明するための図である。図16及び図17に示すようにユーザーは、画面に表示するカーソルポイント及びメッセージにしたがって、入力を行う。
図16に示すように、キャリブレーション処理のステップ1では、CPU501は、デスクトップの座標系の既知の所定位置として、ポイント1〜4のようにキャリブレーションポイントを表示する。そして、ユーザーは、点滅するキャリブレーションポイントを順次タッチしていく。このことによって、各座標入力装置のCPU41によって座標値が検出されることとなる。
図16で示したキャリブレーションポイントの位置は、予め決められた位置であったが、図17で示すキャリブレーションポイントは、図16で示したキャリブレーション処理のステップ1で得られた座標値によって、計算された位置である。
図17に示すように、キャリブレーション処理のステップ2では、CPU501は、ポイント5〜8を表示する。上述したように図16のポイント1〜4が検出されることによって、CPU501は、座標入力領域4の重複領域にポイントが表示されるようにする。そして、ポイント5〜8においても、ユーザーは、点滅するキャリブレーションポイントを順次タッチしていく。このことによって、各座標入力装置のCPU41によって座標値が検出されることとなる。
図16に示すように、キャリブレーション処理のステップ1では、CPU501は、デスクトップの座標系の既知の所定位置として、ポイント1〜4のようにキャリブレーションポイントを表示する。そして、ユーザーは、点滅するキャリブレーションポイントを順次タッチしていく。このことによって、各座標入力装置のCPU41によって座標値が検出されることとなる。
図16で示したキャリブレーションポイントの位置は、予め決められた位置であったが、図17で示すキャリブレーションポイントは、図16で示したキャリブレーション処理のステップ1で得られた座標値によって、計算された位置である。
図17に示すように、キャリブレーション処理のステップ2では、CPU501は、ポイント5〜8を表示する。上述したように図16のポイント1〜4が検出されることによって、CPU501は、座標入力領域4の重複領域にポイントが表示されるようにする。そして、ポイント5〜8においても、ユーザーは、点滅するキャリブレーションポイントを順次タッチしていく。このことによって、各座標入力装置のCPU41によって座標値が検出されることとなる。
図18は、図17に示すキャリブレーションのポイント5〜8の算出について説明する図である。
図18において、図16のポイント1を(c0x、c0y)、ポイント3を(c2x、c2y)とすると、c0xとc2xとの間の距離Lは、
L = (0x7FFF − C0x) + (0x7FFF − OV_X * 2) + C2x
となる。ここで、OV_Xは重複領域の幅である。
図17のポイント5を(c4x、c4y)、ポイント7を(c6x、c6y)とすると、c4xの値は、図18に示すx1であり、
x1 = (0x7FFF − C0x) − OV_X / 2
となる。
また、c6xの値は、図18に示すx2であり、
x2 = (0x7FFF − C0x) + (0x7FFF − OV_X * 2) + OV_X / 2
となる。
本実施形態では、c0y、c2y、c4y、c6yは所定値であって同一の値としている。また、同様に、c1y、c3y、c5y、c7yも所定値であって同一の値としている。また、c4x = c5x、c6x = c7x とする。
図18において、図16のポイント1を(c0x、c0y)、ポイント3を(c2x、c2y)とすると、c0xとc2xとの間の距離Lは、
L = (0x7FFF − C0x) + (0x7FFF − OV_X * 2) + C2x
となる。ここで、OV_Xは重複領域の幅である。
図17のポイント5を(c4x、c4y)、ポイント7を(c6x、c6y)とすると、c4xの値は、図18に示すx1であり、
x1 = (0x7FFF − C0x) − OV_X / 2
となる。
また、c6xの値は、図18に示すx2であり、
x2 = (0x7FFF − C0x) + (0x7FFF − OV_X * 2) + OV_X / 2
となる。
本実施形態では、c0y、c2y、c4y、c6yは所定値であって同一の値としている。また、同様に、c1y、c3y、c5y、c7yも所定値であって同一の値としている。また、c4x = c5x、c6x = c7x とする。
上述したキャリブレーションの処理は、キャリブレーションモードとして、PC5で処理されることになる。キャリブレーションモードは、CPU501がプログラムに基づき処理を実行することにより実現されるアプリケーションとして実行され、GUI等を用いて、ユーザーが起動することになる。図19は、キャリブレーションに係る情報処理の一例を示すフローチャートである。
S201において、CPU501は、キャリブレーションモードにおける処理をスタートする。
S202において、CPU501は、表示装置のキャリブレーション画面に予め決められた既知の位置のポイント(C0x、C0y)(C1x、C1y)(C2x、C2y)(C3x、C3y)にカーソルを表示する。ユーザーは、メニューにしたがって順次ポイントをタッチする。
S203において、CPU501は、座標データの取得を行う。
S204において、CPU501は、ポイント4点分の必要な座標データが揃ったかどうかを判定する。CPU501は、ポイント4点分の必要な座標データが揃った場合、S205に進み、ポイント4点分の必要な座標データが揃っていない場合、S203からの処理を繰り返す。
S201において、CPU501は、キャリブレーションモードにおける処理をスタートする。
S202において、CPU501は、表示装置のキャリブレーション画面に予め決められた既知の位置のポイント(C0x、C0y)(C1x、C1y)(C2x、C2y)(C3x、C3y)にカーソルを表示する。ユーザーは、メニューにしたがって順次ポイントをタッチする。
S203において、CPU501は、座標データの取得を行う。
S204において、CPU501は、ポイント4点分の必要な座標データが揃ったかどうかを判定する。CPU501は、ポイント4点分の必要な座標データが揃った場合、S205に進み、ポイント4点分の必要な座標データが揃っていない場合、S203からの処理を繰り返す。
S205において、CPU501は、獲得したデータから重複領域のキャリブレーションポイントの算出を行う。
S206において、CPU501は、S205で算出した重複領域のポイントを表示装置のキャリブレーション画面にポイント(C4x、C4y)(C5x、C5y)(C6x、C6y)(C7x、C7y)としてカーソルを表示する。そして、ユーザーは、メニューにしたがって順次ポイントをタッチする。
S207において、CPU501は、座標データの取得を行う。各ポイントでは、各座標入力領域4での座標検出が行われるので、1ポイントにつき2点の座標が検出され、CPU501によって取得されることになる。
S208において、CPU501は、ポイント8点分の必要な座標データが揃ったかどうかを判定する。CPU501は、ポイント8点分の必要な座標データが揃った場合、S209に進み、ポイント8点分の必要な座標データが揃っていない場合、S207からの処理を繰り返す。
S209において、CPU501は、獲得した合計12点分のキャリブレーションポイントの座標データの保存を行う。
この保存の処理が終了した場合、S210において、CPU501は、キャリブレーションモードにおける処理を終了する。
S206において、CPU501は、S205で算出した重複領域のポイントを表示装置のキャリブレーション画面にポイント(C4x、C4y)(C5x、C5y)(C6x、C6y)(C7x、C7y)としてカーソルを表示する。そして、ユーザーは、メニューにしたがって順次ポイントをタッチする。
S207において、CPU501は、座標データの取得を行う。各ポイントでは、各座標入力領域4での座標検出が行われるので、1ポイントにつき2点の座標が検出され、CPU501によって取得されることになる。
S208において、CPU501は、ポイント8点分の必要な座標データが揃ったかどうかを判定する。CPU501は、ポイント8点分の必要な座標データが揃った場合、S209に進み、ポイント8点分の必要な座標データが揃っていない場合、S207からの処理を繰り返す。
S209において、CPU501は、獲得した合計12点分のキャリブレーションポイントの座標データの保存を行う。
この保存の処理が終了した場合、S210において、CPU501は、キャリブレーションモードにおける処理を終了する。
以上のようにして、各座標入力領域4に対して4点のキャリブレーションポイントに対する座標データが獲得でき、各座標入力領域4の座標変換に使用することができる。結果的に、複数の座標入力装置を連結・組み合わせて、大画面座標入力領域を備えるシステムにおいても、特に連結部(重複領域)にキャリブレーションポイントを表示することによって、キャリブレーションポイント数を削減することにより簡便に指示位置と表示画像との位置合わせが可能となる。
本実施形態においては、いわゆる遮光方式の座標入力装置であったが、遮光方式に限定されるものではない。例えば、カメラで画像処理する方式であっても、座標入力領域4が重複領域を有するような構成である場合も、本実施形態の処理は有効である。
本実施形態においては、いわゆる遮光方式の座標入力装置であったが、遮光方式に限定されるものではない。例えば、カメラで画像処理する方式であっても、座標入力領域4が重複領域を有するような構成である場合も、本実施形態の処理は有効である。
<<実施形態2>>
実施形態1では、キャリブレーションポイントの表示及び各座標入力装置の座標データの統合処理は、CPU501がプログラムを実行することによって実現されるアプリケーションが実行していた。
本実施形態では、座標データの統合処理等を行うモジュールを構成した場合について述べる。図20は、実施形態2のシステムのシステム構成の一例を示した図である。座標入力装置191〜193は、座標データ統合モジュール194に接続される。更に、座標データ統合モジュール194は、図15と同様のハードウェア構成を有するPC195に接続される。
座標データ統合モジュール194は、USB等のシリアル通信機能を有するCPU及びメモリ等で構成されていて、各座標入力装置及びPC195との通信を行うことができる。各座標入力装置との通信には、USBのホスト機能、PC195との通信には、USBのデバイス機能が使用される。このように構成することにより、座標データ統合モジュール194は、USBのデバイスとして、PC195側から見れば、1台のデバイスが接続されているように見える。
座標データ統合モジュール194は、各座標入力装置から、座標入力装置のID、検出座標、検出座標ID、各種イベント情報を通信により受け取る。また、上述したキャリブレーションモードにより、座標データ統合モジュール194は、各キャリブレーションポイントの値、更には、重複領域の範囲情報等をメモリに保存する。そして、座標データ統合モジュール194は、各座標入力装置の検出座標を重複領域やその他の領域について全体の領域で1台のデバイスから出力されているように統合したIDを座標値に付与する等の処理をしてPC195に送信する。
実施形態1では、キャリブレーションポイントの表示及び各座標入力装置の座標データの統合処理は、CPU501がプログラムを実行することによって実現されるアプリケーションが実行していた。
本実施形態では、座標データの統合処理等を行うモジュールを構成した場合について述べる。図20は、実施形態2のシステムのシステム構成の一例を示した図である。座標入力装置191〜193は、座標データ統合モジュール194に接続される。更に、座標データ統合モジュール194は、図15と同様のハードウェア構成を有するPC195に接続される。
座標データ統合モジュール194は、USB等のシリアル通信機能を有するCPU及びメモリ等で構成されていて、各座標入力装置及びPC195との通信を行うことができる。各座標入力装置との通信には、USBのホスト機能、PC195との通信には、USBのデバイス機能が使用される。このように構成することにより、座標データ統合モジュール194は、USBのデバイスとして、PC195側から見れば、1台のデバイスが接続されているように見える。
座標データ統合モジュール194は、各座標入力装置から、座標入力装置のID、検出座標、検出座標ID、各種イベント情報を通信により受け取る。また、上述したキャリブレーションモードにより、座標データ統合モジュール194は、各キャリブレーションポイントの値、更には、重複領域の範囲情報等をメモリに保存する。そして、座標データ統合モジュール194は、各座標入力装置の検出座標を重複領域やその他の領域について全体の領域で1台のデバイスから出力されているように統合したIDを座標値に付与する等の処理をしてPC195に送信する。
このように構成することで、システムの初期設定でキャリブレーションを行ってしまえば、通常の使用状態においては、PC195のアプリケーションにおける各座標入力装置の座標統合処理は、必要ないので、CPU501の使用率を軽減する等の効果がある。
<<実施形態3>>
実施形態1では、座標入力領域4の重複領域において、各座標入力装置で複数検出される座標値は、CPU501が各重複領域のキャリブレーションポイントを境界にして、適宜選択されるように処理していた。
本実施形態においては、CPU501が座標入力領域4の重複領域の範囲で、各座標入力装置で検出される座標データの平均処理を行う場合について述べる。
図21は、本実施形態の処理を説明する図である。座標入力領域201と座標入力領域202との一部分が拡大されて示されている。そして、座標入力領域201の検出範囲204と座標入力領域202の検出範囲203とが図21に示すように所定範囲で重複するように配置されている。線205は、キャリブレーションポイントのY方向を示す線である。
ここで、図21に示すようにAからBまでに入力されたとき、座標入力領域201では、AからCまでのように検出領域端部に向けて曲がったように座標が検出される。これは、上述したセンサユニット1における受光レンズの歪等による誤差によって生じるものである。同様に座標入力領域202では、DからBまでのように座標が検出される。
この場合は、第1実施形態のように、キャリブレーションポイントのY方向で、座標入力領域を切り替えると、少なからず描画の軌跡に段差が生じてしまう。
本実施形態においては、CPU501が重複領域においては、各座標入力領域で検出される座標値に対して平均処理をすることにより、軌跡が図の太線のように描画されるようになる。
CPU501は、平均処理として、検出範囲203では、座標入力領域202の座標値に1倍の加重となるように、また、検出範囲204では、検出範囲203の座標値に1倍の加重となるように処理を行う。また、CPU501は、キャリブレーションポイントのY方向である線205では、両者の座標値の1/2の加重となるように処理を行う。
CPU501は、重複領域の範囲における加重の係数値を、以下のように決定する。即ち、CPU501は、検出範囲203と線205の間では、座標入力領域202の座標値の値を使用し、重複領域の範囲のX方向のどの位置にあるかを算出し、上述したように、検出範囲203で1、線205で0.5の比となるように係数を決定する。同様に、CPU501は、線205と検出範囲204の間では、座標入力領域201の座標値の値を使用し、検出範囲204で1、線205で0.5の比となるように係数を決定する。このように処理することにより、AからBまでの太線で示したようになめらかな軌跡の描画となる。
実施形態1では、座標入力領域4の重複領域において、各座標入力装置で複数検出される座標値は、CPU501が各重複領域のキャリブレーションポイントを境界にして、適宜選択されるように処理していた。
本実施形態においては、CPU501が座標入力領域4の重複領域の範囲で、各座標入力装置で検出される座標データの平均処理を行う場合について述べる。
図21は、本実施形態の処理を説明する図である。座標入力領域201と座標入力領域202との一部分が拡大されて示されている。そして、座標入力領域201の検出範囲204と座標入力領域202の検出範囲203とが図21に示すように所定範囲で重複するように配置されている。線205は、キャリブレーションポイントのY方向を示す線である。
ここで、図21に示すようにAからBまでに入力されたとき、座標入力領域201では、AからCまでのように検出領域端部に向けて曲がったように座標が検出される。これは、上述したセンサユニット1における受光レンズの歪等による誤差によって生じるものである。同様に座標入力領域202では、DからBまでのように座標が検出される。
この場合は、第1実施形態のように、キャリブレーションポイントのY方向で、座標入力領域を切り替えると、少なからず描画の軌跡に段差が生じてしまう。
本実施形態においては、CPU501が重複領域においては、各座標入力領域で検出される座標値に対して平均処理をすることにより、軌跡が図の太線のように描画されるようになる。
CPU501は、平均処理として、検出範囲203では、座標入力領域202の座標値に1倍の加重となるように、また、検出範囲204では、検出範囲203の座標値に1倍の加重となるように処理を行う。また、CPU501は、キャリブレーションポイントのY方向である線205では、両者の座標値の1/2の加重となるように処理を行う。
CPU501は、重複領域の範囲における加重の係数値を、以下のように決定する。即ち、CPU501は、検出範囲203と線205の間では、座標入力領域202の座標値の値を使用し、重複領域の範囲のX方向のどの位置にあるかを算出し、上述したように、検出範囲203で1、線205で0.5の比となるように係数を決定する。同様に、CPU501は、線205と検出範囲204の間では、座標入力領域201の座標値の値を使用し、検出範囲204で1、線205で0.5の比となるように係数を決定する。このように処理することにより、AからBまでの太線で示したようになめらかな軌跡の描画となる。
以上説明したように、本実施形態の処理によれば、各座標入力領域の端部で誤差が生じても、出力する座標値は誤差を軽減させて出力させることができるようになる。
<<その他の実施形態>>
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給する。そして、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読み出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給する。そして、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読み出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
以上、本発明の好ましい実施形態について詳述したが、本発明は係る特定の実施形態に限定されるものではない。上述した実施形態を任意に組み合わせて実施してもよい。
以上、上述した各実施形態によれば、連結部(重複領域)の精度を維持し、簡便に選択位置と表示位置との位置合わせを可能とすることができる。
1A〜1L センサユニット
2A〜2F 制御・演算ユニット
4A〜4C 入力領域
5 PC
501 CPU
2A〜2F 制御・演算ユニット
4A〜4C 入力領域
5 PC
501 CPU
Claims (6)
- 表示装置の画面に第1のポイントを表示する第1の表示手段と、
前記第1の表示手段により表示された第1のポイントを選択されたことに基づき検出された座標データを、座標検出領域が重複し、重複領域を有するよう構成された複数の座標入力装置から取得する第1の取得手段と、
前記第1の取得手段により取得された座標データに基づき、前記画面の、前記重複領域に対応する位置に第2のポイントを表示する第2の表示手段と、
前記第2の表示手段により表示された第2のポイントを選択されたことに基づき検出された座標データを、前記複数の座標入力装置から取得する第2の取得手段と、
前記第1の取得手段により取得された座標データと、前記第2の取得手段により取得された座標データと、に基づいて、選択位置と、表示位置との位置合わせを行う位置合わせ手段と、
を有する情報処理装置。 - 前記第1の表示手段は、前記画面の、前記重複領域の外側の領域に対応する位置に前記第1のポイントを表示する請求項1記載の情報処理装置。
- 前記第1の取得手段は、前記複数の座標入力装置に接続され、座標データを統合する統合装置より、前記第1のポイントを選択されたことに基づき検出された座標データを取得し、
前記第2の取得手段は、前記統合装置より、前記第2のポイントを選択されたことに基づき検出された座標データを取得する請求項1又は2記載の情報処理装置。 - 前記第2の取得手段により取得された座標データの平均処理を行う制御手段を更に有し、
前記位置合わせ手段は、前記第1の取得手段により取得された座標データと、前記平均処理が行われた前記第2の取得手段により取得された座標データと、に基づいて、選択位置と、表示位置との位置合わせを行う請求項1乃至3何れか1項記載の情報処理装置。 - 情報処理装置が実行する情報処理方法であって、
表示装置の画面に第1のポイントを表示する第1の表示ステップと、
前記第1の表示ステップにより表示された第1のポイントを選択されたことに基づき検出された座標データを、座標検出領域が重複し、重複領域を有するよう構成された複数の座標入力装置から取得する第1の取得ステップと、
前記第1の取得ステップにより取得された座標データに基づき、前記画面の、前記重複領域に対応する位置に第2のポイントを表示する第2の表示ステップと、
前記第2の表示ステップにより表示された第2のポイントを選択されたことに基づき検出された座標データを、前記複数の座標入力装置から取得する第2の取得ステップと、
前記第1の取得ステップにより取得された座標データと、前記第2の取得ステップにより取得された座標データと、に基づいて、選択位置と、表示位置との位置合わせを行う位置合わせステップと、
を含む情報処理方法。 - コンピュータを、請求項1乃至4何れか1項記載の情報処理装置の各手段として機能させるためのプログラム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015160601A JP2017040979A (ja) | 2015-08-17 | 2015-08-17 | 情報処理装置、情報処理方法及びプログラム |
US15/234,386 US20170052642A1 (en) | 2015-08-17 | 2016-08-11 | Information processing apparatus, information processing method, and storage medium |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015160601A JP2017040979A (ja) | 2015-08-17 | 2015-08-17 | 情報処理装置、情報処理方法及びプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2017040979A true JP2017040979A (ja) | 2017-02-23 |
Family
ID=58158046
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015160601A Pending JP2017040979A (ja) | 2015-08-17 | 2015-08-17 | 情報処理装置、情報処理方法及びプログラム |
Country Status (2)
Country | Link |
---|---|
US (1) | US20170052642A1 (ja) |
JP (1) | JP2017040979A (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6569449B2 (ja) * | 2015-10-08 | 2019-09-04 | セイコーエプソン株式会社 | 表示システム、プロジェクター及び表示システムの制御方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7355593B2 (en) * | 2004-01-02 | 2008-04-08 | Smart Technologies, Inc. | Pointer tracking across multiple overlapping coordinate input sub-regions defining a generally contiguous input region |
-
2015
- 2015-08-17 JP JP2015160601A patent/JP2017040979A/ja active Pending
-
2016
- 2016-08-11 US US15/234,386 patent/US20170052642A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
US20170052642A1 (en) | 2017-02-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4442877B2 (ja) | 座標入力装置およびその制御方法 | |
JP4405766B2 (ja) | 座標入力装置、座標入力方法 | |
JP5366789B2 (ja) | 入力指示具及びその制御方法、並びに座標入力装置 | |
JP4891179B2 (ja) | 座標入力装置、座標入力方法 | |
JP4185825B2 (ja) | 座標入力装置及びその制御方法、情報処理装置、プログラム | |
US8941622B2 (en) | Coordinate input apparatus | |
JP5806573B2 (ja) | 座標入力装置およびその制御方法、座標入力システム | |
JP2005276019A (ja) | 光学式座標入力装置 | |
JP2017040979A (ja) | 情報処理装置、情報処理方法及びプログラム | |
JP5814608B2 (ja) | 座標入力装置及びその制御方法、プログラム | |
JP2012048403A (ja) | 座標入力装置及びその制御方法、プログラム | |
JP5049747B2 (ja) | 座標入力装置及びその制御方法、プログラム | |
JP2006350908A (ja) | 光学式情報入力装置 | |
JP2004185283A (ja) | 光学式座標入力装置 | |
JP6334980B2 (ja) | 座標入力装置及びその制御方法、プログラム | |
JP2005173684A (ja) | 光学式座標入力装置 | |
JP2006059153A (ja) | 光学式座標入力装置 | |
JP2006018566A (ja) | 光学式座標入力装置 | |
JP5865053B2 (ja) | 座標入力装置、座標入力装置の制御方法、およびプログラム | |
JP2005346230A (ja) | 光学式座標入力装置 | |
JP4423113B2 (ja) | 座標入力装置及びその制御方法、プログラム | |
JP2017016531A (ja) | 座標入力装置、その制御方法及びプログラム | |
JP4125162B2 (ja) | 座標入力装置 | |
JP2005352756A (ja) | 遮光型座標入力装置及び座標入力方法 | |
JP2016045894A (ja) | 座標入力装置、座標入力装置の制御方法およびプログラム |