以下、本発明の駆動制御装置、電子機器、及び駆動制御方法を適用した実施の形態について説明する。
<実施の形態>
図1は、実施の形態の電子機器100を示す斜視図である。
電子機器100は、一例として、タッチパネルを入力操作部とする、スマートフォン端末機、又は、タブレット型コンピュータである。電子機器100は、タッチパネルを入力操作部とする機器であればよいため、例えば、携帯情報端末機、又は、ATM(Automatic Teller Machine)のように特定の場所に設置されて利用される機器であってもよい。
電子機器100の入力操作部101は、タッチパネルの下にディスプレイパネルが配設されており、ディスプレイパネルにGUI(Graphic User Interface)による様々なボタン102A、又は、スライダー102B等(以下、GUI操作部102と称す)が表示される。
電子機器100の利用者は、通常、GUI操作部102を操作するために、指先で入力操作部101に触れる。
次に、図2を用いて、電子機器100の具体的な構成について説明する。
図2は、実施の形態の電子機器100を示す平面図であり、図3は、図2に示す電子機器100のA−A矢視断面を示す図である。なお、図2及び図3では、図示するように直交座標系であるXYZ座標系を定義する。
電子機器100は、筐体110、トップパネル120、両面テープ130、振動素子140、タッチパネル150、ディスプレイパネル160、及び基板170を含む。
筐体110は、例えば、樹脂製であり、図3に示すように凹部110Aに基板170、ディスプレイパネル160、及びタッチパネル150が配設されるとともに、両面テープ130によってトップパネル120が接着されている。
トップパネル120は、平面視で長方形の薄い平板状の部材であり、透明なガラス、又は、ポリカーボネートのような強化プラスティックで作製される。トップパネル120の表面(Z軸正方向側の面)は、電子機器100の利用者が操作入力を行う操作面の一例である。
トップパネル120は、Z軸負方向側の面に振動素子140が接着され、平面視における四辺が両面テープ130によって筐体110に接着されている。なお、両面テープ130は、トップパネル120の四辺を筐体110に接着できればよく、図3に示すように矩形環状である必要はない。
トップパネル120のZ軸負方向側にはタッチパネル150が配設される。トップパネル120は、タッチパネル150の表面を保護するために設けられている。なお、トップパネル120の表面に、さらに別なパネル又は保護膜等が設けられていてもよい。
トップパネル120は、Z軸負方向側の面に振動素子140が接着された状態で、振動素子140が駆動されることによって振動する。実施の形態では、トップパネル120の固有振動周波数でトップパネル120を振動させて、トップパネル120に定在波を生じさせる。ただし、トップパネル120には振動素子140が接着されているため、実際には、振動素子140の重さ等を考慮した上で、固有振動周波数を決めることが好ましい。
振動素子140は、トップパネル120のZ軸負方向側の面において、Y軸正方向側において、X軸方向に伸延する短辺に沿って接着されている。振動素子140は、超音波帯の振動を発生できる素子であればよく、例えば、ピエゾ素子のような圧電素子を含むものを用いることができる。
振動素子140は、後述する駆動制御部から出力される駆動信号によって駆動される。振動素子140が発生する振動の振幅(強度)及び周波数は駆動信号によって設定される。また、振動素子140のオン/オフは駆動信号によって制御される。
なお、超音波帯とは、例えば、約20kHz以上の周波数帯をいう。実施の形態の電子機器100では、振動素子140が振動する周波数は、トップパネル120の振動数と等しくなるため、振動素子140は、トップパネル120の固有振動数で振動するように駆動信号によって駆動される。
タッチパネル150は、ディスプレイパネル160の上(Z軸正方向側)で、トップパネル120の下(Z軸負方向側)に配設されている。タッチパネル150は、電子機器100の利用者がトップパネル120に触れる位置(以下、操作入力の位置と称す)を検出する座標検出部の一例である。
タッチパネル150の下にあるディスプレイパネル160には、GUIによる様々なボタン等(以下、GUI操作部と称す)が表示される。このため、電子機器100の利用者は、通常、GUI操作部を操作するために、指先でトップパネル120に触れる。
タッチパネル150は、利用者のトップパネル120への操作入力の位置を検出できる座標検出部であればよく、例えば、静電容量型又は抵抗膜型の座標検出部であればよい。ここでは、タッチパネル150が静電容量型の座標検出部である形態について説明する。タッチパネル150とトップパネル120との間に隙間があっても、静電容量型のタッチパネル150は、トップパネル120への操作入力を検出できる。
また、ここでは、タッチパネル150の入力面側にトップパネル120が配設される形態について説明するが、トップパネル120はタッチパネル150と一体的であってもよい。この場合、タッチパネル150の表面が図2及び図3に示すトップパネル120の表面になり、操作面を構築する。また、図2及び図3に示すトップパネル120を省いた構成であってもよい。この場合も、タッチパネル150の表面が操作面を構築する。また、この場合には、操作面を有する部材を、当該部材の固有振動で振動させればよい。
また、タッチパネル150が静電容量型の場合は、トップパネル120の上にタッチパネル150が配設されていてもよい。この場合も、タッチパネル150の表面が操作面を構築する。また、タッチパネル150が静電容量型の場合は、図2及び図3に示すトップパネル120を省いた構成であってもよい。この場合も、タッチパネル150の表面が操作面を構築する。また、この場合には、操作面を有する部材を、当該部材の固有振動で振動させればよい。
ディスプレイパネル160は、例えば、液晶ディスプレイパネル又は有機EL(Electroluminescence)パネル等の画像を表示できる表示部であればよい。ディスプレイパネル160は、筐体110の凹部110Aの内部で、図示を省略するホルダ等によって基板170の上(Z軸正方向側)に設置される。
ディスプレイパネル160は、後述するドライバIC(Integrated Circuit)によって駆動制御が行われ、電子機器100の動作状況に応じて、GUI操作部、画像、文字、記号、図形等を表示する。
基板170は、筐体110の凹部110Aの内部に配設される。基板170の上には、ディスプレイパネル160及びタッチパネル150が配設される。ディスプレイパネル160及びタッチパネル150は、図示を省略するホルダ等によって基板170及び筐体110に固定されている。
基板170には、後述する駆動制御装置の他に、電子機器100の駆動に必要な種々の回路等が実装される。
以上のような構成の電子機器100は、トップパネル120に利用者の指が接触し、指先の移動を検出すると、基板170に実装される駆動制御部が振動素子140を駆動し、トップパネル120を超音波帯の周波数で振動させる。この超音波帯の周波数は、トップパネル120と振動素子140とを含む共振系の共振周波数であり、トップパネル120に定在波を発生させる。
電子機器100は、超音波帯の定在波を発生させることにより、トップパネル120を通じて利用者に触感を提供する。
次に、図4を用いて、トップパネル120に発生させる定在波について説明する。
図4は、超音波帯の固有振動によってトップパネル120に生じる定在波のうち、トップパネル120の短辺に平行に形成される波頭を示す図であり、図4の(A)は側面図、(B)は斜視図である。図4の(A)、(B)では、図2及び図3と同様のXYZ座標を定義する。なお、図4の(A)、(B)では、理解しやすさのために、定在波の振幅を誇張して示す。また、図4の(A)、(B)では振動素子140を省略する。
トップパネル120のヤング率E、密度ρ、ポアソン比δ、長辺寸法l、厚さtと、長辺方向に存在する定在波の周期数kとを用いると、トップパネル120の固有振動数(共振周波数)fは次式(1)、(2)で表される。定在波は1/2周期単位で同じ波形を有するため、周期数kは、0.5刻みの値を取り、0.5、1、1.5、2・・・となる。
なお、式(2)の係数αは、式(1)におけるk
2以外の係数をまとめて表したものである。
図4の(A)、(B)に示す定在波は、一例として、周期数kが10の場合の波形である。例えば、トップパネル120として、長辺の長さlが140mm、短辺の長さが80mm、厚さtが0.7mmのGorilla(登録商標)ガラスを用いる場合には、周期数kが10の場合に、固有振動数fは33.5[kHz]となる。この場合は、周波数が33.5[kHz]の駆動信号を用いればよい。
トップパネル120は、平板状の部材であるが、振動素子140(図2及び図3参照)を駆動して超音波帯の固有振動を発生させると、図4の(A)、(B)に示すように撓むことにより、表面に定在波が生じる。
なお、ここでは、1つの振動素子140がトップパネル120のZ軸負方向側の面において、Y軸正方向側において、X軸方向に伸延する短辺に沿って接着される形態について説明するが、振動素子140を2つ用いてもよい。2つの振動素子140を用いる場合は、もう1つの振動素子140をトップパネル120のZ軸負方向側の面において、Y軸負方向側において、X軸方向に伸延する短辺に沿って接着すればよい。この場合に、2つの振動素子140は、トップパネル120の2つの短辺に平行な中心線を対称軸として、軸対称になるように配設すればよい。
また、2つの振動素子140を駆動する場合は、周期数kが整数の場合は同一位相で駆動すればよく、周期数kが奇数の場合は逆位相で駆動すればよい。
次に、図5を用いて、電子機器100のトップパネル120に生じさせる超音波帯の固有振動について説明する。
図5は、電子機器100のトップパネル120に生じさせる超音波帯の固有振動により、操作入力を行う指先に掛かる動摩擦力が変化する様子を説明する図である。図5の(A)、(B)では、利用者が指先でトップパネル120に触れながら、指をトップパネル120の奥側から手前側に矢印に沿って移動する操作入力を行っている。なお、振動のオン/オフは、振動素子140(図2及び図3参照)をオン/オフすることによって行われる。
また、図5の(A)、(B)では、トップパネル120の奥行き方向において、振動がオフの間に指が触れる範囲をグレーで示し、振動がオンの間に指が触れる範囲を白く示す。
超音波帯の固有振動は、図4に示すようにトップパネル120の全体に生じるが、図5の(A)、(B)には、利用者の指がトップパネル120の奥側から手前側に移動する間に振動のオン/オフを切り替える動作パターンを示す。
このため、図5の(A)、(B)では、トップパネル120の奥行き方向において、振動がオフの間に指が触れる範囲をグレーで示し、振動がオンの間に指が触れる範囲を白く示す。
図5の(A)に示す動作パターンでは、利用者の指がトップパネル120の奥側にあるときに振動がオフであり、指を手前側に移動させる途中で振動がオンになっている。
一方、図5の(B)に示す動作パターンでは、利用者の指がトップパネル120の奥側にあるときに振動がオンであり、指を手前側に移動させる途中で振動がオフになっている。
ここで、トップパネル120に超音波帯の固有振動を生じさせると、トップパネル120の表面と指との間にスクイーズ効果による空気層が介在し、指でトップパネル120の表面をなぞったときの動摩擦係数が低下する。
従って、図5の(A)では、トップパネル120の奥側にグレーで示す範囲では、指先に掛かる動摩擦力は大きく、トップパネル120の手前側に白く示す範囲では、指先に掛かる動摩擦力は小さくなる。
このため、図5の(A)に示すようにトップパネル120に操作入力を行う利用者は、振動がオンになると、指先に掛かる動摩擦力の低下を感知し、指先の滑り易さを知覚することになる。このとき、利用者はトップパネル120の表面がより滑らかになることにより、動摩擦力が低下するときに、トップパネル120の表面に凹部が存在するように感じる。
一方、図5の(B)では、トップパネル120の奥前側に白く示す範囲では、指先に掛かる動摩擦力は小さく、トップパネル120の手前側にグレーで示す範囲では、指先に掛かる動摩擦力は大きくなる。
このため、図5の(B)に示すようにトップパネル120に操作入力を行う利用者は、振動がオフになると、指先に掛かる動摩擦力の増大を感知し、指先の滑り難さ、あるいは、引っ掛かる感じを知覚することになる。そして、指先が滑りにくくなることにより、動摩擦力が高くなるときに、トップパネル120の表面に凸部が存在するように感じる。
以上より、図5の(A)と(B)の場合は、利用者は指先で凹凸を感じ取ることができる。このように人間が凹凸の知覚することは、例えば、"触感デザインのための印刷物転写法とSticky-band Illusion"(第11回計測自動制御学会システムインテグレーション部門講演会論文集 (SI2010, 仙台)____174-177, 2010-12)に記載されている。また、"Fishbone Tactile Illusion"(日本バーチャルリアリティ学会第10 回大会論文集(2005 年9 月))にも記載されている。
なお、ここでは、振動のオン/オフを切り替える場合の動摩擦力の変化について説明したが、これは、振動素子140の振幅(強度)を変化させた場合も同様である。
次に、図6を用いて、実施の形態の電子機器100の構成について説明する。
図6は、実施の形態の電子機器100の構成を示す図である。
電子機器100は、振動素子140、アンプ141、タッチパネル150、ドライバIC(Integrated Circuit)151、ディスプレイパネル160、ドライバIC161、制御部200、正弦波発生器310、及び振幅変調器320を含む。
制御部200は、アプリケーションプロセッサ220、通信プロセッサ230、駆動制御部240、及びメモリ250を有する。制御部200は、例えば、ICチップで実現される。
また、駆動制御部240、正弦波発生器310、及び振幅変調器320は、駆動制御装置300を構築する。なお、ここでは、アプリケーションプロセッサ220、通信プロセッサ230、駆動制御部240、及びメモリ250が1つの制御部200によって実現される形態について説明するが、駆動制御部240は、制御部200の外部に別のICチップ又はプロセッサとして設けられていてもよい。この場合には、メモリ250に格納されているデータのうち、駆動制御部240の駆動制御に必要なデータは、メモリ250とは別のメモリに格納して、駆動制御装置300の内部に設ければよい。
図6では、筐体110、トップパネル120、両面テープ130、及び基板170(図2参照)は省略する。また、ここでは、アンプ141、ドライバIC151、ドライバIC161、駆動制御部240、メモリ250、正弦波発生器310、及び振幅変調器320について説明する。
アンプ141は、駆動制御装置300と振動素子140との間に配設されており、駆動制御装置300から出力される駆動信号を増幅して振動素子140を駆動する。
ドライバIC151は、タッチパネル150に接続されており、タッチパネル150への操作入力があった位置を表す位置データを検出し、位置データを制御部200に出力する。この結果、位置データは、アプリケーションプロセッサ220と駆動制御部240に入力される。なお、位置データが駆動制御部240に入力されることは、位置データが駆動制御装置300に入力されることと等価である。
ドライバIC161は、ディスプレイパネル160に接続されており、駆動制御装置300から出力される描画データをディスプレイパネル160に入力し、描画データに基づく画像をディスプレイパネル160に表示させる。これにより、ディスプレイパネル160には、描画データに基づくGUI操作部又は画像等が表示される。
アプリケーションプロセッサ220は、電子機器100の種々のアプリケーションを実行する処理を行う。
通信プロセッサ230は、電子機器100が3G(Generation)、4G(Generation)、LTE(Long Term Evolution)、WiFi等の通信を行うために必要な処理を実行する。
駆動制御部240は、2つの所定の条件が揃った場合に、振幅データを振幅変調器320に出力する。振幅データは、振動素子140の駆動に用いる駆動信号の強度を調整するための振幅値を表すデータである。振幅値は、位置データの時間的変化度合に応じて設定される。ここで、位置データの時間的変化度合としては、利用者の指先がトップパネル120の表面に沿って移動する速度を用いる。利用者の指先の移動速度は、ドライバIC151から入力される位置データの時間的な変化度合に基づいて、駆動制御部240が算出する。
実施の形態の駆動制御装置300は、一例として、指先の移動速度に関わらずに利用者が指先から感知する触感を一定にするために、移動速度が高いほど振幅値を小さくし、移動速度が低いほど振幅値を大きくする。
このような振幅値を表す振幅データと移動速度との関係を表す第1データは、メモリ250に格納されている。
なお、ここでは、第1データを用いて移動速度に応じた振幅値を設定する形態について説明するが、次式(3)を用いて振幅値Aを算出してもよい。式(3)で算出される振幅値Aは、移動速度が高いほど小さくなり、移動速度が低いほど大きくなる。
ここで、A0は振幅の基準値であり、Vは指先の移動速度であり、aは所定の定数である。式(3)を用いて振幅値Aを算出する場合は、式(3)を表すデータと、振幅の基準値A0と所定の定数aを表すデータとをメモリ250に格納しておけばよい。
また、実施の形態の駆動制御装置300は、利用者の指先がトップパネル120の表面に沿って移動したときに、指先に掛かる動摩擦力を変化させるためにトップパネル120を振動させる。動摩擦力は、指先が移動しているときに発生するため、駆動制御部240は、移動速度が所定の閾値速度以上になったときに、振動素子140を振動させる。移動速度が所定の閾値速度以上になることは、1つ目の所定の条件である。
従って、駆動制御部240が出力する振幅データが表す振幅値は、移動速度が所定の閾値速度未満のときはゼロであり、移動速度が所定の閾値速度以上になると、移動速度に応じて所定の振幅値に設定される。移動速度が所定の閾値速度以上のときには、移動速度が高いほど振幅値は小さく設定され、移動速度が低いほど振幅値を大きく設定される。
また、実施の形態の駆動制御装置300は、操作入力を行う指先の位置が、振動を発生させるべき所定の領域内にある場合に、振幅データを振幅変調器320に出力する。操作入力を行う指先の位置が、振動を発生させるべき所定の領域内にあることは、2つ目の所定条件である。
操作入力を行う指先の位置が振動を発生させるべき所定の領域内にあるかどうかは、操作入力を行う指先の位置が、振動を発生させるべき所定の領域の内部にあるか否かに基づいて判定される。
ここで、ディスプレイパネル160に表示するGUI操作部、画像を表示する領域、又は、ページ全体を表す領域等のディスプレイパネル160上における位置は、当該領域を表す領域データによって特定される。領域データは、すべてのアプリケーションにおいて、ディスプレイパネル160に表示されるすべてのGUI操作部、画像を表示する領域、又は、ページ全体を表す領域について存在する。
このため、2つ目の所定条件として、操作入力を行う指先の位置が、振動を発生させるべき所定の領域内にあるかどうかを判定する際には、電子機器100が起動しているアプリケーションの種類が関係することになる。アプリケーションの種類により、ディスプレイパネル160の表示が異なるからである。
また、アプリケーションの種類により、トップパネル120の表面に触れた指先を移動させる操作入力の種類が異なるからである。トップパネル120の表面に触れた指先を移動させる操作入力の種類としては、例えば、GUI操作部を操作する際には、所謂フリック操作がある。フリック操作は、指先をトップパネル120の表面に沿って、はじく(スナップする)ように比較的短い距離移動させる操作である。
また、ページを捲る場合には、例えば、スワイプ操作を行う。スワイプ操作は、指先をトップパネル120の表面に沿って掃くように比較的長い距離移動させる操作である。スワイプ操作は、ページを捲る場合の他に、例えば、写真を捲る場合に行われる。また、GUI操作部によるスライダー(図1のスライダー102B参照)をスライドさせる場合には、スライダーをドラッグするドラッグ操作が行われる。
ここで一例として挙げるフリック操作、スワイプ操作、及びドラッグ操作のように、トップパネル120の表面に触れた指先を移動させる操作入力は、アプリケーションによる表示の種類によって使い分けられる。このため、操作入力を行う指先の位置が、振動を発生させるべき所定の領域内にあるかどうかを判定する際には、電子機器100が起動しているアプリケーションの種類が関係することになる。
駆動制御部240は、領域データを用いて、ドライバIC151から入力される位置データが表す位置が、振動を発生させるべき所定の領域の内部にあるか否かを判定する。
アプリケーションの種類を表すデータと、操作入力が行われるGUI操作部等を表す領域データと、振動パターンを表すパターンデータとを関連付けた第2データは、メモリ250に格納されている。
また、駆動制御部240は、ドライバIC151から駆動制御装置300に位置データが入力されてから、当該位置データに基づいて駆動信号が算出されるまでの所要時間の間における指先の位置の変化分を補間するために、次の処理を行う。
駆動制御装置300は、所定の制御周期毎に演算を行う。これは駆動制御部240も同様である。このため、ドライバIC151から駆動制御装置300に位置データが入力されてから、当該位置データに基づいて駆動制御部240が駆動信号を算出するまでの所要時間をΔtとすると、所要時間Δtは、制御周期に等しい。
ここで、指先の移動速度は、ドライバIC151から駆動制御装置300に入力される位置データが表す点(x1、y1)を始点とし、所要時間Δtが経過した後の指先の位置を終点(x2、y2)とするベクトルの速度として求めることができる。
駆動制御部240は、ドライバIC151から駆動制御装置300に入力される位置データが表す点(x2、y2)を始点とし、所要時間Δtが経過した後の指先の位置を終点(x3、y3)とするベクトルを求めることにより、所要時間Δt経過後の座標(x3、y3)を推定する。
実施の形態の電子機器100では、上述のようにして所要時間Δt経過後の座標を推定することにより、所要時間Δtの間における指先の位置の変化分を補間する。
このような所要時間Δt経過後の座標を推定する演算は、駆動制御部240が行う。駆動制御部240は、推定座標が振動を発生させるべき所定の領域の内部にあるか否かを判定し、振動を発生させるべき所定の領域の内部にある場合に振動を発生させる。従って、2つ目の所定の条件は、推定座標が振動を発生させるべき所定の領域の内部にあることである。
以上より、駆動制御部240が振幅データを振幅変調器320に出力するために必要な2つの所定の条件は、指先の移動速度が所定の閾値速度以上であることと、推定座標が振動を発生させるべき所定の領域の内部にあることである。
駆動制御部240は、指先の移動速度が所定の閾値速度以上であり、推定座標が振動を発生させるべき所定の領域の内部にある場合に、移動速度に応じた振幅値を表す振幅データをメモリ250から読み出して、振幅変調器320に出力する。
メモリ250は、振幅値を表す振幅データと移動速度との関係を表す第1データ、及び、アプリケーションの種類を表すデータと、操作入力が行われるGUI操作部等を表す領域データと、振動パターンを表すパターンデータとを関連付けた第2データを格納する。
また、メモリ250は、アプリケーションプロセッサ220がアプリケーションの実行に必要とするデータ及びプログラム、及び、通信プロセッサ230が通信処理に必要とするデータ及びプログラム等を格納する。
正弦波発生器310は、トップパネル120を固有振動数で振動させるための駆動信号を生成するのに必要な正弦波を発生させる。例えば、トップパネル120を33.5[kHz]の固有振動数fで振動させる場合は、正弦波の周波数は、33.5[kHz]となる。正弦波発生器310は、超音波帯の正弦波信号を振幅変調器320に入力する。
振幅変調器320は、駆動制御部240から入力される振幅データを用いて、正弦波発生器310から入力される正弦波信号の振幅を変調して駆動信号を生成する。振幅変調器320は、正弦波発生器310から入力される超音波帯の正弦波信号の振幅のみを変調し、周波数及び位相は変調せずに、駆動信号を生成する。
このため、振幅変調器320が出力する駆動信号は、正弦波発生器310から入力される超音波帯の正弦波信号の振幅のみを変調した超音波帯の正弦波信号である。なお、振幅データがゼロの場合は、駆動信号の振幅はゼロになる。これは、振幅変調器320が駆動信号を出力しないことと等しい。
次に、図7を用いて、メモリ250に格納される第1データ、及び、第2データについて説明する。
図7は、メモリ250に格納される第1データと第2データを示す図である。
図7の(A)に示すように、第1データは、振幅値を表す振幅データと、移動速度とを関連付けたデータである。図7の(A)に示す第1データによれば、移動速度Vが0以上b1未満(0≦V<b1)のときは振幅値を0に設定し、移動速度Vがb1以上b2未満(b1≦V<b2)のときは振幅値をA1に設定し、移動速度Vがb2以上b3未満(b2≦V<b3)のときは、振幅値をA2に設定することになる。
また、図7の(B)に示すように、第2データは、アプリケーションの種類を表すデータと、操作入力が行われるGUI操作部等が表示される領域の座標値を表す領域データと、振動パターンを表すパターンデータとを関連付けたデータである。
図7の(B)では、アプリケーションの種類を表すデータとして、アプリケーションID(Identification)を示す。また、領域データとして、操作入力が行われるGUI操作部等が表示される領域の座標値を表す式f1~f4を示す。また、振動パターンを表すパターンデータとして、P1〜P4を示す。
なお、第2データに含まれるアプリケーションIDで表されるアプリケーションは、スマートフォン端末機、又は、タブレット型コンピュータで利用可能なあらゆるアプリケーションを含み、電子メールの編集モードも含む。
次に、図8を用いて、実施の形態の電子機器100の駆動制御装置300の駆動制御部240が実行する処理について説明する。
図8は、実施の形態の電子機器100の駆動制御装置300の駆動制御部240が実行する処理を示すフローチャートである。
電子機器100のOS(Operating System)は、所定の制御周期毎に電子機器100を駆動するための制御を実行する。このため、駆動制御装置300は、所定の制御周期毎に演算を行う。これは駆動制御部240も同様であり、駆動制御部240は、図8に示すフローを所定の制御周期毎に繰り返し実行する。
ここで、ドライバIC151から駆動制御装置300に位置データが入力されてから、当該位置データに基づいて駆動制御部240が駆動信号を算出するまでの所要時間をΔtとすると、所要時間Δtは、制御周期に略等しい。
制御周期の1周期の時間は、ドライバIC151から駆動制御装置300に位置データが入力されてから、当該位置データに基づいて駆動信号が算出されるまでの所要時間Δtに相当するものとして取り扱うことができる。
駆動制御部240は、電子機器100の電源がオンにされることにより、処理をスタートさせる。
駆動制御部240は、現在の位置データが表す座標と、現在のアプリケーションの種類とに応じて、現在操作入力が行われているGUI操作部について、振動パターンと関連付けられた領域データを取得する(ステップS1)。
駆動制御部240は、移動速度が所定の閾値速度以上であるか否かを判定する(ステップS2)。移動速度は、ベクトル演算によって算出すればよい。なお、閾値速度は、所謂フリック操作、スワイプ操作、又はドラッグ操作等のように指先を移動させながら操作入力を行う際における指先の移動速度の最低速度として設定すればよい。このような最低速度は、実験結果に基づいて設定してもよく、タッチパネル150の分解能等に応じて設定してもよい。
駆動制御部240は、ステップS2で移動速度が所定の閾値速度以上であると判定した場合は、現在の位置データが表す座標と、移動速度とに基づき、Δt時間後の推定座標を演算する(ステップS3)。
駆動制御部240は、Δt時間後の推定座標が、ステップS1で求めた領域データが表す領域Stの中になるか否かを判定する(ステップS4)。
駆動制御部240は、Δt時間後の推定座標が、ステップS1で求めた領域データが表す領域Stの中にあると判定する場合は、ステップS2で求めた移動速度に対応する振幅値を表す振幅データを第1データから求める(ステップS5)。
駆動制御部240は、振幅データ出力する(ステップS6)。これにより、振幅変調器320において、正弦波発生器310から出力される正弦波の振幅が変調されることによって駆動信号が生成され、振動素子140が駆動される。
一方、ステップS2で移動速度が所定の閾値速度以上ではないと判定した場合(S2:NO)と、ステップS4でΔt時間後の推定座標が、ステップS1で求めた領域データが表す領域Stの中にないと判定した場合は、駆動制御部240は、振幅値をゼロに設定する(ステップS7)。
この結果、駆動制御部240は、振幅値がゼロの振幅データが出力され、振幅変調器320において、正弦波発生器310から出力される正弦波の振幅がゼロに変調された駆動信号が生成される。このため、この場合は、振動素子140は駆動されない。
次に、図9乃至図14を用いて、実施の形態の電子機器100の動作例について説明する。
図9乃至図14は、実施の形態の電子機器100の動作例を示す図である。図9乃至図14では、図2乃至図4と同様のXYZ座標を定義する。
図9は、トップパネル120、タッチパネル150、及びディスプレイパネル160を平面的に示す図であり、電子機器100の利用者は、グレーで示すページ1に指先で触れて、左方向にスワイプ操作を行うことにより、白く示すページ2を開こうとしている。すなわち、電子機器100の表示は、ページ1からページ2に遷移しようとしている。
このように、ページを捲る動作が行われる動作モードでは、駆動制御部240は、操作入力がスワイプ操作であるかどうかを判定する。例えば、駆動制御部240は、利用者の指先が最初にトップパネル120に触れた位置からX軸方向に±dmm以上動いたらスワイプ操作が行われていると判定し、斜線で示す領域の内部に指先が入ったときにトップパネル120に振動が発生する。斜線で示す領域は、領域Stである。
ここで、図10を用いて、図9に示すように操作入力が行われた場合に、駆動制御部240が出力する振幅データに基づいて振幅変調器320から出力される駆動信号によってトップパネル120に生じる振動について説明する。図10において、横軸は時間軸を表し、縦軸は振幅データの振幅値を表す。また、ここでは、利用者がスワイプ操作を行う際の指先の移動速度は略一定であることとする。
トップパネル120の位置C1に触れた指先を、時刻t1において利用者が左方向に移動し始めたとする。そして、位置C1から距離dmmだけ移動させた時刻t2において、駆動制御部240は、利用者の入力操作がスワイプ操作であると判定し、スワイプ用の振動パターンによる駆動を行う。スワイプ操作の判定に用いる操作距離dmmは、時刻t1〜t2の間の指先の移動距離に相当する。また、時刻t2では、ページの遷移が開始する。
スワイプ用の振動パターンは、振幅がA11であり、スワイプ操作が行われている間は、振動が連続する駆動パターンである。
時刻t3で利用者が指先をトップパネル120から離してスワイプ操作を終えると、駆動制御部240は、振幅値をゼロに設定する。このため、時刻t3の直後に振幅がゼロになる。また、時刻t3の後の時刻t4においてページの遷移が完了する。
このように、利用者がページを捲るためにスワイプ操作を行った場合には、駆動制御部240は、一例として、振幅が一定値(A11)の振幅データを出力する。このため、利用者がスワイプ操作を行っている間は、利用者の指先に掛かる動摩擦力は低下し、利用者に指先が滑る感覚を提供することができ、利用者はスワイプ操作が電子機器100に受け付けられていることを指先で感知することができる。
また、次に、図11及び図12を用いて、所謂フリック操作による操作入力が行われる場合の駆動制御部240の動作について説明する。
図11には、電子メールを編集する動作モードにおいて、利用者の指先が位置C11にあるアルファベットの"j"を触れた状態から"l"を選択するために、矢印で示すように上向きのフリック操作を行った状態を示す。図11では、"A, B, C, 2 or #"の入力を行うためのGUI操作部のY軸正方向側に、"j, k, l, 5 or &"のいずれを選択したかを示す円形のサブ表示領域165が表示されている。サブ表示領域165では、フリック操作によって選択された"l"がハイライトされている。
このように、電子メールを編集する動作モードでは、利用者のフリック操作によって文字の入力が行われるため、駆動制御部240は、操作入力がフリック操作であるかどうかを判定する。そして、電子メールを編集する動作モードでは、次のようにトップパネル120の振動が行われる。
図12に示すように、利用者がアルファベットの"j"の上の位置C11に時刻t11において触れた指先を、時刻t12においてY軸正方向に移動し始めたとする。そして、位置C11から指先を移動させたことを判定した直後に振動が始まり、利用者に指先が滑る感覚を提供する。これにより、利用者は、アルファベットの"j"の上で指先を移動させている操作入力が電子機器100に受け付けられていることを指先で感知することができる。このとき、トップパネル120には固有振動が生じているため、利用者の指先は滑りやすくなっており、フリック動作を行いやすい状態になる。
そして、時刻t13において、フリック操作により選択文字が"l"に遷移するとGUI操作部の表示も"l"がハイライトされた状態に更新され、それに伴い領域Stを更新し、所定の領域外に指が位置いていると判定して振幅をゼロにする。
このため、時刻t14ではトップパネル120の振幅がゼロになり、利用者の指先に掛かる動摩擦力が大きくなり、利用者に指先が引っ掛かる感覚を提供する。このように、動摩擦力が大きくなることにより、利用者は指先が突起に触れたように感じる。
これにより、利用者は、アルファベットの"l"を選択する操作入力が電子機器100に受け付けられたことを指先で感知することができる。
なお、ここでは、図11及び図12を用いて、GUI操作部としての"j, k, l, 5 or &"の入力を行うためのGUI操作部を操作する場合について説明したが、例えば、図1に示すスライダー102BのGUI操作部を左右に動かす場合には、所定の移動量毎に振動を発生させればよい。また、スライダー102BのGUI操作部の操作を利用者に知覚させるために、任意の振動パターンでトップパネル120を振動させてもよい。
また、次に、図13及び図14を用いて、計算機のアプリケーションを実行している動作モードにおいて、操作入力が行われる場合の駆動制御部240の動作について説明する。
図13に示すように、計算機のアプリケーションを実行している動作モードにおいて、利用者の指先が数字の'6'、に触れた状態から、指先を左方向に移動させることにより、数字の'5'、'4'の順番になぞる移動操作入力が行われた場合には、次のようにトップパネル120の振動が行われる。このような移動操作入力は、フリック操作、スワイプ操作、又はドラッグ操作とは異なり、複数のGUI操作部が並べられて表示されている状態で、指先が複数のGUI操作部を跨いで移動しながら行う操作入力である。
この場合に、図14に示すように、利用者が数字の'6'の上の位置C21(図13参照)に触れた指先を、時刻t21において移動し始めたとする。そして、位置C21から少し指先を移動させて、指先の位置が数字の'6'の領域から外に出て数字の'5'に入る時刻t22に短時間で振幅の大きな振動B11が生じる。
この振動B11は、指先の位置が数字の'6'の領域から外に出ることによって生成されるものであり、利用者の指先を知覚されないほど短時間の低摩擦状態から、瞬時的に高摩擦状態にすることにより、利用者に指先が突起に触れた触感を提供する。
また、指先が数字の'5'の内部をさらに左方向に移動すると、時刻t23から短時間で振幅の小さな振動B12が一定の時間間隔で発生する。これは、数字の'5'はテンキーの中心に位置していることから、トップパネル120を目視しなくても利用者が指先の感覚だけで、数字の'5'を触れていることを感知できるようにするために発生させる振動である。
そして、時刻t24において、指先が数字の'5'の領域から出て'4'の領域に入ると、短時間で振幅の大きな振動B13を発生させる。これは、振動B11と同様の振動であり、利用者の指先を知覚されないほど短時間の低摩擦状態から、瞬時的に高摩擦状態にして、利用者に指先が突起に触れた触感を提供することにより、指先が数字の'5'の領域から'4'の領域に入ったことを触感で感知させるためである。
これにより、利用者は、数字の'6'、'5'、'4'を順番になぞったことを感知することができる。
以上、実施の形態の電子機器100によれば、トップパネル120の超音波帯の固有振動を発生させて利用者の指先に掛かる動摩擦力を変化させるので、利用者に良好な触感を提供することができる。
また、実施の形態の電子機器100は、正弦波発生器310で発生される超音波帯の正弦波の振幅のみを振幅変調器320で変調することによって駆動信号を生成している。正弦波発生器310で発生される超音波帯の正弦波の周波数は、トップパネル120の固有振動数に等しく、また、この固有振動数は振動素子140を加味して設定している。
すなわち、正弦波発生器310で発生される超音波帯の正弦波の周波数又は位相を変調することなく、振幅のみを振幅変調器320で変調することによって駆動信号を生成している。
従って、トップパネル120の超音波帯の固有振動をトップパネル120に発生させることができ、スクイーズ効果による空気層の介在を利用して、指でトップパネル120の表面をなぞったときの動摩擦係数を確実に低下させることができる。また、Sticky-band Illusion効果、又は、Fishbone Tactile Illusion効果により、トップパネル120の表面に凹凸が存在するような良好な触感を利用者に提供することができる。
また、制御周期の1周期の時間に相当する所要時間Δtが経過した後の座標を推定して得る推定座標が振動を発生させるべき所定の領域の内部にある場合に振動を発生させるので、実際に指先が所定のGUI操作部等に触れている間に振動を発生させることができる。
なお、制御周期の1周期の時間に相当する所要時間Δt分の遅れが問題にならない場合は、推定座標の演算を行わなくてもよい。
また、以上では、トップパネル120に凹凸が存在するような触感を利用者に提供するために、振動素子140のオン/オフを切り替える形態について説明した。振動素子140をオフにするとは、振動素子140を駆動する駆動信号が表す振幅値をゼロにすることである。
しかしながら、このような触感を提供するために、必ずしも振動素子140をオンからオフにする必要はない。例えば、振動素子140のオフの状態の代わりに、振幅を小さくして振動素子140を駆動する状態を用いてもよい。例えば、振幅を1/5程度に小さくすることにより、振動素子140をオンからオフにする場合と同様に、トップパネル120に凹凸が存在するような触感を利用者に提供してもよい。
この場合は、振動素子140の振動の強弱を切り替えるような駆動信号で振動素子140を駆動することになる。この結果、トップパネル120に発生する固有振動の強弱が切り替えられ、利用者の指先に凹凸が存在するような触感を提供することができる。
振動素子140の振動の強弱を切り替えるために、振動を弱くする際に振動素子140をオフにすると、振動素子140のオン/オフを切り替えることになる。振動素子140のオン/オフを切り替えることは、振動素子140を断続的に駆動することである。
以上、実施の形態によれば、良好な触感を提供できる駆動制御装置300、電子機器100、及び駆動制御方法を提供することができる。
以上、本発明の例示的な実施の形態の駆動制御装置、電子機器、及び駆動制御方法について説明したが、本発明は、具体的に開示された実施の形態に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。