(57)【要約】【課題】タッチ操作の誤入力を防止することができるタッチパネル用コントローラ及びプログラムを提供する。【解決手段】コントローラ２は、タッチ位置、タッチオン及びタッチオフを検出し（Ｓ１，Ｓ３）、タッチ位置に対応するオブジェクトの操作レベルを取得し（Ｓ４）、今回の操作レベルと前回の操作レベルが所定の関係になると、当該所定の関係になった位置の座標情報をタッチオフの座標情報としてＣＰＵ６に出力し（Ｓ１０）、タッチオフを検出するまで、検出されたタッチ位置の座標情報をＣＰＵ６に出力しない（Ｓ１でＹＥＳ→Ｓ２でＹＥＳ→Ｓ１）。【選択図】図５
2020187632.tif 000002
【特許請求の範囲】
【請求項１】
タッチ位置、タッチオン及びタッチオフを検出する検出手段と、
前記タッチ位置に対応するオブジェクトの操作レベルを取得する取得手段と、
前記取得手段で取得された今回の操作レベルと前回の操作レベルが所定の関係になると、当該所定の関係になった位置の座標情報を前記タッチオフの座標情報として外部装置に出力し、前記検出手段が前記タッチオフを検出するまで前記検出手段で検出されたタッチ位置の座標情報を前記外部装置に出力しない出力制御手段と
を備えることを特徴とするタッチパネル用コントローラ。
【請求項２】
前記今回の操作レベルと前記前回の操作レベルが前記所定の関係になっていない場合には、前記出力制御手段は前記検出手段で検出されたタッチ位置の座標情報を前記外部装置に出力することを特徴とする請求項１に記載のタッチパネル用コントローラ。
【請求項３】
オブジェクト毎に、前記オブジェクトと前記操作レベルと領域情報とが関連付けられたデータを記憶する記憶手段を備え、
前記取得手段は、前記検出手段で検出されたタッチ位置と前記データの前記領域情報とに基づいて、前記タッチ位置に対応するオブジェクトの操作レベルを取得することを特徴とする請求項１又は２に記載のタッチパネル用コントローラ。
【請求項４】
コンピュータを、
タッチ位置、タッチオン及びタッチオフを検出する検出手段、
前記タッチ位置に対応するオブジェクトの操作レベルを取得する取得手段、及び
前記取得手段で取得された今回の操作レベルと前回の操作レベルが所定の関係になると、当該所定の関係になった位置の座標情報を前記タッチオフの座標情報として外部装置に出力し、前記検出手段が前記タッチオフを検出するまで前記検出手段で検出されたタッチ位置の座標情報を前記外部装置に出力しない出力制御手段
として機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、タッチパネル用コントローラ及びプログラムに関する。
【背景技術】
【０００２】
従来より、タッチ操作の誤入力を防止することができる技術が知られている。例えば、特許文献１では、タッチパネルに表示されるボタン間に、誤入力防止のための低感度領域を設定している。特許文献２では、タッチされた位置に応じて同定のための境界を変動し、この変動した境界に基づいて次のタッチによる入力の同定を行うことによって、誤入力を防止する。特許文献３では、２つのアイコン領域の間に、アイコンの選択の状態の変化を反映しない中間帯が設置されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１５−１３８２８７号公報
【特許文献２】国際公開第２００３／０２７８２６号
【特許文献３】特開平１１−１２７３９９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
キーボードのように複数のボタンが隣接して配置され、タッチパネルの操作時に指が滑ると、目的のボタン以外の隣接するボタンに移動してしまう場合がある。特に、ボタン間の領域が無い場合やボタン間の領域が小さい場合には、指が目的のボタン以外の隣接するボタンに移動してしまうことがあり、必ずしもタッチ操作の誤入力を防止することができない課題がある。
【０００５】
本発明は、タッチ操作の誤入力を防止することができるタッチパネル用コントローラ及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記目的を達成するため、明細書に開示されたタッチパネル用コントローラは、タッチ位置、タッチオン及びタッチオフを検出する検出手段と、前記タッチ位置に対応するオブジェクトの操作レベルを取得する取得手段と、前記取得手段で取得された今回の操作レベルと前回の操作レベルが所定の関係になると、当該所定の関係になった位置の座標情報を前記タッチオフの座標情報として外部装置に出力し、前記検出手段が前記タッチオフを検出するまで前記検出手段で検出されたタッチ位置の座標情報を前記外部装置に出力しない出力制御手段とを備えることを特徴とする。
【発明の効果】
【０００７】
本発明によれば、タッチ操作の誤入力を防止することができる。
【図面の簡単な説明】
【０００８】
【図１】タッチパネルとメイン装置とを備える情報処理装置の構成図である。
【図２】図１のタッチパネルに表示されるアプリケーションの一例を示す図である。
【図３】オブジェクトと領域情報と操作レベルとの関係を示す図である。
【図４】（Ａ）はオブジェクト上でタッチ操作する第１の例を示す図であり、（Ｂ）は図４（Ａ）のオブジェクトに対して設定された操作レベルを示す図である。（Ｃ）はオブジェクト上でタッチ操作する第２の例を示す図であり、（Ｄ）は図４（Ｃ）のオブジェクトに対して設定された操作レベルを示す図である。（Ｅ）はオブジェクト上でタッチ操作する第３の例を示す図であり、（Ｆ）は図４（Ｅ）のオブジェクトに対して設定された操作レベルを示す図である。（Ｇ）はオブジェクト上でタッチ操作する第４の例を示す図であり、（Ｈ）は図４（Ｇ）のオブジェクトに対して設定された操作レベルを示す図である。
【図５】コントローラで実行されるタッチ入力処理を示すフローチャートである。
【発明を実施するための形態】
【０００９】
以下、図面を参照しながら本発明の実施の形態を説明する。
【００１０】
図１は、タッチパネルとメイン装置とを備える情報処理装置の構成図である。図１の情報処理装置１０は、表示機能及びキー入力機能を有するタッチパネル１と、入力データを処理するメイン装置５とを備えている。情報処理装置１０とは、タッチパネルを備える装置であり、例えば、パソコン、サーバ、スマホ、家電（冷蔵庫及び洗濯機などを含む）、キヨスク端末、又はＡＴＭなどである。
【００１１】
タッチパネル１は、タッチ入力の位置を検出し、各種処理を実行するコントローラ２を備えている。コントローラ２は、各種処理を実行するためのプログラムやデータを記憶し、プログラムを実行するワーキングエリアとして機能するメモリ３を備えている。コントローラ２は、検出手段、取得手段及び出力制御手段として機能し、メモリ３は記憶手段として機能する。尚、図示しないが、タッチパネル１は、基板や透明導電膜などを備えている。コントローラ２は、タッチパネル１に取り外し可能に装着されていてもよいし、タッチパネル１に固定されていてもよい。
【００１２】
メイン装置５は、タッチパネル１から各種のデータを入力し、様々な処理を実行する。メイン装置５は、コントローラ２にＵＳＢケーブル８を介して接続されるＣＰＵ（Central Processing Unit）６と、プログラム、アプリケーション並びにデータを格納するメモリ７とを備えている。尚、メイン装置５は、ＣＰＵ６に代えて、プロセッサ、専用の演算IC又はASIC（Application Specific Integrated Circuit）などを備えていてもよい。
【００１３】
図２は、タッチパネル１に表示されるアプリケーションの一例を示す図である。アプリケーション１１は、メモリ７に格納され、ＣＰＵ６により実行される。アプリケーション１１画面は、背景１２、表示エリア１３及び複数のボタン１４を備えている。図２のボタン１４は数値キーなどである。背景１２、表示エリア１３及びボタン１４は各々オブジェクトであり、各オブジェクトには操作レベルが設定されている。各オブジェクトに関連付けられている操作レベルは、例えば、アプリケーション１１で変更可能である。アプリケーション１１は、図２のような電卓アプリケーションに限定されるものではない。
【００１４】
図３は、オブジェクトと領域情報と操作レベルとの関係を示す図である。例えば、図３に示すように、アプリケーション１１は、各オブジェクトと領域情報と操作レベルとを関連付けたテーブルデータを備えている。領域情報はオブジェクトに対応する領域を示すデータであり、例えば、ボタン１４に対応する領域のデータは、ボタン１４の４隅に対応する座標（Ｘ１，Ｙ１）（Ｘ２，Ｙ１）（Ｘ１，Ｙ２）（Ｘ２，Ｙ２）として設定される。
【００１５】
コントローラ２は、タッチ位置の座標情報を検出すると、タッチ位置に対応するオブジェクトの操作レベルをＣＰＵ６に問い合わせる。ＣＰＵ６は、コントローラ２からタッチ位置の座標情報を受信すると、図３のテーブルデータに基づいて、タッチ位置に該当するオブジェクトの操作レベルを特定し、コントローラ２に返信する。
【００１６】
コントローラ２は、図３のテーブルデータをＣＰＵ６から予め取得し、メモリ３に格納していてもよい。この場合、コントローラ２は、タッチ位置の座標情報を検出すると、ＣＰＵ６に問い合わせることなく、メモリ３に格納されたテーブルデータを使ってタッチ位置に対応するオブジェクトの操作レベルを取得できる。
【００１７】
図４（Ａ）はオブジェクト上でタッチ操作する第１の例を示す図であり、図４（Ｂ）は図４（Ａ）のオブジェクトに対して設定された操作レベルを示す図である。図４（Ｃ）はオブジェクト上でタッチ操作する第２の例を示す図であり、図４（Ｄ）は図４（Ｃ）のオブジェクトに対して設定された操作レベルを示す図である。図４（Ｅ）はオブジェクト上でタッチ操作する第３の例を示す図であり、図４（Ｆ）は図４（Ｅ）のオブジェクトに対して設定された操作レベルを示す図である。図４（Ｇ）はオブジェクト上でタッチ操作する第４の例を示す図であり、図４（Ｈ）は図４（Ｇ）のオブジェクトに対して設定された操作レベルを示す図である。
【００１８】
図４（Ａ）、図４（Ｃ）、図４（Ｅ）及び図４（Ｇ）では、操作者の指の動きが矢印で示されており、操作者の指がボタン１４ａ、背景１２及びボタン１４ｂのオブジェクト上をスライドする。
【００１９】
図４（Ａ）及び図４（Ｂ）では、ボタン１４ａ、背景１２及びボタン１４ｂの全オブジェクトに対して同じ操作レベル１が設定されている。隣接するオブジェクト同士の操作レベルが同一である場合には、タッチ操作は制限されることなく、自由な操作が可能である。操作者の指がボタン１４ａ、背景１２及びボタン１４ｂのオブジェクト上をスライドした場合、コントローラ２は、ボタン１４ａ、背景１２及びボタン１４ｂの各タッチ位置の座標情報を順番にＣＰＵ６に出力し、ボタン１４ａおよびボタン１４ｂに情報や機能が設定されている場合にはボタン１４ａ、ボタン１４ｂの入力が有効となる。操作レベルは、高レベル「５」から低レベル「０」まで設定可能であるが、これらの数値に限定されるものではない。
【００２０】
図４（Ｃ）及び図４（Ｄ）では、ボタン１４ａ、背景１２及びボタン１４ｂのオブジェクトに対して操作レベル５，３，１がそれぞれ設定されている。オブジェクトの操作レベルが高レベルから低レベルへ移行する場合には、タッチ操作は制限されず、操作者の指がボタン１４ａ、背景１２及びボタン１４ｂのオブジェクト上をスライドした場合に、コントローラ２は、ボタン１４ａ、背景１２及びボタン１４ｂの各タッチ位置の座標情報を順番にＣＰＵ６に出力する。
【００２１】
オブジェクトの操作レベルが低レベルから高レベルへ移行する場合には、タッチ操作が制限され、自由な操作ができない場合がある。
【００２２】
図４（Ｅ）及び図４（Ｆ）では、ボタン１４ａ、背景１２及びボタン１４ｂのオブジェクトに対して操作レベル１，２，３がそれぞれ設定されている。隣接するオブジェクト同士の操作レベルの差が所定値（例えば１）以下である場合には、タッチ操作は制限されない。図４（Ｅ）及び図４（Ｆ）では、指がボタン１４ａから背景１２へ移行しても、あるいは背景１２からボタン１４ｂへ移行しても、隣接するオブジェクト同士の操作レベルの差が１なので、タッチ操作は制限されない。
【００２３】
一方、図４（Ｇ）及び図４（Ｈ）では、ボタン１４ａ、背景１２及びボタン１４ｂのオブジェクトに対して操作レベル１，３，１がそれぞれ設定されている。指がボタン１４ａから背景１２へ移動した場合には、指が低レベルのオブジェクトから高レベルのオブジェクトに移動し、且つボタン１４ａと背景１２とに設定されている操作レベルの差が２なので、タッチ操作が制限される。具体的には、指がボタン１４ａの外側に移動したら、コントローラ２はボタン１４ａと背景１２との境界である図４（Ｇ）の点Ｐの座標をボタン１４ａのタッチオフ座標としてＣＰＵ６に出力する。以後、コントローラ２は背景１２及びボタン１４ｂのタッチ位置の座標情報をＣＰＵ６に出力しない。従って、ボタン１４ａの入力のみが有効となり、背景１２、あるいはボタン１４ｂへの入力は無効となる。このように、オブジェクトの操作レベルが低レベルから高レベルへ移行し、且つ隣接するオブジェクト同士の操作レベルの差が２以上の場合には、コントローラ２は、指が高レベルのオブジェクトに移動すると同時に操作レベルの差が所定値を超えた位置の座標情報をタッチオフ座標としてＣＰＵ６に出力し、それ以降は、例え指が同レベル又は低レベルのオブジェクトに移動したとしてもタッチ位置の座標情報をＣＰＵ６に出力しない。
【００２４】
このように、本実施の形態では、オブジェクトの操作レベルが低レベルから高レベルへ移行した場合、あるいは隣接するオブジェクト同士の操作レベルの差が所定値以下である場合にはタッチ操作は制限されないが、オブジェクトの操作レベルが低レベルから高レベルへ移行し、且つ隣接するオブジェクト同士の操作レベルの差が所定値を超えればタッチ操作は制限され、指がタッチパネルから離れるタッチオフが検出されるまでタッチ入力の操作は無効になる。
【００２５】
尚、本実施形態では、オブジェクトの操作レベルが低レベルから高レベルへ移行し、且つ隣接するオブジェクト同士の操作レベルの差が所定値を超えればタッチ操作を制限しているが、本実施形態はこれに制限されるものではない。例えば、オブジェクトの操作レベルが高レベルから低レベルへ移行し、且つ隣接するオブジェクト同士の操作レベルの差が所定値を超えたときにタッチ操作を制限してもよい。タッチ操作を制限する条件は、アプリケーション１１の設定又は図３のテーブルデータの設定などによって適宜変更可能である。
【００２６】
図５は、コントローラ２で実行されるタッチ入力処理を示すフローチャートである。
【００２７】
コントローラ２は、タッチパネル１にかかる電圧を監視することで、タッチオンが検出されたか否かを判別する（Ｓ１）。タッチオンが検出された場合には（Ｓ１でＹＥＳ）、コントローラ２は後述するタッチオフの座標情報をＣＰＵ６に出力済みであるか否かを判別する（Ｓ２）。タッチオフの座標情報をＣＰＵ６に出力済みである場合には（Ｓ２でＹＥＳ）、手順はＳ１に戻る。
【００２８】
タッチオフの座標情報をＣＰＵ６に出力済みでない場合には（Ｓ２でＮＯ）、コントローラ２は、タッチパネル１上のタッチ位置の座標を検出する（Ｓ３）。コントローラ２は、検出したタッチ位置の座標情報をＣＰＵ６に出力し、タッチ位置に対応するオブジェクトの操作レベルをＣＰＵ６から取得する（Ｓ４）。テーブルデータが予めメモリ３に格納されている場合には、コントローラ２はＣＰＵ６に問い合わせることなく、メモリ３内のテーブルデータを使ってタッチ位置に対応するオブジェクトの操作レベルを取得してもよい。
【００２９】
コントローラ２は、前回判別した操作レベルが０であるか否かを判別する（Ｓ５）。タッチパネル１がタッチされていない状態では、操作レベルとして便宜上０が設定されている。一方、すでにタッチパネル１がタッチされている場合には、前回タッチしたオブジェクトの操作レベルが設定されている。前回の操作レベルが０である場合には（Ｓ５でＹＥＳ）、コントローラ２は、今回のタッチ位置の座標情報をＣＰＵ６に出力する（Ｓ７）。メモリ３には、前回のタッチ位置の操作レベルと今回のタッチ位置の操作レベルが保持されるため、コントローラ２は、前回のタッチ位置の操作レベルと今回のタッチ位置の操作レベルを更新して、メモリ３に更新後の操作レベルを保持する（Ｓ８）。そして、手順はＳ１に戻る。
【００３０】
一方、前回の操作レベルが０でない場合には（Ｓ５でＮＯ）、コントローラ２は、前回のタッチ位置の操作レベルが今回のタッチ位置の操作レベル以上であるか否かを判別する（Ｓ６）。Ｓ６では、例えば、指があるオブジェクトから隣接するオブジェクトに移動したときに操作レベルが増加したのか又は減少したのかを判断している（図４（Ａ）〜（Ｈ）参照）。前回のタッチ位置の操作レベルが今回のタッチ位置の操作レベル以上である場合には（Ｓ６でＹＥＳ）、手順はＳ７に進み、タッチ入力が有効なものとして今回のタッチ位置の座標をＣＰＵ６に出力する。指があるオブジェクトから隣接するオブジェクトに移動したとき、今回と前回とのオブジェクトの操作レベルが一定であるか又は減少する場合、Ｓ６でＹＥＳ→Ｓ７と処理され、タッチ操作は制限されない。
【００３１】
一方、前回のタッチ位置の操作レベルが今回のタッチ位置の操作レベルよりも小さい場合には（Ｓ６でＮＯ）、コントローラ２は、前回のタッチ位置の操作レベルと今回のタッチ位置の操作レベルとの差が所定値以下であるか否かを判別する（Ｓ９）。Ｓ６でＮＯと判断されたときには操作レベルが増加しているので、Ｓ９で操作レベルの増加量が図４（Ｆ）のように所定値以下であるのか又は図４（Ｈ）のように所定値を超えるのかを判断している。
【００３２】
前回のタッチ位置の操作レベルと今回のタッチ位置の操作レベルとの差が所定値以下である場合には（Ｓ９でＹＥＳ）、手順はＳ７に進む。例えば、指があるオブジェクトから隣接するオブジェクトに移動した場合、操作レベルが増加したけれどもＳ９でＹＥＳ→Ｓ７の処理で操作レベルの差が所定値以下であると判断されればタッチ操作は制限されない。
【００３３】
前回のタッチ位置の操作レベルと今回のタッチ位置の操作レベルとの差が所定値を超えた場合には（Ｓ９でＮＯ）、コントローラ２はタッチ入力を無効なものとし、操作レベルの差が所定値を超えた位置の座標情報をタッチオフ座標としてＣＰＵ６に出力する（Ｓ１０）。例えば、指があるオブジェクトから隣接するオブジェクトに移動した結果、操作レベルが所定値を超えて増加した場合、コントローラ２は、Ｓ９でＮＯ→Ｓ１０の処理で操作レベルが所定値を超えた位置の座標情報をタッチオフの座標情報としてＣＰＵ６に出力する。そして、コントローラ２は、メモリ３に保持された、前回のタッチ位置の操作レベル及び今回のタッチ位置の操作レベルを０にクリアする（Ｓ１１）。そして、手順はＳ１に戻る。
【００３４】
Ｓ１に戻り、タッチオン状態であることが検出され（Ｓ１でＹＥＳ）たとき、Ｓ１０でタッチオフの座標情報をＣＰＵ６に出力済みである場合には（Ｓ２でＹＥＳ）手順は再度Ｓ１に戻る。Ｓ１でＹＥＳ→Ｓ２でＹＥＳ→Ｓ１のループ処理により、図４（Ｇ）でコントローラ２がタッチオフの座標情報をＣＰＵ６に出力した後、操作者の指がタッチオン状態を継続してもタッチ位置の座標はＣＰＵ６に出力されない。
【００３５】
Ｓ１でタッチオンが検出されない場合、言い換えれば指がタッチパネルから離れた、あるいは未だタッチパネルがタッチされていない場合には（Ｓ１でＮＯ）、コントローラ２はＳ１０でタッチオフの座標情報をＣＰＵ６に出力済みであるか否かを判別する（Ｓ１２）。Ｓ１０でタッチオフの座標情報をＣＰＵ６に出力済みである場合には（Ｓ１２でＹＥＳ）、コントローラ２はメモリ３内のタッチオン及びタッチオフの出力情報をクリアし（Ｓ１４）、手順はＳ１に戻る。Ｓ１４の処理では、新たなタッチ入力に備えるために、タッチオフの座標情報をＣＰＵ６に出力済みであることを示す情報などがメモリ３内からクリアされる。
【００３６】
一方、タッチオフの座標情報をＣＰＵ６に出力済みでない場合には（Ｓ１２でＮＯ）、コントローラ２は、タッチ位置の座標情報をＣＰＵ６に出力済みであるか否かを判別する（Ｓ１３）。タッチ位置の座標情報をＣＰＵ６に出力済みである場合には（Ｓ１３でＹＥＳ）、手順はＳ１０に進み、Ｓ１でタッチオフと判断されたときのタッチ位置の座標をＣＰＵに出力する。Ｓ１３でＹＥＳ→Ｓ１０の処理により、例えば指がスライドせずにボタン１４ａから離れた場合に、指が離れた位置の座標情報をコントローラ２がタッチオフ座標としてＣＰＵ６に出力する。タッチ位置の座標情報をＣＰＵ６に出力していない場合には（Ｓ１３でＮＯ）、手順はＳ１に戻る。Ｓ１３でＮＯ→Ｓ１の処理がループする場合、未だタッチ入力がされていないことを示している。
【００３７】
以上説明したように、本実施の形態によれば、コントローラ２は、タッチ位置、タッチオン及びタッチオフを検出し（Ｓ１，Ｓ３）、タッチ位置に対応するオブジェクトの操作レベルを取得する（Ｓ４）。そして、今回の操作レベルと前回の操作レベルが所定の関係になると、当該所定の関係になった位置の座標情報をタッチオフの座標情報としてＣＰＵ６に出力し（Ｓ１０）、指がタッチパネル１から離れてタッチオフを検出するまで、Ｓ１でタッチオンが検出されたタッチ位置の座標情報をＣＰＵ６に出力しない（Ｓ１でＹＥＳ→Ｓ２でＹＥＳ→Ｓ１）。
【００３８】
従って、操作者が目的のボタンの操作レベルとそれ以外の隣接するボタンの操作レベルとを適切に設定しておけば、たとえ、指が滑って目的のボタン以外のボタンに移動してしまっても、移動先のボタンのタッチ位置の座標情報はＣＰＵ６に出力されない。従って、タッチ操作の誤入力を防止することができる。また、今回の操作レベルと前回の操作レベルが所定の関係にならない場合には、タッチ操作は制限されることなく、自由な操作が可能である。
【００３９】
また、本実施の形態では、単に誤入力を防止するだけではなく、入力を制限することができる。用途に合わせてオブジェクトに操作レベルを設定することで、誤入力防止の操作又は決まった順序でしか入力できない操作を実現できる。例えば、５つのボタン［０］〜「４」が左から右に一列に配置され、５つのボタン［０］〜「４」に操作レベル１〜５がそれぞれ設定されているとする。操作レベル５が高レベルで、操作レベル１が低レベルであり、操作レベルが低レベルから高レベルへ移行する場合には、タッチ操作が制限され、自由な操作ができないとする。この場合、ユーザの指がボタン［０］をタッチしたまま右に動かしても、ボタン［１］〜「４」の入力はできない。一方、ユーザの指がボタン［４］をタッチしたまま左に動かすと、ボタン［０］〜「３」の入力は可能である。
【００４０】
尚、本発明は、上述した実施の形態に限定されるものではなく、その要旨を逸脱しない範囲内で種々変形して実施することが可能である。
【符号の説明】
【００４１】
１  タッチパネル
２  コントローラ
３  メモリ
５  メイン装置
６  ＣＰＵ
７  メモリ
１０  情報処理装置
【図１】
2020187632.tif 000003
【図２】
2020187632.tif 000004
【図３】
2020187632.tif 000005
【図４】
2020187632.tif 000006
【図５】
2020187632.tif 000007