以下、本発明の各実施の形態について図面を参照して詳細に説明する。
(実施の形態1)
本実施の形態に係るユーザインタフェース装置は、ユーザが指に嵌めて使用するリング型(指輪型)の操作部と、操作部から受信した情報に基づいてパーソナルコンピュータ(PC)で実行されるコマンドを特定してPCへ送信する接続装置と、を備える。このユーザインタフェース装置によれば、ユーザは、指に嵌めた操作部を操作することによりPCを遠隔操作できる。
図1Aに示すように、ユーザインタフェース装置は、操作部11と接続装置12とを備える。そして、ユーザインタフェース装置1は、PC16とともに情報処理システムを構成する。操作部11は、例えばユーザの右手RHの人差し指に嵌められた状態で使用される。ユーザは、操作部11を操作して表示装置15の画面15a上に映し出されるカーソル画像を移動させる操作やスクロール操作を行うことができる。また、ユーザは、キーボード17を用いてPC16へ文字情報を入力することもできる。操作部11は、接続装置12と無線通信し、ユーザにより操作されると操作内容を示す操作情報を接続装置12へ送る。これにより、ユーザは、操作部11を用いてPC16へ情報を入力することができる。
操作部11は、ユーザにより操作されると、その操作内容を示す操作情報と、操作部11の基準軸(第1基準軸)の鉛直方向に対する傾きを示す傾きフラグ(傾き情報)と、操作部11の操作モード設定状態を特定するための状態特定情報と、を送出する。ここで、「操作モード設定状態」とは、操作部11に設定されうる複数種類(本実施の形態では3種類)の操作モードと、操作部11の基準軸の鉛直方向に対する傾斜角度と、の組み合わせの状態を示す。操作部11は、図1Bに示すように、本体部111とトラッキングセンサ(移動検出部)112とプッシュスイッチ113と加速度センサ(傾斜角度検出部)116とリング部114とを備える。本体部111は、扁平な略直方体状の形状を有する。リング部114は、ユーザの人差し指の挿入が可能な大きさである。リング部114の一部は、本体部111に固定されている。トラッキングセンサ112は、トラックボール1129を用いた機械式トラッキングセンサから構成され、トラックボール1129の一部が本体部111から突出するように配置されている。トラッキングセンサ112は、ユーザが指でトラックボール1129を回転させたときの回転速度からトラックボール1129の表面に接触したユーザの指の先端部(ユーザの身体の一部)の移動速度を検出し回転方向からユーザの指の先端部の移動方向を検出する。
操作情報は、プッシュスイッチ113が押下されているか否かを示す押下フラグと、ユーザの指の移動速度を示す移動速度情報およびユーザの指の移動方向を示す移動方向情報から構成される移動情報と、から構成される。傾きフラグは、操作部の鉛直方向に対する傾斜角度が予め設定された角度閾値よりも大きいか否かを示す。
状態特定情報は、ロックフラグ(第1操作モード設定フラグ)とローテーションフラグ(第2操作モード設定フラグ)とから構成される。ロックフラグは、操作モード設定状態が、操作部11の基準軸(第1基準軸)J1の鉛直方向に対する傾きに応じて操作部11の操作モードが変化する可変状態と、操作部11の第1基準軸J1の鉛直方向に対する傾きに関わらず操作部11の操作モードが固定されている固定状態と、のいずれであるかを示す。ローテーションフラグは、操作部11が水平姿勢(第1操作部姿勢)であるのときの操作部11の操作モードと、操作部11が左傾斜姿勢(第2操作部姿勢)であるときの操作部11の操作モードと、操作部11が右傾斜姿勢(第3操作部姿勢)のときの操作部11の操作モードと、を定める。ここで、ユーザは、操作部11のリング部114に対して、人差し指を、図1Bに示すリング部114の中心軸(第2基準軸)J2に沿った方向AR0に挿入して装着するとする。この場合、操作部11を方向AR0から見たときに、操作部11が第2基準軸J2周りに左方向へ傾斜した姿勢を「左傾斜姿勢」、操作部11が第2基準軸J2周りに右方向へ傾斜した姿勢を「右傾斜姿勢」とする。
プッシュスイッチ113は、例えば対向する板ばねと金属板とを含んで構成されている。プッシュスイッチ113は、本体部111の内部における、ユーザがトラックボール1129に対して本体部111側に押し付ける方向への押圧力を作用させたときに押下される位置に配置されている。
加速度センサ116は、3軸加速度センサから構成されている。加速度センサ116は、例えば操作部11の第1基準軸J1を本体部111の厚さ方向に沿った方向、即ち、プッシュスイッチ113の押圧方向に沿った方向に延在するように配置し、この第1基準軸J1の鉛直方向に対する傾斜角度を検出する。特に、加速度センサ116として、薄膜微細加工技術(MEMS)を応用した汎用の加速度センサを採用すれば、操作部11の製造コストおよび消費電力を低減することができる。
操作部11は、図2に示すように、制御部110と無線通信部115と蓄電部117とを更に備える。無線通信部115は、モデム機能と無線通信機能とを備え、制御部110から入力される操作情報を無線信号として接続装置12へ送信するとともに、接続装置12から無線信号として受信した情報を制御部110へ出力する。無線通信部115は、Bluetooth(登録商標)やZigBee(登録商標)のような無線通信規格に準拠した通信方式により接続装置12との間で通信する。
制御部110は、CPU(Central Processing Unit)118とRAM(Random Access Memory)119とROM(Read Only Memory)1110とを備える。RAM119は、フラグ記憶部1191と移動情報記憶部1192とを有する。
フラグ記憶部1191は、押下フラグと傾きフラグとロックフラグとローテーションフラグとを記憶する。フラグ記憶部1191は、更に、ロックフラグまたはローテーションフラグを更新するか否かを定めるチェックフラグ(更新可否フラグ)を記憶する。
移動情報記憶部1192は、トラックボール1129の回転速度から定まる移動速度を示す移動速度情報とトラックボール1129の回転方向から定まる移動方向情報とから構成される移動情報を記憶する。更に、RAM119は、CPU118の作業領域としても使用される。ROM1110には、CPU118が実行するプログラムが格納されている。
CPU118は、ROM1110からプログラムをRAM119に読み込んで実行することにより、操作読取部1181、傾き読取部1182、フラグ管理部1183および通信制御部1184として機能する。操作読取部1181は、トラッキングセンサ112から入力される信号を移動速度情報と移動方向情報とに変換して移動情報記憶部1192に記憶させる。また、操作読取部1181は、プッシュスイッチ113から入力される信号に応じて押下フラグの内容を設定してフラグ記憶部1191に記憶させる。傾き読取部1182は、加速度センサ116から入力される計測情報に基づいて、操作部11の基準軸J1の鉛直方向に対する傾きを読み取る。傾き読取部1182は、読み取った操作部11の基準軸J1の鉛直方向に対する傾きをフラグ管理部1183に通知する。フラグ管理部1183は、後述のフラグ設定処理を実行することにより、傾きフラグ、ロックフラグ、ローテーションフラグおよびチェックフラグの内容を設定する。通信制御部1184は、各種フラグおよび移動情報に送信元と送信先の情報を付加して無線通信部115へ出力する。
PC16は、処理部161と記憶部162と表示インタフェース163と2つのUSB(Universal Serial Interface)インタフェース164、165とを備える。表示インタフェース163は、映像信号を伝送するためのインタフェースであり、表示装置15に接続されている。表示装置15は、液晶ディスプレイや有機ELディスプレイ等から構成される。USBインタフェース164は、キーボード17に接続されている。USBインタフェース165は、接続装置12に接続されている。
接続装置12は、制御部120とUSBインタフェース124と無線通信部125とを備える。制御部120は、CPU121とRAM122とROM123とを備える。USBインタフェース124は、PC16のUSBインタフェース165に接続されている。無線通信部125は、モデム機能と無線通信機能とを備え、制御部120から入力される情報を無線信号として操作部11へ送信するとともに、操作部11から無線信号として受信した情報を制御部120へ出力する。無線通信部125は、Bluetooth(登録商標)やZigBee(登録商標)のような無線通信規格に準拠した通信方式により操作部11との間で無線通信する。
RAM122は、フラグ履歴記憶部1221と移動情報記憶部1222と遷移履歴記憶部1223とコマンド記憶部1224とを有する。フラグ履歴記憶部1221は、操作部11から受信した、ロックフラグ、ローテーションフラグ、押下フラグ、及び傾きフラグを記憶する。移動情報記憶部1222は、接続装置12が操作部11から受信した、移動速度情報および移動方向情報から構成される移動情報を記憶する。
遷移履歴記憶部1223は、接続装置12が操作部11から受信した押下フラグの状態遷移の履歴を記憶している。遷移履歴記憶部1223は、押下フラグが「0(オフ)」から「1(オン)」へ遷移したことを示す遷移情報「D」と、押下フラグが「1(オン)」で維持されていることを示す遷移情報「P」と、押下フラグが「1(オン)」から「0(オフ)」へ遷移したことを示す遷移情報「U」と、押下フラグが「0(オフ)」で維持されていることを示す遷移情報「N」とを記憶している。遷移履歴記憶部1223は、押下フラグの状態遷移の履歴に応じて、遷移情報「D」、遷移情報「P」、遷移情報「U」、遷移情報「N」を時系列で記憶している。コマンド記憶部1224は、後述の特定部1213が特定したコマンドを記憶する。
ROM123は、操作モードテーブルとコマンドテーブルとを記憶するテーブル記憶部1231を有する。例えば図3Aに示すように、操作モードテーブルTA1は、各種操作モードを、傾きフラグ、ロックフラグおよびローテーションフラグと対応づけている。また、図3Bに示すように、コマンドテーブルTA2は、PC16で実行される各種コマンドを、操作モード、操作部11のクリック操作の有無およびトラッキングセンサ112でのトラックボール1129を回転させる操作(以下、「スライド操作」と称する。)の有無と対応づけている。「スライド操作の有無」は、操作部11から受信した移動情報に含まれる、トラックボール1129の表面に接触するユーザの指の先端部の移動速度情報に基づいて判別される。また、「クリック操作有り」は、押下フラグがオンの状態で予め設定された時間経過後にオフされたことに相当する。また、ROM123は、CPU121が実行するプログラムを格納する。なお、このテーブル記憶部1231は、CPU121がROM123からプログラムをRAM122に読み出して実行する際に、RAM122に設けられるものであってもよい。
図2に戻って、CPU121は、ROM123からプログラムをRAM122に読み込んで実行することにより、取得部1211、遷移情報生成部1212、特定部1213およびコマンド送信部1214として機能する。ここで、制御部120は、操作部11から各種フラグおよび回転情報を取得する入力インタフェースを構成する。そして、この制御部120と無線通信部125とを備える接続装置12と操作部11とからユーザインタフェース装置1が構成されている。
取得部1211は、接続装置12が操作部11から受信した操作情報からフラグおよび移動情報を抽出する。そして、取得部1211は、抽出したフラグを、RAM122のフラグ履歴記憶部1221に時系列に記憶させる。また、取得部1211は、抽出した移動情報を、RAM122の移動情報記憶部1222に記憶させる。
遷移情報生成部1212は、接続装置12が操作部11から取得したフラグに含まれる押下フラグの内容と直前の押下フラグの内容とを比較して、押下フラグの遷移を示す遷移情報を生成する。遷移情報生成部1212は、生成した遷移情報を、遷移履歴記憶部1223に記憶させる。
特定部1213は、操作部11から取得した押下フラグの履歴と、移動情報と、傾きフラグと、ロックフラグおよびローテーションフラグとの組み合わせに基づいて、PC16が実行するコマンドを特定する。特定部1213は、まず、フラグ履歴記憶部1221が記憶する、傾きフラグ、ロックフラグおよびローテーションフラグの組み合わせに基づいて、操作部11の操作モードを特定する。そして、特定部1213は、押下フラグの履歴からクリック操作の有無を判定し、移動情報に含まれる移動速度情報からスライド操作の有無を判定する。ここで、特定部1213は、操作部11についてその移動速度情報が示す移動速度が「0」でない場合、「スライド操作有り」と判別する。一方、特定部1213は、操作部11についてその移動速度情報が示す移動速度が「0」である場合、「スライド操作無し」と判別する。その後、特定部1213は、テーブル記憶部1231が記憶する操作モードテーブルおよびコマンドテーブルを参照して、特定した操作モードと、スライド操作の有無およびクリック操作の有無と、に基づいて、コマンド送信部1214が送信するコマンド(第1コマンド、第2コマンド、第3コマンド)を特定し、コマンド記憶部1224に記憶させる。
コマンド送信部1214は、特定部1213により特定されたコマンドをコマンド記憶部1224から取得してPC16へ送信する。コマンドとしては、図3Bに示すような各種コマンドが挙げられる。
次に、本実施の形態に係る操作部11の制御部110が実行するフラグ設定処理について図4乃至図6を参照しながら説明する。制御部110は、フラグ設定処理を実行することにより、接続装置12へ送信するロックフラグFLl、ローテーションフラグFLrおよび押下フラグFLpの内容を設定する。フラグ設定処理は、操作部11へ電源が投入されたことを契機として開始される。
まず、フラグ管理部1183は、図4に示すように、ロックフラグFLl、ローテーションフラグFLrおよび押下フラグFLpの初期設定を実行する(ステップS101)。具体的には、フラグ管理部1183は、ロックフラグFLl、ローテーションフラグFLrおよび押下フラグFLpの内容を「0」に設定する。
次に、フラグ管理部1183は、移動情報記憶部1192が記憶する移動速度情報に基づいて、スライド操作が有ったか否かを判定する(ステップS102)。フラグ管理部1183は、移動速度情報が示す移動速度が予め設定された閾値(例えば0)を超える場合、スライド操作があったと判定する。フラグ管理部1183は、スライド操作があったと判定すると(ステップS102:Yes)、後述のステップS104の処理を実行する。
一方、フラグ管理部1183は、スライド操作が無いと判定すると(ステップS102:No)、フラグ記憶部1191が記憶する押下フラグFLpの内容が変更されているか否かを判定する(ステップS103)。フラグ管理部1183は、押下フラグFLpの内容が変更されていないと判定すると(ステップS103:No)、再びステップS102の処理を実行する。
一方、フラグ管理部1183は、押下フラグFLpの内容が変更されていると判定すると(ステップS103:Yes)、傾き読取部1182が読み取った操作部11の第1基準軸J1の傾きに基づいて、傾きフラグFLtを設定する(ステップS104)。図5Aに示すように、操作部11の姿勢が、操作部11の第1基準軸J1の鉛直方向(鉛直軸J0)に対する傾斜角度が予め設定された角度閾値θth以下である水平姿勢(第1操作部姿勢)にあるとする。この場合、フラグ管理部1183は、傾きフラグFLtを「0(水平)」に設定する。
また、図5Bに示すように、操作部11の第1基準軸J1が鉛直方向に直交する第2基準軸J2周りに第1方向(図5Bの左回り方向)へ回転されて第1基準軸J1の鉛直方向(鉛直軸J0)に対する傾斜角度(第1傾斜角度)θ1が角度閾値θthよりも大きくなることにより、操作部11の姿勢が左傾斜姿勢(第2操作部姿勢)になったとする。この場合、フラグ管理部1183は、傾きフラグFLtを「1(左傾斜)」に設定する。
更に、図5Cに示すように、操作部11の第1基準軸J1が第2基準軸J2周りに第1方向とは逆方向の第2方向(図5Cの右回り方向)へ回転されて第1基準軸J1の鉛直方向(鉛直軸J0)に対する傾斜角度(第2傾斜角度)θ2が角度閾値θthよりも大きくなることにより、操作部11の姿勢が右傾斜姿勢(第3操作部姿勢)になったとする。この場合、フラグ管理部1183は、傾きフラグFLtを「2(右傾斜)」に設定する。
図4に戻って、続いて、フラグ管理部1183は、傾きフラグFLtが「0(水平)」に設定されているか否かを判定する(ステップS105)。フラグ管理部1183は、傾きフラグFLtが「0(水平)」に設定されていると判定すると(ステップS105:Yes)、押下フラグFLpが「1(オン)」に設定されているか否かを判定する(ステップS106)。フラグ管理部1183は、押下フラグFLpが「1」に設定されていると(ステップS106:Yes)、チェックフラグFLcを「1」に設定する(ステップS107)。一方、フラグ管理部1183は、押下フラグFLpが「0」に設定されていると(ステップS106:No)、チェックフラグFLcを「0」に設定する(ステップS108)。
その後、通信制御部1184は、フラグ記憶部1191から、傾きフラグFLt、ロックフラグFLl、ローテーションフラグFLrおよび押下フラグFLpを取得するとともに、移動情報記憶部1192から移動情報を取得する。そして、通信制御部1184は、傾きフラグFLt、ロックフラグFLl、ローテーションフラグFLrおよび押下フラグFLpと移動情報とを、無線通信部115を介して接続装置12へ送信する(ステップS109)。
また、フラグ管理部1183は、ステップS105の処理において、傾きフラグFLtが「0(水平)」ではないと判定したとする(ステップS105:No)。この場合、フラグ管理部1183は、図6に示すように、傾きフラグFLtが「1(左傾斜)」に設定されているか否かを判定する(ステップS111)。フラグ管理部1183は、傾きフラグFLtが「1(左傾斜)」に設定されていると判定すると(ステップS111:Yes)、押下フラグFLpが「1(オン)」に設定されているか否かを判定する(ステップS112)。フラグ管理部1183により押下フラグFLpが「1(オン)」に設定されていると(ステップS112:Yes)、そのまま図4のステップS109の処理が実行される。
一方、フラグ管理部1183は、押下フラグFLpが「0(オフ)」に設定されていると(ステップS112:No)、チェックフラグFLcが「1(オン)」に設定されているか否かを判定する(ステップS113)。フラグ管理部1183によりチェックフラグFLcが「0(オフ)」に設定されていると(ステップS113:No)、そのまま図4のステップS109の処理が実行される。
一方、フラグ管理部1183は、チェックフラグFLcが「1(オン)」に設定されていると(ステップS113:Yes)、ロックフラグFLlを更新する(ステップS114)。ここで、フラグ管理部1183は、ロックフラグFLlが「0(オフ)」に設定されている場合、ロックフラグFLlを「1(オン)」に更新し、ロックフラグFLlが「1(オン)」に設定されている場合、ロックフラグFLlを「0(オフ)」に更新する。
続いて、フラグ管理部1183は、チェックフラグFLcを「0(オフ)」に設定する(ステップS115)。その後、図4のステップS109の処理が実行される。
また、フラグ管理部1183は、ステップS111の処理において、傾きフラグFLtが「2(右傾斜)」であると判定したとする(ステップS111:No)。この場合、フラグ管理部1183は、押下フラグFLpが「1(オン)」に設定されているか否かを判定する(ステップS116)。フラグ管理部1183により押下フラグFLpが「1(オン)」に設定されていると(ステップS116:Yes)、そのまま図4のステップS109の処理が実行される。
一方、フラグ管理部1183は、押下フラグFLpが「0(オフ)」に設定されていると(ステップS116:No)、チェックフラグFLcが「1(オン)」に設定されているか否かを判定する(ステップS117)。フラグ管理部1183によりチェックフラグFLcが「0(オフ)」に設定されていると(ステップS117:No)、そのまま図4のステップS109の処理が実行される。
一方、フラグ管理部1183は、チェックフラグFLcが「1(オン)」に設定されていると(ステップS117:Yes)、ローテーションフラグFLrを更新する(ステップS118)。ここで、フラグ管理部1183は、ローテーションフラグFLrが「0」に設定されている場合、ローテーションフラグFLrを「1」に更新する。また、フラグ管理部1183は、ローテーションフラグFLrが「1」に設定されている場合、ローテーションフラグFLrを「2」に更新する。更に、フラグ管理部1183は、ローテーションフラグFLrが「2」に設定されている場合、ローテーションフラグFLrを「0」に更新する。
次に、フラグ管理部1183は、チェックフラグFLcを「0(オフ)」に設定する(ステップS119)。その後、図4のステップS109の処理が実行される。
次に、本実施の形態に係る接続装置12の制御部120が実行するコマンド送信処理について図7乃至図8Cを参照しながら説明する。制御部120は、コマンド送信処理を実行することにより、操作部11から受信した各種情報に基づいてPC16で実行されるコマンドを特定してPC16へ送信する。コマンド送信処理は、接続装置12へ電源が投入され、制御部120のCPU121がリセットされ、PC16とのUSB通信並びに操作部11との通信が確立し操作部11から各種情報を受信したことを契機として開始される。
まず、遷移情報生成部1212は、図7に示すように、接続装置12が操作部11から押下フラグFLp、ロックフラグFLl、ローテーションフラグFLr、傾きフラグFLtおよび移動情報を受信したか否かを判定する(ステップS201)。遷移情報生成部1212は、フラグ履歴記憶部1221に新たな押下フラグFLp、ロックフラグFLl、ローテーションフラグFLrおよび傾きフラグFLtが記憶され、移動情報記憶部1222に新たな移動情報が記憶されているか否かを判定する。遷移情報生成部1212は、操作部11から押下フラグFLp、ロックフラグFLl、ローテーションフラグFLr、傾きフラグFLtおよび移動情報を受信しない限り(ステップS201:No)、ステップS201の処理を繰り返し実行する。
遷移情報生成部1212が、操作部11から押下フラグFLp、ロックフラグFLl、ローテーションフラグFLr、傾きフラグFLtおよび移動情報を受信したと判定したとする(ステップS201:Yes)。この場合、遷移情報生成部1212は、フラグ履歴記憶部1221が記憶する新たな押下フラグFLpの内容と、直前の押下フラグFLpの内容と、を比較して、押下フラグFLpの遷移を示す遷移情報を生成して遷移履歴記憶部1223に記憶させる(ステップS202)。
次に、特定部1213は、例えば図3Aに示すような操作モードテーブルTA1を参照して、ロックフラグFLl、ローテーションフラグFLrおよび傾きフラグFLtに応じた操作モードを特定する(ステップS203)。例えばローテーションフラグFLrが「0」に設定され且つロックフラグFLlが「0(オフ)」に設定されているとする。この場合、操作モード設定状態は、図8Aに示すように、傾きフラグFLtが「0(水平)」であれば「Aモード」、傾きフラグFLtが「1(左傾斜)」であれば「Bモード」、傾きフラグFLtが「2(右傾斜)」であれば「Cモード」となる状態(第1可変状態)にある。なお、図8A乃至図8Cにおいて、操作部11のリング部114の図示は省略している。また、ローテーションフラグFLrが「1」に設定され且つロックフラグFLlが「0(オフ)」に設定されているとする。この場合、操作モード設定状態は、図8Bに示すように、傾きフラグFLtが「0(水平)」であれば「Bモード」、傾きフラグFLtが「1(左傾斜)」であれば「Cモード」、傾きフラグFLtが「2(右傾斜)」であれば「Aモード」となる状態(第2可変状態)にある。更に、ローテーションフラグFLrが「2」に設定され且つロックフラグFLlが「0(オフ)」に設定されているとする。この場合、操作モード設定状態は、図8Cに示すように、傾きフラグFLtが「0(水平)」であれば「Cモード」、傾きフラグFLtが「1(左傾斜)」であれば「Aモード」、傾きフラグFLtが「2(右傾斜)」であれば「Bモード」となる状態(第3可変状態)にある。つまり、操作モード設定状態は、操作部11の姿勢が水平姿勢である場合に操作部11に設定される操作モードと、操作部11の姿勢が左傾斜姿勢である場合に操作部11に設定される操作モードと、操作部11の姿勢が右傾斜姿勢である場合に操作部11に設定される操作モードとが互いに異なる状態となる。また、操作モード設定状態は、ローテーションフラグFLrの内容に応じて、操作部11の姿勢が水平姿勢、左傾斜姿勢および右傾斜姿勢のそれぞれ場合において操作部11に設定される操作モードが異なる。
一方、ローテーションフラグFLrが「0」に設定され且つロックフラグFLlが「1(オン)」に設定されているとする。この場合、操作モード設定状態は、図9Aに示すように、傾きフラグFLtの内容とは無関係に、操作部11に設定される操作モードが「Aモード」となる状態(第1固定状態)にある。なお、図9A乃至図9Cにおいて、操作部11のリング部114の図示は省略している。また、ローテーションフラグFLrが「1」に設定され且つロックフラグFLlが「1(オン)」に設定されているとする。この場合、操作モード設定状態は、図9Bに示すように、傾きフラグFLtの内容とは無関係に、操作部11に設定される操作モードが「Bモード」となる状態(第2固定状態)にある。更に、ローテーションフラグFLrが「2」に設定され且つロックフラグFLlが「1(オン)」に設定されているとする。この場合、操作モード設定状態は、図9Cに示すように、傾きフラグFLtの内容とは無関係に、操作部11に設定される操作モードが「Cモード」となる状態(第3固定状態)にある。
図7に戻って、次に、特定部1213は、遷移履歴記憶部1223が記憶する押下フラグFLpの遷移情報の履歴に基づいて、クリック操作が有りか否かを判定する(ステップS204)。ここで、特定部1213は、直近の遷移情報「P」の継続期間が予め設定された第1継続期間閾値以上である場合、クリック操作が有ったと判定する。即ち、特定部1213は、図10に示すように、直近の遷移情報「P」の継続期間△Tが予め設定された第1継続期間閾値△Tth1よりも長い場合、クリック操作が有りと判定する。
特定部1213は、クリック操作が有ったと判定すると(ステップS204:Yes)、例えば図3Bに示すようなコマンドテーブルTA2を参照して、特定された操作モードにおけるクリック操作に対応するコマンドを特定する(ステップS205)。続いて、コマンド送信部1214は、特定部1213が特定したコマンドをPC16へ送信する(ステップS206)。一方、特定部1213は、クリック操作が無いと判定すると(ステップS204:No)、特定された操作モードに対応するスライド操作に対応するコマンドを特定する(ステップS207)。その後、ステップS206の処理が実行される。ステップS206の処理が実行された後、再びステップS201の処理が実行される。
これにより、ロックフラグFLlが「0(オフ)」に設定されている状態、即ち、操作部11の操作モード設定状態が、操作部11の傾きによって操作部11が異なる操作モードに設定される状態(第1状態)であるとする。この場合、特定部1213は、操作部11の姿勢が水平姿勢で操作部11が操作されたときと、操作部11の姿勢が左傾斜姿勢で操作部11が操作されたときと、操作部11の姿勢が右傾斜姿勢で操作部11が操作されたときとで、互いに異なるコマンドを特定する。一方、ロックフラグFLlが「1(オン)」に設定されている状態、即ち、操作部11の操作モード設定状態が、操作部11の傾きに関わらず操作部11が同一の操作モードに設定される状態(第2状態)であるとする。この場合、特定部1213は、操作部11の姿勢が水平姿勢で操作部11が操作されたときと、操作部11の姿勢が左傾斜姿勢で操作部11が操作されたときと、操作部11の姿勢が右傾斜姿勢で操作部11が操作されたときとで、同一のコマンドを特定する。
次に、本実施の形態に係るユーザインタフェース装置1の動作を、状態遷移図を用いて説明する。ここにおいて、図8A乃至図8Cに示す操作部11の傾きに応じて操作モードが変化する状態をそれぞれ状態ST1、ST2、ST3とし、図9A乃至図9Cに示す操作部11の傾きに依らず操作モードが固定された状態をそれぞれ状態ST4、ST5、ST6とする。そうすると、ユーザインタフェース装置1は、図11に示すような状態遷移図に従ってその状態が変化する。図11において、「L操作」とは、ロックフラグの内容を更新するために操作部11に対して行う操作である。「L操作」では、まず、ユーザは、操作部11の姿勢が水平姿勢の状態でプッシュスイッチ113を押下する。そして、ユーザは、プッシュスイッチ113を押下した状態を維持しつつ操作部11の姿勢を水平姿勢から図5Bに示すようにリング部114の中心軸J2回りの第1方向(図5Bの左回り)に傾斜させて左傾斜姿勢に変化させてからプッシュスイッチ113を離す(第1操作)。これにより、操作部11の操作モード設定状態は、操作部11の傾きによって操作部11が異なる操作モードに設定される状態(第1状態、第3状態、第4状態)から操作部11の傾きに関わらず操作部11が同一の操作モードに設定される状態(第2状態)へ遷移したり、第2状態から第1状態、第3状態または第4状態へ遷移したりする。
また、図11において、「R操作」とは、ローテーションフラグの内容を更新するために操作部11に対して行う操作である。「R操作」では、まず、ユーザは、操作部11が水平姿勢の状態でプッシュスイッチ113を押下する。そして、ユーザは、プッシュスイッチ113を押下した状態を維持しつつ操作部11の姿勢を水平姿勢から図5Cに示すようにリング部114の中心軸J2回りの第2方向(図5Cの右回り)に傾斜させて右傾斜姿勢に変化させてからプッシュスイッチ113を離す(第2操作)。これにより、操作モード設定状態は、操作部11が水平姿勢、左傾斜姿勢および右傾斜姿勢のときに操作モードが「Aモード」、「Bモード」、「Cモード」に設定される状態(第1可変状態)から「Bモード」、「Cモード」、「Aモード」に設定される状態(第2可変状態)へ遷移する。或いは、操作モード設定状態は、操作部11が水平姿勢、左傾斜姿勢および右傾斜姿勢のときに操作モードが「Bモード」、「Cモード」、「Aモード」に設定される状態(第2可変状態)から「Cモード」、「Aモード」、「Bモード」に設定される状態(第3可変状態)へ遷移する。或いは、操作モード設定状態は、操作部11が水平姿勢、左傾斜姿勢および右傾斜姿勢のときに操作モードが「Cモード」、「Aモード」、「Bモード」に設定される状態(第3可変状態)から「Aモード」、「Bモード」、「Cモード」に設定される状態(第1可変状態)へ遷移する。そして、ユーザは、この「L操作」と「R操作」とを適宜組み合わせて実施することにより、操作モード設定状態を状態ST1乃至ST6のいずれかに遷移させることができる。
次に、このユーザインタフェース装置1の使用方法について、ドラッグ操作とコピー操作とペースト操作を連続して行う方法を例に挙げて説明する。ここでは、ユーザインタフェース装置1の使用方法を、2つの操作釦を有する一般的なマウスから構成されるユーザインタフェース装置の場合と比較しながら説明する。ここでは、テーブル記憶部1231が、図3に示すような操作モードテーブルTA1およびコマンドテーブルTA2を記憶している場合について説明する。
まず、2つの操作釦を有する一般的なマウスから構成されるユーザインタフェース装置を用いて、ドラッグ操作とコピー操作とペースト操作を連続して行う方法について説明する。ユーザは、まず、マウスを把持して動かすことにより、表示画面に表示されているカーソルを、コピーしようとする領域(以下、「コピー領域」と称する。)の起点まで移動させる。次に、ユーザは、2つの操作釦のうちの一方を押下することによりコピー領域の起点を選択し、上記一方の操作釦を押下した状態でマウスを動かしてドラッグ操作を行うことにより、コピー領域を選択してから上記一方の操作釦を放す。続いて、ユーザは、2つの操作釦のうちの他方に対してクリック操作を行うことにより、表示画面にコマンドメニュー画面を表示させる。その後、ユーザは、マウスを動かすことにより、表示画面に表示されているカーソルをコマンドメニュー画面内に表示されている「コピー」コマンド選択位置へ移動させる。次に、ユーザは、上記一方の操作釦に対してクリック操作を行うことにより、PCに「コピー」コマンドを実行させる。続いて、ユーザは、マウスを動かすことにより、表示画面に表示されているカーソルを、コピー領域に含まれる情報を貼り付けようとする(ペーストしようとする)領域(以下、「ペースト領域」と称する。)の起点まで移動させる。その後、ユーザは、上記一方の操作釦に対してクリック操作を行うことにより、ペースト領域の起点を選択する。その後、ユーザは、上記他方の操作釦に対してクリック操作を行うことにより、表示画面にコマンドメニュー画面を表示させる。次に、ユーザは、マウスを動かすことにより、表示画面に表示されているカーソルをコマンドメニュー画面内に表示されている「ペースト」コマンド選択位置へ移動させる。次に、ユーザは、上記一方の操作釦に対してクリック操作を行うことにより、PCに「ペースト」コマンドを実行させる。
次に、本実施の形態に係るユーザインタフェース装置1を用いて、ドラッグ操作とコピー操作とペースト操作を連続して行う方法について説明する。ユーザは、まず、操作部11の第1基準軸J1が鉛直軸J0に等しい状態を維持したまま、トラックボール1129を動かすことにより、表示画面に表示されているカーソルを、コピー領域の起点まで移動させる。次に、ユーザは、トラックボール1129を押し込んでプッシュスイッチ113を押下することによりコピー領域の起点を選択する。そして、ユーザは、図5Bに示すように、操作部11の第1基準軸J1を、鉛直軸J0に対して第1方向(図5Bでの左回り方向)に角度閾値θthよりも大きい角度θ1だけ傾斜させる。続いて、ユーザは、操作部11を傾斜させたまま、トラックボール1129を動かしてドラッグ操作を行うことにより、コピー領域を選択してから、トラックボール1129を介してプッシュスイッチ113に対してクリック操作を行うことにより、表示画面にコマンドメニュー画面を表示させる。次に、ユーザは、操作部11の第1基準軸J1を鉛直軸J0に等しい状態に戻してから、トラックボール1129を動かすことにより、表示画面に表示されているカーソルをコマンドメニュー画面内に表示されている「コピー」コマンド選択位置へ移動させる。続いて、ユーザは、トラックボール1129を介してプッシュスイッチ113に対してクリック操作を行うことにより、PCに「コピー」コマンドを実行させる。そして、ユーザは、操作部11の第1基準軸J1が鉛直軸J0に略等しい状態を維持したまま、トラックボール1129を動かすことにより、表示画面に表示されているカーソルを、ペースト領域の起点まで移動させる。その後、ユーザは、再び図5Bに示すように、操作部11の第1基準軸J1を、鉛直軸J0に対して第1方向(図5Bでの左回り方向)に角度θ1だけ傾斜させる。次に、ユーザは、トラックボール1129を介してプッシュスイッチ113に対してクリック操作を行うことにより、表示画面にコマンドメニュー画面を表示させる。続いて、ユーザは、操作部11の第1基準軸J1を鉛直軸J0に略等しい状態に戻してから、トラックボール1129を動かすことにより、表示画面に表示されているカーソルをコマンドメニュー画面内に表示されている「ペースト」コマンド選択位置へ移動させる。その後、次に、ユーザは、トラックボール1129を介してプッシュスイッチ113に対してクリック操作を行うことにより、PCに「ペースト」コマンドを実行させる。このように、一般的なマウスの場合、9つの手順を踏むのに対して、本実施の形態に係るユーザインタフェースの場合、14個の手順を踏むことになる。ユーザインタフェース装置1を用いてドラッグ操作、コピー操作およびペースト操作を連続して行うときの操作手順の数は、2つの操作釦を有する一般的なマウスから構成されるユーザインタフェース装置の場合のそれに比べて極端に多いものではない。
以上説明したように、本実施の形態に係るユーザインタフェース装置1では、特定部1213が、操作部11から取得した押下フラグの履歴および移動情報と傾きフラグとローテーションフラグおよびロックフラグとの組み合わせに基づいて、情報処理装置で実行されるコマンドを特定する。これにより、特定部1213は、1つの押下フラグまたは移動情報について複数の傾きフラグそれぞれに対応する複数種類のコマンドを特定できる。即ち、特定部1213は、押下フラグおよび移動情報のみで特定できるコマンドの数に比べて多くのコマンドを特定することができるので、ユーザは操作部11に対する各操作に割り当てるコマンドを別のコマンドに切り替えるための操作を行う頻度が低減される。このように、本実施の形態に係るユーザインタフェース装置1は、操作部11の押下フラグおよび移動情報報のみに基づいてコマンドを特定するユーザインタフェース装置に比べて、操作部11に対する操作に割り当てるコマンドを切り替えるための操作が簡素化されている。
また、本実施の形態に係るユーザインタフェース装置1では、操作モードテーブルTA1において、操作部11の傾きフラグ、ロックフラグおよびローテーションフラグと、操作モードと、が対応付けられている。また、コマンドテーブルTA2において、操作部11の操作モード、クリック操作の有無およびスライド操作の有無とPC16で実行されるコマンドとが対応づけられている。そして、特定部1213が、操作モードテーブルTA1およびコマンドテーブルTA2を参照してコマンドを特定する。これにより、ユーザは、操作モードテーブルTA1およびコマンドテーブルTA2の内容を更新するだけで、操作部11に対する操作それぞれに割り当てるコマンドを比較的容易に別のコマンドに切り替えることができる。例えば、図3Bに示すコマンドテーブルTA2について、Bモードに割り当てる動作を、ドラッグからカーソルキー動作等に変更することが可能である。
更に、本実施の形態に係るフラグ記憶部1191は、ロックフラグとローテーションフラグとチェックフラグとを記憶する。そして、フラグ管理部1183は、傾きフラグが「0(水平)」(第1値)に設定されている場合、押下フラグの内容に応じてチェックフラグを「0」(第4値)または「1」(第5値)に設定する。また、フラグ管理部1183は、傾きフラグが「1(左傾斜)」(第2値)に設定され且つチェックフラグが「1」(第5値)に設定されている場合、押下フラグの内容に応じてロックフラグを更新する。更に、フラグ管理部1183は、傾きフラグが「2(右傾斜)」(第3値)に設定され且つチェックフラグが「1」(第5値)に設定されている場合、押下フラグの内容に応じてローテーションフラグを更新する。これにより、ユーザが操作部11を傾けただけで頻繁にロックフラグまたはローテーションフラグが更新されることが防止されるので、ユーザインタフェースの操作性が向上するという利点がある。
また、本実施の形態に係る操作部11は、ユーザが人指し指に装着することができる円環状のリング部114を有している。そして、トラッキングセンサ112のトラックボール1129の一部が、本体部111の一部から露出するように配置されている。また、プッシュスイッチ113は、トラックボール1129を押し込んだときに押下されるように配置されている。これにより、ユーザは、親指の先端をトラックボール1129のみに接触させることによりPC16の操作を行うことができるので、机がないような場所でも使用が制限されることはない。
(実施の形態2)
本実施の形態に係る情報処理システムは、図12に示すように、キーボード(入力装置)3010に着脱自在に装着された2つの操作部3011を備える点が実施の形態1と相違する。なお、図12において実施の形態1と同様の構成については図1Aと同一の符号を付している。キーボード3010は、PC16にケーブルCAを介して有線接続されている。2つの操作部3011は、ユーザの手のひらに納まる程度の大きさのいわゆるパーム型の形状を有する。操作部3011は、トラッキングセンサ3112とプッシュスイッチ3113とを有する。プッシュスイッチ3113は、トラッキングセンサ3112の裏側に配置されており、ユーザがトラッキングセンサ3112を押し込むと押下される。トラッキングセンサ3112は、光学式のトラッキングセンサから構成され、タッチ面がキーボード3010の外面に露出する形で配置されている。また、キーボード3010には、2つ操作部3011それぞれが装着される装着部3218と、操作部3011を装着部3218から離脱させる際に押下される解除釦3219が設けられている。
操作部3011は、図13に示すように、制御部110と無線通信部115と加速度センサ116と蓄電部3118と電源回路3119と電源コネクタ(第1電源コネクタ)3120とを更に備える。なお、図13において実施の形態1と同様の構成については図2と同一の符号を付している。電源コネクタ3120は、キーボード3010から電力供給を受けるためのコネクタである。蓄電部3118は二次電池から構成される。
電源回路3119は、昇降圧回路を有する。操作部3011がキーボード3010の装着部3218に嵌め込まれているとする。この場合、電源回路3119は、キーボード3010から電力供給をド3010の装着部3218から離脱している場合、電源回路3119は、蓄電部3118受けて、蓄電部3118を充電するとともに、トラッキングセンサ3112、加速度センサ116、制御部110および無線通信部115へ電力を供給する一方、操作部3011がキーボーから電力供給を受けて、トラッキングセンサ3112、加速度センサ116、制御部110および無線通信部115へ電力を供給する。
キーボード3010は、制御部120とUSBインタフェース3214と無線通信部3215と2つの電源コネクタ(第2電源コネクタ)3217とを備える。無線通信部3215は、実施の形態1で説明した無線通信部125と同様の構成を有する。また、制御部120は、実施の形態1と同様のハードウェア構成を有する。このキーボード3010と2つの操作部3011とからユーザインタフェース装置3001が構成されている。
制御部120は、実施の形態1で説明したようにCPU121とRAM(図示せず)とROM(図示せず)とを有する。ROMは、実施の形態1と同様に、テーブル記憶部(図示せず)を有する。また、RAMは、実施の形態1と同様に、フラグ履歴記憶部(図示せず)と移動情報記憶部(図示せず)と遷移履歴記憶部(図示せず)とコマンド記憶部(図示せず)とを有する。テーブル記憶部は、実施の形態1で説明した操作モードテーブルTA1およびコマンドテーブルTA2の他に、図14に示すようなコマンドテーブルTA11を記憶している。コマンドテーブルTA11は、図12における左側の操作部(以下、「左側操作部」と称する。)3011の押下操作の有無およびトラッキングセンサ3112でのスライド操作の有無と、図12における右側の操作部(以下、「右側操作部」と称する。)3011の押下操作の有無およびトラッキングセンサ3112でのスライド操作の有無と、PC16で実行されるコマンドと、が対応付けられている。また、「押下操作有り」は、押下フラグが「1(オン)」であることに相当し、「押下操作無し」は、押下フラグが「0(オフ)」であることに相当する。CPU121は、ROMからプログラムをRAMに読み込んで実行することにより、取得部1211、遷移情報生成部1212、特定部1213、コマンド送信部1214およびフラグ設定部3129として機能する。フラグ設定部3129は、操作部3011から受信した操作情報に応じて、ROMのフラグ履歴記憶部が記憶する押下フラグの内容を設定する。
USBインタフェース3214は、ケーブルCAを介してPC16のUSBインタフェース164に接続されている。このUSBインタフェース3214は、PC16から入力された情報を制御部120へ出力するとともに制御部120から入力される操作情報をPC16へ出力する。また、USBインタフェース3214は、2つの電源コネクタ3217それぞれにも接続されている。
電源コネクタ3217は、操作部3011が装着部3218に装着された状態で操作部3011の電源コネクタ3120と電気的に接続される。この状態において、PC16からケーブルCA、USBインタフェース3214を介して供給される電力が、電源コネクタ3217を介して操作部3011へ供給される。
PC16は、USBインタフェース3214を介して、キーボード3010との間で情報の授受を実行するとともにキーボード3010へ電力を供給する。
次に、本実施の形態に係るキーボード3010の制御部120が実行するコマンド送信処理について図15を参照しながら説明する。なお、図15において実施の形態1で説明した処理と同様の処理については図7と同一の符号を付している。また、このコマンド送信処理は、接続装置12へ電源が投入され、制御部120のCPU121がリセットされ、PC16とのUSB通信並びに操作部11との通信が確立し操作部11から各種情報を受信したことを契機として開始される。
まず、取得部1211は、2つの操作部3011が装着部3218に装着されているか否かを判定する(ステップS301)。取得部1211により2つの操作部3011の少なくとも一方が装着部3218から離脱していると判定されると(ステップS301:No)、実施の形態1の図7のステップS201以降の処理が実行される。即ち、2つの脱着可能な操作部3011のいずれか一方が、装着部3218から離脱した場合、離脱した方の操作部3011は、実施の形態1で説明したフラグ設定処理と同様の処理を実行し、キーボード3010の制御部120は、実施の形態1で説明したコマンド送信処理と同様の処理を実行する。
一方、取得部1211は、2つの操作部3011が装着部3218に装着されていると判定すると(ステップS301:Yes)、2つの操作部3011から操作情報を受信したか否かを判定する(ステップS302)。取得部1211は、操作情報を受信していない場合(ステップS302:No)、再びステップS302の処理を実行する。一方、取得部1211は、操作情報を受信した場合(ステップS302:Yes)、まず、図12における左側操作部3011から受信した操作情報に含まれる移動速度情報と移動方向情報とを移動情報記憶部に記憶させる(ステップS303)。
続いて、フラグ設定部3129は、左側操作部3011の操作情報に含まれる押下フラグの内容を参照して、左側操作部3011のプッシュスイッチ3113が押下されているか否かを判定する(ステップS304)。フラグ設定部3129は、左側操作部3011のプッシュスイッチ3113が押下されていると判定すると(ステップS304:Yes)、フラグ履歴記憶部が記憶する左側操作部3011の押下フラグを「1(オン)」に設定する(ステップS305)。一方、フラグ設定部3129は、左側操作部3011のプッシュスイッチ3113が押下されていないと判定すると(ステップS304:No)、左側操作部3011の押下フラグを「0(オフ)」に設定する(ステップ306)。
その後、フラグ設定部3129は、他方の操作部、即ち、右側操作部3011について押下フラグの設定が完了したか否かを判定する(ステップS307)。フラグ設定部3129により右側操作部3011について押下フラグの設定が完了していないと判定されると(ステップS307:No)、右側操作部3011についてステップS304からS306までの一連の処理が実行される。
一方、フラグ設定部3129が、右側操作部3011について押下フラグの設定が完了したと判定したとする(ステップS307:Yes)。この場合、特定部1213は、図14に示すようなコマンドテーブルTA11を参照して、押下フラグの内容、移動速度情報および移動方向情報と、に基づいて、PC16で実行されるコマンドを特定する(ステップS308)。
次に、コマンド送信部1214は、特定部1213が特定したコマンドをPC16へ送信する(ステップS309)。その後、再びステップS301の処理が実行される。
本実施の形態に係るユーザインタフェース装置3001によれば、操作部3011がキーボード3010の装着部3218に装着された状態で、操作部3011の蓄電部3118が充電される。また、2つの操作部3011のいずれか一方が、装着部3218から離脱した場合、他方の操作部3011は、装着部3218に装着された状態でPC16からの充電が継続される。従って、例えば2つの操作部3011を交互に装着部3218から離脱させて使用することにより、操作部3011のいわゆる電池切れのリスクが回避される。つまり、故障が無い限り半永久的に使用できるという利点がある。また、操作部3011がキーボード3010から離脱された状態では、ユーザがPC16やキーボード3010から離れたところでPC16の操作を行うことができるという利点もある。
(変形例)
以上、本発明の実施の形態について説明したが、本発明は前述の実施の形態の構成に限定されるものではない。例えば図16に示すように、いわゆるペン型の操作部5011を備える構成であってもよい。
この操作部5011は、ペン形状である本体部5111と、トラッキングセンサ5112と、ノックボタン5113と、を備える。本体部5111は、トラッキングセンサ5112、ノックボタン5113および加速度センサ(図示せず)を収納する。トラッキングセンサ5112は、本体部5111の長手方向における一端部に設けられ、本体部5111の外側面に露出するように配置されている。ノックボタン5113は、本体部5111の長手方向における一端部から本体部5111の長手方向に沿って突出し、本体部5111の長手方向に沿って本体部5111側に押し付ける方向へ押圧力を作用させたとき押下される。操作部5011のその他の構成は、図2に示す操作部11の構成と同様である。ユーザは、図17に示すように右手RHに操作部5011を把持してPC16の操作を行うことができる。また、この操作部5011は、ボールペンやシャープペンシルのような筆記具としての機能を有するものであってもよい。この場合、操作部5011は、ノックボタン5113の機能を筆記具のノックボタン機能またはPC16の操作用ボタン機能のいずれかに切り替えるための切替スイッチを更に備える構成となる。
或いは、トラッキングセンサ5112の裏側にプッシュスイッチを備える構成であってもよい。この場合、ノックボタン5113は芯送り出し機能に特化させることができるので、上記切替スイッチが不要となる。
また、操作部5011は、その先端部からレーザ光を放射するレーザポインタとして機能するものであってもよい。この場合、操作部5011は、ノックボタン5113の機能をレーザポインタのオンオフスイッチ機能またはPC16の操作用ボタン機能のいずれかに切り替えるための切替スイッチを更に備える構成となる。この切替スイッチとしては、例えば本体部5111のペン先側を本体部5111のノックボタン5113側に対して予め設定された角度だけ回転させることができる回転機構を利用したものを採用できる。この場合、例えば本体部5111のペン先側に対して本体部5111のノックボタン5113側をペン先側から見て右方向に回して固定すると操作部として機能し、ペン先側から見て左方向に回して固定するとレーザポインタとして機能する構成にできる。
本構成によれば、操作部5011が筆記具或いはレーザポインタとしても機能するので、ユーザは操作部5011を多様な用途に利用することができる。また、本体部5111は、実施の形態1で説明したリング型の操作部11の本体部111に比べて内部の容積を大きくすることができる。従って、本体部5111の内容に蓄電部用に大きなスペースを確保し易くなる。
実施の形態1では、操作部11が片手のみに装着される例について説明したが、これに限らず、例えば図18に示すように、左手LHおよび右手RHそれぞれに装着された2つの操作部11を備える構成であってもよい。
この変形例に係る2つの操作部11および接続装置12の構成は、実施の形態1で説明した操作部11および接続装置12の構成と同様である。フラグ履歴記憶部1221は、2つの操作部11それぞれについてのロックフラグ、ローテーションフラグ、押下フラグおよび傾きフラグを記憶する。また、移動情報記憶部1222は、2つの操作部11それぞれについての移動情報を区別して記憶する。遷移履歴記憶部1223は、2つの操作部11それぞれについての押下フラグの遷移情報の履歴を区別して記憶している。
テーブル記憶部1231は、図19に示すようなコマンドテーブルTA3を記憶する。コマンドテーブルTA3では、PC16で実行される各種コマンドを、ユーザの左手LHに装着された操作部(以下、「左側操作部」と称する。)11の操作モードと、ユーザの右手RHに装着された操作部(以下、「右側操作部」と称する。)11の操作モードと、2つの操作部11それぞれについてのクリック操作の有無およびスライド操作の有無と、に対応付けている。
取得部1211は、接続装置12が2つの操作部11それぞれから受信した操作情報からフラグを抽出して、2つの操作部11のいずれのフラグかを区別できる形でフラグ履歴記憶部1221に時系列に記憶させる。また、取得部1211は、接続装置12が2つの操作部11それぞれから受信した操作情報から移動情報を抽出して、2つの操作部11のいずれのフラグかを区別できる形で移動情報記憶部1222に記憶させる。
遷移情報生成部1212は、2つの操作部11それぞれについて押下フラグの遷移情報を生成して遷移履歴記憶部1223に記憶させる。
特定部1213は、フラグ履歴記憶部1221が記憶するフラグから2つの操作部11それぞれの操作モードを特定する。そして、特定部1213は、特定した2つの操作部11それぞれ操作モードと、2つの操作部11それぞれについてのスライド操作の有無およびクリック操作の有無と、に基づいて、コマンド送信部1214が送信するコマンドを特定する。
なお、本変形例に係る制御部110が実行するフラグ設定処理並びに制御部120が実行するコマンド送信処理は、実施の形態1で説明したフラグ設定処理並びにコマンド送信処理と同様である。但し、各操作部11の制御部110は、図4のステップS109の処理において、フラグおよび移動情報に、2つの操作部11のいずれについての情報であるかを識別する操作部識別情報を付与して接続装置12へ送信する。また、接続装置12の制御部120は、図7のステップS202の処理において、2つの操作部11それぞれについて個別に遷移情報を生成し、ステップS203の処理において、2つの操作部11それぞれについて操作モードを特定する。また、制御部120は、ステップS204の処理において、2つの操作部11それぞれについて個別にクリック操作の有無を判定する。
本構成によれば、特定部1213が、2つの操作部11それぞれについて、傾きフラグ、ローテーションフラグおよびロックフラグの組み合わせから操作モードを特定する。そして、特定部1213は、2つの操作部11それぞれから取得した押下フラグの遷移情報および移動情報と、操作モードと、の組み合わせに基づいて、PC16で実行されるコマンドを特定する。これにより、特定部1213は、2つの操作部11それぞれの押下フラグの遷移情報、スライド操作の有無および操作モードの組み合わせの数に相当する複数種類のコマンドからコマンドを特定することができる。即ち、特定部は、1つの操作部のみで特定できるコマンドの数に比べて多くのコマンドを特定することができるので、ユーザは2つの操作部11に対する各操作に割り当てるコマンドを別のコマンドに切り替えるための操作を行う頻度が低減され。このように、本実施の形態に係るユーザインタフェース装置は、1つの操作部のみを備えるユーザインタフェース装置に比べて操作性に優れている。
実施の形態1では、1つのトラッキングセンサ112と1つのプッシュスイッチ113とを有する操作部11を備える構成について説明したが、操作部が備えるトラッキングセンサとプッシュスイッチの数は1つに限定されるものではない。例えば図20に示すように、操作部が、2つのトラッキングセンサ2112A、2112Bと2つのプッシュスイッチ2113A、2113Bとを有する操作ボード2511から構成されていてもよい。操作ボード2511は、例えば2つのトラッキングセンサ2112A、2112Bと2つのプッシュスイッチ2113A、2113Bとに関する操作情報と、操作ボード2511の傾きを示す傾きフラグと、ロックフラグおよびローテーションフラグと、を送出する。
また、操作ボード2511は、図21に示すように、制御部2110と無線通信部115と加速度センサ116と蓄電部117とを更に備える。制御部2110は、CPU118とRAM119とROM1110とを有する。RAM119は、フラグ記憶部1191と移動情報記憶部1192とを有する。CPU118は、ROM1110からプログラムをRAM119に読み込んで実行することにより、操作読取部2181、傾き検出部1182、フラグ管理部1183および通信制御部1184として機能する。なお、図21において実施の形態1と同様の構成については図2と同一の符号を付している。
フラグ記憶部1191は、2つのプッシュスイッチ2113A、2113Bそれぞれの押下フラグと、操作ボード2511の傾きを示す傾きフラグと、ロックフラグおよびローテーションフラグと、を記憶する。移動情報記憶部1192は、2つのトラッキングセンサ2112A、2112Bそれぞれについての移動情報を区別して記憶する。操作読取部2181は、2つのトラッキングセンサ2112A、2112Bそれぞれから入力される信号を、2つのトラッキングセンサ2112A、2112Bそれぞれに対応する移動情報を生成して移動情報記憶部1192に記憶させる。また、操作読取部1181は、2つのプッシュスイッチ2113A、2113Bそれぞれから入力される信号に応じて、2つのプッシュスイッチ2113A、2113Bそれぞれの押下フラグを生成してフラグ記憶部1191に記憶させる。通信制御部1184は、2つのトラッキングセンサ2112A、2112Bそれぞれに対応する移動情報と2つのプッシュスイッチ2113A、2113Bそれぞれに対応する押下フラグと、傾きフラグ、ロックフラグおよびローテーションフラグとを接続装置12へ送信する。
本変形例に係る操作ボード2511の制御部2110が実行するフラグ設定処理は、実施の形態1で説明したフラグ設定処理と同様である。但し、図4のステップS102の処理において、制御部2110は、2つのトラッキングセンサ2112A、2112Bそれぞれに対応する移動情報から2つのトラッキングセンサ2112A、2112Bの少なくとも一方についてスライド操作が有るか否かを判定する。また、図4のステップS103の処理において、制御部2110は、2つのプッシュスイッチ2113A、2113Bそれぞれの押下フラグの少なくとも一方が更新されたか否かを判定する。
接続装置12の構成は、図21に示すように、実施の形態1で説明した接続装置12の構成と同様である。但し、フラグ履歴記憶部1221は、2つのプッシュスイッチ2113A、2113Bそれぞれの押下フラグを区別して記憶する。また、移動情報記憶部1222は、2つのトラッキングセンサ2112A、2112Bそれぞれに対応する移動情報を区別して記憶する。遷移履歴記憶部1223は、2つの操作部11それぞれから受信した押下フラグの遷移情報の履歴を区別して記憶している。
テーブル記憶部1231は、図22に示すようなコマンドテーブルTA4を記憶する。コマンドテーブルTA4では、PC16で実行される各種コマンドを、操作ボード2511の操作モードと、2つのプッシュスイッチ2113A、2113Bそれぞれに対するクリック操作の有無と、2つのトラッキングセンサ2112A、2112Bそれぞれに対するスライド操作の有無と、に対応づけている。
特定部1213は、2つのプッシュスイッチ2113A、2113Bそれぞれの押下フラグの遷移情報の履歴からクリック操作の有無を判定し、2つのトラッキングセンサ2112A、2112Bそれぞれの移動情報(移動速度情報)からスライド操作の有無を判定する。そして、特定部1213は、コマンドテーブルTA4を参照して、操作ボード2511の操作モードと、クリック操作の有無およびスライド操作の有無と、の組み合わせからコマンドを特定する。
本構成によれば、操作ボード2511について、傾きフラグ、ローテーションフラグおよびロックフラグの組み合わせから操作モードを特定する。そして、特定部1213は、2つの操作部11それぞれから取得した押下フラグの遷移情報および移動情報と、操作モードと、の組み合わせに基づいて、PC16で実行されるコマンドを特定する。これにより、特定部1213は、1つの操作部のみで特定できるコマンドの数に比べて多くのコマンドを特定することが可能となる。
各実施の形態では、図5Bおよび図5Cに示すように、操作部11の第1基準軸J1が第2基準軸J2周りに第1方向(図5Bの左回り方向)または第1方向とは逆方向の第2方向(図5Cの右回り方向)へ傾いたときに、フラグ管理部1183が、傾きフラグを変更する例について説明した。但し、傾きフラグを変更するために操作部11を傾ける方向は、1つの第2基準軸J2周りに回転する方向に限定されるものではない。例えば、操作部11が、互いに交差する2つの基準軸それぞれの周りに傾けられたときに、傾きフラグが更新される構成であってもよい。例えば図23Aおよび図23Bに示すように、操作部11の第1基準軸J1が互いに直交する第2基準軸J2および第3基準軸J3周りに傾いたときに、フラグ管理部1183が、傾きフラグを変更する構成であってもよい。ここで、第2基準軸J2は、鉛直方向(鉛直軸J0)に直交している。また、第3基準軸J3は、鉛直方向(鉛直軸J0)および第2基準軸J2に直交している。
図23Aに示すように、操作部11の第1基準軸J1が第2基準軸J2周りに第1方向(図23Aの左回り方向)へ傾けられることにより、操作部11が、第1基準軸J1の鉛直方向(鉛直軸J0)に対する傾斜角度θ1が角度閾値θthよりも大きい姿勢になったとする。この場合、フラグ管理部1183は、傾きフラグを「1」に設定する。一方、図23Bに示すように、操作部11の第1基準軸J1が第3基準軸J3周りに第3方向(図23Bの右回り方向)へ傾けられることにより、操作部11が、第1基準軸J1の鉛直方向(鉛直軸J0)に対する傾斜角度θ3が角度閾値θthよりも大きい姿勢になったとする。この場合、フラグ管理部1183は、傾きフラグを「2」に設定する。
本変形例に係る操作部11の制御部110が実行するフラグ設定処理は、実施の形態1で説明したフラグ設定処理と同様である。但し、図4のステップS104の処理において、フラグ管理部1183は、操作部11の第2基準軸J2周りの傾斜角度θ1と第3基準軸J3周りの傾斜角度θ3の両方が角度閾値θthよりも大きいと判定された場合、傾斜角度θ1、θ3に対する判定結果のいずれか一方を優先して傾きフラグを設定する。例えば、フラグ管理部1183が、操作部11の第2基準軸J2周りの傾斜角度θ1に対する判定結果を優先する場合、傾斜角度θ1、θ3の両方が角度閾値θthよりも大きいとき、傾きフラグを「1」に設定する。
本構成によれば、操作部11を傾ける方向のバリエーションを増やすことができるので、操作部11の操作方法をユーザの嗜好に適合させ易くなるという利点がある。
実施の形態では、接続装置12においてPC16で実行されるコマンドを特定してPC16へ送信する例について説明した。但し、これに限らず、例えば図24に示すように、操作部4011が、PC16で実行されるコマンドを特定し、無線通信装置4012を介してPC16へコマンドを送信するものであってもよい。なお、図24において実施の形態1と同様の構成については図2と同一の符号を付している。操作部4011のハードウェア構成は、実施の形態1で説明した操作部11のハードウェア構成と同様である。操作部4011と、PC16のUSBインタフェース165に接続された無線通信装置4012とからユーザインタフェース装置4001が構成されている。無線通信装置4012は、操作部4011からコマンドを示す情報を受信すると、そのコマンドを示す情報をPC16へ出力する。
操作読取部1181は、プッシュスイッチ113から入力される信号に応じて押下フラグの内容を設定してフラグ履歴記憶部1221に記憶させる。フラグ管理部4183は、傾きフラグ、ロックフラグ、ローテーションフラグおよびチェックフラグの内容を設定してフラグ記憶部1191に記憶させる。コマンド送信部1214は、コマンド記憶部1224から特定部1213により特定されたコマンドを示す情報を取得してPC16に接続された無線通信装置4012へ送信する。
次に、本変形例に係る操作部4011が実行するコマンド特定送信処理について説明する。このコマンド特定送信処理は、図4および図6に示すフラグ設定処理について、ステップS109の傾きフラグ、ロックフラグ、ローテーションフラグ、押下フラグおよび移動情報を送信する処理に代えて、図25に示すコマンド送信処理を実行するものである。なお、図25において、実施の形態1で説明したコマンド送信処理と同様の処理については図7と同一の符号を付している。
本構成によれば、コマンドを特定する処理を操作部4011が担うことにより、実施の形態1で説明した接続装置12が不要となる。
実施の形態1では、接続装置12の特定部1213各操作部11の押下フラグの遷移情報に基づいて、コマンドを特定する例について説明した。但し、これに限らず、例えば特定部1213が、操作部11に対応する押下フラグに基づいて、コマンドを特定する構成であってもよい。
実施の形態1では、操作部11がユーザの右手RHに装着される例について説明したが、装着される場所は必ずしも右手RHに限定されるものではない。例えば操作部11がユーザの左手LHに装着されるものであってもよいし、或いは、ユーザの足の指に装着されるものであってもよい。
実施の形態2では、PC16が、デスクトップ型のパソコンであり、キーボード3010とケーブルCAを介して有線接続している例について説明したが、これに限らず、PC16とキーボード3010とが無線接続されているものであってもよい。或いは、PC16の機能とキーボード3010の機能とを備えるノート型パソコンから構成されていてもよい。
実施の形態2では、操作部3011がキーボード3010に設けられ、キーボード3010がPC16とケーブルCAを介して有線接続されている例について説明したが、これに限らず、例えば操作部3011がテレビ用のリモコンに設けられたものであってもよい。この場合、ユーザは、例えばテレビにインターネットのブラウザの画面を表示させた状態で、リモコンの操作部3011を操作してカーソル移動操作やスクロール操作を行うことができる。
実施の形態1において、操作部11は、操作部11を構成するトラッキングセンサ112もしくはプッシュスイッチ113が、予め設定された時間だけ操作されなかった場合、低消費電力で動作するスリープモードに移行する構成であってもよい。この場合、操作部11は、操作部11を構成するトラッキングセンサ112もしくはプッシュスイッチ113が、操作されたことを契機として、スリープモードから通常モードへ移行するようにすればよい。
各実施の形態では、操作部11がとりうる操作モードは、「Aモード」、「Bモード」、「Cモード」の3つである場合について説明したが、操作部11がとりうる操作モードの数は3つに限定されるものではなく、4つ以上であってもよい。例えば、ローテーションフラグが4種類以上の値をとりうるようにし、ユーザが「R操作」を行うことにより、ローテーションフラグが4種類以上の値に設定されうるようにしてもよい。この場合、ユーザが「R操作」を行うことにより、4つ以上の操作モードの中から、操作部11の傾きに応じて操作モードが変化する状態において実際に現れる3つの操作モードが選択される。例えば、操作部11が「Aモード」、「Bモード」、「Cモード」、「Dモード」、「Eモード」の5つの操作モードをとりうるとする。この場合、図26A乃至図26C並びに図27Aおよび図27Bに示すように、操作部11の傾きに応じて操作モードが変化する状態として状態ST21、ST22、ST23、ST24、ST25が存在しうる。また、図28A乃至図28C並びに図29Aおよび図29Bに示すように、操作部11の傾きに依らず操作モードが固定された状態として状態ST26、ST27、ST28、S29、S30が存在しうる。そうすると、ユーザインタフェース装置は、図30に示すような状態遷移図に従ってその状態が変化する。なお、図30において、「L操作」、「R操作」は、図11における「L操作」、「R操作」と同様の操作である。図26Aおよび図26Bに示すように、操作部11が状態ST21であるときに、ユーザにより「R操作」が実行されることにより操作部11が状態ST22に遷移すると、状態ST21では存在しなかった操作モード「Dモード」が新たに現れる。また、図26Bおよび図26Cに示すように、操作部11が状態ST22であるときに、ユーザにより「R操作」が実行されることにより操作部11が状態ST23に遷移すると、状態ST22では存在しなかった操作モード「Eモード」が新たに現れる。このように、本変形例に係るユーザインタフェース装置の場合、ユーザが「R操作」を行うことにより、5つの操作モードの中から、操作部11の傾きに応じて操作モードが変化する状態において実際に現れる3つの操作モードを選択することができる。
或いは、傾きフラグが4種類以上の値をとりうるようにし、傾きフラグの各設定値に応じて異なる操作モードが選択される構成であってもよい。例えば、操作部11が、5つの操作モードをとりうる場合、傾きフラグが「0(水平)」、「1(左傾斜)」、「2(右傾斜)」に加えて、「3(左少し傾斜)」、「4「右少し傾斜」」に設定されるようにしてもよい。図31Aに示すように、操作部11の第1基準軸J1が鉛直方向に直交する第2基準軸J2周りに第1方向(図31Aの左回り方向)へ回転されて第1基準軸J1の鉛直方向(鉛直軸J0)に対する傾斜角度(第1傾斜角度)θ31が角度閾値θthの半分の角度1/2θthよりも大きく且つ角度閾値θth以下の範囲内になったとする。この場合、フラグ管理部1183は、操作部11が左に少し傾斜した姿勢になったとして、傾きフラグを「3(左少し傾斜)」に設定する。
また、図31Bに示すように、操作部11の第1基準軸J1が第2基準軸J2周りに第1方向とは逆方向の第2方向(図31Bの右回り方向)へ回転されて第1基準軸J1の鉛直方向(鉛直軸J0)に対する傾斜角度(第2傾斜角度)θ2が角度閾値θthの半分の角度1/2θthよりも大きく且つ角度閾値θth以下の範囲内になったとする。この場合、フラグ管理部1183は、操作部11が右に少し傾斜した姿勢になったとして、傾きフラグを「4(右少し傾斜)」に設定する。
また、本変形例では、フラグ管理部1183は、図6のステップS111の処理において、傾きフラグが「1(左傾斜)」に設定されていないと判定すると(ステップS111:No)、傾きフラグが「2(右傾斜)」に設定されているか否かを判定する。そして、フラグ管理部1183は、傾きフラグが「2(右傾斜)」に設定されていると判定すると、図6のステップS116の処理を実行する。一方、フラグ管理部1183が、傾きフラグが「2(右傾斜)」に設定されていない、即ち、傾きフラグが「3(左少し傾斜)」または「4(右少し傾斜)」に設定されていると判定したとする。この場合、そのままステップS109の処理が実行される。
接続装置12のテーブル記憶部1231が、例えば図32に示すような操作モードテーブルTA5を記憶しているとする。この場合、接続装置12の特定部1213は、傾きフラグが「3(左少し傾斜)」に設定されている場合、ロックフラグおよびローテーションフラグの設定値に関わらず操作モード「Dモード」を特定する。また、特定部1213は、傾きフラグが「4(右少し傾斜)」に設定されている場合、ロックフラグおよびローテーションフラグの設定値に関わらず操作モード「Eモード」を特定する。
本構成によれば、特定部1213が特定できるコマンドの数を増やすことができる。
実施の形態2では、2つの操作部3011の一方が装着部3218から離脱した状態で、操作部3011が実施の形態1で説明したフラグ設定処理を実行する例について説明した。但し、これに限らす、例えば、2つの操作部3011の両方が装着部3218から離脱した状態でのみ、操作部3011が実施の形態1で説明したフラグ設定処理を実行する構成であってもよい。この場合、図15のステップS301の処理の代わりに、取得部1211が、2つの操作部3011の少なくとも一方が装着部3218に装着されているか否かを判定する処理を実行するようにすればよい。
実施の形態1では、操作部11の制御部110がフラグ設定処理を実行することにより、ロックフラグおよびローテーションフラグの内容を設定する構成について説明した。但し、これに限らす、例えば接続装置12の制御部120が、ロックフラグおよびローテーションフラグの内容を設定する処理を実行する構成であってもよい。
各実施の形態では、操作部が1つまたは2つの場合について説明したが、操作部の数は1つまたは2つに限定されるものではなく、3つ以上であってもよい。この場合、接続装置12の特定部1213は、3つ以上の操作部それぞれから取得した操作情報または操作情報の履歴と、各操作部の操作モードと、の組み合わせに基づいて、PC16で実行されるコマンドを特定してもよい。
実施の形態1では、トラッキングセンサ112は、トラックボール1129を用いた機械式トラッキングセンサから構成されている例について説明したが、トラッキングセンサの構成はこれに限定されない。例えばトラッキングセンサが、ユーザによりタッチされるタッチ面を有する撮像素子を用いた光学式トラッキングセンサから構成されていてもよい。この場合、トラッキングセンサは、タッチ面が本体部の周面に露出するように配置されればよい。
実施の形態1では、トラッキングセンサ112とプッシュスイッチ113とが別体である例について説明した。これに限らず、例えば、操作部11が、タッチ面を有し、このタッチ面に接触するユーザの指等のトラッキングを行うトラッキング部と、ユーザによりタッチ面が押下されたときの圧力を検出する感圧部と、を有する感圧トラッキングセンサを有するものであってもよい。この場合、トラッキング部が、ユーザの身体の少なくとも一部の移動速度および移動方向を検出し、感圧部が、タッチ面が押下されたときの圧力の大きさから、ユーザによりタッチ面が押下されたことを検出する。
また、本発明に係るユーザインタフェース装置の各種機能は、専用のシステムによらず、通常のコンピュータシステムを用いて実現可能である。例えば、ネットワークに接続されているコンピュータに、上記動作を実行するためのプログラムを、コンピュータシステムが読み取り可能な非一時的な記録媒体(例えばCD−ROM)に格納して配布し、当該プログラムをコンピュータシステムにインストールすることにより、上述の処理を実行するユーザインタフェース装置を構成してもよい。
また、コンピュータにプログラムを提供する方法は任意である。例えば、プログラムは、通信回線の掲示版(BBS)にアップロードされ、通信回線を介してコンピュータに配信されてもよい。そして、コンピュータは、このプログラムを起動して、OSの制御の下、他のアプリケーションと同様に実行する。これにより、コンピュータは、上述の処理を実行するユーザインタフェース装置として機能する。
以上、本発明の実施の形態および変形例(なお書きに記載したものを含む。以下、同様。)について説明したが、本発明はこれらに限定されるものではない。本発明は、実施の形態および変形例が適宜組み合わされたもの、それに適宜変更が加えられたものを含む。
本出願は、2016年9月5日に出願された日本国特許出願特願2016−172725号に基づく。本明細書中に日本国特許出願特願2016−172725号の明細書、特許請求の範囲および図面全体を参照として取り込むものとする。