説明

端末装置及びプログラム

【課題】ユーザにとっての利便性の高い端末装置及びプログラムを提供する。
【解決手段】端末装置1において、CPU110は、通信相手の検索が成功した場合に、センサ部30により検出される端末装置1の動作に基づいて動作パターンテーブル132より動作パターンを特定し、当該特定した動作パターンに応じた通信処理内容にて通信相手と通信する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、端末装置及びプログラムに関する。
【背景技術】
【0002】
従来、商品に取り付けられたRFID(Radio Frequency Identification)タグ等のNFC(Near Field Communication)カードを、NFC技術を用いて読取り、当該NFCカードに書き込まれたデータを取得可能な機能を備えるハンディターミナルなどの端末装置が知られている。当該端末装置は、上記データの読取り機能に加えて、自機と相手機(通信相手)との間で上記NFC技術を用いた通信機能が備えられており、読取ったデータを送受信等することにより商品に関する管理情報を相互に収集可能なことから、商品資産の棚卸しや商品の在庫管理など多様な用途がある。
【0003】
ところが、端末装置にて上記NFC技術を用いた通信機能を実行するには、通信時において自機と相手機の端末装置を送信モードとするか受信モードとするか、を操作パネルなどを介して事前に設定しておく必要があった。そのため、通信設定に手間や時間がかかるとともに、端末装置の設定操作の習熟が要求されるので、ユーザにとって利便性に欠くという問題があった。
【0004】
そこで、デジタルカメラにおいて、姿勢検出装置を備え、当該姿勢検出装置にてデジタルカメラの姿勢を検知し、下向きの姿勢にあるデジタルカメラ(送信モードのデジタルカメラ)より上向きの姿勢にあるデジタルカメラ(受信モードのデジタルカメラ)に向けて、自動的に画像データの送信が可能なものが知られている(例えば、特許文献1等参照)。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開平2009−253511号公報
【0006】
上記特許文献1に記載のデジタルカメラによると、通信設定における送信モードと受信モードの事前設定が不要になるため、データの送受信が容易になる。
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかしながら、上記特許文献1に記載のデジタルカメラでは、通信内容としてデータの送受信が可能であれば足りると推測されるが、商品の在庫管理などの多様な用途を備える端末装置では、例えば、データの送受信,データの初期化,自機と相手機とのデータの同期処理,などのように通信内容が多岐に亘る場合が考えられる。このような場合、ユーザは操作パネルなどを介して実施すべき通信内容を事前に設定しておく必要があるため、ユーザにとって依然利便性に欠くという問題があった。
【0008】
そこで、本発明の課題は、ユーザにとっての利便性の高い端末装置及びプログラムを提供する。
【課題を解決するための手段】
【0009】
以上の課題を解決するため、請求項1に記載の発明は、端末装置であって、装置本体の複数の動作パターンと、それぞれの前記動作パターンに応じた通信処理内容と、を対応付けて記憶する記憶部と、前記装置本体の動作を検出する動作検出部と、前記通信部より検索信号を送信又は受信して前記通信相手を検索し、前記通信相手の検索が成功した場合に、前記動作検出部により検出される装置本体の動作に基づいて前記記憶部より前記動作パターンを特定し、前記通信部により当該特定した動作パターンに応じた通信処理内容にて前記通信相手と通信させる制御を行う制御部と、を備えることを特徴とする。
【0010】
請求項7に記載の発明は、プログラムであって、通信部を介して非接触で通信相手と通信可能な端末装置のコンピュータを、装置本体の複数の動作パターンと、それぞれの前記動作パターンに応じた通信処理内容と、を対応付けて記憶する記憶手段、前記装置本体の動作を検出する動作検出手段、前記通信部より検索信号を送信又は受信して前記通信相手を検索し、前記通信相手の検索が成功した場合に、前記動作検出手段により検出される装置本体の動作に基づいて前記記憶手段に記憶される前記動作パターンを特定し、前記通信部により当該特定した動作パターンに応じた通信処理内容にて前記通信相手と通信させる制御を行う制御手段、として機能させる。
【発明の効果】
【0011】
したがって、本発明は、ユーザにとっての利便性の高い端末装置及びプログラムを提供できる。
【図面の簡単な説明】
【0012】
【図1】本発明に係る端末装置を模式的に例示した外観図である。
【図2】図1の端末装置の制御構造を表すブロック図である。
【図3】本発明に係る自機と通信相手とが行う通信処理を説明するためのフローチャートである。
【図4】本発明に係る自機を通信相手との通信時における送信モードに設定するパターンと受信モードに設定するパターンとがランダムに切換わる状態を説明するための図である。
【図5】本発明に係る端末装置1の姿勢変化量を模式的に説明するための図である。
【図6】本発明に係る機能識別コードテーブルを説明するための図である。
【図7】本発明に係る通信処理テーブルを説明するための図である。
【図8】本発明に係る端末装置1の動作パターン1〜6を説明するための図である。
【図9】本発明に係る端末装置1の動作パターン7〜11を説明するための図である。
【図10】密着状態が成立している場合の自機1aと通信相手1bの位置関係及び姿勢変化量を説明するための図である。
【図11】近接状態が成立している場合の自機1aと通信相手1bの位置関係及び姿勢変化量を説明するための図である。
【図12】本発明に係る通信状態確立処理を説明するためのフローチャートである。
【図13】本発明に係る機能確認処理を説明するためのフローチャートであり、(i)は自機が送信モード且つ通信相手1bが受信モードに一時的に設定されている場合の処理、(ii)は自機が受信モード且つ通信相手1bが送信モードに一時的に設定されている場合の処理、をそれぞれ示す。
【図14】本発明に係る機能識別コードが自機と通信相手とで相違する場合に何れの機能識別コードを用いるかを例示した図である。
【図15】本発明に係る通信実行処理を説明するためのフローチャートである。
【図16】本発明に係る第1動作判断処理を説明するためのフローチャートである。
【図17】本発明に係る第1動作判断処理を説明するためのフローチャートである。
【図18】本発明に係る送信モード処理を説明するためのフローチャートである。
【図19】本発明に係る受信モード処理を説明するためのフローチャートである。
【図20】本発明に係る第2動作判断処理を説明するためのフローチャートである。
【図21】本発明に係る第2動作判断処理を説明するためのフローチャートである。
【発明を実施するための形態】
【0013】
以下、本発明について、図面を用いて具体的な態様を説明する。ただし、発明の範囲は図示例に限定されない。なお、以下の説明では、図1における端末装置1の左右方向をX軸方向、前後方向をY軸方向、高さ方向をZ軸方向とする。
【0014】
本実施形態に係る端末装置1は、ハンディターミナルなどの端末である。そして、端末装置1の筐体2の外部には、図1に示されるように、上面側に設けられ、画像表示を行う表示部50と、表示部50の前方に設けられ、ユーザが各種操作を行うための操作部40と、が備えられる。また、表示部50の周囲には、当該表示部50を取囲むように矩形状に設けられ、NFC技術を用いた通信を行う通信アンテナ20が筐体2内部に内蔵されており、NFCカードの読取り,自機と通信相手(例えば、他の端末装置1)との相互通信を行う。ここで、以下の説明では、自機及び通信相手は、別個に設けられた二台の端末装置1と便宜上定め、自機には符号1aを、通信相手には符号1bを付すものとする。
【0015】
次に、端末装置1の制御構造について、図2のブロック図を用いて説明する。
【0016】
端末装置1は、図2に示すように、通信モジュール部10と、通信アンテナ20と、センサ部30と、操作部40と、表示部50と、音声出力部55と、2次記憶部60と、電源部70と、制御部100と、を含んで構成される。
【0017】
通信モジュール部10は、NFC技術を用いて非接触で通信相手1bとの通信を行うためのNFC規格に準拠したNFCリーダ/ライタである。そして、通信モジュール部10は、RFIDタグやその他の非接触ICカード等のNFCカードとの通信,又はNFCリーダ/ライタを備えた通信相手1bとの相互通信を行う。具体的には、通信モジュール部10は、NFCカードに誘導起電力による電力供給を行うためのキャリア電波の送信、NFCカードや通信相手1bと通信状態を確立するための応答要求信号(検索信号)や応答信号の送受信、通信処理内容に応じた通信処理信号、当該通信処理信号に対する応答処理を表す応答処理信号の送受信、等を通信アンテナ20を介して行う。
また、通信モジュール部10は、制御部100より送信される制御信号に応じて、NFC技術を用いた通信を実行する際に、自機1aを送信モード(送信側)に設定するか受信モード(受信側)に設定するかの切換えを行う。上記切換えにより、自機1aが送信モード(又はイニシエータモード)に設定され、通信相手1bが受信モード(又はターゲットモード)に設定された際の通信処理のフローが図3に例示される。
図3に示すように、送信モードに設定された自機1aは応答要求信号を送信して通信相手1bを検索する。そして、受信モードに設定された通信相手1bが当該応答要求信号を受信し、自機1aが通信相手1bより応答信号を受信できた場合に通信相手1bの検索が成功した(通信状態が確立される)こととなる。そして、当該通信状態が確立された状態で、自機1aが通信処理内容に応じた通信処理信号を通信相手1bに送信し、通信相手1bより応答処理信号を受信できた場合に通信処理が完了する。ここで、通信処理内容としては、自機1aと通信相手1bとの間でのデータの送受信処理,送信モードに設定された自機1a(通信相手1b)の設定値に基づく通信相手1b(自機1a)の初期化処理,自機1aと通信相手1bの双方の端末間でのデータの同期処理、等がある。
【0018】
通信アンテナ20は、所定のコイル巻数からなるアンテナコイルであり、通信モジュール部10からの要求に応じて、キャリア電波や信号(応答要求信号,応答信号,通信処理信号、応答処理信号など)の送受信を行う。
【0019】
センサ部30は、加速度センサ31と、角速度検出センサ32と、を含んで構成される。
加速度センサ31は、端末装置1がユーザによってX,Y,Z軸方向に並進移動された際のX,Y,Z軸方向それぞれの加速度を検出するための3軸加速度センサである。
角速度検出センサ32は、例えば、ジャイロセンサ(ジャイロスコープ)であり、ヨー方向,ローリング方向,ピッチング方向,それぞれの角速度を検出する。
そして、加速度センサ31にて検出された加速度及び角速度検出センサ32にて検出された角速度は、AD変換器(図示省略)等を介して制御部100に出力されることで、端末装置1(装置本体)の姿勢及び動作(アクション)が把握されるように構成されている。
【0020】
操作部40は、端末装置1をユーザが操作するための各種操作キーやボタン等を備えて構成され、ユーザにより操作された際に、当該操作された操作キーやボタンに応じた操作信号を制御部100に出力するように構成されている。
【0021】
表示部50は、LCD(Liquid Crystal Display)、ELD(Electro Luminescence Display)等により構成され、制御部100から入力される表示制御信号に応じて各種画像の表示処理を行う。なお操作部40は、当該表示部50と一体的にタッチパネルとして構成してもよい。
音声出力部55は、制御部100から入力される音声出力信号に従って、ビープ音やアラーム音を発生させて音声出力を行う。
【0022】
2次記憶部60は、読み書き可能な不揮発性メモリであるEEPROM(Electrically Erasable Programmable ROM)やフラッシュメモリであり、制御部100からの制御信号に従って、ユーザにより設定されたシステムや各機能に関する設定データ,通信相手1bとの通信時に送受信するデータや同期処理実行時のデータなどの各種データを記憶・更新する。
電源部70は、端末装置1の各部に対して必要な電力供給を行う電源である。具体的には、電源部70は、図示は省略するが、電気エネルギーを生成する蓄電池、当該電気エネルギーを端末装置1の各部で必要とされる適切な電圧に変換するDC/DCコンバータ、等を含んで構成される。
【0023】
制御部100は、CPU(Central Processing Unit)110と、RAM(Random Access Memory)120と、ROM(Read Only Memory)130と、を含んで構成され、端末装置1の各部を統括制御するコンピュータとして機能する。
【0024】
CPU110は、端末装置1の各部から入力される入力信号に応じて、ROM130に記憶された各種プログラム(プログラムコード)を実行するとともに、実行に係るプログラムに基づいて各部に出力信号を出力することにより、端末装置1の動作全般を統括制御する。具体的には、CPU110は、通信モジュール部10の駆動制御、操作部40が操作された際の各種操作信号に対する実行制御、表示部50を介した画像の表示制御、音声出力部55を介した音声出力制御などを行う。
RAM120は、CPU110によって実行される処理プログラムなどを展開するためのプログラム格納領域や、入力データや上記処理プログラムが実行される際に生じる処理結果などを一次的に格納するためのデータ格納領域などを備える。具体的には、RAM120は、CPU110が表示部50に表示制御するための文字列、CPU110が処理プログラムを実行する際に使用するフラグの現在値(0:正常値、−1:エラー値、1:通信終了値)、自機1aに現在設定されているモード(送信モード又は受信モード)、加速度センサ31にて検出された加速度及び角速度検出センサ32にて検出された角速度、等を記憶する。
【0025】
ROM130は、例えば、端末装置1で実行可能なシステムプログラムや、当該システムプログラムで実行可能な各種処理プログラム、上記処理プログラムを実行する際に使用されるデータなどを記憶する。具体的には、ROM130は、表示部50や音声出力部55に出力する各種文字列や音声、通信処理内容に係る初期化処理の実行時の設定値、機能識別コードテーブル131と、動作パターンテーブル132と、端末装置1の属する通信グループを識別するためのグループ識別コードGと、通信相手検索プログラムと、姿勢/動作取得プログラムと、通信処理プログラムと、などを記憶する。
【0026】
次に、ROM130に記憶された通信相手検索プログラム、姿勢/動作取得プログラムについて説明する。
【0027】
通信相手検索プログラムは、自機1aを通信相手1bとの通信時における送信側に設定するパターンと受信側に設定するパターンとをランダムな時間間隔で順次切換え、通信相手1bを検索する機能をCPU110に実行させるためのプログラムである。
具体的には、CPU110が通信相手検索プログラムを実行すると、図4に示すように、通信モジュール部10を介して、予めROM130に記憶されたランダム係数に基づくランダムな時間間隔で、送信モードに設定するパターンと受信モードに設定するパターンと、を順次切換える。そして、自機1aが送信モードで且つ通信相手1bが受信モードに設定されているタイミングT1や、自機1aが受信モードで且つ通信相手1bが送信モードに設定されているタイミングT2において、通信モジュール部10による応答要求信号及び応答信号の送受信が可能になるので、通信相手1bの検索が成功する(通信状態が確立される)こととなる。なお、上記ランダムな切換えにより自機1a及び通信相手1bに設定される送信モード/受信モードは、通信状態を確立するための一時設定であり、通信処理実行時において自機1a及び通信相手1bの何れを送信モード/受信モードとするかは、通信処理プログラムの実行時に決定される。
【0028】
姿勢/動作取得プログラムは、センサ部30より検出される端末装置1の加速度及び角速度に基づいて、端末装置1の姿勢/動作を取得する機能をCPU110に実行させるプログラムである。
具体的には、CPU110は、ユーザにより端末装置1が傾斜された状態で、角速度検出センサ32よりヨー方向,ローリング方向,ピッチング方向,それぞれの角速度を取得する。そして、CPU110は、当該角速度に基づいて、端末装置1の姿勢を姿勢変化量Θx,Θy,Θzとして導出する。この姿勢変化量は、例えば、Θの添え字以外の2軸(例えば、添え字がzの場合、XY軸)が形成する平面からの端末装置1の傾斜角(°)を表し、当該2軸回りそれぞれの傾斜角の平均等により取得する。具体的には、図5に示すように、Θzは、XY軸が形成する平面からの端末装置1の傾斜角であり、時計回りに(端末装置1が底面側から上面側に向かって)傾斜した場合を正方向(0°〜180°)、反時計回りに(端末装置1が上面側から底面側に向かって)傾斜した場合を負方向(0°〜−180°)とする。そのため、CPU110は、|90°|<Θz≦|180°|の範囲にあるときに端末装置1が下向きの姿勢、|0°|≦Θz<|90°|の範囲にあるときに端末装置1が上向きの姿勢、と判断できる。
次に、CPU110は上記特定(導出)した端末装置1の姿勢を基準として、ユーザにより端末装置1がX,Y,Z軸方向へ並進移動された又はヨー方向(Z軸回り)に回転された場合の加速度及び角速度を加速度センサ31及び角速度検出センサ32より取得する。そして、CPU110は、取得した加速度及び角速度に基づいて所定の演算処理を行い、上記特定した端末装置1の姿勢を基準とするX,Y,Z軸方向への並進移動した量を示す並進動作量Mx,My,Mz(m/s)及びヨー方向へ回転移動した量を示す回転動作量Mr(°/s)を端末装置1の動作として導出(取得)する。
【0029】
次に、ROM130に記憶された機能識別コードテーブル131と、動作パターンテーブル132と、について説明する。
【0030】
機能識別コードテーブル131は、図6の001〜111で示す複数の機能識別コードKを備えたテーブルである。
上記001〜111のそれぞれの機能識別コードKは、機能識別コードテーブル131の1段目及び2段目に示すように、端末装置1の姿勢に基づいて当該端末装置1を送信モードと受信モードの何れかに設定する処理をCPU110が実行するか否か、及び、端末装置1の動作に基づいて通信処理内容をCPU110が判断するか否か、により分類したコードである。
ここで、図6の2段目において、「自機・通信相手の両方」とは、自機1aと通信相手1bの双方の動作に基づいてCPU110が通信処理内容を判断することを指し、「自機1a・通信相手1bの片方のみ」とは、自機1aと通信相手1bの何れか一方(送信モードに設定された端末装置1)の動作に基づいてCPU110が通信処理内容を判断することを指す。
また、図6の3段目において、許容される動作識別コードAとは、001〜111の各機能識別コードKで許容される端末装置1の動作を識別するためのコードであり、4ビット(0000〜1111)にて表現される。ここで、先頭のビットは端末装置1をヨー方向に回転させる動作(回転動作量Mrに対応するZ軸回りに回転させる動作)、次のビットは端末装置1をZ軸方向に並進移動させる動作(並進動作量Mzに対応するZ軸方向に振る動作)、次のビットは端末装置1をY軸方向に並進移動させる動作(並進動作量Myに対応するY軸方向に振る動作)、末尾のビットは端末装置1をX軸方向に並進移動させる動作(並進動作量Mxに対応するX軸方向に振る動作)、をそれぞれ実行する/しない(ビット値:1/0)を表す。
そして、自機1aが通信相手1bと通信を行う際に、予めユーザが操作部40を介して、当該機能識別コードテーブル131に備わる機能識別コードKより一の機能識別コードKを指定するように構成される。なお、CPU110により、予め特定の機能識別コードKが指定されるように構成しても勿論よい。また、機能識別コードKは複数指定してもよく、全ての機能識別コードKを指定しても、敢えて機能を制限する等のために選択的に幾つか複数指定するとしてもよい。
【0031】
さらに、機能識別コードKと当該機能識別コードKにて許容される動作識別コードAの組み合わせ(動作パターン)、及び、ユーザによる端末装置1に対する傾斜や動作に基づいて、当該動作パターンが後述の通信処理プログラムの実行により特定された場合に行うCPU110の通信処理の内容と、が図7の動作パターンテーブル132に記載されている。なお、動作パターンテーブル132の動作識別コードAの欄に記載された動作(X,Y,Z,R)は、各々の動作識別コードAに係る動作の種類であり、それぞれ、X,Y,Z軸方向への並進移動動作,ヨー方向への回転移動動作を表す。
【0032】
次に、当該動作パターンテーブル132の各段に該当する端末装置1の動作パターン1〜11を図8及び図9の(i)〜(xi)に例示する。ここで、図8及び図9の(i)〜(xi)に示す矢印は端末装置1のX,Y,Z軸方向への並進移動,ヨー方向への回転移動を表す。
また、図9(vii)及び(viii)を除く図8及び図9の(i)〜(xi)において、便宜上送信モードに設定された端末装置1を自機1a、受信モードに設定された端末装置1を通信相手1b、としている。つまり、図8(i)〜(vi)の動作パターン1〜6のように、端末装置1の姿勢にて端末装置1を送信モードと受信モードの何れかに設定する処理を行う場合(機能識別コードKが001〜011の場合)、CPU110は、下向きの姿勢にある(上方にある)端末装置1を送信モード,上向きの姿勢にある(下方にある)端末装置1を受信モードと判断する。
一方、CPU110は、端末装置1の姿勢にて端末装置1を送信モードと受信モードの何れかに設定する処理を行わない場合、機能識別コードKが111に係る、図9(ix)〜(xi)の動作パターン9〜11のように、ユーザによる端末装置1の並進移動動作や回転動作が行われる側の端末装置1を送信モード、停止状態にある端末装置1を受信モードと設定する。また、図9(vii)の動作パターン7のように、機能識別コードKが110且つ動作識別コードAが0010において、通信処理内容がデータの同期であり、自機1aと通信相手1bの何れが送信モードでも受信モードでもよい場合、CPU110は、通信相手検索プログラムの実行時に設定した送信モード/受信モードを自機1aと通信相手1bに用いる。加えて、図9(viii)の動作パターン8のように、機能識別コードKが110且つ動作識別コードAが0100の場合、CPU110は、自機1aから見たZ軸方向への並進移動が正(Z(+))である場合、自機1aを送信モード及び通信相手1bを受信モード、自機1aから見たZ軸方向への並進移動が負(Z(−))である場合、自機1aを受信モード及び通信相手1bを送信モード、と判断する。
【0033】
なお、動作パターンテーブル132の密着/近接の欄は、図8及び図9の(i)〜(xi)に例示されるように、各動作パターン1〜11が、自機1aと通信相手1bとが密着した状態(密着状態)で実現されるか近接した状態(近接状態)で実現されるかを表している。
具体的に、密着状態とは、例えば、自機1aの姿勢変化量Θx,Θy,Θz(Θxa,Θya,Θza)と、通信相手1bの姿勢変化量Θx,Θy,Θz(Θxb,Θyb,Θzb)と、の間で、||Θxa|−90°|=||Θxb|−90°|,||Θya|−90°|=||Θyb|−90°|,||Θza|−90°|=||Θzb|−90°|が成立している場合をいう。当該密着状態が成立している場合の自機1aと通信相手1bの位置関係及び姿勢変化量を、図10の密着形式1〜4に例示する。また、近接状態とは、自機1aの姿勢変化量と通信相手1bの姿勢変化量とが、密着状態における自機1a及び通信相手1b各々の姿勢変化量に予め定めた所定値を増減させた値以下の範囲(許容範囲)内にある状態をいう。一例として、当該所定値を15°とした場合の近接状態における自機1aと通信相手1bの位置関係及び姿勢変化量を、図11の近接形式1〜4に例示する。
【0034】
次に、ROM130に記憶された通信処理プログラムについて説明する。
【0035】
通信処理プログラムは、センサ部30により検出される端末装置1の姿勢や動作に基づいて動作パターンを特定し、当該特定した動作パターンに応じた通信処理内容にて通信相手1bと通信させる機能をCPU110に実行させるプログラムである。
具体的には、CPU110は、ユーザにより端末装置1が傾斜され、X,Y,Z軸方向へ並進移動やヨー方向(Z軸回り)へ回転されると、姿勢/動作取得プログラムの実行により、センサ部30より検出される端末装置1の加速度及び角速度に基づいて、姿勢変化量Θx,Θy,Θz、及び動作量(並進動作量Mx,My,Mz,回転動作量Mr)を取得する。
そして、CPU110は、予め指定された動作識別コードKが110又は111の場合、上述のように、取得された並進動作量Mx,My,Mz,回転動作量Mrに基づいて、当該端末装置1を送信モードと受信モードの何れかに設定し、動作識別コードKが001〜011の場合、姿勢変化量Θzに基づいて端末装置1が上向きの姿勢であるか下向きの姿勢であるかを判断することで、当該端末装置1を送信モードと受信モードの何れかに設定する。
さらに、CPU110は、例えば、回転動作量Mrが予め定めた回転動作量Dr(°/s)を上回るか否か(つまり、上記基準とする端末装置1の姿勢より予め定めた時間内に予め定めた量以上の回転を行っているか否か)を判断し、回転動作量Mrが回転動作量Dr以上の場合に、ヨー方向への回転動作がユーザになされたと判断する。加えて、CPU110は、回転動作がユーザになされていないと判断した場合、並進動作量Mx,My,Mzの絶対値の中で最大値をとるものを特定することで、XYZ軸方向の何れかの方向への並進移動動作がユーザになされたと判断する。そして、CPU110は、当該判断結果に基づいて、0000〜1111の中から一の動作識別コードAを特定する。
次に、CPU110は、動作パターンテーブル132を参照し、動作パターン1〜11の中から当該特定した動作識別コードAと予め指定された機能識別コードKとの組み合わせに該当する動作パターンを特定する。そして、CPU110は、特定した動作パターンに該当する通信処理内容を抽出し、通信モジュール部10を介して当該通信処理内容に応じた通信処理信号を送受信することで通信相手1bとの通信を行う。なお、動作パターン2,3,7,8の場合、自機1aが送信モードに設定されると、CPU110は、通信相手1bより当該通信相手1bの動作量を通信モジュール部10を介して取得し、自機1aの動作量及び通信相手1bの動作量の双方に基づいて(つまり、双方の動作量の差異が予め定められた所定値以下である場合に)動作パターンの特定を行う。また、動作パターン4〜6,9〜11の場合、通信相手1bより当該通信相手1bの動作量を通信モジュール部10を介して取得し、通信相手1bの動作量に基づいて当該通信相手1bが停止状態(つまり、並進動作量Mx,My,Mz,回転動作量Mrが全て予め定められた所定値以下である)と判断されると、自機1aの動作量に基づいて動作パターンの特定を行う。
【0036】
「通信状態確立処理」
次に、本実施形態に係る端末装置1による通信状態確立処理について図12のフローチャートを用いて説明する。
【0037】
まず、ユーザが操作部40を介して通信開始操作を行うと、CPU110は通信相手検索プログラムを実行し、自機1aを送信モードに設定する(ステップS1)。
次いで、CPU110は、通信モジュール部10を介して応答要求信号を送信し、受信モードに設定された通信相手1bを検索する(ステップS2)。
次いで、CPU110は、受信モードに設定された通信相手1bより応答処理信号を受信したか否かにより通信相手1bの検索に成功したか否かを判断し(ステップS3)、通信相手1bの検索に成功したと判断した場合(ステップS3;Yes)、ステップS9の処理へ移行する。
一方で、CPU110は、ステップS3にて通信相手1bの検索に成功していないと判断した場合(ステップS3;No)、受信モードへの切換えのタイミングか否かを判断し(ステップS4)、切換えのタイミングでないと判断した場合(ステップS4;No)、ステップS3以降の処理を繰り返す。
【0038】
次いで、CPU110は、ステップS4にて受信モードへの切換えのタイミングであると判断した場合(ステップS4;Yes)、自機1aを受信モードに設定する(ステップS5)。
次いで、CPU110は、通信モジュール部10を介して応答要求信号を受信可能な状態にして、送信モードに設定された通信相手1bを検索する(ステップS6)。
次いで、CPU110は、送信モードに設定された通信相手1bより応答要求信号を受信したか否かにより通信相手1bの検索に成功したか否かを判断し(ステップS7)、通信相手1bの検索に成功したと判断した場合(ステップS7;Yes)、当該通信相手1bへ応答信号を送信し、ステップS9の処理へ移行する。
一方で、CPU110は、ステップS7にて通信相手1bの検索に成功していないと判断した場合(ステップS7;No)、送信モードへの切換えのタイミングか否かを判断し(ステップS8)、切換えのタイミングでないと判断した場合(ステップS8;No)、ステップS7以降の処理を繰り返す。また、CPU110は、ステップS8にて切換えのタイミングであると判断した場合(ステップS8;Yes)、ステップS1以降の処理を繰り返す。
【0039】
そして、ステップS3又はステップS7にて通信相手1bの検索に成功したと判断した場合(ステップS3;Yes、ステップS7;Yes)、ステップS1にて設定された送信モード又はステップS5にて設定された受信モードを、自機1aの一時的な現在のモードとして決定し(ステップS9)、本処理を終了する。
【0040】
「機能確認処理」
次に、本実施形態に係る端末装置1による機能確認処理について図13(i)(ii)のフローチャートを用いて説明する。ここで、図13(i)は、通信状態確立処理にて自機1aが送信モード(通信相手1bが受信モード)に一時的に設定されている場合の処理を、図13(ii)は、通信状態確立処理にて自機1aが受信モード(通信相手1bが送信モード)に一時的に設定されている場合の処理を、それぞれ示す。なお、以下の説明で、添え字sが付されたものは送信モード側であることを、添え字rが付されたものは受信モード側であることを、便宜的に示す。
【0041】
(送信モードの処理)
まず、図13(i)に示すように、ユーザが操作部40を介して、機能識別コードテーブル131の中から一の機能識別コードKsを指定し、動作識別コードAs(当該指定した機能識別コードKsで許容される動作識別コードAsの何れか)を選択すると、CPU110は、ROM130より自機1aのグループ識別コードGsを取得し、機能識別コードKsと動作識別コードAsとグループ識別コードGsとで構成されるコード列KsAsGsの設定を行う(ステップS21)。
なお、機能識別コードKsはユーザが指定/入力する場合に限られず、CPU110が予め指定された機能識別コードKsを機能識別コードテーブル131より抽出する構成であっても勿論よい。
【0042】
次いで、CPU110は、通信モジュール部10を介してステップS1にて設定したコード列KsAsGsを受信モードの通信相手1bに送信する(ステップS22)。
次いで、CPU110は、後述するステップS50にて受信モードの通信相手1bより送信されるコード列KrArGr(受信モードの通信相手1bに設定されたコード列)が受信できたか否かを判断し(ステップS23)、受信できていないと判断する場合(ステップS23;No)、受信されるまで待機する。
一方で、CPU110は、ステップS23にて受信できたと判断した場合(ステップS23;Yes)、グループ識別コードGsとグループ識別コードGrが一致するか否かを判断する(ステップS24)。
【0043】
そして、CPU110は、ステップS24にて一致しないと判断した場合(ステップS24;No)、音声出力部55を介してエラー音を出力し(ステップS25)、自機1aと通信相手1bとでグループが相違する旨を表示部50にてエラー画面として表示し(ステップS26)、ステップS30の処理へ移行する。
一方で、CPU110は、ステップS24にて一致すると判断した場合(ステップS24;Yes)、機能識別コードKs及び動作識別コードAsと、機能識別コードKr及び動作識別コードArと、が一致するか否かを判断する(ステップS27)。そして、CPU110は、ステップS27にて一致しないと判断した場合(ステップS27;No)、音声出力部55を介してエラー音を出力し(ステップS28)、自機1aと通信相手1bとで機能又は動作が相違する旨を表示部50にてエラー画面として表示する(ステップS29)。そして、CPU110は、一定時間が経過又はユーザにより操作部40を介してエラー状態の解除の操作が行われた後(ステップS30)、本処理を終了し再び「通信状態確立処理」を実行する。
また、CPU110は、ステップS27にて一致すると判断した場合(ステップS27;Yes)、音声出力部55を介して通信開始のメロディ音を出力し(ステップS31)、通信開始の旨を表示部50にて表示し(ステップS32)、フラグを正常状態を表す0に設定し(ステップS33)、本処理を終了する。
【0044】
(受信モードの処理)
まず、図13(ii)に示すように、CPU110は、ステップS22にて送信されるコード列KsAsGsを受信出来たか否かを判断し(ステップS41)、受信出来ていないと判断した場合(ステップS41;No)、受信されるまで待機する。
一方で、CPU110は、ステップS41にて受信出来たと判断した場合(ステップS41;Yes)、ROM130より自機1aのグループ識別コードGrを取得し、グループ識別コードGsと一致するか否かを判断する(ステップS42)。
【0045】
そして、CPU110は、ステップS42にて一致すると判断した場合(ステップS42;Yes)、機能識別コードテーブル131の中から機能識別コードKsに一致する機能識別コードKrが存在するか否かを判断し、且つ、一致する機能識別コードKrが存在する場合に、機能識別コードKrで許容される動作識別コードArに動作識別コードAsと一致するものが存在するか否かを判断することで、KsAsと一致するKrArが存在するか否かを判断する(ステップS43)。
次いで、CPU110は、ステップS43にてKsAsと一致するKrArが存在すると判断する場合(ステップS43;Yes)、ステップS42にて一致すると判断したグループ識別コードGr及びステップS43にて一致すると判断したKrArにより、コード列KrArGrを生成する(ステップS44)。そして、CPU110は、フラグを正常状態を表す0に設定し(ステップS45)、ステップS50の処理へ移行する。
一方で、CPU110は、ステップS43にてKsAsと一致するKrArが存在しないと判断する場合(ステップS43;No)、KrArにエラー値を代入してコード列KrArGr(GrはGsに一致する値)を生成する(ステップS46)。そして、CPU110は、フラグをエラー状態を表す−1に設定し(ステップS47)、ステップS50の処理へ移行する。
【0046】
次いで、CPU110は、ステップS42にて一致しないと判断した場合(ステップS42;No)、KrArGrにエラー値を代入してコード列KrArGrを生成する(ステップS48)。そして、CPU110は、フラグをエラー状態を表す−1に設定する(ステップS49)。
次いで、CPU110は、ステップS44,S46,S48にて生成したコード列KrArGrを送信モードの通信相手1bに送信する(ステップS50)。次いで、CPU110は、フラグが0であるか否かを判断し(ステップS51)、フラグが0でないと判断した場合(ステップS51;No)、音声出力部55を介してエラー音を出力し(ステップS52)、エラー状態にある旨を一定時間表示部50にてエラー画面として表示する(ステップS53)。そして、一定時間が経過又はユーザにより操作部40を介してエラー状態の解除の操作が行われた後(ステップS54)、本処理を終了し再び「通信状態確立処理」を実行する。一方で、CPU110は、フラグが0であると判断した場合(ステップS51;Yes)、通信開始の旨を表示部50にて表示し(ステップS55)、本処理を終了する。
【0047】
なお、ステップS27やステップS43では、機能識別コードKsと機能識別コードKrとが完全に一致することを判断条件としているが、図14に示すように、CPU110が、機能識別コードKsと機能識別コードKrとが相違する場合でも、何れか一方の機能識別コードの値に準じて機能識別コードKsと機能識別コードKrとが一致すると判断するような構成としてもよい。
【0048】
「通信実行処理」
次に、本実施形態に係る端末装置1による通信実行処理について図15のフローチャートを用いて説明する。
【0049】
まず、CPU110は、現在設定されているフラグが0であるか否かを判断し(ステップS101)、0でない(フラグがエラー状態を示す−1や通信終了状態を示す1である)と判断した場合(ステップS101;No)、本処理を終了する。
一方で、CPU110は、ステップS101にて0であると判断した場合(ステップS101;Yes)、機能識別コードKの1桁目が0であるか否かを判断(つまり、端末装置1の姿勢に基づいて送信モードと受信モードの何れかに設定する処理をCPU110が実行するか否かを判断)する(ステップS102)。
そして、CPU110は、ステップS102にて機能識別コードKの1桁目が0でないと判断した場合(ステップS102;No)、後述する「第2動作判断処理」を実行し(ステップS103)、ステップS101以降の処理を繰り返す。
一方で、CPU110は、ステップS102にて機能識別コードKの1桁目が0であると判断した場合(ステップS102;Yes)、姿勢/動作取得プログラムの実行により自機1aの姿勢変化量Θx,Θy,Θzを取得する(ステップS104)。
次いで、CPU110は、ステップS9にて決定された現在のモードが送信モードか否かを判断する(ステップS105)。
【0050】
次いで、CPU110は、ステップS105にて現在のモードが送信モードと判断した場合(ステップS105;Yes)、受信モードの通信相手1bより当該通信相手1bの姿勢変化量Θx,Θy,Θzを通信モジュール部10を介して取得する(ステップS106)。
次いで、CPU110は、ステップS104にて取得した自機1aの姿勢変化量Θx,Θy,Θzと、ステップS106にて取得した通信相手1bの姿勢変化量Θx,Θy,Θzと、を比較し(ステップS107)、比較結果の差異が許容範囲内にあるか否かを判断する(ステップS108)。
そして、CPU110は、ステップS108にて許容範囲内に無いと判断した場合(ステップS108;No)、音声出力部55を介してエラー音を出力し(ステップS109)、自機1aと通信相手1bとの姿勢が許容範囲内に無い旨を表示部50にてエラー画面として表示する(ステップS110)。そして、CPU110は、一定時間が経過又はユーザにより操作部40を介してエラー状態の解除の操作が行われた後(ステップS111)、本処理を終了し、再び「通信状態確立処理」を実行する。
【0051】
一方で、CPU110は、ステップS108にて許容範囲内にあると判断した場合(ステップS108;Yes)、自機1aの姿勢変化量Θzが90°<|Θz|≦180°の範囲(下向きの姿勢)にあり、且つ、通信相手1bの姿勢変化量Θzが0°≦|Θz|<90°の範囲(上向きの姿勢)にあるか否かを判断する(ステップS112)。
そして、CPU110は、ステップS112にて自機1aが下向きの姿勢且つ通信相手1bが上向きの姿勢にあると判断した場合(ステップS112;Yes)、自機1aを送信モードに確定し(ステップS113)、通信相手1bへ受信モードに確定させるための指示信号を送信する(ステップS114)。次いで、CPU110は、後述する「第1動作判断処理」(ステップS115)及び「送信モード処理」(ステップS116)を実行し、ステップS101以降の処理を繰り返す。
【0052】
一方で、CPU110は、ステップS112にて自機1a及び通信相手1bの姿勢変化量Θzが上記範囲に無いと判断した場合(ステップS112;No)、自機1aの姿勢変化量Θzが0°≦|Θz|<90°の範囲(上向きの姿勢)にあり、且つ、通信相手1bの姿勢変化量Θzが90°≦|Θz|<180°の範囲(下向きの姿勢)にあるか否かを判断する(ステップS117)。
そして、ステップS117にて自機1a及び通信相手1bの姿勢変化量Θzが上記範囲にあると判断した場合(ステップS117;Yes)、通信相手1bへ送信モードに切換えさせるための指示信号を送信し(ステップS118)、自機1aを受信モードに切換える処理を実行する(ステップS119)。次いで、CPU110は、後述する「第1動作判断処理」(ステップS120)及び「受信モード処理」(ステップS121)を実行し、ステップS101以降の処理を繰り返す。
また、ステップS117にて自機1a及び通信相手1bの姿勢変化量Θzが上記範囲に無いと判断した場合(ステップS117;No)、音声出力部55を介してエラー音を出力し(ステップS122)、自機1aと通信相手1bとの姿勢により送信/受信モードが判断できない旨を表示部50にてエラー画面として表示する(ステップS123)。そして、CPU110は、一定時間が経過又はユーザにより操作部40を介してエラー状態の解除の操作が行われた後(ステップS124)、本処理を終了し、再び「通信状態確立処理」を実行する。
【0053】
次いで、CPU110は、ステップS105にて現在のモードが送信モードでない(受信モードである)と判断した場合(ステップS105;No)、送信モードの通信相手1bへ自機1aの姿勢変化量Θx,Θy,Θzを通信モジュール部10を介して送信する(ステップS125)。
次いで、CPU110は、通信相手1bより受信モードに確定の指示信号を受信したか否かを判断する(ステップS126)。
そして、CPU110は、ステップS126にて指示信号を受信したと判断する場合(ステップS126;Yes)、後述する「第1動作判断処理」(ステップS127)及び「受信モード処理」(ステップS128)を実行し、ステップS101以降の処理を繰り返す。
一方で、CPU110は、ステップS126にて指示信号を受信していないと判断する場合(ステップS126;No)、送信モードに切換えさせるための指示信号の受信を待って、自機1aを送信モードに切換える処理を実行する(ステップS129)。そして、CPU110は、後述する「第1動作判断処理」(ステップS130)及び「送信モード処理」(ステップS131)を実行し、ステップS101以降の処理を繰り返す。
【0054】
「第1動作判断処理」
次に、本実施形態に係る端末装置1による第1動作判断処理について図16及び図17のフローチャートを用いて説明する。
【0055】
まず、CPU110は、機能識別コードKが001であるか否かを判断し(ステップS201)、001であると判断した場合(ステップS201;Yes)、自機1aが送信モードであるか否かを判断する(ステップS202)。そして、CPU110は、ステップS202にて送信モードであると判断した場合(ステップS202;Yes)、動作パターン1の通信処理内容で通信処理信号を生成し(ステップS203)、本処理を終了する。また、CPU110は、ステップS202にて送信モードでない(受信モードである)と判断した場合(ステップS202;No)、本処理を終了する。
【0056】
次いで、CPU110は、ステップS201にて機能識別コードKが001でないと判断した場合(ステップS201;No)、機能識別コードKが010であるか否かを判断し(ステップS204)、010であると判断した場合(ステップS204;Yes)、自機1aの動作量(並進動作量Mx,My,Mz、回転動作量Mr)を取得する(ステップS205)。
【0057】
次いで、CPU110は、自機1aが送信モードであるか否かを判断する(ステップS206)。そして、CPU110は、ステップS206にて送信モードであると判断した場合(ステップS206;Yes)、通信相手1bより当該通信相手1bの動作量(並進動作量Mx,My,Mz、回転動作量Mr)を取得する(ステップS207)。
【0058】
次いで、CPU110は、自機1aの動作量と通信相手1bの動作量とを比較し(ステップS208)、比較結果の差異が予め定められた許容範囲以内か否か(自機1aと通信相手1bが同じ動作を行っているか否か)を判断する(ステップS209)。そして、CPU110は、ステップS209にて許容範囲以上と判断した場合(ステップS209;No)、ステップS205以降の処理を繰り返す。一方で、CPU110は、ステップS209にて許容範囲以内と判断した場合(ステップS209;Yes)、回転動作量|Mr|が予め定めた回転動作量Drを上回るか否かを判断する(ステップS210)。
そして、CPU110は、ステップS210にて上回ると判断した場合(ステップS210;Yes)、動作パターン3の通信処理内容で通信処理信号を生成し(ステップS211)、本処理を終了する。
一方で、CPU110は、ステップS210にて下回ると判断した場合(ステップS210;No)、並進動作量|Mx|,|My|,|Mz|中で最大値をとるものが並進動作量|Mx|であるか否かを判断する(ステップS212)。
そして、CPU110は、ステップS212にて並進動作量|Mx|であると判断した場合(ステップS212;Yes)、動作パターン2の通信処理内容で通信処理信号を生成し(ステップS213)、本処理を終了する。
一方で、CPU110は、ステップS212にて並進動作量|Mx|でないと判断した場合(ステップS212;No)、音声出力部55を介してエラー音を出力し(ステップS214)、動作パターンが特定できない旨を表示部50にてエラー画面として表示する(ステップS215)。そして、CPU110は、一定時間が経過又はユーザにより操作部40を介してエラー状態の解除の操作が行われた後(ステップS216)、本処理を終了し、再び「通信状態確立処理」を実行する。
【0059】
次いで、CPU110は、ステップS206にて自機1aが送信モードでない(受信モードである)と判断した場合(ステップS206;No)、通信相手1bへ自機1aの動作量を送信し(ステップS217)、本処理を終了する。
【0060】
次いで、CPU110は、ステップS204にて機能識別コードKが010でない(011である)と判断した場合(ステップS204;No)、自機1aの動作量を取得する(ステップS218)。
【0061】
次いで、CPU110は、自機1aが送信モードであるか否かを判断する(ステップS219)。そして、CPU110は、ステップS219にて送信モードであると判断した場合(ステップS219;Yes)、通信相手1bより当該通信相手1bの動作量を取得し(ステップS220)、通信相手1bの動作量(並進動作量Mx,My,Mz、回転動作量Mr)が全て予め定められた所定値以下であるか否か(つまり、通信相手1bが停止状態にあるか否か)を判断する(ステップS221)。そして、CPU110は、ステップS221にて所定値以下でないと判断した場合(ステップS221;No)、ステップS228以降の処理へ進む。
一方で、CPU110は、ステップS221にて所定値以下であると判断した場合(ステップS221;Yes)、自機1aの回転動作量|Mr|が予め定めた回転動作量Drを上回るか否かを判断する(ステップS222)。
次いで、CPU110は、ステップS222にて上回ると判断した場合(ステップS222;Yes)、動作パターン6の通信処理内容で通信処理信号を生成し(ステップS223)、本処理を終了する。
一方で、CPU110は、ステップS222にて下回ると判断した場合(ステップS222;No)、並進動作量|Mx|,|My|,|Mz|の絶対値の中で最大値をとるものを判断する(ステップS224)。
そして、CPU110は、ステップS224にて並進動作量|Mx|であると判断した場合(ステップS224;1.|Mx|)、動作パターン4の通信処理内容で通信処理信号を生成し(ステップS225)、本処理を終了する。一方、CPU110は、ステップS224にて並進動作量|My|であると判断した場合(ステップS224;2.|My|)、動作パターン5の通信処理内容で通信処理信号を生成し(ステップS226)、本処理を終了する。さらに、CPU110は、ステップS224にて並進動作量|Mz|であると判断した場合(ステップS224;3.|Mz|)、ステップS228以降の処理へ移行する。
【0062】
次いで、CPU110は、ステップS219にて受信モードであると判断した場合(ステップS219;No)、自機1aの動作量が全て予め定められた所定値以下であるか否か(つまり、自機1aが停止状態にあるか否か)を判断する(ステップS227)。そして、CPU110は、ステップS227にて全て予め定められた所定値以下であると判断した場合(ステップS227;Yes)、自機1aが停止状態であるとして本処理を終了する。一方、CPU110は、ステップS227にて全て予め定められた所定値以下でないと判断した場合(ステップS227;No)、音声出力部55を介してエラー音を出力し(ステップS228)、動作パターンが特定できない旨を表示部50にて表示する(ステップS229)。そして、CPU110は、一定時間が経過又はユーザにより操作部40を介してエラー状態の解除の操作が行われた後(ステップS230)、本処理を終了し、再び「通信状態確立処理」を実行する。
【0063】
「送信モード処理」
次に、本実施形態に係る端末装置1による送信モード(イニシエータモード)処理について図18のフローチャートを用いて説明する。
【0064】
まず、CPU110は、受信モードの通信相手1bに対して通信処理信号を送信する(ステップS301)。
次いで、CPU110は、ステップS301にて送信した通信処理信号に対する応答処理信号を通信相手1bより受信したか否かを判断する(ステップS302)。
【0065】
そして、CPU110は、ステップS302にて受信したと判断した場合(ステップS302;Yes)、フラグを通信終了状態を示す1に設定し(ステップS303)、応答処理信号を解析して通信が成功しているか否かを判断する(ステップS304)。
【0066】
次いで、CPU110は、ステップS304にて通信が成功したと判断する場合(ステップS304;Yes)、音声出力部55を介して通信正常終了のメロディ音を出力し(ステップS305)、通信正常終了の旨を表示部50にて表示し(ステップS306)、本処理を終了する。一方で、CPU110は、ステップS304にて通信が失敗したと判断する場合(ステップS304;No)、ステップS308以降の処理へ移行する。
【0067】
一方で、CPU110は、ステップS302にて受信していないと判断した場合(ステップS302;No)、ステップS301に係る通信処理信号の送信の開始より所定時間が経過し、タイムアウト状態であるか否かを判断する(ステップS307)。そして、CPU110は、ステップS307にてタイムアウト状態でないと判断した場合(ステップS307;No)、ステップS302以降の処理を繰り返す。一方で、CPU110は、ステップS307にてタイムアウト状態であると判断した場合(ステップS307;Yes)、音声出力部55を介してエラー音を出力し(ステップS308)、通信エラーが発生した旨を表示部50にてエラー画面として表示する(ステップS309)。そして、CPU110は、一定時間が経過又はユーザにより操作部40を介してエラー状態の解除の操作が行われた後(ステップS310)、本処理を終了し、再び「通信状態確立処理」を実行する。
【0068】
「受信モード処理」
次に、本実施形態に係る端末装置1による受信モード(ターゲットモード)処理について図19のフローチャートを用いて説明する。
【0069】
まず、CPU110は、送信モードの通信相手1bより通信処理信号を受信したか否かを判断する(ステップS401)。
そして、CPU110は、ステップS401にて受信したと判断した場合(ステップS401;Yes)、フラグを通信終了状態を示す1に設定し(ステップS402)、通信処理信号を解析して通信が成功しているか否かを判断する(ステップS403)。
【0070】
次いで、CPU110は、ステップS403にて通信が成功したと判断する場合(ステップS403;Yes)、通信正常終了の応答処理信号を生成して通信相手1bに送信し(ステップS404)、本処理を終了する。一方で、CPU110は、ステップS403にて通信が失敗したと判断する場合(ステップS403;No)、ステップS406以降の処理へ移行する。
【0071】
一方で、CPU110は、ステップS401にて受信していないと判断した場合(ステップS401;No)、通信処理信号の受信の開始より所定時間が経過し、タイムアウト状態であるか否かを判断する(ステップS405)。そして、CPU110は、ステップS405にてタイムアウト状態でないと判断した場合(ステップS405;No)、ステップS401以降の処理を繰り返す。一方で、CPU110は、ステップS405にてタイムアウト状態であると判断した場合(ステップS405;Yes)、異常終了の応答処理信号を生成して通信相手1bに送信し(ステップS406)、再び「通信状態確立処理」を実行する。
【0072】
「第2動作判断処理」
次に、本実施形態に係る端末装置1による第2動作判断処理について図20及び図21のフローチャートを用いて説明する。
【0073】
まず、CPU110は、機能識別コードKが110であるか否かを判断し(ステップS501)、110であると判断した場合(ステップS501;Yes)、自機1aの動作量(並進動作量Mx,My,Mz、回転動作量Mr)を取得する(ステップS502)。
次いで、CPU110は、自機1aが送信モードであるか否かを判断する(ステップS503)。そして、CPU110は、ステップS503にて送信モードであると判断した場合(ステップS503;Yes)、通信相手1bより当該通信相手1bの動作量を取得する(ステップS504)。
【0074】
次いで、CPU110は、自機1aの動作量と通信相手1bの動作量とを比較し(ステップS505)、比較結果の差異が予め定められた許容範囲以内か否か(自機1aと通信相手1bが同じ動作を行っているか否か)を判断する(ステップS506)。そして、CPU110は、ステップS506にて許容範囲以上と判断した場合(ステップS506;No)、ステップS502以降の処理を繰り返す。一方で、CPU110は、ステップS506にて許容範囲以内と判断した場合(ステップS506;Yes)、自機1aの回転動作量|Mr|が予め定めた回転動作量Drを上回るか否かを判断する(ステップS507)。
そして、CPU110は、ステップS507にて上回ると判断した場合(ステップS507;Yes)、ステップS509以降の処理を実行する。
【0075】
一方で、CPU110は、ステップS507にて下回ると判断した場合(ステップS507;No)、並進動作量|Mx|,|My|,|Mz|の絶対値の中で最大値をとるものを判断する(ステップS508)。
そして、CPU110は、ステップS508にて並進動作量|Mx|であると判断した場合(ステップS508;1.|Mx|)、音声出力部55を介してエラー音を出力し(ステップS509)、動作パターンが特定できない旨をエラー画面として表示部50にて表示する(ステップS510)。そして、CPU110は、一定時間が経過又はユーザにより操作部40を介してエラー状態の解除の操作が行われた後(ステップS511)、本処理を終了し、再び「通信状態確立処理」を実行する。
【0076】
一方、CPU110は、ステップS508にて並進動作量|My|であると判断した場合(ステップS508;2.|My|)、動作パターン7の通信処理内容で通信処理信号を生成し(ステップS512)、ステップS515以降の処理を実行する。
また、CPU110は、ステップS508にて並進動作量|Mz|であると判断した場合(ステップS508;3.Mz)、並進動作量Mzが正の値であるか否か(つまり、自機1aが通信相手1b側へ向かう動作を行っているか否か)を判断する(ステップS513)。
【0077】
そして、CPU110は、ステップS513にて並進動作量Mzが正の値と判断した場合(ステップS513;Yes)、動作パターン8の通信処理内容で通信処理信号を生成し(ステップS514)、「送信モード処理」を実行して(ステップS515)、本処理を終了する。
【0078】
一方で、CPU110は、ステップS513にて並進動作量Mzが負の値と判断した場合(ステップS513;No)、通信相手1bへ送信モードに切換えさせるための指示信号を送信し(ステップS516)、自機1aを受信モードに切換える処理を実行する(ステップS517)。次いで、CPU110は、「受信モード処理」を実行して(ステップS518)、本処理を終了する。
【0079】
次いで、CPU110は、ステップS503にて送信モードでない(受信モードである)と判断した場合(ステップS503;No)、通信相手1bへ自機1aの動作量を送信する(ステップS519)。
そして、CPU110は、通信相手1bより送信モードへの切換えの指示信号を受信したか否かを判断し(ステップS520)、受信していないと判断した場合(ステップS520;No)、「受信モード処理」を実行して(ステップS521)、本処理を終了する。
一方で、CPU110は、ステップS520にて受信したと判断した場合(ステップS520;Yes)、自機1aを送信モードに切換える処理を実行する(ステップS522)。
そして、CPU110は、動作パターン8の通信処理内容で通信処理信号を生成し(ステップS523)、「送信モード処理」を実行して(ステップS524)、本処理を終了する。
【0080】
次いで、CPU110は、機能識別コードKが110でない(111である)と判断した場合(ステップS501;No)、自機1aの動作量(並進動作量Mx,My,Mz、回転動作量Mr)を取得する(ステップS525)。
次いで、CPU110は、自機1aが送信モードであるか否かを判断する(ステップS526)。そして、CPU110は、ステップS526にて送信モードであると判断した場合(ステップS526;Yes)、通信相手1bより当該通信相手1bの動作量を取得する(ステップS527)。
【0081】
次いで、CPU110は、自機1aの動作量と通信相手1bの動作量とを比較し(ステップS528)、動作量(並進動作量Mx,My,Mz、回転動作量Mr)が全て予め定められた所定値以下であるのが自機1aか通信相手1bかを判断(つまり、自機1aと通信相手1bとで何れが停止状態にあるのか)を判断する(ステップS529)。
そして、CPU110は、ステップS529にて自機1a及び通信相手1bの何れでもないと判断した場合(ステップS529;1.何れでもない)、音声出力部55を介してエラー音を出力し(ステップS530)、動作パターンが特定できない旨を表示部50にてエラー画面として表示する(ステップS531)。そして、CPU110は、一定時間が経過又はユーザにより操作部40を介してエラー状態の解除の操作が行われた後(ステップS532)、本処理を終了し、再び「通信状態確立処理」を実行する。
また、CPU110は、ステップS529にて自機1aであると判断した場合(ステップS529;2.自機)、通信相手1bへ送信モードに切換えさせるための指示信号を送信し(ステップS533)、自機1aを受信モードに切換える処理を実行する(ステップS534)。次いで、CPU110は、「受信モード処理」を実行して(ステップS535)、本処理を終了する。
さらに、CPU110は、ステップS529にて通信相手1bであると判断した場合(ステップS529;3.通信相手)、ステップS539以降の処理に移行する。
【0082】
次いで、CPU110は、ステップS526にて送信モードでない(受信モードである)と判断した場合(ステップS526;No)、通信相手1bに自機1aの動作量を送信する(ステップS536)。
次いで、CPU110は、通信相手1bより受信モードに切換えの指示信号を受信したか否かを判断する(ステップS537)。そして、CPU110は、ステップS537にて受信したと判断する場合(ステップS537;Yes)、自機1aを送信モードに切換える処理を実行する(ステップS538)。
次いで、CPU110は、自機1aの回転動作量|Mr|が予め定めた回転動作量Drを上回るか否かを判断し(ステップS539)、上回ると判断した場合(ステップS539;Yes)、動作パターン9の通信処理内容で通信処理信号を生成し(ステップS540)、ステップS544の処理へ以降する。
【0083】
次いで、CPU110は、ステップS539にて下回ると判断した場合(ステップS539;No)、並進動作量|Mx|,|My|,|Mz|の中で最大値をとるものを判断する(ステップS541)。
そして、CPU110は、ステップS541にて並進動作量|Mx|であると判断した場合(ステップS541;1.|Mx|)、動作パターン10の通信処理内容で通信処理信号を生成し(ステップS542)、ステップS544の処理へ以降する。また、CPU110は、ステップS541にて並進動作量|My|であると判断した場合(ステップS541;2.|My|)、動作パターン11の通信処理内容で通信処理信号を生成し(ステップS543)、「送信モード処理」を実行して(ステップS544)、本処理を終了する。
さらに、CPU110は、ステップS541にて並進動作量|Mz|であると判断した場合(ステップS541;3.|Mz|)、音声出力部55を介してエラー音を出力し(ステップS545)、動作パターンが特定できない旨を表示部50にてエラー画面として表示する(ステップS546)。そして、CPU110は、一定時間が経過又はユーザにより操作部40を介してエラー状態の解除の操作が行われた後(ステップS547)、本処理を終了し、再び「通信状態確立処理」を実行する。
【0084】
また、CPU110は、ステップS537にて受信していないと判断する場合(ステップS537;No)、「受信モード処理」を実行して(ステップS548)、本処理を終了する。
【0085】
以上により、本実施形態における端末装置1によると、CPU110は、通信相手の検索が成功した場合に、センサ部30により検出される端末装置1の動作に基づいて動作パターンテーブル132より動作パターンを特定し、当該特定した動作パターンに応じた通信処理内容にて通信相手1bと通信させることができるので、ユーザは操作パネルなどを介して実施すべき通信内容を事前に設定しておく必要がない。
したがって、端末装置1及び制御部100が実行するプログラムは、ユーザにとっての利便性の高い端末装置及びプログラムといえる。
【0086】
また、端末装置1において、CPU110は、通信相手1bを検索する際に、自機1aを通信相手1bとの通信時における送信モードに一時的に設定するパターンと受信モードに一時的に設定するパターンとをランダムな時間間隔で順次切換えることができる。つまり、自機1aと通信相手1bが、同じタイミングで送信モードに設定されるパターンと受信モードに設定されるパターンとを繰り返し切換えることで、通信相手1bを検索することができなくなる(通信状態が確立出来なくなる)事態を回避でき、確実に通信相手1bを検索することが可能となる。
【0087】
また、端末装置1において、CPU110は、通信相手1bの検索が成功した場合、動作パターン8のように、センサ部30により検出される端末装置1の動作に基づいて、自機1aを送信モード又は受信モードに設定することができる。つまり、端末装置1によると、通信処理の実行とともにモードの設定を行うことができるので、ユーザが通信処理を実行する前にモードの設定を完了させておく手間が省かれ、一層端末装置1の利便性は向上する。
【0088】
また、端末装置1において、CPU110は、通信相手1bの検索が成功した場合、動作パターン1〜6のように、センサ部30により検出される端末装置1の姿勢に基づいて、自機1aを送信モード又は受信モードに設定することができるため、ユーザはモードの設定操作に手間や時間がかからないので、一層端末装置1の利便性は向上する。
【0089】
また、端末装置1において、CPU110は、通信相手1bの検索が成功し自機1aを送信モードに設定した際、通信相手1bより動作量を取得し、取得した動作量に基づいて通信相手1bが停止状態にあると判断される場合に、動作パターン4〜6や動作パターン9〜11を特定する。つまり、動作パターン2,3,7,8のように、自機1aと通信相手1bの双方を動作させてはじめて通信処理が実行される場合と比較して、送信モードの端末装置1のみを動作させることで通信処理を実行できるので、ユーザの端末装置1に対する操作の簡便性が向上する。
【0090】
また、端末装置1において、CPU110は、通信相手1bの検索が成功し自機1aを送信モードに設定した際、通信相手1bより動作量を取得し、自機1aの動作量及び通信相手1bの動作量の双方に基づいて動作パターン2,3,7,8を特定する。つまり、自機1aと通信相手1bの双方を動作させてはじめて通信処理が実行されるように構成されているので、CPU110が実行する通信処理に係る通信処理内容の判別を確実に行うことが可能となる。
【0091】
なお、以上の実施形態における記述は、本発明に係る好適な端末装置の一例であり、これに限定されるものではない。
また、以上の実施形態における端末装置を構成する各部の細部構成及び細部動作に関して本発明の趣旨を逸脱することのない範囲で適宜変更可能である。
【0092】
例えば、上記実施形態では、加速度センサ31及び角速度検出センサ32の双方を用いて端末装置1の姿勢変化量や動作量を取得するように構成したが、例えば、動作パターン3,6,11の通信処理を実行する場合のように、並進動作量を必要としない場合は、角速度検出センサ32のみを備える構成としてもよい。
また、例えば、本実施形態では、自機及び通信相手は、別個に設けられた二台の端末装置1としているが、自機を端末装置1、通信相手を当該端末装置1と同一の機能を備えた他の装置(例えば、パーソナルコンピュータなど)としても勿論よい。さらに、動作パターン4〜6,9〜11の通信処理を実行する場合のように、通信相手の動作を把握する必要がない場合、当該通信相手をNFCカードなどとしてもよい。
【0093】
また、上記実施形態において、フローチャートに記述されている各機能は、コンピュータとしての制御部100(CPU110)が読み取り可能なプログラムコードの形態で記録媒体(ROM130)に格納されており、このプログラムコードに従ったコンピュータ(制御部100)による処理動作が実行される。なお、伝送媒体を介して外部より伝送されてきた上述のプログラムコードに従ってコンピュータ(制御部100)による処理動作を実行することもでき、このような伝送媒体も含めて、本実施の形態では記録媒体と定義する。
【符号の説明】
【0094】
1 端末装置
10 通信モジュール部
20 通信アンテナ
30 センサ部
31 加速度センサ
32 角速度検出センサ
40 操作部
50 表示部
55 音声出力部
60 2次記憶部
70 電源部
100 制御部
110 CPU
120 RAM
130 ROM
131 機能識別コードテーブル
132 動作パターンテーブル

