以降、諸図面を参照しながら、本発明の実施態様を詳細に説明する。携帯電子機器の典型例として携帯電話端末に本発明を適用して説明する。図1は、本発明を適用した携帯電話端末の基本的な構成を示すブロック図である。図に示すように、携帯電話端末100は、制御部110、センサ部120、表示部130、記憶部(フラッシュメモリなど)140、情報処理機能部150、電話機能部160、キー操作部KEY、スピーカSP、図示しないCDMA通信網に接続して通信を行う通信部COM、さらに報知部ALMにより構成されている。報知部ALMは、有機EL素子(LED)などによる発光部EL、小型モータなどによる振動部VB、および警告音を発するブザーBZから構成されている。なお、ブザーBZを設けずにスピーカSPから報知音を出力しても良い。
さらに、センサ部120は複数のセンサ素子(例えば、その検知部を機器筐体の外面に設けてあり、指などの物体の接触・近接を検出する接触センサ)を含んだセンサ素子群を、用途に応じてn個、即ち、第1のセンサ素子群G1、第2のセンサ素子群G2および第nのセンサ素子群G3を含み、記憶部140は保存領域142、外部データ保存領域144、およびフラグ格納部146から構成されている。フラグ格納部146は、報知部作動フラグFLG1および検知部操作フラグFLG2(各フラグについては後で詳細に説明する。)を格納する。
制御部110および情報処理機能部150は、CPUなどの演算手段およびソフトウェアモジュールなどから構成させることが好適である。図示しないが、マイク、ラジオモジュール、電源、電源コントローラなども制御部110に接続される。なお、後述するシリアルインターフェイス部SI、シリアルインターフェイス部SIを介して制御部110に接続されるRFIDモジュールRFIDや赤外線通信部IR、さらには、カメラ180やライト190などが制御部110に接続されるが、ここでは簡略化のために省略する。
図1のブロック図における各ブロックの機能を簡単に説明する。制御部110は、センサ部120によりユーザの指などの物体の接触を検出し、記憶部140の保存領域142に検出した情報を格納し、情報処理機能部150により格納した情報の処理を制御する。そして、処理結果に応じた情報を表示部130に表示させる。さらに制御部110は、通常の通話機能のための電話機能部160、キー操作部KEY、およびスピーカSPを制御する。なお、表示部130は、サブ表示部ELDおよび図示しないメイン表示部(携帯電話端末100が閉状態にて隠れ、開状態にて露出する位置に設けられる表示部)を含んで構成される。
制御部110は、ユーザに報知すべき何らかの事象(例えば、着信などのイベント)の発生を受けた場合、報知部ALMが所定の報知動作を行うよう制御する。例えば、通信部COMが電子メールを着信したとき、制御部110は、報知部ALM内の発光部ELおよび振動部VBが、それぞれ明滅および振動するよう制御する。また、このような明滅や振動などの報知動作を開始するときは、制御部110は、記憶部140内のフラグ格納部146の報知部作動フラグFLG1をオン(1)にして報知部ALMが作動中であることを示す。報知動作が終了したときは、報知部作動フラグFLG1をオフ(0)にして報知部ALMが作動が停止したことを示す。制御部110は、報知部作動フラグFLG1がオン(1)である区間では、センサ部120から出力される検出データが誤検出を含む恐れがあるため、これを使用しないよう制御する(その詳細は後述する)。
一方、センサ部120が接触を検出中であるときは、制御部110は、記憶部140内のフラグ格納部146の検知部操作フラグFLG2をオン(1)にしてセンサ部120が操作中(接触検出中)であることを示す。接触検出操作が終了したときは、検知部操作フラグFLG2をオフ(0)にして、センサ部120の接触検出操作が終了したことを示す。なお、本実施形態の制御ではないが、本発明において、制御部110は、検知部操作フラグFLG2がオン(1)である区間では、センサ部120から出力される検出データが誤検出を含む恐れがあるため、誤検出を含む検出データが出力されないように、報知部ALMの動作を禁止するよう制御しても良い。また、表示部130は、センサ部120の接触検知が無効である旨や、センサ部120の検知結果が無効とされた後、再びセンサ部120の検知結果が有効とされた場合に、その旨を表示する。
図2は、センサ素子を筐体に実装した携帯電話端末の斜視図である。携帯電話端末100は、図2に示すような閉状態の他、ヒンジ部(図示せず)を回動、スライドさせて開状態を形成することも可能であって、タッチセンサ部170は閉状態においても操作可能な位置に設けられている。図2(a)は携帯電話端末100の外観を示す斜視図である。携帯電話端末100は、タッチセンサ部170(外観上、センサ部120、即ちセンサ素子群G1,G2を覆う図6にて後述するパネルPNLが見えている)、カメラ180、およびライト190を備える。図2(b)は、タッチセンサの動作の説明のために、パネルPNLを省略し、センサ素子とサブ表示部ELD周辺のみの配置を表示した携帯電話端末100の斜視図である。図のように、センサ素子L1−L4およびR1−R4が、サブ表示部ELDの周囲に沿って並べて配置されている。センサ素子L1−L4、R1−R4、は、それぞれ第1のセンサ素子群G1、第2のセンサ素子群G2を構成している。第1のセンサ素子群と第2のセンサ素子群は、離間部SP1、SP2を隔てて並べられている。第1のセンサ素子群G1のレイアウトに対して、第2のセンサ素子群G2は、表示部を挟み、選択候補項目の並べられている方向を中心線とする線対称なレイアウトを持つ。また、本構成ではサブ表示部ELDに有機ELディスプレイを用いてあるが、例えば液晶表示ディスプレイ等を用いることもできる。また、本構成ではセンサ素子として静電容量式の接触センサを用いたが、薄膜抵抗式の接触センサ等を用いることもできる。
図2の携帯電話端末100において、サブ表示部ELDは携帯電話端末100の用途に応じた情報を表示する。例えば、携帯電話端末100を音楽プレーヤーとして用いる場合、サブ表示部ELDには演奏できる曲目が表示される。曲名およびアーティスト名の組で1つの項目、即ち、「選択候補項目」となる。ユーザは、操作入力部としてタッチセンサ部170を操作してセンサ素子R1−R4、L1−L4の静電容量を変化させて、サブ表示部ELDに表示された項目や操作対象領域を移動させ曲目の選択を行う。このとき、タッチセンサは、図2のようにサブ表示部ELDの周囲にセンサ素子を並べる構成とすれば、小型な携帯電子機器の外部筐体における実装部分を大きく占有せずに済み、かつ、ユーザはサブ表示部ELDの表示を見ながらセンサ素子を操作することができる。
図3は、本発明による携帯電話端末100のタッチセンサ機能の詳細な構成を示すブロック図である。図に示すように、本携帯電話端末100は、タッチセンサドライバブロックTDB、タッチセンサベースアプリブロックTSBA、デバイス層DL、割込ハンドラIH、キューQUE、OSタイマーCLK、各種アプリAPを備える。ここでタッチセンサベースアプリブロックTSBAは、ベースアプリBAおよびタッチセンサドライバ上位のアプリケーションプログラムインターフェースAPIを備え、タッチセンサドライバブロックTDBは、タッチセンサドライバTSDおよび結果通知部NTFを備える。また、デバイス層DLは、切替制御部SWCON、切替部SW、シリアルインターフェース部SI、赤外線通信部IR、RFIDおよびタッチセンサモジュールTSMを備え、割込ハンドラIHは、シリアル割込み監視部SIMONおよび確認部CNFを備える。
次に、各ブロックの機能を図を参照して説明する。タッチセンサベースアプリブロックTSBAにおいて、ベースアプリBAと、タッチセンサドライバ上位アプリケーションプログラムインターフェースAPIとの間では、タッチセンサを起動するか否かのやり取りが行なわれる。ベースアプリBAは、サブ表示部用のアプリケーションであるサブ表示部表示アプリAP1、セキュリティ保護用に携帯電話端末100にロックをかけるアプリケーションであるロックセキュリティアプリAP2、その他のアプリAP3のベースとなるアプリケーションであり、ベースアプリBAに前記各アプリからタッチセンサの起動が要求された場合に、前記タッチセンサドライバ上位アプリケーションプログラムインターフェースAPIにタッチセンサの起動を要求する。なお、サブ表示部とは、各図にて示すサブ表示部ELDであって、本実施例における携帯電話端末100においてセンサ素子により囲まれた表示部のことを指す。
起動の要求を受け、タッチセンサ上位アプリケーションプログラムインターフェースAPIは、ベースアプリBA内のアプリケーションの起動を管理するブロック(図示せず)に、タッチセンサの起動が可能か否かの確認を行う。即ち、アプリケーションの選択が実行されていることを示すサブ表示部ELDの点灯、またはFMラジオその他の携帯電話端末100に付属するアプリケーション等の、あらかじめタッチセンサの起動が不可能と設定されたアプリケーションの起動を示すフラグの有無を確認する。その結果、タッチセンサの起動が可能と判断された場合、タッチセンサ上位アプリケーションプログラムインターフェースAPIは前記タッチセンサドライバにタッチセンサモジュールの起動を要求する。即ち、実質的には電源コントローラ(図示せず)を介した電源(図示せず)からタッチセンサモジュールTSMへの電源供給を開始する。
起動が要求されると、タッチセンサドライバTSDはデバイス層DL内のシリアルインターフェース部SIに要求して、シリアルインターフェース部SIにおけるタッチセンサドライバTSDとのポートを開くように制御する。
その後、タッチセンサドライバTSDは、タッチセンサのセンシング結果の情報を有する信号(以降、接触信号と記す)を、タッチセンサモジュールTSMが有する内部クロックによる20msの周期で、シリアルインターフェース部SIに出力されるように制御する。
前記接触信号は、上述した各センサ素子R1−R4およびL1−L4の8つのセンサ素子それぞれに対応した8ビット信号で出力されている。即ち、各センサ素子が接触を検知したときには、この接触を検知したセンサ素子に対応するビットに、接触検知を表す「フラグ:1」を立てた信号であって、これらのビット列によって接触信号が形成される。つまり、接触信号は「どのセンサ素子」が「接触/非接触のいずか」を示す情報が含まれる。
割込ハンドラIHにおけるシリアル割込み監視部SIMONは、シリアルインターフェース部SIに出力された接触信号を取り出す。ここで確認部CNFが、シリアルインターフェース部SIにおいてあらかじめ設定された条件に従い、取り出した接触信号のTrue/Falseの確認を行い、True(真)な信号のデータのみをキューQUEに入れる(信号のTrue/Falseの種別については後述する。)。また、シリアル割込み監視部SIMONは、タクトスイッチの押下の発生などのタッチセンサ起動中のシリアルインターフェース部SIの他の割込み事象の監視も行う。
なお、監視部SIMONは、検出した接触が最初の接触であった場合には「プレス」を意味する信号を接触信号の前にキューQUEに入れる(キューイングする)。その後、オペレーションシステムの有するOSタイマーCLKによるクロック45ms周期で接触信号の更新を行い、所定回数接触を検出しなかった場合には「リリース」を意味する信号をキューQUEに入れる。このことにより、接触開始からリリースまでのセンサ素子間での接触検出の移動を監視することができるようになる。なお、「最初の接触」とは、キューQUEにデータのない状態、或いは、直近の入力データが「リリース」である場合に「フラグ:1」を有する信号が発生する事象を指す。これらの処理により、タッチセンサドライバTSDは、「プレス」から「リリース」の区間のセンサ素子の検出状態を知ることができる。
同時に、監視部SIMONは、タッチセンサから出力される接触信号がFalseとなる条件を満たす信号であった場合に、「リリース」を意味する信号を擬似的に生成してキューQUEに入れる。ここでFalse(偽)となる条件としては、「非連続な2つのセンサ素子で接触を検出した場合」、「タッチセンサ起動中に割込みが生じた場合(例えば、メール着信等の通知でサブ表示部ELDの点灯/消灯状態が変更された場合)」、「タッチセンサ起動中にキー押下が発生した場合」、または後述するように「複数のセンサ素子群をまたぐ接触を検出した場合」などが設定される。
また、監視部SIMONは、例えば、センサ素子R2とR3といった隣接する2つのセンサ素子で同時に接触を検出した場合には、単一の素子を検出した場合と同様に、接触を検出した素子に対応するビットにフラグが立った接触信号をキューQUEに入れる。
タッチセンサドライバTSDは、45ms周期でキューQUEから接触信号を読み出し、読み出した接触信号によって、接触を検知した素子を判定する。タッチセンサドライバTSDは、キューQUEから順次に読み出した接触信号により判定した接触の変化、および、検知した素子との位置関係を考慮して、「接触スタートの素子」、「接触の移動方向(右/左回り)の検出」、および「プレスからリリースまでに移動した素子の数(即ち移動距離)」の判定を行う。タッチセンサドライバTSDは、判定された結果を結果通知部NTFに書き込むとともに、ベースアプリBAに結果を更新するように通知する。
接触の移動方向および移動距離の判定は、隣接するセンサ素子の検出および各センサ素子の検出の組合せによって行うが、これには種々の手法(判定ルール)を適用することができる(詳細については後述する)。例えば、ある1つのセンサ素子(例えばR2)から隣接するセンサ素子(この例の場合、R2およびR3)へと接触が遷移すると、その方向に、1素子分(サブ表示部における1項目分)の移動とすると判定する。
前述のように、結果の更新がタッチセンサドライバTSDによってベースアプリBAに通知されると、ベースアプリBAは結果通知部NTFを確認し、結果通知部NTFに通知された情報の内容を、さらに上位のアプリケーションであってタッチセンサ結果を要するアプリケーション(サブ表示部におけるメニュー画面表示のための表示部表示アプリAP1、およびロック制御のためのロックセキュリテイアプリAP2など)に通知する。
図4は、本発明による携帯電話端末100の特にタッチセンサ部170の構成要素の配置を示す平面図である。作図および説明の便宜上、一部の構成要素のみを図示および説明する。図に示すように、有機EL素子からなる表示部ELDの周囲に沿ってドーナツ状のパネルPNLが配されている。パネルPNLは、下部に設けるセンサ素子の感度に影響を与えないように十分に薄くすることが好適である。パネルPNLの下部には、人体の指の接触/近接を検知できる静電容量型の8個のセンサ素子L1−L4、R1−R4をほぼ環状に配置してある。左側の4つのセンサ素子L1−L4で第1のセンサ素子群、右側の4つのセンサ素子R1−R4で第2のセンサ素子群をそれぞれ構成している。各センサ素子群内の隣接するセンサ素子の間には、隣接するセンサ素子同士で接触検出機能に干渉しないように、クリアランス(隙間)を設けて配置してある。なお、干渉しないタイプのセンサ素子を用いる場合にはこのクリアランスは不要である。第1のセンサ素子群の一端に位置するセンサ素子L4と、第2のセンサ素子群の一端に位置するセンサ素子R1との間には、前記クリアランスより大きいクリアランス(例えば、2倍以上の長さ)である離間部SP1を設ける。第1のセンサ素子群G1の他端に位置するセンサ素子L1と、第2のセンサ素子群G2の他端に位置するセンサ素子R4との間にも、離間部SP1と同様に離間部SP2を設ける。このような離間部SP1、SP2によって、第1のセンサ素子群G1と第2のセンサ素子群G2とを別個に機能させる際に、互いに指が干渉することを防止することができる。
各センサ素子の間に、報知手段としての有機ELからなる発光素子LED1−4を配置する。即ち、センサ素子L1とL2との間に発光素子LED1、センサ素子L3とL4との間に発光素子LED2、センサ素子R1とR2との間に発光素子LED3、センサ素子R3とR4との間に発光素子LED4を設ける。発光素子LED1−4は、ユーザに通知すべき事象が発生したときに、明滅(点灯/消灯)、点灯、所定のパターンでの輝度変化などの発光動作を行い、このときに発光素子LED1−4に発生する電流の変化によって、その近傍にあるセンサ素子L1−L4、R1−R4が反応し、接触が無いにも関わらず接触を示すデータを出力してしまう。このような場合には、正確な移動量(スクロールさせるべき表示項目の数に対応する。)の検出、或いは正確な移動方向判定などを上位層に通知することができない。なお、表示部ELDの表示画面が変化しても各センサ素子の検出状況に影響を及ぼさないように、表示部ELDは、センサ素子L1−4,R1−R4から十分に離間させてある。
そこで、本実施態様では、前述したフラグ格納部146の各フラグを利用して正常なデータの出力を保証する。即ち、発光素子LED1−4の作動時には、報知部作動フラグFLG1をオンにして、LED明滅処理区間(点灯処理区間および消灯処理区間)をセンサ検出無効区間とする。このセンサ検出検出無効区間では、センサ素子からの出力データの内容を問わず、リリースデータ(非接触状態を示すデータ)に置換して、この置換されたリリースデータをキューイングする。この処理によって、センサ検出無効区間が終了した後にセンサ素子から出力されたデータが、次の移動方向の基点として設定されることになり、後続の出力データを正常に処理できるようになる。
第1のセンサ素子群G1の各センサ素子は円弧状に配置されているが、この円弧の中央、即ち、センサ素子L2およびL3の中間の下部に、タクトスイッチSW1の中心を配置する。同様に、第2のセンサ素子群G2の各センサ素子で形成される円弧の中央、即ち、センサ素子R2およびR3の中間の下部に、タクトスイッチSW2の中心を配置する(図6参照)。このように、方向性を連想させない位置であるセンサ素子群の配置方向のほぼ中央にタクトスイッチを配置することによって、センサ素子上におけるユーザによる指の方向性を持った移動指示操作による方向指示とは直接関係しない操作を行うスイッチであることを、ユーザは容易に把握することができる。センサ素子群の配置方向の中央ではなく端部(例えばL1やL4)にタクトスイッチを配置してあると、端部側向きの方向性を連想させるため、タッチセンサによる移動動作を継続するなどのために長押しする「スイッチ」であるという誤解をユーザに与え易い。一方、本発明の構成のように、センサ素子群の配置方向の中央にタクトスイッチを配置してあれば、このような誤解を防止することができ、より快適なユーザインターフェースを提供することが可能である。センサ素子の下方にタクトスイッチを配して機器外面に露出していないため、機器の外観上も露出する操作部の点数を削減でき、複雑な操作を要さない様なスマートな印象となる。
なお、上述した「発光素子」や「スイッチ素子」をパネルPNL下部以外の箇所に設ける場合には、機器筐体に別途貫通孔を設ける必要があるが、貫通孔を設ける位置によっては筐体強度の低下が生じ得る。本構成では、パネルPNLの下方にや「発光素子」や「タクトスイッチ」を配することによって、新たな貫通孔を設ける必要がなくなり、筐体強度の低下も防止できる。
ユーザが、例えば、指で順次にセンサ素子L1、L2、L3、L4を円弧状に上方に向かってなぞると、表示部ELDに表示されている選択候補項目(この場合は、音、表示、データ、カメラ)のうち選択対象領域(反転表示や別のカラーでの強調表示など)として表示されている項目が上方のものに順次変化したり、選択候補項目が上方にスクロールしたりする。所望の選択候補項目が選択対象領域として表示されているときに、ユーザは、パネルPNLおよびセンサ素子L2,L3越しにタクトスイッチSW1を押下して選択決定を行ったり、タクトスイッチSW2を押下して表示自体を別画面に変更したりすることができる。即ち、パネルPNLは、タクトスイッチSW1、SW2を押下するのに十分な可撓性を持つ、或いは、わずかに傾倒可能に機器筐体に取り付けられ、タクトスイッチSW1、SW2に対する押し子の役も持っている。
図5は、本実施例の携帯電話端末における各センサ素子による接触検知のデータ処理を説明する概略ブロック図である。説明の簡易化のため、センサ素子R1−R4についてのみ示してあるが、センサ素子L1−L4についても同様である。センサ素子R1−R4の各々には、高周波が印加されており、浮遊容量の変化を考慮してキャリブレーションし、このときの高周波状態を基準として設定されており、それぞれ、前処理部200(R1用前処理部200a、R2用前処理部200b、R3用前処理部200c、R4用前処理部200d)にて、指の接触などによる静電容量の変化に基づく高周波状態の変動を検出すると、A/D変換器210(R1用A/D変換器210a、R2用A/D変換器210b、R3用A/D変換器210c、R4用A/D変換器210d)へと送信され、接触検出を示すデジタル信号に変換される。デジタル化された信号は制御部220へと送信されてセンサ素子群としてのまとまった信号の集合として、記憶部230に信号の保持する情報を格納する。その後、シリアルインターフェース部、割り込みハンドラにこの信号が送出され、割り込みハンドラにて、タッチセンサドライバが読み取り可能な信号に変換した後、変換後の信号をキューに入れる。なお、制御部220は、記憶部230に格納した情報に基づき、隣接したセンサ素子の2つ以上で接触を検出した時点で方向の検出を行う。図7では、センサ素子検出専用の制御部220および記憶部230を設けた例を示したが、これらの各部は、図1の制御部110および記憶部140と共用させてもよい。
図6は、図1に示した携帯電話端末の制御部の構成例を説明するブロック図である。図に示すように、制御部110は、上位層112、LEDドライバ114、およびタッチセンサドライバ116を含む。LEDドライバ114は、発光部ELが発光素子LED1−4を点灯/消灯するよう制御すると共に、LED点灯/消灯の処理開始/終了をタッチセンサドライバ116に通知する。この通知を受けたタッチセンサドライバ116内のTSD処理部116Aは、記憶部140内のセンサ検出無効区間フラグFLG(図1の発光素子のみが操作中である場合のFLG1がこれに相当する。)のオン/オフを行う。タッチセンサモジュールTSMは、これを構成するセンサ素子L1−L4,R1−R4に対する接触状態を電気信号に変換し、タッチセンサドライバ116内のHW−IF(ハードウェアインターフェイス)部116Bへデータを出力する。HW−IF部116Bは、タッチセンサモジュールTSMから出力されたデータをキューQUEにキューイングする。TSD処理部116Aは、HW−IF部116Bを介してタッチセンサモジュールTSMを制御すると共に、キューQUEにキューイングされている出力データを取り出す。取り出した出力データを解析した後、方向情報および移動量に変換して、上位層112に含まれる上位アプリケーションへ通知する。HW−IF部116Bは、記憶部140内のセンサ検出無効区間フラグFLGを参照し、センサ検出無効区間フラグFLGがオンである場合は、タッチセンサモジュールTSMから出力されるデータを「リリース(非接触状態)」を示すデータに置換して、この置換後のデータをキューQUEにキューイングする。
図7は、図6に示した携帯電話端末の制御部の処理手順の一例を説明するシーケンス図である。ステップST1にて、タッチセンサモジュールTSMが接触検出をしたタイミングで出力データをタッチセンサドライバ116のHW−IF部116Bへ送出する。ステップST2では、送出された出力データをキューにキューイングする。タッチセンサドライバ116のTSD処理部116Aは、キューを定期的にポーリングして、データがある場合には、キューイングされているデータをキューの先頭からフェッチする(ステップST3)。この場合は、ステップST2にてキューイングされた出力データがキューから取り出される。さらに、ステップST3では、このキューからフェッチした出力データを解析して、移動方向(さらには移動量も)を上位層に通知する。これら一連のステップST1−ST3が通常の処理である。
このようなタッチセンサの検出動作中に、何らかのイベント(メールの着信など)が発生し、これをユーザに報知するために、LEDドライバ114がLED点灯処理を時刻T1から開始し、時刻T2まで点灯し続ける(ステップST9)。LEDドライバ114は、LED点灯処理を時刻T1から開始することをタッチセンサドライバ116のTSD処理部116Aに通知する。この通知を受け、ステップST4にて、TSD処理部TSDは、センサ検出の無効処理を開始し、記憶部140内のセンサ検出無効区間フラグFLGをオンにする。センサ検出無効区間フラグFLGをオンにすることによって、無効処理が開始されたことがHW−IF部116Bに通知され、HW−IF部116Bは無効処理を開始する(ステップST5)。そして、時刻T2において、LEDドライバ114からLED点灯処理完了が通知され、TSD処理部116Aがセンサ検出無効区間フラグFLGをオフにして無効処理を完了する(ステップST10)。同様に、センサ検出無効区間フラグFLGがオフにされたことを受け、HW−IF部116Bも無効処理を完了する(ステップST11)。
従って、センサ検出無効区間フラグFLGがオンである間だけが、センサ検出無効区間[T1-T2]に設定される。このようなセンサ検出無効区間[T1-T2]では、タッチセンサモジュールTSMが接触を検出して(ステップST6)出力データをタッチセンサドライバ116のHW−IF部116Bに送信しても、接触を表す信号を「リリース」を示す信号に変更してからキューにキューイングする(ステップST7)。そして、このような「リリース」を示す信号をTSD処理部116Aがキューから取り出して解析すると、「リリース」であるため移動方向や移動量の判定には使用されず、始点がリセットされ、リリース信号が上位層112に通知される(ステップST8)。即ち、LED点灯の影響でセンサ素子が接触を誤検出した出力データを受け取っても、全てリリースとしてキューイングされ「無効」となり、誤動作を防止することが可能となる。
時刻T2にLEDが消灯するとセンサ検出無効区間[T1-T2]が終了して、タッチセンサ関連の処理は通常の状態、即ち、センサ検出を有効に処理する状態に戻る。例えば、ステップST12のようにリリース後の最初の「接触検出」が発生し、その出力データがキューイングされた場合(ステップST13)は、そのデータに基づき「始点」が設定される(ステップST14)。そして、ステップST15のようにさらに「接触検出」が発生し、その出力データがキューイングされた場合(ステップST16)は、そのデータに基づき「移動方向」を求め、求めた移動方向が上位層112に通知される(ステップST17)。
図8は、図7に示したLEDドライバの処理のみを示すフローチャートである。図に示すように、ステップP10では、LEDドライバ114が、LED点灯処理開始をタッチセンサドライバ116のTSD処理部116Aに通知する。この後、LED点灯処理を実行し(ステップP12)、報知のタイプに応じた設定時間が経過した後、LED点灯処理を完了し、その完了をタッチセンサドライバのTSD処理部116Aに通知する(ステップP14)。
図9は、図7のタッチセンサ無効区間フラグに基づく無効処理のみを示すフローチャートである。図に示すように、ステップP20では、報知部としてのLED動作に応じて設定される「タッチセンサ無効区間フラグ」がオンであるか否かを判定し、オンである場合は、データが無効となるように、タッチセンサモジュールからの出力データをリリースに修正する(ステップP22)。そしてリリースに修正されたデータがキューにキューイングされる(ステップP24)。このような報知部としてのLED動作状況に応じて、「センサ無効処理」「センサ有効処理」を適宜に切り替えることによって、操作入力部としてのセンサ素子の誤動作を防止することが可能となる。
以降、図10および図11において、センサ素子の操作に対する表示部の応答について説明する。図10および図11において(a)は、携帯電話端末に実装した表示部と、その周辺に沿って並べて配置したセンサ素子のみを、説明の簡易化のために示した概略図、(b)は時間推移に伴い検知したセンサ素子を示す図、(c)は検知したセンサ素子に応じたサブ表示部ELDの操作対象領域の位置変化を示す図である。これらの図の(a)において、センサ素子、センサ素子群および離間部には図2(b)と同様の符号を付加している。また(c)のサブ表示部ELDの表示において、TIは表示部が表示する項目リストのタイトル、LS1〜LS4は選択候補項目(例えば、スクロール可能な幾つかの行)である項目を示す。また(c)の表示部において、操作の対象となる状態にある項目は、現在の操作対象領域であることが識別できるように、当該項目にカーソルを配置する、或いは、項目自体を反転表示などで強調表示する。これらの図では、操作対象領域として表示されている項目にはハッチングを施して強調して示している。説明の便宜上、「移動対象」を操作対象領域のみで説明するが、項目自体を移動(スクロール)させる場合も同様の原理でサブ表示部は動作する。
図10は、センサ素子上をユーザがなぞった場合のサブ表示部の応答を説明する図である。同図(a)において矢印AR1に示す上から下の向きに、例えば指などの接触手段を用いて各センサ素子上を連続的になぞると、制御部は(b)で示す時間推移で接触を検知する。この場合は、センサ素子R1、R2、R3、R4の順である。この検知したR1からR4までの連続した接触は、隣接したセンサ素子の2つ以上で接触を検知しているため方向の検出を行い、隣接したセンサ素子を遷移した回数とその方向に応じて、操作対象領域がサブ表示部ELDに表示したリスト上を移動する。この場合は、(c)で示したように、操作対象領域は、初期位置の項目LS1から項目LS4まで下方へ項目を3つ分移動する。なお、操作対象領域は、ハッチングで表してあるが、ハッチングピッチの狭いものが初期位置であり、ハッチングピッチの広いものが移動後の位置である。このように、本構成によれば、ユーザの「下方への指の指示動作」と同じように、表示部の「操作対象領域が下方に移動」するため、ユーザはあたかも自己の指で操作対象領域を自在に移動させているように感じることになる。即ち、ユーザの意図した通りの操作感覚が得られる。
同様に、同図(a)において矢印AR2に示す向きにセンサ素子がなぞられたとすると、この場合(b)で示したように各センサ素子のうちセンサ素子L4、L3、L2、L1がこの順に接触を検知し、この場合、矢印AR1と同じく上から下へ隣接するセンサ素子を3つ遷移する接触のため、(c)のように下方に向かって項目LS1から項目LS4まで操作対象領域が3つ分移動する。
図11は、離間部SP1を越えて第1のセンサ素子群G1と第2のセンサ素子群G2とに連続して接触した場合のサブ表示部の応答について説明する図である。(a)において矢印ARで示す左から右の向きに各センサ素子上を連続してなぞると、制御部は(b)で示す時間推移で接触を検知する。この場合は、センサ素子L3、L4、R1の順である。図に示すように、第1のセンサ素子群で接触を検出したセンサ素子の数は「2」であり、第2のセンサ素子群のそれは「1」である。従って、第1のセンサ素子群で接触を検出したセンサ素子の数の方が、第2のセンサ素子群のそれよりも多いため、第1のセンサ素子群G1で検出した「第1の接触は有効」となり、第2のセンサ素子群G2で検出した「第2の接触は無効」となる。つまり、この場合は、隣接したセンサ素子を遷移した回数とその方向に応じて選択されるリストがサブ表示部ELDに表示したリスト上を移動し、(c)で示したように操作対象領域は、初期位置である項目LS2から項目LS1まで上方に向かって項目を1つ分移動する。
図12は、センサ素子検出状態を単一素子検出状態だけでなく、隣接する2つの素子を更に検出している複数素子検出状態を判定するようにして16個に分割して示した概念図である。図4の構成とほぼ同様であるが、第1のセンサ素子群G1と第2のセンサ素子群G2との間にもタクトスイッチを設けた構成である。即ち、センサ素子L4とセンサ素子R1との間にタクトスイッチSW3と、センサ素子R4とセンサ素子L1との間にタクトスイッチSW4とが新たに設けられている。8個のセンサ素子の検出状態を1個ずつ管理すると、8個の検出状態を管理できる。しかしながら、8個の検出状態では、状態の数、即ち、状態変化が少ないため、あまり精密な制御はできない。例えば、センサ素子間にまたがって配置されるタクトスイッチSW1の場合には、タクトスイッチSW1を押下するときに、先にセンサ素子L2、L3に接触が検出されるため、ユーザの意図しない動作指示となる恐れがある。つまり、センサ素子L2、L3の順に検出された場合には、何らかの決定指示のためのタクトスイッチSW1押下動作にもかかわらず、上方への移動指示となってしまい、操作対象領域が上方に「1つずれた後」でタクトスイッチSW1押下による選択動作が確定したりして、意図しない項目が決定指示されたりするなどの可能性がある。
このようなタクトスイッチSW1−4の押下処理を適切に処理するために、16個の検出状態で2つまたは3つの検出状態変化(移動)を検出するまで、移動指示の確定を保留する方法がある。また、タクトスイッチの押下が確定した時点でそれまでのセンサ素子の検出状態(結果)を破棄する方法も考えられ、以降、フローチャートを参照して詳細に説明する。
図13は、16個の検出状態における移動確定処理(即ち、保留処理)の一例を示すフローチャートであって、いずれか1個の検出状態がキューQUEに発生することを検出する毎に、このフローチャート処理をタッチセンサドライバTSDが行う。リリースされた状態から最初に検出した位置(16個のいずれか1つの検出状態)を最初の基準点とする。この基準点、現在の検出位置(キューQUEに新たに入れられた検出状態)、前回の検出位置(キューQUEに残されている1つ前の検出状態)の3つから、移動距離(検出状態の遷移)を判定する。図に示すように、ステップS10では、前回の位置がリリースされたか否かを判定する。リリースされていると判定された(キューQUEに残っている前回のデータが「リリース」である)場合は、ステップS12に進み、現在の検出位置がリリースされたか否か(即ち、新たに入れられたデータが「リリース」であるか否か)を判定する。現在の検出位置がリリースされていると判定された場合は処理を終了し、そうでない場合はステップS14に進み、基準点と前回の検出位置を現在の検出位置に設定する。
ステップS10で前回の位置がリリースされていないと判定された場合(即ち、他に検出が生じており、今回の検出がそれに引き続くものである場合)は、ステップS16に進み、現在の検出位置がリリースされたか否か(即ち、新たに入れられた信号が「リリース」であるか否か)を判定する。現在の検出位置がリリースされていると判定された場合は、基準点と前回の検出位置を初期化(クリアー)して処理を終える(ステップS18)。ステップS16で現在の検出位置がリリースされていないと判定された場合は、前回の検出位置と現在の検出位置との距離を計算して(ステップS20)、計算した距離が1または2であるか否かを判定する(ステップS22)。計算した距離が1または2ではない(即ち、3以上)と判定された場合は、センサ素子を飛ばして不連続な検出状態であると判定し(ステップS24)、基準点を現在の検出位置に設定し(ステップS26)、ステップS36に進む。ステップS22で計算した距離が1または2であると判定された場合は、現在の検出位置と基準点との距離を計算する(ステップS28)。なお、距離の計算は、キューQUEに入れられる信号により、センサ素子ごとの検出位置が分るため、前回の検出位置と、現在の検出位置との間に、16個の検出状態のうちの何個分の差があるのかをタッチセンサドライバTSDが判断して行う。
また、ステップS28で計算された距離が、2または3である否かを判定し(ステップS30)、条件を満たさない場合(即ち、4以上)はステップS36にエラーとして進み、条件を満たす場合(距離が2または3である場合)は、移動を確定する(ステップS32)。即ち、最初に触れた位置が「基準点」とされ、その後「リリース」されることなく引き続いて接触が検出され続けると「前回位置」が更新され、最終的に、最新の検出位置である「現在の位置」が基準点に対して「2または3移動した」と判定されたときに初めて、「移動あり」と判定している。さらに、単一素子検出状態および複数素子検出状態を連続して検出することで、「2の移動」であると判定しているため、センサ素子上では、上記「2の移動」により初めてセンサ素子1つ分指が移動していることになる。次の基準点を前の基準点から移動方向に2つ移動した位置に設定し(ステップS34)、ステップS36に進む。ステップS36では、次回の処理のために「前回の検出位置」を「現在の検出位置」に設定して、処理を終える。
また、タクトスイッチSW1−SW4が押下された場合は、押下検出時に設定されている前回の検出位置と基準点とを初期化(クリアー)する。次に、このようなフローチャートの移動確定処理を用いて、図12のタクトスイッチが押下された場合の処理を説明する。タクトスイッチSW1を押す場合に、「L2検出状態」、「L2−L3検出状態」の順に検出状態が遷移する場合には、この時点では1つしか検出状態が遷移(移動/変化)していないため、移動は確定しない。タクトスイッチSW1を押下した後で、指を離すときに、「L2−L3検出状態」、「L3検出状態」の順に検出状態が遷移する場合が考えられる。このとき、タクトスイッチ押下までの検出状態が保持されている場合には、「L2検出状態」、「L2−L3検出状態」、「L3検出状態」の順に検出状態が2つ遷移しているため、移動が確定してしまう恐れがあるが、上述したように、タクトスイッチSW1の押下を検出した時点で、過去の検出結果を破棄してあるため、指を離すときの誤検出を防止することができ、タクトスイッチのリリース時にセンサ素子の移動指示であると誤認識することがない。
或いは、タクトスイッチSW1を離すときに、「L2検出状態」、「L2−L3検出状態」の順に検出状態が遷移することがある。タクトスイッチ押下前の検出結果を破棄しても、タクトスイッチを離す際に、再度、センサ素子に触れてしまうことが考えられる。しかし、このような場合であっても、図13のフローチャートの処理に従えば、検出状態は1つしか遷移していないため、タクトスイッチのリリース時にセンサ素子の移動指示であると誤認識することがない。
図14は、図13のフローチャートの処理を図12のセンサ素子L1からL4への接触に適用した場合の確定処理を説明する図である。図に示すように、検出状態変化は、「L1検知」、「L1−L2検知」、「L2検知」、「L2−L3検知」「L3検知」、「L3−L4検知」、「L4検知」となる。即ち、単一素子検出状態と複数素子検出状態とL1からL4まで繰り返し検知する。まず、初めの「L1検知」が基準点BP1に設定される(S14)。次に「L1−L2検知」が生じると、前回の位置がリリースではなく「L1検知」であるため、前回の位置と今回検出された現在位置とを比較する(S20)。ここではL1から「L1−L2」への1コマの移動であるため有効とされ、今度は基準点と現在位置とを比較する(S28)。ここでは、基準点も前回位置も同じL1に設定されているため、やはり移動量は1コマであり、この段階では移動は確定せず、現在位置のL1−L2検知状態を前回位置PP1とする(S36)。
さらに「リリース」が途中で生じることなく「L2検知」が生じると、前回の位置が「L1−L2検知」であるため、前回の位置と今回検出された現在位置CP1とを比較する(S20)。こではL1−L2からL2への1コマの移動であり、「1または2か?」の判定条件を満たすため有効とされ、今度は、基準点と現在位置とを比較する(S28)。今回も基準点はL1検知時と変わらず同じL1に設定されているため、L2との位置関係は2コマであるため、移動量は2コマと判定される(S30)。そして、ここで初めて移動が確定する(S32)。そして、次の判定のために、基準点BP2を「L1検知」から移動方向に2コマ遷移させた点、すなわち「L2検知」に設定(S34)するとともに、前回位置を現在位置「L2検知」に再度設定し直して、確定処理1が完了する。
このように、タッチセンサドライバは、2コマの検知状態の遷移を検出することにより、移動「1」が決定される。つまり、ステップS32において移動が確定されると、結果通知部NTFに移動方向成分(L1からL4に向かう時計回り方向、すなわちSP2からSP1に向かう方向)および「1」の移動を格納すると共に、ベースアプリに対して記憶内容の更新を通知し、ベースアプリはこの更新内容を抽出してサブ表示部表示アプリAP1などに通知することになる。サブ表示部表示アプリAP1が使用中ならば、移動方向成分に基づいて「下から上に向かう方向」に、「1」の移動量か与えられているので、これに見合った処理として、サブ表示部ELDの表示を変化させる。具体的には図10(C)に示すようなリスト表示を行っていて、操作対象領域がLS4に位置している場合には、確定処理1に基づき操作対象領域はLS3に移動することとなる。ところで、この確定処理1と同様に第2のセンサ素子群であるR1−R4に対して、「R4検知」状態から連続して「R4−R3検知」「R3検知」と継続して検知状態が遷移したときにもタッチセンサからは移動方向成分に基づいて「下から上に向かう方向」および、「1」の移動量の付与の情報がベースアプリ経由でサブ表示部表示アプリAP1に与えられ、リスト表示の画面表示上は第1のセンサ素子部における操作と同じように、操作対象領域は項目LS4からLS3に変化することとなる。
次に、確定処理1に引き続き、「リリース」が生じることなく指の移動が継続した場合を説明する。確定処理1の場合と同様、図中の確定処理2に示すように、検知状態が基準点BP2から「L2−L3検知」を前回の位置PP2とし、「L3検知」が現在の位置CP2となったとき、基準点BP2と現在の位置CP2との距離が2コマとなるため、さらに移動「1」が確定する。すなわち、確定処理1に引き続いた確定処理2の両方により、合計「2」の移動が確定する。そして、さらに引き続く処理のために、基準点BP2「L2検知」から2コマ先の「L3検知」を新たな基準点BP3として基準点を変更する。
同様に、図中の確定処理3に示すように、検知状態が、基準点BP3から2コマ進み、「L3−L4検知」を前回の位置CP3として「L4検知」が現在の位置CP3になった時点で、距離が2コマとなるため、さらに「1」移動が確定して、確定処理1・2と合わせて合計「3」個の移動が確定する。このようにして、合計「3」の移動がアプリに通知されることとなる。
サブ表示部ELDにおける表示としては、サブ表示部表示アプリAP1に、確定処理1に引き続いて、「下から上に向かう方向」に「1」の移動確定が2回通知されることとなるので、操作対象領域がLS3から上方向に「2」移動したLS1にまで変化することとなる。ここで、単一素子検出状態の検出だけではなく、複数素子検出状態も検出するように構成して検出状態を細分化したにもかかわらず、状態遷移2コマの移動により確定する移動量を「1」としたことにより、結局、例のような4つのセンサ素子で構成されるセンサ素子時の場合には最大「3」の移動確定を行うようにした。つまり、センサ素子数4つの場合に単一素子検出のみによって移動確定を行う場合と、最終的に見た目の移動量は非常に近似したものとなるが、正確に単一の素子の真上のみを触っていなくとも、最大「3」の移動量を確保することが出来、ユーザの不正確な操作にも無反応などとなることなく、ユーザの希望に沿う形で対応できることとなる。このようにして、タッチセンサにより項目が選択され、引き続いてタクトスイッチを押下する際、タッチセンサ操作中に当接していたドーナツ状のパネルをそのまま押し込むことによってキー検出ドライバにより決定の指示をべースアプリ経由でサブ表示部表示アプリなどの使用中アプリに与えることが出来るため、ユーザにとって指の移動量の少ないさらに快適なユーザインターフェースとなる。
また、センサ素子数が「4」つで構成されるセンサ素子群の場合、初めに当接するセンサ素子分「1」を引いた「3」が最大移動確定量となる。よって、サブ表示部ELDに選択項目をリスト表示させる際、サブ表示部表示アプリは、センサ素子数「4」と同数である「4」行の選択項目を表示させることが好ましい。このように表示制御することにより、最下部(SP1側)のセンサ素子L1やR4に初めに接触検出され、最上部(SP2側)にまで連続し接触検出が継続すると、「3」の移動確定がサブ表示部表示アプリに供給されるため、最下段(LS4)から最上段(LS1)に選択対象領域が移動することになる。すなわち、最下部から最上部への最大移動が、表示上でも最下段から最上段への最大移動となるため、タッチセンサへの移動操作とサブ表示部ELDにおける移動表示が一致するため、ユーザにとって非常に操作内容を把握し易いユーザインターフェースとすることが出来る。
さらに、第1センサ素子群と第2センサ素子群とがサブ表示部ELDを挟み、対称な形態に配されているため、いずれを操作しても同様の操作指示を与えることが出来る。その上、互いの端部を並べて配してあるため、例えば、センサ素子L1から時計回りに接触検出状態を遷移させて、センサ素子R4検知状態にまで至るとき、サブ表示部ELD上では次のような表示の変化が生じる。すなわち、L1検出からL4検出時点までで最下段LS4から最上段LS1にまで操作対象領域が移動し、続いてR1検知してR4まで検知状態が遷移すると最上段LS1から最下段LS4に操作対象領域が戻ることとなる。これにより、ユーザは一度も指を離さなくとも、選択項目の選択時に上下方向を付与する手とが出来たり、操作対象領域をもとの位置に戻したりすることができ、ユーザにとって快適性の高い操作感を与えることが出来る。
なお、携帯電話機を携帯するユーザが、振動の生じやすい場所にて操作を行ったときに、外部振動によって指の移動中に一瞬タッチセンサから指が離れる場合などが考られる。このような場合に、センサ素子数分についてのみを検知するという単一素子検出のみを行って移動検出する粗い検知方式ならば、検知漏れが生じにくいが、単一素子検出だけでなく複数素子検出状態も検知するような緻密な検知方式とした場合、瞬間的に指示離れただけでも指は回転動作を継続中であるために検知状態を1つ飛ばしてしまう場合も考えられる。しかしながら、ステップS22にて「前回位置と現在位置の距離が1か2か?」としたことにより、前回位置から2移動している場合、つまり前回位置から1つ飛ばしても連続移動検出状態として扱うことが出来るため、振動下においてもユーザの希望した動作に極力近づけることが出来る。
なお、ステップS30において距離2コマだけでなく3コマについても有効としていることからも、振動などで指が一瞬はずれたり、素早い操作で検出状態が1つ飛んで検出されたりした場合などにも移動操作を検出することが出来る。さらに、3コマの移動量検出でも、次の2コマのときと同様に「1」の移動量確定とするだけでなく、次回検出のための基準点の設定は2コマ移動のときと同様に前回基準点に対して2コマのみ移動させるにとどめているため、3コマ検出による移動確定を行った場合でも、センサ素子数nから1を引いた「n−1」の移動確定する量を確保することが出来、ユーザにとってはいかなる触り方をしても同じ操作感という安定した操作感を得ることが出来るようになる。
本発明を諸図面や実施例に基づき説明してきたが、当業者であれば本開示に基づき種々の変形や修正を行うことが容易であることに注意されたい。従って、これらの変形や修正は本発明の範囲に含まれることに留意されたい。例えば、各部材、各手段、各ステップなどに含まれる機能などは論理的に矛盾しないように再配置可能であり、複数の手段やステップなどを1つに組み合わせたり、或いは分割したりすることが可能である。例えば、実施例では、円環状に設けたセンサ素子レイアウトで説明したが、コ字状に配置されるセンサ素子群を表示部を挟んで対向配置させてもよい。また、センサ素子群は左右の配置の実施例で説明したが、上下2群で構成してもよい。さらに、実施例では、携帯電話端末を挙げて説明してあるが、電話以外の携帯無線端末、PDA(パーソナルデジタルアシスタンス)、携帯ゲーム機、携帯オーディオプレイヤー、携帯ビデオプレイヤー、携帯電子辞書、携帯電子書籍ビューワーなどの携帯電子機器に幅広く本発明を適用することが可能である。また、実施例では、センサ素子として静電容量式の接触センサを挙げたが、前述した薄膜抵抗式、さらには、受光量の変動によって接触を検知する光学方式、表面弾性波の減衰によって接触を検知するSAW方式、誘導電流の発生によって接触を検知する電磁誘導方式のセンサ素子を用いてもよい。また、接触センサのタイプによっては、指以外の専用ペンなどの指示器具を使用するものがあるが、本発明の原理はこのような接触センサを搭載した携帯電子機器にも適用し得るものである。