本発明の一実施形態について図1から図10に基づいて説明すると以下の通りである。
本実施形態に係るデータ表示/センサ装置100(メニュー表示装置)は、ユーザの指が上記センサ内蔵液晶パネル301(面状部材)の表面上にあるときに、当該センサ内蔵液晶パネル301が検知した指の像を取得すると共に、当該指の像における指先の位置を示す指先位置座標Bを求める座標算出部121(座標算出手段)と、座標算出部121が求めた指先位置座標上または指先位置座標近傍を通り、ユーザの指が上記センサ内蔵液晶パネル301の表面上を移動したときに、当該指の指先が通る仮想的な線分を決定する軌跡算出部123(線分決定手段)と、上記軌跡算出部123が決定した仮想的な線分上に上記メニューのメニュー項目を配置するための位置座標を求める配置可能位置算出部124(位置算出手段)と、上記配置可能位置算出部124が求めた位置座標の示す位置に、ユーザが選択可能なメニュー項目を配置したメニュー表示画面を表示させるメニュー表示画面生成部132(画面表示手段)と、を備えている。
これにより、データ表示/センサ装置100は、ユーザにセンサ内蔵液晶パネル301上に指を置く(センサ内蔵液晶パネル301の表面上をなぞる)という簡易な操作を行わせるだけで、当該ユーザの手の大きさにあわせたメニュー表示を行うことが可能となる。このため、データ表示/センサ装置100は、ユーザの操作性および利便性を向上させることができる。
まず、以下で、上記データ表示/センサ装置100が備えるセンサ内蔵液晶パネル301の概要について説明する。
(センサ内蔵液晶パネルの概要)
上記データ表示/センサ装置100が備えるセンサ内蔵液晶パネル301は、データの表示に加え、対象物の画像検出が可能な液晶パネルである。ここで、対象物の画像検出とは、例えば、ユーザが指やペンなどでポインティング(タッチ)した位置の検出や、印刷物等の画像の読み取り(スキャン)である。なお、表示に用いるデバイスは、液晶パネルに限定されるものではなく、有機EL(Electro Luminescence)パネルなどであってもよい。
図2を参照しながら、センサ内蔵液晶パネル301の構造について説明する。図2は、センサ内蔵液晶パネル301の断面を模式的に示す図である。なお、ここで説明するセンサ内蔵液晶パネル301は一例であり、表示面と読取面とが共用されているものであれば、任意の構造のものが利用できる。
図示のとおり、センサ内蔵液晶パネル301は、背面側に配置されるアクティブマトリクス基板51Aと、表面側に配置される対向基板51Bとを備え、これら基板の間に液晶層52を挟持した構造を有している。アクティブマトリクス基板51Aには、画素電極56、データ信号線57、光センサ回路32(図示せず)、配向膜58、偏光板59などが設けられる。対向基板51Bには、カラーフィルタ53r(赤)、53g(緑)、53b(青)、遮光膜54、対向電極55、配向膜58、偏光板59などが設けられる。また、センサ内蔵液晶パネル301の背面には、バックライト307が設けられている。
なお、光センサ回路32に含まれるフォトダイオード6は、青のカラーフィルタ53bを設けた画素電極56の近傍に設けられているが、この構成に限定されるものではない。赤のカラーフィルタ53rを設けた画素電極56の近傍に設けてもよいし、緑のカラーフィルタ53gを設けた画素電極56の近傍に設けてもよい。
次に、図3(a)および図3(b)を参照しながら、ユーザが、指やペンで、センサ内蔵液晶パネル301上をタッチした位置を検出する2種類の方法について説明する。
図3(a)は、反射像を検知することにより、ユーザがタッチした位置を検出する様子を示す模式図である。バックライト307から光63が出射されると、フォトダイオード6を含む光センサ回路32は、指などの対象物64により反射された光63を検知する。これにより、対象物64の反射像を検知することができる。このように、センサ内蔵液晶パネル301は、反射像を検知することにより、タッチした位置を検出することができる。
また、図3(b)は、影像を検知することにより、ユーザがタッチした位置を検出する様子を示す模式図である。図3(b)に示すように、フォトダイオード6を含む光センサ回路32は、対向基板51Bなどを透過した外光61を検知する。しかしながら、ペンなどの対象物62がある場合は、外光61の入射が妨げられるので、光センサ回路32が検知する光量が減る。これにより、対象物62の影像を検知することができる。このように、センサ内蔵液晶パネル301は、影像を検知することにより、タッチした位置を検出することもできる。
上述のように、フォトダイオード6は、バックライト307より出射された光の反射光(影像)を検知してもよいし、外光による影像を検知してもよい。また、上記2種類の検知方法を併用して、影像と反射像とを両方を同時に検知するようにしてもよい。
(データ表示/センサ装置の要部構成)
次に、図4を参照しながら、上記データ表示/センサ装置100の要部構成について説明する。図4は、データ表示/センサ装置100の要部構成を示すブロック図である。図示のように、データ表示/センサ装置100は、1または複数の表示/光センサ部300、回路制御部600、データ処理部700、主制御部800、記憶部901、一次記憶部902、操作部903、外部通信部907、音声出力部908、および音声入力部909を備えている。ここでは、データ表示/センサ装置100は、表示/光センサ部300を2つ(第1表示/光センサ部300Aおよび第2表示/光センサ部300B)備えているものとして説明する。なお、第1表示/光センサ部300Aおよび第2表示/光センサ部300Bを区別しないときは、表示/光センサ部300と表記する。
表示/光センサ部300は、いわゆる光センサ内蔵液晶表示装置である。表示/光センサ部300は、センサ内蔵液晶パネル301、バックライト307、それらを駆動するための周辺回路309を含んで構成される。
センサ内蔵液晶パネル301は、マトリクス状に配置された複数の画素回路31および光センサ回路32を含んで構成される。センサ内蔵液晶パネル301の詳細な構成については後述する。
周辺回路309は、液晶パネル駆動回路304、光センサ駆動回路305、信号変換回路306、バックライト駆動回路308を含む。
液晶パネル駆動回路304は、回路制御部600の表示制御部601からのタイミング制御信号(TC1)およびデータ信号(D)に従って、制御信号(G)およびデータ信号(S)を出力し、画素回路31を駆動する回路である。画素回路31の駆動方法の詳細については後述する。
光センサ駆動回路305は、回路制御部600のセンサ制御部602からのタイミング制御信号(TC2)に従って、信号線(R)に電圧を印加し、光センサ回路32を駆動する回路である。光センサ回路32の駆動方法の詳細については後述する。
信号変換回路306は、光センサ回路32から出力されるセンサ出力信号(SS)をデジタル信号(DS)に変換し、該変換後の信号をセンサ制御部602に送信する回路である。
バックライト307は、複数の白色LED(Light Emitting Diode)を含んでおり、センサ内蔵液晶パネル301の背面に配置される。そして、バックライト駆動回路308から電源電圧が印加されると、バックライト307は点灯し、センサ内蔵液晶パネル301に光を照射する。なお、バックライト307は、白色LEDに限らず、他の色のLEDを含んでいてもよい。また、バックライト307は、LEDに代えて、例えば、冷陰極管(CCFL:Cold Cathode Fluorescent Lamp)を含むものであってもよい。
バックライト駆動回路308は、回路制御部600のバックライト制御部603からの制御信号(BK)がハイレベルであるときは、バックライト307に電源電圧を印加し、逆に、バックライト制御部603からの制御信号がローレベルであるときは、バックライト307に電源電圧を印加しない。
次に、回路制御部600について説明する。回路制御部600は、表示/光センサ部300の周辺回路309を制御するデバイスドライバとしての機能を備えるものである。回路制御部600は、表示制御部601、センサ制御部602、バックライト制御部603、および表示データ記憶部604を備えている。
表示制御部601は、データ処理部700の表示データ処理部701から表示データを受信するとともに、表示データ処理部701からの指示に従って、表示/光センサ部300の液晶パネル駆動回路304に、タイミング制御信号(TC1)およびデータ信号(D)を送信し、上記受信した表示データをセンサ内蔵液晶パネル301に表示させる。
なお、表示制御部601は、表示データ処理部701から受信した表示データを、表示データ記憶部604に一次記憶させる。そして、当該一次記憶させた表示データに基づいて、データ信号(D)を生成する。表示データ記憶部604は、例えば、VRAM(video random access memory)などである。
センサ制御部602は、データ処理部700のセンサデータ処理部703からの指示に従って、表示/光センサ部300の光センサ駆動回路305に、タイミング制御信号(TC2)を送信し、センサ内蔵液晶パネル301にてスキャンを実行させる。
また、センサ制御部602は、信号変換回路306からデジタル信号(DS)を受信する。そして、センサ内蔵液晶パネル301に含まれる全ての光センサ回路32から出力されたセンサ出力信号(SS)に対応するデジタル信号(DS)に基づいて、画像データを生成する。つまり、センサ内蔵液晶パネル301の読み取り領域全体で読み取った画像データを生成する。そして、該生成した画像データをセンサデータ処理部703に送信する。
バックライト制御部603は、表示データ処理部701およびセンサデータ処理部703からの指示に従って、表示/光センサ部300のバックライト駆動回路308に制御信号(BK)を送信し、バックライト307を駆動させる。
なお、データ表示/センサ装置100が、複数の表示/光センサ部300を備える場合、表示制御部601は、データ処理部700から、どの表示/光センサ部300にて表示データを表示するかの指示を受けたとき、当該指示に応じた表示/光センサ部300の液晶パネル駆動回路304を制御する。また、センサ制御部602は、データ処理部700から、どの表示/光センサ部300にて対象物のスキャンを行なうかの指示を受けたとき、当該指示に応じた表示/光センサ部300の光センサ駆動回路305を制御するとともに、当該指示に応じた表示/光センサ部300の信号変換回路306からデジタル信号(DS)を受信する。
次に、データ処理部700について説明する。データ処理部700は、主制御部800から受信する「コマンド」に基づいて、回路制御部600に指示を与えるミドルウェアとしての機能を備えるものである。なお、コマンドの詳細については後述する。
データ処理部700は、表示データ処理部701およびセンサデータ処理部703を備えている。そして、データ処理部700が、主制御部800からコマンドを受信すると、該受信したコマンドに含まれる各フィールド(後述する)の値に応じて、表示データ処理部701およびセンサデータ処理部703の少なくとも一方が動作する。
表示データ処理部701は、主制御部800から表示データを受信するとともに、データ処理部700が受信したコマンドに従って、表示制御部601およびバックライト制御部603に指示を与え、上記受信した表示データをセンサ内蔵液晶パネル301に表示させる。なお、コマンドに応じた、表示データ処理部701の動作については、後述する。
センサデータ処理部703は、データ処理部700が受信したコマンドに従って、センサ制御部602およびバックライト制御部603に指示を与える。
また、センサデータ処理部703は、センサ制御部602から画像データを受信し、当該画像データをそのまま画像データバッファ704に格納する。そして、センサデータ処理部703は、データ処理部700が受信したコマンドに従って、画像データバッファ704に記憶されている画像データに基づいて、「全体画像データ」、「部分画像データ(部分画像の座標データを含む)」、および「座標データ」の少なくともいずれか1つを、主制御部800に送信する。なお、全体画像データ、部分画像データ、および座標データについては、後述する。また、コマンドに応じた、センサデータ処理部703の動作については、後述する。
次に、主制御部800は、アプリケーションプログラムを実行するものである。主制御部800は、記憶部901に格納されているプログラムを、例えばRAM(Random Access Memory)等で構成される一次記憶部902に読み出して実行する。
主制御部800で実行されるアプリケーションプログラムは、センサ内蔵液晶パネル301に表示データを表示させたり、センサ内蔵液晶パネル301にて対象物のスキャンを行わせるために、データ処理部700に対して、コマンドおよび表示データを送信する。また、コマンドに「データ種別」を指定した場合は、当該コマンドの応答として、全体画像データ、部分画像データ、および座標データの少なくともいずれか1つを、データ処理部700から受信する。
なお、回路制御部600、データ処理部700、および主制御部800は、それぞれ、CPU(Central Processing Unit)およびメモリ等で構成することができる。また、データ処理部700は、ASIC(application specific integrate circuit)などの回路で構成されていてもよい。
次に、記憶部901は、図示のように、主制御部800が実行するプログラムおよびデータを格納するものである。なお、主制御部800が実行するプログラムは、アプリケーション固有のプログラムと、各アプリケーションが共用可能な汎用プログラムとに分離されていてもよい。
次に、操作部903は、データ表示/センサ装置100のユーザの入力操作を受けつけるものである。操作部903は、例えば、スイッチ、リモコン、マウス、キーボードなどの入力デバイスで構成される。そして、操作部903は、データ表示/センサ装置100のユーザの入力操作に応じた制御信号を生成し、該生成した制御信号を主制御部800へ送信する。
なお、上記スイッチの例としては、筐体のヒンジ部分に設けられ、筐体の開閉状態を検出するヒンジ部スイッチ904、電源のオンとオフとを切り替える電源スイッチ905、予め所定の機能が割り当てられているユーザスイッチ906などのハードウェアスイッチを想定している。
その他、データ表示/センサ装置100は、無線/有線通信によって外部装置と通信を行なうための外部通信部907、音声を出力するためのスピーカ等の音声出力部908、音声信号を入力するためのマイク等の音声入力部909などを適宜備えていてもよい。
(コマンドの詳細)
次に、図5および図6を参照しながら、主制御部800からデータ処理部700に送信されるコマンドの詳細について説明する。図5は、コマンドのフレーム構造の一例を模式的に示す図である。また、図6は、コマンドに含まれる各フィールドに指定可能な値の一例、および、その概要を説明する図である。
図5に示すように、コマンドは、「ヘッダ」、「データ取得タイミング」、「データ種別」、「スキャン方式」、「スキャン画像階調」、「スキャン解像度」、「スキャンパネル」、「表示パネル」、および「予備」の各フィールドを含んでいる。そして、各フィールドには、例えば、図6に示す値が指定可能である。
「ヘッダ」フィールドは、フレームの開始を示すフィールドである。「ヘッダ」フィールドであることが識別可能であれば、「ヘッダ」フィールドの値は、どのような値であってもよい。
次に、「データ取得タイミング」フィールドは、データを主制御部800へ送信すべきタイミングを指定するフィールドである。「データ取得タイミング」フィールドには、例えば、“00”(センス)、“01”(イベント)、および“10”(オール)という値が指定可能である。
ここで、“センス”は、最新のデータを直ちに送信することを指定するものである。よって、センサデータ処理部703は、「データ取得タイミング」フィールドの値が“センス”であるコマンドを受信すると、「データ種別」フィールドにて指定されている最新のデータを、直ちに、主制御部800に送信する。
また、“イベント”は、センサ制御部602から受信する画像データに変化が生じたタイミングで送信することを指定するものである。よって、センサデータ処理部703は、「データ取得タイミング」フィールドの値が“イベント”であるコマンドを受信すると、「データ種別」フィールドにて指定されているデータを、センサ制御部602から受信する画像データに、所定の閾値より大きい変化が生じたタイミングで、主制御部800に送信する。
また、“オール”は、所定周期でデータを送信することを指定するものである。よって、センサデータ処理部703は、「データ取得タイミング」フィールドの値が“オール”であるコマンドを受信すると、「データ種別」フィールドにて指定されているデータを、所定周期で、主制御部800に送信する。なお、上記所定周期は、光センサ回路32にてスキャンを行なう周期と一致する。
次に、「データ種別」フィールドは、センサデータ処理部703から取得するデータの種別を指定するフィールドである。なお、「データ種別」フィールドには、例えば、“001”(座標)、“010”(部分画像)、および“100”(全体画像)という値が指定可能である。さらに、これらの値を加算することによって、“座標”と、“部分画像”/“全体画像”とを、同時に指定可能である。例えば、“座標”と“部分画像”とを同時に指定する場合、“011”と指定することができる。
センサデータ処理部703は、「データ種別」フィールドの値が“全体画像”であるコマンドを受信すると、画像データバッファ704に記憶している画像データそのものを主制御部800に送信する。画像データバッファ704に記憶している画像データそのものを、「全体画像データ」と称する。
また、センサデータ処理部703は、「データ種別」フィールドの値が“部分画像”であるコマンドを受信すると、センサ制御部602から受信する画像データから、所定の閾値より大きい変化が生じた部分を含む領域を抽出し、該抽出した領域の画像データを主制御部800に送信する。ここで、当該画像データを、「部分画像データ」と称する。なお、上記部分画像データが複数抽出された場合、センサデータ処理部703は、該抽出されたそれぞれの部分画像データを主制御部800に送信する。
さらに、センサデータ処理部703は、「データ種別」フィールドの値が“部分画像”であるコマンドを受信したとき、部分画像データにおける代表座標を検出し、当該代表座標の部分画像データにおける位置を示す座標データを主制御部800に送信する。なお、上記代表座標とは、例えば、上記部分画像データの中心の座標、上記部分画像データの重心の座標などが挙げられる。
次に、センサデータ処理部703は、「データ種別」フィールドの値が“座標”であるコマンドを受信すると、上記代表座標の全体画像データにおける位置を示す座標データを主制御部800に送信する。なお、上記部分画像データが複数抽出された場合、センサデータ処理部703は、該抽出された、それぞれの部分画像データの、全体画像データにおける代表座標を検出し、当該代表座標を示す座標データのそれぞれを主制御部800に送信する(多点検出)。
なお、全体画像データ、部分画像データ、および座標データの具体例については、模式図を参照しながら後述する。
次に、「スキャン方式」フィールドは、スキャン実行時に、バックライト307を点灯するか否かを指定するフィールドである。「スキャン方式」フィールドには、例えば、“00”(反射)、“01”(透過)、および“10”(反射/透過)という値が指定可能である。
“反射”は、バックライト307を点灯した状態でスキャンを行なうことを指定するものである。よって、センサデータ処理部703は、「スキャン方式」フィールドの値が“反射”であるコマンドを受信すると、光センサ駆動回路305とバックライト駆動回路308とが同期して動作するように、センサ制御部602とバックライト制御部603とに指示を与える。
また、“透過”は、バックライト307を消灯した状態でスキャンを行なうことを指定するものである。よって、センサデータ処理部703は、「スキャン方式」フィールドの値が“透過”であるコマンドを受信すると、光センサ駆動回路305を動作させ、バックライト駆動回路308と動作させないようにセンサ制御部602とバックライト制御部603とに指示を与える。なお、“反射/透過”は、“反射”と“透過”とを併用してスキャンを行なうことを指定するものである。
次に、「スキャン画像階調」フィールドは、部分画像データおよび全体画像データの階調を指定するフィールドである。「スキャン画像階調」フィールドには、例えば、“00”(2値)、および“01”(多値)という値が指定可能である。
ここで、センサデータ処理部703は、「スキャン画像階調」フィールドの値が“2値”であるコマンドを受信すると、部分画像データおよび全体画像データをモノクロデータとして、主制御部800に送信する。
また、センサデータ処理部703は、「スキャン画像階調」フィールドの値が“多値”であるコマンドを受信すると、部分画像データおよび全体画像データを多階調データとして、主制御部800に送信する。
次に、「スキャン解像度」フィールドは、部分画像データおよび全体画像データの解像度を指定するフィールドである。「スキャン解像度」フィールドには、例えば、“0”(高)および“1”(低)という値が指定可能である。
ここで、“高”は、高解像度を指定するものである。よって、センサデータ処理部703は、「スキャン解像度」フィールドの値が“高”であるコマンドを受信すると、部分画像データおよび全体画像データを高解像度で主制御部800に送信する。例えば、画像認識などの画像処理を行なう対象の画像データ(指紋などの画像データ)には、“高”を指定することが望ましい。
また、“低”は、低解像度を指定するものである。よって、センサデータ処理部703は、「スキャン解像度」フィールドの値が“低”であるコマンドを受信すると、部分画像データおよび全体画像データを低解像度で主制御部800に送信する。例えば、タッチした位置等が分かる程度でよい画像データ(タッチした指や手の画像データなど)には、“低”を指定することが望ましい。
次に、「スキャンパネル」フィールドは、どの表示/光センサ部300にて対象物のスキャンを行なうかを指定するフィールドである。「スキャンパネル」フィールドには、例えば、“001”(第1表示/光センサ部300A)、“010”(第2表示/光センサ部300B)という値が指定可能である。なお、これらの値を加算することによって、複数の表示/光センサ部300を同時に指定可能である。例えば、“第1表示/光センサ部300A”と“第2表示/光センサ部300B”とを同時に指定する場合、“011”と指定することができる。
ここで、センサデータ処理部703は、「スキャンパネル」フィールドの値が“第1表示/光センサ部300A”であるコマンドを受信すると、第1表示/光センサ部300Aの光センサ駆動回路305およびバックライト駆動回路308を制御するように、センサ制御部602およびバックライト制御部603に指示を与える。
次に、「表示パネル」フィールドは、どの表示/光センサ部300にて表示データを表示させるかを指定するフィールドである。「表示パネル」フィールドには、例えば、“001”(第1表示/光センサ部300A)、“010”(第2表示/光センサ部300B)という値が指定可能である。なお、これらの値を加算することによって、複数の表示/光センサ部300を同時に指定可能である。例えば、“第1表示/光センサ部300A”と“第2表示/光センサ部300B”とを同時に指定する場合、“011”と指定することができる。
ここで、表示データ処理部701は、例えば、「表示パネル」フィールドの値が“第1表示/光センサ部300A”であるコマンドを受信すると、第1表示/光センサ部300Aに表示データを表示させるために、第1表示/光センサ部300Aの液晶パネル駆動回路304およびバックライト駆動回路308を制御するように、表示制御部601およびバックライト制御部603に指示を与える。
次に、「予備」フィールドは、上述したフィールドにて指定可能な情報以外の情報をさらに指定する必要がある場合に、適宜指定されるフィールドである。
なお、主制御部800にて実行されるアプリケーションは、コマンドを送信するにあたり、上述したフィールドを全て使用する必要はなく、使用しないフィールドには無効値(NULL値など)を設定しておけばよい。
また、ユーザが指やペンなどでタッチした位置の座標データを取得したいときは、「データ種別」フィールドに“座標”を指定したコマンドをデータ処理部700に送信することとなるが、指やペンなどは動きがあるため、さらに、当該コマンドの「データ取得タイミング」フィールドに“オール”を指定し、座標データを取得するようにすることが望ましい。また、タッチした位置の座標データが取得できればよいため、スキャンの精度は高くなくてもよい。したがって、上記コマンドの「スキャン解像度」フィールドの値は“低”を指定しておけばよい。
また、コマンドの「データ種別」フィールドに“座標”を指定した場合において、例えば、ユーザが、複数の指やペンなどでセンサ内蔵液晶パネル301を同時にタッチした場合は、該タッチした位置の座標データのそれぞれを取得することができる(多点検出)。
また、原稿などの対象物の画像データを取得する場合、「データ種別」フィールドに“全体画像”を指定したコマンドをデータ処理部700に送信することとなるが、原稿などの対象物は、通常、静止させた状態でスキャンを実行することが一般的であるため、周期的にスキャンを実行する必要はない。従って、この場合は、「データ取得タイミング」フィールドに“センス”または“イベント”を指定することが望ましい。なお、原稿などの対象物をスキャンするときは、ユーザが文字を読みやすいように、スキャン精度は高い方が望ましい。したがって、「スキャン解像度」フィールドには“高”を指定することが望ましい。
(全体画像データ/部分画像データ/座標データ)
次に、図7を参照しながら、全体画像データ、部分画像データ、および座標データについて、例を挙げて説明する。図7(a)に示す画像データは、対象物がセンサ内蔵液晶パネル301上に置かれていないときに、センサ内蔵液晶パネル301全体をスキャンした結果として得られる画像データである。また、図7(b)に示す画像データは、ユーザが指でセンサ内蔵液晶パネル301をタッチしているときに、センサ内蔵液晶パネル301全体をスキャンした結果として得られる画像データである。
ユーザが指でセンサ内蔵液晶パネル301をタッチしたとき、当該タッチした近傍の光センサ回路32が受光する光量が変化するため、当該光センサ回路32が出力する電圧に変化が生じ、その結果として、センサ制御部602が生成する画像データのうち、ユーザがタッチした部分の画素値の明度に変化が生じることとなる。
図7(b)に示す画像データでは、図7(a)に示す画像データと比べると、ユーザの指に該当する部分の画素値の明度が高くなっている。そして、図7(b)に示す画像データにおいて、明度が所定の閾値より大きく変化している画素値を全て含む最小の矩形領域(領域PP)が、“部分画像データ”である。
なお、領域APで示される画像データが、“全体画像データ”である。
また、部分画像データ(領域PP)の代表座標Zの、全体画像データ(領域AP)における座標データは(Xa,Ya)であり、部分画像データ(領域PP)における座標データは(Xp,Yp)である。
(センサ内蔵液晶パネルの構成)
次に、図8を参照しながら、センサ内蔵液晶パネル301の構成、および、センサ内蔵液晶パネル301の周辺回路309の構成について説明する。図8は、表示/光センサ部300の要部、特に、センサ内蔵液晶パネル301の構成および周辺回路309の構成を示すブロック図である。
センサ内蔵液晶パネル301は、光透過率(輝度)を設定するための画素回路31、および、自身が受光した光の強度に応じた電圧を出力する光センサ回路32を備えている。なお、画素回路31は、赤色、緑色、青色のカラーフィルタのそれぞれに対応するR画素回路31r、G画素回路31g、B画素回路31bの総称として用いる。
画素回路31は、センサ内蔵液晶パネル301上の列方向(縦方向)にm個、行方向(横方向)に3n個配置される。そして、R画素回路31r、G画素回路31g、およびB画素回路31bの組が、行方向(横方向)に連続して配置される。この組が1つの画素を形成する。
画素回路31の光透過率を設定するには、まず、画素回路31に含まれるTFT(Thin Film Transistor)33のゲート端子に接続される走査信号線Giにハイレベル電圧(TFT33をオン状態にする電圧)を印加する。その後、R画素回路31rのTFT33のソース端子に接続されているデータ信号線SRjに、所定の電圧を印加する。同様に、G画素回路31gおよびB画素回路31bについても、光透過率を設定する。そして、これらの光透過率を設定することにより、センサ内蔵液晶パネル301上に画像が表示される。
次に、光センサ回路32は、一画素毎に配置される。なお、R画素回路31r、G画素回路31g、およびB画素回路31bのそれぞれの近傍に1つずつ配置されてもよい。
光センサ回路32にて光の強度に応じた電圧を出力させるためには、まず、コンデンサ35の一方の電極に接続されているセンサ読み出し線RWiと、フォトダイオード6のアノード端子に接続されているセンサリセット線RSiとに所定の電圧を印加する。この状態において、フォトダイオード6に光が入射されると、入射した光量に応じた電流がフォトダイオード6に流れる。そして、当該電流に応じて、コンデンサ35の他方の電極とフォトダイオード6のカソード端子との接続点(以下、接続ノードV)の電圧が低下する。そして、センサプリアンプ37のドレイン端子に接続される電圧印加線SDjに電源電圧VDDを印加すると、接続ノードVの電圧は増幅され、センサプリアンプ37のソース端子からセンシングデータ出力線SPjに出力される。そして、当該出力された電圧に基づいて、光センサ回路32が受光した光量を算出することができる。
次に、センサ内蔵液晶パネル301の周辺回路である、液晶パネル駆動回路304、光センサ駆動回路305、およびセンサ出力アンプ44について説明する。
液晶パネル駆動回路304は、画素回路31を駆動するための回路であり、走査信号線駆動回路3041およびデータ信号線駆動回路3042を含んでいる。
走査信号線駆動回路3041は、表示制御部601から受信したタイミング制御信号TC1に基づいて、1ライン時間毎に、走査信号線G1〜Gmの中から1本の走査信号線を順次選択し、該選択した走査信号線にハイレベル電圧を印加するとともに、その他の走査信号線にローレベル電圧を印加する。
データ信号線駆動回路3042は、表示制御部601から受信した表示データD(DR、DG、およびDB)に基づいて、1ライン時間毎に、1行分の表示データに対応する所定の電圧を、データ信号線SR1〜SRn、SG1〜SGn、SB1〜SBnに印加する(線順次方式)。なお、データ信号線駆動回路3042は、点順次方式で駆動するものであってもよい。
光センサ駆動回路305は、光センサ回路32を駆動するための回路である。光センサ駆動回路305は、センサ制御部602から受信したタイミング制御信号TC2に基づいて、センサ読み出し信号線RW1〜RWmの中から、1ライン時間毎に1本ずつ選択したセンサ読み出し信号線に所定の読み出し用電圧を印加するとともに、その他のセンサ読み出し信号線には、所定の読み出し用電圧以外の電圧を印加する。また、同様に、タイミング制御信号TC2に基づいて、センサリセット信号線RS1〜RSmの中から、1ライン時間毎に1本ずつ選択したセンサリセット信号線に所定のリセット用電圧を印加するとともに、その他のセンサリセット信号線には、所定のリセット用電圧以外の電圧を印加する。
センシングデータ出力信号線SP1〜SPnはp個(pは1以上n以下の整数)のグループにまとめられ、各グループに属するセンシングデータ出力信号線は、時分割で順次オン状態になるスイッチ47を介して、センサ出力アンプ44に接続される。センサ出力アンプ44は、スイッチ47により接続されたセンシングデータ出力信号線のグループからの電圧を増幅し、センサ出力信号SS(SS1〜SSp)として、信号変換回路306へ出力する。
(発明の要点)
本発明の主な特徴は、ユーザがデータ表示/センサ装置100を片手で持った状態で、センサ内蔵液晶パネル301上を指(例えば親指)でなぞったときに、当該データ表示/センサ装置100が、各ユーザの手の大きさ(指の大きさ、長さ)にあわせて、センサ内蔵液晶パネル301にメニュー表示を行うことである。すなわち、データ表示/センサ装置100は、ユーザが指でなぞった範囲の指先または指の腹にメニュー項目を表示するものである。
これにより、データ表示/センサ装置100は、ユーザにセンサ内蔵液晶パネル301上をなぞるという簡易な操作を行わせるだけで、当該ユーザの手の大きさにあわせたメニュー表示を行うことが可能となる。このため、データ表示/センサ装置100は、ユーザの操作性および利便性を向上させることができる。
なお、上記では、データ表示/センサ装置100は、表示/光センサ部300を2つ備えているものとして説明したが、表示/光センサ部300を1つだけ備えた構成であってもよい。以下では、データ表示/センサ装置100が表示/光センサ部300を1つだけ(表示/光センサ部300Aだけ)備えているものとして説明する。また、この場合のデータ表示/センサ装置100は、表示/光センサ部300Aと表示/光センサ部300Bを接続するヒンジ部分を有しないため、図4に示すヒンジ部スイッチ904を必要としない。
(データ表示/センサ装置を用いてメニュー表示を行う様子)
次に、図9(a)から(f)を参照しながら、データ表示/センサ装置100が、半円状にメニュー表示を行う処理および指の大きさに応じて表示するメニュー項目の大きさを変更する処理の典型例について説明する。なお、ここでは、処理の概要について説明し、各処理の詳細については後述する。また、以下では、ユーザがデータ表示/センサ装置100を左手で持った場合について説明するが、これに限らず、データ表示/センサ装置100を右手で持った場合であっても同様の処理が行われる。
図9(a)は、手(指)の小さいユーザが左手でデータ表示/センサ装置100を持ち、操作する指(例えば親指)でセンサ内蔵液晶パネル301の縦軸のほぼ中央をなぞった場合に、メニュー表示が行われる場合の様子を示す模式図である。また、図9(b)は、手の大きいユーザが左手でデータ表示/センサ装置100を持ち、操作する指でセンサ内蔵液晶パネル301の縦軸のほぼ中央をなぞった場合に、メニュー表示が行われる場合の様子を示す模式図である。
図9(a)および(b)では、ユーザは、センサ内蔵液晶パネル301の縦軸(y軸)のほぼ中央を左手で挟み込むように持っているので、挟み込んだ左手の親指の付け根が、当該センサ内蔵液晶パネル301の縦軸のほぼ中央に位置する。そして、ユーザは、この位置を支点として、センサ内蔵液晶パネル301を上下方向(y軸方向)になぞる。すなわち、ユーザは、センサ内蔵液晶パネル301の縦軸のほぼ中央を上下方向に指でなぞることとなる。
そして、データ表示/センサ装置100は、ユーザがセンサ内蔵液晶パネル301を指でなぞったことをトリガにして、各ユーザの手の大きさ(指の大きさ、長さ)にあわせて、センサ内蔵液晶パネル301に半円状にメニュー表示を行う。つまり、データ表示/センサ装置100は、図9(a)および(b)に示す点線上をユーザの指先がくるように、メニュー表示が行う。
これにより、データ表示/センサ装置100は、当該データ表示/センサ装置100を片手で持って使用するユーザが無理なく(例えば持ち替える、両手で操作するなどの行動を起こすことなく)操作できる範囲に、メニューを表示することができる。
次に、図9(c)は、左手でデータ表示/センサ装置100を持ち、操作する指でセンサ内蔵液晶パネル301の縦軸の中央から離れた位置をなぞった場合に、メニュー表示が行われる場合の様子を示す模式図である。
図9(c)では、ユーザがデータ表示/センサ装置100を把持している位置が、図9(a)および(b)の場合とは異なり、上記縦軸の中央から離れた位置である。つまり、図9(c)の場合、ユーザは、この位置を支点として、センサ内蔵液晶パネル301を上下方向になぞる。
しかし、この場合であっても、データ表示/センサ装置100は、図9(a)および(b)の場合と同様、各ユーザの手の大きさ(指の大きさ、長さ)にあわせて、センサ内蔵液晶パネル301に半円状にメニュー表示を行う。
従って、図9(c)の場合であっても、データ表示/センサ装置100は、当該データ表示/センサ装置100を片手で持って使用するユーザが無理なく操作できる範囲に、メニューを表示することができる。
次に、図9(d)は、左手でデータ表示/センサ装置100を持ち、操作する指でセンサ内蔵液晶パネル301の縦軸の中央からさらに離れた位置をなぞった場合に、メニュー表示が行われる場合の様子を示す模式図である。
つまり、図9(d)では、図9(c)の場合と比べ、ユーザは、さらにデータ表示/センサ装置100の上方を把持している。この場合には、データ表示/センサ装置100は、半円状に配置すべきメニュー項目全てを表示することができなくなってしまう。
しかし、図9(d)では、データ表示/センサ装置100は、図9(d)に示す点線上に、上記配置すべきメニュー項目から、表示する必要性の高いメニュー項目(例えば使用頻度の高いメニュー項目、最近使ったメニュー項目など)を選択する。このため、データ表示/センサ装置100は、配置すべきメニュー項目全てを表示できない場合であっても、選択したメニュー項目でメニュー表示を行うことができる。
次に、図9(e)は、左手でデータ表示/センサ装置100を持ち、操作する指でセンサ内蔵液晶パネル301の角部から当該センサ内蔵液晶パネル301をなぞった場合に、メニュー表示が行われる場合の様子を示す模式図である。
図9(e)では、ユーザは、データ表示/センサ装置100の角部を把持している。この場合には、図9(d)に比べ、さらにメニュー項目を表示させることができない。しかし、図9(d)の場合と同様、データ表示/センサ装置100は、表示できる数だけメニュー項目を選択することによってメニュー表示を行う。
つまり、データ表示/センサ装置100は、ユーザの手の大きさだけでなく、ユーザがセンサ内蔵液晶パネル301を指でなぞった位置にあわせて、メニュー表示を行うことができる。
なお、図9(d)および(e)では、ユーザがデータ表示/センサ装置100の上方を把持した場合について説明したが、これに限らず、上記縦軸の中央から下方に離れた位置を把持した場合も同様である。
次に、図9(f)は、ユーザの指の大きさに応じて表示するメニュー項目の大きさを変更する様子を示す模式図である。
図9(f)では、データ表示/センサ装置100は、ユーザがセンサ内蔵液晶パネル301をなぞった際に指の大きさを検知すると、その大きさを判断して、当該大きさに応じたメニュー項目の大きさでメニュー表示を行う。これにより、例えばユーザの指が大きく、センサ内蔵液晶パネル301にメニュー項目が小さく表示されているような場合に、ユーザが複数のメニュー項目を同時に確定してしまうなどの誤操作を未然に防ぐことができる。
なお、図9(a)から(f)では、ユーザがセンサ内蔵液晶パネル301上を半円状になぞる(半円状にメニュー項目を表示する)場合について説明したが、これに限らず、データ表示/センサ装置100は、ユーザがなぞった範囲における指先の軌跡上にメニュー項目を配置したメニュー表示画面を表示する構成であってもよい。
例えば、ユーザがセンサ内蔵液晶パネル301上を当該センサ内蔵液晶パネル301の縦軸と平行となるようになぞった場合には、データ表示/センサ装置100は、それにあわせて、当該縦軸と平行になり、かつ、指先にメニュー項目が表示されるようにメニュー表示画面を生成する。
(データ表示/センサ装置のより詳細な構成)
次に、図1を参照しながら、データ表示/センサ装置100のより詳細な構成について説明する。なお、ここでは、説明を分かりやすくするために、主制御部800と表示/光センサ部300との間に位置するデータ処理部700および回路制御部600の動作については説明を省略する。ただし、正確には、メニューの表示およびユーザの指のスキャンを行うにあたり、主制御部800の各部が、データ処理部700にコマンドを送信し、データ処理部700がコマンドに基づいて回路制御部600を制御し、回路制御部600が表示/光センサ部300に対して信号を送信する。また、主制御部800は、データ処理部700に対して送信したコマンドに対する応答として、データ処理部700から、全体画像データ、部分画像データ、および座標データを取得する。
図1は、データ表示/センサ装置100のより詳細な構成を示すブロック図である。図示のように、記憶部901は、表示メッセージ記憶部21、画像データ記憶部22およびメニュー記憶部23を備えている。
表示メッセージ記憶部21は、ユーザに提示する所定のメッセージ、および、センサ内蔵液晶パネル301上において上記メッセージを表示する領域を示す情報(座標データなど)の組を、読み出し可能な状態で記憶するものである。以下、表示メッセージ記憶部21で記憶する組を、メッセージ情報と称する。
ユーザに提示する所定のメッセージとしては、例えば、データ算出部12が全体画像データを取得するときに表示するメッセージである「操作する指で画面をなぞって下さい」などの文字データが挙げられる。なお、上記メッセージは、文字データに限定されるものではなく、画像データなどであってもよい。
画像データ記憶部22は、データ算出部12がユーザの指の大きさ(長さ)を把握するために、座標算出部121が取得した全体画像データ、および、面積算出部125が取得した部分画像データを記憶するものである。また、画像データ記憶部22は、後述の座標算出部121が全体画像データから抽出した指の像を記憶するものである。なお、ここでは、指の像は、センサ内蔵液晶パネル301によって検知された全体画像に含まれる指の影像(または反射像)を指す。
メニュー記憶部23は、センサ内蔵液晶パネル301に表示するメニューに関する情報を記憶するものである。メニューは、ユーザが選択および確定可能な複数のメニュー項目で構成されるリストである。また、メニュー項目は、各メニュー項目が確定された際に実行する処理、各メニュー項目を表示するためのアイコンおよび名称、各アイコンの大きさ(メニュー項目の大きさ)を示す値(例えば各アイコンを囲う四角形の辺の長さ、当該四角形における中心座標など)、使用頻度の高い順または最近使った順を示す優先順位などと対応付けられている。また、メニュー項目の大きさを示す値は、指の像(または部分画像)の面積または距離dと対応付けられていてもよい。
なお、メニュー記憶部23に格納されたメニュー項目としては、テレビを視聴するための「テレビ」、スケジュール機能を実行するための「スケジュール」、備忘録用として使用されるノート機能を実行するための「ToDo」、メール機能を実行するための「メール」、個人等の住所、メールアドレス等のリストを表示するための「連絡先」、メモ機能を実行するための「メモ」、インターネットに接続するための「インターネット」、カメラ機能を実行するための「カメラ」、撮像された写真を表示するための「写真」などが挙げられる。
また、メニュー記憶部23は、メニュー項目が実行された際に表示されるサブメニューを記憶していてもよい。このサブメニューも、上記メニュー項目と同様、複数のサブメニュー項目で構成されるリストであり、各サブメニュー項目が確定された際に実行する処理などと対応付けられている。
次に、主制御部800について説明する。図示のように、主制御部800は、表示起動制御部11、データ算出部12およびメニュー表示制御部13を備えている。
表示起動制御部11は、センサ内蔵液晶パネル301上の指の移動を検知して、当該センサ内蔵液晶パネル301の表示機能を有効にする、または、メニュー表示モードに切り替えるものである。そのため、表示起動制御部11は、座標データ取得部(移動検知手段)111、座標データ比較部(移動検知手段)112、表示起動部113および座標データ保持部114を備えている。
座標データ取得部111は、データ処理部700から所定の時間間隔で座標データ(全体画像における部分画像の代表座標)を取得するものである。また、座標データ取得部111は、取得した座標データを座標データ保持部114に保存する。
座標データ比較部112は、座標データ保持部114に保存された2つの座標データを読み出し、当該座標データが一致するか否かを判定するものである。これにより、ユーザがセンサ内蔵液晶パネル301上を指でなぞったか否かを判定する。なお、2つの座標データについては、座標データ保持部114において説明する。
また、座標データ比較部112は、上記2つの座標データの差分を算出し、記憶部901に格納された閾値と比較することで、ユーザが指でなぞったか否かを判定する構成であってもよい。この場合、上記閾値は、記憶部901に予め格納されており、ユーザが指でセンサ内蔵液晶パネル301上をなぞっていないと判定できる程度の縦軸方向の移動量を示す値であればよい。
表示起動部113は、座標データ比較部112がユーザが指でなぞったと判定した場合に、センサ内蔵液晶パネル301の表示機能を有効またはメニュー表示モードにし、データ算出部12が適切なデータを算出できるように、ユーザに対して所定のメッセージを表示させるものである。すなわち、表示起動部113は、表示メッセージ記憶部21に格納されたメッセージ情報を読み出し、当該メッセージ情報に含まれるメッセージを配置したメニュー表示画面を生成し、当該メニュー表示画面をデータ処理部700に送信する。表示起動部113は、上記メニュー表示画面をデータ処理部700に送信したことをトリガにして、センサ内蔵液晶パネル301の表示機能が無効の場合には当該機能を有効に、当該機能が有効である場合にはメニュー表示モードに設定することとなる。
なお、メニュー表示モードとは、データ表示/センサ装置100に実装されたアプリケーションを実行するための機能が割り当てられたメニューを表示するためのモードであり、ユーザにメニュー選択を行わせるための表示をセンサ内蔵液晶パネル301に行うためのものである。
座標データ保持部114は、座標データ取得部111が取得した座標データを保存するものである。具体的には、座標データ保持部114は、今回座標データ取得部111から送られてくる座標データと、当該座標データを取得する直前の座標データとの2つの座標データを保持するように構成されている。なお、座標データ保持部114は、主制御部800が備えた構成となっているが、これに限らず、記憶部901が備えた構成であってもよい。
次に、データ算出部12は、後述のメニュー表示制御部13がメニュー表示画面を生成するために、当該メニュー表示画面におけるメニュー項目の配置位置を機能毎に決定するための各種データを算出するものである。そのため、データ算出部12は、座標算出部121、距離算出部122、軌跡算出部123、配置可能位置算出部124、面積算出部125および座標/算出データ保持部126を備えている。
座標算出部121は、データ処理部700から全体画像データを取得して、当該全体画像データを解析する(指の像を抽出する)ことによって、センサ内蔵液晶パネル301上における指の付け根の位置を示す付け根位置座標Aを算出するものである。また、座標算出部121は、付け根位置座標Aを座標/算出データ保持部126に保存する。
また、座標算出部121は、上記表示機能が有効またはメニュー表示モードになったことをトリガにして、データ処理部700から、所定の時間、座標データ(全体画像における部分画像の代表座標)を取得する。なお、上記所定の時間は、記憶部901に予め格納されており、ユーザが上下方向(縦軸方向)に2、3度なぞる程度の時間であればよい。
距離算出部122は、センサ内蔵液晶パネル301上の指の付け根と指先との距離dを算出するものである。距離算出部122は、例えば座標算出部121が算出した付け根位置座標Aと、当該座標算出部121が抽出した指の像における輪郭の座標とを用いて、当該付け根位置座標Aと当該輪郭の座標との差分を繰り返し算出し、最大となる差分を決定する。また、距離算出部122は、この最大の差分を距離dとして座標/算出データ保持部126に保存する。
なお、距離算出部122は、メニューおよびサブメニューを同時にセンサ内蔵液晶パネル301に表示する場合には、サブメニュー項目を上記円の軌跡に配置すると共に、メニュー項目を当該円の外延に配置するために、距離dに所定の長さを加算した値である距離d1を算出する。距離算出部122は、この距離d1を座標/算出データ保持部126に保存する。
なお、上記所定の長さは、記憶部901に予め格納されているものであり、サブメニュー項目とメニュー項目とが重ならない程度の長さであればよい。
軌跡算出部123は、座標算出部121が算出した付け根位置座標Aを中心座標、距離算出部122が算出した距離dまたは当該距離dよりも短い距離を半径とする、x≧0かつy≧0を満たす円の軌跡(すなわち円弧の軌跡)を算出するものである。また、軌跡算出部123は、この円の軌跡を座標/算出データ保持部126に保存する。すなわち、軌跡算出部123は、ユーザの指がセンサ内蔵液晶パネル301の表面上を移動したときに、当該指の指先が通る仮想的な線分(円の軌跡)を決定しているといえる。
なお、上記x、yとは、センサ内蔵液晶パネル301の横軸方向と縦軸方向とをそれぞれ示すものである。つまり、x≧0かつy≧0とは、センサ内蔵液晶パネル301における表示可能な範囲全てを指すものである。なお、ここでは、座標(0,0)を、センサ内蔵液晶パネル301の左上部に位置する角部と指すものとする。
さらに、軌跡算出部123は、メニューおよびサブメニューを同時にセンサ内蔵液晶パネル301に表示する場合には、距離算出部122が算出した距離d1を半径とした円の軌跡(以降、拡大円の軌跡とする)を算出する。
配置可能位置算出部124は、軌跡算出部123が算出した円の軌跡と、座標算出部121が取得した座標データとを用いて、ユーザがなぞった範囲に対応した、メニュー項目が配置可能な範囲を決定する。そして、配置可能位置算出部124は、上記円の軌跡、記憶部901に格納された所定の角度を示す値、および、メニュー記憶部23に格納されたメニュー項目の大きさを示す値を用いて、メニュー項目が配置可能な位置座標とその個数を算出するものである。
また、配置可能位置算出部124は、メニュー項目が配置可能な範囲を決定するときに算出される、円端部座標(上記なぞった範囲の両端である指の像の位置で、かつ、円の軌跡上の2つの位置座標)、メニュー項目の配置可能な位置座標およびその個数を座標/算出データ保持部126に保存する。
さらに、配置可能位置算出部124は、後述の面積算出部(面積算出手段)125が指の像(または部分画像)の面積を算出した場合には、当該面積に対応付けてメニュー記憶部23に格納されたメニュー項目の大きさを示す値を用いて、メニュー項目の配置可能な位置座標を算出する。また、配置可能位置算出部124は、このメニュー項目の配置可能な位置座標を算出したときに、上記メニュー項目の大きさを示す値を読み出したことをメニュー表示制御部13に通知する。
この場合、配置可能位置算出部124は、隣接して配置されるメニュー項目が重なると判断した場合には、上記所定の角度を示す値を設定しなおした後、メニュー項目が配置可能な位置座標を算出する。
なお、上記所定の角度を示す値は、例えば記憶部901に予め格納されており、ユーザがメニュー項目を確実に識別できる程度の間隔となるように表示されるように設定されていればよい。
また、上記では、記憶部901には、指の像の面積に対応付けてメニュー項目の大きさを示す値が格納されていたが、これに限らず、配置可能位置算出部124は、指の像の面積からメニュー項目の大きさを算出する構成であってもよい。
面積算出部125は、ユーザの指の大きさに応じて、センサ内蔵液晶パネル301に表示するメニュー項目の大きさを変更できるように、座標算出部121が抽出した指の像の面積を算出するものである。また、面積算出部125は、座標算出部121が全体画像データを取得するときに部分画像データを取得し、当該部分画像の面積を算出してもよい。面積算出部125は、この指の像の面積(または部分画像の面積)を座標/算出データ保持部126に保存する。
座標/算出データ保持部126は、座標算出部121が算出した付け根位置座標Aと、距離算出部122が算出した距離d、d1と、軌跡算出部123が算出した円、拡大円の軌跡と、配置可能位置算出部124が算出した円端部座標、メニュー項目の配置可能な位置座標およびその個数と、面積算出部125が算出した指の像(または部分画像)の面積とを保存するものである。なお、座標/算出データ保持部126は、主制御部800が備えた構成となっているが、これに限らず、記憶部901が備えた構成であってもよい。
次に、メニュー表示制御部13は、ユーザがメニュー項目を選択および確定を行うためのメニュー表示画面を生成するものである。そのため、メニュー表示制御部13は、メニュー選択部(メニュー選択手段)131およびメニュー表示画面生成部132を備えている。
メニュー選択部131は、センサ内蔵液晶パネル301に配置すべきメニュー項目全てが表示可能であるか否かを判定するものである。ここで、配置すべきメニュー項目とは、メニュー記憶部23に格納された「テレビ」等のメニュー項目を指す。また、メニュー選択部131は、全てのメニュー項目を表示できないと判定した場合、上記優先順位に基づいて、センサ内蔵液晶パネル301に表示するメニュー項目を選択する。
また、メニュー選択部131は、後述のメニュー表示画面生成部132でサブメニューを表示する画面を生成する場合には、上記と同様、配置すべきサブメニュー項目全てが表示可能であるか否かを判定する。
メニュー表示画面生成部132は、配置可能位置算出部124が算出した位置座標を中心として、メニュー選択部131にて選択された、ユーザが選択可能なメニュー項目(アイコン)(全てのメニュー項目が表示可能である場合を含む)を機能毎に配置することにより、メニュー表示画面を生成する。そして、メニュー表示画面生成部132は、メニュー表示画面をデータ処理部700に送信することによって、当該メニュー表示画面をセンサ内蔵液晶パネル301に表示させる。
また、メニュー表示画面生成部132は、サブメニューだけをセンサ内蔵液晶パネル301に表示する場合には、上記メニュー項目が配置される位置に当該サブメニュー項目を配置したメニュー表示画面を生成する。一方、メニュー表示画面生成部132は、メニューおよびサブメニューをセンサ内蔵液晶パネル301に同時に表示する場合には、上記円の軌跡上にサブメニュー項目、上記拡大円の軌跡上にメニュー項目を配置したメニュー表示画面を生成する。
なお、上記では、データ表示/センサ装置100において、付け根位置座標Aを中心座標、距離dを半径とする、x≧0かつy≧0を満たす円の軌跡を算出し、ユーザがなぞった範囲内の当該軌跡上にメニュー項目を配置したメニュー表示画面を表示する例について説明した。しかし、データ表示/センサ装置100は、この構成に限らず、ユーザの指がなぞった範囲における指先の軌跡上(すなわち、センサ内蔵液晶パネル301上をなぞった指の領域の外周)にメニュー項目を配置したメニュー表示画面を表示する構成であってもよい。すなわち、データ表示/センサ装置100は、円の軌跡を算出するのではなく、ユーザがなぞった範囲に対応するようにメニュー項目を表示するように構成されていてもよい。
この場合、座標算出部121は、距離算出部122が距離dを算出して座標/算出データ保持部126に保存する代わりに、指の像における指先の位置を示す指先位置座標Bを算出する。すなわち、座標算出部121は、付け根位置座標Aおよび指先位置座標Bを算出するものといえる。
ここで、座標算出部121は、例えば上記指先位置座標Bを次のように算出する。すなわち、座標算出部121は、所定の時間、全体画像データを取得し、これら全体画像データ全てについて付け根位置座標Aを算出する。そして、座標算出部121は、これらの付け根位置座標Aを座標/算出データ保持部126に保存する。なお、上記所定の時間とは、記憶部901に予め格納されており、座標算出部121が座標データ(全体画像における部分画像の代表座標)を取得するときと同様、ユーザが上下方向(縦軸方向)に2、3度なぞる程度の時間であればよい。
座標算出部121は、距離算出部122が距離dを算出するときの処理と同様の処理を行うことによって、距離算出部122が距離dとするときの輪郭の座標を指先位置座標Bとして決定し、当該指先位置座標Bを座標/算出データ保持部126に保存する。
軌跡算出部123は、座標/算出データ保持部126から指先位置座標Bを読み出し、当該指先位置座標B上もしくは当該指先位置座標B近傍を通る線分を算出する。すなわち、軌跡算出部123は、ユーザの指がセンサ内蔵液晶パネル301の表面上を移動したときに、当該指の指先が通る仮想的な線分を決定しているといえる。
配置可能位置算出部124は、軌跡算出部123が算出した線分と、座標算出部121が取得した座標データとを用いて、ユーザがなぞった範囲に対応した、メニュー項目が配置可能な範囲を決定する。
(主制御部の動作例)
次に、再び図9を参照しながら、主制御部800の動作例について、主制御部800からデータ処理部700に送信されるコマンドに触れながら、説明する。なお、ここでは、半円状にメニュー表示を行う処理および指の大きさに応じて表示するメニュー項目の大きさを変更する処理を実行する際の、主制御部800の動作例について説明する。
また、データ表示/センサ装置100が表示/光センサ部300を1つだけ備える構成について説明するので、主制御部800がデータ処理部700に送信するコマンドの「表示パネル」フィールドを設定する場合には、“第1表示/光センサ部”(“001”)が指定されるものとする。
さらに、主制御部800は、センサ内蔵液晶パネル301がユーザがなぞったことを検知することができるように、センサ内蔵液晶パネル301をスキャン可能な状態にしておく必要がある。このため、主制御部800は、まず、「スキャン方式」フィールドの値として“反射”(“00”)、“透過”(“01”)、“反射/透過”(“10”)のいずれか、「スキャン画像階調」フィールドの値として“2値”(“00”)、“多値”(“01”)のいずれか、「スキャン解像度」フィールドの値として“2値”(“00”)、“多値”(“01”)のいずれか、「スキャンパネル」フィールドの値として“第1表示/光センサ部”(“001”)を指定したコマンドを、データ処理部700に送信する。
図9(a)から(e)の場合、座標データ取得部111は、データ処理部700から所定の時間間隔で座標データ(全体画像における部分画像の座標データ)を取得する。このため、座標データ取得部111は、「データ取得タイミング」フィールドの値として“オール”(“10”)、「データ種別」フィールドの値として“座標”(“001”)を指定したコマンドを、データ処理部700に送信する。
次に、座標データ比較部112は、座標データ保持部114に保存された2つの座標データを読み出し、当該座標データが一致するか否か(または上記移動量を示す閾値以上であるか否か)を判定することによって、ユーザがセンサ内蔵液晶パネル301上を指でなぞったか否かを判定する。
座標データ比較部112によってユーザがセンサ内蔵液晶パネル301上を指でなぞったと判定されると、表示起動部113は、センサ内蔵液晶パネル301の表示機能を有効(またはメニュー表示モード)にし、ユーザに対してメッセージ表示を行う。このため、表示起動部113は、「表示パネル」フィールドの値として“第1表示/光センサ部300A”(“001”)を指定したコマンドを、データ処理部700に送信する。これにあわせて、表示起動部113は、表示メッセージ記憶部21からメッセージ情報を読み出し、当該メッセージ情報に含まれるメッセージを配置したメニュー表示画面を生成し、当該メニュー表示画面を表示データとしてデータ処理部700に送信する。
次に、座標算出部121は、付け根位置座標Aを算出し、指の像を抽出するために、データ処理部700から全体画像データを取得する。このため、座標算出部121は、「データ種別」フィールドの値として“全体画像”(“100”)を指定したコマンドを、データ処理部700に送信する。
また、座標算出部121は、データ処理部700が取得している最新の全体画像データ、または、センサ内蔵液晶パネル301上で変化があったときの全体画像データを取得する必要がある。このため、座標算出部121は、上記コマンドの「データ取得タイミング」フィールドの値として“センス”(“00”)または“イベント”(“01”)を指定する。
このとき、座標算出部121は、配置可能位置算出部124がメニュー項目が配置可能な範囲を決定するために、データ処理部700から、所定の時間、座標データ(全体画像における部分画像の代表座標)を取得する。このため、座標算出部121は、「データ取得タイミング」フィールドの値として“オール”(“10”)、「データ種別」フィールドの値として“座標”(“001”)を指定したコマンドを、データ処理部700に送信する。
また、座標算出部121は、所定の時間、全体画像データを取得する構成であってもよい。この場合、座標算出部121は、「データ種別」フィールドの値として“全体画像”(“100”)、「データ取得タイミング」フィールドの値として“イベント”(“01”)または“オール”(“10”)を指定したコマンドを、データ処理部700に送信する。
この後、データ算出部12およびメニュー表示制御部13における処理が行われることにより、メニュー表示画面生成部132は、図9(a)から(e)に示すようなメニュー表示を行うためのメニュー表示画面を生成する。そして、メニュー表示画面生成部132は、このメニュー表示画面をセンサ内蔵液晶パネル301に表示させるために、当該メニュー表示画面を表示データとしてデータ処理部700に送信する。
また、図9(f)に示すように、主制御部800が指の大きさに応じて表示するメニュー項目の大きさを変更する処理を実行する場合に、面積算出部125が部分画像データをデータ処理部700から取得する場合がある。この場合、面積算出部125は、「データ取得タイミング」フィールドの値として“イベント”(“01”)、「データ種別」フィールドの値として“部分画像”(“010”)を指定したコマンドを、データ処理部700に送信する。
(データ表示/センサ装置における処理の流れ)
次に、図10を参照しながら、データ表示/センサ装置100において、データ算出処理およびメニュー表示処理を行う際の処理の流れについて説明する。図10は、データ表示/センサ装置100において、メニュー表示処理を行う際の処理の流れを示すフローチャートである。ここでは、データ表示/センサ装置100の軌跡算出部123が円の軌跡を算出し、当該円の軌跡上にメニュー項目を配置する場合の処理について説明する。
まず、ユーザがデータ表示/センサ装置100を片手で持った状態において、操作する指でセンサ内蔵液晶パネル301上をなぞったか否かを判定する(S1)。具体的には、表示起動制御部11の座標データ取得部111は、データ処理部700から所定の時間間隔で座標データ(全体画像における部分画像の代表座標)を取得し、当該座標データを座標データ保持部114に保存する。また、座標データ取得部111は、上記座標データを取得したことを座標データ比較部112に通知する。
座標データ比較部112は、上記通知を受けると、座標データ保持部114に保持された2つの座標データを読み出して、当該2つの座標データを比較する。座標データ比較部112は、上記2つの座標データの値が同じである場合(2つの座標データの差分がほぼ0である場合)には、ユーザがセンサ内蔵液晶パネル301上を指でなぞっていないものと判定する一方、当該2つの座標データの値が異なる場合には、センサ内蔵液晶パネル301上を指でなぞったと判定する。
なお、座標データ比較部112が上記判定を行う場合、2つの座標データの値が同じか否か(差分がほぼ0か否か)によって判定を行っているが、これに限らず、2つの座標データの差分が記憶部901に予め格納された閾値以上か否かによって判定を行ってもよい。座標データ比較部112は、2つの座標データの差分が閾値以上であると判定した場合には、ユーザがセンサ内蔵液晶パネル301上を指でなぞったものと判定する。
ユーザがセンサ内蔵液晶パネル301上を指でなぞったと判定された場合(S1でYES)、座標データ比較部112は、2つの座標データが異なることを表示起動部113に通知する。表示起動部113は、表示メッセージ記憶部21からメッセージ情報を読み出し、当該メッセージ情報に含まれるメッセージを配置したメニュー表示画面を生成し、当該メニュー表示画面をデータ処理部700に送信する。つまり、表示起動部113は、上記メニュー表示画面をデータ処理部700に送信することにより、センサ内蔵液晶パネル301の表示機能が無効の場合には当該機能を有効にすることとなる(S2)。また、表示起動部113は、既にセンサ内蔵液晶パネル301の表示機能が有効である場合には、メッセージ情報をデータ処理部700に送信することをトリガにして、メニュー表示モード(操作パネル設定モード)に切り替えることとなる。
なお、ユーザがセンサ内蔵液晶パネル301上を指でなぞっていないと判定された場合(S1でNO)には、表示起動制御部11は、S1の処理を再び実行することとなる。
次に、データ算出部12の座標算出部121は、表示起動制御部11からメニュー表示画面をデータ処理部700に送信したことを示す通知を受けると、データ処理部700から全体画像データを取得して、画像データ記憶部22に記憶する(S3)。
座標算出部121は、取得した全体画像データを画像データ記憶部22から読み出し、当該全体画像データを解析することによって、付け根位置座標Aを算出する(S4)。具体的には、座標算出部121は、上記全体画像データに含まれる指の像を抽出し、センサ内蔵液晶パネル301の端部と当該指の像との接触領域における、y座標が最大の座標と最小の座標とを取得する。そして、座標算出部121は、この2つの座標の平均値を算出して、付け根位置座標Aとして座標/算出データ保持部126に保存する。また、座標算出部121は、抽出した指の像を画像データ記憶部22に格納する。
また、S3の処理の際に、座標算出部121は、データ処理部700から、所定の時間、座標データ(全体画像における部分画像の代表座標)を取得し、座標/算出データ保持部126を保存する。
なお、座標算出部121が、所定の時間、データ処理部700から全体画像データを取得する場合には、各全体画像データにおける付け根位置座標Aを算出し、これらの付け根位置座標Aのうちの1つを、座標/算出データ保持部126に保存する付け根位置座標A(すなわち軌跡算出部123が用いる付け根位置座標A)としてもよい。
次に、距離算出部122は、センサ内蔵液晶パネル301上の指の付け根と指先との距離dを算出する(S5)。具体的には、距離算出部122は、座標算出部121が算出した付け根位置座標Aと、上記指の像における輪郭の座標とを用いることによって、距離dを算出する。
例えば、距離算出部122は、上記指の像を画像データ記憶部22から読み出すと、当該指の像における輪郭の座標を検出する。距離算出部122は、座標/算出データ保持部126から付け根位置座標Aを読み出し、当該付け根位置座標Aと上記輪郭の座標との差分を算出して、当該輪郭の座標と算出した差分とを対応付けて座標/算出データ保持部126に保存する。そして、距離算出部122は、上記のような輪郭の座標の検出および差分の算出を繰り返し行い、差分を算出する毎に、当該算出した差分と座標/算出データ保持部126に保存された差分とを比較する。距離算出部122は、比較した結果、差分が大きいと判定した方の輪郭の座標と、このとき大きいと判定された差分とを対応付けて座標/算出データ保持部126に保存する。
つまり、距離算出部122は、上記比較を行うことによって、最大となる差分を決定することができ、当該最大となる差分を距離dとして座標/算出データ保持部126に保存する。
次に、軌跡算出部123は、座標/算出データ保持部126に保存された付け根位置座標Aと距離dとを読み出すと、当該付け根位置座標Aを中心座標、当該距離dを半径とする、x≧0かつy≧0を満たす円の軌跡を算出する(S6)。軌跡算出部123は、算出した円の軌跡を座標/算出データ保持部126に保存する。
次に、配置可能位置算出部124は、座標/算出データ保持部126に保存された円の軌跡を読み出し、メニュー項目の配置が可能な位置座標を算出する(S7)。
具体的には、配置可能位置算出部124は、座標/算出データ保持部126に保存された座標データを読み出し、当該座標のうち、y座標が最小の座標と最大の座標とを取得する。配置可能位置算出部124は、y座標が最小の座標を有する指の像の位置と、y座標が最大の座標を有する指の像の位置との間で、かつ、上記円の軌跡上に、メニュー項目が配置可能である(メニュー項目が配置可能な範囲)と判定する。配置可能位置算出部124は、上記指の像の位置で、かつ、円の軌跡上の2つの位置座標を、円端部座標として座標/算出データ保持部126に保存する。
さらに、配置可能位置算出部124は、記憶部901に格納された所定の角度を示す値を読み出し、付け根位置座標Aからx軸方向(センサ内蔵液晶パネル301の水平方向)に延びる直線を基準として、円の軌跡上の位置座標を算出する。
つまり、配置可能位置算出部124は、まず、付け根位置座標Aからx軸方向に延びる直線上で、かつ、円の軌跡上の位置座標を算出する。次に、配置可能位置算出部124は、付け根位置座標Aを中心として、上記直線から所定の角度をなす直線上で、かつ、円の軌跡上の位置座標を算出する。配置可能位置算出部124は、上記メニュー項目が配置可能な範囲内(円端部座標に挟まれた円の軌跡内)において上記処理を繰り返し行うことにより、円の軌跡上の位置座標を算出する。
なお、上記では、配置可能位置算出部124は、付け根位置座標Aからx軸方向に延びる直線を基準として、円の軌跡上の位置座標を算出したが、これに限られたものではない。例えば、配置可能位置算出部124は、y座標が最小(または最大)の座標を有する指の像の位置(すなわち付け根位置座標Aと上記最小(または最大)の座標を結ぶ直線)を基準として、円の軌跡上の位置座標を算出してもよい。
次に、配置可能位置算出部124は、上記円の軌跡上の位置座標と、メニュー記憶部23に格納されたメニュー項目の大きさを示す値とを用いて、メニュー項目の配置可能な位置座標とその個数とを算出する。例えば、配置可能位置算出部124は、上記円の軌跡上の位置座標を中心としてメニュー項目を配置するときに、当該メニュー項目がセンサ内蔵液晶パネル301内にあると判定した場合には、当該円の軌跡上の位置座標をメニュー項目が配置可能な位置座標として決定すると共に、当該配置可能な位置座標の個数をカウントする。
そして、配置可能位置算出部124は、メニュー項目の配置可能な位置座標とその個数とを座標/算出データ保持部126に保存すると共に、保存したことをメニュー表示制御部13に通知する。
メニュー表示制御部13のメニュー選択部131は、配置可能位置算出部124からの通知を受けると、センサ内蔵液晶パネル301に配置すべきメニュー項目全てが表示可能であるかを判定する(S8)。具体的には、メニュー選択部131は、座標/算出データ保持部126からメニュー項目の配置可能な位置座標の個数を読み出すと、メニュー記憶部23に格納された、メニュー表示画面に配置するのに必要なメニュー項目の個数をカウントし、カウントした個数が当該位置座標の個数以下であるか否かを判定する。すなわち、メニュー選択部131は、カウントした個数が上記位置座標の個数以下である場合には、全てのメニュー項目を配置可能であると判定する。
メニュー選択部131は、全てのメニュー項目を表示可能であると判定した場合(S8でYES)、配置すべきメニュー項目として全てのメニュー項目を選択する。そして、メニュー表示画面生成部132は、座標/算出データ保持部126からメニュー項目の配置可能な位置座標を読み出し、当該位置座標を中心として、メニュー選択部131にて選択されたメニュー項目を配置することにより、メニュー表示画面を生成する(S9)。
メニュー表示画面生成部132は、生成したメニュー表示画面をデータ処理部700に送信する。これにより、データ表示/センサ装置100は、メニュー表示画面をセンサ内蔵液晶パネル301に表示することができる。
一方、メニュー選択部131は、全てのメニュー項目が表示可能でないと判定した場合(S8でNO)、配置すべきメニュー項目から、メニュー表示画面に表示するメニュー項目を選択する(S10)。そして、メニュー画面生成部132によってS9の処理が行われる。
なお、例えばデータ表示/センサ装置100は、上記メニュー項目に対して、使用頻度の高い順や最近使った順に優先順位を設定する構成となっており、当該優先順位を当該メニュー項目に対応付けて記憶していてもよい。この場合、S10の処理において、メニュー選択部131は、優先順位の若い順(すなわち、使用頻度の高い順または最近使った順)に、座標/算出データ保持部126から読み出した位置座標の個数分だけ、当該優先順位に対応するメニュー項目を選択してもよい。
なお、上記では、メニュー項目の大きさがメニュー記憶部23に予め格納されている場合の処理について説明したが、これに限らず、当該大きさが、メニュー記憶部23に予め格納されておらず、ユーザの指の大きさによって変更されてもよい。
この場合、例えばメニュー記憶部23には、上記指の像(または部分画像)の面積とメニュー項目の大きさを示す値とが対応付けて記憶されている。データ算出部12の面積算出部125は、S3の処理において画像データ記憶部22に格納された指の像を読み出し、当該指の像の面積を算出し、座標/算出データ保持部126に保存する。
S7の処理において、配置可能位置算出部124は、座標/算出データ保持部126から指の像の面積を読み出すと、当該面積に対応するメニュー項目の大きさを示す値をメニュー記憶部23から読み出す。配置可能位置算出部124は、この読み出したメニュー項目の大きさを示す値と、上記円の軌跡上の位置座標とを用いて、メニュー項目の配置可能な位置座標とその個数とを算出する。
このとき、配置可能位置算出部124は、隣接して配置されるメニュー項目を囲む四角形が重なる(すなわち当該2つのメニュー項目が重なる)と判断した場合には、記憶部901に格納された所定の角度を示す値を設定しなおしてもよい。
なお、配置可能位置算出部124が指の像の代わりに部分画像の面積を用いる場合には、面積算出部125は、S3の処理が行われるときに、部分画像データをデータ処理部700から取得し、当該部分画像の面積を算出する。そして、面積算出部125がこの部分画像の面積を座標/算出データ保持部126に保存することにより、配置可能位置算出部124は、上記と同様、メニュー項目の配置可能な位置座標とその個数とを算出する。
また、配置可能位置算出部124は、上記面積に対応するメニュー項目の大きさを示す値を読み出すときに、当該値を読み出したことをメニュー表示制御部13のメニュー表示画面生成部132に通知する。
これにより、データ表示/センサ装置100は、センサ内蔵液晶パネル301上の指の大きさを検知することによって、ユーザの指の大きさに応じたメニュー項目の大きさに変更することができる。
また、メニュー項目の大きさは、上記と同様、メニューの表示位置(円の大きさ)によって変更されてもよい。この場合、例えばメニュー記憶部23には、距離算出部122が算出する距離dに対応付けてメニュー項目の大きさを示す値が記憶されている。そして、S7の処理において、配置可能位置算出部124は、座標/算出データ保持部126から部分画像データの代わりに距離dを読み出して、上記と同様の処理を行う。
なお、データ表示/センサ装置100は、上記のように「テレビ」などの任意のメニュー表示処理を行い、あるメニュー項目を実行すると、当該メニュー項目に対応付けられたサブメニュー項目を、上記メニュー項目の配置可能な位置座標に表示するようにしてもよい。この場合、データ表示/センサ装置100は、上記メニュー項目に対応付けられたサブメニュー項目をメニュー記憶部23から読み出して、S7以降の処理を行って、センサ内蔵液晶パネル301にサブメニューの表示を行う。
また、データ表示/センサ装置100は、上記メニュー表示を行ったまま、サブメニューを表示するようにしてもよい。この場合、あるメニュー項目が実行されると、データ表示/センサ装置100は、上記のようにサブメニュー項目の表示位置を決定する。そして、データ表示/センサ装置100では、メニュー項目の新たな表示位置を決定するために、軌跡算出部123は、距離算出部122が算出し、座標/算出データ保持部126に保存された距離d1を半径として拡大円の軌跡を算出する。データ表示/センサ装置100は、拡大円の軌跡に対しても、S7以降の処理を行い、表示するメニュー項目およびその位置を決定する。
すなわち、データ表示/センサ装置100は、あるメニュー項目を実行すると、当該メニュー項目が配置されていた円の軌跡上(図9(a)から(e)に示す点線上)にサブメニュー項目を配置すると共に、当該円より大きい半径を有する拡大円の軌跡上にメニュー項目を配置しなおす。これにより、データ表示/センサ装置100は、メニューおよびサブメニューを同時にセンサ内蔵液晶パネル301に表示することができる。
(データ表示/センサ装置における処理の流れの別例)
上記では、軌跡算出部123が算出した円の軌跡上にメニュー項目を配置する場合の、データ表示/センサ装置100における処理の流れについて説明した。ここでは、データ表示/センサ装置100が、円の軌跡を算出する場合に限らず、ユーザがなぞった範囲に対応するようにメニュー項目を配置する場合の処理の流れについて説明する。
ここでは、図10に示すデータ表示/センサ装置100における処理の流れのうち、上記処理とは異なるステップについてのみ説明することとし、同様の処理が行われるステップについてはその説明を省略することとする。
この場合、図10に示すS3の処理において、座標算出部121は、表示起動制御部11からメニュー表示画面をデータ処理部700に送信したことを示す通知を受けると、全体画像データを所定の時間取得して、画像データ記憶部22に記憶する。そして、S4の処理と同様、座標算出部121は、取得した全体画像データ全てを画像データ記憶部22から読み出し、付け根位置座標Aを算出する。
次に、S5の処理の代わりに、座標算出部121は、距離算出部122と同様の処理を行うことによって、距離dを算出するときに用いる、差分が最大となるときの輪郭の座標を指先位置座標Bとして決定し、座標/算出データ保持部126に保存する。座標算出部121は、軌跡算出部123が、ユーザの指がセンサ内蔵液晶パネル301の表面上を移動したときに、当該指の指先が通る仮想的な線分を決定するために、全ての全体画像データに対して指先位置座標Bを算出する。
そして、軌跡算出部123は、S6の処理の代わりに、座標/算出データ保持部126に保存された全ての指先位置座標Bを読み出し、当該指先位置座標B上(もしくは近傍)を通る線分を仮想的な線分として決定する。軌跡算出部123は、算出した線分を座標/算出データ保持部126に保存する。
なお、軌跡算出部123の線分の算出方法は、これに限らず、例えば2つの指先位置座標Bを取得した時点で、ユーザの指が移動する方向を予測して、予測した結果を仮想的な線分として決定する方法であってもよい。
次に、S7での処理において、配置可能位置算出部124は、円の軌跡の代わりに、上記線分を読み出し、メニュー項目の配置が可能な位置座標を算出する。
この場合、配置可能位置算出部124は、座標/算出データ保持部126に保存された座標データのうち、y座標が最小の座標を有する指の像の位置と、y座標が最大の座標を有する指の像の位置との間で、かつ、上記線分上に、メニュー項目が配置可能である(メニュー項目が配置可能な範囲)と判定する。そして、配置可能位置算出部124は、上記指の像の位置で、かつ、上記線分上の2つの位置座標を、上記の円端部座標として座標/算出データ保持部126に保存する。
これにより、データ表示/センサ装置100は、軌跡算出部123が円の軌跡を算出する場合に比べて、指がなぞった軌跡に忠実にメニュー項目を配置することができるので、センサ内蔵液晶パネル301上をなぞる指(手)の大きさだけでなく、指の動きにあわせてメニュー表示を行うことができる。このため、データ表示/センサ装置100は、ユーザの操作性および利便性をさらに向上させることができる。
(メニューの選択および確定について)
次に、データ表示/センサ装置100がメニュー項目を選択したときにメニュー表示画面、および、当該メニュー項目を確定するときのタイミングについて説明する。
データ表示/センサ装置100は、メニュー表示画面生成部132が生成したメニュー表示画面をセンサ内蔵液晶パネル301に表示させると、当該メニュー項目上にユーザの指がある場合、当該メニュー項目を選択可能な状態であることを示すメニュー表示画面に切り替える。
この場合、例えばメニュー表示画面生成部132は、座標データ取得部111が取得した座標データを順次受信して、メニュー項目の表示領域内の座標と一致するかを判定する。そして、メニュー表示画面生成部132は、受信した座標データとメニュー項目の表示領域内の座標とが一致した場合には、当該メニュー項目が選択されたものと判定し、当該メニュー項目が選択状態であることを示すメニュー表示画面(選択されたメニュー項目の表示(メニュー項目の名称を含む)の拡大、メニュー項目の色の変更など)を生成する。
データ表示/センサ装置100は、選択状態にあるメニュー項目(以降、選択メニュー項目)において、以下の状態(1)から(4)となった場合、当該メニュー項目が確定したものと判定する。すなわち、主制御部800は、
(1)選択メニュー項目上に指が置かれ、そのまま所定の時間が経過したとき
(2)センサ内蔵液晶パネル301上かつ選択メニュー項目上から指が離れたとき
(3)選択メニュー項目上で指の色が変化したとき(すなわち図7(b)に示すような全体画像データを取得したとき)
(4)センサ内蔵液晶パネル301上かつ選択メニュー項目上から指を離して、所定の時間内に再び選択メニュー項目上に指が置かれたとき
に、選択メニュー項目が確定したものと判定し、選択メニュー項目に対応付けられた機能を実行する。
このため、メニュー表示画面生成部132は、選択メニュー項目が確定したか否かを判定するために、表示データをデータ処理部700に送信するのにあわせて、例えば「データ取得タイミング」フィールドの値として“イベント”(“01”)、「データ種別」フィールドの値として“座標”(“001”)を指定したコマンドを、データ処理部700に送信する。
(補足)
最後に、本実施形態に係るデータ表示/センサ装置100の各ブロック、特に表示起動制御部11の座標データ取得部111、座標データ比較部112および表示起動部113、データ算出部12の座標算出部121、距離算出部122、軌跡算出部123、配置可能位置算出部124および面積算出部125、並びに、メニュー表示制御部13のメニュー選択部131およびメニュー表示画面生成部132は、ハードウェアロジックによって構成してもよいし、次のようにCPUを用いてソフトウェアによって実現してもよい。
すなわち、本実施形態に係るデータ表示/センサ装置100は、各機能を実現する制御プログラムの命令を実行するCPU(Central Processing Unit)、上記プログラムを格納したROM(Read Only Memory)、上記プログラムを展開するRAM(Random Access Memory)、上記プログラムおよび各種データを格納するメモリ等の記憶装置(記録媒体)などを備えている。そして、本発明の目的は、上述した機能を実現するソフトウェアであるデータ表示/センサ装置100の制御プログラムのプログラムコード(実行形式プログラム、中間コードプログラム、ソースプログラム)をコンピュータで読み取り可能に記録した記録媒体を、上記データ表示/センサ装置100に供給し、そのコンピュータ(またはCPUやMPU)が記録媒体に記録されているプログラムコードを読み出し実行することによっても、達成可能である。
上記記録媒体としては、例えば、磁気テープやカセットテープ等のテープ系、フロッピー(登録商標)ディスク/ハードディスク等の磁気ディスクやCD−ROM/MO/MD/DVD/CD−R等の光ディスクを含むディスク系、ICカード(メモリカードを含む)/光カード等のカード系、あるいはマスクROM/EPROM/EEPROM/フラッシュROM等の半導体メモリ系などを用いることができる。
また、本実施形態に係るデータ表示/センサ装置100を通信ネットワークと接続可能に構成し、上記プログラムコードを、通信ネットワークを介して供給してもよい。この通信ネットワークとしては、特に限定されず、例えば、インターネット、イントラネット、エキストラネット、LAN、ISDN、VAN、CATV通信網、仮想専用網(Virtual Private Network)、電話回線網、移動体通信網、衛星通信網等が利用可能である。また、通信ネットワークを構成する伝送媒体としては、特に限定されず、例えば、IEEE1394、USB、電力線搬送、ケーブルTV回線、電話線、ADSL回線等の有線でも、IrDAやリモコンのような赤外線、Bluetooth(登録商標)、802.11無線、HDR、携帯電話網、衛星回線、地上波デジタル網等の無線でも利用可能である。なお、本発明は、上記プログラムコードが電子的な伝送で具現化された、搬送波に埋め込まれたコンピュータデータ信号の形態でも実現され得る。
本発明は上述した実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能である。すなわち、請求項に示した範囲で適宜変更した技術的手段を組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。