【特許請求の範囲】
【請求項1】
通信部を介して非接触で通信相手と通信可能な端末装置であって、
装置本体の複数の動作パターンと、それぞれの前記動作パターンに応じた通信処理内容と、を対応付けて記憶する記憶部と、
前記装置本体の動作を検出する動作検出部と、
前記通信部より検索信号を送信又は受信して前記通信相手を検索し、前記通信相手の検索が成功した場合に、前記動作検出部により検出される装置本体の動作に基づいて前記記憶部より前記動作パターンを特定し、前記通信部により当該特定した動作パターンに応じた通信処理内容にて前記通信相手と通信させる制御を行う制御部と、
を備えることを特徴とする端末装置。
【請求項2】
請求項1に記載の端末装置において、
前記制御部は、前記通信相手を検索する際に、当該端末装置を前記通信相手との通信時における送信側に一時的に設定するパターンと受信側に一時的に設定するパターンとをランダムな時間間隔で順次切換え、前記送信側に一時的に設定するパターンに切換えた場合、前記通信部より前記検索信号を送信した後前記通信相手より応答信号を受信した場合に前記通信相手の検索が成功したと判断することを特徴とする端末装置。
【請求項3】
請求項1又は2に記載の端末装置において、
前記制御部は、前記通信相手の検索が成功した場合に、前記動作検出部により検出される装置本体の動作に基づいて、当該端末装置を前記通信相手との通信時における送信側又は受信側に設定することを特徴とする端末装置。
【請求項4】
請求項1又は2に記載の端末装置において、
前記装置本体の姿勢を検出する姿勢検出部を備え、
前記制御部は、前記通信相手の検索が成功した場合に、前記姿勢検出部により検出される装置本体の姿勢に基づいて、当該端末装置を前記通信相手との通信時における送信側又は受信側に設定することを特徴とする端末装置。
【請求項5】
請求項3又は4に記載の端末装置において、
前記制御部は、前記通信相手の検索が成功し且つ当該端末装置を前記通信相手との通信時における送信側に設定した際、前記通信相手より当該通信相手の動作を前記通信部により取得し、前記取得した前記通信相手の動作に基づいて当該通信相手が停止状態にあると判断される場合に、前記記憶部より前記動作パターンを特定することを特徴とする端末装置。
【請求項6】
請求項3又は4に記載の端末装置において、
前記制御部は、前記通信相手の検索が成功し且つ当該端末装置を前記通信相手との通信時における送信側に設定した際、前記通信相手より当該通信相手の動作を前記通信部により取得し、前記動作検出部により検出される装置本体の動作及び前記通信部により取得した前記通信相手の動作の双方に基づいて前記記憶部より前記動作パターンを特定することを特徴とする端末装置。
【請求項7】
通信部を介して非接触で通信相手と通信可能な端末装置のコンピュータを、
装置本体の複数の動作パターンと、それぞれの前記動作パターンに応じた通信処理内容と、を対応付けて記憶する記憶手段、
前記装置本体の動作を検出する動作検出手段、
前記通信部より検索信号を送信又は受信して前記通信相手を検索し、前記通信相手の検索が成功した場合に、前記動作検出手段により検出される装置本体の動作に基づいて前記記憶手段に記憶される前記動作パターンを特定し、前記通信部により当該特定した動作パターンに応じた通信処理内容にて前記通信相手と通信させる制御を行う制御手段、
として機能させるためのプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate


【公開番号】特開2011−205435(P2011−205435A)
【公開日】平成23年10月13日(2011.10.13)
【国際特許分類】
【出願番号】特願2010−71188(P2010−71188)
【出願日】平成22年3月26日(2010.3.26)
【出願人】(000001443)カシオ計算機株式会社 (8,748)
【Fターム(参考)】