(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0023】
以下に、本発明の本実施の形態にかかる電子機器制御装置、電子機器制御方法、および、電子機器制御プログラム、並びに、記録媒体の実施の形態を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
【0024】
[システム構成]
まず、以下、本発明にかかる本実施の形態のシステム構成について説明し、その後、本実施の形態の処理等について詳細に説明する。ここで、
図1は、本実施の形態にかかるシステム構成の一例を示すシステム構成図であり、該構成のうち本実施の形態に関係する部分のみを概念的に示している。
【0025】
図1に示すように、本実施の形態のシステムは、一例として、複数の電子機器100と、電子機器制御装置200と、スクリプトサーバ400と、ログサーバ600を備える。なお、電子機器100に限らず、電子機器制御装置200やスクリプトサーバ400やログサーバ600も、それぞれ複数台備えていてもよい。アクティブ型の電子機器100−1、電子制御装置200、スクリプトサーバ400、および、ログサーバ600は、いずれもプロセッサを有して情報処理を実行することが可能な情報処理装置であり、例えば後述する情報処理装置のハードウェア構成によって実現されうる。
【0026】
電子機器100同士は、無線通信可能である。
図1に示すように、一例として、互いに通信を行う一方の電子機器100−1が、能動型(アクティブ型)の無線通信を行い、他方の電子機器100−2が、電子機器100−1や電子機器制御装置200等のリーダからの電波をエネルギー源として動作する、パッシブ型の電子機器であってもよい。
【0027】
また、電子機器制御装置200は、複数の電子機器100−1〜nのうち少なくとも一つ(図示の例では、アクティブ電子機器100−1)と無線通信可能である。また、電子機器制御装置200と、スクリプトサーバ400と、ログサーバ600とは、いずれもネットワーク300に接続されており、相互に通信することが可能である。また、これら電子機器制御装置200、スクリプトサーバ400、および/またはログサーバ600が複数台ある場合、それぞれは、ネットワーク300を介して相互に通信可能に構成されてもよい。例えば、複数の電子機器制御装置200は、ネットワーク300を介して、指示情報に基づく制御を連係して行ってもよい。ここで、
図2は、アクティブ電子機器100−1とパッシブ電子機器100−2の構成の一例を示す図である。
【0028】
(電子機器)
図2において、アクティブ電子機器100−1は、自律的に無線通信が可能な各種の機器であり、例えば、イメージャ、ディスプレイ、スピーカ、マイク、センサ、アクチュエータ、タグ、ビーコン等のデバイスといった、情報処理機能とネットワーク通信機能とを有する電子機器であってもよい。図示のように、アクティブ電子機器100−1は、プロセッサ102と、通信部104と、メモリ106と、入出力制御インターフェイス部108と、入力/出力を行うデバイス部112とを含む。ハードウェア構成例との関係でいえば、プロセッサ102はCPU、ROMおよびRAMなどによって実現されうる。
【0029】
このうち通信部104は、通信装置によって実現されうる。例えば、通信部104は、近接距離通信を行うNFC(Near Field Communication)や、Bluetooth(登録商標)、RFID、Wi−Fi、LTE、3Gのほか、無線PAN、無線LAN、無線MAN、無線WAN等の公知の無線通信を行ってもよい。ここで、通信部104は、暗号化/復号化等の公知の秘匿通信手法を用いてもよい。なお、通信部104による、電子機器100との無線通信は、電子機器制御装置200との無線通信規格と同一であっても、異なっていてもよいものである。
【0030】
なお、本実施の形態において、電子機器100同士は、指示情報に従って、セキュアな無線通信接続として連係動作を行ってもよい。例えば、利用者の行為によって、電子機器100の連係がなされたとき、すなわち、電子機器100の設置の状況から、電子機器100の連係が利用者の行為によると特定されるとき(物理的にデバイスが運ばれタッチされた、タッチパネルに触られた、スイッチが押された等)、その時点から、その連係の処理が終わるまでの間、利用者の明示的な行為であると判断して、ユーザ認証等がなくても、データのやりとりを行ってもよい。例えば、利用者の記録デバイス100−xが、(記念撮影用の)イメージャデバイス(カメラ)100−yに触れたとき、撮影したデータは、特段の認証など無しに、ユーザの記録デバイス100−xのメモリ106に書き込まれてもよい。なお、メモリ106は、ストレージ装置および/またはリムーバブル記憶媒体などによって実現されうる。
【0031】
デバイス部112は、入力装置および/または出力装置によって実現されてもよい。例えば、デバイス部112は、画像や映像を取得するイメージャ、モニタやサイネージやプロジェクタ等のディスプレイ、音声出力を行うスピーカ、音声入力を行うマイクであってもよい。また、デバイス部112は、温度、照度、加速度、ジャイロ、磁気、心拍、体温、血糖、雨量、風速等を検出するセンサであってもよい。また、デバイス部112は、GPS、Local PS(Indoor PS)などの位置取得部であってもよい。このほか、デバイス部112は、ソレノイドやサーボモータや、風や香りを引き起こすアクチュエータ(駆動装置)であってもよい。また、デバイス部112は、タグやビーコンであってもよい。なお、入出力制御インターフェイス部108は、デバイス部112の制御を行う。
【0032】
プロセッサ102は、プログラムに従って動作する。ここで、プロセッサ102は、動作に関する機能呼び出し等の動作指示に従って、プログラムを実行してもよい。プロセッサ102が、スクリプト等の動作指示に従ってプログラムを実行することで、デバイス部112の各種の機能を実現しうる。より具体的には、プロセッサ102により実行されるプログラムは、API(Application Programming Interface)を提供しており、このAPIに対して、パラメータ設定や関数呼び出し、プログラム更新等の形式で動作指示を与えることができるように構成されている。プロセッサ102は、他にも、電子機器100の全体の制御に関するさまざまな機能を実現しうる。プロセッサ102は、SoC(System−on−a−chip)やSiP(System−in−a−Package)、インテル社製Edisonなど組込型プロセッサであってもよい。以下、本実施の形態において、プロセッサ102が実現する各機能について、さらに説明する。
【0033】
プロセッサ102の制御により、通信部104は、少なくとも1つの他の電子機器100を検出する。ここで、他の電子機器100は、電子機器100の連係動作の対象になる機器であり、他のアクティブ電子機器100−1であっても、パッシブ電子機器100−2であってもよい。プロセッサ102の制御により、通信部104は、他の電子機器100の機器識別情報(以下、単に「ID」と呼ぶ場合がある。)を取得することができる。プロセッサ102は、取得した他の電子機器100のIDをメモリ106に格納してもよい。
【0034】
より具体的には、例えば、アクティブ電子機器100−1のプロセッサ102は、他の電子機器100−2と近接した場合、他の電子機器100−2が発信する電子機器識別情報を、通信部104を介して受信し、メモリ106に格納する。電子機器100と他の電子機器100とが近接したことは、例えば、電子機器100の通信部104と他の電子機器100との間で、例えばNFCや、Bluetooth(登録商標)、赤外線通信などの近距離通信が実行されたことによって検出されてもよい。このほか、ネットワーク上の位置に基づいて近接を検出してもよく、例えば、プロセッサ102は、電子機器100と他の電子機器100とが同じ無線LANなどのローカルネットワークに接続されているときに、これらの機器が近接していると判定してもよい。
【0035】
電子機器100−1は、プロセッサ102の制御により、自らの機器識別情報と、他の一または複数の電子機器100−2〜n(nは自然数)の機器識別情報を、無線通信により電子機器制御装置200に送信する。機器識別情報は、後述するスクリプトサーバ400において、指示情報(デバイス制御スクリプト等)を用意する際に、連係動作の対象になる電子機器100および他の電子機器100を識別するための情報となる。ここで、自らの機器識別情報は、例えばメモリ106に格納された設定情報から取得してもよい。
【0036】
さらに、電子機器100−1は、プロセッサ102の制御により、QRコード(登録商標)等の撮像画像に基づいて他の電子機器100−xのIDを検出してもよい。すなわち、他の電子機器100−xの機器識別情報は、画像解析によって撮像画像から抽出されたマーカーや他の電子機器100−xの外観に基づいて取得されてもよい。なお、電子機器100−1は、プロセッサ102にて画像解析を行って機器識別情報を取得することに限られず、電子機器制御装置200に、二次元コード等の撮像画像を、機器識別情報として送信してもよい。そして、電子機器制御装置200は、受信した撮像画像から画像解析により、二次元コード等のマーカーに対応する機器識別情報を、記憶部206またはネットワーク上のデータベースから検索してもよい。
【0037】
電子機器100−1は、通信部104を介して、電子機器100−1および必要に応じて他の電子機器100−2〜nとの連係のための動作指示(機能呼び出し、動作を指示するAPIパラメータ等)を、電子機器制御装置200から受信する。ここで、電子機器100−1は、直接、電子機器制御装置200と通信できない電子機器100−x(xは任意)のため、通信部104を介して、電子機器100−xのIDに対応する動作指示を送信してもよい。
【0038】
さらに、電子機器100は、動作指示として、プログラムの更新の指示を電子機器制御装置200から受信してもよい。受信されたプログラム更新の情報は、例えばメモリ106に記憶されたプログラムの書き換えに供される。また、電子機器100は、通信部104により、既に受信されてメモリ106に格納されているプログラムを更新または無効化するための指示を、電子機器制御装置200から受信してもよい。なお、プログラムの更新等の詳細については後述する。
【0039】
プロセッサ102は、通信部104を介して取得した動作指示に従って電子機器100を制御し、また、動作指示に応じて、他の電子機器100−xとの連係動作を実現させる。ここで、上述のように、他の電子機器100−xは、電子機器100−1と無線通信可能であり、電子機器100−1から動作指示を受信可能である。他の電子機器100−xが、電子機器100−1とは通信可能であるものの電子通信制御装置200とは通信可能ではない場合、電子機器100−1および他の電子機器100−xのそれぞれのための動作指示を通信部104−xを介して電子機器100−1から取得し、電子機器100−1および電子機器100−xのための動作指示に従って連係動作を実現してもよい。
【0040】
ここで、他の電子機器は、デバイスだけのパッシブ電子機器100−2であってもよい。一例として、パッシブ電子機器100−2は、Felica(登録商標)などのNFCタグ、iBeacon(登録商標)等のビーコンであってもよい。
【0041】
(電子機器制御装置)
ここで、
図3は、本実施の形態にかかる電子機器制御装置200の構成の一例を示すブロック図であり、該構成のうち本実施の形態に関係する部分のみを概念的に示している。
図3において、電子機器制御装置200は、概略的に、電子機器制御装置200の全体を統括的に制御するCPU等の制御部202、通信回線等に接続されるルータ等の通信装置(図示せず)に接続される通信制御インターフェイス部204、入力部212や出力部214に接続される入出力制御インターフェイス部208、および、各種のデータベースやテーブルなどを格納する記憶部206を備えて構成されており、これら各部は任意の通信路を介して通信可能に接続されている。
【0042】
記憶部206に格納される各種のデータベースやテーブルは、固定ディスク等のストレージ手段であり、各種処理に用いる各種のプログラムやテーブルやファイルやデータベースやウェブページ等を格納する。
【0043】
このうち、スクリプトファイル206aは、スクリプト等の指示情報を記憶する指示情報記憶手段である。例えば、スクリプトファイル206aは、スクリプトサーバ400から受信した指示情報(スクリプトデータ等)を記憶してもよい。ここで、指示情報は、XML(Extensible Markup Language)、JSON(JavaScript(登録商標) Object Notation)、XHTML(Extensible HyperText Markup Language)、あるいは、任意のスクリプト言語によって実現してもよい。
【0044】
また、指示情報は、複数の電子機器100毎に対応付けて予めサーバ装置400に記憶されており、当該指示情報には、当該複数の電子機器100が連係して動作するための動作指示が当該前記電子機器100に対応付けて記述されていてもよい。また、指示情報は、複数の電子機器100毎に予めメモリ106に記憶された動作に関する情報を用いて、当該複数の電子機器100の動作が連係するように、動作指示が当該前記電子機器100に対応付けて記述されていてもよい。
【0045】
また、ログファイル206bは、指示情報に従った動作ログを記憶する履歴情報記憶手段である。例えば、ログファイル206bは、スクリプトサーバ400からの指示情報の受信履歴や、電子機器100への動作指示の送信履歴等に関する情報(スクリプト等の実行記録、連係動作の実行日時等)、あるいは、電子機器100の利用に伴って発生する課金情報を、動作ログとして記憶してもよい。また、ログファイル206bは、電子機器100の検出と接続のステータス情報の履歴を記憶してもよい。
【0046】
また、
図3において、入出力制御インターフェイス部208は、入力部212や出力部214の制御を行う。入力部212としては、タッチパネルや、キーボード、マウス等を用いることができる。また、出力部214としては、モニタ(タッチパネル用ディスプレイやPC用スクリーンモニタ等を含む)等を用いることができる。なお、出力部214にスピーカが付属されていてもよい。
【0047】
また、
図3において、制御部202は、OS(Operating System)等の制御プログラム、各種の処理手順等を規定したプログラム、および所要データを格納するための内部メモリを有し、これらのプログラム等により、種々の処理を実行するための情報処理を行う。制御部202は、機能概念的に、識別情報受信部202a、識別情報送信部202b、指示情報受信部202c、および、連係制御部202dを備えて構成されている。
【0048】
このうち、識別情報受信部202aは、通信制御インターフェイス部204を介して、無線通信可能な複数の電子機器100の機器識別情報(ID)を受信する識別情報受信手段である。ここで、識別情報受信部202aは、無線通信可能な複数の電子機器100のうちの一の電子機器100から、当該一の電子機器100の無線通信圏内にある電子機器100のIDを受信してもよい。これにより、無線通信圏内にある複数の電子機器100のIDの組合せを取得することができる。
【0049】
ここで、識別情報受信部202aは、ネットワーク300等を介して、他の電子機器制御装置200と連係してもよい。具体的には、識別情報受信部202aは、他の電子機器制御装置200と無線通信可能な電子機器100の機器識別情報を取得することにより、遠隔にある電子機器100との連係動作を協調して行えるよう制御してもよい。より具体的には、後述する識別情報送信部202bが、遠隔にある電子機器100のIDの組合せをスクリプトサーバ400に問い合わせ、後述する指示情報受信部202dが、組み合わせに対応する指示情報を受信し、連係制御部202dが、他の電子機器制御装置200を介して遠隔にある電子機器100のそれぞれに動作指示を与え、また、動作指示に応じて一方の電子機器100の動作信号を、遠隔にある他方の電子機器100に送信することによって、他方の電子機器100との間で協調した連係動作を行えるよう制御してもよい。
【0050】
また、識別情報受信部202aは、別の態様にて、他の電子機器制御装置200と連係してもよい。具体的には、一の電子機器制御装置200の識別情報受信部202aは、他の電子機器制御装置200とともに、無線通信可能な電子機器100の機器識別情報を取得することにより、電子機器100との連係動作を協調して行えるよう制御してもよい。すなわち、一の電子機器制御装置200も、他の電子機器制御装置200も、無線通信可能なそれぞれの電子機器100に対して、協調して制御を行ってもよいものである。より具体的には、一の電子機器制御装置200と他の電子機器制御装置200のそれぞれの識別情報送信部202bが、電子機器100のIDの組合せをスクリプトサーバ400に問い合わせ、それぞれの指示情報受信部202aが、組み合わせに対応する指示情報を受信し、それぞれの連係制御部202dが、それぞれの電子機器100にそれぞれ動作指示を与えることによって、協調した連係動作制御を行ってもよい。
【0051】
また、識別情報送信部202bは、ネットワーク300を介して複数の機器識別情報をスクリプトサーバ400に送信する識別情報送信手段である。すなわち、識別情報送信部202bは、通信圏内にある複数の電子機器100のIDの組合せに対応する指示情報をスクリプトサーバ400に問い合わせる。
【0052】
また、指示情報受信部202cは、スクリプトサーバ400から送信される、当該複数の機器識別情報(IDの組合せ)に対応する、電子機器100の連係動作に関する指示情報を受信する指示情報受信手段である。
【0053】
また、連係制御部202dは、無線通信を介して、動作指示を電子機器100に送信することにより、指示情報に従って電子機器100を連係動作させる制御を行う連係制御手段である。連係制御部202dによるスクリプト等の指示情報の実行制御は、指示情報を逐次処理してもよく、適宜、電子機器100と通信して動作指示を送ってもよく、デバイス間直接通信を指示してもよい。IDで特定されるデバイスが自機から直接通信できる範囲にないとき、連係制御部202dは、IDの付帯情報から、別の制御装置200を特定し、その制御装置200をプロキシとして、指示を送ってもよい。なお、電子機器100のプログラムを管理するスクリプトサーバ400等に問い合わせることで、デバイスの更新プログラムを指示情報として受け取った場合、連係制御部202dは、その指示に基づいて、電子機器100のプログラムが更新されるよう制御してもよい。
【0054】
ここで、上述した指示情報受信部202cは、互いに異なる連係動作を実現する複数の指示情報を他のスクリプトサーバ400から取得してもよい。この場合、複数の指示情報は、例えば、入出力制御インターフェイス部208を介して出力部214に表示され、入力部212において実行される指示情報が利用者によって選択されてもよい。あるいは、指示情報受信部202cは、例えばログファイル206bやログサーバ600に格納された過去の連係動作のログに基づいて、実行される可能性が高い連係動作を実現する指示情報を選択し、選択された一または複数の指示情報を電子機器100に提供してもよい。また、指示情報受信部202cは、既にスクリプトファイル206aに格納されている指示情報を更新または無効化するための追加のスクリプトを、指示情報としてスクリプトサーバ400から受信してもよい。
【0055】
また、指示情報受信部202cは、スクリプトファイル206aと協働してもよい。指示情報受信部202cは、例えば、通信制御インターフェイス部204から提供され、電子機器100の連係動作のための電子機器100の制御に用いられた指示情報(デバイス制御スクリプト等)を、スクリプトファイル206aに少なくとも一時的に格納してもよい。これによって、例えば、次回以降の電子機器100の連係動作の機会において、連係制御部202dは、通信制御インターフェイス部204によってスクリプトサーバ400から受信される指示情報に代えて、スクリプトファイル206aに格納された指示情報に従って電子機器100を制御し、電子機器100の連係動作を実現させることができる。スクリプトファイル206aには、指示情報と電子機器100の機器識別情報とを関連付けて格納されてもよい。また、スクリプトファイル206aには、例えば連係動作が実行される可能性が高い電子機器100についての指示情報が予め格納されていてもよい。これらの場合、指示情報は、電子機器100の機器識別情報を取得した時点で、機器識別情報を用いてスクリプトファイル206aに格納された指示情報を検索し、電子機器100のための指示情報が格納されていれば、それに従って電子機器100を制御するための信号データ等の動作指示を送信する。
【0056】
なお、指示情報がスクリプトファイル206aに格納されていた場合も、例えば指示情報や電子機器100のプログラムのアップデートなどを示す情報の有無を確認するために、通信制御インターフェイス部204によるスクリプトサーバ400とのやりとりが実行されてもよい。例えば指示情報にアップデートがあった場合、指示情報受信部202cは、そのとき実行されている連係動作の終了後に、通信制御インターフェイス部204によって受信された更新された指示情報を、スクリプトファイル206aに格納してもよい。あるいは、電子機器100のプログラムにアップデートがあった場合、指示情報受信部202cは、通信制御インターフェイス部204によって受信された追加の更新のための指示情報(追加スクリプト等)をスクリプトファイル206aに格納し、連係制御部202dは、そのとき実行されている連係動作の終了後に、当該追加の指示情報に基づいて、電子機器100に対して、電子機器100のプログラムのアップデートのための動作指示を送信してもよい。また、連係制御部202dは、通信制御インターフェイス部204によって、デバイス制御スクリプト等の指示情報を無効化するための追加の指示情報(スクリプト等)が受信された場合、連係動作を中断して、当該追加のスクリプトに基づいてスクリプトファイル206aに格納されたスクリプト等の指示情報を無効化または破棄してもよい。
【0057】
さらに、連係制御部202dは、指示情報に従った実行制御によって実現される、電子機器100の連係動作に関連するログを取得し、ログファイル206bに少なくとも一時的に格納してもよい。連係制御部202dは、取得したログを、リアルタイムで、または事後的に、通信制御インターフェイス部204を介してログサーバ600に送信してもよい。連係制御部202dの機能によって電子機器制御装置200からネットワーク300を介してログサーバ600に提供されるログは、例えば、スクリプトサーバ400によって提供された指示情報に従って電子機器100の連係動作が実行されたことを単純に示す情報であってもよいし、連係動作の内容、例えば連係動作によって機器間でやりとりされたデータなどを記述する情報であってもよい。
【0058】
また、
図3において、通信制御インターフェイス部204は、電子機器制御装置200とネットワーク300(またはルータ等の通信装置)との間における通信制御や、電子機器制御装置200と電子機器100との間における無線通信制御を行う。すなわち、通信制御インターフェイス部204は、他の端末(電子機器100やスクリプトサーバ400やログサーバ600等)と、通信回線(有線、無線を問わない)を介してデータを通信する機能を有する。
【0059】
すなわち、電子機器制御装置200は、指示情報やログに関する外部データベースや、電子機器制御方法を実行させるためのプログラム等の外部プログラム等を提供する外部システムと、ネットワーク300を介して通信可能に接続して構成されていてもよい。この電子機器制御装置200は、ルータ等の通信装置および専用線等の有線または無線の通信回線を介して、ネットワーク300に通信可能に接続されていてもよい。
【0060】
ここで、
図3において、ネットワーク300は、電子機器制御装置200とスクリプトサーバ400やログサーバ600とを相互に接続する機能を有し、例えば、インターネット等である。
【0061】
また、
図3において、スクリプトサーバ400は、ネットワーク300を介して、電子機器制御装置200と相互に接続され、スクリプト等の指示情報に関する外部データベース等を提供する機能を有する。なお、アプリストア等のように統合的に管理するのではなく、電子機器100の連係をデザインし、そのためのデバイス制御スクリプト等を作成した者(サービス提供者)が、随意にスクリプト等を任意のスクリプトサーバ400にアップロードしてもよい。これにより、集中サーバで管理する必要がなくなり、共通の仕組みで通信の輻輳を防ぐことができる。すなわち、電子機器100が増えて、通信量が増した場合でも、負荷が集中することなく、応答性も確保することができる。
【0062】
一例として、スクリプトサーバ400は、ネットワーク300上のサーバであり、一または複数の電子機器制御装置200に指示情報(デバイス制御スクリプト等)を提供する。スクリプトサーバ400の機能は、例えばネットワーク300に接続された単一のサーバ装置によって実現されてもよい。あるいは、スクリプトサーバ400の機能は、複数のサーバ装置に分散して実現されてもよい。この場合、複数のサーバ装置は、ネットワーク300を介して協働する。上述の通り、スクリプトサーバ400は、ネットワーク300を介して電子機器制御装置200と相互に通信することが可能である。
【0063】
また、
図3において、ログサーバ600は、ネットワーク300を介して、電子機器制御装置200と相互に接続され、指示情報に従った動作ログ等に関する外部データベース等を提供する機能を有する。例えば、ログサーバ600は、指示情報(デバイス制御スクリプト等)の実行の記録を格納し蓄積してもよい。なお、ログサーバ600は、利用者(サービス提供者等)毎に随意にログサーバ600を設置してもよく、スクリプトサーバ400と共通化してもよい。
【0064】
ここで、スクリプトサーバ400やログサーバ600は、WEBサーバやASPサーバ等として構成していてもよく、そのハードウェア構成は、一般に市販されるワークステーション、パーソナルコンピュータ等の情報処理装置およびその付属装置により構成していてもよい。また、スクリプトサーバ400やログサーバ600の各機能は、スクリプトサーバ400やログサーバ600のハードウェア構成中のCPU、ディスク装置、メモリ装置、入力装置、出力装置、通信制御装置等およびそれらを制御するプログラム等により実現される。また、スクリプトサーバ400やログサーバ600とは、HTTPで通信し、適宜セキュアなプロトコルにて通信できるようにしてもよい。
【0065】
[デバイス制御処理]
次に、このように構成された本実施の形態における本システムにおいて実行されるデバイス制御処理の一例について、以下に
図4〜
図6を参照して詳細に説明する。
図4は、本実施の形態の電子機器100における起動時の処理の一例を示すフローチャートである。
【0066】
図4に示すように、まず、起動されると、電子機器100は、プロセッサ102の処理により、通信部104を介して、電子機器制御装置200の検出を試行する(ステップSA−1)。起動時のトリガーは、常時オンの場合は、スイッチが押下されたときや、外部から電磁波等にて給電を受けたとき等である。
【0067】
電子機器制御装置200が検出されるまでつづけ(ステップSA−1,NO)、電子機器制御装置200が検出されると(ステップSA−1,YES)、電子機器100は、プロセッサ102の処理により、検出した電子機器制御装置200のIPアドレス等の設定を行う(ステップSA−2)。
【0068】
そして、電子機器100は、プロセッサ102の処理により、通信部104を介して、電子機器制御装置200に対し、更新プログラムがあるか否かの照会を行う(ステップSA−3)。
【0069】
そして、電子機器100は、更新プログラムがあった場合は、プロセッサ102の処理により、プログラムの書き換えを行う(ステップSA−4)。ここで、電子機器100におけるプログラムの例を以下に示す。このプログラムは、距離センサを実装したRaspberry Piにおいて動作させるためのプログラムの例である。すなわち、プロセッサ102はRaspberry Piであって、メモリ106はMicroSD、入出力制御インターフェイス部108はGPIO(General Purpose Input/Output)、デバイス部112は超音波距離センサ、通信部104は、Wi−Fiアンテナである。以下に例示するように、このプログラムは、距離を測って、その都度、他の機器に送信する。プログラム言語はPythonを用いており、プログラム中、def sesdis(dev)は、距離を測る関数の定義であり、def send(msg、dest)は、メッセージを他機destにデバイス間直接通信によって送る関数の定義であり、定義の後、距離(distance)を測って、送信(send)している。
【表1】
【0070】
つづいて、
図5は、本実施の形態の電子機器100における起動後の処理の一例を示すフローチャートである。
【0071】
図5に示すように、まず、電子機器100は、プロセッサ102の処理により、通信部104を介して、他の電子機器100の検出を試行する(ステップSB−1)。
【0072】
他の電子機器100が検出されるまでつづけ(ステップSB−1,NO)、他の電子機器100が検出されると(ステップSB−1,YES)、電子機器100は、プロセッサ102の処理により、通信部104を介して、検出した他の電子機器100の機器識別情報(ID)を検出する(ステップSB−2)。
【0073】
そして、電子機器100は、プロセッサ102の処理により、通信部104を介して、自機のIDと他の電子機器100のIDとを、電子機器制御装置200に送信する(ステップSB−3)。
【0074】
そして、電子機器100は、プロセッサ102の処理により、通信部104を介して、電子機器制御装置200から動作指示を受信するまで待機する(ステップSB−4,NO)。
【0075】
電子機器制御装置200から動作指示を受信すると(ステップSB−4,YES)、電子機器100は、受信した動作指示に従ってプログラムを実行する(ステップSB−5)。一例として、実行は、デバイス部112の機能に応じて、距離を測れ、音を鳴らせ、画像を取り込め等の処理の実行である。他の例として、実行は、他のデバイスと通信セッションを張り、例えば距離の変化を送信しつづけるなど、データをストリームさせてもよい。
【0076】
また、電子機器100は、受信した動作指示が終了指示でない場合(ステップSB−6,NO)、ステップSB−1に処理を戻し、上述した処理を繰り返し、終了指示の指示情報を受信すると(ステップSB−6,YES)、処理を終える。
【0077】
つづいて、上述した電子機器100を含む本実施の形態のシステムにおける電子機器制御装置200の処理の一例について、
図6を参照して説明する。
図6は、本実施の形態のシステムにおける電子機器制御装置200の処理の一例を示すフローチャートである。
【0078】
図6に示すように、まず、識別情報受信部202aは、通信制御インターフェイス部204を介して、無線通信可能な電子機器100からの通信によって電子機器100の検出を試行する(ステップSC−1)。
【0079】
無線通信可能な電子機器100を検出すると(ステップSC−1,YES)、識別情報受信部202aは、通信制御インターフェイス部204を介して、無線通信可能な複数の電子機器100の機器識別情報(IDの組合せ)を検出する(ステップSC−2)。
【0080】
そして、識別情報送信部202bは、ネットワーク300を介してIDの組合せをスクリプトサーバ400に送信する(ステップSC−3)。
【0081】
スクリプトサーバ400からIDの組合せに対応するスクリプト等の指示情報を取得できない場合(ステップSC−4,NO)、識別情報送信部202bは、エラー処理を行い(ステップSC−5)、処理をステップSC−1に戻り、上述した処理を繰り返す。エラー処理は、例えば、入出力制御インターフェイス部208を介して出力部214に表示し、あるいは、当該の電子機器100に通知することによって行う。
【0082】
一方、スクリプトサーバ400からIDの組合せに対応するスクリプト等の指示情報を取得できた場合(ステップSC−4,YES)、連係制御部202dは、取得したスクリプト等の指示情報に従って、対応する電子機器100に動作指示を送信することにより、電子機器を連係動作させる制御を行う(ステップSC−6)。ここで、スクリプトサーバ400から受信する指示情報の例を以下に示す。一例として、連係制御部202dは、インタプリタとして、このコードを解釈して動作指示を行う。
この例は、距離を測る電子機器(ID=1001)と音を鳴らす電子機器(ID=1002)が検出されたときに使われる指示情報である。この例では、音を鳴らす電子機器にsound_set_1の音セットを離散音で鳴らすことを指示した上で、距離を測る電子機器に、距離を計測の上音を鳴らす電子機器にその計測値を送ることを指示し、並行して、音を鳴らす電子機器に、距離を測る電子機器から計測値を受信して音ならすことを指示することで、受信した計測値に基づいてsound_set_1の音セットを離散音で鳴らすように、各電子機器に動作指示している。
【表2】
【表3】
【0083】
なお、連係制御部202dによるスクリプト等の指示情報の実行制御は、指示情報を逐次処理してもよく、適宜、電子機器100と通信して指示を送ってもよく、電子機器100間での直接通信を指示してもよい。IDで特定されるデバイスが自機から直接通信できる範囲にないとき、連係制御部202dは、IDの付帯情報から、別の制御装置200を特定し、その制御装置200をプロキシとして、指示を送ってもよい。なお、電子機器100のプログラムを管理するスクリプトサーバ400等に問い合わせることで、電子機器100のプログラムの更新を指示情報として受け取った場合、連係制御部202dは、その指示に基づいて、電子機器100のプログラムが更新されるよう制御してもよい。
【0084】
そして、連係制御部202dは、指示情報に従った動作ログを電子機器100から取得し、取得した動作ログをログサーバ600に送信することにより、ログサーバ600に格納させる処理を行う(ステップSC−7)。
【0085】
そして、制御部202は、終了指示があるか否かを判断し(ステップSC−8)、終了指示がない場合は(ステップSC−8,NO)、ステップSC−1に処理を戻し、上述した処理を繰り返す。一方、終了指示があった場合は(ステップSC−8,YES)、電子機器制御装置200は、処理を終える。
【0086】
以上が、本実施の形態にかかる本システムの処理の一例である。ここで、本実施形態における指示情報について、改めて説明する。本明細書では、指示情報のうち、スクリプト形式で記述されたものをデバイス制御スクリプトと称している。スクリプト形式は、プログラムがスクリプト言語またはインタプリタ言語で記述されていることを意味しうる。このような言語の一例として、マークアップ言語が挙げられる。なお、指示情報は、スクリプト形式に限らず他の形式(例えば、オブジェクトコードやアセンブリ言語など)で記述されていてもよいが、連係動作プログラムがスクリプト形式で記述される場合、例えばプログラムの開発期間が短縮されるなどの点で有利である。
【0087】
指示情報、特にデバイス制御スクリプトには、例えば、動作を実行する主体や、使用されるAPIの関数、関数に設定されるパラメータ、実行される関数の組み合わせや順序などが記述されてもよい。電子機器制御装置200では、連係制御部202dにおいてデバイス制御スクリプトに対応するインタプリタが実装され、当該インタプリタによるデバイス制御スクリプトの解釈に従って、通信制御インターフェイス部204を介して電子機器100のAPIの関数が呼び出されることによって、電子機器100のデバイス部112の機能が実行される。
【0088】
このように、本実施形態では、電子機器100のハードウェアによって実現される機能をAPIによって抽象化し、電子機器制御装置200上のデバイス制御スクリプトによって所定の条件および/または手順でAPIを介して各機能を実現させることによって、機器間の連係動作を実現する。従って、電子機器100の製造時にすべての連係動作のための条件や手順を決定してプログラムとして書き込むことは必要ではなく、電子機器100の製造後にデバイス制御スクリプトによって条件や手順を定義することが可能である。それゆえ、電子機器100の開発期間を短縮することができ、また電子機器100の製造後に登場した新たな機器との連係動作も容易に実現できる。また、連係させる電子機器100が具体的に特定されてからデバイス制御スクリプトを提供することが可能であるため、例えば実現不可能なものも含めた多数の連係動作に関する情報が表示されて利用者に混乱をきたすようなこともない。また、例えば地域ごとに流通している商品の違いによって連係させる電子機器100が異なるような場合にも、電子機器自体のプログラム設計自体には手を加えることなく、それぞれの地域に合わせた連係動作を選択的に提示および実現することができる。また、連係に関わるスクリプトの更新や無効化が可能であることによって、例えば、連係動作の使用権限の事後的な管理や、期間限定で有効な連係動作スクリプトの配布といったことも可能である。
【0089】
[実施例]
つづいて、上述した実施の形態の電子機器制御システムを用いた応用例を以下に列挙する。
【0090】
[実施例1(2デバイス)]
一実施例として、一方の電子機器100として、距離センサを備えたデバイスと、他方の電子機器100として、音声出力(スピーカ)を備えたデバイスを連係させることができる。一方には、NFCタグを、他方には、NFCリーダを備えておき、それぞれにタッチしたときに、連係させることができる。一例として、処理フローは以下のとおりである。
【0091】
電子機器制御装置200でのスクリプト実行により、まず、一方の電子機器100は、距離センサデバイスから距離を受け取る。そして、一方の電子機器100は、他方の電子機器100に逐次、距離を送る。他方の電子機器100は、距離が変わるたびに、距離の相当する音のピッチを計算し、ピッチを音声出力デバイスに送信する。これにより、一方の電子機器100と、他方の電子機器100をタッチする簡単な連係手続にて、両者を距離に応じて奏でられる楽器のように両者を連係動作させることができる。
【0092】
[実施例2(3デバイス)]
まず、博物館を巡っている利用者が、第1の電子機器100として、音声出力デバイスを持つ。一方、博物館の展示物には、第2の電子機器100として、ビーコンが設置されている。第1の電子機器100であるデバイスが、第2の電子機器100のビーコンに近づくことによって、第1の電子機器100から説明が聞こえるように構成される。
【0093】
ここで、発展例として、第3の電子機器100と連係させてもよい。すなわち、第1の電子機器100としての音声出力デバイスが、第3の電子機器100である、人の属性を表すタグとも接触している。これにより、第1の電子機器100と、第3の電子機器100を接触させる簡単な連係手続にて、人の属性(趣味、年齢、専門レベルなど)に従った別個の説明に切り替えることができる。
【0094】
[実施例3(連係の切り替え)]
他の例として、テーマパーク、アミューズメント施設、あるいは、ショッピングモールを散策している利用者が、第1の電子機器100として、画像/テキスト表示デバイスを持つ。そして、他の電子機器100として、GPS、インドアポジショニング、ビーコン等のデバイスによって、第1の電子機器100の位置が検出されると、その位置関係毎に連係がなされ、適宜案内が第1の電子機器100のテキスト表示デバイスに表示される。例えば、テーマパーク全体の案内、その近辺だけで行われる個別のパフォーマンスの案内、店毎の案内などにおいて、その場所に合った案内を呈示することができる。
【0095】
[実施例4]
他の例として、第1の電子機器100として、外部給電型の身体計測デバイスが、利用者の人体に貼られている。利用者は、病棟の入口で、第2の電子機器100のデータ収集デバイスにかざすと、体温と人IDが収集される。あるいは、小学校で児童の体温が校門で収集される。別の例として、第3の電子機器100として、ヘルスデバイスと連係すると、第1の電子機器100から第2の電子機器100を通して第3の電子機器100に心拍が収集され、これにより、第3の電子機器100において心拍から酸素消費量が推定されることで、運動状態を管理しうる。糖尿病の治療中の人の場合は、第1の電子機器100から第2の電子機器100を通して血糖値を簡単な手続で取って、第3の電子機器100において経過管理をしてもらえる。したがって、利用シーンや用途に応じて、簡単な連係手続で、任意に使い分けることができる。
【0096】
[実施例5]
他の例として、第1の電子機器100として、タグ付き指輪をはめて、利用者に散策してもらう。そして、フォトラリー形式にて、利用者が散策して、ラリーポイントで画像や映像のデバイスである第2の電子機器100に第1の電子機器100である指輪をかざすと、ラリーポイント毎に画像や映像のデバイス(第2の電子機器100)の撮り方を変えることができる。これにより、後で第1の電子機器100に対応した画像や映像を収集することができ、オリエンテーリングによってポイントをためることや、ショッピングモールにおいて、気になるお買い物候補をリストに手軽に残すこと等を行える。また、上述の利用者の明示的な行為によるデータのやりとりによってセキュリティも確保される。
【0097】
このように、本実施の形態によれば、多様なデバイス(電子機器)と、多様な組み合わせに対応して、TPOや対象の人に応じて、処理を切り替えることが簡単に行えるようになる。従来のように煩雑なインストール手続を行う必要がなくなり、デバイス(電子機器)の処理も、後から追加的に足していくことができる。
【0098】
[他の実施の形態]
さて、これまで本発明の実施の形態について説明したが、本発明は、上述した実施の形態以外にも、特許請求の範囲に記載した技術的思想の範囲内において種々の異なる実施の形態にて実施されてよいものである。
【0099】
例えば、電子機器制御装置200がスタンドアローンの形態で処理を行うよう説明したが、電子機器制御装置200がクライアント端末(利用者の携帯端末など)からの要求に応じて処理を行い、その処理結果を当該クライアント端末に返却するよう構成してもよいものである。
【0100】
また、実施の形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。
【0101】
このほか、上記文献中や図面中で示した処理手順、制御手順、具体的名称、各処理のデータや条件等のパラメータを含む情報、図示されていない画面例、データベース構成については、特記する場合を除いて任意に変更することができる。
【0102】
また、電子機器制御装置200に関して、図示の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。
【0103】
例えば、電子機器制御装置200の各装置が備える処理機能、特に制御部202にて行われる各処理機能については、その全部または任意の一部を、CPU(Central Processing Unit)および当該CPUにて解釈実行されるプログラムにて実現してもよく、また、ワイヤードロジックによるハードウェアとして実現してもよい。尚、プログラムは、後述する、コンピュータに本発明に係る方法を実行させるためのプログラム化された命令を含む、一時的でないコンピュータ読み取り可能な記録媒体に記録されており、必要に応じて電子機器制御装置200に機械的に読み取られる。すなわち、ROMまたはHDD(Hard Disk Drive)などの記憶部106などには、OS(Operating System)と協働してCPUに命令を与え、各種処理を行うためのコンピュータプログラムが記録されている。このコンピュータプログラムは、RAMにロードされることによって実行され、CPUと協働して制御部を構成する。
【0104】
また、このコンピュータプログラムは、電子機器制御装置200等に対して任意のネットワーク300を介して接続されたアプリケーションプログラムサーバに記憶されていてもよく、必要に応じてその全部または一部をダウンロードすることも可能である。
【0105】
また、本発明に係るプログラムを、コンピュータ読み取り可能な記録媒体に格納してもよく、また、プログラム製品として構成することもできる。ここで、この「記録媒体」とは、メモリーカード、USBメモリ、SDカード、フレキシブルディスク、光磁気ディスク、ROM、EPROM、EEPROM、CD−ROM、MO、DVD、および、Blu−ray(登録商標)Disc等の任意の「可搬用の物理媒体」を含むものとする。
【0106】
また、「プログラム」とは、任意の言語や記述方法にて記述されたデータ処理方法であり、ソースコードやバイナリコード等の形式を問わない。なお、「プログラム」は必ずしも単一的に構成されるものに限られず、複数のモジュールやライブラリとして分散構成されるものや、OS(Operating System)に代表される別個のプログラムと協働してその機能を達成するものをも含む。なお、実施の形態に示した各装置において記録媒体を読み取るための具体的な構成、読み取り手順、あるいは、読み取り後のインストール手順等については、周知の構成や手順を用いることができる。プログラムが、一時的でないコンピュータ読み取り可能な記録媒体に記録されたプログラム製品として本発明を構成してもよい。
【0107】
記憶部106に格納される各種のデータベース等(スクリプトファイル106a、ログファイル106b等)は、RAM、ROM等のメモリ装置、ハードディスク等の固定ディスク装置、フレキシブルディスク、および、光ディスク等のストレージ手段であり、各種処理やウェブサイト提供に用いる各種のプログラム、テーブル、データベース、および、ウェブページ用ファイル等を格納する。
【0108】
また、電子機器制御装置200は、既知のパーソナルコンピュータ、ワークステーション、携帯機器、スマートフォン等の情報処理装置として構成してもよく、また、該情報処理装置に任意の周辺装置を接続して構成してもよい。また、電子機器制御装置200は、該情報処理装置に本発明の方法を実現させるソフトウェア(プログラム、データ等を含む)を実装することにより実現してもよい。
【0109】
更に、装置の分散・統合の具体的形態は図示するものに限られず、その全部または一部を、各種の付加等に応じて、または、機能負荷に応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。すなわち、上述した実施形態を任意に組み合わせて実施してもよく、実施形態を選択的に実施してもよい。