以下、本発明の実施の形態について図面を参照しながら説明する。
(第1の実施の形態)
図1は本発明の第1の実施の形態に係る座標入力装置の主要部構成を示す平面図、図2は図1の再帰反射部材103の再帰反射の状態を示す平面図、図3は図1の入力部104と平行に通過する光(座標センサユニット101L,101Rの投光手段から投光された光または再帰反射された光)の一部が所望の位置を指示する指示具によって遮られた状態を模式的に示す図である。
座標入力装置は、図1に示すように、座標検出用投光手段および座標検出用受光手段を有する座標センサユニット101L,101Rと、平面状の入力部104と、再帰反射面を有する再帰反射部材103と、制御ユニット102と、後述する先端スイッチ付きペンからのペンスイッチ信号を検出するためのペンスイッチ信号検出ユニット110とを備える。
座標センサユニット101L,101Rは、互いに間隔を置いて配置され、座標センサユニット101L,101Rは、制御および演算を行う制御ユニット102に接続され、制御信号を制御ユニット102から受け取り、また検出した信号を制御ユニット102に送信する。再帰反射部材103は、図2に示すように、再帰反射面で、座標センサユニット101L,101Rの座標検出用投光手段などから入射した光をその到来方向すなわち座標センサユニット101L,101Rに向けて反射する。
座標センサユニット101L,101Rの座標検出用受光手段は、再帰反射された光を受光する。座標検出用受光手段は、集光光学系、ラインCCDなどによって構成され、再帰反射された光は、ラインCCDによって1次元的に検出され、その光強度分布は、制御ユニット102に送られる。
入力部104は、プラズマディスプレイ、リアプロジェクタ、液晶ディスプレイなどの表示装置で構成され、インタラクティブな入力装置として利用可能である。
ペンスイッチ信号検出ユニット110は、本実施の形態においては先端スイッチ付ペンから送信されるペンスイッチ信号が赤外線などの光信号であるので、受光手段から構成される。これに対し、ペンスイッチ信号が電磁波であれば、ペンスイッチ信号検出ユニット110は、アンテナや共振回路などから構成される。
このような構成において、図3に示すように、先端スイッチ付ペン、通常のペン(先端にスイッチが設けられていないもの)、指などの指示具200を用いて入力部104上の所望の位置を指示(接触指示)すると、入力部104と平行に通過する光(座標センサユニット101L,101Rの投光手段から投光された光または再帰反射された光)の一部が、所望の位置を指示する指示具によって遮られ、その部分のみ光強度が小さくなる。その結果、入力指示位置のみが小さい光強度となる光強度分布が検出される。
制御ユニット102は、左右の座標センサユニット101L,101Rで検出された光強度分布の変化から、入力指示された部分の遮光範囲を検出し、同範囲内にある検出点を特定してそれぞれの角度を算出する。そして、算出された角度および座標センサユニット101L,101R間の距離などに基づいて、入力部104上の指示された位置の座標値を算出し、その座標値を、USBなどのインタフェースを介してPCへ出力する。
本実施の形態においては、先端スイッチ付ペンを用いて座標入力を行う第1のモード(以下、ペンモードという)と、通常のペン(先端にスイッチが設けられていないもの)および指などの指示具を用いて座標入力を行う第2のモード(以下、指モードという)とを選択的に切り替え可能であり、この切り替えは、先端スイッチ付ペンから送信されるペンスイッチ信号と後述する遮光深さSdpthの変化(指示具の操作状態の変化)とに基づいて行われる。この切り替えの詳細については後述する。
次に、座標センサユニット101L,101Rの構成について図4を参照しながら説明する。図4は図1の座標センサユニット101L,101Rの構成を示す平面図である。
座標センサユニット101L,101Rは、図4に示すように、座標検出用投光手段と、座標検出用受光手段とを有し、この座標検出用投光手段は、赤外光を発する赤外LED131と、赤外LEDから発光した光をπ/2(rad)の水平方向角度範囲に上下方向に制限された光束として投光する投光レンズ132とから構成される。座標検出用投光手段は、その投光レンズ132からの光が主に再帰反射部材103に向けて投光されるように位置決めされている。座標検出用受光手段は、1次元のラインCCD141、集光光学系としてのレンズ142,143、入射光の入射方向を制限する絞り144、可視光など不要な波長領域の光の入射を防止する赤外フィルタ145から構成される。ここで、ラインCCD141に代えて、CMOS構造のラインセンサを用いることも可能である。
上記座標検出用投光手段からの光は、再帰反射部材103によって反射され、その再帰反射光は赤外フィルタ145、絞り144を通過する。そして、集光用レンズ142,143によって入力面の略π/2(rad)範囲の光が、ラインCCD141の入射角に依存した画素上に結像される。よって、ラインCCD141により、角度毎の光量分布が検出されることになる。すなわち、画素番号が角度情報を表すことになる。
次に、上記再帰反射部材103について図5を参照しながら説明する。図5(a)は平坦に構成されたテープ状の再帰反射部材の入射角度に対する反射特性を示す図、図5(b)は図1の再帰反射部材103の形状を示す斜視図である。
再帰反射部材として、平坦に構成されたテープ状のものを用いる場合、この再帰反射部材は、図5(a)に示すような入射角度に対する反射特性を有する。この場合、再帰反射部材からの角度がπ/4(rad)を超えるあたりから反射光量が減少し、本実施の形態のように、何らかの遮蔽物がある場合と無い場合とを見分ける必要があるときには、その差異が充分に判別することができないことになる。
ここで、トータルとしての光強度は、投光側の照明強度および再帰反射部材までの距離、再帰反射部材の反射率(入射角度、反射部材の幅)、結像系照度(コサインの4乗則)によって決まる。そこで、トータルとしての光強度が不足する場合は、照明強度を上げることが考えられるが、この場合、トータルとしての光強度分布が不均一になり、強い部分の光を受光したときに受光手段のCCDなどが飽和することがある。よって、照明強度を上げるには限界がある。
これを解決する手段の一つとして、再帰反射部材の反射の分布をなるべく均一にすることによって光強度分布の弱い部分への入射光強度の増大を望むことができる。よって、角度方向に対して均一化を図るために、本実施の形態においては、図5(b)に示すような三角柱を並べた形状の部材に再帰反射テープを貼り付けことによって、再帰反射部材103が構成される。なお、上記三角柱の角度は、上記再帰反射テープの反射特性から決定すればよく、また、そのピッチは、受光手段のラインCCD141の検出分解能以下に設定することが望ましい。
次に、指示具として使用される先端スイッチ付ペンについて図6を参照しながら説明する。図6は図1の座標入力装置の指示具として用いられる先端スイッチ付ペンの先端部を示す斜視図である。
指示具200として用いられる先端スイッチ付ペンは、図6に示すように、先端に設けられているペン先スイッチ201を有する。ペン先スイッチ201は、先端スイッチ付ペンのタッチダウンを検知するためのスイッチであり、短いストロークで小さい力で動作可能なスイッチである。これにより、先端スイッチ付ペンを操作する際に、インクペンで紙に文字などを書く際の感触に近い感触を得ることができる。ペン先スイッチ201が入力部104に押し当てられるなどによってオンすると、複数のLED203が赤外線を媒体としてペンスイッチ信号を発信する。このペンスイッチ信号をペンスイッチ信号検出ユニット110に到達させるためには、先端スイッチ付ペンから入力部104にほぼ平行な全方向に均等に赤外線を照射する必要があるので、複数のLED203は、先端スイッチ付ペン先端部に円周方向に沿って等間隔で配列されている。本実施の形態においては、円周方向に6個のLED203が配置されている。
次に、ペンスイッチ信号検出ユニット110について図7〜図9を参照しながら説明する。図7は図1のペンスイッチ信号検出ユニット110の構成を示す平面図、図8は図7のペンスイッチ信号処理回路112の構成を示すブロック図、図9は先端スイッチ付ペンから送信されるペンスイッチ信号の構成の一例を示す図である。
ペンスイッチ信号検出ユニット110は、図7に示すように、それぞれ所定の角度範囲を受け持つ複数のフォトダイオード111と、ペンスイッチ信号処理回路112とから構成される。フォトダイオード111は、受光したペンスイッチ信号を電気信号へ変換し、この電気信号は、ペンスイッチ信号処理回路112に入力される。ペンスイッチ信号処理回路112は、図8に示すように、フォトダイオード111から入力された信号を増幅する増幅器112aと、増幅器112aの出力を入力する500KHzのバンドパスフィルタ112bと、バンドパスフィルタ112bの出力を整流する整流回路112cと、整流回路112cの出力を平滑化する平滑化回路112dと、平滑化回路112dの出力を2値化された2値化回路112eとを有する。この2値化回路112eで2値化された信号は、送信されたペンスイッチ信号を復元した時系列データであり、このデータは、制御ユニット102に送られる。
ここで、先端スイッチ付ペンから送信されるペンスイッチ信号は、例えば図9に示すように500KHzで変調されたバースト信号であり、8ビットの時系列信号である。このペンスイッチ信号において、その1ビット目はスタートビットで、8ビット目はストップビットであり、どちらも常に“1”である。2,3,4ビット目は、D1,D2,D3,であり、5,6,7ビット目は、それらの反転信号である/D1,/D2,/D3であり、D1,D2,D3は、それらの反転信号/D1,/D2,/D3と比較して正しい関係にある場合のみ真値として取り込まれる。
一方、座標センサユニット101L,101RのLED132からは、遮光用の赤外光が発せられているので、これらとペンスイッチ信号の干渉を考慮する必要がある。そこで、この干渉を避けるために、座標センサユニット101L,101RのLED132の発光タイミングまたはラインCCD141の受光タイミングが上記ペンスイッチ信号と重複しないようなタイミングシーケンスが構成され、このタイミングシーケンスがペンスイッチ信号の受信タイミングと同期するように、座標センサユニット101L,101Rが動作される。
次に、制御ユニット102について図10を参照しながら説明する。図10は図1の制御ユニット102の構成を示すブロック図である。
制御ユニット102と座標センサユニット101L,101Rの間では、ラインCCD141の制御信号、CCD用クロック信号、ラインCCD141の出力信号および、LED131の駆動信号がやり取りされている。制御ユニット102は、図10に示すように、ROM189に格納されている制御プログラムに従って対応する制御および処理を実行するCPU183と、CPU183の作業領域を提供するRAM186と、A/Dコンバータ181L,181Rと、メモリ182と、座標センサユニット101L,101RのLED131のLED駆動回路185L,185Rと、クロック発生回路187とを有する。
CPU183は、座標センサユニット101L,101RのラインCCD141のシャッタタイミングや、データの出力制御などを行う。具体的には、ラインCCD141の制御信号がCPU183から座標センサユニット101L,101Rに送出され、また、CPU183の制御下で、ラインCCD141のクロックがクロック発生回路187から座標センサユニット101L,101Rに送出される。このクロックは、ラインCCD141の動作などと同期をとるために、CPU183にも入力される。また、CPU183は、座標センサユニット101L,101RのLED131の駆動信号を、LED駆動回路185L,185Rを介して、座標センサユニット101L,101Rに送出する。
座標センサユニット101L,101RのラインCCD141の出力信号は、それぞれ、制御ユニットのADコンバータ181L,181Rでデジタルデータに変換され、変換されたデジタルデータは、CPU183を介して、メモリ182に記憶される。CPU183は、上記デジタルデータに基づいて、遮光波形の取り込みを行い、さらには遮光深さおよび座標計算を行う。そして、CPU183は、座標計算によって得られた指示位置の座標値を、USBなどのインタフェース188を介して、PCへ送信する。
ペンスイッチ信号検出力ユニット110で復元されたペンスイッチ信号は、CPU183に取り込まれ、CPU183は、上記ペンスイッチ信号に基づいて、指示具の状態判別、さらにはモード判別を行う。
次に、座標センサユニット101L,101RのLED131を発光させ、ラインCCD141から光強度分布データを読み出すシーケンスについて図11を参照しながら説明する。図11は座標センサユニット101L,101RのLED131を発光させ、ラインCCD141から光強度分布データを読み出すシーケンスを示す図である。
CPU183は、図11に示すように、所定の周期毎にタイミングシーケンスのスタートパルスであるCCDクリアを座標センサユニット101L,101Rに与え、これを基準としてラインCCD141の露光期間パルスCCD_L,CCD_Rおよび露光期間に包含される形でLED発光パルスLED_L,LED_Rを座標センサユニット101L,101Rに与える。
上記露光期間パルスCCD_L,CCD_Rにより規定された露光期間中に、露光によって得られた座標センサユニット101L,101RのそれぞれのラインCCD141の電気信号が同時に光強度分布データとしてCPU183またはメモリ182に転送される。その後、CPU183は、上記光強度分布データに基づいて、光強度分布データの中の遮光位置を検出するとともに、指示具の状態の判定、および指示具によって指示された位置の座標計算(X−Y座標上の位置の計算)を行う。そして、CPU183は、モード判定を行うとともに、得られた座標値をPCへ送信する。
次に、光強度分布から遮光位置を検出する場合の手順について図12〜図16を参照しながら説明する。図12はラインCCD141の出力から得られた光強度分布の一例を示す図、図13はラインCCD141の出力から得られた光強度分布の他の例を示す図、図14はある遮光状態において所定の式を用いて求められた相対強度分布Norm_Data[i]の一例を示す図、図15は光強度分布の遮光部分の状態を示す図、図16は遮光部分を拡大して、画素単位の信号を示す図である。
座標センサユニット101L,101RのラインCCD141から読み出される信号から得られる光強度分布としては、指示具による遮光がないすなわち指示具による入力がない場合、図12に示すような出力すなわち光強度分布が得られる。もちろん、この分布は、座標センサユニット101L,101RのLED131などの投光側の指向性、再帰反射部材103の特性、ラインCCD141などの受光側の指向性、入力部104のスクリーン表面の反射、スクリーン表面の変形、経時変化(反射面の汚れなど)によって、様々に決まるものである。
これに対し、入力指示に伴い先端スイッチ付ペン、通常のペン(先端にスイッチが設けられていないもの)、指などの指示具で光が遮られた場合、図13に示すような出力すなわち光強度分布が得られる。この出力の例においては、Cの部分が、光が遮られた部分に対応し、そこの光強度は他の部分より小さい。この遮光位置は、遮光があるときとないときの光強度分布の変化から求められる。具体的には、図12のような入力がない(遮光がない)状態が初期状態として予め記憶され、それぞれの1サンプルシーケンスにおいて図13のような変化があるかないかが初期状態との差分によって検出され、その検出された差分から変化があったと判断された部分が遮光位置として求められる。そして、遮光位置に対応するデータに所定の変換処理が施され、ラインCCD141に入射する光の入射角度が求められる。
ここでは、説明のために、座標センサユニット101L,101RのラインCCD141の有効画素数をNとし、画素番号に伴って分布する物理量を要素i(i=1〜N)の行列で以下のように表現するものとする。
Blind_Data[i]:投光手段が照明しないときにラインCDD141で得られる暗時ノイズ分布
Ref_Data_abs[i]:投光手段が照明し、かつ遮光なし(指示具や指による入力なし)のときにラインCCD141で得られる光の強度分布
CCD_Data_abs[i]:投光手段が照明し、かつ遮光あり(指示具や指による入力あり)のときにラインCCD141で得られる光の強度分布
次に、座標センサユニット101L,101Rの有効再帰反射領域のデータに対する処理について説明する。なお、ここでは、一方の座標センサユニットによる有効再帰反射領域のデータに対する処理を説明するが、他方のデータに対しても同様の処理が行われる。
ここでは、Ref_Data_abs[i]、CCD_Data_abs[i]からBlind_Data[i]を差し引いたものを次のように定義する。
Ref_Data[i]=Ref_Data_abs[i]−Blind_Data[i] …(1)
CCD_Data[i]=CCD_Data_abs[i]−Blind_Data[i] …(2)
また、相対強度分布Norm_Data[i]を、Ref_Data[i]に対するCCD_Data[i]の比率として次のように定義する。
Norm_Data[i]=CCD_Data[i]/Ref_Data[i] …(3)
電源投入時、入力がない状態で、まず投光手段から照明することなく、ラインCCD141の出力がAD変換され、これがBlind_Data[i]として、メモリ182に記憶される。これは、ラインCCD141の感度のばらつきなどを評価するデータとなり、例えば図12および図13のBのレベル付近のデータ(破線)となる。
次に、投光手段により照明が行われた状態での光量分布がRef_Data_abs[N]としてメモリ182に記憶される。これは、例えば図12の実線で表されたデータである。ここで、ラインCCD141の感度むらやばらつきを補正するために、上記式(1)を用いてRef_Data[i]が算出される。
これで、基本的な初期設定が終了し、通常のサンプリングループが開始される。通常のサンプリングでは、まず、CCD_Data_abs[i]が測定される。次に、ラインCCD141の感度むらやばらつきを補正するために、上記式(2)により、CCD_Data[i]が算出される。そして、純粋に遮光状態を表現する物理量としての相対強度分布Norm_Data[i]が上記式(3)を用いて算出される(図14を参照)。
以上のように、常に絶対強度分布から照明なしの場合の強度分布を差し引くことにより、ラインCCD141の感度むら、ばらつきなどの影響を回避することができ、また、常に遮光なしの場合の強度分布をリファレンスとして、所定の式を用いて遮光ありの場合の強度分布を算出することにより、投光側の輝度分布の変動、反射部材などの光学系の変動に影響されることなく、適正な遮光状態の光強度分布すなわち遮光状態を表現する物理量であるNorm_Data[i]を得ることができる。
そして、このようにして得られたNorm_Data[i]に基づいて、遮光量(図15の斜線部の面積S_elc)および遮光位置(画素番号)Npが求められる。また、この遮光量S_elcに基づいて後述する遮光深さSdpthが求められる。
具体的には、図15および図16に示すように、閾値Vth_posiと相対強度分布Norm_Data[i]との関係からその立ち上がり部と立ち下り部の画素番号とが求められ、両者の中央位置の画素番号に対応する画素が入力画素とされ、角度が求められる。図16の例においては、(Nr−1)番目とNr番目の画素の間にある画素が閾値Vth_posiに対応する立ち上がり部の画素となり、その画素番号は以下の式(4)で仮想画素番号として求められる。また、(Nf−1)番目の画素とでNf番目の画素の間にある画素が閾値Vth_posiに対応する立ち下がり部の画素となり、その画素番号は以下の式(5)式で仮想画素番号として求められる。後述するように、上記式(4)および(5)で求められる画素番号は、小数を含む番号であり、これは、最小の分解能が画素間隔(整数)となることを回避するためである。
ここで、Nr番目の画素のレベルをLr、(Nr−1)番目の画素のレベルをLr-1とする。また、Nf番目の画素のレベルをLf、Nf−1番目の画素のレベルをLf-1とし、立ち上がり部に対応する画素の仮想画素番号をNrv、立ち下がり部に対応する画素の仮想画素番号をNfvとすれば、それぞれの仮想画素番号Nrv,Nfvは、
Nrv=(Nr−1)+(Vthr−Lr-1)/(Lr−Lr-1) …(4)
Nfv=(Nf−1)+(Vthr−Lf-1)/(Lf−Lf-1) …(5)
と表される。
そして、仮想画素番号Nrvの画素と仮想画素番号Nfvの画素との間にある仮想中心画素の仮想画素番号Npvは、次の式(6)で求められる。
Npv=Nrv+(Nfv−Nrv)/2 …(6)
ここで仮想画素番号Npvは、上記波形から求められた遮光位置に対応する画素位置を表すものである。このように、画素番号とそのレベルから仮想的な画素番号を計算することによって、高い分解能での遮光位置の検出を行うことができる。
これに代えて、例えば、簡易的に、次の式(7)を用いて仮想中心画素を求めるようにしてよい。ここで、仮想中心画素の仮想画素番号Npとする。
Np=Nr+(Nf−Nr)/2 …(7)
この場合、上記式(6)の場合と異なり、最小の分解能が画素間隔(整数)になる。すなわち画素ピッチで量子化された値となる。
次に、上記仮想画素番号Npvから実際の座標値を計算するためには、角度情報への変換が必要である。後述する実際の座標計算においては、角度における正接(tangent)の値を求めるほうが都合がよい。ここでは、仮想画素番号Npvからtanθへの変換には、テーブル参照や変換式が用いられる。例えば、実際の測定により所定のデータが求められ、このデータに対して近似式が作成され、その近似式用いて画素番号からtanθへの変換が行われる。この近似式すなわち変換式は、例えば高次の多項式を用いると、精度を確保することができるが、次数などは計算能力および要求精度などを鑑みて決定すればよい。
例えば5次多項式を用いる場合には、係数が6個必要になるので、出荷時などにこのデータを不揮発性メモリなどに記憶しておけばよい。今、5次多項式の係数をL5,L4,L3,L2,L1,L0としたとき、tanθは次の式(8)で表される。
tanθ=((((L5*Npv+L4)*Npv+L3)*Npv+L2)*Npv+L1)*
Npv+L0 …(8)
このような計算が各座標センサユニット101L,101Rの出力に対して行われ、各座標センサユニット101L,101Rのそれぞれの角度データを得ることができる。
もちろん、上記例ではtanθを求めているが、まず、角度そのものを求め、その後にtanθを求めるようにしても構わない。
次に、上記角度データtanθから遮光位置の座標を計算する手順について図17を参照しながら説明する。図17は入力部114の画面座標と各座標センサユニット101L,101Rとの位置関係を示す平面図である。
各座標センサユニット101L,101Rは、図17に示すように、入力部104の下辺左右にそれぞれ取り付けられており、その間の距離はDsで表される。ここで、入力部104の画面中央が原点位置とされ、位置P0は、それぞれの座標センサユニット101L,101Rの基準角度0を表す直線の交点である。
ユーザが指示具で入力部104の画面上の位置P(x,y)を指示した場合、座標センサユニット101L,101Rのそれぞれの出力に基づいて上記基準角度θL,θRに対するtanθL,tanθRが上記多項式(8)を用いて算出される。そして、上記点Pのx,y座標が、次の(9)および(10)式に基づいて算出される。
x=(Ds/2)*(tanθL+tanθR)/(1+(tanθL*tanθR))…(9)
y=−(Ds/2)*(tanθR−tanθL−(2*tanθL*tanθR))
/(1+(tanθL*tanθR))+P0Y …(10)
次に、遮光量に基づいたペンアップダウンの状態判別について図18を参照しながら説明する。図18は図1の座標入力装置における遮光量に基づいたペンアップダウンの状態判別の原理を模式的に示す図である。ここで、ペンアップダウンの状態判別とは、後述する指示具の入力部104のスクリーン面に対する状態を表す遮光深さSdpthが、入力部104のスクリーン面に対して後述するいずれの状態(A,B,C状態)にあるかを判別することをいい、上記指示具には、先端スイッチ付ペン、通常のペン(先端にスイッチが設けられていないもの)および指が含まれる。
本実施の形態においては、図18に示すように、遮光深さSdpthに対して、2つの閾値(閾値TH1と閾値TH2)が設けられ、これらの閾値によって、遮光深さSdpthの状態がA状態(0%〜閾値TH1)、B状態(閾値TH1〜TH2)、C状態(閾値TH2〜100%)の3つに分けられる。また、遮光の深さではないが、先端スイッチ付ペンのタッチダウンを検知した状態を論理Dで表す(D=1:タッチダウン検知状態、D=0:タッチダウン非検知状態)。D領域は実質的に遮光深さがほぼ100%に近い状態なので、D=1の領域をD領域と表すものとする。
ペンモード(先端スイッチ付ペンを用いて指示入力を行うモード)の場合、遮光深さSdpthがA状態にあるときには、その際の先端スイッチ付ペンの指示位置は座標検出無効位置にあると判定され、B状態およびC状態(但し、D領域を除く)にあるときには、先端スイッチ付ペンが入力部104のスクリーン面から離れたペンアップ状態と判定される。そして、遮光深さSdpthがD領域すなわち100%にあるときには、先端スイッチ付ペンが入力部104のスクリーン面と接触状態にあるペンダウン状態と判定される。
指モード(通常のペン(先端にスイッチが設けられていないもの)および指などの指示具を用いて座標入力を行うモード)の場合、遮光深さSdpthがA状態にあるときには、その際の指示具の指示位置は座標検出無効位置にあると判定され、B状態にあるときには、指示具が入力部104のスクリーン面から離れたペンアップ状態と判定される。そして、遮光深さSdpthがC状態にあるときには、指示具が入力部104のスクリーン面と接触状態にあるペンダウン状態と判定される。
次に、本実施の形態の座標入力装置の動作について図19を参照しながら説明する。図19は図1の座標入力装置の動作の手順を示すフローチャートである。本図のフローチャートで示す手順は、CPU183(図10に示す)がROM189に格納されているプログラムに従って実行されるものである。
本実施の形態においては、一旦、上記A状態(有効な遮光なし)になると、状態がスタートまたはリセットされた状態すなわち初期状態に移行される。ここで、初期状態においては、ペンモードが設定されている。また、図19に示すフローチャートにおいて、●Dcは、i番目の波形の遮光検出および座標演算と、状態判別とをそれぞれ行う処理を表す。○Puは、i番目の座標データとペンアップ情報を送信することを表す。○Pdは、i番目の座標データとペンダウン情報を送信することを表す。◎は、過去のj番目の座標データ呼び出しを表し、破線は過去のj番目の座標データ呼び出しを表す。
CPU183は、図19に示すように、まず、波形データを取り込み(Dc)、先端スイッチ付ペンのスイッチからのペンスイッチ信号(スイッチがオン)を受信したか否かの判別を行う(ステップS101)。ここで、D=0の場合すなわちペンスイッチ信号が受信していない場合、CPU183は、遮光深さSdpthがA状態にあるかB状態にあるかの判別を行う(ステップS102)。そして、遮光深さSdpthがA状態にある場合、CPU183は、再度波形データの取り込み(Dc)を行う。これに対し、遮光深さSdpthがB状態にある場合、CPU183は、i番目の座標データとペンアップ情報とを組み合わせたデータを送信した(Pu)後、F5へ進む。そして、CPU183は、さらに、波形データを取り込み(Dc)、このときにペンスイッチ信号を受信していれば(ステップS103)、ペンダウン状態と判断して座標データと該ペンダウンの情報とを組み合わせたデータを送信した(Pd)後、F5へ戻る。
これに対し、ペンスイッチ信号を受信していなければ(ステップS103)、CPU183は、遮光深さSdpthがA状態、B状態、C状態のいずれにあるかを判別する(ステップS104)。ここで、遮光深さSdpthがA状態であれば、CPU183は、指示具が入力部104の入力領域から除かれたと判断し、F1へ戻る。遮光深さSdpthがB状態であれば、CPU183は、ペンアップ状態と判断し、座標データと該ペンアップの情報とを組み合わせたデータを送信し(Pu)、F5へ戻る。遮光深さSdpthがC状態であれば、CPU183は、座標データと該ペンアップの情報とを組み合わせたデータを送信した(Pu)後、今回のC状態がA状態の後の一回目のC状態であるか否かを判定する(ステップS105)。ここで、今回のC状態がA状態の後の一回目のC状態である場合とは、指示具が入力領域に挿入された直後の場合を意味する。
今回のC状態がA状態の後の一回目のC状態でないと判定された場合(ステップS105)、CPU183は、F5へ戻る。これに対し、今回のC状態がA状態の後の一回目のC状態でないと判定された場合(ステップS105)、CPU183は、サンプリング番号iをN2として保存し、経過時間Tをリセットし、カウントを開始する。また、CPU183は、移動距離の累積Dstをリセットし、移動距離dst(i)の累積Dstを開始する。ここで、移動距離dst(i)は、i番目の座標サンプルにおける前回サンプルからの移動距離であり、次の式(11)で表される。また、累積Dstは、次の式(12)で表される。
次いで、CPU183は、波形データを取り込んだ(Dc)後、ペンスイッチ信号を受信したか否かの判定(ステップS107)、経過時間Tが時間T1を超えたか否かの判定(ステップS1081)、累積Dstが所定距離Dst1を超えたか否かの判定(ステップS1802)、T*Dstが所定数K1を超えたか否かの判定(ステップS1083)、遮光深さSdpthがB状態であるか否かの判定(ステップS109)のそれぞれを行う。
ここで、ペンスイッチ信号を受信した場合(ステップS107)、CPU183は、i番目の座標データとペンダウン情報を送信した(Pd)後、F5へ戻る。また、上記ステップS1081,S1082,S1083において応答が否定で、最終的にステップS109において遮光深さSdpthがB状態でないと判定された場合、CPU183は、移動距離dst(i)を累積Dstに累積(ステップS110)し、次の波形データの取り込みを行い(Dc)、ステップS107から繰り返す。
上記ステップS1081,S1082,S1083,ステップS109にいずれかにおいて応答が肯定であれば、CPU183は、ペンモードから指モードへ移行するための辻褄合せを行うために、F2へ移行する。そして、CPU183は、サンプリング番号iをN3として保存し、呼び出す過去のサンプリング番号jをN2またはN3−N0に設定する(ステップS111)。
次いで、CPU183は、過去のj番目の座標データを呼び出し、座標データと該ペンダウンの情報とを組み合わせたデータを送信する。そして、CPU183は、サンプリング番号jがN3より大きいか否かを判定する(ステップS113)。ここで、サンプリング番号jがN3より大きくないときには、CPU183は、jを1インクリメントして、次の座標データを呼び出す。
上記ステップS113においてサンプリング番号jがN3より大きいときには、CPU183は、F4すなわち指モードへ移行する。そして、CPU183は、波形データを取り込んだ(Dc)後、ペンスイッチ信号を受信したか否かを判定する(ステップS114)。ここで、ダッチダウン信号を受信した場合、CPU183は、ペンダウン状態と判断して座標データと該ペンダウンの情報とを組み合わせたデータを送信した(Pd)後、F5へ戻る。
これに対して、上記ステップS114においてダッチダウン信号を受信した場合、CPU183は、遮光深さSdpthがA状態、B状態、C状態のいずれにあるかを判別する(ステップS115)。ここで、遮光深さSdpthがA状態であれば、CPU183は、指示具が入力部104の入力領域から除かれたと判断し、F1へ戻る。遮光深さSdpthがB状態であれば、CPU183は、ペンアップ状態と判断し、座標データと該ペンアップ情報とを組み合わせたデータを送信し(Pu)、F4へ戻る。遮光深さSdpthがC状態であれば、CPU183は、座標データとペンダウン情報とを組み合わせたデータを送信した(Pd)後、F4へ戻る。
上記動作においては、初期状態としてペンモードが設定されており、上記ステップS1081,S1082,S1083にいずれかにおいて応答が肯定であれば、ペンモードから指モードへの移行が行われ、指モードからペンモードへ復帰は、遮光深さSdpthがA状態すなわち指示具が入力部104の入力領域から除かれた場合(図19のステップS115)に行われる。すなわち、上記動作によるモードの切り替えは、ペンモードが主と使用され、必要に応じて指モードが使用されるような場合に有用である。
これに対し、ペンモードと指モードとをいずれを主とすることなく使用するような使用形態に応じたモード切り替えを行うようにすることも可能である。この場合の動作を図20に示す。図20は図19の動作に代わる動作の手順を示すフローチャートである。
ペンモードと指モードとをいずれを主とすることなく使用するような使用形態に応じたモード切り替えを行う場合、図20に示すように、初期状態としては、同様にペンモードが設定されており、上記ステップS1081,S1082,S1083,S109にいずれかにおいて応答が肯定であれば、ペンモードから指モードへの移行が行われる。但し、指モードにおいて、遮光深さSdpthがA状態すなわち指示具が入力部104の入力領域から除かれた場合(ステップS115)、ペンモードへの復帰は行われず、指モードが継続される。そして、ダッチダウン信号を受信した場合(ステップS114)に、指モードからペンモードへの移行が行われる。この図20に示すようにモード切り替えを行うことは、ペンモードと指モードとをそれぞれユーザの意図に応じて切り替えて使用するような場合に有用である。
次に、i番目の波形の遮光検出および座標演算と、状態判別とをそれぞれ行う処理(●Dc)について図21を参照しながら説明する。図21はi番目の波形の遮光検出および座標演算と、状態判別とをそれぞれ行う処理(●Dc)の手順を示すフローチャートである。
i番目の波形の遮光検出および座標演算と、状態判別とをそれぞれ行う処理(●Dc)においては、図21に示すように、まずCPU183が、CCD_Data[i]を測定し(ステップS1201)、上記式(3)を用いて相対強度分布Norm_Data[i]を算出する(ステップS1202)。そして、CPU183は、Norm_Data[i]に基づいて遮光量S_elcを算出し、遮光量S_elcに基づいて遮光深さSdpthを求める(ステップS1203)。
次いで、CPU183は、遮光深さSdpthがA状態、B状態、C状態のいずれにあるかを判別する(ステップS1204)。ここで、遮光深さSdpthがA状態にあれば、CPU183は、何もせずに、本処理を抜ける。これに対し、遮光深さSdpthがBまたはC状態にあれば、CPU183は、座標X,Yの計算を行い(ステップS1205)、本処理を抜ける。
次に、ペンモードから指モードへ移行した際の指示点の動きについて図22を参照しながら説明する。図22(a)はペンモードから指モードへ移行した際の指示点の動きの軌跡の一例を示す図、図22(b)はペンモードから指モードへ移行した際の指示点の動きの軌跡の他の例を示す図である。
図22(a)において、ポイントN2は、図19(または図20)のステップS106の時点の指示点に相当し、ポイントN3は、指モードへの移行時すなわち図19(または図20)のF2の時点に相当する。そして、ポイントN3において、指モードへ移行の判定が行われる。この判定が行われる際には、実際にはポイントN1の段階から、先端スイッチ付ペンでない通常のペンまたは指を使って入力が行われていたと考えられる、従って、C状態に至ったポイントN2の位置から既にペンダウン状態にあったと推定され、正しい軌跡という意味では、ポイントN2〜N3の区間に対して、その軌跡が描画されていなければならない。従って、これを補うために、図19(または図20)のF2の時点で、ポイントがポイントN2に戻され、ポイントN3までの軌跡が追加される。この結果は、曲線N2´〜N3´で表される。また、この曲線N2´〜N3´の描画は、図19(または図20)におけるステップS111〜ステップS113で行われることになる。すなわち、辻褄合わせが行われる。このような辻褄あわせを行う場合の送信データの例を表1に示す。
表1中でグレーの部分が、軌跡を追加するために再送信されるデータである。1回目のポイントN2からポイントN3においては、データがペンアップとして送信されているが、再送信においては、データがペンダウンとして送信される。
また、例えばポイントN2からN3までの距離が長い場合において、ポイントN2まで遡るよりもポイントN3から少しだけ遡る方が自然な場合は、所定のポイントN0の分だけ遡り、N3−N0〜N3までの曲線を軌跡として追加するようによい。この場合を図22(b)に示す。
次に、ペンモードから指モードへの移行判定および辻褄合わせについて図23を参照しながらより詳細に述べる。図23はペンモードから指モードへの移行判定および辻褄合わせにおける動作の一例を示す図である。
通常、先端スイッチ付ペンの使用時は、図23(a)に示すように、遮光深さSdpthがA状態→B状態→C状態と進み、そして、D=1となる。ここで、C状態は、非常に狭く設定される(閾値TH2が遮光深さSdpth=100%に近い値に設定される)。また、本実施の形態においては、先端スイッチ付ペンのスイッチのストローク、動作荷重が十分小さいので、このスイッチがわずかな力で入力部104のスクリーン面と接触されると、タッチダウン検知を行うことが可能である。よって、このような条件においては、先端スイッチ付ペンがC状態になってかつスクリーン面にタッチダウンせずに長い時間C状態を維持することは、人間の巧緻性の程度から困難である、また、C領域に入って入力面にタッチダウンせずに再度B領域に戻るのも人間の巧緻性の程度から困難である、さらにC状態でスクリーン面にタッチダウンせずに所定の長さ以上の曲線を描くことも、人間の巧緻性の程度から困難である。このような考えに基づき、図23(b)に示すように、D=1の信号を受信せずに所定の時間T1の期間中C状態に保持された場合、スクリーン面に接触している確立が極めて高いにも関わらず、スイッチ信号を受信していないすなわちペン先にスイッチがない指示具または指を指示具として使用しているであろうと判定される。この判定は、ポイントN3において行われる。
また、図23(a)に示すように、D=1の信号を受信せずに遮光深さSdpthがB状態へ戻った場合も、一旦指示具ないし指で入力面に接触している確立が極めて高いにも関わらず、スイッチ信号を受信していないすなわちペン先にスイッチのない指示具または指を指示具として使用しているであろうと判定される。この判定は、ポイントN3において行われる。
さらに、図示されていないが、D=1の信号を受信せずに動いた距離(道のり)が所定の移動(Dst1)を超えた場合、または移動距離と経過時間の積が所定の値(K1)を超えた場合に、スイッチ信号を受信していないすなわちペン先にスイッチがない指示具または指を指示具として使用しているであろうと判定される。この判定は、ポイントN3において行われる。
図23(a),(b)の場合などのように、ポイントN3で指モードと判定される場合、それに先立つ連続動作としてポイントN1の時点においても少なくとも通常の指示具または指を使用していたことが推定され、本来ポイントN2でペンダウンになるべきである。
しかるに、ポイントN3以前においては、ペンモードとして動作していたため、C状態にあるポイントN2以降ポイントN3までは、ペンアップとされ、PCなどの外部装置に送信される信号は、座標信号とペンアップ情報を組み合わせたものである。すなわちポイントN2からポイントN3までの間の部分に本来あるべき軌跡が描画されない。よって、このような不整合を解消するために、ポイントN3に至った段階において、再度ポイントN2に遡って辻褄合わせのデータが送信される。詳しくは、ポイントN2からポイントN3までの座標データが順番に、ペンダウン情報と組み合わせて再度、PCなどの外部装置に送信される。これにより、結果として、ポイントN2の段階から軌跡が始まったのと同様の軌跡が残り、上記不整合は解消される。
また、メニュー操作に関するペンダウン信号の時間的な整合性に関しては、最初にポイントN3に至った時点でペンダウンが発生し、それを使用者がペンダウンしたと認識してメニュー操作を続けると考えれば、特に問題は無い。
また、図23(c)に示すように、ポイントN4以降は、通常の指モードとして動作する。
本実施の形態においては、特殊な場合として指モードでペンスイッチ信号を受信した場合に、ペンモードにおいてペンスイッチ信号を検知した場合と同様に、図19(または図20)のF4へ移行するようにしているが、この移行は必ずしも要求されるものではない。
このように、本実施の形態によれば、特別な切り替え操作を行うことなく、先端スイッチ付ペンを用いたペンモードと、通常のペンまたはユーザの指を用いた指モードとの切り替えをリアルタイムで行うことができる。また、モードの切り替えの際における位置入力の精度が損なわれることがない。
(第2の実施の形態)
次に、本発明の第2の実施の形態について図24〜図26を参照しながら説明する。図24は本発明の第2の実施の形態における動作の手順を示すフローチャート、図25は図24の動作に変わる動作の点順を示すフローチャート、図26(a)はペンモードから指モードへ移行した際の指示点の動きの軌跡の一例を示す図、図26(b)はペンモードから指モードへ移行した際の指示点の動きの軌跡の他の例を示す図である。ここで、本実施の形態は、上記第1の実施の形態と同じ構成を有するので、その説明は省略する。
本実施の形態においては、図26に示すように、遮光深さSdpthに対して、1つの閾値TH3(閾値3)が設けられ、この閾値TH3によって、遮光深さSdpthがA’状態、C’状態の2つの状態に分けられる。
ペンモード(先端スイッチ付ペンを用いて指示入力を行うモード)の場合、遮光深さSdpthがA状態にあるときには、その際の先端スイッチ付ペンの指示位置は座標検出無効位置にあると判定され、C’状態(但し、D領域を除く)にあるときには、先端スイッチ付ペンが入力部104のスクリーン面から離れたペンアップ状態と判定される。そして、遮光深さSdpthがD領域すなわち100%にあるときには、先端スイッチ付ペンが入力部104のスクリーン面と接触状態にあるペンダウン状態と判定される。
指モード(通常のペン(先端にスイッチが設けられていないもの)および指などの指示具を用いて座標入力を行うモード)の場合、遮光深さSdpthがA’状態にあるときには、その際の指示具の指示位置は座標検出無効位置にあると判定され、C’状態にあるときには、指示具が入力部104のスクリーン面と接触状態にあるペンダウン状態と判定される。
本実施の形態においては、図24に示すように、CPU183が、まず、波形データを取り込み(Dc)、遮光深さSdpthがA’状態にあるかC’状態にあるかの判別を行う(ステップS200)。そして、遮光深さSdpthがA’状態にある場合、CPU183は、再度波形データの取り込み(Dc)を行う。これに対し、遮光深さSdpthがC’状態にある場合、CPU183は、ペンダウン信号を受信したか否かの判定を行う(ステップS201)。ここで、ペンダウン信号を受信していればすなわちD=1の場合、CPU183は、i番目の座標データとペンダウン情報とを組み合わせたデータを送信した(Pd)後、F6へ進む。これに対し、ペンダウン信号を受信していなければすなわちD=0の場合、CPU183は、i番目の座標データとペンアップ情報とを組み合わせたデータを送信した(Pu)後、今回のC’状態がA’状態の後の最初のC’状態であるか否かを判定する(ステップS202)。ここで、今回のC’状態がA’状態の後の最初のC’状態であるとは、指示具が入力領域に挿入された直後の場合を意味する。
今回のC’状態がA’状態の後の最初のC’状態でないと判定された場合(ステップS202)、CPU183は、F6へ戻る。これに対し、今回のC’状態がA’状態の後の最初のC’状態でないと判定された場合(ステップS202)、CPU183は、サンプリング番号iをN2として保存し、経過時間Tをリセットし、カウントを開始する(ステップS203)。また、CPU183は、移動距離の累積Dstをリセットし、移動距離dst(i)の累積Dstを開始する。ここで、移動距離dst(i)は、上記第1の実施の形態と同じである。
次いで、CPU183は、波形データを取り込んだ(Dc)後、ペンスイッチ信号を受信したか否かの判定(ステップS204)、経過時間Tが時間T1を超えたか否かの判定(ステップS2051)、累積Dstが所定距離Dst1を超えたか否かの判定(ステップS2502)、T*Dstが所定数K1を超えたか否かの判定(ステップS2503)、遮光深さSdpthがC’状態であるか否かの判定(ステップS2504)のそれぞれを行う。
ここで、ペンスイッチ信号を受信した場合(ステップS204)、CPU183は、i番目の座標データとペンダウン情報を送信した(Pd)後、F6へ戻る。また、上記ステップS204,S2501,S2502,S2503において応答が否定で、最終的にステップS2504において遮光深さSdpthがC’状態でないと判定された場合、CPU183は、移動距離dst(i)を累積Dstに累積し、次の波形データの取り込みを行い(Dc)、ステップS204から繰り返す。
上記S2501,S2502,S2503,ステップS2504のいずれかにおいて応答が肯定であれば、CPU183は、ペンモードから指モードへ移行するための辻褄合せを行うために、F2へ移行する。
次いで、CPU183は、過去のj番目の座標データを呼び出し、座標データとペンダウン情報とを組み合わせたデータを送信する。そして、CPU183は、サンプリング番号jがN3より大きいか否かを判定する(ステップS207)。ここで、サンプリング番号jがN3より大きくないときには、CPU183は、jを1インクリメントして、次の座標データを呼び出す。
上記ステップS113においてサンプリング番号jがN3より大きいときには、CPU183は、F4すなわち指モードへ移行する。そして、CPU183は、波形データを取り込んだ(Dc)後、ペンスイッチ信号を受信したか否かを判定する(ステップS209)。ここで、ダッチダウン信号を受信した場合、CPU183は、ペンダウン状態と判断して座標データとペンダウン情報を組み合わせたデータを送信した(Pd)後、F2へ戻る。
これに対して、上記ステップS209においてダッチダウン信号を受信した場合、CPU183は、遮光深さSdpthがA’状態、C’状態のいずれにあるかを判別する(ステップS210)。ここで、遮光深さSdpthがA’状態であれば、CPU183は、指示具が入力部104の入力領域から除かれたと判断し、F6へ戻る。遮光深さSdpthがC’状態であれば、CPU183は、ペンアップ状態と判断し、座標データとペンダウン情報を組み合わせたデータを送信し(Pd)、F4へ戻る。
また、本実施の形態においては、指モード時にA’状態すなわち有効な遮光なしの状態になると、即座にペンモードの最初の状態であるF6に戻る。また、特殊な場合として指モードでペンスイッチ信号を受信した場合、ペンモードにおいてペンモードの最初の状態であるF6に戻るようにしている。これは、必ずしもの必要なものではない。
このように、本実施の形態においては、初期状態としてペンモードが設定されており、上記ステップS2051〜S2054にいずれかにおいて応答が肯定であれば、ペンモードから指モードへの移行が行われ、指モードからペンモードへ復帰は、遮光深さSdpthがA’状態すなわち指示具が入力部104の入力領域から除かれた場合(図24のステップS210)に行われる。すなわち、上記動作によるモードの切り替えは、ペンモードが主と使用され、必要に応じて指モードが使用されるような場合に有用である。
これに対し、ペンモードと指モードとをいずれを主とすることなく使用するような使用形態に応じたモード切り替えを行うようにすることも可能である。この場合の動作を図25に示す。
ペンモードと指モードとをいずれを主とすることなく使用するような使用形態に応じたモード切り替えを行う場合、図25に示すように、初期状態としては、同様にペンモードが設定されており、上記ステップS2051〜2054にいずれかにおいて応答が肯定であれば、ペンモードから指モードへの移行が行われる。但し、指モードにおいて、遮光深さSdpthがA’状態すなわち指示具が入力部104の入力領域から除かれた場合(ステップS210)、ペンモードへの復帰は行われず、指モードが継続される。そして、ダッチダウン信号を受信した場合(ステップS209)に、指モードからペンモードへの移行が行われる。この図25に示す動作によってモード切り替えを行うことは、ペンモードと指モードとをそれぞれユーザの意図に応じて切り替えて使用するような場合に有用である。
このように、本実施の形態によれば、上記第1の実施の形態と同様の効果を得ることができる。
なお、本発明の目的は、前述した実施形態の機能を実現するソフトウエアのプログラムコードを記録した記憶媒体(または記録媒体)を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記憶媒体に格納されたプログラムコードを読み出し実行することによっても、達成される。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
また、プログラムコードを供給するための記憶媒体としては、例えば、フロッピー(登録商標)ディスク、ハードディスク、光磁気ディスク、CD−ROM、CD−R、CD−RW、DVD−ROM、DVD−RAM、DVD−RW、DVD+RW、磁気テープ、不揮発性のメモリカード、ROM等を用いることができる。または、プログラムコードを、ネットワークを介してダウンロードしてもよい。
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム(OS)などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。