IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ソニーセミコンダクタソリューションズ株式会社の特許一覧

<>
  • 特開-電子機器、及び制御方法 図1
  • 特開-電子機器、及び制御方法 図2
  • 特開-電子機器、及び制御方法 図3
  • 特開-電子機器、及び制御方法 図4
  • 特開-電子機器、及び制御方法 図5
  • 特開-電子機器、及び制御方法 図6
  • 特開-電子機器、及び制御方法 図7
  • 特開-電子機器、及び制御方法 図8
  • 特開-電子機器、及び制御方法 図9
  • 特開-電子機器、及び制御方法 図10
  • 特開-電子機器、及び制御方法 図11
  • 特開-電子機器、及び制御方法 図12
  • 特開-電子機器、及び制御方法 図13
  • 特開-電子機器、及び制御方法 図14
  • 特開-電子機器、及び制御方法 図15
  • 特開-電子機器、及び制御方法 図16
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023114636
(43)【公開日】2023-08-18
(54)【発明の名称】電子機器、及び制御方法
(51)【国際特許分類】
   G06F 3/0488 20220101AFI20230810BHJP
   G06F 3/04847 20220101ALI20230810BHJP
   G10K 15/04 20060101ALI20230810BHJP
   H04R 1/10 20060101ALI20230810BHJP
