(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0009】
以下に、本発明にかかる入力装置、表示装置、および、入力装置の振動状態検出方法の実施形態を図面に基づいて詳細に説明する。なお、かかる実施形態によりこの発明が限定されるものではない。
【0010】
<1.入力装置の振動状態検出方法>
図1は、本発明の実施形態に係る入力装置の振動状態検出処理を説明するための図である。
図1に示すように、実施形態に係る入力装置は、操作部と、第1〜第4の振動素子と、制御部とを備える入力装置であり、振動機能付きのタッチパッドとも呼ばれる。かかる入力装置は、後述するように、液晶ディスプレイなどの表示部と組み合わせて、振動機能付きのタッチパネルとして用いることもできる。
【0011】
操作部は、例えば静電容量方式の情報入力機能を有する平板状の部材である。かかる操作部は、操作面を備え、ユーザの操作面に対する接触操作(以下、ユーザ接触操作と記載する)を検出する。ユーザ接触操作は、例えば、ユーザが指を操作面へ接触させたり、タッチペンを操作面へ接触させたりすることによって行われる。
【0012】
第1〜第4の振動素子は、たとえば圧電素子であり、操作部に接着剤などによって固定され、操作部の操作面を振動させることができる。したがって、例えば、ユーザの指が操作面に接触した状態において第1〜第4の振動素子を振動させることで、ユーザの指に振動を与えることができる。
【0013】
制御部は、例えば、ユーザの指が操作面に接触した状態において第1〜第4の振動素子を超音波周波数帯で操作面を振動させることにより、ユーザの指と操作面との間に空気層の膜が発生し、ユーザの指と操作面との間の摩擦力を変化させることができる。かかる状態でユーザが指を動かすと、変化した摩擦力に応じた触覚を指に与えることができる。
【0014】
図1に示す例では、複数の振動素子として第1〜第4の振動素子が入力装置に設けられるが、2以上の振動素子であればよく、振動素子の数は、
図1に示す例に限定されるものではない。
【0015】
入力装置の制御部は、操作面に対して所定のユーザ接触操作を検出した場合、第1〜第4の振動素子を振動させる。これにより、入力装置の制御部は、ユーザの入力装置に対する入力操作を受け付けたことを操作面の振動によってユーザに通知することができる。また、制御部は、振動状態(例えば、振動周波数、振動周期、振動量など)を変化させることによって操作面を操作しているユーザに対して異なる触感を与えることができる。
【0016】
ところで、入力装置の部品(例えば、振動素子、操作部、振動素子を操作部に固定する接着材など)の経年変化や温度特性によって、例えば、操作面の振動が不十分になることがある。そこで、入力装置の制御部は、第1〜第4の振動素子の一部によって操作面を振動させた状態で、残りの少なくとも一つの振動素子によって操作面の振動を検出する。
【0017】
例えば、
図1に示すように、制御部は、第1〜第3の振動素子に駆動電圧を印加することにより第1〜第3の振動素子により操作面を振動させた状態で、第4の振動素子の出力電圧に基づいて操作面の振動状態を検出することができる。
【0018】
これにより、例えば、入力装置の部品の経年劣化あるいは温度特性によって操作面の振動状態が変化しているか否かを検出することができる。また、操作面を振動させるために用いる振動素子を操作面の振動を検出する振動素子と兼用することによって、操作面の振動を検出する部品を別途追加することを避けることができ、コストや部品点数を抑えつつ、入力装置の振動状態を検出することが可能となる。
【0019】
また、複数の振動素子のうち操作面を振動させる振動素子と操作面の振動を検出する振動素子との組み合わせを変更することで、各振動素子による振動状態を把握することができる。例えば、第1〜第4の振動素子を一つずつ操作面の振動状態を検出する振動素子として順番に変えていくことで、例えば、第1〜第4の振動素子の劣化や故障の状態を把握することができる。
【0020】
また、操作面の振動状態が例えば製品出荷時から変化している場合、操作面の振動状態が一定の振動量になるように振動素子を駆動する駆動電圧を調整することによって、入力装置の振動状態を補正することができる。そのため、入力装置の製品品質を向上させることができる。
【0021】
以下、実施形態に係る入力装置をさらに詳細に説明する。なお、以下においては、入力装置を表示部と組み合わせた表示装置を一例に挙げて説明する。かかる表示装置は、例えば、車両に搭載されるナビゲーション装置であるが、スマートフォンやタブレット端末、パソコンなどであってもよい。
【0022】
<2.表示装置>
図2は、本実施形態に係る表示装置の構成を示す図である。
図2に示すように、表示装置1は、表示部10と、表示制御部11と、入力装置12とを備える。
【0023】
<2.1.表示部10>
表示部10は、例えば、液晶ディスプレイまたは有機ELディスプレイであり、表示制御部11が出力する画像のデータに基づく画像を表示する。これにより、表示制御部11が出力する画像をユーザに提示することができる。
【0024】
<2.2.表示制御部11>
表示制御部11は、例えば入力装置12がユーザから受け付けた入力操作に基づいて、表示部10に表示させる画像を生成する。表示制御部11は生成した画像のデータを表示部10に出力する。
【0025】
<2.3.入力装置12>
入力装置12は、表示装置1に対するユーザによる入力操作を受け付け、ユーザの入力操作に応じた信号を表示制御部11へ出力する。入力装置12は、操作部21と、振動部22と、制御部23とを備える。
【0026】
<2.3.1.操作部21>
操作部21は、例えば静電容量方式の情報入力機能を有する平板状の部材である。なお、操作部21は、ユーザの接触を検出可能な操作面を有する構成であればよく、静電容量方式に限定されず、例えば、赤外線方式や抵抗膜方式などによってユーザの接触を検出する操作部であってもよい。
【0027】
図3は、表示装置1の正面模式図である。
図3に示すように、操作部21の表面側には、ユーザによる入力操作を受け付ける操作面27が配置される。ユーザが操作面27に接触すると、操作部21は、ユーザの接触位置に応じた検出値を操作検出部24へ出力する。
【0028】
<2.3.2.振動部22>
振動部22は、第1〜第4の振動素子31〜34(以下、振動素子30と総称する場合がある)を備える。振動素子30は、例えば圧電素子(ピエゾ素子)などの圧電アクチュエータであり、振動制御部26から供給される交流電圧によって伸縮することで操作部21を振動させる。
【0029】
振動素子30の振動周波数を操作部21の共振周波数に設定することによって、操作部21を効率的に振動させることができる。なお、振動素子30の振動周波数は、例えば超音波帯域の周波数であるが、超音波帯域の周波数以外の周波数であってもよい。
【0030】
図4は、
図3に示すA−A’線断面模式図である。
図3および
図4に示すように、第1〜第4の振動素子31〜34は、操作部21の操作面27の周囲かつ操作部21の裏面側に接着剤などによって固定される。なお、
図4は、操作面27および振動素子30の配置例を説明するための模式図であり、表示制御部11および制御部23は、表示装置1の内部に配置されることを示すに留まる。
【0031】
なお、
図2〜
図4に示す振動素子30の個数および配置は一例であり、かかる例に限定されない。例えば、振動素子30は2つでもよく3つでもよい。また、振動素子30は、5つ以上であってもよい。例えば、
図3に示す操作部21の左右両端にそれぞれ2つずつ上下に振動素子30が配置されるが、振動素子30は、例えば、
図3に示す操作部21の左右両端それぞれ1つずつ左右に配置される構成であってもよい。
【0032】
また、ここでは、振動素子30として圧電素子を用いる場合について説明したが、これに限られず、振動素子30は、操作面27を所定の周波数(例えば、超音波周波数帯)で振動させ、かつ、操作面27の振動状態に応じた信号(電圧または電流)を出力する素子であればよい。
【0033】
<2.3.3.制御部23>
制御部23は、操作部21の操作面27(
図3、4参照)へのユーザ操作を検出し、かかる検出結果を表示制御部11へ通知する。また、制御部23は、操作部21の操作面27の振動を制御する。
【0034】
かかる制御部23は、例えば、CPU(Central Processing Unit)、ROM(Read Only Memory)、RAM(Random Access Memory)、入出力ポートなどを有するマイクロコンピュータや各種の回路を含む。かかるマイクロコンピュータのCPUは、ROMに記憶されているプログラムを読み出して実行することにより、後述する制御を実現する。
【0035】
制御部23は、操作検出部24と、振動検出部25と、振動制御部26と、を備える。かかる操作検出部24、振動検出部25および振動制御部26の機能は、例えば、上記CPUが上記プログラムを読み出して実行することにより実現される。
【0036】
なお、操作検出部24、振動検出部25および振動制御部26は、それぞれ一部または全部がASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)等のハードウェアで構成されてもよい。
【0037】
<2.3.3.1.操作検出部24>
操作検出部24は、操作部21が出力する検出値に基づいて、操作面27に対するユーザの接触位置を検出する。例えば、操作検出部24は、所定の周期でユーザの接触位置を検出する。操作検出部24は、ユーザの接触位置に基づいて、操作面27に対してユーザが所定操作をしたか否かを判定する。
【0038】
例えば、操作検出部24は、操作面27に対するスクロール操作、フリック操作、タップ操作、ジェスチャー操作などのユーザ操作を検出する。操作検出部24は、操作面27に対するユーザ操作の検出結果を表示制御部11や振動制御部26へ通知する。
【0039】
<2.3.3.2.振動検出部25>
振動検出部25は、第1〜第4の振動素子31〜34の振動状態を検出する。振動検出部25は、例えば、第1〜第4の振動素子31〜34の出力電圧Vd1〜Vd4(以下、出力電圧Vdと記載する場合がある)に基づいて、第1〜第4の振動素子31〜34の振動状態を検出することができる。
【0040】
かかる出力電圧Vdは、第1〜第4の振動素子31〜34のうち一部の振動素子30に駆動電圧Vsが印加され、かつ、残りの振動素子30に駆動電圧Vsが印加されていない状態で、この残りの振動素子30から出力される。
【0041】
図5は、振動検出部25および振動制御部26の構成例を示す図である。
図5に示すように、振動検出部25は、第1〜第4の電圧検出部71〜74を備える。第1の電圧検出部71は、第1の振動素子31の出力電圧Vd1の振幅Vdm1を検出し、第2の電圧検出部72は、第2の振動素子32の出力電圧Vd2の振幅Vdm2を検出する。
【0042】
第3の電圧検出部73は、第3の振動素子33の出力電圧Vd3の振幅Vdm3を検出し、第4の電圧検出部74は、第4の振動素子34の出力電圧Vd4の振幅Vdm4を検出する。
【0043】
<2.3.3.3.振動制御部26>
振動制御部26は、例えば、振動モード(第1モードの一例)と補正モード(第2モードの一例)を切り替えて実行することができる。振動モードは、操作面27へのユーザ操作に応じて、第1〜第4の振動素子31〜34を駆動して操作面27を振動させる動作モードである。
【0044】
例えば、振動制御部26は、操作面27への所定のユーザ操作(例えば、スクロール操作、フリック操作、タップ操作、ジェスチャー操作など)が操作検出部24によって検出された場合に、第1〜第4の振動素子31〜34を駆動する。なお、振動制御部26は、操作面27への所定のユーザ操作として、ユーザによる操作面27への接触が操作検出部24によって検出された場合に、第1〜第4の振動素子31〜34を駆動することもできる。
【0045】
また、補正モードは、第1〜第4の振動素子31〜34の少なくとも一つの振動素子30によって操作面27を振動させた状態で、残りの少なくとも一つの振動素子30によって操作面27の振動を検出する動作モードである。
【0046】
図5に示すように、振動制御部26は、第1〜第4の印加電圧生成部51〜54(以下、印加電圧生成部50と記載する場合がある)と、出力制御部55と、切替部56と、電圧調整部57とを備える。第1〜第4の印加電圧生成部51〜54は、電圧調整部57によって設定された振幅値および周波数に応じた駆動電圧Vs1〜Vs4(以下、駆動電圧Vsと総称する場合がある)をそれぞれ生成する。
【0047】
図6は、駆動電圧Vsの一例を示す図である。
図6に示すように、駆動電圧Vsは、周波数fsおよび振幅Vmを有する交流電圧である。なお、
図6に示す駆動電圧Vsは、正弦波状の電圧であるが、駆動電圧Vsは、例えば、三角波状の電圧やパルス状の電圧であってもよい。
【0048】
出力制御部55は、振動モードおよび補正モードにおいて、切替部56を制御し、第1〜第4の印加電圧生成部51〜54によって生成された駆動電圧Vs1〜Vs4のうち振動部22へ出力する駆動電圧Vsを選択する。切替部56は、スイッチ61〜64を備える。
【0049】
出力制御部55は、スイッチ61をONにすることで第1の印加電圧生成部51が生成した駆動電圧Vs1を第1の振動素子31へ印加し、第1の振動素子31を振動させる。また、出力制御部55は、スイッチ62をONにすることで第2の印加電圧生成部52が生成した駆動電圧Vs2を第2の振動素子32へ印加し、第2の振動素子32を振動させる。
【0050】
また、出力制御部55は、スイッチ63をONにすることで第3の印加電圧生成部53が生成した駆動電圧Vs3を第3の振動素子33へ印加し、第3の振動素子33を振動させる。また、出力制御部55は、スイッチ64をONにすることで第4の印加電圧生成部54が生成した駆動電圧Vs4を第4の振動素子34へ印加し、第4の振動素子34を振動させる。
【0051】
出力制御部55は、例えば、動作モードが振動モードである場合、切替部56を制御し、スイッチ61〜64をすべてONにする。これにより、駆動電圧Vs1〜Vs4が第1〜第4の振動素子31〜34へ入力される。
【0052】
また、出力制御部55は、例えば、動作モードが補正モードである場合、切替部56を制御し、スイッチ61〜64のうちONにするスイッチとOFFにするスイッチを所定の規則に従って切り替える。
【0053】
例えば、スイッチ61〜64のうち一つのみをOFFにし、かつ、OFFにするスイッチを切り替える。これにより、第1〜第4の振動素子31〜34のうち一つの振動素子30には駆動電圧Vsが入力されず、かつ、このように駆動電圧Vsが入力されない振動素子30が切り替わる。したがって、一部の振動素子30を振動させる振動素子として用い、残りの振動素子30を操作面27の振動を検出する振動素子として用いることができる。
【0054】
なお、出力制御部55は、第1〜第4の印加電圧生成部51〜54を制御することもできる。例えば、出力制御部55は、動作モードが補正モードである場合において、第1〜第4の印加電圧生成部51〜54のうち振動部22へ出力する駆動電圧Vsを生成する印加電圧生成部50の動作をオンにし、残りの印加電圧生成部50をオフにすることができる。
【0055】
そして、印加電圧生成部50は、出力制御部55に動作がオフにされた場合に出力をハイインピーダンスにすることもできる。この場合、出力制御部55が切替部56の機能を有し、
図5に示す切替部56を設けなくてよい。
【0056】
電圧調整部57は、第1〜第4の印加電圧生成部51〜54によって生成させる駆動電圧Vs1〜Vs4の振幅および周波数を調整する。かかる電圧調整部57は、例えば、初期状態においては、駆動電圧Vs1〜Vs4の振幅および周波数の初期値を第1〜第4の印加電圧生成部51〜54に設定する。
【0057】
また、電圧調整部57は、出力電圧Vd1〜Vd4の振幅Vdm1〜Vdm4に基づいて、第1〜第4の振動素子31〜34による操作面27の振動状態を検出し、かかる振動状態に基づいて駆動電圧Vs1〜Vs4の振幅および周波数を調整することができる。かかる処理は、例えば、周期的(例えば、1回/日)または表示装置1の起動時に行われる。
【0058】
図7は、電圧調整部57の構成例を示す図である。
図7に示す電圧調整部57は、初期値記憶部81と、設定値出力部82と、補正演算部83と、を備える。
【0059】
初期値記憶部81は、駆動電圧Vs1〜Vs4の振幅初期値Vmo1〜Vmo4と、駆動電圧Vs1〜Vs4の周波数初期値fso1〜fso4とを記憶する。振幅初期値Vmo1〜Vmo4および周波数初期値fso1〜fso4は、例えば、表示装置1の製造時に調整された駆動電圧Vs1〜Vs4の初期値であり、例えば、表示装置1の製造時や工場出荷時に設定される。
【0060】
設定値出力部82は、振幅設定値Vm1〜Vm4および周波数設定値fs1〜fs4を第1〜第4の印加電圧生成部51〜54に設定する。具体的には、設定値出力部82は、振幅設定値Vm1および周波数設定値fs1を第1の印加電圧生成部51に設定する。これにより、第1の印加電圧生成部51は、振幅設定値Vm1および周波数設定値fs1と振幅と周波数が一致するように駆動電圧Vs1を生成して出力する。
【0061】
また、設定値出力部82は、振幅設定値Vm2および周波数設定値fs2を第2の印加電圧生成部52に設定する。これにより、第2の印加電圧生成部52は、振幅設定値Vm2および周波数設定値fs2と振幅と周波数が一致するように駆動電圧Vs2を生成して出力する。
【0062】
また、設定値出力部82は、振幅設定値Vm3および周波数設定値fs3を第3の印加電圧生成部53に設定する。これにより、第3の印加電圧生成部53は、振幅設定値Vm3および周波数設定値fs3と振幅と周波数が一致するように駆動電圧Vs3を生成して出力する。
【0063】
また、設定値出力部82は、振幅設定値Vm4および周波数設定値fs4を第4の印加電圧生成部54に設定する。これにより、第4の印加電圧生成部54は、振幅設定値Vm4および周波数設定値fs4と振幅と周波数が一致するように駆動電圧Vs4を生成して出力する。
【0064】
設定値出力部82は、初期状態において、初期値記憶部81に記憶された振幅初期値Vmo1〜Vmo4および周波数初期値fso1〜fso4を振幅設定値Vm1〜Vm4および周波数設定値fs1〜fs4として第1〜第4の印加電圧生成部51〜54に設定する。
【0065】
その後、設定値出力部82は、動作モードが振動モードである場合、振幅設定値Vm1〜Vm4および周波数設定値fs1〜fs4を第1〜第4の印加電圧生成部51〜54に設定する。また、補正演算部83の演算に基づいて振幅設定値Vm1〜Vm4および周波数設定値fs1〜fs4が変更された場合、設定値出力部82は、変更された振幅設定値Vm1〜Vm4および周波数設定値fs1〜fs4を第1〜第4の印加電圧生成部51〜54に設定する。
【0066】
例えば、設定値出力部82は、補正演算部83によって変更された周波数設定値fs1〜fs4を第1〜第4の印加電圧生成部51〜54に設定する。また、設定値出力部82は、補正演算部83から通知される第2振幅調整係数Km1〜Km4に基づいて振幅設定値Vm1〜Vm4を変更し、変更した振幅設定値Vm1〜Vm4を第1〜第4の印加電圧生成部51〜54に設定する。
【0067】
また、設定値出力部82は、補正モードの周波数補正制御処理において、周波数設定値fs1〜fs4を所定値Δfsずつずらしながら、第1〜第4の印加電圧生成部51〜54に設定する。
【0068】
これにより、第1〜第4の印加電圧生成部51〜54から所定値Δfsずつ周波数が変更された駆動電圧Vs1〜Vs4が出力される。第1〜第4の印加電圧生成部51〜54から同時に出力する駆動電圧Vs1〜Vs4の周波数は同じであることが望ましいが、駆動電圧Vs1〜Vs4の周波数は必ずしも互いに完全に同一の周波数にしなくてもよい。
【0069】
また、設定値出力部82は、補正モードの振幅補正制御処理において、振幅設定値Vm1〜Vm4にそれぞれ第1振幅調整係数Kn1〜Kn4を乗算し、かかる乗算結果を新たな振幅設定値Vm1〜Vm4として第1〜第4の印加電圧生成部51〜54に設定する。
【0070】
第1振幅調整係数Kn1〜Kn4(>1)は、振動モードで振動させる振動素子30の数と補正モードで振動させる振動素子30の数との差による振動量の差を補償する値に設定される。すなわち、振動モードと補正モードとで操作部21の操作面27の振動量が変わらないように第1振幅調整係数Kn1〜Kn4が設定される。
【0071】
なお、後述するように、設定値出力部82は、補正モードの振幅補正制御処理において、振幅設定値Vm1〜Vm4を変更しないようにすることもできる。この場合、補正演算部83は、振動モードと補正モードとの振動量の差を補償するように第2振幅調整係数Km1〜Km4を生成することができる。
【0072】
補正演算部83は、補正モードの周波数補正制御処理において、振動検出部25によって検出された振幅Vdm1〜Vdm4に基づいて、周波数設定値fs1〜fs4を決定する。例えば、補正演算部83は、振幅Vdm1〜Vdm4の平均値を最大にする駆動電圧Vs1〜Vs4の周波数を周波数設定値fs1〜fs4として決定することができる。
【0073】
これにより、例えば、操作部21の温度変化によって操作部21の共振周波数がずれた場合であっても、駆動電圧Vs1〜Vs4の周波数を操作部21の共振周波数に合せることができ、操作部21を効率的に振動させることができる。
【0074】
また、補正演算部83は、例えば、振幅Vdm1〜Vdm4のいずれか一つ以上が極大または最大になる駆動電圧Vs1〜Vs4の周波数を周波数設定値fs1〜fs4として決定することができる。
【0075】
また、補正演算部83は、例えば、振幅Vdm1〜Vdm4の平均値Vdmavまたは振幅Vdm1〜Vdm4のいずれか1以上が閾値以上になる駆動電圧Vs1〜Vs4の周波数を周波数設定値fs1〜fs4として決定することができる。
【0076】
補正演算部83は、補正モードの周波数補正制御処理において、周波数設定値fs1〜fs4を決定した後、決定した周波数設定値fs1〜fs4を設定値出力部82に設定する。これにより、補正演算部83から調整された周波数設定値fs1〜fs4と一致する周波数の駆動電圧Vs1〜Vs4を出力することができる。
【0077】
なお、補正演算部83は、決定した周波数設定値fs1〜fs4と周波数設定値fs1〜fs4との差Δfs1〜Δfs4を、補正演算部83に通知することもできる。この場合、設定値出力部82は、差Δfs1〜Δfs4をそれぞれ周波数設定値fs1〜fs4に加算することで、周波数設定値fs1〜fs4を生成する。
【0078】
また、補正演算部83は、補正モードの電圧補正制御処理において、振動検出部25によって検出された振幅Vdm1〜Vdm4に基づいて、駆動電圧Vs1〜Vs4の振幅を補正する第2振幅調整係数Km1〜Km4を演算する。
【0079】
例えば、補正演算部83は、振幅初期値Vmo1〜Vmo4のそれぞれに対する振幅Vdm1〜Vdm4の比を第2振幅調整係数Km1〜Km4として求めることができる。例えば、補正演算部83は、下記式(1)〜(4)の演算によって、第2振幅調整係数Km1〜Km4を求めることができる。
Km1=Vmo1/Vdm1 ・・・(1)
Km2=Vmo2/Vdm2 ・・・(2)
Km3=Vmo3/Vdm3 ・・・(3)
Km4=Vmo4/Vdm4 ・・・(4)
【0080】
この場合、設定値出力部82は、第2振幅調整係数Km1〜Km4をそれぞれ振幅設定値Vm1〜Vm4に乗算することで、新たな振幅設定値Vm1〜Vm4を更新することができる。
【0081】
なお、上述した例では、操作面27に振動量A(振動量Aは任意)を生じさせる駆動電圧Vsの振幅Vdmと、この振動量Aによって生じる出力電圧Vdの振幅Vdmは同じであるものとしているが、これらは同じでない場合がある。この場合、補正演算部83は、振動量Aにおける駆動電圧Vsの振幅Vdmと出力電圧Vdの振幅Vdmとの対応関係のずれを考慮した第2振幅調整係数Km1〜Km4を生成することができる。
【0082】
例えば、補正演算部83は、振動量Aにおける、出力電圧Vdの振幅Vdmに対する駆動電圧Vsの振幅Vdmの比Dmを調整係数Kmdとし、下記式(5)〜(8)の演算によって、第2振幅調整係数Km1〜Km4を求めることができる。なお、振幅Vdmと振幅Vdmとの対応関係のずれを補償することができればよく、第2振幅調整係数Km1〜Km4の生成は、下記式(5)〜(8)に限定されるものではない。
Km1=Dm×Vmo1/Vdm1 ・・・(5)
Km2=Dm×Vmo2/Vdm2 ・・・(6)
Km3=Dm×Vmo3/Vdm3 ・・・(7)
Km4=Dm×Vmo4/Vdm4 ・・・(8)
【0083】
また、設定値出力部82が補正モードの振幅補正制御処理において振幅設定値Vm1〜Vm4を変更しない場合、補正演算部83は、振動モードと補正モードとの振動量の差を補償するように第2振幅調整係数Km1〜Km4を生成することができる。この場合、補正演算部83は、振動モードと補正モードとの振動量の差を補償する係数K1〜K4を式(1)〜(4)の右辺に乗算することができ、また、係数K1〜K4を式(5)〜(8)の右辺に乗算することができる。
【0084】
なお、上述した例では、補正演算部83は、振幅Vdm1〜Vdm4のそれぞれに対する振幅初期値Vmo1〜Vmo4の比に基づいて、第2振幅調整係数Km1〜Km4を求めたが、第2振幅調整係数Km1〜Km4の演算方法はかかる方法に限定されない。
【0085】
例えば、補正演算部83は、振幅Vdm1〜Vdm4の平均値Vdmavに対する振幅初期値Vmo1〜Vmo4の平均値Vmoavの比に基づいて、第2振幅調整係数Km1〜Km4を求めることができる。例えば、補正演算部83は、下記式(9)または下記式(10)の演算によって第2振幅調整係数Km1〜Km4(以下、第2振幅調整係数Kmと総称する場合がある)を求めることができる。
Km=Vmoav/Vdmav ・・・(9)
Km=Dm×Vmoav/Vdmav ・・・(10)
【0086】
また、補正演算部83は、例えば、振動検出部25によって検出された振幅Vdm1〜Vdm4に基づき、上述した演算を行うことなく、予め設定された第2振幅調整係数Kmを設定値出力部82に設定することもできる。
【0087】
例えば、補正演算部83は、振幅Vdm1〜Vdm4の平均値Vdmavが閾値TH以下である場合、予め設定された固定係数Koを第2振幅調整係数Kmとして設定値出力部82に設定することができる。
【0088】
また、平均値Vdmavと比較する閾値THを複数設け、多段階に異なる固定係数Koを予め設定することもできる。例えば、補正演算部83は、第1閾値〜第3閾値TH1〜TH3と第1〜第3の固定係数Ko1〜Ko3とを有する。
【0089】
この場合、補正演算部83は、平均値Vdmavが第1閾値TH1未満第2閾値TH2以上であれば第1の固定係数Ko1を第2振幅調整係数Kmとする。また、補正演算部83は、平均値Vdmavが第2閾値TH2未満第3閾値TH3以上であれば第2の固定係数Ko2(>Ko1)を第2振幅調整係数Kmとする。また、補正演算部83は、平均値Vdmavが第3閾値TH3未満であれば第3の固定係数Ko3(>Ko2)を第2振幅調整係数Kmとする。
【0090】
また、振動制御部26は、振幅補正制御処理において、出力電圧Vd1〜Vd4の振幅Vdm1〜Vdm4に基づいて、第1〜第4の振動素子31〜34のうちいずれかに異常があるか否かを検出する。
【0091】
例えば、第1の振動素子31が故障しているか、第1の振動素子31と操作部21との接着状態の異常があるとする。この場合、出力電圧Vd1の振幅Vdm1が閾値Vth以下になったり、また、第1の振動素子31を振動させない場合の振幅Vdm2〜Vdm4の平均値に比べ、第1の振動素子31を振動させた場合の振幅Vdm(Vdm1を除く)の平均値が所定値以上小さくなったりする。
【0092】
振動制御部26の電圧調整部57は、出力電圧Vdの振幅Vdmが閾値Vth以下になった場合に、この出力電圧Vdに対応する振動素子30に異常があると判定することができる。また、振動制御部26の電圧調整部57は、各振動素子30について、振動させない場合の振幅Vdmの平均値に比べ、振動させた場合の振幅Vdmの平均値が所定値以上小さくなった場合に、異常があると判定することができる。
【0093】
ここで、補正モードの実行による操作面27の振動状態の変化について説明する。
図8は、操作面27の振動状態を示す図である。
図8(a)に示すように、振動部22が初期状態である場合、操作面27は、振動量M1で振動する。なお、振動制御部26は、例えば、操作部21へのユーザ操作に基づいて、振動部22への駆動電圧Vsの印加を開始する。これにより、操作面27の振動が開始される。
【0094】
また、振動部22が劣化した状態である場合や、温度変化によって振動部22の特性が変化した場合、
図8(b)に示すように、操作面27は、振動量M1より小さい振動量M2で振動することがある。
【0095】
そこで、振動制御部26は、
図8(c)に示すように、振動モードを実行する前に、補正モードを実行し、振動部22の振動素子30へ印加する駆動電圧Vsの振幅Vmおよび周波数fsを調整する。
【0096】
そして、振動制御部26は、次に実行する振動モードにおいて、振幅Vmおよび周波数fsが調整された駆動電圧Vsを振動部22の振動素子30へ印加する。これにより、振動モードにおいて、操作面27の振動量が初期状態と同様の振動量M1に調整される。
【0097】
図8(c)に示す例では、振動モードを実行する直前で補正モードを実行することから、振動開始当初は操作面27の振動量が小さいがすぐに振動量が調整される。振動量が小さいところから振動量が大きくなる場合、ユーザに対してそれほど違和感を与えずに振動量を調整することができる。また、振動させることが必要な状態で補正モードを実行するため、操作面27の振動時間を低減しつつ、操作面27の振動量の調整を行うことができる。
【0098】
また、振動制御部26は、
図8(d)に示すように、操作面27へのユーザ操作が行われていない状態で、補正モードを実行することができる。このように、操作面27へのユーザ操作が行われていない状態で補正モードを実行することにより、ユーザに対して違和感を与えることなく操作面27の振動量の調整を行うことができる。
【0099】
<3.入力装置12の処理>
次に、
図9を参照して入力装置12の振動制御部26によって実行される処理について説明する。
図9は、入力装置12の振動制御部26が実行する処理手順を示すフローチャートであり、かかる処理手順は振動制御部26によって繰り返し実行される。
【0100】
図9に示すように、入力装置12の振動制御部26は、補正モードの実行タイミングになったか否かを判定する(ステップS1)。かかる処理において、振動制御部26は、例えば、操作検出部24が所定のユーザ操作を検出した場合に、補正モードの実行タイミングになったと判定する。
【0101】
また、振動制御部26は、例えば、操作検出部24が所定のユーザ操作が検出されていない場合に、補正モードの実行タイミングになったと判定することもできる。なお、この場合、補正モードのタイミングとする周期は、所定の周期(例えば、1時間や1日)とすることができる。
【0102】
振動制御部26は、補正モードの実行タイミングになったと判定した場合(ステップS1;Yes)、振動制御部26は、周波数補正制御処理を実行し(ステップS2)、次に、振幅補正制御処理を実行する(ステップS3)。
【0103】
一方、補正モードの実行タイミングになっていないと判定した場合(ステップS1;No)、振動制御部26は、振動モードの実行タイミングになったか否かを判定する(ステップS4)。かかる処理において、振動制御部26は、例えば、操作検出部24が所定のユーザ操作を検出した場合に、振動モードの実行タイミングになったと判定する。
【0104】
なお、振動制御部26は、操作検出部24が所定のユーザ操作を検出した場合に補正モードを実行する場合、補正モードが終了した場合に、振動モードの実行タイミングになったと判定することができる。
【0105】
振動モードの実行タイミングになったと判定した場合(ステップS4;Yes)、振動制御部26は、駆動電圧Vs1〜Vs4を振動部22へ印加し、第1〜第4の振動素子31〜34を振動させる(ステップS5)。
【0106】
ステップS3の処理が終了した場合、振動制御部26は、異常検出したか否かを判定する(ステップS6)。かかる処理において、振動制御部26は、例えば、振幅補正制御処理において、上述したように、出力電圧Vd1〜Vd4の振幅Vdm1〜Vdm4に基づいて、第1〜第4の振動素子31〜34のうちいずれかに異常があるか否かを検出する。
【0107】
異常検出したと判定した場合(ステップS6;Yes)、振動制御部26は、第1〜第4の振動素子31〜34のうち異常がある振動素子30の情報を例えば表示制御部11へ通知する(ステップS7)。これにより、表示装置1のユーザは、振動素子30の異常を把握することができる。
【0108】
ステップS5、S7の処理が終了した場合、振動モードの実行タイミングになっていないと判定した場合(ステップS4;No)、および、異常検出がないと判定した場合(ステップS6;No)、振動制御部26は、次の演算周期においてステップS1からの処理を開始する。
【0109】
図10は、
図9に示すステップS2の周波数補正制御処理の流れを示すフローチャートである。
図10に示すように、振動制御部26は、出力電圧Vdの振幅Vdmが最大になったか否かを判定する(ステップS10)。
【0110】
かかる処理において、振動制御部26は、出力電圧Vdの振幅Vdmが最大になったか否かを、振幅Vdm1〜Vdm4の平均値が最大になったか否かや、振幅Vdm1〜Vdm4のいずれか一つ以上が極大または最大になるか否かによって判定することもできる。
【0111】
ステップS10において、出力電圧Vdの振幅Vdmが最大になっていないと判定した場合(ステップS10;No)、振動制御部26は、駆動電圧Vsの周波数fsを設定または変更する(ステップS11)。例えば、振動制御部26は、最初に印加する駆動電圧Vsの周波数fsを初期値に設定し、その後印加する駆動電圧Vsの周波数fsを前回の周波数から所定値Δfsだけ変更する。
【0112】
次に、振動制御部26は、一つの周波数fsに対して全ての振動素子30での出力電圧Vdの振幅Vdmの検出が完了したか否かを判定する(ステップS12)。振動制御部26は、全ての振動素子30での出力電圧Vdの振幅Vdmの検出が完了したと判定した場合(ステップS12;Yes)、処理をステップS10へ移行する。
【0113】
一方、振動制御部26は、全ての振動素子30での出力電圧Vdの振幅Vdmの検出が完了していないと判定すると(ステップS12;No)、駆動用振動素子とモニタ用振動素子とを決定する(ステップS13)。駆動用振動素子は、操作面27を振動させるために用いる振動素子30であり、モニタ用振動素子は、操作面27の振動を検出するために用いる振動素子30である。
【0114】
ステップS13の処理において、振動制御部26は、例えば、第1の振動素子31、第2の振動素子32、第3の振動素子33、第4の振動素子34の順に、モニタ用振動素子とし、残りの3つの振動素子30を駆動用振動素子として決定する。
【0115】
次に、振動制御部26は、ステップS13で決定した駆動用振動素子に駆動電圧Vsを印加し(ステップS14)、ステップS13で決定したモニタ用振動素子の出力電圧Vdを検出する(ステップS15)。その後、振動制御部26は、処理をステップS12へ移行する。
【0116】
また、出力電圧Vdの振幅Vdmが最大になったと判定した場合(ステップS10;Yes)、振動制御部26は、出力電圧Vdの振幅Vdmを最大にする駆動電圧Vsの周波数fsを周波数設定値fs1〜fs4として決定する(ステップS16)。
【0117】
図11は、
図9に示すステップS3の振幅補正制御処理の流れを示すフローチャートである。
図10に示すように、振動制御部26は、まず、全ての振動素子30での出力電圧Vdの振幅Vdmの検出が完了したか否かを判定する(ステップS20)。
【0118】
全ての振動素子30での出力電圧Vdの振幅Vdmの検出が終了していないと判定した場合(ステップS20;No)、振動制御部26は、駆動用振動素子とモニタ用振動素子を決定する(ステップS21)。かかるステップS21は、例えば、
図10に示すステップS13の処理と同様の処理である。
【0119】
次に、振動制御部26は、ステップS21で決定した駆動用振動素子に駆動電圧Vsを印加する(ステップS22)。また、ステップS21で決定したモニタ用振動素子の出力電圧Vdを検出する(ステップS23)。振動制御部26は、ステップS22、S23の処理が終了すると、処理をステップS20へ移行する。
【0120】
ステップS20の処理において、全ての振動素子30での出力電圧Vdの振幅Vdmの検出が終了したと判定した場合(ステップS20;Yes)、振動制御部26は、第2振幅調整係数Kmを演算する(ステップS24)。かかる処理において、振動制御部26は、例えば、上記式(1)〜(4)や上記式(5)〜(8)などに基づいて、第2振幅調整係数Kmを演算することができる。
【0121】
次に、振動制御部26は、第2振幅調整係数Kmに基づいて、振幅設定値Vm1〜Vm4を変更する(ステップS25)。これにより、振動制御部26は、適切に調整された駆動電圧Vs1〜Vs4を第1〜第4の振動素子31〜34へ印加することができる。
【0122】
上述した実施形態では、振動制御部26によって、周波数補正制御処理と振幅補正制御処理とを共に実行する例を説明したが、振動制御部26は、周波数補正制御処理および振幅補正制御処理の少なくとも一方を実行するものであってよい。
【0123】
また、上述した実施形態では、4つの振動素子30のうち、3つの振動素子30を駆動用振動素子として用い、1つの振動素子30をモニタ用振動素子として用いる例を主に説明したが、駆動用振動素子の数とモニタ用振動素子の数とは上述した例に限定されない。例えば、4つの振動素子30のうち2つの振動素子を駆動用振動素子とし、残りの2つの振動素子30をモニタ用振動素子とすることもできる。
【0124】
この場合、例えば、
図1に示す第1および第3の振動素子を駆動用振動素子とし、第2および第4の振動素子をモニタ用振動素子とすることができる。また、
図1に示す第1および第2の振動素子を駆動用振動素子とし、第3および第4の振動素子をモニタ用振動素子とすることができる。
【0125】
また、上述した例では、駆動用振動素子とモニタ用振動素子とを兼用する例を説明したが、駆動用振動素子とモニタ用振動素子とはそれぞれ専用であってもよい。
【0126】
<4.ハードウェア構成>
本実施形態に係る表示装置1は、
図12に一例として示す構成のコンピュータ100で実現することができる。
図12は、表示装置1の機能を実現するコンピュータの一例を示すハードウェア構成図である。
【0127】
コンピュータ100は、CPU110と、RAM120と、記憶部130と、メディアインターフェイス(I/F)150と、通信インターフェイス(I/F)160と、入出力インターフェイス(I/F)170〜172とを備える。なお、記憶部130は、例えば、HDD(Hard Disk Drive)、SSD(Solid State Drive)およびROMの少なくとも一つによって構成される。
【0128】
記憶部130は、例えば、コンピュータ100の起動時にCPU110によって実行されるブートプログラム、コンピュータ100のハードウェアに依存するプログラム、および、かかるプログラムによって使用されるデータ等を格納する。
【0129】
メディアI/F150は、記憶媒体180に格納されたプログラムやデータを読み取り、RAM120を介してCPU110に提供する。CPU110は、かかるプログラムを、メディアI/F150を介して記憶媒体180からRAM120上にロードし、ロードしたプログラムを実行する。あるいは、CPU110は、かかるデータを用いてプログラムを実行する。記憶媒体180は、例えばDVD(Digital Versatile Disc)などの光磁気記録媒体やSDカード、USBメモリなどである。
【0130】
通信I/F160は、ネットワーク190を介して他の機器からデータを受信してCPU110に送り、CPU110が生成したデータを、ネットワーク190を介して他の機器へ送信する。あるいは、通信I/F160は、ネットワーク190を介して他の機器からプログラムを受信してCPU110に送り、CPU110がかかるプログラムを実行する。
【0131】
CPU110は、入出力I/F170を介して、生成したデータをディスプレイ等の表示部10やスピーカ等の出力部へ出力し、表示部10や出力部を制御する。また、CPU110は、入出力I/F171を介して、操作部12へのユーザの接触位置に応じた検出値を取得する。また、CPU110は、入出力I/F172を介して、振動部22の振動素子30へ駆動電圧Vsを出力し、操作部21の操作面27の振動を制御したり、振動素子30の出力電圧Vdを取得したりする。
【0132】
コンピュータ100が表示装置1として機能する場合、コンピュータ100のCPU110は、RAM120上にロードされたプログラムを実行することにより、表示制御部11、操作検出部24、振動検出部25および振動制御部26の各機能を実現する。
【0133】
コンピュータ100のCPU110は、例えばこれらのプログラムを記憶媒体180から読み取って実行するが、他の例として、他の装置からネットワーク190を介してこれらのプログラムを取得してもよい。また、記憶部130は、例えば、初期値記憶部81が記憶する情報を記憶することができる。
【0134】
<5.効果等>
以上のように、実施形態に係る入力装置12は、複数の振動素子30と、制御部23とを備える。複数の振動素子30は、操作面27を振動させる。制御部23は、複数の振動素子30の一部によって操作面27を振動させた状態で、残りの少なくとも一つの振動素子30によって操作面27の振動状態を検出する。これにより、例えば、入力装置12の部品の経年劣化あるいは温度特性によって操作面27の振動状態が変化しているか否かを検出することができる。
【0135】
また、制御部23は、複数の振動素子30を振動させて操作面27を振動させる振動モード(第1モードの一例)と、複数の振動素子30の一部によって操作面27を振動させた状態で、残りの少なくとも一つの振動素子30によって操作面27の振動状態を検出する補正モード(第2モードの一例)とを切り替えて実行する。これにより、操作面27を振動させるために用いる振動素子30を操作面の振動を検出する振動素子30と兼用することができる。そのため、操作面27の振動を検出する部品を別途追加することを避けることができ、コストや部品点数を抑えつつ、入力装置12の振動状態を検出することが可能となる。
【0136】
また、制御部23は、振動制御部26と、振動検出部25とを備える。振動制御部26は、振動モードにおいて複数の振動素子30にそれぞれ駆動電圧Vsを印加して複数の振動素子30を振動させ、かつ、補正モードにおいて駆動用振動素子(一部の振動素子の一例)に駆動電圧Vsを印加して駆動用振動素子を振動させる。振動検出部25は、補正モードにおいてモニタ用振動素子(残りの少なくとも一つの振動素子の一例)から出力される出力電圧Vdに基づいて、出力電圧Vdの振幅Vdm(操作面27の振動状態の一例)を検出する。これにより、例えば、振動素子30が圧電素子の場合に、入力装置12の部品の経年劣化あるいは温度特性によって操作面27の振動状態が変化しているか否かを精度よく検出することができる。
【0137】
また、振動制御部26は、電圧調整部57を備える。電圧調整部57は、振動検出部25によって検出された出力電圧Vdの振幅Vdm(操作面27の振動状態の一例)に基づいて、駆動用振動素子に印加する駆動電圧Vsの振幅Vmおよび周波数fsの少なくとも一方を調整する。これにより、例えば、操作部21の共振周波数が変化した場合であっても、振動素子30の周波数を操作部21の共振周波数に合せることができ、また、振動素子30が劣化した場合であっても、操作部21の振動状態を一定に維持することができる。
【0138】
また、電圧調整部57は、予め設定された第1〜第3の固定係数Ko1〜Ko3(係数の一例)に基づいて、駆動用振動素子に印加する駆動電圧Vsの振幅Vmおよび周波数fsの少なくとも一方を調整する。これにより、複雑な演算を行うことなく、容易に駆動電圧Vsを調整することができる。
【0139】
また、電圧調整部57は、振幅初期値Vmo1〜Vmo4(予め設定された基準値の一例)と出力電圧Vdの振幅Vdmとの関係(例えば、比)に基づいて、駆動用振動素子に印加する駆動電圧Vsの振幅Vmおよび周波数fsの少なくとも一方を調整する。これにより、駆動電圧Vsを精度よく調整することができる。
【0140】
また、振動制御部26は、補正モードにおいて複数の振動素子30の中から操作面27の振動状態を検出する振動素子30を所定の規則に従って切り替える切替部56を備える。これにより、各振動素子30による操作面27の振動状態を検出することができ、例えば、各振動素子30の劣化および故障や各振動素子30の操作部21への状態などを精度よく検出することができる。
【0141】
また、電圧調整部57は、複数の振動素子30のすべてが操作面27の振動状態を検出する振動素子30として切替部56によって切り替えられてそれぞれの振動素子30で検出された操作面27の振動状態に基づいて、複数の振動素子30に印加する駆動電圧Vsの振幅Vmおよび周波数fsの少なくとも一方を調整する。これにより、例えば、操作面27の振動をより高精度に調整することができる。
【0142】
また、制御部23は、操作面27へのユーザによる所定の接触操作を検出する操作検出部24を備える。振動制御部26は、操作検出部24によって所定の接触操作が検出されている状態で補正モードを実行する。これにより、ユーザに対して違和感を与えることなく操作面27の振動量の調整を行うことができる。
【0143】
また、制御部23は、操作面27へのユーザによる所定の接触操作を検出する操作検出部24を備える。振動制御部26は、操作検出部24によって所定の接触操作が検出されていない状態で補正モードを実行する。これにより、例えば、振動量が小さいところから振動量が大きくなる場合、ユーザに対してそれほど違和感を与えずに振動量を調整することができる。
【0144】
また、制御部23は、操作検出部24によって所定の接触操作の検出が開始された場合に補正モードを実行し、その後、振動モードを実行する。これにより、振動させることが必要な状態で補正モードを実行するため、操作面27の振動時間を低減しつつ、操作面27の振動量の調整を行うことができる。
【0145】
また、実施形態にかかる表示装置1は、上述した入力装置12と、入力装置12によって受け付けられたユーザの入力操作に応じて、画像を表示する表示部10と、を備える。これにより、入力装置の部品の経年劣化あるいは温度特性によって操作面27の振動状態が変化しているか否かを検出することができる表示装置1を提供することができる。
【0146】
さらなる効果や変形例は、当業者によって容易に導き出すことができる。このため、本発明のより広範な態様は、以上のように表しかつ記述した特定の詳細および代表的な実施形態に限定されるものではない。したがって、添付の特許請求の範囲およびその均等物によって定義される総括的な発明の概念の精神または範囲から逸脱することなく、様々な変更が可能である。