(58)【調査した分野】(Int.Cl.,DB名)
第一座標軸上の各座標と、前記第一座標軸と直交する第二座標軸上の各座標について、ユーザのタッチの有無を検出するタッチパネルを備えたタッチパネル入力装置であって、
前記第一座標軸上の各座標と前記第二座標軸上の各座標のうち、タッチの有無を検出する機能が故障した座標を故障座標に設定する故障座標設定手段と、
前記第一座標軸上の座標と前記第二座標軸上の座標とよりなる二次元の入力座標を検出し、検出した入力座標を前記ユーザがタッチした座標として受け付ける入力座標検出手段とを有し、
前記入力座標検出手段は、
前記タッチパネルがタッチ有を検出した座標のうちの故障座標と異なる座標が、故障座標と異なる第一座標軸の座標と、故障座標と異なる第二座標軸の座標とである場合に、当該故障座標と異なる第一座標軸の座標と当該故障座標と異なる第二座標軸の座標とよりなる二次元の座標を前記入力座標として検出し、
故障座標に設定されている第二座標軸の座標が複数であり、現時点までに前記入力座標を連続的に検出しているときに、前記タッチパネルが、故障座標と異なる第一座標軸の座標と、故障座標と一致する第二座標軸の座標とのみについてタッチ有を検出したときに、故障座標に設定されている前記第二座標軸の座標であって、直前に検出した入力座標に含まれる第二座標軸の座標と近接している座標が存在する場合には、当該存在した故障座標に設定されている前記第二座標軸の座標と、前記タッチパネルがタッチ有を検出した故障座標と異なる第一座標軸の座標とよりなる二次元の座標を前記入力座標として検出することを特徴とするタッチパネル入力装置。
【発明の概要】
【発明が解決しようとする課題】
【0005】
上述したユーザのタッチの有無を正常に検出できなくなった座標を含まない領域に、ユーザのタッチ操作を受け付けるボタンをディスプレイに表示する領域を変更する技術によれば、故障発生時にボタンの配置が変化してしまうために、ユーザの混乱や操作性の劣化を招く場合がある。また、タッチの有無を正常に検出できなくなった座標によっては、良好な操作性を維持できるようにボタンの配置を変更できなくなる場合もある。
【0006】
そこで、本発明は、タッチの有無を正常に検出できなくなった座標にタッチが発生したときにも、可及的に当該座標を入力座標として検出することを課題とする。
【課題を解決するための手段】
【0007】
前記課題達成のために、本発明は、第一座標軸上の各座標と、前記第一座標軸と直交する第二座標軸上の各座標について、ユーザのタッチの有無を検出するタッチパネルを備えたタッチパネル入力装置に、前記第一座標軸上の各座標と前記第二座標軸上の各座標のうち、タッチの有無を検出する機能が故障した座標を故障座標に設定する故障座標設定手段と、前記第一座標軸上の座標と前記第二座標軸上の座標とよりなる二次元の入力座標を検出し、検出した入力座標を前記ユーザがタッチした座標として受け付ける入力座標検出手段とを設けたものである。ここで、前記入力座標検出手段は、前記タッチパネルがタッチ有を検出した座標のうちの故障座標と異なる座標が、故障座標と異なる第一座標軸の座標と、故障座標と異なる第二座標軸の座標とである場合に、当該故障座標と異なる第一座標軸の座標と当該故障座標と異なる第二座標軸の座標とよりなる二次元の座標を前記入力座標として検出し、故障座標に設定されている第二座標軸の座標が一つであるときに、前記タッチパネルが、故障座標と異なる第一座標軸の座標と、故障座標と一致する第二座標軸の座標とのみについてタッチ有を検出したときに、当該第一座標軸の座標と当該故障座標と一致する第二座標軸の座標とよりなる二次元の座標を前記入力座標として検出する。
【0008】
また、前記課題達成のために、本発明は、第一座標軸上の各座標と、前記第一座標軸と直交する第二座標軸上の各座標について、ユーザのタッチの有無を検出するタッチパネルを備えたタッチパネル入力装置に、前記第一座標軸上の各座標と前記第二座標軸上の各座標のうち、タッチの有無を検出する機能が故障した座標を故障座標に設定する故障座標設定手段と、前記第一座標軸上の座標と前記第二座標軸上の座標とよりなる二次元の入力座標を検出し、検出した入力座標を前記ユーザがタッチした座標として受け付ける入力座標検出手段とを設けたものである。ここで、前記入力座標検出手段は、前記タッチパネルがタッチ有を検出した座標のうちの故障座標と異なる座標が、故障座標と異なる第一座標軸の座標と、故障座標と異なる第二座標軸の座標とである場合に、当該故障座標と異なる第一座標軸の座標と当該故障座標と異なる第二座標軸の座標とよりなる二次元の座標を前記入力座標として検出し、故障座標に設定されている第二座標軸の座標が複数であり、現時点までに前記入力座標を連続的に検出しているときに、前記タッチパネルが、故障座標と異なる第一座標軸の座標と、故障座標と一致する第二座標軸の座標とのみについてタッチ有を検出したときに、故障座標に設定されている前記第二座標軸の座標であって、直前に検出した入力座標に含まれる第二座標軸の座標と近接している座標が存在する場合には、当該存在した故障座標に設定されている前記第二座標軸の座標と、前記タッチパネルがタッチ有を検出した故障座標と異なる第一座標軸の座標とよりなる二次元の座標を前記入力座標として検出する。
【0009】
また、前記課題達成のために、本発明は、第一座標軸上の各座標と、前記第一座標軸と直交する第二座標軸上の各座標について、ユーザのタッチの有無を検出するタッチパネルと、前記タッチパネルと表示面が重なるように配置されたディスプレイとを備えたタッチパネル入力装置に、前記ディスプレイにユーザのタッチ操作を受け付ける表示オブジェクトを表示するオブジェクト表示手段と、前記第一座標軸上の各座標と前記第二座標軸上の各座標のうち、タッチの有無を検出する機能が故障した座標を故障座標に設定する故障座標設定手段と、前記第一座標軸上の座標と前記第二座標軸上の座標とよりなる二次元の入力座標を検出し、検出した入力座標を前記ユーザがタッチした座標として受け付ける入力座標検出手段とを設けたものである。ここで、前記入力座標検出手段は、前記タッチパネルがタッチ有を検出した座標のうちの故障座標と異なる座標が、故障座標と異なる第一座標軸の座標と、故障座標と異なる第二座標軸の座標とである場合に、当該故障座標と異なる第一座標軸の座標と当該故障座標と異なる第二座標軸の座標とよりなる二次元の座標を前記入力座標として検出し、故障座標に設定されている第二座標軸の座標が複数であるときに、前記タッチパネルが、故障座標と異なる第一座標軸の座標と、故障座標と一致する第二座標軸の座標とのみについてタッチ有を検出したときに、故障座標に設定されている前記第二座標軸の座標であって、当該第二座標軸の座標と前記タッチパネルがタッチ有を検出した故障座標と異なる第一座標軸の座標とを組み合わせた二次元の座標が前記表示オブジェクトの表示領域内の座標となる故障座標が一つだけ存在する場合には、当該存在した故障座標に設定されている前記第二座標軸の座標と、前記タッチパネルがタッチ有を検出した故障座標と異なる第一座標軸の座標とよりなる二次元の座標を前記入力座標として検出する。
【0010】
ここで、以上の各タッチパネル入力装置の構成は、これらを組み合わせて適用するようにしてもよい。
また、以上のタッチパネル入力装置において、前記タッチパネルは、ディスプレイの縦横の辺に沿って配列した複数の発光素子と、ディスプレイの前記複数の発光素子を配列した辺と対向する辺に沿って配列した複数の受光素子とを備え、前記発光素子を駆動すると共に、前記各受光素子の受光の有無より、第一座標軸上の各座標と前記第二座標軸上の各座標についてユーザのタッチの有無を検出する光学式タッチパネルであってよい。
【0011】
以上のようなタッチパネル入力装置によれば、タッチの有無を検出する機能が故障した座標である故障座標が存在する場合であっても、故障座標に設定されている第二座標軸の座標が一つであるときに、前記タッチパネルが、故障座標と異なる第一座標軸の座標と、故障座標と一致する第二座標軸の座標とのみについてタッチ有を検出したときや、故障座標に設定されている第二座標軸の座標が複数であり、現時点までに前記入力座標を連続的に検出しているときに、前記タッチパネルが、故障座標と異なる第一座標軸の座標と、故障座標と一致する第二座標軸の座標とのみについてタッチ有を検出したときに、故障座標に設定されている前記第二座標軸の座標であって、直前に検出した入力座標に含まれる第二座標軸の座標と近接している座標が存在する場合や、故障座標に設定されている第二座標軸の座標が複数であるときに、前記タッチパネルが、故障座標と異なる第一座標軸の座標と、故障座標と一致する第二座標軸の座標とのみについてタッチ有を検出したときに、故障座標に設定されている前記第二座標軸の座標であって、当該第二座標軸の座標と前記タッチパネルがタッチ有を検出した故障座標と異なる第一座標軸の座標とを組み合わせた二次元の座標が前記表示オブジェクトの表示領域内の座標となる故障座標が一つだけ存在する場合には、故障座標にタッチが発生したときに、当該座標を入力座標として正しく検出することができる。
【発明の効果】
【0012】
以上のように、本発明によれば、タッチの有無を正常に検出できなくなった座標にタッチが発生したときにも、可及的に当該座標を入力座標として検出することができる。
【発明を実施するための形態】
【0014】
以下、本発明の実施形態について説明する。
図1に、本実施形態に係る電子機器の構成を示す。
図示するように、電子機器は、ディスプレイ1、タッチパネル2、ディスプレイ1を駆動するディスプレイコントローラ3、ユーザによってタッチされたタッチパネル2上のX座標とY座標を検出し出力座標として出力するタッチパネルコントローラ4、オペレーティングシステム5、オペレーティングシステム5上で稼働するアプリケーション6とを備えている。
【0015】
また、オペレーティングシステム5は、ディスプレイコントローラ3を介してディスプレイ1の表示を制御するディスプレイドライバ51を備えている。また、オペレーティングシステム5は、タッチパネルコントローラ4が出力する出力座標からXY二次元の入力座標を検出し、その時点でタッチパネル2を入力に用いているオペレーティングシステム5やアプリケーション6に出力するタッチパネルドライバ52を備えている。
【0016】
但し、電子機器は、ハードウエア的には、CPUやメモリなどを備えたコンピュータを用いて構成されるものであり、オペレーティングシステム5や、アプリケーション6などは、当該コンピュータが、所定のコンピュータプログラムを実行することにより実現されるものである。
【0017】
次に、
図2に、タッチパネル2とタッチパネルコントローラ4の構成を示す。
図示するように、タッチパネル2は、XLEDアレイ21と、YLEDアレイ22と、XPDアレイ23と、YPDアレイ24とを備えている。
XLEDアレイ21は、ディスプレイ1の下辺に沿って横方向に並べた複数の赤外線のLEDよりなり、XLEDアレイ21の各LEDは上方向に光ビームを出射する。
また、YLEDアレイ22は、ディスプレイ1の右辺に沿って縦方向に並べた複数の赤外線のLEDよりなり、YLEDアレイ22の各LEDは左方向に光ビームを出射する。
そして、XPDアレイ23は、ディスプレイ1の上辺に沿って横方向に並べた複数の赤外線のPD(フォトダイオード)よりなり、XLEDアレイ21の各PDは下方向から入射する光ビームを検出する。
また、YPDアレイ24は、ディスプレイ1の左辺に沿って横方向に並べた複数の赤外線のPDよりなり、YLEDアレイ22の各PDは右方向から入射する光ビームを検出する。
次に、タッチパネルコントローラ4は、制御部41と、LED走査部42と、PD走査部43とを備えている。
LED走査部42は、LED走査を繰り返し行い、各回のLED走査において、所定のシーケンスでXLEDアレイ21とYLEDアレイ22のLEDを順次点灯する。また、PD走査部43は、PD走査を繰り返し行い、各回のPD走査において、順次、点灯しているLEDに対向する位置にあるXPDアレイ23またはYPDアレイ24のPDの受光の有無を検出する。ここで、PD走査部43が1回のPD走査で全てのPDの受光の有無の検出を行うよう、LED走査のLEDの点灯シーケンスや、PD走査のPDの受光の有無の検出シーケンスは定められている。
【0018】
そして、制御部41は、LED走査部42の上述したLED走査動作や、PD走査部43の上述したPD走査動作を制御すると共に、各回のPD走査で検出した各PDの受光の有無より、受光無であった各PDの座標を出力座標としてタッチパネルドライバ52に出力する。
【0019】
すなわち、
図3a1に示すように、x1からxnまでのn個のX座標に配置されたn個のPDをXPDアレイ23が備え、y1からymまでのm個のY座標の各々に配置されたm個のPDをYPDアレイ24が備えている場合において、PD走査で、
図3a2に示すように、X座標xjのPDが受光無を検出し、Y座標ykのPDが受光無を検出した場合には、制御部41は、出力座標xjと、出力座標ykとを出力する。
【0020】
さて、このような構成において、タッチパネルドライバ52は、所定期間(たとえば、10分)以上継続して出力座標として出力され続けているX座標またはY座標が存在した場合には、その座標を検出する機能が故障しているものとして故障座標に設定する。
【0021】
すなわち、たとえば、
図3b1に示すように、故障によりXPDアレイ23のX座標xaのPDが受光有りを検出できなくなり、出力座標xaが所定期間以上継続して出力し続けられている場合には、X座標xaを故障座標に設定する。また、同様に、故障によりYPDアレイ24のY座標yaのPDが受光有りを検出できなくなり、出力座標yaが所定期間以上継続して出力し続けられている場合には、Y座標yaを故障座標に設定する。
なお、座標を検出する機能が故障している座標は、所定期間以上の出力継続の検出以外の手法によって検出して故障座標に設定するようにしてもよい。
【0022】
以下、このような構成において、タッチパネルドライバ52が行う入力座標検出処理について説明する。
図4に入力座標検出処理の手順を示す。
図示するように、この処理では、タッチパネルドライバ52から、PD走査で検出された出力座標の入力を監視する(ステップ402)。そして、出力座標が入力したならば(ステップ402)、故障座標が設定されているかどうかを調べ(ステップ404)、設定されていなければ、出力座標が一つのX座標xjと一つのY座標ykとの一つの組のみであるかどうかを調べる(ステップ406)。
【0023】
そして、一つの組のみでなければ、そのままステップ402に戻り、一つの組のみであれば、当該組が表す座標(xj、yk)を入力座標として検出した上で(ステップ408)、ステップ402に戻る。
一方、ステップ404で故障座標が設定されていると判定された場合には、故障座標と一致しない出力座標が存在するかどうかを調べ(ステップ410)、存在しない場合にはステップ402に戻る。
一方、故障座標と一致しない出力座標が存在する場合には(ステップ410)、入力した出力座標から、故障座標と一致する出力座標を除いた出力座標が、一つのX座標xjと一つのY座標ykとの一つの組のみであるかどうかを調べる(ステップ412)。
そして、一つの組のみであれば、当該組が表す座標(xj、yk)を入力座標として検出し(ステップ414)、ステップ402に戻る。
一方、一つの組のみでなければ、故障座標が、X座標軸とY座標軸とのそれぞれについて最大一つであるかどうか、すなわち、複数のX座標や複数のY座標が故障座標として設定されていないかどうかを調べる(ステップ416)。
そして、故障座標が、X座標軸とY座標軸とのそれぞれについて最大一つであれば(ステップ416)、故障座標と一致しない出力座標が一つのY座標ybのみであるかどうかを調べ(ステップ418)、そうでなければステップ402に戻る。
一方、故障座標と一致しない出力座標が一つのY座標ybのみであれば、さらに、X座標の故障座標xaが存在するかどうかを判定し(ステップ420)、故障座標xaが存在しなければステップ402に戻り、故障座標xaが存在する場合には、故障座標と一致しない出力座標であるY座標ybと故障座標xaとを用いた座標(xa、yb)を入力座標として検出した上で(ステップ422)、ステップ402に戻る。ただし、ステップ422では、故障座標xaと一致する出力座標が存在する場合のみ、(xa、yb)を入力座標として検出し、他の場合はステップ402に戻るようにしてもよい。
【0024】
一方、ステップ418で、故障座標と一致しない出力座標が一つのY座標ybのみでないと判定された場合には、故障座標と一致しない出力座標が一つのX座標xbのみであるかどうかを調べ(ステップ424)、そうでなければステップ402に戻る。
一方、故障座標と一致しない出力座標が一つのX座標xbのみであれば、さらに、Y座標の故障座標yaが存在するかどうかを判定し(ステップ426)、故障座標yaが存在しなければステップ402に戻り、故障座標yaが存在する場合には、故障座標と一致しない出力座標であるX座標xbと故障座標yaとを用いた座標(xb、ya)を入力座標として検出した上で(ステップ428)、ステップ402に戻る。ただし、ステップ428では、故障座標yaと一致する出力座標が存在する場合のみ、(xb、ya)を入力座標として検出し、他の場合はステップ402に戻るようにしてもよい。
【0025】
次に、ステップ416において、故障座標が、X座標軸とY座標軸とのそれぞれについて最大一つでないと判定された場合、すなわち、複数のX座標や複数のY座標が故障座標として設定されている場合には、現在ドラッグ操作中であるかどうかを調べる(ステップ430)。ここで、ステップ430では、現在まで連続的に入力座標を検出し続けている場合にドラッグ操作中であると判定する。
【0026】
そして、ドラッグ操作中でなければステップ402に戻り、ドラッグ操作中であれば、故障座標と一致しない出力座標が一つのY座標ybのみであるかどうかを調べる(ステップ432)。
そして、故障座標と一致しない出力座標が一つのY座標ybのみであれば、Y座標ybが前回入力座標として検出した座標のY座標に近接しているかどうかを調べ(ステップ434)、近接していなければステップ402に戻る。
一方、Y座標ybが前回入力座標として検出した座標のY座標に近接している場合には、前回入力座標として検出した座標のX座標に近接する故障座標xaが存在するかどうかを判定し(ステップ436)、近接する故障座標xaが存在しなければステップ402に戻り、近接する故障座標xaが存在する場合には、故障座標と一致しない出力座標であるY座標ybと故障座標xaとを用いた座標(xa、yb)を入力座標として検出した上で(ステップ438)、ステップ402に戻る。ただし、ステップ438では、故障座標xaと一致する出力座標が存在する場合のみ、(xa、yb)を入力座標として検出し、他の場合はステップ402に戻るようにしてもよい。
【0027】
一方、ステップ432で、故障座標と一致しない出力座標が一つのY座標ybのみでないと判定された場合には、故障座標と一致しない出力座標が一つのX座標xbのみであるかどうかを調べ(ステップ440)、そうでなければステップ402に戻る。
一方、故障座標と一致しない出力座標が一つのX座標xbのみであれば、X座標xbが前回入力座標として検出した座標のX座標に近接しているかどうかを調べ(ステップ442)、近接していなければステップ402に戻る。
一方、X座標xbが前回入力座標として検出した座標のX座標に近接している場合には、前回入力座標として検出した座標のY座標に近接する故障座標yaが存在するかどうかを判定し(ステップ444)、近接する故障座標yaが存在しなければステップ402に戻り、近接する故障座標yaが存在する場合には、故障座標と一致しない出力座標であるX座標xbと故障座標yaとを用いた座標(xb、ya)を入力座標として検出した上で(ステップ446)、ステップ402に戻る。ただし、ステップ446では、故障座標Yaと一致する出力座標が存在する場合のみ、(xb、ya)を入力座標として検出し、他の場合はステップ402に戻るようにしてもよい。
【0028】
以上、タッチパネルドライバ52が行う入力座標検出処理について説明した。なお、上述のように入力座標検出処理で検出された入力座標は、その時点でタッチパネル2を入力に用いているオペレーティングシステム5やアプリケーション6に出力される。
以上のような入力座標検出処理によれば、たとえば、
図3b1に示すように、故障によりX座標xaの座標検出機能が失われX座標xaが故障座標に設定されているときに、xjとxaが異なるX座標であるとして、ユーザが座標(xj、yk)をタッチしたときには、出力座標xaと出力座標xjと出力座標ykとがタッチパネルドライバ52に入力される。そして、タッチパネルドライバ52において、故障座標xaと一致する出力座標xaを除く出力座標xjと出力座標ykとを用いた座標(xj、yk)が入力座標として正しく検出されることとなる。
【0029】
一方、
図3b2に示すように、X座標xaが故障座標に設定されているときに、ユーザが座標(xa、yb)をタッチしたときには、出力座標xaと出力座標ykとがタッチパネルドライバ52に入力される。そして、タッチパネルドライバ52において、故障座標と異なる出力座標ykが入力されたことよりユーザのタッチが発生したことを検知すると共に、故障座標xa以外のX座標の出力座標が入力されていないことより、ユーザがタッチしたX座標は故障座標xaであると推定して、故障座標xaと出力座標ybとを用いた座標(xa、yb)が入力座標として正しく検出されることとなる。
【0030】
次に、
図5a1に示すように、X座標xaとxqとが故障座標に設定されているときに、
図5a2に示すように、ユーザが座標(xa、yb)の位置までタッチパネル2をなぞるドラッグ操作を行った場合、タッチ位置が座標(xa、yb)に達するまでは正しくタッチした座標が入力座標として検出される。そして、タッチ位置が座標(xa、yb)に達したときには、出力座標xaと出力座標xqと出力座標ybがタッチパネルドライバ52に入力される。そして、タッチパネルドライバ52において、故障座標ではない出力座標ybが前回入力座標として検出したY座標yb-1と近接していることより、ユーザのドラッグ操作が継続していることを検知する。また、故障座標以外のX座標の出力座標が入力されていないことより、故障座標xa、xqのいずれかがユーザがタッチしているX座標であることを検知する。そして、ドラッグ操作継続中はタッチ位置の座標が大きく変化することはないので、故障座標xa、xqうち、前回入力座標として検出したX座標xa-1に近接する故障座標xaに現在ユーザがタッチしているものと確定する。そして、故障座標xaと出力座標ybとを用いた座標(xa、yb)を入力座標として正しく検出する。
【0031】
また、以上の入力座標検出処理における故障座標が一つの座標軸上に複数存在するときの入力座標の検出は、ユーザのタッチ操作が行われる領域が限定できる場合には、当該領域を利用して行うようにしてもよい。すなわち、故障座標と異なる一つの座標Aと、当該一つの座標Aと異なる座標軸上の複数の故障座標B1、B2…とを含む複数の故障座標とが出力座標として出力されたときに、複数の故障座標B1、B2…のうち、ユーザの座標Aとの組み合わせにより示されるXY座標が、タッチ操作が行われる領域内となる故障座標が故障座標Bpの一つのみである場合には、その一つの故障座標Bpと、故障座標と異なる出力座標Aとにより示される座標を入力座標として検出するようにしてもよい。
【0032】
たとえば、いま、
図5b1に示すように、Y座標yaとyqとが故障座標に設定されており、
図5b2に示すように、ディスプレイ1にユーザ操作を受け付けるための複数のボタン500が表示されているときに、ユーザが一つのボタン500を操作するために、そのボタンの表示領域内の座標(xb、ya)タッチした場合を考える。
【0033】
この場合、出力座標xbと出力座標yaと出力座標yqとがタッチパネルドライバ52に入力される。そして、タッチパネルドライバ52において、故障座標と異なる出力座標xbが入力されたことよりユーザのタッチが発生したことを検知すると共に、故障座標yaと故障座標yq以外のY座標の出力座標が入力されていないことより、ユーザがタッチしたY座標は故障座標ya、yqのいずれかであることを検知する。
【0034】
そして、故障座標ya、yqと故障座標と異なる出力座標xbと組み合わせた座標(xb、ya)、(xb、yq)のうち、座標(xb、ya)のみがボタン500を表示している領域内にあり、座標(xb、yq)はボタン500を表示している領域内にないことより、故障座標yaが現在ユーザがタッチしているY座標であると推定する。そして、故障座標yaと出力座標xbとを用いた座標(xb、ya)を入力座標として検出する。
【0035】
ところで、以上の実施形態では、入力座標検出処理をタッチパネルドライバ52において行うものとして説明したが、以上の入力座標検出処理は、タッチパネルコントローラ4の制御部41において行うようにすることもできる。また、タッチパネルドライバ52において出力座標をそのままアプリケーション6に中継するものとして、以上の入力座標検出処理は、アプリケーション6において行うようにすることもできる。
【0036】
また、以上の実施形態は、光学式タッチパネルへの適用を例にとり説明したが、以上の実施形態における入力座標検出処理は、投影型の静電容量式タッチパネルなどの他の方式のタッチパネル2にも同様に適用することができる。