【FI】
G06F3/0488
G06F3/0484 170
G10K15/04 302F
H04R1/10 104E
【審査請求】未請求
【請求項の数】11
【出願形態】OL
(21)【出願番号】P 2022017063
(22)【出願日】2022-02-07
(71)【出願人】
【識別番号】316005926
【氏名又は名称】ソニーセミコンダクタソリューションズ株式会社
(74)【代理人】
【識別番号】100121131
【弁理士】
【氏名又は名称】西川 孝
(74)【代理人】
【識別番号】100082131
【弁理士】
【氏名又は名称】稲本 義雄
(74)【代理人】
【識別番号】100168686
【弁理士】
【氏名又は名称】三浦 勇介
(72)【発明者】
【氏名】松崎 誠
【テーマコード(参考)】
5D005
5D208
5E555
【Fターム(参考)】
5D005BB03
5D208DA01
5D208DA05
5E555AA15
5E555BA06
5E555BA17
5E555BB06
5E555BB17
5E555BC01
5E555CA12
5E555CB14
5E555CB15
5E555CB18
5E555CB57
5E555CB76
5E555CC01
5E555DA23
5E555DA31
5E555DD11
5E555EA14
5E555FA00
(57)【要約】
【課題】継続的な長押し状態を検知することができるようにする。
【解決手段】ユーザのタッチ操作に応じた操作信号を出力する操作部と、出力される操作信号に基づいて、タッチ操作に応じたコマンドを検出する検出部と、検出されるコマンドに応じた処理を実行する制御部とを備え、検出部は、タッチ操作として長押し操作を検知する場合、コマンドの区切りを検出した際に、内部状態を初期化するとともに、継続的な長押し状態に応じた割り込みを制御部に通知し、制御部は、通知される割り込みに応じた処理を実行する電子機器が提供される。本開示は、例えば、ワイヤレスイヤホン等の電子機器に適用することができる。
【選択図】図6
【特許請求の範囲】
【請求項1】
ユーザのタッチ操作に応じた操作信号を出力する操作部と、
出力される前記操作信号に基づいて、前記タッチ操作に応じたコマンドを検出する検出部と、
検出される前記コマンドに応じた処理を実行する制御部と
を備え、
前記検出部は、前記タッチ操作として長押し操作を検知する場合、前記コマンドの区切りを検出した際に、内部状態を初期化するとともに、継続的な長押し状態に応じた割り込みを前記制御部に通知し、
前記制御部は、通知される前記割り込みに応じた処理を実行する
電子機器。
【請求項2】
前記検出部は、
前記タッチ操作の時間を計測する操作時間カウンタと、
前記操作時間カウンタの初期値を保持するカウンタ初期値保持部と
を有し、
前記操作時間カウンタが満了したとき、前記操作時間カウンタを、前記カウンタ初期値保持部に保持された前記初期値に初期化して、前記割り込みを通知する
請求項1に記載の電子機器。
【請求項3】
前記検出部は、
前記カウンタ初期値保持部に保持された前記初期値を動的に変更するカウンタ初期値制御部をさらに有し、
動的に変更される前記初期値に応じて、通知する前記割り込みの周期を変更する
請求項2に記載の電子機器。
【請求項4】
前記検出部は、
前記操作時間カウンタの満了状態を保持するカウンタ満了状態保持部をさらに有し、
前記操作時間カウンタの満了状態に応じて、前記割り込みの通知機能を有効又は無効にする
請求項2に記載の電子機器。
【請求項5】
前記検出部は、
前記コマンドの区切りを検出し、検出した前記コマンドの区切りに応じた前記割り込みを通知するコマンド区切り検出部をさらに有し、
前記コマンド区切り検出部は、前記操作信号に基づいて、タッチ状態の開始と終了が検知されたタイミングに応じて前記割り込みを通知し、
前記操作時間カウンタの満了状態に応じて、前記コマンド区切り検出部を有効又は無効にする
請求項4に記載の電子機器。
【請求項6】
前記検出部は、
前記タッチ操作の回数を計測する操作回数カウンタをさらに有し、
前記操作時間カウンタが満了状態となったとき、前記コマンド区切り検出部を有効にし、前記コマンド区切り検出部から前記割り込みが通知され、前記操作回数カウンタにより計測された操作回数が更新されるとき、前記コマンド区切り検出部を無効にする
請求項5に記載の電子機器。
【請求項7】
前記制御部は、CPU(central processing unit)を含み、
前記CPUは、通知される前記割り込みに応じて稼働し、
前記CPUの稼働状態に応じてUX(user experience)処理が実行される
請求項3に記載の電子機器。
【請求項8】
前記UX処理は、コンテンツの音量を調整するボリューム調整処理を含み、
前記CPUは、ボリューム上限値と現在のボリューム値との関係に基づいて、前記初期値が動的に変更されるように制御する
請求項7に記載の電子機器。
【請求項9】
前記UX処理は、コンテンツの再生速度を調整する再生速度調整処理を含み、
前記CPUは、再生速度を調整する際の単位時間あたりのステップ幅に基づいて、前記初期値と前記ステップ幅が動的に変更されるように制御する
請求項7に記載の電子機器。
【請求項10】
前記検出部は、
出力される前記操作信号に基づいて、前記タッチ操作の時間及び回数を検出し、
検出した前記タッチ操作の時間及び回数を保持するレジスタを含み、
前記制御部は、前記レジスタから取得した前記タッチ操作の時間及び回数に基づくコマンドを外部のデバイスに送信する
請求項1に記載の電子機器。
【請求項11】
ユーザのタッチ操作に応じた操作信号を出力する操作部と、
出力される前記操作信号に基づいて、前記タッチ操作に応じたコマンドを検出する検出部と、
検出される前記コマンドに応じた処理を実行する制御部と
を備える電子機器において、
前記検出部が、前記タッチ操作として長押し操作を検知する場合、前記コマンドの区切りを検出した際に、内部状態を初期化するとともに、継続的な長押し状態に応じた割り込みを前記制御部に通知し、
前記制御部が、通知される前記割り込みに応じた処理を実行する
制御方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、電子機器、及び制御方法に関し、特に、継続的な長押し状態を検知することができるようにした電子機器、及び制御方法に関する。
【背景技術】
【0002】
近年、ユーザによる操作面に対するタッチ操作に応じた動作を行う電子機器が普及している(例えば特許文献1参照)。タッチ操作には様々な種類の操作があるが、ユーザの指が操作面に一定時間触れてから離す操作である長押し操作が行われる場合がある。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2009-032258号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
タッチ操作として長押し操作を検知する場合、長押し操作が行われたことを検知するだけでなく、継続的な長押し状態を検知するための技術が求められる。
【0005】
本開示はこのような状況に鑑みてなされたものであり、継続的な長押し状態を検知することができるようにするものである。
【課題を解決するための手段】
【0006】
本開示の一側面の電子機器は、ユーザのタッチ操作に応じた操作信号を出力する操作部と、出力される前記操作信号に基づいて、前記タッチ操作に応じたコマンドを検出する検出部と、検出される前記コマンドに応じた処理を実行する制御部とを備え、前記検出部は、前記タッチ操作として長押し操作を検知する場合、前記コマンドの区切りを検出した際に、内部状態を初期化するとともに、継続的な長押し状態に応じた割り込みを前記制御部に通知し、前記制御部は、通知される前記割り込みに応じた処理を実行する電子機器である。
【0007】
本開示の一側面の制御方法は、ユーザのタッチ操作に応じた操作信号を出力する操作部と、出力される前記操作信号に基づいて、前記タッチ操作に応じたコマンドを検出する検出部と、検出される前記コマンドに応じた処理を実行する制御部とを備える電子機器において、前記検出部が、前記タッチ操作として長押し操作を検知する場合、前記コマンドの区切りを検出した際に、内部状態を初期化するとともに、継続的な長押し状態に応じた割り込みを前記制御部に通知し、前記制御部が、通知される前記割り込みに応じた処理を実行する制御方法である。
【0008】
本開示の一側面の電子機器、及び制御方法においては、ユーザのタッチ操作に応じた操作信号を出力する操作部と、出力される前記操作信号に基づいて、前記タッチ操作に応じたコマンドを検出する検出部と、検出される前記コマンドに応じた処理を実行する制御部とが設けられ、前記検出部によって、前記タッチ操作として長押し操作が検知される場合、前記コマンドの区切りが検出される際に、内部状態が初期化されるとともに、継続的な長押し状態に応じた割り込みが前記制御部に通知され、前記制御部によって、通知される前記割り込みに応じた処理が実行される。
【0009】
なお、本開示の一側面の電子機器は、独立した装置であってもよいし、1つの装置を構成している内部ブロックであってもよい。
【図面の簡単な説明】
【0010】
図1】本開示を適用した電子機器10の構成例を示すブロック図である。
図2】検出部12Aの構成例を示すブロック図である。
図3】検出部12Aにより実現される回路例を示す図である
図4】検出部12Aが継続的な長押し状態の検知を行う場合の動作を示したタイミングチャートである。
図5】ソフトウェアによるポーリング処理で長押し状態の継続を判定する場合の動作を示したタイミングチャートである
図6】検出部12Bの構成例を示すブロック図である。
図7】検出部12Bが継続的な長押し状態の検知を繰り返し行う場合の動作を示したタイミングチャートである。
図8】検出部12Bが継続的な長押し状態において初期状態を動的に変更する場合の動作を示したタイミングチャートである。
図9】本開示を適用したワイヤレスイヤホン10Aの外観構成例を示す図である。
図10】ワイヤレスイヤホン10Aの構成例を示すブロック図である。
図11】ボリュームアップ処理の流れを説明するフローチャートである。
図12】継続的な長押し状態においてカウンタの初期値を動的に変更したときのボリュームアップ処理のタイミングを示したタイミングチャートである。
図13】ボリュームアップ処理によるボリューム値の変化を示す図である。
図14】FF処理の流れを説明するフローチャートである。
図15】継続的な長押し状態においてカウンタの初期値を動的に変更したときのFF処理のタイミングを示したタイミングチャートである。
図16】FF処理のステップ幅の変化を示す図である。
【発明を実施するための形態】
【0011】
<装置構成>
図1は、本開示を適用した電子機器10の構成例を示すブロック図である。
【0012】
電子機器10は、ユーザのタッチ操作に応じて動作する機器である。図1において、電子機器10は、操作部11、検出部12、制御部13、及び電源部14を有する。
【0013】
操作部11は、ユーザの指等の操作面(筐体表面等)への接触による操作(タッチ操作)を検出する。操作部11は、例えば静電容量式や感圧式のタッチセンサ21を有するユーザインターフェース回路として構成される。操作部11は、タッチセンサ21により検出したタッチ操作に応じた信号(操作信号)のシーケンスを、検出部12に出力する。
【0014】
操作信号のシーケンスは、操作面へのタッチ操作がない状態を示す値(例えばL又は0レベル)と、操作面へのタッチ操作がある状態を示す値(例えばH又は1レベル)とからなる。例えば、ユーザの指が操作面に接触している間、連続的なHレベルの信号シーケンスを出力することができる。あるいは、所定の動作クロックに応じたパルス状の信号シーケンスを連続的に出力するように構成してもよい。
【0015】
検出部12は、操作部11から出力される操作信号のシーケンスに基づいて、制御部13に対するコマンドを検出する。検出部12は、消費電力ができるだけ低く抑えられるように、典型的にはプログラムを実行可能なCPU(central processing unit)等の高性能な演算回路を含まないコマンド検出回路として構成される。また、検出部12は、操作信号のシーケンスに基づいて、タッチ操作の時間及び回数を取得又は算出し、これらを所定のタイミングでレジスタ31に書き込んで保持する。レジスタ31は、制御部13により参照可能に構成されている。
【0016】
検出部12は、操作信号のシーケンスにおいて、Hレベルの後、Lレベルが所定の時間継続した場合に、その時点までのシーケンスに何らかのコマンドが含まれることを認識する。つまり、検出部12は、操作信号のシーケンス中の無信号の状態の持続時間の長短に従ってタッチ操作の区切りを検出することにより、操作信号のシーケンス中のコマンドを検出する。検出部12は、コマンドを検出したと判定した場合、コマンド検出信号を制御部13に出力する。
【0017】
制御部13は、電子機器10の動作を統括的に制御する。制御部13は、CPU41とその利用に供されるメモリ42を有するプロセッサモジュールとして構成される。メモリ42には、制御プログラムや種々のデータなどが格納される。
【0018】
制御部13は、制御プログラムを実行し、当該制御プログラムの実行に従って所定の機能を実現する。例えば、制御部13は、検出部12から出力されるコマンド検出信号を受け取った場合、レジスタ31に保持された内容をフェッチ(取得)してコマンド解釈処理を行い、その結果得られるコマンドを、対象の回路(通信モジュール等)に出力する。
【0019】
電源部14は、電子機器10内の各部に必要な電力を供給する。例えば、電源部14は、リチウムイオン電池などの二次電池である。あるいは、電源部14は、外部からのワイヤレス給電による充填が可能なワイヤレス給電部(図示せず)を含んで構成されてもよい。
【0020】
<検出部構成の第1の例>
図2は、図1の検出部12の構成の第1の例を示すブロック図である。
【0021】
図2に示すように、検出部12Aは、レジスタ31の他に、エッジ検出部111、操作時間カウンタ112、操作回数カウンタ113、コマンド区切り検出部114、タイムアウト検出部115、及び出力制御部116を有する。
【0022】
エッジ検出部111は、操作信号のシーケンスにおける信号の立ち上がりと立ち下がりのエッジを検出する。エッジ検出部111は、立ち上がり検出部121と立ち下がり検出部122を有する。
【0023】
立ち上がり検出部121は、操作信号のシーケンスにおける信号の立ち上がり(LレベルからHレベル)エッジを検出し、立ち上がりエッジを検出した場合、立ち上がり検出信号を出力する。立ち上がり検出信号は、操作時間カウンタ112、コマンド区切り検出部114、及びタイムアウト検出部115に出力される。
【0024】
立ち下がり検出部122は、操作信号のシーケンスにおける信号の立ち下がり(HレベルからLレベル)エッジを検出し、立ち下がりを検出した場合、立ち下がり検出信号を出力する。立ち下がり検出信号は、操作時間カウンタ112(の前段の遅延部123)、操作回数カウンタ113、コマンド区切り検出部114、及び出力制御部116に出力される。
【0025】
操作時間カウンタ112は、ユーザによりタッチ操作がなされた時間を計測するカウンタであり、計測した時間をタッチ操作の時間として保持する。保持されたタッチ操作の時間は、操作信号の立ち下がりの検出により読み出される。すなわち、操作時間カウンタ112は、立ち上がり検出部121からの立ち上がり検出信号を受け取ったとき、これをトリガにして、立ち下がり検出部122からの立ち下がり検出信号を受け取るまでの経過時間を計測する。
【0026】
ユーザによるタップ操作が早すぎる(接触時間が非常に短い)場合、タッチ操作がなされているにも拘わらず、タッチ操作の時間を正しく計測できないことになるため、立ち下がり検出信号に遅延を与える遅延部123が設けられている。
【0027】
操作回数カウンタ113は、立ち下がり検出部122からの立ち下がり検出信号を受け取るごとに、カウンタのカウント値をカウントアップし、一時的に保持する。保持されたカウント値は、後述するコマンド区切り検出部114によるコマンド区切りの検出又はタイムアウト検出部115によるタイムアウトの検出をトリガにして出力される。操作回数カウンタ113は、カウント値が読み出されると、カウンタのカウント値をリセットする。
【0028】
コマンド区切り検出部114は、操作信号のシーケンスにおけるコマンドの区切りを検出する。すなわち、コマンド区切り検出部114は、立ち下がり検出部122からの立ち下がり検出信号を受け取ったとき、これをトリガにして、Lレベルの状態が経過した時間を計測する。コマンド区切り検出部114による計測は、立ち上がり検出部121からの立ち上がり検出信号を受け取ることにより、一旦、リセットされる。
【0029】
コマンド区切り検出部114は、計測した経過時間が所定の閾値を超えると判定した場合には、ユーザのタッチ操作によるコマンド入力が完了したとみなして、コマンド検出信号を出力する。一方で、コマンド区切り検出部114は、計測した経過時間が所定の閾値を超える前に、立ち上がり検出信号を受け取った場合には、コマンド入力が完了していないと判定して、計測時間をリセットする。
【0030】
このように、コマンド区切り検出部114は、操作信号の直前の立ち下がりから所定の時間を経過したか否かを判定することにより、コマンドの区切りを検出している。例えば、ユーザのタッチ操作がダブルタップ操作等のようにいくつかの操作アクションの組み合わせである場合に、タップ後に間髪入れずに次のタップがなされるときなどに、コマンド区切り検出部114は、ユーザのタッチ操作が未だ継続中であると判定する。
【0031】
コマンド区切り検出部114からのコマンド検出信号は、タイムアウト検出部115及び出力制御部116とともに、制御部13に出力される。制御部13は、コマンド検出信号を受け取ったとき、レジスタ31を参照して、レジスタ31に保持された内容をフェッチしてコマンド解釈処理を実行し、解釈したコマンドを出力する。
【0032】
タイムアウト検出部115は、1つのタッチ操作(例えばダブルタップ操作は1つのタッチ操作である)が所定の有効操作時間内になされたか否かを監視し、当該所定の有効操作時間を経過した場合にタイムアウト信号を出力する。
【0033】
すなわち、タイムアウト検出部115は、立ち上がり検出部121からの最初の立ち上がり検出信号を受け取ったとき、これをトリガにして、経過時間を計測する。タイムアウト検出部115は、経過時間が所定の閾値を超えたと判定した場合、タイムアウト信号を出力する。また、タイムアウト検出部115は、コマンド区切り検出部114からコマンド検出信号を受け取ったとき、計測時間をリセットする。
【0034】
タイムアウト検出部115からのタイムアウト信号は、出力制御部116とともに、制御部13に出力される。制御部13は、タイムアウト信号を受け取ったとき、コマンド検出信号の代わりに、レジスタ31を参照して、レジスタ31に保持された内容をフェッチしてコマンド解釈処理を実行し、解釈したコマンドを出力する。
【0035】
出力制御部116は、操作時間カウンタ112により計測されたタッチ操作の時間、及び操作回数カウンタ113により計測されたタッチ操作の回数が、それぞれ所定のタイミングでレジスタ31の所定の出力先に出力されるように制御を行う。
【0036】
例えば、出力制御部116は、立ち下がり検出部122からの立ち下がり検出信号を受け取るごとに、操作時間カウンタ112から読み出されるタッチ操作の時間の出力先を選択的に順次切り替える。これにより、タッチ操作の時間(時間情報(1)~(n))は、レジスタ31の特定の格納領域に順番に書き込まれることになる。
【0037】
また、出力制御部116は、コマンド区切り検出部114からのコマンド検出信号を受け取ったとき、操作回数カウンタ113から読み出されるタッチ操作の回数がレジスタ31に出力されるように制御を行う。これにより、タッチ操作の回数(操作回数)は、レジスタ31の特定の格納領域に書き込まれ更新される。
【0038】
以上のようなハードウェア(HW:hardware)構成を有する検出部12Aにおいては、CPU41を含む制御部13に対するコマンドを検出するに際して、例えば、図3に示すような3つの回路のいずれかの回路又は全ての回路として動作することができる。すなわち、検出部12Aによって、タッチ回数計測回路、長押し検出回路、及びタッチオン・オフ検出回路の少なくともいずれかの回路を実現することができる。
【0039】
図3のAに示すように、タッチ回数計測回路では、操作回数カウンタ113がレジスタ31に保持された操作回数を更新することで、所定の期間内におけるタッチ操作の回数が計測される。ここでは、コマンド区切り検出部114がコマンド検出信号の割り込みを通知することで、CPU41は、レジスタ31に保持された操作回数に応じたコマンドを出力することができる。
【0040】
割り込みとは、CPU41が、検出部12から受け取る要求である。検出部12は、ハードウェアとして構成されるため、ハードウェア割り込み(外部割り込み)であるとも言える。CPU41は、割り込みを処理するための機能を有する。
【0041】
図3のAにおいて、黒丸TSは、ユーザの指が操作面に触れた状態、つまり接触時間の短いタッチ状態を表し、破線矩形c1は、図中の左から右の方向を時間方向としたときに検出部12Aがタッチ回数計測回路として動作していることを表している。図3のAでは、割り込みが通知されるタイミングで、ある期間内(例えば1秒間)にタッチ状態になった回数として、3回であるタッチ回数が計測される。
【0042】
図3のBに示すように、長押し検出回路では、ユーザの指の接触時間が長い操作である長押し操作が検知される。検出部12Aにおいては、長押し検出回路の実現方法として、操作時間カウンタ112のカウンタ満了時に割り込みを発生させる方法がある。
【0043】
図3のBにおいて、横棒TSは、接触時間の長いタッチ状態を表し、一点鎖線矩形c2は、検出部12Aが長押し検出回路として動作していることを表しており、一定期間(例えば2秒や3秒)においてタッチ状態が継続しているとき、長押し操作が検知され、そのタイミングでコマンド検出信号の割り込みが通知されている。
【0044】
図3のCに示すように、タッチオン・オフ検出回路では、ユーザの指が操作面に触れたときの状態(タッチオン)と離れたときの状態(タッチオフ)とが検知される。検出部12Aにおいては、タッチオン・オフ検出回路の実現方法として、コマンド区切り検出部114が、立ち上がり検出部121からの立ち上がり検出信号、又は立ち下がり検出部122からの立ち下がり検出信号を受け取ったときに、割り込みを発生させる方法がある。
【0045】
図3のCにおいて、短点と長点を含む可変点TSは、接触時間が異なるタッチ状態の繰り返しを表し、点線矩形c3は、検出部12Aがタッチオン・オフ検出回路として動作していることを表しており、各タッチ状態の開始(タッチオン)と終了(タッチオフ)が検知されたタイミングに応じて割り込みが連続して通知されている。
【0046】
このように、検出部12Aは、図2に示したハードウェア構成を有することで、タッチ回数計測回路、長押し検出回路、及びタッチオン・オフ検出回路の少なくともいずれかの回路として動作することができる。
【0047】
<問題点>
図4は、図2の検出部12Aが継続的な長押し状態の検知を行う場合の動作を示したタイミングチャートである。
【0048】
図4のAは、UX処理が実行されるタイミングを矢印a1で示している。UX(user experience)処理は、ユーザが電子機器10を通じて得られる体験を提供するための処理である。例えば、電子機器10が音楽コンテンツの再生に関する機能を有する場合、UX処理として、楽曲の音量や再生速度の調整などの処理が実行される。図4のBは、CPU41が稼働状態となるタイミングを矢印b1で示している。
【0049】
図4のCは、ユーザの指が操作面に触れた状態(タッチ状態)となっているかを横棒TSで示している。図4のDは、操作時間カウンタ112による操作時間の計測を示している。ここでは、ハードウェア(HW)により長押し状態の検知を実現するための構成として、ダウンカウンタを用いた場合を例示するが、アップカウンタ等の他の構成を用いてもよい。
【0050】
図4のC,Dに示すように、時刻t10において、タッチ状態になったとき、操作時間カウンタ112はカウントを開始する。横棒TSは連続的であってタッチ状態は長押し状態となるので、操作時間カウンタ112は、長押し状態が継続している期間、カウンタ値を継続的にデクリメントする。その後、時刻t11において、操作時間カウンタ112のカウンタが満了したとき、コマンド検出信号の割り込みを発生させることができる。つまり、一点鎖線矩形c2で示すように、検出部12Aは、長押し検出回路として動作し、カウンタ満了時に割り込み通知を行う。
【0051】
図4のEは、電子機器10の内部の処理が実行されるタイミングを、矢印d1と矢印e1で示している。すなわち、時刻t10乃至時刻t11の間(例えば3秒間)の長押し状態が検知されたとき、矢印d1で示すように、長押し状態の検知による割り込みを発生させることができるが、時刻t11以降に長押し状態が継続していても、長押し状態を検知することができない。換言すれば、検出部12Aが長押し検出回路として動作する場合、長押し操作を検知することはできるが、継続的な長押し状態を検知することはできない。
【0052】
この継続的な長押し状態に対するUX処理を実現する場合、矢印e1で示すように、ソフトウェア(SW:software)による判定処理として、ポーリング処理により長押し状態の継続の有無を判定する必要がある。図4のA,Bにおいて、矢印a1の時間的な間隔と、矢印b1の時間的な間隔とを比べれば、矢印b1の間隔のほうが短くなっているが、CPU41がポーリング処理を実行して定期的にタッチ状態を監視することで、長押し状態に応じたUX処理を実行することができる。
【0053】
しかしながら、ソフトウェアによるポーリング処理を用いる場合には、消費電力の増加や、ソフトウェアの設計や実装に関する複雑度が上昇したりするなどのデメリットが生ずる恐れがある。また、ソフトウェアによるポーリング処理で長押し状態の終了を判定したタイミングで一連のUX処理を完了する場合、ポーリング間隔とのずれにより、実際の長押し状態の終了時(時刻t12)とはタイミングが異なる恐れがある。
【0054】
図5は、ソフトウェアによるポーリング処理で長押し状態の継続を判定する場合の動作を示したタイミングチャートである。図5のA乃至Eは、図4のA乃至Eと同様に、UX処理、CPU稼働状態、タッチ状態、カウンタによる計測、及び内部処理タイミングをそれぞれ時系列で表している。
【0055】
図5のCに示すように、タッチ状態は長押し状態となっているが、タッチ状態を表す横棒TS1と横棒TS2との間、つまり、時刻t22から時刻t23までの間のごく短時間だけ、ユーザの指が操作面から離れている。このようなごく短時間での指離れを、ソフトウェアによるポーリング処理により検知しようとする場合、検知漏れする恐れがある。
【0056】
検知漏れの対策としては、ポーリング処理でのポーリング間隔を高頻度にして、より高精度なポーリング処理を行うことが想定される。しかしながら、高精度なポーリング処理を実行する場合、CPU41が常に高負荷状態となり、さらに消費電力が大きくなることで消費電力の観点から大きなデメリットが生じてしまう。また、仮に高精度なポーリング処理によって検知漏れに対処したとしても、ごく短時間での指離れを検知漏れする可能性はなくならないため、本質的には解決することができない問題である。
【0057】
図5のC,Dに示すように、検出部12Aが長押し検出回路として動作することで、時刻t22から時刻t23までの間のごく短時間での指離れにより、操作時間カウンタ112によるカウントが開始されてカウンタ値がデクリメントされる。その後、時刻t24において、操作時間カウンタ112のカウンタが満了したとき、割り込み通知が発生する。
【0058】
このとき、図5のEの矢印d2と矢印e1で示すように、ハードウェアによる割り込み通知が、ソフトウェアによるポーリング処理とバッティングする恐れがある。このようなバッティングが発生した場合、ソフトウェア側での状態管理が非常に複雑になることが想定される。例えば、ソフトウェアによるポーリング処理の実行中に長押し状態の検知の割り込み通知が生じた場合には、その割り込み通知を無視した上で、ポーリング処理を終了する必要がある。
【0059】
このように、図2の検出部12Aでは、継続的な長押し状態の検知を行うことができず、継続的な長押し状態の検知をソフトウェアによるポーリング処理で行う場合には、ごく短時間での指離れを検知漏れする恐れがあり、より高精度なポーリング処理を行ったとしても本質的な解決とはならない。
【0060】
<検出部構成の第2の例>
図6は、図1の検出部12の構成の第2の例を示すブロック図である。
【0061】
図6において、検出部12Bは、図2の検出部12Aと比べて、エッジ検出部111乃至出力制御部116に加えて、カウンタ初期値保持部151、カウンタ初期値制御部152、及びカウンタ満了状態保持部153がさらに設けられている。図6のエッジ検出部111乃至出力制御部116は、図2のエッジ検出部111乃至出力制御部116と同様に動作可能であるが、以下の説明では異なる動作について説明する。
【0062】
操作時間カウンタ112は、カウンタが満了したとき、カウンタ満了信号を、コマンド区切り検出部114、及びカウンタ満了状態保持部153に出力する。コマンド区切り検出部114は、操作時間カウンタ112からのカウンタ満了信号を受け取ったとき、コマンド検出信号の割り込み(割り込み通知)を制御部13に出力する。
【0063】
カウンタ初期値保持部151は、操作時間カウンタ112の初期値を保持する。操作時間カウンタ112は、カウンタが満了したとき、カウンタ初期値保持部151に保持されたカウンタの初期値を参照して、カウンタを初期化する。
【0064】
カウンタ初期値制御部152は、CPU41からの制御に従い、カウンタ初期値保持部151に保持されたカウンタの初期値を制御する。すなわち、カウンタ初期値制御部152がカウンタ初期値保持部151に保持されたカウンタの初期値を変更することで、操作時間カウンタ112により参照されるカウンタの初期値を動的に変更することができる。
【0065】
カウンタ満了状態保持部153は、操作時間カウンタ112からのカウンタ満了信号を受け取ったとき、操作時間カウンタ112のカウンタが満了していることを示すカウンタ満了状態を保持し、イネーブル信号をコマンド区切り検出部114に出力する。コマンド区切り検出部114は、カウンタ満了状態保持部153からのイネーブル信号を受け取ったとき、有効(enable)になる。
【0066】
コマンド区切り検出部114は、立ち下がり検出部122からの立ち下がり検出信号を受け取ったとき、コマンド検出信号の割り込み(割り込み通知)を出力制御部116及び制御部13に出力する。出力制御部116は、コマンド区切り検出部114からのコマンド検出信号の割り込みを受け取ったとき、操作回数カウンタ113から読み出されるタッチ操作の回数がレジスタ31に出力される(操作回数が更新される)ように制御を行うとともに、初期化信号をカウンタ満了状態保持部153に出力する。
【0067】
カウンタ満了状態保持部153は、出力制御部116からの初期化信号を受け取ったとき、保持しているカウンタ満了状態を初期化し、ディセーブル信号をコマンド区切り検出部114に出力する。コマンド区切り検出部114は、カウンタ満了状態保持部153からのディセーブル信号を受け取ったとき、無効(disable)になる。
【0068】
以上のように構成される検出部12Bでは、図2の検出部12Aと同様に、タッチ回数計測回路、長押し検出回路、及びタッチオン・オフ検出回路の少なくともいずれかの回路として動作することができる。検出部12Bにおいて、タッチ回数計測回路、長押し検出回路、及びタッチオン・オフ検出回路の各回路は1つずつ実現されることは勿論、各回路が複数実現されてもよい。
【0069】
検出部12Bが長押し検出回路として動作する場合、検出部12Aが長押し検出回路として動作する場合と比べて、次の動作が異なる。すなわち、検出部12Bにおいては、操作時間カウンタ112が、カウンタ満了時に、カウンタ満了信号をコマンド区切り検出部114に通知することで、コマンド検出信号の割り込みが通知されるようにするとともに、カウンタ初期値保持部151に保持されたカウンタの初期値を参照することで、カウンタが初期化される。これにより、長押し状態が継続している期間において、操作時間カウンタ112によるカウントと、カウンタ満了時の割り込み通知及びカウンタの初期化とが繰り返し実施される。
【0070】
換言すれば、検出部12Bでは、タッチ操作として長押し操作を検知する場合に、操作時間カウンタ112のカウンタが満了したとき、カウンタ満了信号をコマンド区切り検出部114に通知することで、コマンド区切り検出部114によりコマンドの区切りが検知されるようにしている。そして、検出部12Bでは、コマンドの区切りを検出した際に、操作時間カウンタ112がカウンタ初期値保持部151に保持されたカウンタの初期値を参照してカウンタを初期化するなどにより内部状態を初期化するとともに、コマンド区切り検出部114が継続的な長押し状態に応じた割り込みをCPU41に通知している。
【0071】
また、検出部12Bが長押し検出回路と同時に、タッチオン・オフ検出回路としても動作することで、長押し状態の終了を確実に検知できるようにしている。検出部12Bが、長押し検出回路の動作と連動してタッチオン・オフ検出回路として動作する場合、検出部12Aがタッチオン・オフ検出回路として動作する場合と比べて、次の動作が異なる。すなわち、検出部12Bにおいては、カウンタ満了状態保持部153が、長押し検出回路により最初の割り込みが通知されるタイミング(1度でも割り込みを発生させたタイミング)で、タッチオフが検知されるまでの間、カウンタ満了状態を保持して、コマンド区切り検出部114が有効になるようにする。また、検出部12Bにおいては、タッチオン・オフ検出回路によりタッチオフが検知されたとき、カウンタ満了状態を初期化して、コマンド区切り検出部114が無効になるようにする。
【0072】
換言すれば、検出部12Bでは、タッチ操作としてタッチオンとタッチオフを検知する場合に、カウンタ満了状態保持部153により保持される操作時間カウンタ112のカウンタ満了状態に応じて、コマンド区切り検出部114による割り込み通知機能を有効又は無効にしている。
【0073】
<改善点>
図6の検出部12Bを、図2の検出部12Aと比べたときに改善している点について説明する。
【0074】
図7は、図6の検出部12Bが継続的な長押し状態の検知を繰り返し行う場合の動作を示したタイミングチャートである。図7のA乃至Eは、図4図5のA乃至Eと同様に、UX処理、CPU稼働状態、タッチ状態、カウンタによる計測、及び内部処理タイミングをそれぞれ時系列で表している。
【0075】
図7のC,Dに示すように、検出部12Bが長押し検出回路として動作することで、長押し状態が継続している期間において、操作時間カウンタ112による操作時間の計測と、カウンタ満了時における割り込み通知及びカウンタの初期化とを繰り返し実施している(一点鎖線矩形c2)。
【0076】
具体的には、時刻t30において、長押し状態が開始されたとき、操作時間カウンタ112はカウントを開始し、カウンタ値を継続的にデクリメントする。時刻t31において、操作時間カウンタ112のカウンタが満了したとき、長押し状態検知による割り込みが通知され、カウンタが初期化される。操作時間カウンタ112では、カウンタが初期化されることで、時刻t32に再度カウントを開始してカウンタ値が継続的にデクリメントされることで、時刻t33にカウンタが満了し、割り込み通知とカウンタの初期化が行われる。
【0077】
以降も同様にして、時刻t34乃至時刻t35、時刻t36乃至時刻t37、時刻t38乃至時刻t39、及び時刻t40乃至時刻t41の期間のそれぞれにおいて、操作時間カウンタ112によるカウントと、カウンタ満了時における割り込み通知とカウンタの初期化が行われる。すなわち、検出部12Bが長押し検出回路として動作することで、長押し状態が終了するまで、ダウンカウンタによるカウントと、カウンタ満了時における割り込み通知及びカウンタの初期化とが繰り返される。
【0078】
また、図7のC,Dに示すように、時刻t31に操作時間カウンタ112のカウンタが満了して、長押し状態検知による割り込みを発生させたタイミング(最初の割り込みが発生したタイミング)で、タッチオン・オフ検出回路を有効(enable)にして、検出部12Bが長押し検出回路とともにタッチオン・オフ検出回路としても動作するようにする(点線矩形c3)。このように、検出部12Bがタッチオン・オフ検出回路として動作することで、時刻t42にカウントが開始された後の時刻t43において、ユーザの指が操作面から離れた状態(タッチオフ)が検知され、割り込みが通知される。タッチオン・オフ検出回路によりタッチオフが検知されたとき、長押し状態の終了が検知されたことになる。
【0079】
図3のCに示したように、タッチオン・オフ検出回路では、タッチ状態の開始と終了のタイミングで割り込みが通知されるため、連続して多数の通知がなされる場合があり、無効とするのが都合のよい場合も多いが、ここでは、ユーザが指を操作面から離した瞬間を検知したいために、有効にしている。このように、継続的な長押し状態の検知時にタッチオン・オフ検出回路を有効にすることで、必要十分なタイミングでのみ割り込みを通知することができる。また、継続的な長押し状態の終了を検知した後に、タッチオン・オフ検出回路を無効(disable)にすることで、CPU41への無駄な割り込み通知を抑制することができる。
【0080】
継続的な長押し状態の終了がハードウェアにより検知されたタイミングにおいても、割り込みを通知することで、UX処理における終了処理を無駄なく適切に実行することができる。つまり、検出部12Bを用いる場合には、ソフトウェアによるポーリング処理を実行していないため、図7のEに示すように、ハードウェアによる割り込み通知(矢印d1乃至d7)が、ソフトウェアによるポーリング処理とバッティングすることはなく、割り込み通知に対する終了処理を行えばよい。
【0081】
また、時刻t43に、ハードウェアにより長押し状態の終了を検知したタイミングで、割り込み通知がなされて、一連のUX処理が完了することができる。そのため、ソフトウェアによるポーリング処理を実行した場合のような、ポーリング間隔とのずれによって、実際の長押し状態の終了時とタイミングが異なるようなこともなく、ごく短時間での指離れを検知漏れするようなこともない。
【0082】
以上のように、図6の検出部12Bでは、時刻t30乃至時刻t31の間(例えば3秒間)の長押し状態が検知された後に、長押し状態が継続していても、カウンタ満了時に割り込み通知とカウンタの初期化を繰り返すことで、ハードウェアにより長押し状態を継続して検知することができる。つまり、図4のタイミングチャートでは、長押し状態を1度だけ検知して割り込みを通知して終了していたが、図7のタイミングチャートでは、長押し状態が継続している間、長押し状態を検知する度に割り込みを通知することができる。そのため、ソフトウェアによるポーリング処理での長押し判定処理が不要となり、継続的な長押し状態を検知するに際して、CPU41をスリープ状態にしたままで、連続的な検知を行うことができる。
【0083】
これにより、図7のA,Bに示すように、矢印a1の時間的な間隔と、矢印b1の時間的な間隔とを同じにして、CPU41が稼働するタイミングをUX処理に合わせることができる。電子機器10においては、必要なタイミングでのみCPU41を駆動することが可能となり、結果として消費電力の低減、及びソフトウェアの設計・実装の複雑度を容易に低減化することができる。
【0084】
図8は、図6の検出部12Bが継続的な長押し状態において初期状態を動的に変更する場合の動作を示したタイミングチャートである。図8のA乃至Eは、図7のA乃至Eと同様に、UX処理、CPU稼働状態、タッチ状態、カウンタによる計測、及び内部処理タイミングをそれぞれ時系列で表している。
【0085】
図8のDに示すように、操作時間カウンタ112において、カウンタ満了時にカウンタの初期化を実施するに際し、カウンタの初期値を動的に変更することができる。具体的には、時刻t50乃至時刻t51及び時刻t52乃至時刻t53におけるダウンカウンタによるカウントと、時刻t54乃至時刻t55、時刻t56乃至時刻t57、時刻t58乃至時刻t59、及び時刻t60乃至時刻t61におけるダウンカウンタによるカウントとでは、カウンタの初期値が異なっている。
【0086】
時刻t52乃至時刻t53においては、操作時間カウンタ112によるカウント動作が行われているとき、カウンタ初期値制御部152が、カウンタ初期値保持部151に保持されるカウンタの初期値を変更する。そして、操作時間カウンタ112が、時刻t53にカウンタが満了したとき、カウンタ初期値保持部151に保持されている初期値を参照して、カウンタのカウンタ値を初期化する。
【0087】
すなわち、検出部12Bが長押し検出回路として動作している場合、操作時間カウンタ112によるカウントと、カウンタ満了時における割り込み通知及びカウンタの初期化とが繰り返し実施されるが、カウンタの初期値を動的に変更する場合には、カウンタ初期値保持部151に保持されている初期値が、カウンタ初期値制御部152により変更される。そのため、操作時間カウンタ112は、カウンタの初期化に際して変更後の初期値を参照することになり、カウンタの初期値が動的に変更される。
【0088】
このように、検出部12Bでは、長押し検出回路の初期化の条件を変更することで、長押し状態の検知動作の間隔を動的に変更して、割り込み通知の周期を動的に変更することができるため、図8のA,Bに示すように、CPU41の稼働状態とUX処理のタイミングを調整することができる。また、検出部12Bによりハードウェア側で割り込みが通知されるタイミングを調整しているため、CPU41は、順次通知される割り込みに応じて処理を実行すればよく、CPU41の負荷を上げることなく、低消費電力を保ったまま、複雑なUXをシンプルなソフトウェア設計により実現することができる。
【0089】
<具体的な構成例>
図9は、本開示を適用したワイヤレスイヤホン10Aの外観構成例を示す図である。
【0090】
ワイヤレスイヤホン10Aは、電子機器10の一例である。ワイヤレスイヤホン10Aは、Bluetooth(登録商標)通信規格に適合したトゥルーワイヤレスイヤホンであるとして説明する。一般的には、トゥルーワイヤレスイヤホンは、スマートフォンや携帯音楽プレイヤ等のマスタデバイスと連携して機能するスレーブデバイスである。ワイヤレスイヤホン10Aは、スレーブデバイスに限らず、それ単体で機能するものであってもよい。
【0091】
図9に示すように、ワイヤレスイヤホン10Aは、人の外耳の形状に適合するように成形されたイヤーピース状の筐体100によって、その外観が略画定されている。図9では、一対のイヤーピースのうちの片方のみが示されている。また、図示はされていないが、筐体100の内部には、電源と制御用LSIチップ等が収納されている。
【0092】
筐体100の表面の一部は、操作面100aとなっており、ユーザによるタッチ操作に感応するタッチセンサとして機能するように構成されている。ユーザは、筐体100の操作面100aに対して、種々のタッチ操作をすることにより、ワイヤレスイヤホン10Aを介して、スマートフォン等のマスタデバイスにコマンドを与えることができる。
【0093】
図10は、図9のワイヤレスイヤホン10Aの構成例を示すブロック図である。
【0094】
図10において、ワイヤレスイヤホン10Aは、図1の電子機器10と比べて、操作部11乃至電源部14に加えて、通信部15がさらに設けられている。
【0095】
通信部15は、他のデバイス、例えば、スマートフォン等のマスタデバイスとの間で、Bluetooth(登録商標)通信規格に準拠した無線通信を行う通信モジュールとして構成される。通信部15は、制御部13からの制御に従って動作する。図10では、通信部15は、制御部13とは別に構成されているが、プロセッサモジュールのチップセットとして構成されてもよい。
【0096】
検出部12は、図6の検出部12Bに対応した構成を有し、エッジ検出部111乃至出力制御部116に加えて、カウンタ初期値保持部151、カウンタ初期値制御部152、及びカウンタ満了状態保持部153がさらに設けられている。
【0097】
以上のように構成されるワイヤレスイヤホン10Aでは、スマートフォン等のマスタデバイスとペアリングされて操作連携している場合に、筐体100の操作面100aに対し、ユーザが、タップ操作や長押し操作等のタッチ操作を行うことで、マスタデバイスにコマンドが送られて、各種の機能が実現される。
【0098】
タップ操作は、ユーザが操作面100aを指先で軽く叩くような感じで触れる操作である。1回だけ叩く操作をシングルタップ操作といい、素早く2回叩く操作をダブルタップ操作といい、素早く3回叩く操作をトリプルタップ操作という。例えば、シングルタップ操作は、スマートフォン上で実行されている音楽再生アプリ等のアプリケーションに対する再生/一時停止コマンドであり得る。ダブルタップ操作は、次の曲の頭出しコマンドであり、トリプルタップ操作は、前又は再生中の曲の頭出しコマンドであり得る。
【0099】
長押し操作は、ユーザの指が操作面100aに一定時間触れてから離す操作である。長押し操作は、タップ操作に比べて、操作面100aに対するユーザの指の接触時間が長くなる。例えば、長押し操作は、スマートフォン上で実行されているアプリケーションに対するボリュームアップ又はボリュームダウン等のボリューム調整コマンドや、高速早送り(FF:fast forward)コマンド又は高速早戻し(FR:fast rewind)コマンドであり得る。以下、ユーザの長押し操作によって、UX処理としてボリュームアップ処理とFF処理が実行される場合を例示する。
【0100】
<ボリュームアップ処理>
ボリュームアップ処理では、ユーザが長押し操作を継続している間、音楽再生アプリ等のアプリケーションにより再生中の楽曲のボリュームを上げるための処理が実行される。図11のフローチャートを参照して、ワイヤレスイヤホン10Aにより実行されるボリュームアップ処理の流れを説明する。
【0101】
ステップS11では、カウンタ初期値制御部152が、カウンタ初期値保持部151に保持されるカウンタの初期値として、長押し状態の割り込み検知の初期値Taを設定する。例えば、初期値Taは3秒とされる。
【0102】
ステップS12では、発生した割り込みに紐付けられたUX処理が、ボリュームアップ処理であるかどうかが判定される。ステップS12において、UX処理がボリュームアップ処理であると判定された場合、処理はステップS13に進められる。ステップS13では、現在のボリューム値が、上限値に対して所定割合以上であるかどうかが判定される。例えば、所定割合は80%とされる。
【0103】
ステップS13において、現在のボリューム値が所定割合未満(例えば80%未満)であると判定された場合、処理はステップS14に進められる。ステップS14では、カウンタ初期値制御部152が、カウンタ初期値保持部151に保持されるカウンタの初期値として、長押し状態の割り込み検知の初期値Tbを設定する。例えば、初期値Tbは300ミリ秒とされる。
【0104】
一方で、ステップS13において、現在のボリューム値が所定割合以上(例えば80%以上)であると判定された場合、処理はステップS15に進められる。ステップS15では、カウンタ初期値制御部152が、カウンタ初期値保持部151に保持されるカウンタの初期値として、長押し状態の割り込み検知の初期値Tcを設定する。例えば、初期値Tcは1秒とされる。
【0105】
ステップS12において、割り込みに紐付けられたUX処理がボリュームアップ処理ではないと判定された場合、処理はステップS16に進められ、他のUX処理に関する処理が行われる。ステップS14乃至S16のいずれかの処理が終了すると、一連の処理は終了する。
【0106】
ここでは、ユーザによる長押し操作が継続している間、ステップS12乃至S15の処理が繰り返し行われるようにすることで、カウンタ初期値保持部151に保持されるカウンタの初期値として、現在のボリューム値が、上限値の80%未満である場合には、初期値Tbとして300ミリ秒を設定し、上限値の80%以上である場合には、初期値Tcとして1秒を設定する制御が繰り返し行われる。
【0107】
図12のタイミングチャートは、継続的な長押し状態においてカウンタの初期値を動的に変更したときのボリュームアップ処理のタイミングを示している。図12のA乃至Dは、ボリュームアップ処理、割り込み通知、タッチ状態、及びダウンカウンタによる計測をそれぞれ時系列で表している。
【0108】
図12のB乃至Dに示すように、長押し状態が継続している期間において、操作時間カウンタ112(ダウンカウンタ)による操作時間の計測と、ダウンカウンタ満了時における割り込み通知及びダウンカウンタの初期化とが繰り返し実施される。ダウンカウンタ満了時にダウンカウンタの初期化を実施するに際しては、ダウンカウンタの初期値を動的に変更している。
【0109】
具体的には、カウンタ初期値保持部151に保持されるダウンカウンタの初期値として、最初に、3秒である初期値Taが設定されているので(図11のS11)、時刻t70以降に繰り返される2回の計測では、3秒を初期値としたカウントダウンが実施される。
【0110】
その後、ボリュームの上限値に対する現在のボリューム値の割合に応じて、カウンタの初期値として、300ミリ秒である初期値Tbが設定され(図11のS14)、時刻t71以降に繰り返される8回の計測では、300ミリ秒を初期値としたカウントダウンが実施される。さらにその後、ボリュームの上限値に対する現在のボリューム値の割合に応じて、カウンタの初期値として、1秒である初期値Tcが設定され(図11のS15)、時刻t72以降に繰り返される3回の計測では、1秒を初期値としたカウントダウンが実施される。
【0111】
このように、ダウンカウンタの初期値が、初期値Ta、初期値Tb、初期値Tcと動的に変更されることで、図12のBに示すように、カウンタ満了時に通知される割り込みの周期を動的に変更することができる。図12のAは、ボリュームアップ処理が実行されるタイミングを矢印a1で示している。ボリュームアップ処理が割り込み通知に応じて実行されることで、ボリュームの上限値に対する現在のボリューム値の割合に応じて、ボリューム値の変更に緩急をつけるような制御が容易に実現可能となる。
【0112】
図13は、図12のボリュームアップ処理によるボリューム値の変化を示す図である。図13では、横軸が時間を示し、縦軸がボリュームレベルを示している。
【0113】
図13に示すように、ボリュームの上限値に対する現在のボリューム値の割合に応じて、ダウンカウンタの初期値が、初期値Ta、初期値Tb、初期値Tcと動的に変更されることで、カウンタ満了時に通知される割り込みの周期が動的に変更されているため、時間帯ごとにボリュームレベルが上昇するまでの期間が異なっている。
【0114】
すなわち、現在のボリューム値が上限値から離れている場合(例えば中間のボリューム領域である場合)には、300ミリ秒である初期値Tbを設定することで、UX応答を上げてボリュームの変化が急峻になるようにしている。一方で、現在のボリューム値が上限値の近傍に達している場合には、音圧変化によるユーザの耳への負担を低減するために、1秒である初期値Tcを設定して、ボリュームの変化がなだらかになるようにしている。
【0115】
<FF処理>
FF処理では、ユーザが長押し操作を継続している間、音楽再生アプリ等のアプリケーションにより再生中の楽曲を高速早送りするための処理が実行される。図14のフローチャートを参照して、ワイヤレスイヤホン10Aにより実行されるFF処理の流れを説明する。
【0116】
ステップS31では、カウンタ初期値制御部152が、カウンタ初期値保持部151に保持されるカウンタの初期値として、長押し状態の割り込み検知の初期値Tdを設定する。また、ステップS32では、CPU41が、FF処理のステップ幅Iaを設定する。例えば、初期値Tdは3秒とされ、ステップ幅Iaは15秒とされる。
【0117】
ステップS33では、発生した割り込みに紐付けられたUX処理が、FF処理であるかどうかが判定される。ステップS33において、UX処理がFF処理であると判定された場合、処理はステップS34に進められる。ステップS34では、FF処理のステップ幅が閾値以上であるかどうかが判定される。
【0118】
ステップS34において、FF処理のステップ幅が閾値未満であると判定された場合、処理はステップS35に進められる。ステップS35では、カウンタ初期値制御部152が、カウンタ初期値保持部151に保持された長押し状態の割り込み検知の初期値を段階的に短くする。
【0119】
ステップS36では、CPU41が、FF処理のステップ幅に、加算値Ibを加算する。例えば、加算値Ibは15秒とされる。ステップS37では、CPU41が、FF処理実行のトリガを、音楽再生アプリ等のアプリケーションに通知する。ステップS34において、FF処理のステップ幅が閾値以上であると判定された場合、ステップS35乃至S36の処理はスキップされ、FF処理実行のトリガが通知される(S37)。
【0120】
ステップS33において、割り込みに紐付けられたUX処理がFF処理ではないと判定された場合、処理はステップS38に進められ、他のUXに関する処理が行われる。ステップS37又はS38の処理が終了すると、一連の処理は終了する。
【0121】
ここでは、ユーザによる長押し操作が継続している間、ステップS33乃至S37の処理が繰り返し行われるようにすることで、FF処理のステップ幅が閾値未満である場合には、カウンタ初期値保持部151に保持されるカウンタの初期値が段階的に短くされる(例えば、3秒、2秒、1秒、500ミリ秒、300ミリ秒、・・・)とともに、FF処理のステップ幅に加算値Ib(例えば15秒)が加算される制御が繰り返し行われる。
【0122】
図15のタイミングチャートは、継続的な長押し状態においてカウンタの初期値を動的に変更したときのFF処理のタイミングを示している。図15のA乃至Dは、FF処理、割り込み通知、タッチ状態、及びダウンカウンタによる計測をそれぞれ時系列で表している。
【0123】
図15のB乃至Dに示すように、長押し状態が継続している期間において、操作時間カウンタ112(ダウンカウンタ)による操作時間の計測と、ダウンカウンタ満了時における割り込み通知及びダウンカウンタの初期化とが繰り返し実施される。ダウンカウンタ満了時にダウンカウンタの初期化を実施するに際しては、ダウンカウンタの初期値を動的に変更している。
【0124】
具体的には、カウンタ初期値保持部151に保持されるダウンカウンタの初期値として、最初に、3秒である初期値Tdが設定されているので(図14のS31)、時刻t80以降に繰り返される2回の計測では、3秒を初期値としたカウントダウンが実施される。
【0125】
その後、FF処理のステップ幅に応じて、カウンタの初期値が段階的に短くなるように設定される(図14のS35)。すなわち、時刻t81以降に繰り返される2回の計測では、2秒であるTeを初期値としたカウントダウン、時刻t82以降に繰り返される2回の計測では、1秒であるTfを初期値としたカウントダウンがそれぞれ実施される。また、時刻t83以降に繰り返される2回の計測では、500ミリ秒であるTgを初期値としたカウントダウン、時刻t84以降に繰り返される2回の計測では、300ミリ秒であるThを初期値としたカウントダウンがそれぞれ実施される。それ以降についても同様に、ダウンカウンタの初期値を段階的に短くしながらの計測が繰り返されるが、説明は省略する。
【0126】
このように、ダウンカウンタの初期値が、初期値Td、初期値Te、初期値Tf、初期値Tg、初期値Thのように、段階的に短くなるように変更されることで、図15のBに示すように、長押し状態の継続時間に比例して、カウンタ満了時に通知される割り込みの周期を動的に変更することができる。
【0127】
図15のAは、FF処理のステップ幅変更とFF処理実行のトリガが実行されるタイミングを矢印a1で示している。ここでは、割り込みが通知された場合に、単位時間あたりのFF処理のステップ幅を変更する(図14のS36)ことで、長押し状態が継続している期間において、FF処理のステップ幅が加速度的に増加するような制御が容易に実現可能となる。つまり、割り込み通知の発生頻度(発生密度)を上げるだけで、FF処理のステップ幅を加速度的に増加させることができる。FF処理のステップ幅を変更した後に、FF処理実行のトリガがアプリケーションに通知される(図14のS37)。
【0128】
図16は、図15のFF処理のステップ幅の変化を示す図である。図16では、横軸が時間を示し、縦軸が1回あたりのFF処理のステップ幅(単位:秒)を示している。
【0129】
図16に示すように、FF処理のステップ幅の閾値判定結果に応じて、ダウンカウンタの初期値が、初期値Td、初期値Te、初期値Tf、初期値Tg、初期値Thのように、段階的に短くなるように変更されることで、カウンタ満了時に通知される割り込みの周期が徐々に短くなる。また、割り込みが通知される度に、FF処理のステップ幅に加算値が加算される。
【0130】
つまり、FF処理のステップ幅Iaとして15秒が設定された場合に、加算値Ibとして15秒が設定されたとき、長押し状態が継続している期間において、発生頻度が徐々に増加する割り込み通知に応じてFF処理のステップ幅に15秒ずつ加算されるため、FF処理のステップ幅が加速度的に増加することになる。図16において、棒グラフ上の数値は、1回あたりのFF処理のステップ幅を表しており、最初に15秒であったステップ幅が、時間の経過とともに、30秒、45秒、60秒、75秒、90秒、105秒、120秒、135秒、150秒、165秒、180秒、・・・と15秒ずつ増加しているが、長押し状態の継続時間が長くなるほど、ステップ幅が増加するまでの時間が短くなっている。
【0131】
このように、長押し状態の継続時間に比例してハードウェアから通知される割り込みの周期を動的に変更することで、図16の曲線Lで表すように、単位時間当たりのFF処理のステップ幅を加速度的に増加させることができ、加速度的なFF処理を容易に実現することができる。
【0132】
<変形例>
上述した説明では、検出部12Bが長押し検出回路として動作する場合に、長押し状態を検知するためのカウンタとして、操作時間カウンタ112を用いた構成を示したが、他の検出部(他の検出回路)を用いてもよい。他の検出部により長押し状態を検知する場合も同様に、他の検出部(例えば他のカウンタ)によりコマンドの区切りが検出されたとき(例えば他のカウンタが満了したとき)、内部状態を初期化(例えば他のカウンタを初期化)することで、継続的な長押し状態に対して割り込みを通知することができる。
【0133】
上述した説明では、検出部12Bが長押し検出回路の動作と連動してタッチオン・オフ検出回路として動作する場合に、立ち上がり検出信号又は立ち下がり検出信号を受け取ったときに割り込みを発生させるコマンド区切り検出部114を動的に有効(enable)又は無効(disable)にしたが、タッチオン/オフ検出回路に限らず、他の1又は複数の検出部(他の検出回路)を動的に有効又は無効にしても構わない。
【0134】
図1の電子機器10において、ユーザインターフェース回路として構成される操作部11は、ユーザの指等(身体の部位の一部)の物理的な接触を検出する構成に限らず、例えば、ユーザの指等が近接した状態を検出する構成であっても構わない。また、操作面は、筐体表面に限らず、ユーザの指等が接触可能な面などの物体であればよい。
【0135】
電子機器10は、ワイヤレスイヤホン10Aに限らず、タッチ操作が可能な機器であれば他の機器であってもよい。上述した説明では、音楽再生アプリ等のアプリケーションにより再生中の楽曲のボリューム調整や高速早送り(FF)の長押し操作を例示したが、本開示は、音楽コンテンツに限らず、映像コンテンツ等の他のコンテンツに対するボリューム調整や高速早戻しなどを指示する長押し操作にも適用可能である。
【0136】
上述したフローチャートの各ステップの処理は、ハードウェアにより実行することもできるし、ソフトウェアにより実行することもできる。一連の処理をソフトウェアにより実行する場合には、そのソフトウェアを構成するプログラムが、電子機器10(コンピュータ)にインストールされる。ここで、本明細書において、コンピュータがプログラムに従って行う処理は、必ずしもフローチャートとして記載された順序に沿って時系列に行われる必要はない。すなわち、コンピュータがプログラムに従って行う処理は、並列的あるいは個別に実行される処理(例えば並列処理あるいはオブジェクトによる処理)も含む。
【0137】
なお、本開示の実施の形態は、上述した実施の形態に限定されるものではなく、本開示の要旨を逸脱しない範囲において種々の変更が可能である。また、本明細書に記載された効果はあくまで例示であって限定されるものではなく、他の効果があってもよい。
【0138】
また、本開示は、以下のような構成をとることができる。
【0139】
(1)
ユーザのタッチ操作に応じた操作信号を出力する操作部と、
出力される前記操作信号に基づいて、前記タッチ操作に応じたコマンドを検出する検出部と、
検出される前記コマンドに応じた処理を実行する制御部と
を備え、
前記検出部は、前記タッチ操作として長押し操作を検知する場合、前記コマンドの区切りを検出した際に、内部状態を初期化するとともに、継続的な長押し状態に応じた割り込みを前記制御部に通知し、
前記制御部は、通知される前記割り込みに応じた処理を実行する
電子機器。
(2)
前記検出部は、
前記タッチ操作の時間を計測する操作時間カウンタと、
前記操作時間カウンタの初期値を保持するカウンタ初期値保持部と
を有し、
前記操作時間カウンタが満了したとき、前記操作時間カウンタを、前記カウンタ初期値保持部に保持された前記初期値に初期化して、前記割り込みを通知する
前記(1)に記載の電子機器。
(3)
前記検出部は、
前記カウンタ初期値保持部に保持された前記初期値を動的に変更するカウンタ初期値制御部をさらに有し、
動的に変更される前記初期値に応じて、通知する前記割り込みの周期を変更する
前記(2)に記載の電子機器。
(4)
前記検出部は、
前記操作時間カウンタの満了状態を保持するカウンタ満了状態保持部をさらに有し、
前記操作時間カウンタの満了状態に応じて、前記割り込みの通知機能を有効又は無効にする
前記(2)又は(3)に記載の電子機器。
(5)
前記検出部は、
前記コマンドの区切りを検出し、検出した前記コマンドの区切りに応じた前記割り込みを通知するコマンド区切り検出部をさらに有し、
前記コマンド区切り検出部は、前記操作信号に基づいて、タッチ状態の開始と終了が検知されたタイミングに応じて前記割り込みを通知し、
前記操作時間カウンタの満了状態に応じて、前記コマンド区切り検出部を有効又は無効にする
前記(4)に記載の電子機器。
(6)
前記検出部は、
前記タッチ操作の回数を計測する操作回数カウンタをさらに有し、
前記操作時間カウンタが満了状態となったとき、前記コマンド区切り検出部を有効にし、前記コマンド区切り検出部から前記割り込みが通知され、前記操作回数カウンタにより計測された操作回数が更新されるとき、前記コマンド区切り検出部を無効にする
前記(5)に記載の電子機器。
(7)
前記制御部は、CPU(central processing unit)を含み、
前記CPUは、通知される前記割り込みに応じて稼働し、
前記CPUの稼働状態に応じてUX(user experience)処理が実行される
前記(3)乃至(6)のいずれかに記載の電子機器。
(8)
前記UX処理は、コンテンツの音量を調整するボリューム調整処理を含み、
前記CPUは、ボリューム上限値と現在のボリューム値との関係に基づいて、前記初期値が動的に変更されるように制御する
前記(7)に記載の電子機器。
(9)
前記UX処理は、コンテンツの再生速度を調整する再生速度調整処理を含み、
前記CPUは、再生速度を調整する際の単位時間あたりのステップ幅に基づいて、前記初期値と前記ステップ幅が動的に変更されるように制御する
前記(7)に記載の電子機器。
(10)
前記検出部は、
出力される前記操作信号に基づいて、前記タッチ操作の時間及び回数を検出し、
検出した前記タッチ操作の時間及び回数を保持するレジスタを含み、
前記制御部は、前記レジスタから取得した前記タッチ操作の時間及び回数に基づくコマンドを外部のデバイスに送信する
前記(1)乃至(9)のいずれかに記載の電子機器。
(11)
ユーザのタッチ操作に応じた操作信号を出力する操作部と、
出力される前記操作信号に基づいて、前記タッチ操作に応じたコマンドを検出する検出部と、
検出される前記コマンドに応じた処理を実行する制御部と
を備える電子機器において、
前記検出部が、前記タッチ操作として長押し操作を検知する場合、前記コマンドの区切りを検出した際に、内部状態を初期化するとともに、継続的な長押し状態に応じた割り込みを前記制御部に通知し、
前記制御部が、通知される前記割り込みに応じた処理を実行する
制御方法。
【符号の説明】
【0140】
10 電子機器, 10A ワイヤレスイヤホン, 11 操作部, 12,12A,12B 検出部, 13 制御部, 14 電源部, 15 通信部, 21 タッチセンサ, 31 レジスタ, 41 CPU, 42 メモリ, 111 エッジ検出部, 112 操作時間カウンタ, 113 操作回数カウンタ, 114 コマンド区切り検出部, 115 タイムアウト検出部, 116 出力制御部, 121 立ち上がり検出部, 122 立ち下がり検出部, 123 遅延部, 151 カウンタ初期値保持部, 152 カウンタ初期値制御部, 153 カウンタ満了状態保持部
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16