タッチパネル制御装置及びタッチパネル制御方法
【課題】 アナログ抵抗膜方式のタッチパネルにおいて、マルチタッチをユーザの操作として活用する。
【解決手段】 制御装置3は、抵抗膜11に電圧を印加する回路と、抵抗膜13に電圧を印加する回路と、2つの回路を切り替えるスイッチ37と、抵抗膜11の抵抗値を計測するA/Dコンバータ35L及び35Rと、抵抗膜13の抵抗値を計測するA/Dコンバータ35U及び35Dと、を有する。制御装置3のMCU31は、抵抗膜11に印加している時のA/Dコンバータ35L及び35Rの計測結果と基準値Vlo、Vroとの差である変化量Vlv、Vrvを計算し、抵抗膜13に印加している時のA/Dコンバータ35U及び35Dの計測結果と基準値Vuo、Ydoとの差である変化量を計算し、其々の値の和を計算する。
【解決手段】 制御装置3は、抵抗膜11に電圧を印加する回路と、抵抗膜13に電圧を印加する回路と、2つの回路を切り替えるスイッチ37と、抵抗膜11の抵抗値を計測するA/Dコンバータ35L及び35Rと、抵抗膜13の抵抗値を計測するA/Dコンバータ35U及び35Dと、を有する。制御装置3のMCU31は、抵抗膜11に印加している時のA/Dコンバータ35L及び35Rの計測結果と基準値Vlo、Vroとの差である変化量Vlv、Vrvを計算し、抵抗膜13に印加している時のA/Dコンバータ35U及び35Dの計測結果と基準値Vuo、Ydoとの差である変化量を計算し、其々の値の和を計算する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、アナログ抵抗膜方式のタッチパネルの制御装置及びその関連技術に関する。
【背景技術】
【0002】
特許文献1及び2には、アナログ抵抗膜方式のタッチパネルが2点以上で同時に押されたか否かを検出するための処理を開示している。
いずれも、アナログ抵抗膜方式のタッチパネルが2点以上で同時に押された時、当該2点の間で、上下の抵抗膜(又は導電膜)による並列回路が形成され、その分抵抗膜上の合成抵抗が下がるという特性を利用している。
以下、タッチパネルが1点で押されることをシングルタッチと呼ぶ。また、タッチパネルが2点以上で同時に押されることをマルチタッチと呼ぶ。
【0003】
特許文献1の装置は電流計を有し、電流量の増加によって抵抗膜上の抵抗値の低下を検出する。特許文献2の装置は、抵抗膜と電源電圧(又は接地電圧)との間に検出用抵抗を有し、抵抗膜と検出用抵抗との間の電位を測定する。そして、特許文献2の装置は、測定した電位の変化によって抵抗膜上の抵抗値の低下を検出する。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開平1−269120号
【特許文献2】特開平8−161099号
【発明の概要】
【発明が解決しようとする課題】
【0005】
特許文献1及び2は、マルチタッチを誤操作として排除することを目的としている。しかし、マルチタッチもユーザの操作の一つとして活用できれば、ユーザにとって便利である。
【0006】
そこで、本発明の目的は、アナログ抵抗膜方式のタッチパネルにおいて、マルチタッチをユーザの操作として活用することである。
【課題を解決するための手段】
【0007】
本発明の第1の観点によれば、タッチパネルの制御装置は、アナログ抵抗膜方式タッチパネルの制御装置であって、抵抗膜上のX軸方向に対抗しているX軸電極間に電圧を印加するX軸印加手段と、抵抗膜上の前記X軸に対して垂直なY軸方向に対抗しているY軸電極間に電圧を印加するY軸印加手段と、X軸印加手段と前記Y軸印加手段とを切り替える切替手段と、前記X軸電極間の抵抗値を計測するX軸計測手段と、前記Y軸電極間の抵抗値を計測するY軸計測手段と、前記X軸印加手段が駆動している時の前記X軸計測手段の計測結果とX軸基準値との差であるX軸変化量を計算する第1計算手段と、前記Y軸印加手段が駆動している時の前記Y軸計測手段の計測結果とY軸基準値との差であるY軸変化量を計算する第2計算手段と、前記X軸変化量と前記Y軸変化量の和又は相加平均を計算する第3計算手段と、を備える。
【0008】
この構成によれば、マルチタッチの2点の間隔と相関関係のある値を、前記第3計算手段の計算結果として取得することができる。当該値はマルチタッチの2点の間隔に応じて変化する。このため、座標の取得とは違う観点から、マルチタッチをユーザの操作の一つとして利用することができる。
また、殆どのアナログ抵抗膜方式のタッチパネルは、マルチタッチ時に電極間の抵抗値が低下する特性を有しているため、この制御装置は、多くの既存のアナログ抵抗膜方式のタッチパネルに接続して利用することができる。
【0009】
上記の構成において、前記第3計算手段の計算結果を記憶する記憶手段と、二つの時点における前記第3計算手段の計算結果を比較する比較手段と、をさらに備えてもよい。
【0010】
この構成によれば、ある時点からある時点の間に、マルチタッチの2点の間隔が広くなったか狭くなったかを検出することができる。これによって、後述するピンチイン/ピンチアウトと呼ばれる操作を検出することができる。
【0011】
上記の構成においてさらに、前記X軸印加手段と、前記X軸電極との間に配置されたX軸抵抗と、前記Y軸印加手段と、前記Y軸電極との間に配置されたY軸抵抗と、をさらに備え、前記X軸計測手段は、電圧計測手段を含み、前記X軸電極と前記X軸抵抗との間の電圧の変化に基づいて前記X軸電極間の抵抗値を計測し、前記Y軸計測手段は、電圧計測手段を含み、前記Y軸電極と前記Y軸抵抗との間の電圧の変化に基づいて前記Y軸電極間の抵抗値を計測するようにしてもよい。
【0012】
この構成によれば、X軸電極間の抵抗値及びY軸電極間の抵抗値の変化を、電圧計測手段が計測する電圧値の変化として検出することができる。
【図面の簡単な説明】
【0013】
【図1】本発明の実施の形態によるタッチパネル制御装置を使ったタッチパネルユニットの説明図。
【図2】(a)4線式抵抗膜方式のタッチパネルの説明図。(b)5線式抵抗膜方式のタッチパネルの説明図。
【図3】(a)図1のタッチパネル1上の点PS1が押された状態を示す模式図。(b)図3(a)の状態を等価回路で示した図。
【図4】(a)図1のタッチパネル1上で、点PM1と点PM2とが押された例を示す模式図。(b)図4(a)の状態で抵抗膜11が駆動膜となっている時の状態を、等価回路で示した図。
【図5】(a)図1のタッチパネル1上で、点PM1と点PM2とが押された例を示す模式図。(b)図5(a)の状態で抵抗膜11が駆動膜となっている時の状態を、等価回路で示した図。
【図6】ピンチイン・ピンチアウトを説明する図。
【図7】MCU31が実行する処理の全体的な流れを説明するフローチャート。
【図8】図7の基準値取得処理を説明するフローチャート。
【図9】図7のステップS5のタッチ検出処理を説明するフローチャート。
【図10】図7のステップS9のマルチ/シングル判定処理を説明するフローチャート。
【図11】図7のステップS13のマルチタッチ用処理の一つとして実行される、ピンチイン/ピンチアウト検出処理を説明するフローチャート。
【図12】図7のステップS15のシングルタッチ用処理として行われる1点座標検出処理を説明するフローチャート。
【図13】図7のステップS13のマルチタッチ用処理の一つとして実行される、2点座標推定処理を説明するフローチャート。
【発明を実施するための形態】
【0014】
以下、本発明の実施の形態について、図面を参照しながら説明する。なお、図中、同一または相当部分については同一の参照符号を付してその説明を援用する。
【0015】
図1は、本発明の実施の形態によるタッチパネル制御装置を使ったタッチパネルユニットの説明図である。
タッチパネル1は、抵抗膜11及び抵抗膜13を含む。抵抗膜11及び抵抗膜13は、いずれも均一な抵抗値を持った膜である。抵抗膜11の両端には電極XL及びXRがある。抵抗膜13の両端には電極YU及びYDがある。抵抗膜11と抵抗膜13の間には隙間があり、通常接触しない。しかし、ユーザがタッチパネル1を押すと、抵抗膜11と抵抗膜13とは押下点において接触する。
図1は説明のための概念図である。図示はしないが、タッチパネル1はガラス基板やセパレータ等の他の周知の部品も有する。
【0016】
ここで、一般的なアナログ抵抗膜方式のタッチパネルの構造について簡単に説明する。
図2(a)は4線式抵抗膜方式のタッチパネルの説明図である。
図2(b)は5線式抵抗膜方式のタッチパネルの説明図である。
アナログ抵抗膜方式のタッチパネルは、2枚の導電膜が通常時は接触しない状態で向かい合った構造をしている。そして、2枚の導電膜は、ユーザがタッチパネルを押した部分が接触し、導通状態になる。
【0017】
図2(a)を参照して、4線式のタッチパネルは、2枚の導電膜が両方とも、全面が均質な抵抗値を持つ抵抗膜である。一方の抵抗膜の端には、X軸方向に電極がついている。他方の抵抗膜の端には、X軸に垂直なY軸方向に電極がついている。4つの電極があるため、この形式は4線式と呼ばれる。
図2(b)を参照して、5線式のタッチパネルは、2枚の導電膜のうち下部の1枚が、全面が均質な抵抗値を持つ抵抗膜である。抵抗膜の4辺の端にはX軸方向とY軸方向に電極がついている。上部の導電膜には1本電極がついている。5つの電極があるため、この形式は5線式と呼ばれる。
【0018】
いずれのタッチパネルも押下点の座標の検出原理は同じである。各電極には制御装置が接続される。制御装置が電極を通じて抵抗膜のX軸方向に電圧をかけると、Y軸に平行な等電位が当該抵抗膜上に形成される。このため、制御装置が抵抗膜のX軸方向に電圧をかけた時の押下点の電位から、押下点のX座標を算出することができる。
また、制御装置が電極を通じて抵抗膜のY軸方向に電圧をかけると、X軸に平行な等電位が抵抗膜上に形成される。このため、制御装置が抵抗膜のY軸方向に電圧をかけた時の押下点の電位から、押下点のY座標を算出することができる。
押下点の電位は、電圧をかけられていない側の導電膜に接続された制御装置の電圧測定手段によって検出される。以下の説明では、電圧をかけられた側の導電膜を駆動膜、電圧をかけられていない側の導電膜を検出膜と呼ぶ。
【0019】
押下点が1点だけの場合は、電圧測定手段のインピーダンスのために、検出膜にはほぼ電流が流れない。このため、検出膜に接続された電圧測定手段が出力する電圧値は、押下点の電位とみなすことができる。
【0020】
これに対して、押下点が2点以上ある場合、押下点の間で駆動膜と検出膜とによって並列回路が形成される。このため、回路中のタッチパネル部分における抵抗は低下する。そして、電圧測定手段が出力する電圧値は、押下点の電位とみなすことはできない。このため、従来はマルチタッチ時に検出される電位をノイズとしてキャンセルしていた。なお、特許文献1や2にも記載されている通り、各押下点のほぼ中点を押した時の電位が検出される場合が多い。
【0021】
図1に戻って、制御装置3は、MCU31、A/Dコンバータ35L、35R、35U、35D、スイッチ37L、37R、37U、37D、検出用抵抗39L、39R、39U、39Dを含む。A/Dコンバータ35L、35R、35U、35Dを区別する必要が無い場合は、A/Dコンバータ35と呼ぶ。スイッチ37L、37R、37U、37Dを区別する必要が無い場合は、スイッチ37と呼ぶ。検出用抵抗39L、39R、39U、39Dを区別する必要が無い場合は検出用抵抗39と呼ぶ。
【0022】
MCU31は内部にメモリ33を含む。メモリ33は、RAM、ROM、及びフラッシュメモリ等の半導体メモリであり、プログラム格納領域、データ格納領域、作業領域、及び一時格納領域等として利用される。
なお、制御装置3の仕様に応じて、記録媒体として、メモリ33の他、光ディスク、半導体メモリを搭載したメモリカード・メモリカートリッジ・USBメモリ、及び、光磁気ディスク等を、MCU31に接続することもできる。そして、これらにプログラムやデータなどを格納することもできる。
【0023】
A/Dコンバータ37は、タッチパネル1の各電極における電圧値をデジタル値に変換し、MCU31に伝える。A/Dコンバータ37Lには電極XLにおける電圧値を取得する。A/Dコンバータ37Rは電極XRにおける電圧値を取得する。A/Dコンバータ37Uは電極YUにおける電圧値を取得する。A/Dコンバータ37Dは電極YDにおける電圧値を取得する。
【0024】
スイッチ37は、電圧をかけるラインを切り替えるためのスイッチである。スイッチの種類は何でもよい。この実施の形態では、スイッチ37は「H」レベルでオン、「L」レベルでオフになるアナログスイッチである。スイッチ37Lは、MCU31の第1出力ポートに接続されている。スイッチ37Rは、MCU31の第2出力ポートに接続されている。スイッチ37Uは、MCU31の第3出力ポートに接続されている。スイッチ37Dは、MCU31の第4出力ポートに接続されている。MCU31は各出力ポートの「H」と「L」とを切り替えることでスイッチ37のオン/オフを切り替える。
【0025】
各電極と電源電圧又は接地電圧の間には、検出用抵抗39が設けられる。この検出用抵抗39を回路に組み込むことによって、抵抗膜上の抵抗値の変化、即ち、電極XL−XR間(又は電極YU−YD間)の抵抗値の変化が、A/Dコンバータ35が出力する電圧値の変化として現れる。
特許文献1のように、2つの電極間の抵抗値の変化を電流値の変化によって検出する場合は、検出用抵抗39は不要である。ただし、別途なんらかの電流測定手段が必要になる。
【0026】
MCU31は、各スイッチ37を切り替え、各A/Dコンバータ35から電圧値の変化を取得する。そして、MCU31は、当該電圧値の変化に基づいて、ユーザの操作に応じた情報を出力する。
次に、シングルタッチとマルチタッチについて説明する。
【0027】
(シングルタッチ)
図3(a)は、タッチパネル1上の点PS1が押された状態を示す模式図である。
図3(b)は、図3(a)の状態を等価回路で示したものである。ただし、配線抵抗、接触抵抗、検出用抵抗39は説明を簡単にするために省略している。
抵抗膜11及び13は均質な抵抗値を持つ膜である。このため、抵抗膜11は、電極XLから点PS1までの抵抗RS1と、点PS1から電極XRまでの抵抗RS2とを直列につないだものとして説明することができる。
【0028】
電極XLと電極XRとの間に電圧がかかると、抵抗膜11上に電極XL及び電極XRに平行な等電位が形成される。このため、点PS1のX座標は、電極XLの電位、電極XRの電位及び点PS1の電位の比に基づいて計算できる。
同様に、電極YUと電極YDとの間に電圧がかかると、抵抗膜13上に電極YU及び電極YDに平行な等電位が形成される。このため、点PS1のY座標は、電極YUの電位、電極YDの電位及び点PS1の電位の比に基づいて計算できる。
【0029】
図3(a)では、ユーザがタッチパネル1上の1点を押している。そして、抵抗膜11上の点PS1と、抵抗膜13上の点PS1’とが接触している。
MCU31は、電極XLと電極XRとの間に電圧をかける。すると、抵抗膜11に電流が流れる。しかし、抵抗膜13の先にはA/Dコンバータ35U及び35Dが接続されているため、抵抗膜11から抵抗膜13へは電流がほぼ流れない。このため、点PS1の電位は、A/Dコンバータ35U及び35Dが出力する電圧値として現れる。MCU31はA/Dコンバータ35U及び35Dが出力する電圧値の平均に基づいて、点PS1の電位を取得する。そして、MCU31は、この時の点PS1の電位に基づき、点PS1のX座標を計算する。
次に、MCU21は、電極YUと電極YDとの間に電圧をかける。すると、抵抗膜13に電流が流れる。しかし、抵抗膜11の先にはA/Dコンバータ35L及び35Uが接続されているため、抵抗膜13から抵抗膜11へは電流は流れない。このため、点PS1の電位は、A/Dコンバータ35L及び35Rが出力する電圧値として現れる。MCU31はA/Dコンバータ35L及び35Rが出力する電圧値の平均に基づいて、点PS1の電位を取得する。そして、MCU31は、この時の点PS1の電位に基づき、点PS1のY座標を計算する。
【0030】
(マルチタッチ時1)
図4(a)は、図1のタッチパネル1上で、点PM1と点PM2とが押された例を示す模式図である。
図4(b)は、図4(a)の状態で抵抗膜11が駆動膜となっている時の状態を、等価回路で示したものである。
【0031】
図4(a)を参照して、図4(a)の点PM1及び点PM2は、X軸に平行に並んでいる。抵抗膜11は、電極XLから点PM1までの抵抗RM1と、点PM1から点PM2までの抵抗RM2と、点PM2から電極XRまでの抵抗RM3とを直列につないだものとして説明することができる。
【0032】
抵抗膜11上の点PM1と、抵抗膜13上の点PM1’とが接触している。また、抵抗膜11上の点PM2と、抵抗膜13上の点PM2’とが接触している。
MCU31は、検出用抵抗39L、39R、電極XL及び電極XRを通るラインに電圧をかける。つまり、MCU31は、抵抗膜11を駆動膜にする。すると、抵抗膜11上に電流が流れる。そして、抵抗膜13上も、点PM1’と点PM2’との間で電流が流れる。つまり、図4(b)に示すように、並列回路が形成される。このため、電極XLと電極XRとの間の全体抵抗RTxは、マルチタッチがなされていない場合よりも低下する。
その結果、検出用抵抗39Lと電極XLとの間での電位は低下し、検出用抵抗39Rと電極XRとの間の電位は上昇する。この電位の変化は、A/Dコンバータ35L及び35Rによって計測できる。
つまり、MCU31は、抵抗膜11が駆動膜である時のA/Dコンバータ35L及び35Rが計測する電位に変化があった場合、マルチタッチがなされたと判断することができる。
【0033】
次に、MCU31は、検出用抵抗39U、39D、電極YU及び電極YDを通るラインに電圧をかける。つまり、MCU31は、抵抗膜13を駆動膜にする。すると、抵抗膜13上に電流が流れる。しかし、抵抗膜13上の点PM1’と点PM2’とは等電位にあるため、抵抗膜11側には電流は流れない。つまり、図4(b)に示すような、並列回路は形成されない。このため、電極YUと電極YDとの間の全体抵抗RTyは変化しない。
つまり、MCU31は、抵抗膜11が駆動膜である時のA/Dコンバータ35L及び35Rが計測する電位に変化があった場合で、さらに抵抗膜13が駆動膜である時のA/Dコンバータ35U及び35Dが計測する電位に変化がなかった場合、マルチタッチされた2点は、X軸に平行に並んでいると判断することができる。
【0034】
点PM1’と点PM2’との間の抵抗を抵抗RM4とする。抵抗膜11及び13は、均一な抵抗膜であるため、抵抗RM1〜RM4の抵抗値はそれぞれの長さに比例する。このため、点PM1と点PM2の間隔が大きいほど、並列接続される抵抗RM4が大きくなる。そして、全体抵抗RTxは低下する。そして、全体抵抗RTxが低下するほど、検出用抵抗39Lと電極XLとの間の電位は低下し、検出用抵抗39Rと電極XRとの間の電位は上昇する。
このように、抵抗膜11が駆動膜である時のA/Dコンバータ35L及び35Rが計測する電位の変化量は、点PM1と点PM2とのX軸方向の間隔と相関がある。
【0035】
なお、図示は省略するが点PM1と点PM2とがY軸に平行な2点であった場合は、上記の例をX軸とY軸を逆にして同様の現象が起こる。
つまり、MCU31は、抵抗膜13が駆動膜である時のA/Dコンバータ35U及び35Dが計測する電位に変化があった場合、マルチタッチがなされたと判断することができる。
また、MCU31は、抵抗膜13が駆動膜である時のA/Dコンバータ35U及び35Dが計測する電位に変化があった場合で、さらに抵抗膜11が駆動膜である時のA/Dコンバータ35L及び35Rが計測する電位に変化がなかった場合、マルチタッチされた2点は、Y軸に平行に並んでいると判断することができる。
さらに、抵抗膜13が駆動膜である時のA/Dコンバータ35U及び35Dが計測する電位の変化量は、点PM1と点PM2とのY軸方向の間隔と相関がある。
【0036】
(マルチタッチ時2)
図5(a)は、タッチパネル1上で、点PM1と点PM2とが押された例を示す模式図である。
図5(b)は、図5(a)の状態で抵抗膜11が駆動膜となっている時の状態を、等価回路で示したものである。
【0037】
図5(a)を参照して、図5(a)の点PM1及び点PM2は、X軸又はY軸に対して平行ではない。抵抗膜11は、電極XLから点PM1までの抵抗RM1と、電極XLから点PM2までの抵抗RM2と、点PM1から電極XRまでの抵抗RM3と、点PM2から電極XRまでの抵抗RM4と、に分けて説明することができる。
【0038】
抵抗膜11上の点PM1と、抵抗膜13上の点PM1’とが接触している。また、抵抗膜11上の点PM2と、抵抗膜13上の点PM2’とが接触している。
MCU31は、検出用抵抗39L、39R、電極XL及び電極XRを通るラインに電圧をかける。つまり、MCU31は、抵抗膜11を駆動膜にする。すると、抵抗膜11上に電流が流れる。そして、抵抗膜13上も、点PM1’と点PM2’との間で電流が流れる。つまり、図5(b)に示すように、並列回路が形成される。このため、電極XLと電極XRとの間の全体抵抗RTxは、マルチタッチがなされていない場合よりも低下する。
その結果、検出用抵抗39Lと電極XLとの間での電位は低下し、検出用抵抗39Rと電極XRとの間の電位は上昇する。この電位の変化は、A/Dコンバータ35L及び35Rによって計測できる。
つまり、MCU31は、抵抗膜11が駆動膜である時のA/Dコンバータ35L及び35Rが計測する電位に変化があった場合、マルチタッチがなされたと判断することができる。
【0039】
次に、MCU31は、検出用抵抗39U、39D、電極YU及び電極YDを通るラインに電圧をかける。つまり、MCU31は、抵抗膜13を駆動膜にする。すると、抵抗膜13上に電流が流れる。そして、抵抗膜13上も、点PM1’と点PM2’との間で電流が流れる。つまり、並列回路が形成される。このため、電極YUと電極YDとの間の全体抵抗RTyは、マルチタッチがなされていない場合よりも低下する。
その結果、検出用抵抗39Uと電極YUとの間での電位は低下し、検出用抵抗39Dと電極YDとの間の電位は上昇する。この電位の変化は、A/Dコンバータ35U及び35Dによって計測できる。
つまり、MCU31は、抵抗膜13が駆動膜である時のA/Dコンバータ35U及び35Dが計測する電位に変化があった場合、マルチタッチがなされたと判断することができる。
【0040】
点PM1’と点PM2’の間の抵抗を抵抗RM5とする。抵抗膜11及び13は、均一な抵抗膜であるため、抵抗RM1〜RM5の抵抗値はそれぞれの長さに比例する。このため、点PM1と点PM2の間隔が大きいほど、並列接続される抵抗RM5が大きくなる。そして、全体抵抗RTxは低下する。そして、全体抵抗RTxが低下するほど、検出用抵抗39Lと電極XLとの間の電位は低下し、検出用抵抗39Rと電極XRとの間の電位は上昇する。
このように、抵抗膜11が駆動膜である時のA/Dコンバータ35L及び35Rが計測する電位の変化量は、点PM1と点PM2とのX軸方向の間隔と相関がある。
抵抗膜13が駆動膜である時、同様の現象が生じるため、抵抗膜13が駆動膜である時のA/Dコンバータ35U及び35Dが計測する電位の変化量は、点PM1と点PM2とのY軸方向の間隔と相関がある。
【0041】
以上の特性を利用して、MCU31は、シングルタッチ時には押下点の座標を検出し、マルチタッチ時には、ピンチイン・ピンチアウトと呼ばれる特別な操作の有無を検出する。
図6は、ピンチイン・ピンチアウトを説明する図である。
図6を参照して、ピンチインとは、2本の指で物をつまむ要領で、タッチパネル上で指を狭める操作をいう。また、ピンチアウトとは、ピンチインの反対に、タッチパネル上で指を広げる操作をいう。
【0042】
MCU31が検出するピンチイン又はピンチアウトに応じてどのような処理を行うかは、タッチパネル1及び制御装置3が接続されるコンピュータ次第で、どのような処理を実行してもよい。例えば、ピンチインに応じて図を縮小させ、ピンチアウトに応じて図を拡大する、というような処理が行われる。
【0043】
次に、フローチャートを用いて図1のMCU31の処理について説明する。
図7は、MCU31が実行する処理の全体的な流れを説明するフローチャートである。
図7を参照して、MCU31は、電源がオンになると、ステップS1にて、各種パラメータを初期化する。ステップS3で、MCU31は、基準値取得処理を実行する。
【0044】
図8は、図7の基準値取得処理を説明するフローチャートである。
この基準値取得処理は、タッチパネル1が押されていない状態における各電極XL、XR、YU、YDの電位を取得する処理である。
【0045】
図7を参照して、ステップS31で、MCU31は、第1出力ポートを“H”に、第2出力ポートを“H”に、第3出力ポートを“L”に、第4出力ポートを“L”に設定する。
この時、図1のスイッチ37L及び37Rがオンになり、スイッチ37U及び37Dがオフになる。すなわち、抵抗膜11が駆動膜になり、抵抗膜13が検出膜になる。
ステップS33で、MCU31は、A/Dコンバータ35Lの出力する値をチェックし、基準値Vloに格納する。また、MCU31は、A/Dコンバータ35Rの出力する値をチェックし、基準値Vroに格納する。
【0046】
ステップS35で、MCU31は、第1出力ポートを“L”に、第2出力ポートを“L”に、第3出力ポートを“H”に、第4出力ポートを“H”に設定する。
この時、図1のスイッチ37L及び37Rがオフになり、スイッチ37U及び37Dがオンになる。すなわち、抵抗膜11が検出膜になり、抵抗膜13が駆動膜になる。
ステップS37で、MCU31は、A/Dコンバータ35Uの出力する値をチェックし、基準値Vuoに格納する。また、MCU31は、A/Dコンバータ35Dの出力する値をチェックし、基準値Vdoに格納する。
【0047】
ステップS39で、MCU31は、第1出力ポートを“H”に、第2出力ポートを“L”に、第3出力ポートを“H”に、第4出力ポートを“L”に設定する。
この時、図1のスイッチ37L及び37Dがオンになり、スイッチ37U及び37Rがオフになる。このため、ユーザがタッチパネル1を押し、抵抗膜11と抵抗膜13とが接触しない限り、回路に電流は流れない。
ステップS41で、MCU31は、A/Dコンバータ35Lの出力する値をチェックし、基準値Vlsoに格納する。また、MCU31は、A/Dコンバータ35Dの出力する値をチェックし、基準値Vdsoに格納する。
【0048】
ステップS43で、MCU31は、第1出力ポートを“L”に、第2出力ポートを“H”に、第3出力ポートを“L”に、第4出力ポートを“H”に設定する。
この時、図1のスイッチ37L及び37Dがオフになり、スイッチ37U及び37Rがオンになる。このため、ユーザがタッチパネル1を押し、抵抗膜11と抵抗膜13とが接触しない限り、回路に電流は流れない。
ステップS45で、MCU31は、A/Dコンバータ35Uの出力する値をチェックし、基準値Vusoとして記録する。また、MCU31は、A/Dコンバータ35Rの出力する値をチェックし、基準値Vrsoとして記録する。そして、MCU31は、図7のフローにリターンする。
【0049】
なお、予めタッチパネル1及び制御装置3の特性を考慮した基準値を定めておき、メモリ33にテーブルとして保存しておいてもよい。その場合、この基準値取得処理は不要である。
【0050】
図7に戻って、MCU23は、ステップS5のタッチ検出処理を行う。
図9は、図7のステップS5のタッチ検出処理を説明するフローチャートである。
【0051】
図9を参照して、ステップS51で、MCU31は、第1出力ポートを“H”に、第2出力ポートを“L”に、第3出力ポートを“H”に、第4出力ポートを“L”に設定する。
この時、図1のスイッチ37L及び37Dがオンになり、スイッチ37U及び37Rがオフになる。このため、ユーザがタッチパネル1を押し、抵抗膜11と抵抗膜13とが接触しない限り、回路に電流は流れない。
ステップS53で、MCU31は、A/Dコンバータ35Lの出力する値をチェックし、計測値Vlsに格納する。また、MCU31は、A/Dコンバータ35Dの出力する値をチェックし、計測値Vdsに格納する。
【0052】
MCU31は、ステップS55で、計測値Vls及びVdsに変化があったか否かをチェックする。すなわち、タッチパネル1がタッチされ、抵抗膜11と抵抗膜13とが接触すると、電流が流れ、計測値Vls及びVdsに変化が現れる。変化がなかった場合、MCU31は、ステップS57で、タッチ無と判定してリターンする。変化があった場合、MCU31は、ステップS59で、タッチ有と判定する。
【0053】
ステップS59に進んだ場合、MCU31は、ステップS61で、第1出力ポートをL”に、第2出力ポートを“H”に、第3出力ポートを“L”に、第4出力ポートを“H”に設定する。
この時、図1のスイッチ37L及び37Dがオフになり、スイッチ37U及び37Rがオンになる。
【0054】
ステップS63で、MCU31は、A/Dコンバータ35Uの出力する値をチェックし、計測値Vluに格納する。また、MCU31は、A/Dコンバータ35Rの出力する値をチェックし、計測値Vdrに格納する。
【0055】
ステップS65で、MCU31は、測定値Vlsと基準値Vlsoとを、測定値Vrsと基準値Vrsoを、測定値Vusと基準値Vusoを、測定値Vdsと基準値Vdsoとを比較し、その変化量をそれぞれメモリ33に格納する。
接触抵抗等のタッチパネルの特性によって、押した時の強さに応じて、測定値Vls、Vrs、Vus、Vdsの値が異なる。予めタッチパネルの特性を調べておき、タッチ検出処理時の測定値Vls、Vrs、Vus、Vdsとタッチの強さとを関連付けたテーブルを用意しておくことで、タッチの強さを判定することができる。
なお、ステップS61からS65までの処理は、タッチの強さを知る必要が無い場合は不要である。
【0056】
ステップS63の処理を終えると、MCU31は、図7のフローにリターンする。
図7のステップS7で、MCU31は、タッチが有った場合はステップS9に進み、タッチが無かった場合はステップS5の処理を繰り返す。
なお、ステップS5及びS7のタッチ検出処理は、タッチが有る時だけ後述のマルチタッチ処理及びシングルタッチ処理を実行し、電力消費を抑えることを主な目的とする処理である。このため、ステップS5及びステップS7の処理を省くことも可能である。
【0057】
次に、ステップS9で、MCU31は、マルチ/シングル判定処理を実行する。
図10は、図7のステップS9のマルチ/シングル判定処理を説明するフローチャートである。
【0058】
図10を参照して、ステップS71で、MCU31は、第1出力ポートを“H”に、第2出力ポートを“H”に、第3出力ポートを“L”に、第4出力ポートを“L”に設定する。
この時、図1のスイッチ37L及び37Rがオンになり、スイッチ37U及び37Dがオフになる。すなわち、抵抗膜11が駆動膜になり、抵抗膜13が検出膜になる。
ステップS73で、MCU31は、抵抗膜11が駆動膜の時の各A/Dコンバータ35の測定値Vlx、Vrx、Vux、Vdxを取得する。すなわち、MCU31は、A/Dコンバータ35Lの出力する値をチェックし、測定値Vlxに格納する。また、MCU31は、A/Dコンバータ35Rの出力する値をチェックし、測定値Vrxに格納する。また、MCU31は、A/Dコンバータ35Uの出力する値をチェックし、測定値Vuxに格納する。また、MCU31は、A/Dコンバータ35Dの出力する値をチェックし、測定値Vdxに格納する。
【0059】
ステップS75で、MCU31は、測定値Vlxと基準値Vloとの差の絶対値を変化量Vlvに格納し、測定値Vrxと基準値Vroとの差の絶対値を変化量Vrvに格納する。マルチタッチの2点のX軸方向の広がりが大きいほど、変化量Vlv及びVrvの値は大きくなる。また、シングルタッチの場合と、マルチタッチだが2点がY軸に平行に並びX軸方向には広がっていない場合は、変化量Vlv及びVrvは0になる。
【0060】
ステップS77で、MCU31は、第1出力ポートを“L”に、第2出力ポートを“L”に、第3出力ポートを“H”に、第4出力ポートを“H”に設定する。
この時、図1のスイッチ37L及び37Rがオフになり、スイッチ37U及び37Dがオンになる。すなわち、抵抗膜13が駆動膜になり、抵抗膜11が検出膜になる。
ステップS79で、MCU31は、抵抗膜13が駆動膜の時の各A/Dコンバータ35の測定値Vly、Vry、Vuy、Vdyを取得する。すなわち、MCU31は、A/Dコンバータ35Lの出力する値をチェックし、測定値Vlyに格納する。また、MCU31は、A/Dコンバータ35Rの出力する値をチェックし、測定値Vryに格納する。また、MCU31は、A/Dコンバータ35Uの出力する値をチェックし、測定値Vuyに格納する。また、MCU31は、A/Dコンバータ35Dの出力する値をチェックし、測定値Vdyに格納する。
【0061】
ステップS81で、MCU31は、測定値Vuyと基準値Vuoとの差の絶対値を変化量Vuvに格納し、測定値Vdyと基準値Vdoとの差の絶対値を変化量Vdvに格納する。マルチタッチの2点のY軸方向の広がりが大きいほど、変化量Vuv及びVdvの値は大きくなる。また、シングルタッチの場合と、マルチタッチだが2点がX軸に平行に並びY軸方向には広がっていない場合は、変化量Vuv及びVdvは0になる。
【0062】
ステップS83で、MCU31は、変化量Vlv及びVrvが0より大きいか否かを判定し、大きければステップS85に進んでマルチタッチと判定してリターンし、小さければステップS87に進む。
ステップS87で、MCU31は、変化量Vuv及びVdvが0より大きいか否かを判定し、大きければステップS85に進んでマルチタッチと判定してリターンし、小さければステップS89に進んでシングルタッチと判定してリターンする。
【0063】
図7に戻って、ステップS11でMCU31は、マルチタッチの場合はステップS13のマルチタッチ用処理へ進み、シングルタッチの場合はステップS15のシングルタッチ用処理に進む。
ステップS13又はステップS15の処理を終えると、MCU31は、再びステップS5に戻り、処理を繰り返す。
【0064】
(ピンチイン/ピンチアウトの検出)
図11は図7のステップS13のマルチタッチ用処理の一つとして実行される、ピンチイン/ピンチアウト検出処理を説明するフローチャートである。
【0065】
図11を参照して、MCU31はステップS91で、タイマーがオンになっているか否かをチェックする。オンの場合、MCU31はステップS95に進み、オフの場合はステップS93に進む。初期設定ではオフのため、最初MCU31はステップS93に進む。
ステップS93でMCU31は、図10で取得した変化量Vlv、Vrv、Vuv、Vdvの和を和L1としてメモリ33に格納し、図7のフローにリターンする。
【0066】
2回目以降、ステップS93でタイマーがオンの場合、MCU31はステップS95で所定時間が経過したか否かをチェックする。所定時間が経過した場合はステップS97に進み、そうでなければ、図7のフローにリターンする。
ステップS97で、MCU31は、図10で取得した変化量Vlv、Vrv、Vuv、Vdvの和を和L2としてメモリ33に格納する。
【0067】
変化量Vlv及びVrvはマルチタッチの2点のX軸方向の広がりと相関がある。また、変化量Vuv及びVsvはマルチタッチの2点のY軸方向の広がりと相関がある。このため、和L1及び和L2は、マルチタッチの2点の間隔と相関関係がある。そして、和L2は和L1の一定時間後に計算される。
このため、ピンチアウトが行われ、マルチタッチの2点の間隔が狭い状態から広い状態になると、和L2は和L1よりも大きくなる。また、ピンチアウトが行われ、マルチタッチの2点の間隔が広い状態から狭い状態になると、和L2は和L1よりも小さくなる。
【0068】
ステップS99で、和L2と和L1を比較する。和L2の方が大きい場合は、ステップS101に進み、ピンチアウトと判定して、図7のフローにリターンする。和L2の方が小さい場合は、ステップS103に進み、ピンチインと判定して、図7のフローにリターンする。
【0069】
(1点座標検出処理)
図12は、図7のステップS15のシングルタッチ用処理として行われる1点座標検出処理を説明するフローチャートである。この1点座標検出処理は、アナログ抵抗膜方式のタッチパネルの座標検出処理として一般的に行われている処理である。
【0070】
図12を参照して、MCU31は、ステップS111で、抵抗膜13が検出膜となっている時のA/Dコンバータ35U及び35Dの計測値である計測値VuxとVdxとの平均値を取得する。そして、ステップS113で、MCU31はステップS111で取得した平均値と、計測値Vlx、Vrxとの比から、押下点のX座標を計算する。
なお、上記の平均値の代わりに計測値VuxとVdxのいずれか一方だけを使用してもよい。
【0071】
ステップS115で、抵抗膜11が検出膜となっている時のA/Dコンバータ35L及び35Rの計測値である計測値VlyとVryとの平均値を取得する。そして、ステップS117で、MCU31はステップS115で取得した平均値と、計測値Vuy、Vdyとの比から、押下点のY座標を計算する。
なお、上記の平均値の代わりに計測値VlyとVryのいずれか一方だけを使用してもよい。
【0072】
図12の処理は、1回でX座標及びY座標を特定してもよいし、複数回同じ処理を繰り返し、平均値を取得してからX座標及びY座標を特定してもよい。
【0073】
さて、以上のように、本実施の形態によれば、マルチタッチの2点の間隔と相関関係のある値である和L1及び和L2を取得することができる。和L1及び和L2はマルチタッチの2点の間隔に応じて変化する。このため、座標の取得とは違う観点から、マルチタッチをユーザの操作の一つとして利用することができる。
また、殆どのアナログ抵抗膜方式のタッチパネルは、マルチタッチ時に電極間の抵抗値が低下する特性を有しているため、この制御装置3は、多くの既存のアナログ抵抗膜方式のタッチパネルに接続して利用することができる。
また、本実施の形態によれば、ある時点からある時点の間に、マルチタッチの2点の間隔が広くなったか狭くなったかを検出することができる。これによって、ピンチイン/ピンチアウトと呼ばれる操作を検出することができる。
また、本実施の形態によれば、抵抗膜11の抵抗値及び抵抗膜13の抵抗値の変化を、A/Dコンバータが出力する電圧値の変化として検出することができる。
【0074】
なお、本発明は、上記の実施の形態に限られるものではなく、その要旨を逸脱しない範囲で種々の態様において実施することが可能であり、例えば、以下のような変形も可能である。
【0075】
(1)上記では、抵抗膜11及び抵抗膜13の抵抗値の低下を検出するために、検出用抵抗39を電極XL、XR、YU、YDのそれぞれに接続していた。そして、変化量Vlv、Vrv、Vuv、Vdvを計算していた。
しかしながら、検出用抵抗39は、電極XL又はXRのいずれか一方と、電極YU又はYDのいずれか一方とにだけ接続してもよい。そして、検出用抵抗39が接続された側の電位の変化量だけを計算してもよい。
【0076】
(2)検出用抵抗39は、抵抗膜11及び抵抗膜13の抵抗値の低下を電圧値の変化として検出し、マルチ/シングル判定処理及びマルチタッチ時用処理に必要となるものである。このため、図7のステップS15のシングルタッチ用処理の際には不要なものであるため、別途スイッチ及びMCU31の制御ポートを追加し、MCU31がシングルタッチと判断した場合は検出用抵抗39をバイパスできるような回路構成にしてもよい。
【0077】
(3)上記の例では、マルチタッチ時の2点の間隔を厳密に算出することはしなかった。しかし、予め計測やシミュレーションによってタッチパネル1の特性を調査し、変化量Vlv、Vrv、Vuv、Vdvに応じて、マルチタッチ時の2点の間隔、2点のX軸方向の間隔、2点のY軸方向の間隔を取得できるテーブルや近似式をメモリ33に用意しておくこともできる。
【0078】
(4)変形例(3)において、以下の処理を追加することで、マルチタッチ時の2点PM1及びPM2の座標を推定することもできる。
【0079】
(2点座標推定処理)
図13は、図7のステップS13のマルチタッチ用処理の一つとして実行される、2点座標推定処理を説明するフローチャートである。
図13を参照して、ステップS131で、MCU31は中点座標推定処理を実行する。この処理は図12の1点座標検出処理と同様の処理であるため、図示は省略する。ステップS131の処理は、マルチタッチ時に1点座標検出処理を行うと、ほぼ中点を押した場合の電位が検出膜側に検出されるという特性に基づいた処理である。
【0080】
ステップS133で、MCU31は、変形例(3)で説明したようなテーブル又は近似式を用いて、変化量Vlv、Vrv、Vuv、Vdvに基づきマルチタッチ時の2点の間隔を特定する。この段階で、上記中心座標を中心として、2点の間隔の1/2の長さの半径を持つ円の円周上のどこかに点PM1と点PM2があることが分かる。
【0081】
ステップS135で、MCU31は、上記のテーブル又は近似式を用いて、変化量Vlv、Vrv、Vuv、Vdvに基づき2点のX軸方向の間隔、2点のY軸方向の間隔を特定する。X軸方向の間隔と、Y軸方向の間隔が分かれば、それらの値から、2点の傾きを計算することができる。但し、MCU31は、この段階では傾きが正か負かを特定できない。このため、MCU31は、中心座標、半径、傾きを用いて、点PM1と点PM2の座標を2組4点まで絞り込むことができる。
そして、この後2点の座標を特定するには、X座標がX1の点のY座標はY1かY2かを特定する処理が必要となる。
【0082】
ステップS137で、MCU31は、検出膜側の電極における電位の大小を判定する。具体的には、ステップS73で取得した、計測値Vuxと計測値Vdxとを比較する。
【0083】
抵抗膜11が駆動膜、抵抗膜13が検出膜になっている場合、電源電圧に近い方の押下点、この実施の形態ではX座標がX1の点PM1が電極YDに近い場合、(図5のような状態の場合)、A/Dコンバータ35Dの方が、A/Dコンバータ35Uよりも、高い電圧を示す。
逆に点PM1が電極YUに近い場合、A/Dコンバータ35Uの方が、電極YDに接続されたA/Dコンバータ35Dよりも、高い電圧を示す。
【0084】
このような特性を踏まえ、MCU31は、計測値Vuxが計測値Vuyより大きい場合、X座標がX1の点PM1のY座標はY2であると判断する。また、MCU31は、計測値Vuxが計測値Vuyより小さい場合、点PM1のY座標はY1であると判断する。
ステップS137の処理が完了すると、MCU31はリターンする。
【産業上の利用可能性】
【0085】
本発明は、アナログ抵抗膜方式のタッチパネルの分野に利用可能である。
【符号の説明】
【0086】
1…タッチパネル、11…抵抗膜、13…抵抗膜、3…制御装置、31…MCU、33…メモリ、35…A/Dコンバータ、37…スイッチ、39…検出用抵抗
【技術分野】
【0001】
本発明は、アナログ抵抗膜方式のタッチパネルの制御装置及びその関連技術に関する。
【背景技術】
【0002】
特許文献1及び2には、アナログ抵抗膜方式のタッチパネルが2点以上で同時に押されたか否かを検出するための処理を開示している。
いずれも、アナログ抵抗膜方式のタッチパネルが2点以上で同時に押された時、当該2点の間で、上下の抵抗膜(又は導電膜)による並列回路が形成され、その分抵抗膜上の合成抵抗が下がるという特性を利用している。
以下、タッチパネルが1点で押されることをシングルタッチと呼ぶ。また、タッチパネルが2点以上で同時に押されることをマルチタッチと呼ぶ。
【0003】
特許文献1の装置は電流計を有し、電流量の増加によって抵抗膜上の抵抗値の低下を検出する。特許文献2の装置は、抵抗膜と電源電圧(又は接地電圧)との間に検出用抵抗を有し、抵抗膜と検出用抵抗との間の電位を測定する。そして、特許文献2の装置は、測定した電位の変化によって抵抗膜上の抵抗値の低下を検出する。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開平1−269120号
【特許文献2】特開平8−161099号
【発明の概要】
【発明が解決しようとする課題】
【0005】
特許文献1及び2は、マルチタッチを誤操作として排除することを目的としている。しかし、マルチタッチもユーザの操作の一つとして活用できれば、ユーザにとって便利である。
【0006】
そこで、本発明の目的は、アナログ抵抗膜方式のタッチパネルにおいて、マルチタッチをユーザの操作として活用することである。
【課題を解決するための手段】
【0007】
本発明の第1の観点によれば、タッチパネルの制御装置は、アナログ抵抗膜方式タッチパネルの制御装置であって、抵抗膜上のX軸方向に対抗しているX軸電極間に電圧を印加するX軸印加手段と、抵抗膜上の前記X軸に対して垂直なY軸方向に対抗しているY軸電極間に電圧を印加するY軸印加手段と、X軸印加手段と前記Y軸印加手段とを切り替える切替手段と、前記X軸電極間の抵抗値を計測するX軸計測手段と、前記Y軸電極間の抵抗値を計測するY軸計測手段と、前記X軸印加手段が駆動している時の前記X軸計測手段の計測結果とX軸基準値との差であるX軸変化量を計算する第1計算手段と、前記Y軸印加手段が駆動している時の前記Y軸計測手段の計測結果とY軸基準値との差であるY軸変化量を計算する第2計算手段と、前記X軸変化量と前記Y軸変化量の和又は相加平均を計算する第3計算手段と、を備える。
【0008】
この構成によれば、マルチタッチの2点の間隔と相関関係のある値を、前記第3計算手段の計算結果として取得することができる。当該値はマルチタッチの2点の間隔に応じて変化する。このため、座標の取得とは違う観点から、マルチタッチをユーザの操作の一つとして利用することができる。
また、殆どのアナログ抵抗膜方式のタッチパネルは、マルチタッチ時に電極間の抵抗値が低下する特性を有しているため、この制御装置は、多くの既存のアナログ抵抗膜方式のタッチパネルに接続して利用することができる。
【0009】
上記の構成において、前記第3計算手段の計算結果を記憶する記憶手段と、二つの時点における前記第3計算手段の計算結果を比較する比較手段と、をさらに備えてもよい。
【0010】
この構成によれば、ある時点からある時点の間に、マルチタッチの2点の間隔が広くなったか狭くなったかを検出することができる。これによって、後述するピンチイン/ピンチアウトと呼ばれる操作を検出することができる。
【0011】
上記の構成においてさらに、前記X軸印加手段と、前記X軸電極との間に配置されたX軸抵抗と、前記Y軸印加手段と、前記Y軸電極との間に配置されたY軸抵抗と、をさらに備え、前記X軸計測手段は、電圧計測手段を含み、前記X軸電極と前記X軸抵抗との間の電圧の変化に基づいて前記X軸電極間の抵抗値を計測し、前記Y軸計測手段は、電圧計測手段を含み、前記Y軸電極と前記Y軸抵抗との間の電圧の変化に基づいて前記Y軸電極間の抵抗値を計測するようにしてもよい。
【0012】
この構成によれば、X軸電極間の抵抗値及びY軸電極間の抵抗値の変化を、電圧計測手段が計測する電圧値の変化として検出することができる。
【図面の簡単な説明】
【0013】
【図1】本発明の実施の形態によるタッチパネル制御装置を使ったタッチパネルユニットの説明図。
【図2】(a)4線式抵抗膜方式のタッチパネルの説明図。(b)5線式抵抗膜方式のタッチパネルの説明図。
【図3】(a)図1のタッチパネル1上の点PS1が押された状態を示す模式図。(b)図3(a)の状態を等価回路で示した図。
【図4】(a)図1のタッチパネル1上で、点PM1と点PM2とが押された例を示す模式図。(b)図4(a)の状態で抵抗膜11が駆動膜となっている時の状態を、等価回路で示した図。
【図5】(a)図1のタッチパネル1上で、点PM1と点PM2とが押された例を示す模式図。(b)図5(a)の状態で抵抗膜11が駆動膜となっている時の状態を、等価回路で示した図。
【図6】ピンチイン・ピンチアウトを説明する図。
【図7】MCU31が実行する処理の全体的な流れを説明するフローチャート。
【図8】図7の基準値取得処理を説明するフローチャート。
【図9】図7のステップS5のタッチ検出処理を説明するフローチャート。
【図10】図7のステップS9のマルチ/シングル判定処理を説明するフローチャート。
【図11】図7のステップS13のマルチタッチ用処理の一つとして実行される、ピンチイン/ピンチアウト検出処理を説明するフローチャート。
【図12】図7のステップS15のシングルタッチ用処理として行われる1点座標検出処理を説明するフローチャート。
【図13】図7のステップS13のマルチタッチ用処理の一つとして実行される、2点座標推定処理を説明するフローチャート。
【発明を実施するための形態】
【0014】
以下、本発明の実施の形態について、図面を参照しながら説明する。なお、図中、同一または相当部分については同一の参照符号を付してその説明を援用する。
【0015】
図1は、本発明の実施の形態によるタッチパネル制御装置を使ったタッチパネルユニットの説明図である。
タッチパネル1は、抵抗膜11及び抵抗膜13を含む。抵抗膜11及び抵抗膜13は、いずれも均一な抵抗値を持った膜である。抵抗膜11の両端には電極XL及びXRがある。抵抗膜13の両端には電極YU及びYDがある。抵抗膜11と抵抗膜13の間には隙間があり、通常接触しない。しかし、ユーザがタッチパネル1を押すと、抵抗膜11と抵抗膜13とは押下点において接触する。
図1は説明のための概念図である。図示はしないが、タッチパネル1はガラス基板やセパレータ等の他の周知の部品も有する。
【0016】
ここで、一般的なアナログ抵抗膜方式のタッチパネルの構造について簡単に説明する。
図2(a)は4線式抵抗膜方式のタッチパネルの説明図である。
図2(b)は5線式抵抗膜方式のタッチパネルの説明図である。
アナログ抵抗膜方式のタッチパネルは、2枚の導電膜が通常時は接触しない状態で向かい合った構造をしている。そして、2枚の導電膜は、ユーザがタッチパネルを押した部分が接触し、導通状態になる。
【0017】
図2(a)を参照して、4線式のタッチパネルは、2枚の導電膜が両方とも、全面が均質な抵抗値を持つ抵抗膜である。一方の抵抗膜の端には、X軸方向に電極がついている。他方の抵抗膜の端には、X軸に垂直なY軸方向に電極がついている。4つの電極があるため、この形式は4線式と呼ばれる。
図2(b)を参照して、5線式のタッチパネルは、2枚の導電膜のうち下部の1枚が、全面が均質な抵抗値を持つ抵抗膜である。抵抗膜の4辺の端にはX軸方向とY軸方向に電極がついている。上部の導電膜には1本電極がついている。5つの電極があるため、この形式は5線式と呼ばれる。
【0018】
いずれのタッチパネルも押下点の座標の検出原理は同じである。各電極には制御装置が接続される。制御装置が電極を通じて抵抗膜のX軸方向に電圧をかけると、Y軸に平行な等電位が当該抵抗膜上に形成される。このため、制御装置が抵抗膜のX軸方向に電圧をかけた時の押下点の電位から、押下点のX座標を算出することができる。
また、制御装置が電極を通じて抵抗膜のY軸方向に電圧をかけると、X軸に平行な等電位が抵抗膜上に形成される。このため、制御装置が抵抗膜のY軸方向に電圧をかけた時の押下点の電位から、押下点のY座標を算出することができる。
押下点の電位は、電圧をかけられていない側の導電膜に接続された制御装置の電圧測定手段によって検出される。以下の説明では、電圧をかけられた側の導電膜を駆動膜、電圧をかけられていない側の導電膜を検出膜と呼ぶ。
【0019】
押下点が1点だけの場合は、電圧測定手段のインピーダンスのために、検出膜にはほぼ電流が流れない。このため、検出膜に接続された電圧測定手段が出力する電圧値は、押下点の電位とみなすことができる。
【0020】
これに対して、押下点が2点以上ある場合、押下点の間で駆動膜と検出膜とによって並列回路が形成される。このため、回路中のタッチパネル部分における抵抗は低下する。そして、電圧測定手段が出力する電圧値は、押下点の電位とみなすことはできない。このため、従来はマルチタッチ時に検出される電位をノイズとしてキャンセルしていた。なお、特許文献1や2にも記載されている通り、各押下点のほぼ中点を押した時の電位が検出される場合が多い。
【0021】
図1に戻って、制御装置3は、MCU31、A/Dコンバータ35L、35R、35U、35D、スイッチ37L、37R、37U、37D、検出用抵抗39L、39R、39U、39Dを含む。A/Dコンバータ35L、35R、35U、35Dを区別する必要が無い場合は、A/Dコンバータ35と呼ぶ。スイッチ37L、37R、37U、37Dを区別する必要が無い場合は、スイッチ37と呼ぶ。検出用抵抗39L、39R、39U、39Dを区別する必要が無い場合は検出用抵抗39と呼ぶ。
【0022】
MCU31は内部にメモリ33を含む。メモリ33は、RAM、ROM、及びフラッシュメモリ等の半導体メモリであり、プログラム格納領域、データ格納領域、作業領域、及び一時格納領域等として利用される。
なお、制御装置3の仕様に応じて、記録媒体として、メモリ33の他、光ディスク、半導体メモリを搭載したメモリカード・メモリカートリッジ・USBメモリ、及び、光磁気ディスク等を、MCU31に接続することもできる。そして、これらにプログラムやデータなどを格納することもできる。
【0023】
A/Dコンバータ37は、タッチパネル1の各電極における電圧値をデジタル値に変換し、MCU31に伝える。A/Dコンバータ37Lには電極XLにおける電圧値を取得する。A/Dコンバータ37Rは電極XRにおける電圧値を取得する。A/Dコンバータ37Uは電極YUにおける電圧値を取得する。A/Dコンバータ37Dは電極YDにおける電圧値を取得する。
【0024】
スイッチ37は、電圧をかけるラインを切り替えるためのスイッチである。スイッチの種類は何でもよい。この実施の形態では、スイッチ37は「H」レベルでオン、「L」レベルでオフになるアナログスイッチである。スイッチ37Lは、MCU31の第1出力ポートに接続されている。スイッチ37Rは、MCU31の第2出力ポートに接続されている。スイッチ37Uは、MCU31の第3出力ポートに接続されている。スイッチ37Dは、MCU31の第4出力ポートに接続されている。MCU31は各出力ポートの「H」と「L」とを切り替えることでスイッチ37のオン/オフを切り替える。
【0025】
各電極と電源電圧又は接地電圧の間には、検出用抵抗39が設けられる。この検出用抵抗39を回路に組み込むことによって、抵抗膜上の抵抗値の変化、即ち、電極XL−XR間(又は電極YU−YD間)の抵抗値の変化が、A/Dコンバータ35が出力する電圧値の変化として現れる。
特許文献1のように、2つの電極間の抵抗値の変化を電流値の変化によって検出する場合は、検出用抵抗39は不要である。ただし、別途なんらかの電流測定手段が必要になる。
【0026】
MCU31は、各スイッチ37を切り替え、各A/Dコンバータ35から電圧値の変化を取得する。そして、MCU31は、当該電圧値の変化に基づいて、ユーザの操作に応じた情報を出力する。
次に、シングルタッチとマルチタッチについて説明する。
【0027】
(シングルタッチ)
図3(a)は、タッチパネル1上の点PS1が押された状態を示す模式図である。
図3(b)は、図3(a)の状態を等価回路で示したものである。ただし、配線抵抗、接触抵抗、検出用抵抗39は説明を簡単にするために省略している。
抵抗膜11及び13は均質な抵抗値を持つ膜である。このため、抵抗膜11は、電極XLから点PS1までの抵抗RS1と、点PS1から電極XRまでの抵抗RS2とを直列につないだものとして説明することができる。
【0028】
電極XLと電極XRとの間に電圧がかかると、抵抗膜11上に電極XL及び電極XRに平行な等電位が形成される。このため、点PS1のX座標は、電極XLの電位、電極XRの電位及び点PS1の電位の比に基づいて計算できる。
同様に、電極YUと電極YDとの間に電圧がかかると、抵抗膜13上に電極YU及び電極YDに平行な等電位が形成される。このため、点PS1のY座標は、電極YUの電位、電極YDの電位及び点PS1の電位の比に基づいて計算できる。
【0029】
図3(a)では、ユーザがタッチパネル1上の1点を押している。そして、抵抗膜11上の点PS1と、抵抗膜13上の点PS1’とが接触している。
MCU31は、電極XLと電極XRとの間に電圧をかける。すると、抵抗膜11に電流が流れる。しかし、抵抗膜13の先にはA/Dコンバータ35U及び35Dが接続されているため、抵抗膜11から抵抗膜13へは電流がほぼ流れない。このため、点PS1の電位は、A/Dコンバータ35U及び35Dが出力する電圧値として現れる。MCU31はA/Dコンバータ35U及び35Dが出力する電圧値の平均に基づいて、点PS1の電位を取得する。そして、MCU31は、この時の点PS1の電位に基づき、点PS1のX座標を計算する。
次に、MCU21は、電極YUと電極YDとの間に電圧をかける。すると、抵抗膜13に電流が流れる。しかし、抵抗膜11の先にはA/Dコンバータ35L及び35Uが接続されているため、抵抗膜13から抵抗膜11へは電流は流れない。このため、点PS1の電位は、A/Dコンバータ35L及び35Rが出力する電圧値として現れる。MCU31はA/Dコンバータ35L及び35Rが出力する電圧値の平均に基づいて、点PS1の電位を取得する。そして、MCU31は、この時の点PS1の電位に基づき、点PS1のY座標を計算する。
【0030】
(マルチタッチ時1)
図4(a)は、図1のタッチパネル1上で、点PM1と点PM2とが押された例を示す模式図である。
図4(b)は、図4(a)の状態で抵抗膜11が駆動膜となっている時の状態を、等価回路で示したものである。
【0031】
図4(a)を参照して、図4(a)の点PM1及び点PM2は、X軸に平行に並んでいる。抵抗膜11は、電極XLから点PM1までの抵抗RM1と、点PM1から点PM2までの抵抗RM2と、点PM2から電極XRまでの抵抗RM3とを直列につないだものとして説明することができる。
【0032】
抵抗膜11上の点PM1と、抵抗膜13上の点PM1’とが接触している。また、抵抗膜11上の点PM2と、抵抗膜13上の点PM2’とが接触している。
MCU31は、検出用抵抗39L、39R、電極XL及び電極XRを通るラインに電圧をかける。つまり、MCU31は、抵抗膜11を駆動膜にする。すると、抵抗膜11上に電流が流れる。そして、抵抗膜13上も、点PM1’と点PM2’との間で電流が流れる。つまり、図4(b)に示すように、並列回路が形成される。このため、電極XLと電極XRとの間の全体抵抗RTxは、マルチタッチがなされていない場合よりも低下する。
その結果、検出用抵抗39Lと電極XLとの間での電位は低下し、検出用抵抗39Rと電極XRとの間の電位は上昇する。この電位の変化は、A/Dコンバータ35L及び35Rによって計測できる。
つまり、MCU31は、抵抗膜11が駆動膜である時のA/Dコンバータ35L及び35Rが計測する電位に変化があった場合、マルチタッチがなされたと判断することができる。
【0033】
次に、MCU31は、検出用抵抗39U、39D、電極YU及び電極YDを通るラインに電圧をかける。つまり、MCU31は、抵抗膜13を駆動膜にする。すると、抵抗膜13上に電流が流れる。しかし、抵抗膜13上の点PM1’と点PM2’とは等電位にあるため、抵抗膜11側には電流は流れない。つまり、図4(b)に示すような、並列回路は形成されない。このため、電極YUと電極YDとの間の全体抵抗RTyは変化しない。
つまり、MCU31は、抵抗膜11が駆動膜である時のA/Dコンバータ35L及び35Rが計測する電位に変化があった場合で、さらに抵抗膜13が駆動膜である時のA/Dコンバータ35U及び35Dが計測する電位に変化がなかった場合、マルチタッチされた2点は、X軸に平行に並んでいると判断することができる。
【0034】
点PM1’と点PM2’との間の抵抗を抵抗RM4とする。抵抗膜11及び13は、均一な抵抗膜であるため、抵抗RM1〜RM4の抵抗値はそれぞれの長さに比例する。このため、点PM1と点PM2の間隔が大きいほど、並列接続される抵抗RM4が大きくなる。そして、全体抵抗RTxは低下する。そして、全体抵抗RTxが低下するほど、検出用抵抗39Lと電極XLとの間の電位は低下し、検出用抵抗39Rと電極XRとの間の電位は上昇する。
このように、抵抗膜11が駆動膜である時のA/Dコンバータ35L及び35Rが計測する電位の変化量は、点PM1と点PM2とのX軸方向の間隔と相関がある。
【0035】
なお、図示は省略するが点PM1と点PM2とがY軸に平行な2点であった場合は、上記の例をX軸とY軸を逆にして同様の現象が起こる。
つまり、MCU31は、抵抗膜13が駆動膜である時のA/Dコンバータ35U及び35Dが計測する電位に変化があった場合、マルチタッチがなされたと判断することができる。
また、MCU31は、抵抗膜13が駆動膜である時のA/Dコンバータ35U及び35Dが計測する電位に変化があった場合で、さらに抵抗膜11が駆動膜である時のA/Dコンバータ35L及び35Rが計測する電位に変化がなかった場合、マルチタッチされた2点は、Y軸に平行に並んでいると判断することができる。
さらに、抵抗膜13が駆動膜である時のA/Dコンバータ35U及び35Dが計測する電位の変化量は、点PM1と点PM2とのY軸方向の間隔と相関がある。
【0036】
(マルチタッチ時2)
図5(a)は、タッチパネル1上で、点PM1と点PM2とが押された例を示す模式図である。
図5(b)は、図5(a)の状態で抵抗膜11が駆動膜となっている時の状態を、等価回路で示したものである。
【0037】
図5(a)を参照して、図5(a)の点PM1及び点PM2は、X軸又はY軸に対して平行ではない。抵抗膜11は、電極XLから点PM1までの抵抗RM1と、電極XLから点PM2までの抵抗RM2と、点PM1から電極XRまでの抵抗RM3と、点PM2から電極XRまでの抵抗RM4と、に分けて説明することができる。
【0038】
抵抗膜11上の点PM1と、抵抗膜13上の点PM1’とが接触している。また、抵抗膜11上の点PM2と、抵抗膜13上の点PM2’とが接触している。
MCU31は、検出用抵抗39L、39R、電極XL及び電極XRを通るラインに電圧をかける。つまり、MCU31は、抵抗膜11を駆動膜にする。すると、抵抗膜11上に電流が流れる。そして、抵抗膜13上も、点PM1’と点PM2’との間で電流が流れる。つまり、図5(b)に示すように、並列回路が形成される。このため、電極XLと電極XRとの間の全体抵抗RTxは、マルチタッチがなされていない場合よりも低下する。
その結果、検出用抵抗39Lと電極XLとの間での電位は低下し、検出用抵抗39Rと電極XRとの間の電位は上昇する。この電位の変化は、A/Dコンバータ35L及び35Rによって計測できる。
つまり、MCU31は、抵抗膜11が駆動膜である時のA/Dコンバータ35L及び35Rが計測する電位に変化があった場合、マルチタッチがなされたと判断することができる。
【0039】
次に、MCU31は、検出用抵抗39U、39D、電極YU及び電極YDを通るラインに電圧をかける。つまり、MCU31は、抵抗膜13を駆動膜にする。すると、抵抗膜13上に電流が流れる。そして、抵抗膜13上も、点PM1’と点PM2’との間で電流が流れる。つまり、並列回路が形成される。このため、電極YUと電極YDとの間の全体抵抗RTyは、マルチタッチがなされていない場合よりも低下する。
その結果、検出用抵抗39Uと電極YUとの間での電位は低下し、検出用抵抗39Dと電極YDとの間の電位は上昇する。この電位の変化は、A/Dコンバータ35U及び35Dによって計測できる。
つまり、MCU31は、抵抗膜13が駆動膜である時のA/Dコンバータ35U及び35Dが計測する電位に変化があった場合、マルチタッチがなされたと判断することができる。
【0040】
点PM1’と点PM2’の間の抵抗を抵抗RM5とする。抵抗膜11及び13は、均一な抵抗膜であるため、抵抗RM1〜RM5の抵抗値はそれぞれの長さに比例する。このため、点PM1と点PM2の間隔が大きいほど、並列接続される抵抗RM5が大きくなる。そして、全体抵抗RTxは低下する。そして、全体抵抗RTxが低下するほど、検出用抵抗39Lと電極XLとの間の電位は低下し、検出用抵抗39Rと電極XRとの間の電位は上昇する。
このように、抵抗膜11が駆動膜である時のA/Dコンバータ35L及び35Rが計測する電位の変化量は、点PM1と点PM2とのX軸方向の間隔と相関がある。
抵抗膜13が駆動膜である時、同様の現象が生じるため、抵抗膜13が駆動膜である時のA/Dコンバータ35U及び35Dが計測する電位の変化量は、点PM1と点PM2とのY軸方向の間隔と相関がある。
【0041】
以上の特性を利用して、MCU31は、シングルタッチ時には押下点の座標を検出し、マルチタッチ時には、ピンチイン・ピンチアウトと呼ばれる特別な操作の有無を検出する。
図6は、ピンチイン・ピンチアウトを説明する図である。
図6を参照して、ピンチインとは、2本の指で物をつまむ要領で、タッチパネル上で指を狭める操作をいう。また、ピンチアウトとは、ピンチインの反対に、タッチパネル上で指を広げる操作をいう。
【0042】
MCU31が検出するピンチイン又はピンチアウトに応じてどのような処理を行うかは、タッチパネル1及び制御装置3が接続されるコンピュータ次第で、どのような処理を実行してもよい。例えば、ピンチインに応じて図を縮小させ、ピンチアウトに応じて図を拡大する、というような処理が行われる。
【0043】
次に、フローチャートを用いて図1のMCU31の処理について説明する。
図7は、MCU31が実行する処理の全体的な流れを説明するフローチャートである。
図7を参照して、MCU31は、電源がオンになると、ステップS1にて、各種パラメータを初期化する。ステップS3で、MCU31は、基準値取得処理を実行する。
【0044】
図8は、図7の基準値取得処理を説明するフローチャートである。
この基準値取得処理は、タッチパネル1が押されていない状態における各電極XL、XR、YU、YDの電位を取得する処理である。
【0045】
図7を参照して、ステップS31で、MCU31は、第1出力ポートを“H”に、第2出力ポートを“H”に、第3出力ポートを“L”に、第4出力ポートを“L”に設定する。
この時、図1のスイッチ37L及び37Rがオンになり、スイッチ37U及び37Dがオフになる。すなわち、抵抗膜11が駆動膜になり、抵抗膜13が検出膜になる。
ステップS33で、MCU31は、A/Dコンバータ35Lの出力する値をチェックし、基準値Vloに格納する。また、MCU31は、A/Dコンバータ35Rの出力する値をチェックし、基準値Vroに格納する。
【0046】
ステップS35で、MCU31は、第1出力ポートを“L”に、第2出力ポートを“L”に、第3出力ポートを“H”に、第4出力ポートを“H”に設定する。
この時、図1のスイッチ37L及び37Rがオフになり、スイッチ37U及び37Dがオンになる。すなわち、抵抗膜11が検出膜になり、抵抗膜13が駆動膜になる。
ステップS37で、MCU31は、A/Dコンバータ35Uの出力する値をチェックし、基準値Vuoに格納する。また、MCU31は、A/Dコンバータ35Dの出力する値をチェックし、基準値Vdoに格納する。
【0047】
ステップS39で、MCU31は、第1出力ポートを“H”に、第2出力ポートを“L”に、第3出力ポートを“H”に、第4出力ポートを“L”に設定する。
この時、図1のスイッチ37L及び37Dがオンになり、スイッチ37U及び37Rがオフになる。このため、ユーザがタッチパネル1を押し、抵抗膜11と抵抗膜13とが接触しない限り、回路に電流は流れない。
ステップS41で、MCU31は、A/Dコンバータ35Lの出力する値をチェックし、基準値Vlsoに格納する。また、MCU31は、A/Dコンバータ35Dの出力する値をチェックし、基準値Vdsoに格納する。
【0048】
ステップS43で、MCU31は、第1出力ポートを“L”に、第2出力ポートを“H”に、第3出力ポートを“L”に、第4出力ポートを“H”に設定する。
この時、図1のスイッチ37L及び37Dがオフになり、スイッチ37U及び37Rがオンになる。このため、ユーザがタッチパネル1を押し、抵抗膜11と抵抗膜13とが接触しない限り、回路に電流は流れない。
ステップS45で、MCU31は、A/Dコンバータ35Uの出力する値をチェックし、基準値Vusoとして記録する。また、MCU31は、A/Dコンバータ35Rの出力する値をチェックし、基準値Vrsoとして記録する。そして、MCU31は、図7のフローにリターンする。
【0049】
なお、予めタッチパネル1及び制御装置3の特性を考慮した基準値を定めておき、メモリ33にテーブルとして保存しておいてもよい。その場合、この基準値取得処理は不要である。
【0050】
図7に戻って、MCU23は、ステップS5のタッチ検出処理を行う。
図9は、図7のステップS5のタッチ検出処理を説明するフローチャートである。
【0051】
図9を参照して、ステップS51で、MCU31は、第1出力ポートを“H”に、第2出力ポートを“L”に、第3出力ポートを“H”に、第4出力ポートを“L”に設定する。
この時、図1のスイッチ37L及び37Dがオンになり、スイッチ37U及び37Rがオフになる。このため、ユーザがタッチパネル1を押し、抵抗膜11と抵抗膜13とが接触しない限り、回路に電流は流れない。
ステップS53で、MCU31は、A/Dコンバータ35Lの出力する値をチェックし、計測値Vlsに格納する。また、MCU31は、A/Dコンバータ35Dの出力する値をチェックし、計測値Vdsに格納する。
【0052】
MCU31は、ステップS55で、計測値Vls及びVdsに変化があったか否かをチェックする。すなわち、タッチパネル1がタッチされ、抵抗膜11と抵抗膜13とが接触すると、電流が流れ、計測値Vls及びVdsに変化が現れる。変化がなかった場合、MCU31は、ステップS57で、タッチ無と判定してリターンする。変化があった場合、MCU31は、ステップS59で、タッチ有と判定する。
【0053】
ステップS59に進んだ場合、MCU31は、ステップS61で、第1出力ポートをL”に、第2出力ポートを“H”に、第3出力ポートを“L”に、第4出力ポートを“H”に設定する。
この時、図1のスイッチ37L及び37Dがオフになり、スイッチ37U及び37Rがオンになる。
【0054】
ステップS63で、MCU31は、A/Dコンバータ35Uの出力する値をチェックし、計測値Vluに格納する。また、MCU31は、A/Dコンバータ35Rの出力する値をチェックし、計測値Vdrに格納する。
【0055】
ステップS65で、MCU31は、測定値Vlsと基準値Vlsoとを、測定値Vrsと基準値Vrsoを、測定値Vusと基準値Vusoを、測定値Vdsと基準値Vdsoとを比較し、その変化量をそれぞれメモリ33に格納する。
接触抵抗等のタッチパネルの特性によって、押した時の強さに応じて、測定値Vls、Vrs、Vus、Vdsの値が異なる。予めタッチパネルの特性を調べておき、タッチ検出処理時の測定値Vls、Vrs、Vus、Vdsとタッチの強さとを関連付けたテーブルを用意しておくことで、タッチの強さを判定することができる。
なお、ステップS61からS65までの処理は、タッチの強さを知る必要が無い場合は不要である。
【0056】
ステップS63の処理を終えると、MCU31は、図7のフローにリターンする。
図7のステップS7で、MCU31は、タッチが有った場合はステップS9に進み、タッチが無かった場合はステップS5の処理を繰り返す。
なお、ステップS5及びS7のタッチ検出処理は、タッチが有る時だけ後述のマルチタッチ処理及びシングルタッチ処理を実行し、電力消費を抑えることを主な目的とする処理である。このため、ステップS5及びステップS7の処理を省くことも可能である。
【0057】
次に、ステップS9で、MCU31は、マルチ/シングル判定処理を実行する。
図10は、図7のステップS9のマルチ/シングル判定処理を説明するフローチャートである。
【0058】
図10を参照して、ステップS71で、MCU31は、第1出力ポートを“H”に、第2出力ポートを“H”に、第3出力ポートを“L”に、第4出力ポートを“L”に設定する。
この時、図1のスイッチ37L及び37Rがオンになり、スイッチ37U及び37Dがオフになる。すなわち、抵抗膜11が駆動膜になり、抵抗膜13が検出膜になる。
ステップS73で、MCU31は、抵抗膜11が駆動膜の時の各A/Dコンバータ35の測定値Vlx、Vrx、Vux、Vdxを取得する。すなわち、MCU31は、A/Dコンバータ35Lの出力する値をチェックし、測定値Vlxに格納する。また、MCU31は、A/Dコンバータ35Rの出力する値をチェックし、測定値Vrxに格納する。また、MCU31は、A/Dコンバータ35Uの出力する値をチェックし、測定値Vuxに格納する。また、MCU31は、A/Dコンバータ35Dの出力する値をチェックし、測定値Vdxに格納する。
【0059】
ステップS75で、MCU31は、測定値Vlxと基準値Vloとの差の絶対値を変化量Vlvに格納し、測定値Vrxと基準値Vroとの差の絶対値を変化量Vrvに格納する。マルチタッチの2点のX軸方向の広がりが大きいほど、変化量Vlv及びVrvの値は大きくなる。また、シングルタッチの場合と、マルチタッチだが2点がY軸に平行に並びX軸方向には広がっていない場合は、変化量Vlv及びVrvは0になる。
【0060】
ステップS77で、MCU31は、第1出力ポートを“L”に、第2出力ポートを“L”に、第3出力ポートを“H”に、第4出力ポートを“H”に設定する。
この時、図1のスイッチ37L及び37Rがオフになり、スイッチ37U及び37Dがオンになる。すなわち、抵抗膜13が駆動膜になり、抵抗膜11が検出膜になる。
ステップS79で、MCU31は、抵抗膜13が駆動膜の時の各A/Dコンバータ35の測定値Vly、Vry、Vuy、Vdyを取得する。すなわち、MCU31は、A/Dコンバータ35Lの出力する値をチェックし、測定値Vlyに格納する。また、MCU31は、A/Dコンバータ35Rの出力する値をチェックし、測定値Vryに格納する。また、MCU31は、A/Dコンバータ35Uの出力する値をチェックし、測定値Vuyに格納する。また、MCU31は、A/Dコンバータ35Dの出力する値をチェックし、測定値Vdyに格納する。
【0061】
ステップS81で、MCU31は、測定値Vuyと基準値Vuoとの差の絶対値を変化量Vuvに格納し、測定値Vdyと基準値Vdoとの差の絶対値を変化量Vdvに格納する。マルチタッチの2点のY軸方向の広がりが大きいほど、変化量Vuv及びVdvの値は大きくなる。また、シングルタッチの場合と、マルチタッチだが2点がX軸に平行に並びY軸方向には広がっていない場合は、変化量Vuv及びVdvは0になる。
【0062】
ステップS83で、MCU31は、変化量Vlv及びVrvが0より大きいか否かを判定し、大きければステップS85に進んでマルチタッチと判定してリターンし、小さければステップS87に進む。
ステップS87で、MCU31は、変化量Vuv及びVdvが0より大きいか否かを判定し、大きければステップS85に進んでマルチタッチと判定してリターンし、小さければステップS89に進んでシングルタッチと判定してリターンする。
【0063】
図7に戻って、ステップS11でMCU31は、マルチタッチの場合はステップS13のマルチタッチ用処理へ進み、シングルタッチの場合はステップS15のシングルタッチ用処理に進む。
ステップS13又はステップS15の処理を終えると、MCU31は、再びステップS5に戻り、処理を繰り返す。
【0064】
(ピンチイン/ピンチアウトの検出)
図11は図7のステップS13のマルチタッチ用処理の一つとして実行される、ピンチイン/ピンチアウト検出処理を説明するフローチャートである。
【0065】
図11を参照して、MCU31はステップS91で、タイマーがオンになっているか否かをチェックする。オンの場合、MCU31はステップS95に進み、オフの場合はステップS93に進む。初期設定ではオフのため、最初MCU31はステップS93に進む。
ステップS93でMCU31は、図10で取得した変化量Vlv、Vrv、Vuv、Vdvの和を和L1としてメモリ33に格納し、図7のフローにリターンする。
【0066】
2回目以降、ステップS93でタイマーがオンの場合、MCU31はステップS95で所定時間が経過したか否かをチェックする。所定時間が経過した場合はステップS97に進み、そうでなければ、図7のフローにリターンする。
ステップS97で、MCU31は、図10で取得した変化量Vlv、Vrv、Vuv、Vdvの和を和L2としてメモリ33に格納する。
【0067】
変化量Vlv及びVrvはマルチタッチの2点のX軸方向の広がりと相関がある。また、変化量Vuv及びVsvはマルチタッチの2点のY軸方向の広がりと相関がある。このため、和L1及び和L2は、マルチタッチの2点の間隔と相関関係がある。そして、和L2は和L1の一定時間後に計算される。
このため、ピンチアウトが行われ、マルチタッチの2点の間隔が狭い状態から広い状態になると、和L2は和L1よりも大きくなる。また、ピンチアウトが行われ、マルチタッチの2点の間隔が広い状態から狭い状態になると、和L2は和L1よりも小さくなる。
【0068】
ステップS99で、和L2と和L1を比較する。和L2の方が大きい場合は、ステップS101に進み、ピンチアウトと判定して、図7のフローにリターンする。和L2の方が小さい場合は、ステップS103に進み、ピンチインと判定して、図7のフローにリターンする。
【0069】
(1点座標検出処理)
図12は、図7のステップS15のシングルタッチ用処理として行われる1点座標検出処理を説明するフローチャートである。この1点座標検出処理は、アナログ抵抗膜方式のタッチパネルの座標検出処理として一般的に行われている処理である。
【0070】
図12を参照して、MCU31は、ステップS111で、抵抗膜13が検出膜となっている時のA/Dコンバータ35U及び35Dの計測値である計測値VuxとVdxとの平均値を取得する。そして、ステップS113で、MCU31はステップS111で取得した平均値と、計測値Vlx、Vrxとの比から、押下点のX座標を計算する。
なお、上記の平均値の代わりに計測値VuxとVdxのいずれか一方だけを使用してもよい。
【0071】
ステップS115で、抵抗膜11が検出膜となっている時のA/Dコンバータ35L及び35Rの計測値である計測値VlyとVryとの平均値を取得する。そして、ステップS117で、MCU31はステップS115で取得した平均値と、計測値Vuy、Vdyとの比から、押下点のY座標を計算する。
なお、上記の平均値の代わりに計測値VlyとVryのいずれか一方だけを使用してもよい。
【0072】
図12の処理は、1回でX座標及びY座標を特定してもよいし、複数回同じ処理を繰り返し、平均値を取得してからX座標及びY座標を特定してもよい。
【0073】
さて、以上のように、本実施の形態によれば、マルチタッチの2点の間隔と相関関係のある値である和L1及び和L2を取得することができる。和L1及び和L2はマルチタッチの2点の間隔に応じて変化する。このため、座標の取得とは違う観点から、マルチタッチをユーザの操作の一つとして利用することができる。
また、殆どのアナログ抵抗膜方式のタッチパネルは、マルチタッチ時に電極間の抵抗値が低下する特性を有しているため、この制御装置3は、多くの既存のアナログ抵抗膜方式のタッチパネルに接続して利用することができる。
また、本実施の形態によれば、ある時点からある時点の間に、マルチタッチの2点の間隔が広くなったか狭くなったかを検出することができる。これによって、ピンチイン/ピンチアウトと呼ばれる操作を検出することができる。
また、本実施の形態によれば、抵抗膜11の抵抗値及び抵抗膜13の抵抗値の変化を、A/Dコンバータが出力する電圧値の変化として検出することができる。
【0074】
なお、本発明は、上記の実施の形態に限られるものではなく、その要旨を逸脱しない範囲で種々の態様において実施することが可能であり、例えば、以下のような変形も可能である。
【0075】
(1)上記では、抵抗膜11及び抵抗膜13の抵抗値の低下を検出するために、検出用抵抗39を電極XL、XR、YU、YDのそれぞれに接続していた。そして、変化量Vlv、Vrv、Vuv、Vdvを計算していた。
しかしながら、検出用抵抗39は、電極XL又はXRのいずれか一方と、電極YU又はYDのいずれか一方とにだけ接続してもよい。そして、検出用抵抗39が接続された側の電位の変化量だけを計算してもよい。
【0076】
(2)検出用抵抗39は、抵抗膜11及び抵抗膜13の抵抗値の低下を電圧値の変化として検出し、マルチ/シングル判定処理及びマルチタッチ時用処理に必要となるものである。このため、図7のステップS15のシングルタッチ用処理の際には不要なものであるため、別途スイッチ及びMCU31の制御ポートを追加し、MCU31がシングルタッチと判断した場合は検出用抵抗39をバイパスできるような回路構成にしてもよい。
【0077】
(3)上記の例では、マルチタッチ時の2点の間隔を厳密に算出することはしなかった。しかし、予め計測やシミュレーションによってタッチパネル1の特性を調査し、変化量Vlv、Vrv、Vuv、Vdvに応じて、マルチタッチ時の2点の間隔、2点のX軸方向の間隔、2点のY軸方向の間隔を取得できるテーブルや近似式をメモリ33に用意しておくこともできる。
【0078】
(4)変形例(3)において、以下の処理を追加することで、マルチタッチ時の2点PM1及びPM2の座標を推定することもできる。
【0079】
(2点座標推定処理)
図13は、図7のステップS13のマルチタッチ用処理の一つとして実行される、2点座標推定処理を説明するフローチャートである。
図13を参照して、ステップS131で、MCU31は中点座標推定処理を実行する。この処理は図12の1点座標検出処理と同様の処理であるため、図示は省略する。ステップS131の処理は、マルチタッチ時に1点座標検出処理を行うと、ほぼ中点を押した場合の電位が検出膜側に検出されるという特性に基づいた処理である。
【0080】
ステップS133で、MCU31は、変形例(3)で説明したようなテーブル又は近似式を用いて、変化量Vlv、Vrv、Vuv、Vdvに基づきマルチタッチ時の2点の間隔を特定する。この段階で、上記中心座標を中心として、2点の間隔の1/2の長さの半径を持つ円の円周上のどこかに点PM1と点PM2があることが分かる。
【0081】
ステップS135で、MCU31は、上記のテーブル又は近似式を用いて、変化量Vlv、Vrv、Vuv、Vdvに基づき2点のX軸方向の間隔、2点のY軸方向の間隔を特定する。X軸方向の間隔と、Y軸方向の間隔が分かれば、それらの値から、2点の傾きを計算することができる。但し、MCU31は、この段階では傾きが正か負かを特定できない。このため、MCU31は、中心座標、半径、傾きを用いて、点PM1と点PM2の座標を2組4点まで絞り込むことができる。
そして、この後2点の座標を特定するには、X座標がX1の点のY座標はY1かY2かを特定する処理が必要となる。
【0082】
ステップS137で、MCU31は、検出膜側の電極における電位の大小を判定する。具体的には、ステップS73で取得した、計測値Vuxと計測値Vdxとを比較する。
【0083】
抵抗膜11が駆動膜、抵抗膜13が検出膜になっている場合、電源電圧に近い方の押下点、この実施の形態ではX座標がX1の点PM1が電極YDに近い場合、(図5のような状態の場合)、A/Dコンバータ35Dの方が、A/Dコンバータ35Uよりも、高い電圧を示す。
逆に点PM1が電極YUに近い場合、A/Dコンバータ35Uの方が、電極YDに接続されたA/Dコンバータ35Dよりも、高い電圧を示す。
【0084】
このような特性を踏まえ、MCU31は、計測値Vuxが計測値Vuyより大きい場合、X座標がX1の点PM1のY座標はY2であると判断する。また、MCU31は、計測値Vuxが計測値Vuyより小さい場合、点PM1のY座標はY1であると判断する。
ステップS137の処理が完了すると、MCU31はリターンする。
【産業上の利用可能性】
【0085】
本発明は、アナログ抵抗膜方式のタッチパネルの分野に利用可能である。
【符号の説明】
【0086】
1…タッチパネル、11…抵抗膜、13…抵抗膜、3…制御装置、31…MCU、33…メモリ、35…A/Dコンバータ、37…スイッチ、39…検出用抵抗
【特許請求の範囲】
【請求項1】
アナログ抵抗膜方式タッチパネルの制御装置であって、
抵抗膜上のX軸方向に対抗しているX軸電極間に電圧を印加するX軸印加手段と、
抵抗膜上の前記X軸に対して垂直なY軸方向に対抗しているY軸電極間に電圧を印加するY軸印加手段と、
X軸印加手段と前記Y軸印加手段とを切り替える切替手段と、
前記X軸電極間の抵抗値を計測するX軸計測手段と、
前記Y軸電極間の抵抗値を計測するY軸計測手段と、
前記X軸印加手段が駆動している時の前記X軸計測手段の計測結果とX軸基準値との差であるX軸変化量を計算する第1計算手段と、
前記Y軸印加手段が駆動している時の前記Y軸計測手段の計測結果とY軸基準値との差であるY軸変化量を計算する第2計算手段と、
前記X軸変化量と前記Y軸変化量の和又は相加平均を計算する第3計算手段と、を備えるタッチパネルの制御装置。
【請求項2】
前記第3計算手段の計算結果を記憶する記憶手段と、
二つの時点における前記第3計算手段の計算結果を比較する比較手段と、をさらに含む請求項1に記載のタッチパネル制御装置。
【請求項3】
前記X軸印加手段と、前記X軸電極との間に配置されたX軸抵抗と、
前記Y軸印加手段と、前記Y軸電極との間に配置されたY軸抵抗と、をさらに備え、
前記X軸計測手段は、電圧計測手段を含み、前記X軸電極と前記X軸抵抗との間の電圧の変化に基づいて前記X軸電極間の抵抗値を計測し、
前記Y軸計測手段は、電圧計測手段を含み、前記Y軸電極と前記Y軸抵抗との間の電圧の変化に基づいて前記Y軸電極間の抵抗値を計測することを特徴とする、請求項1又は2に記載のタッチパネル制御装置。
【請求項1】
アナログ抵抗膜方式タッチパネルの制御装置であって、
抵抗膜上のX軸方向に対抗しているX軸電極間に電圧を印加するX軸印加手段と、
抵抗膜上の前記X軸に対して垂直なY軸方向に対抗しているY軸電極間に電圧を印加するY軸印加手段と、
X軸印加手段と前記Y軸印加手段とを切り替える切替手段と、
前記X軸電極間の抵抗値を計測するX軸計測手段と、
前記Y軸電極間の抵抗値を計測するY軸計測手段と、
前記X軸印加手段が駆動している時の前記X軸計測手段の計測結果とX軸基準値との差であるX軸変化量を計算する第1計算手段と、
前記Y軸印加手段が駆動している時の前記Y軸計測手段の計測結果とY軸基準値との差であるY軸変化量を計算する第2計算手段と、
前記X軸変化量と前記Y軸変化量の和又は相加平均を計算する第3計算手段と、を備えるタッチパネルの制御装置。
【請求項2】
前記第3計算手段の計算結果を記憶する記憶手段と、
二つの時点における前記第3計算手段の計算結果を比較する比較手段と、をさらに含む請求項1に記載のタッチパネル制御装置。
【請求項3】
前記X軸印加手段と、前記X軸電極との間に配置されたX軸抵抗と、
前記Y軸印加手段と、前記Y軸電極との間に配置されたY軸抵抗と、をさらに備え、
前記X軸計測手段は、電圧計測手段を含み、前記X軸電極と前記X軸抵抗との間の電圧の変化に基づいて前記X軸電極間の抵抗値を計測し、
前記Y軸計測手段は、電圧計測手段を含み、前記Y軸電極と前記Y軸抵抗との間の電圧の変化に基づいて前記Y軸電極間の抵抗値を計測することを特徴とする、請求項1又は2に記載のタッチパネル制御装置。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【公開番号】特開2012−234419(P2012−234419A)
【公開日】平成24年11月29日(2012.11.29)
【国際特許分類】
【出願番号】特願2011−103348(P2011−103348)
【出願日】平成23年5月5日(2011.5.5)
【出願人】(396025861)新世代株式会社 (138)
【Fターム(参考)】
【公開日】平成24年11月29日(2012.11.29)
【国際特許分類】
【出願日】平成23年5月5日(2011.5.5)
【出願人】(396025861)新世代株式会社 (138)
【Fターム(参考)】
[ Back to top ]