本発明の実施の形態について図面を参照して説明する。以下、携帯電子機器の典型例として携帯電話端末に本発明を適用して説明する。図1は、本発明の実施の形態に係る携帯電話端末の基本的な構成を示すブロック図である。この携帯電話端末100は、制御部110、センサ部120、表示部130、記憶部(フラッシュメモリなど)140、情報処理機能部150、電話機能部160、キー操作部KEY、スピーカSP、図示しないCDMA通信網に接続して通信を行う通信部COMにより構成されている。さらに、センサ部120は、複数のセンサ素子(例えば、その検知部を機器筐体の外面に設けてあり、指などの物体の接触・近接を検出する接触センサ)を含んだセンサ素子群を、用途に応じてn個、即ち、第1のセンサ素子群G1、第2のセンサ素子群G2および第nのセンサ素子群G3を含み、記憶部140は、保存領域142、外部データ保存領域144から構成されている。制御部110および情報処理機能部150は、CPUなどの演算手段およびソフトウェアモジュールなどから構成させることが好適である。なお、後述するシリアルインターフェース部SI、シリアルインターフェース部SIを介して制御部110に接続されるRFIDモジュールRFIDや赤外線通信部IR、さらにはカメラ220やライト230の他、マイクMIC、ラジオモジュールRM、電源PS、電源コントローラPSCON等が制御部110に接続されているが、ここでは図を簡略化するため省略する。
制御部110は、センサ部120によりユーザの指などによる物体の接触を検出し、記憶部140の保存領域142に検出した情報を格納し、情報処理機能部150により格納した情報の処理を制御する。そして、処理結果に応じた情報を表示部130に表示させる。さらに制御部110は、通常の通話機能のための電話機能部160、キー操作部KEYおよびスピーカSPを制御する。なお、表示部130は、サブ表示部ELDおよび図示しないメイン表示部(携帯電話端末100が閉状態にて隠れ、開状態にて露出する位置に設けられる表示部)を含んで構成される。
図2は、本実施の形態に係る携帯電話端末の外観を示すもので、図2(a)は全体の斜視図であり、図2(b)はセンサ部120の動作を説明するために、パネルPNLを省略し、センサ素子とサブ表示部ELD周辺のみの配置を表示した斜視図である。携帯電話端末100は、センサ部120(外観上、センサ部120すなわちセンサ素子群G1,G2を覆う図6にて後述するパネルPNLが見えている)、カメラ220、およびライト230を備える。携帯電話端末100は、図2に示すような閉状態のほか、ヒンジ部を回動、スライドさせて開状態を形成することが可能であって、センサ部120は閉状態においても操作可能な位置に設けられている。センサ素子L1〜L4およびR1〜R4は、それぞれ静電容量式の接触センサからなり、有機ELディスプレイからなるサブ表示部ELDの周囲に沿って環状に並べて配置されている。
ここで、センサ素子L1〜L4は第1のセンサ素子群G1を構成し、センサ素子R1〜R4は第2のセンサ素子群G2を構成している。すなわち、本実施の形態では、センサ部120を第1のセンサ素子群G1と第2のセンサ素子群G2とで構成している。第1のセンサ素子群G1および第2のセンサ素子群G2は、サブ表示部ELDを挟み、選択候補項目の並べられている方向を中心線とする線対称なレイアウトで、離間部SP1、SP2を隔てて並べて配置されている。なお、サブ表示部ELDは、有機ELディスプレイに限らず、例えば液晶表示ディスプレイ等を用いることもできる。また、センサ素子L1〜L4,R1〜R4は、静電容量式の接触センサに限らず、薄膜抵抗式の接触センサを用いることもできる。
図2において、サブ表示部ELDは、携帯電話端末100において実行中のアプリに応じて情報を表示する。例えば、音楽プレーヤーのアプリの実行中は、サブ表示部ELDには演奏できる曲目が表示される。曲名およびアーティスト名の組で1つの項目、即ち、「選択候補項目」となる。ユーザは、操作入力部としてセンサ部120を操作してセンサ素子R1〜R4,L1〜L4の静電容量を変化させてサブ表示部ELDに表示された項目や操作対象領域を移動させて曲目の選択を行う。このとき、センサ部120は、図2のように、サブ表示部ELDの周囲にセンサ素子を並べる構成とすれば、小型な携帯電子機器の外部筐体における実装部分を大きく占有せずに済み、かつ、ユーザは、サブ表示部ELDの表示を見ながらセンサ素子を操作することができる。
図3は、本実施の形態に係る携帯電話端末100の詳細な機能ブロック図である。言うまでもないが、図3に示す各種ソフトウエアは、記憶部140に記憶されるプログラムに基づいて、同じく記憶部140上にワークエリアを設けた上で、制御部110が実行することにより動作する。図に示すように、携帯電話端末の諸機能は、ソフトウェアブロックとハードウェアブロックとに分かれる。ソフトウェアブロックは、フラグ記憶部FLGを持つベースアプリBA、サブ表示部表示アプリAP1、ロックセキュリティアプリAP2、その他アプリAP3、およびラジオアプリAP4から構成される。ソフトウェアブロックは、さらに、赤外線通信アプリAPIRおよびRFIDアプリAPRFも含む。これらの各種アプリがハードウェアブロックの各種ハードウェアを制御するときに、赤外線通信ドライバIRD、RFIDドライバRFD、オーディオドライバAUD、ラジオドライバRD、およびプロトコルPRをドライバとして使用する。例えば、オーディオドライバAUD、ラジオドライバRD、およびプロトコルPRは、それぞれ、マイクMIC、スピーカSP、通信部COM、およびラジオモジュールRMを制御する。ソフトウェアブロックは、さらに、ハードウェアの操作状態を監視・検出するキースキャンポートドライバKSPも含み、タッチセンサドライバ関連検出、キー検出、折り畳み式やスライド式などの携帯電話端末の開閉を検出する開閉検出、イヤホン着脱検出などを行う。
ハードウェアブロックは、ダイヤルキーや後述するタクトスイッチSW1〜SW4を含む各種ボタンなどを含むキー操作部KEY、ヒンジ部の動作状況などに基づき開閉を検出する開閉検出デバイスOCD、機器本体付属のマイクMIC、着脱可能なイヤホンEAP、スピーカSP、通信部COM、ラジオモジュールRM、シリアルインターフェース部SI、および切替制御部SWCONから構成される。切替制御部SWCONは、ソフトウェアブロックの該当ブロックからの指示に従って、赤外線通信部IR、RFIDモジュール(無線識別タグ)RFID、第1のセンサ素子群G1および第2のセンサ素子群G2を構成するタッチセンサモジュールTSM(センサ部120と発振回路などのセンサ部120を駆動する上で必要な部品一式をモジュール化したもの)のうちのいずれか1つを選択して当該信号をシリアルインターフェース部SIが拾い上げるように選択対象ハードウェア(IR、RFID、TSM)を切り替える。電源PSは、電源コントローラPSCONを介して選択対象ハードウェア(IR、RFID、TSM)に電力を供給する。
図4は、本実施の形態に係る携帯電話端末100のタッチセンサ機能のより詳細な構成を示すブロック図である。携帯電話端末100は、タッチセンサドライバブロックTDB、タッチセンサベースアプリブロックTSBA、デバイス層DL、割込ハンドラIH、キューQUE、OSタイマーCLK、各種アプリAP1〜AP3を備える。ここでタッチセンサベースアプリブロックTSBAは、ベースアプリBAおよびタッチセンサドライバ上位アプリインターフェースAPIを備え、タッチセンサドライバブロックTDBは、タッチセンサドライバTSDおよび結果通知部NTFを備える。また、デバイス層DLは、切替制御部SWCON、切替部SW、シリアルインターフェース部SI、赤外線通信部IR、RFIDおよびタッチセンサモジュールTSMを備え、割込ハンドラIHは、シリアル割込み監視部SIMONおよび確認部CNFを備える。
次に、各ブロックの機能を説明する。タッチセンサベースアプリブロックTSBAにおいて、ベースアプリBAと、タッチセンサドライバ上位アプリインターフェースAPIとの間では、タッチセンサモジュールTSMを起動するか否かのやり取りが行われる。ベースアプリBAは、サブ表示部用のアプリであるサブ表示部表示アプリAP1、RFIDを用いた課金サービスのセキュリティ保護用に携帯電話端末100にロックをかけるアプリケーションであるロックセキュリティアプリAP2、その他のアプリAP3のベースとなるアプリケーションであり、ベースアプリBAに前記各アプリからタッチセンサの起動が要求された場合に、タッチセンサドライバ上位アプリインターフェースAPIにタッチセンサモジュールTSMの起動を要求する。なお、サブ表示部とは、各図にて示すサブ表示部ELDであって、本実施の形態における携帯電話端末100において、環状に配置されたセンサ素子群の中央領域に設けられたサブ表示部ELDのことを指す。
起動の要求を受け、タッチセンサドライバ上位アプリインターフェースAPIは、ベースアプリBA内のアプリの起動を管理するブロック(図示せず)に、タッチセンサモジュールTSMの起動が可能か否かの確認を行う。即ち、アプリの選択が実行されていることを示すサブ表示部ELDの点灯、またはFMラジオ、その他の携帯電話端末100に付属するアプリ等の、あらかじめタッチセンサモジュールTSMの起動が不可能と設定されたアプリケーションの起動を示すフラグの有無を確認する。その結果、タッチセンサモジュールTSMの起動が可能と判断された場合、タッチセンサドライバ上位アプリインターフェースAPIは、タッチセンサドライバTSDにタッチセンサモジュールTSMの起動を要求する。すなわち、実質的には、電源PSから電源コントローラPSCONを介してタッチセンサモジュールTSMへの電源供給を開始する。
起動が要求されると、タッチセンサドライバTSDは、デバイス層DL内のシリアルインターフェース部SIに要求して、シリアルインターフェース部SIにおけるタッチセンサドライバTSDとのポートを開くように制御する。
その後、タッチセンサドライバTSDは、タッチセンサモジュールTSMのセンシング結果の情報を有する信号(以下、接触信号と記す)を、タッチセンサモジュールTSMが有する内部クロックによる20msの周期で、シリアルインターフェース部SIに出力されるように制御する。
接触信号は、上述した各センサ素子L1〜L4およびR1〜R4の8つのセンサ素子それぞれに対応した8ビット信号で出力されている。即ち、各センサ素子が接触を検知したときには、この接触を検知したセンサ素子に対応するビットに、接触検知を表す「フラグ:1」を立てた信号であって、これらのビット列により接触信号が形成される。つまり、接触信号には、「どのセンサ素子」が「接触/非接触のいずれか」を示す情報が含まれる。
割込ハンドラIHにおけるシリアル割込み監視部SIMONは、シリアルインターフェース部SIに出力された接触信号を取り出す。ここで確認部CNFが、シリアルインターフェース部SIにおいてあらかじめ設定された条件に従い、取り出した接触信号のTrue/Falseの確認を行い、True(真)な信号のデータのみをキューQUEに入れる(信号のTrue/Falseの種別については後述する。)。また、シリアル割込み監視部SIMONは、タッチセンサモジュールTSMにおける後述するタクトスイッチの押下の発生など、タッチセンサモジュールTSMの起動中におけるシリアルインターフェース部SIの他の割込み事象の監視も行う。
なお、監視部SIMONは、検出した接触が最初の接触であった場合には「プレス」を意味する信号を接触信号の前にキューQUEに入れる(キューイングする)。その後、オペレーションシステムの有するOSタイマーCLKによるクロックにより45ms周期で接触信号の更新を行い、所定周期接触を検出しなかった場合には「リリース」を意味する信号をキューQUEに入れる。これにより、接触開始からリリースまでのセンサ素子間での接触検出の移動を監視することができるようになる。なお、「最初の接触」とは、キューQUEにデータのない状態、或いは、直近の入力データが「リリース」である場合に「フラグ:1」を有する信号が発生する事象を指す。これらの処理により、タッチセンサドライバTSDは、「プレス」から「リリース」までの区間のセンサ素子の検出状態を知ることができる。
同時に、監視部SIMONは、タッチセンサモジュールTSMから出力される接触信号がFalseとなる条件を満たす信号であった場合に、「リリース」を意味する信号を擬似的に生成してキューQUEに入れる。ここでFalse(偽)となる条件としては、「非連続な2つのセンサ素子で接触を検出した場合」、「タッチセンサモジュールTSM起動中に割込みが生じた場合(例えば、メール着信等の通知でサブ表示部ELDの点灯/消灯状態が変更された場合)」、または「タッチセンサモジュールTSM起動中にキー押下が発生した場合」などが設定される。
また、監視部SIMONは、例えば、センサ素子R2とR3といった隣接する2つのセンサ素子で同時に接触を検出した場合には、単一の素子を検出した場合と同様に、接触を検出した素子に対応するビットにフラグが立った接触信号をキューQUEに入れる。
タッチセンサドライバTSDは、45ms周期でキューQUEから接触信号を読み出し、読み出した接触信号によって、接触を検知した素子を判定する。タッチセンサドライバTSDは、キューQUEから順次に読み出した接触信号により判定した接触の変化、および、検知した素子との位置関係を考慮して、「接触スタートの素子」、「接触の移動方向(右/左回り)」、および「プレスからリリースまでの移動距離」を判定する。タッチセンサドライバTSDは、判定した結果を結果通知部NTFに書き込むとともに、ベースアプリBAに結果を更新するように通知する。
本実施の形態においては、接触信号による接触の移動方向および移動距離の判定モードとして、「半周内検出モード」と「周回検出モード」とを有している。これら「半周内検出モード」および「周回検出モード」は、実行中のアプリに応じて選択的に適用されるもので、それらの詳細については後述する。
前述のように、結果の更新がタッチセンサドライバTSDによってベースアプリBAに通知されると、ベースアプリBAは結果通知部NTFを確認し、結果通知部NTFに通知された情報の内容を、さらに上位のアプリであってタッチセンサモジュールTSMの接触操作結果を要するアプリ(サブ表示部におけるメニュー画面表示のためのサブ表示部表示アプリAP1、およびロック制御のためのロックセキュリテイアプリAP2など)に通知する。
図5は、本実施の形態による携帯電話端末100の特にセンサ部120およびサブ表示部ELDの構成要素の配置を示す平面図である。作図および説明の便宜上、一部の構成要素のみを図示および説明する。図に示すように、有機EL素子からなるサブ表示部ELDの周囲に沿って円環状のパネルPNLが配されている。パネルPNLは、下部に設けるセンサ素子の感度に影響を与えないように十分に薄くすることが好適である。パネルPNLの下部には、人体の指の接触/近接を検知できる静電容量型の8個のセンサ素子L1〜L4、R1〜R4をほぼ円環状に配置してある。左側の4つのセンサ素子L1〜L4で第1のセンサ素子群G1、右側の4つのセンサ素子R1〜R4で第2のセンサ素子群G2をそれぞれ構成している。各センサ素子群内の隣接するセンサ素子の間には、隣接するセンサ素子同士で接触検出機能に干渉しないように、クリアランス(隙間)を設けて配置してある。なお、干渉しないタイプのセンサ素子を用いる場合にはこのクリアランスは不要である。
第1のセンサ素子群G1の一端に位置するセンサ素子L4と、第2のセンサ素子群G2の一端に位置するセンサ素子R1との間には、同一センサ素子群における隣接するセンサ素子間のクリアランスより大きいクリアランス(例えば、2倍以上の長さ)である離間部SP1を設ける。第1のセンサ素子群G1の他端に位置するセンサ素子L1と、第2のセンサ素子群G2の他端に位置するセンサ素子R4との間にも、離間部SP1と同様に離間部SP2を設ける。このような離間部SP1、SP2によって、第1のセンサ素子群G1と第2のセンサ素子群G2とが別個に機能させる際に、互いに指が干渉することを防止することができる。
第1のセンサ素子群G1の各センサ素子は円弧状に配置されているが、この円弧の中央、即ち、センサ素子L2およびL3の中間の下部に、タクトスイッチSW1の中心を配置する。同様に、第2のセンサ素子群G2の各センサ素子で形成される円弧の中央、即ち、センサ素子R2およびR3の中間の下部に、タクトスイッチSW2の中心を配置する(図6参照)。
このように、方向性を連想させない位置であるセンサ素子群の配置方向のほぼ中央にタクトスイッチを配置することによって、センサ素子上におけるユーザによる指の方向性を持った移動指示操作による方向指示とは直接関係しない操作を行うスイッチであることを、ユーザは容易に把握することができる。すなわち、センサ素子群の配置方向の中央ではなく端部(例えばL1やL4)にタクトスイッチを配置してあると、端部側向きの方向性を連想させるため、センサ素子による移動動作を継続するなどのために長押しする「スイッチ」であるという誤解をユーザに与え易い。これに対し、本実施の形態のように、センサ素子群の配置方向の中央にタクトスイッチを配置してあれば、このような誤解を防止することができ、より快適なユーザインターフェイスを提供することが可能である。また、センサ素子の下方にタクトスイッチを配して機器外面に露出していないため、機器の外観上も露出する操作部の点数を削減でき、複雑な操作を要さない様なスマートな印象となる。なお、スイッチをパネルPNL下部以外の箇所に設ける場合には、機器筐体に別途貫通孔を設ける必要があるが、貫通孔を設ける位置によっては筐体強度の低下が生じ得る。本構成では、パネルPNL、および、センサ素子の下方にタクトスイッチを配することによって、新たな貫通孔を設ける必要がなくなり、筐体強度の低下も防止できる。
例えば、サブ表示部ELDにメニュー画面を表示するサブ表示部表示アプリAP1の実行中において、ユーザが、例えば、指で順次にセンサ素子L1、L2、L3、L4を円弧状に上方に向かってなぞると、表示部ELDに表示されている選択候補項目(この場合は、音、表示、データ、カメラ)のうち選択対象領域(反転表示や別のカラーでの強調表示など)として表示されている項目が上方のものに順次変化したり、選択候補項目が上方にスクロールしたりする。所望の選択候補項目が選択対象領域として表示されているときに、ユーザは、パネルPNLおよびセンサ素子L2,L3越しにタクトスイッチSW1を押下して選択決定を行ったり、タクトスイッチSW2を押下して表示自体を別画面に変更したりすることができる。即ち、パネルPNLは、タクトスイッチSW1、SW2を押下するのに十分な可撓性を持つ、あるいはわずかに傾倒可能に機器筐体に取り付けられ、タクトスイッチSW1、SW2に対する押し子の役も持っている。
図6は、図2および図5に示した携帯電話端末100の構成要素、特にセンサ部120の分解斜視図である。図に示すように、端末筐体の外面をなす第1の層には、パネルPNLおよびサブ表示部ELDが配される。第1の層のパネルPNLの下方に位置する第2の層には、センサ素子L1〜L4、R1〜R4が配される。第2の層のセンサ素子L2、L3の間の下方、および、センサ素子R2、R3の間の下方に位置する第3の層には、タクトスイッチSW1、SW2がそれぞれ配される。
図7は、各センサ素子からの接触検知データの処理を説明する概略ブロック図である。説明の簡易化のため、センサ素子R1〜R4についてのみ示してあるが、センサ素子L1〜L4についても同様である。センサ素子R1〜R4の各々には、高周波が印加されており、一定の浮遊容量の変化を考慮してキャリブレーションし、このときの高周波状態を基準として設定されており、それぞれ、前処理部300(R1用前処理部300a、R2用前処理部300b、R3用前処理部300c、R4用前処理部300d)にて、指の接触などによる静電容量の変化に基づく高周波状態の変動を検出すると、A/D変換器310(R1用A/D変換器310a、R2用A/D変換器310b、R3用A/D変換器310c、R4用A/D変換器310d)へと送信され、接触検出を示すデジタル信号に変換される。デジタル化された信号は制御部320へと送信されて、他のセンサ素子L1〜L4の信号と合わせて8ビットの接触信号を得、その8ビットの接触信号を例えば16進に変換して記憶部330に格納する。その後、シリアルインターフェース部、割り込みハンドラにこの信号が送出され、割り込みハンドラにて、タッチセンサドライバが読み取り可能な信号に変換した後、変換後の信号をキューに入れる。なお、制御部320は、記憶部330に格納した情報に基づき、隣接したセンサ素子の2つ以上で接触を検出した時点で方向の検出を行う。
次に、本実施の形態の携帯電話端末100による「半周内検出モード」および「周回検出モード」について説明する。
先ず、「半周内検出モード」について説明する。「半周内検出モード」は、例えば上述した音楽プレーヤーのアプリやサブ表示部表示アプリAP1などの実行中において、サブ表示部ELDに表示される項目を選択するために、センサ部120における接触操作の移動方向および移動距離を検出するものである。
図8および図9は、「半周内検出モード」の一例を説明するもので、センサ素子上をユーザがなぞった場合のサブ表示部の動作を示す図である。図8および図9において、(a)は携帯電話端末に実装したサブ表示部と、その周辺に沿って並べて配置したセンサ素子のみを、説明の簡易化のために示した概略図、(b)は時間推移に伴い検知したセンサ素子を示す図、(c)は検知したセンサ素子に応じたサブ表示部ELDの操作対象領域の位置変化を示す図である。これらの図の(a)において、センサ素子、センサ素子群および離間部には図2(b)と同様の符号を付している。また(c)のサブ表示部ELDの表示において、TIはサブ表示部が表示する項目リストのタイトル、LS1〜LS4は選択候補項目(例えば、スクロール可能な幾つかの行)を示す。また(c)のサブ表示部において、操作の対象となる状態にある項目は、現在の操作対象領域であることが識別できるように、当該項目にカーソルを配置する、或いは、項目自体を反転表示などで強調表示する。これらの図では、操作対象領域として表示されている項目にはハッチングを施して強調して示している。説明の便宜上、「移動対象」を操作対象領域のみで説明するが、項目自体を移動(スクロール)させる場合も同様の原理でサブ表示部は動作する。
図8(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つ分移動する。
図9(a)において矢印AR1に示す下から上の向き(反時計回り方向)にセンサ素子がなぞられたとすると、(b)で示したように各センサ素子のうちセンサ素子R4、R3、R2、R1がこの順に接触を検知し、この場合、下から上へ、隣接するセンサ素子を3つ遷移する接触のため、(c)のように上方に向かって項目LS4から項目LS1まで操作対象領域が3つ分移動する。
同様に、同図(a)において矢印AR2に示す下から上の向き(時計回り方向)にセンサ素子がなぞられたとすると、(b)で示したように各センサ素子のうちセンサ素子L1、L2、L3、L4がこの順に接触を検知し、この場合、矢印AR1と同じく下から上へ、隣接するセンサ素子を3つ遷移する接触のため、(c)のように上方に向かって項目LS4から項目LS1まで操作対象領域が3つ分移動する。
このように、「半周内検出モード」では、各センサ素子群内において、ある1つのセンサ素子(例えばR2)への接触だけでは移動として検出されず、当該センサ素子から隣接するセンサ素子(例えば、R3)へと接触が遷移して、はじめてその方向に1素子分(サブ表示部ELDにおける1項目分)の移動として検出する。したがって、離間部SP1またはSP2を跨る隣接する2つのセンサ素子間の接触遷移、すなわちL4−R1間の接触遷移、L1−R4間の接触遷移は、無効と判定され、移動としては検出されない。
なお、離間部SP1またはSP2を跨る接触遷移でも、同一センサ素子群内において隣接するセンサ素子間の遷移があれば、当該センサ素子群における接触遷移は有効と判定されて、その接触遷移方向への移動として検出される。したがって、例えばR3→R4→L1と接触が遷移した場合には、R3→R4の遷移は有効、R4→L1の遷移は無効と判定されて、サブ表示部ELDにおいて操作対象領域が下方へ1項目分移動することになる。また、R1から時計回りにL4まで接触が遷移した場合には、R1からR4までの遷移は有効、R4→L1の遷移は無効、L1からL4までの遷移は有効と判定されて、サブ表示部ELDにおいて操作対象領域が下方へ3項目分移動した後、上方へ3項目分移動して、元の位置に戻ることになる。
図10は、「半周内検出モード」の他の例を説明するもので、センサ素子検出状態を単一素子検出状態だけでなく、隣接する2つの素子を更に検出している複数素子検出状態を判定するようにして16個に分割して示した概念図である。図5の構成とほぼ同様であるが、ここでは、第1のセンサ素子群G1と第2のセンサ素子群G2との間にもタクトスイッチが設けられている構成、即ち、センサ素子L4とセンサ素子R1との間にタクトスイッチSW3と、センサ素子R4とセンサ素子L1との間にタクトスイッチSW4とが設けられている構成で説明する。
制御部110は、図10に示すように、単一のセンサ素子のみが接触を検出するR1検出、R2検出、R3検出、R4検出、L1検出、L2検出、L3検出、L4検出の他に、隣接する2つのセンサ素子の接触を検出するR1−R2検出、R2−R3検出、R3−R4検出、L1−R4検出、L1−L2検出、L2−L3検出、L3−L4検出、L4−R1検出の合計16個の検出状態を管理できる。すなわち、この「半周内検出モード」では、センサ素子の1つのみについて操作状態を検出している単一素子検出状態と、隣接する2つのセンサ素子の操作状態を検出している隣接素子検出状態とを検出できるようにして、センサ素子検出状態を16個にすることによって、より精密な制御を可能としている。
8個のセンサ素子の検出状態を1個ずつ管理すると、8個の検出状態を管理できる。しかしながら、8個の検出状態では、状態の数、即ち、状態変化が少ないため、あまり精密な制御はできない。また、携帯性が問われる携帯電子機器においては、センサ素子のサイズ自体も小さいため、センサ素子間にまたがってセンサ素子に接触する場合があり、その際に、例えばセンサ素子L2、L3の順に接触が検出された場合には、上方への移動指示となってしまい、ユーザの意図しない動作となる恐れがある。このようなセンサ素子への接触検出を適切に処理するためには、16個の検出状態で2つまたは3つの検出状態変化(移動)を検出するまで、移動指示の確定を保留する必要がある。以下、移動指示の確定を保留する処理を、フローチャートを参照して詳細に説明する。
図11は、16個の検出状態における移動確定処理(即ち、保留処理)の一例を示すフローチャートであって、いずれか1個の検出状態がキューQUEに発生することを検出する毎に、このフローチャート処理をタッチセンサドライバTSDが行う。リリースされた状態から最初に検出した位置(16個のいずれか1つの検出状態)を最初の基準点とする。この基準点、現在の検出位置(キューQUEに新たに入れられた検出状態)、前回の検出位置(キューQUEに残されている1つ前の検出状態)の3つから、移動距離(検出状態の遷移)を判定する。図に示すように、ステップS10では、前回の位置がリリースされたか否かを判定する。リリースされていると判定された(キューQUEに残っている前回のデータが「リリース」である)場合は、ステップS12に進み、現在の検出位置がリリースされたか否か(即ち、新たに入れられたデータが「リリース」であるか否か)を判定する。現在の検出位置がリリースされていると判定された場合は処理を終了し、そうでない場合はステップS14に進み、基準点と前回の検出位置を現在の検出位置に設定する。
ステップS10で前回の位置がリリースされていないと判定された(即ち、他に検出が生じており、今回の検出がそれに引き続くものである場合)場合は、ステップS16に進み、現在の検出位置がリリースされたか否か(即ち、新たに入れられた信号が「リリース」であるか否か)を判定する。現在の検出位置がリリースされていると判定された場合は、基準点と前回の検出位置を初期化(クリアー)して処理を終える(ステップS18)。ステップS16で現在の検出位置がリリースされていないと判定された場合は、前回の検出位置と現在の検出位置との距離を計算して(ステップS20)、計算した距離が1または2であるか否かを判定する(ステップS22)。計算した距離が1または2ではないと判定された場合は、センサ素子を飛ばして不連続な検出状態であると判定し(ステップS24)、基準点を現在の検出位置に設定し、ステップ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では、次回の処理のために「前回の検出位置」を「現在の検出位置」に設定して、処理を終える。
図12は、図11のフローチャートの処理を図10のセンサ素子L1からL4への接触に適用した場合の確定処理を説明する図である。図に示すように、検出状態変化は、「L1検知」、「L1−L2検知」、「L2検知」、「L2−L3検知」、「L3検知」、「L3−L4検知」、「L4検知」となる。即ち、単一素子検出状態と複数素子検出状態とをL1からL4まで繰り返し検知する。まず、初めの「L1検知」が基準点BP1に設定される(S14)。次に「L1−L2検知」が生じると、前回の位置がリリースではなく「L1検知」であるため、前回の位置と今回検出された現在位置とを比較する(S22)。ここではL1からL1−L2への1コマの移動であり、「1または2か?」の判定条件を満たすため有効とされ、今度は基準点と現在位置とを比較する(S30)。ここでは、基準点も前回位置も同じL1に設定されているため、やはり移動量は1コマであり、この段階では移動は確定せず、現在位置のL1−L2検知状態を前回位置PP1とする(S36)。
さらに「リリース」が途中で生じることなく「L2検知」が生じると、前回の位置が「L1−L2検知」であるため、前回の位置と今回検出された現在位置CP1とを比較する(S22)。ここではL1−L2からL2への1コマの移動であり、「1または2か?」の判定条件を満たすため有効とされ、今度は、基準点と現在位置とを比較する(S30)。今回も基準点はL1検知時と変わらず同じL1に設定されているため、L2との位置関係は2コマであるため、移動量は2コマと判定される。そして、ここで初めて移動が確定する(S32)。そして、次の判定のために、基準点BP2を「L1検知」から移動方向に2コマ遷移させた点、すなわち「L2検知」に設定する(S34)とともに、前回位置を現在位置「L2検知」に再度設定し直して、確定処理1が完了する(S36)。
このように、タッチセンサドライバTSDは、2コマの検知状態の遷移を検出することにより、移動「1」が決定される。つまり、ステップS32において移動が確定されると、結果通知部NTFに移動方向成分(L1からL4に向かう時計回り方向)および「1」の移動を格納すると共に、ベースアプリBAに対して記憶内容の更新を通知し、ベースアプリBAはこの更新内容を抽出してサブ表示部表示アプリAP1などに通知することになる。サブ表示部表示アプリAP1が使用中ならば、移動方向成分に基づいて「下から上に向かう方向」に、「1」の移動量か与えられているので、これに見合った処理として、サブ表示部ELDの表示を変化させる。具体的には図8(c)に示すようなリスト表示を行っていて、操作対象領域がLS4に位置している場合には、確定処理1に基づき操作対象領域はLS3に移動することとなる。ところで、この確定処理1と同様に第2のセンサ素子群であるR1〜R4に対して、「R4検知」状態から連続して「R4−R3検知」「R3検知」と継続して検知状態が遷移したときにもタッチセンサドライバTSDからは移動方向成分に基づいて「下から上に向かう方向」および、「1」の移動量の付与の情報がベースアプリ経由でサブ表示部表示アプリAP1に与えられ、リスト表示の画面表示上は第1のセンサ素子群における操作と同じように、操作対象領域は項目LS4からLS3に変化することとなる。
次に、確定処理1に引き続き、「リリース」が生じることなく指の移動が継続した場合を説明する。確定処理1の場合と同様、図中の確定処理2に示すように、検知状態が、基準点BP2から2コマ進み、「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」の移動量を確保することができ、ユーザの不正確な操作にも無反応などとなることなく、ユーザの希望に沿う形で対応できることとなる。
また、携帯電話機を携帯するユーザが、振動の生じやすい場所にて操作を行ったときに、外部振動によって指の移動中に、一瞬、センサ部120から指が離れる場合などが考えられる。このような場合に、センサ素子数分についてのみを検知するという単一素子検出のみを行って移動検出する粗い検知方式ならば、検知漏れが生じにくいが、単一素子検出だけでなく複数素子検出状態も検知するような緻密な検知方式とした場合、瞬間的に指が離れただけでも指は回転動作を継続中であるために検知状態を1つ飛ばしてしまう場合も考えられる。しかしながら、ステップS22にて「前回位置と現在位置の距離が1か2か?」としたことにより、前回位置から2移動している場合、つまり前回位置から1つ飛ばしても連続移動検出状態として扱うことができるため、振動下においてもユーザの希望した動作に極力近づけることができる。
なお、ステップS30において距離2コマだけでなく3コマについても有効としていることからも、振動などで指が一瞬はずれたり、素早い操作で検出状態が1つ飛んで検出されたりした場合などにも移動操作を検出することができる。さらに、3コマの移動量検出でも、次の2コマのときと同様に「1」の移動量確定とするだけでなく、次回検出のための基準点の設定は2コマ移動のときと同様に前回基準点に対して2コマのみ移動させるにとどめているため、3コマ検出による移動確定を行った場合でも、センサ素子数nから1を引いた「n−1」の移動確定する量を確保することができ、ユーザにとってはいかなる触り方をしても同じ操作感という安定した操作感を得ることができるようになる。
このように、複数のセンサ素子のうちの1つのみについて操作状態を検出している単一素子検出状態と、複数のセンサ素子のうちの隣接する2つのセンサ素子の操作状態を検出している隣接素子検出状態を検知し、単一素子検出状態と隣接素子検出状態との組合せにより、移動を決定することによって、ユーザの意図した通りの操作感覚が得られ、また、デバイスに手を加えることなく、より緻密な移動検出ができる。さらに、同時に2箇所の異なるポイントを触ったことによる誤動作も防止でき、単に触れただけや、ノイズなどの影響による誤検出も防止できる。
また、画面上には5つ以上の選択項目を表示させる場合であって、4つの素子だけでの検出を行うような場合には、選択項目の最下段を選択させるためには、何度か上段素子から下段素子まで指をなぞらせなければならないが、この「半周内検出モード」では、例えば2つの素子で最大2コマの移動量を与えるようにすることによって、なぞる回数を少なくすることができる。すなわち、少ないセンサ素子数で多種類の移動パラメータを提供することにも転用できる。
次に、「周回検出モード」について説明する。「周回検出モード」は、例えば上述したロックセキュリテイアプリAP2の実行中において、セキュリティロックを解除する場合などに、センサ部120における接触操作の周回数および周回方向を検出するものである。
図13は、「周回検出モード」の一例を説明するもので、図10と同様に、センサ素子検出状態を単一素子検出状態と複数素子検出状態とを含む16個に分割して示した概念図である。本実施の形態では、環状に配されたセンサ素子L1〜L4,R1〜R4を一つのセンサ素子群として捉え、このセンサ素子群における一のセンサ素子が接触を検出し、かつ、当該一のセンサ素子の位置を基点として、該基点から時計回りにおいて一つ手前の位置までの複数のセンサ素子が、所定時間(例えば、数秒)内に連続して順に接触を検出したのを検知して、時計回りの一周の接触操作を検出する。
例えば、図13において、時計回りの周回を検出する場合、リリースしている状態から最初に指が触れられたプレス位置がL1検出位置であったときは、L1を基点として、所定時間内に時計回りにL1から一つ手前のセンサ素子R4による接触検出を含むR3−R4検出位置まで、連続して順に接触が検出されたのを検知して、時計回りに一周の接触操作がされたと検出し、その後リリースされることなく、引き続いてL1からR3−R4検出位置まで所定時間内に連続して順に接触が検出されたのを検知したら、次の時計回りの一周の接触操作がされたと検出する。以後、センサ素子群から指がリリースされるまで、同様の動作を繰り返す。
図14は、この場合のフローチャートを示すものである。先ず、ロックセキュリテイアプリAP2の実行中において、セキュリティロックの解除処理が選択されたら、図1に示した記憶部140の保存領域142に格納する周回数を初期化する(S41)。その後、ユーザによるセンサ部120の接触が開始されたら(S43)、最初に指が触れたプレス位置を周回の基点(スタート位置)として保存領域142に保持する(S45)。ここでは、最初にL1検出位置に触れたとして、位置L1を基点として保持する。
その後、制御部110では、キューQUEから読み出した接触信号の変化からユーザによる周回操作が開始されたのを検知して、接触の遷移方向すなわち周回方向を検出し(S47)、その検出した周回方向とステップS45で保持した基点とから、一周検出の終点となる基点位置から一つ手前の位置をエンド位置と決定して、その位置を保存領域142に保持する(S49)。この例では、基点がL1で、周回方向が時計回りであるから、センサ素子L1から時計回りに1つ手前のセンサ素子R4による接触検出位置を含むR3−R4検出位置がエンド位置R4として決定されて保持される。
その後、周回検出処理における周回方向を時計回りに保持した状態で(S51)、キューQUEから読み出した接触信号の順次の変化に基づいて、所定時間内に基点L1から時計回りのエンド位置R4を含むR3−R4検出位置まで、センサ素子が連続して順に接触を検出したか否かを検出し(S53)、順に接触が検出された場合には時計回りに1周したと検出して(S55)、周回数カウンタをカウントアップする(S57)。その後、接触信号に基づいて、指がリリースされたか否かを判定し(S59)、リリースされていなければステップS53に移行して、1周目と同じ位置L1を基点として次の時計回りの周回を検出する。
一方、ステップS53において、所定時間内に基点L1から時計回りのエンド位置R4を含むR3−R4検出位置まで、センサ素子が連続して順に接触を検出しなかった場合や、ステップS59においてリリースされたと判定された場合には、その時点の周回数カウンタにおけるカウント値を出力して(S61)、周回検出処理を終了する。
このように、本実施の形態においては、「周回検出モード」において、環状に配されたセンサ素子L1〜L4,R1〜R4の一のセンサ素子(例えば、L1)が接触を検出したら、当該一のセンサ素子の位置を基点として、該基点から時計回りにおいて一つ手前のセンサ素子による検出位置を含む位置(例えば、R3−R4)までの複数のセンサ素子が、所定時間内に連続して順に接触を検出したのを検知して、時計回りの一周を検出するようにしたので、例えばRFIDを用いた課金サービスのロックセキュリティアプリによりセキュリティロックを解除する、などの処理を行うことも可能となる。
また、同方向への2周目以降の検知に関しては、基点を変更しないようにしているので、ユーザに違和感を与えることもない。すなわち、もし、基点を1周目の検出完了位置とすると、2周目はさらにその手前の位置で検知を行うこととなってしまい、3周目、4周目と継続するとだんだんと検知位置が基点方向に遡ってしまい、最後には10周検知を9周でできてしまう、ということになりかねず、ユーザに違和感を与えることになる。本実施の形態では、このような問題が生じないようにするために、各周の検知開始位置として1周目検出開始時の基点を保持するようにしている。
さらに、周回操作の場合には、ユーザ側からすると、カーソルを移動させる場合とは異なり、素早い操作であってもセンサ素子群を指でなぞって周回すれば済むので、アバウトな操作がされがちになる。このため、ユーザが正確にスタート位置(プレス位置)を記憶していても、指が正確に周回されずに、スタート位置の手前でセンサ素子群から離れる(リリースされる)場合が生じ易くなって、周回操作が検知されず、ユーザに何度もリトライを強いることになり、ユーザに不快感を与えるなど、操作性が低下することが懸念される。本実施の形態では、スタート位置から周回方向に一つ手前のセンサ素子による検出位置までを一周として検知するので、ユーザがスタート位置を正確に記憶することなく、アバウトに時計周りに周回操作を行った場合でも、確実に周回操作を検知することが可能となる。したがって、操作性を向上でき、ユーザに何度もリトライを強いるような不快感を与えることを回避することが可能となる。
なお、上記の説明では、周回方向を時計回りとしたが、反時計回りの場合も同様であり、また周回のエンド位置も、基点から周回方向の1つ手前に限らず、2以上手前とすることも可能である。また、最初に指が触れたプレス位置が、例えばL1−L2検出位置の場合には、一方を基点とするように予め決めておいても良いし、一度決定した基点を周回方向に応じて変更するようにしても良い。例えば、L1−L2検出位置の場合は、基点をL1と予め決定し、その後、周回方向が時計回りと検出された場合には、基点をL1そのままとして、エンド位置を一つ手前の場合にはR4と決定し、周回方向が反時計回りと検出された場合には、基点をL1からL2に変更して、エンド位置を一つ手前の場合にはL3と決定する。これにより、複数素子検出状態で最初の接触が生じても、基点を確実にすることができ、所定数のカウントがセンサ素子単位で行えるため容易になる。しかも、いずれの周回方向に対しても同じ数分、手前の位置にエンド位置を設定できるため、複数素子検出状態で最初の接触が生じても、ユーザにとっては周回方向がいずれであっても同じ操作感を得ることができ、不安を覚えることがなくなる。
さらに、本実施の形態では、隣接する2つのセンサ素子が同時に接触を検出する複数素子検出状態を含む16個のセンサ素子検出状態を監視して周回を検出するようにしたが、単一のセンサ素子のみが接触を検出する8個のセンサ素子検出状態を監視して周回を検出することもできる。
最後に、携帯電話端末100の筐体が開状態から閉状態に遷移したときのタッチセンサモジュールTSMとサブ表示部ELDの処理を時間の経過とともに説明する。
先ず、閉状態が生じると、タッチセンサモジュールTSMの電源供給が開始される。タッチセンサモジュールTSMは、静電容量式タッチセンサが用いられている場合にはキャリブレーションのためにしばらく時間を要する。このようなキャリブレーション中にはタッチセンサは使用できないため、サブ表示部ELDが選択項目などの表示を行っても、タッチセンサによる操作が行えず、ユーザにとって違和感を覚えてしまう。これを解決するために、サブ表示部ELDはタッチセンサモジュールTSMの電源供給開始から少し遅延して電源供給が開始されてタッチセンサのキャリブレーション完了後に描画が開始されるようにしている。すなわち、サブ表示部ELDの表示完了前に、すでにタッチセンサのキャリブレーションが完了している期間が生じうる。また、タッチセンサによる操作が生じるとサブ表示部ELDの表示上に変化をつけるような処理を行う場合、一周を検出を行うためにタッチセンサを操作するユーザにとっては、表示上で変化が生じていないにも拘わらず基点設定が行われたならば、一体どこまでなぞれば一周の検出がなされるのかがわからない、という問題が生じうる。
よって、本実施の形態においては、タッチセンサの接触検出が生じても、サブ表示部ELDの表示が完了するまでの間は、周回検出のための基点の設定を行わず、サブ表示部ELDが表示可能な状態となってから基点の設定を行い、これとともに接触検出に伴う表示がなされるよう構成することが好ましい。これにより、ユーザは、周回操作時における基点の位置を把握し易くなる。
なお、本発明は、上記実施の形態に限定されるものではなく、発明の趣旨を逸脱しない範囲で種々変更可能である。例えば、上記実施の形態では、一のセンサ素子の位置を基点として、該基点から所定の周回方向において所定数手前の位置までを一周として検出するようにしたが、一のセンサ素子の位置を基点として、該基点から所定の周回方向において基点までを一周として検出するように構成することもできる。この場合において、例えば上記実施の形態で説明したように、複数素子検出状態を含む16個のセンサ素子検出状態を監視して周回を検出する場合には、一のセンサ素子(例えば、L1)が接触を検出したら、当該一のセンサ素子の位置を基点として、該基点から例えば時計回りにおいて当該一のセンサ素子による検出位置を含む位置(例えば、L1−R4)までの複数のセンサ素子が連続して順に接触を検出したのを検知して、時計回りの周回を検出することができる。また、基点についても、上述した実施の形態の場合と同様に、最初に指が触れたプレス位置が、例えばL1−L2検出位置の場合には、一方を基点とするように予め決めておいても良いし、一度決定した基点を周回方向に応じて変更するようにしても良い。例えば、L1−L2検出位置の場合は、基点をL1と予め決定し、その後、周回方向が時計回りと検出された場合には、基点をL1そのままとして、エンド位置をL1を含む位置(L1−R4)と決定し、周回方向が反時計回りと検出された場合には、基点をL1からL2に変更して、エンド位置をL2を含む位置(L2−L3)と決定することもできる。もちろん、この場合においても、単一のセンサ素子のみが接触を検出する8個のセンサ素子検出状態を監視して周回を検出することもできる。
また、本発明において、複数のセンサ素子は、ほぼ円環状に限らず、矩形状、多角形状など、環状であれば任意のパターンで配することができるし、その数も8個に限らず、任意の複数個とすることができる。また、複数のセンサ素子は、環状の配置であれば、中央部が抜けたドーナツ形状でなくてもよい。さらに、センサ素子は、静電容量式の接触センサや前述した薄膜抵抗式に限らず、受光量の変動によって接触を検知する光学方式、表面弾性波の減衰によって接触を検知するSAW方式、誘導電流の発生によって接触を検知する電磁誘導方式のセンサ素子を用いることもできるし、接触センサのタイプによっては、指以外の専用ペンなどの指示器具を使用するものも用いることもできる。また、本発明は、携帯電話端末に限らず、PDA(パーソナルデジタルアシスタンス)、携帯ゲーム機、携帯オーディオプレイヤ、携帯ビデオプレイヤ、携帯電子辞書、携帯電子書籍ビューワなどの携帯電子機器に広く適用することできる。