(57)【要約】      （修正有）【課題】アプリケーションに適した形式で、しかも容易にセンサを利用することを可能とする手段を提供する。【解決手段】他のソフトウエアから命令を受け、前記命令に基づき１又は複数のセンサから情報を集め、前記情報が前記命令から要求される状態を満たすか否かを判断し、満たす場合は前記他のソフトウエアへその旨を報告するように構成される、ソフトウエアである。【選択図】図１
2007004632.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータ・プログラムであって、他のコンピュータ・プログラムからソフトウエア関数で構成される命令を受け、前記命令に基づき１又は複数のセンサから情報を集め、前記集めた情報を元に前記他のプログラムへ報告を行なうように構成される、プログラム。
【請求項２】
請求項１に従うコンピュータ・プログラムであって、前記命令から要求される状態を前記情報が満たすか否かを判断し、満たす場合に前記満たすこと前記他のプログラムへ報告するように構成される、プログラム。
【請求項３】
請求項１又は２に従うコンピュータ・プログラムであって、前記命令から要求される状態は、複数のセンサの状態に関するものである、プログラム。
【請求項４】
請求項１から３のいずれかに従うコンピュータ・プログラムであって、該プログラムは前記他のプログラムへソフトウエア割り込みをかけることにより前記報告を行なうように構成される、プログラム。
【請求項５】
請求項１から４のいずれかに従うコンピュータ・プログラムであって、該プログラムは複数の前記命令を並列的に処理するように構成される、プログラム。
【請求項６】
請求項１から５のいずれかに従うコンピュータ・プログラムであって、該プログラムは無線通信手段を介してセンサから情報を集める手段を備えるプログラム。
【請求項７】
請求項１から６のいずれかに従うコンピュータ・プログラムであって、該プログラムはインターネットを介してセンサから情報を集める手段を備えるプログラム。
【請求項８】
１又は複数のセンサと、第１のコンピュータ・プログラムと、前記センサと前記第１のコンピュータ・プログラムとの間で動作する第２のコンピュータ・プログラムとを備え、
前記第２のプログラムが、前記第１のプログラムからソフトウエア関数で構成される命令を受け、前記命令に基づき前記１又は複数のセンサから情報を集め、前記集めた情報を元に前記第１のプログラムへ報告を行なうように構成される、電子機器。
【請求項９】
請求項８に従う電子機器であって、前記第１のプログラムは前記第２のプログラムからソフトウエア割り込みを受けられるように構成され、前記第２のプログラムは前記第１のプログラムへ割り込みをかけることにより前記報告を行なうように構成される、電子機器。
【請求項１０】
請求項８又は９に従う電子機器であって、前記第２のプログラムは前記電子機器の筐体の外にあるセンサの情報を、無線通信手段を介して集める手段を備える電子機器。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はセンサを備えた電子機器におけるセンサの利用方法に関する。
【背景技術】
【０００２】
近年、携帯電話等の携帯電子機器にセンサを搭載し、新しいアプリケーションを探そうとする開拓しようとする動きが多く見られる。携帯電話に搭載されているセンサとその利用の例として、例えば加速度センサを内蔵し、ユーザの動きを操作指示として利用する携帯電話が市販されている。また、光センサを搭載してディスプレイの輝度調節に利用するとか、ＲＦＩＤを搭載してお金の決済に利用するという利用形態も実現している。また、気圧計や湿度計を搭載し、気圧や湿度の変化から天気予報を行なう電子機器も市販されている。
【０００３】
しかしセンサは、そのセンサを利用するアプリケーション・ソフトウエアにとって、必ずしも最適化されていない場合もある。むしろ、大抵のセンサデバイスは、静か過ぎるか、逆にあまりにも騒々しい場合が多い。例えば、ある型のセンサは、アプリケーション・ソフトウエアからの明示的な問い合わせがあったときのみデータを送るので、アプリケーション・ソフトウエアは常にセンサを監視しなければならない。また別の型のセンサは、必要もないのに継続的にデータを送り続ける。
【０００４】
また、センサの制御コードをアプリケーション・ソフトウエアに組み込むのは骨が折れる場合があり、特に複数のセンサを制御しなければならない場合はなおさらである。そのため、アプリケーションに適した形で、しかも従来よりも簡単にセンサを利用できるようなスキームが求められている。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
本発明は、アプリケーションに適した形式で、しかも容易にセンサを利用することを可能とする手段を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明の１つの側面によれば、本発明は次のようなコンピュータ・ソフトウエアすなわちプログラムを提供することができる。このソフトウエアとは、他のソフトウエアから命令を受け、前記命令に基づき１又は複数のセンサから情報を集め、前記情報が前記命令から要求される状態を満たすか否かを判断し、満たす場合は前記他のソフトウエアへその旨を報告するように構成される、ソフトウエアである。
【０００７】
上記提供されるソフトウエアによれば、センサからの情報収集とその解析をこのソフトウエアが担当するため、上記提供されるソフトウエアを利用する他のソフトウエアは、センサの制御に必要なコードを最小限に抑えることができる。すなわち、上記提供されるソフトウエアを利用すれば、センサを利用するためのプログラミングに必要な労力を、大きく節約ことができる。このような効果は、利用するセンサの数が増すほど大きなものとなる。
【０００８】
さらに、上記提供されるソフトウエアを利用する他のソフトウエアの命令が要求する状態は、複数のセンサの状態に関するものであることができる。すなわち、上記提供されるソフトウエアを利用する他のソフトウエアは、複数のセンサの情報を組み合わせた、仮想的なセンサを定義することが可能である。逆に言えば、上記提供されるソフトウエアは、これを利用するソフトウエアからは仮想的なセンサとして動作するように見える。このように、上記提供されるソフトウエアを利用すれば、アプリケーションの要求や動作に適した形式で、しかも簡単にセンサを利用することが可能となる。
【０００９】
好ましくは、上記命令はソフトウエア関数である。また上記命令は、複数のソフトウエア関数の組み合わせから構成されていても良い。従って上記提供されるソフトウエアは、ソフトウエア関数を解釈し、解釈結果に基づいて具体的にセンサから情報を集め、集めた情報を解析するようにプログラミングされることが好ましい。
【００１０】
上記提供されるソフトウエアは、１又は２以上の他のプログラムから、複数の命令を受け、処理できるようにプログラミングされることが好ましい。
【００１１】
上記提供されるソフトウエアは、これを利用する他のソフトウエアに、ソフトウエア割り込みによって上記報告を行なうように構成されることが好ましい。
【００１２】
ある実施態様において、上記提供されるソフトウエアは、該ソフトウエアがインストールされる電子機器の筐体に備わるセンサだけでなく、離れた場所にあるセンサも制御できるように構成されることができる。例えば、当該電子機器にセルラネットワークやＢｌｕｅｔｏｏｔｈ，ＵＷＢ，ＷＬＡＮ等の無線通信手段を介して接続されたセンサや、インターネットを介して接続されたセンサを制御できるように、上記提供されるソフトウエアを構成しても良い。このような実施形態によれば、上記提供されるソフトウエアを利用する他のアプリケーションは、センサの物理的な存在位置を気にする必要なく、これらのセンサを利用することができる。もちろん、物理的に離れた複数のセンサを組み合わせた仮想センサをも定義することが可能である。
【００１３】
上記提供されるソフトウエアは、携帯電話等の携帯電子機器にインストールされて利用されることができる。また、ＣＤ等の媒体に格納されて製造販売されたり、インターネット、セルラネットワーク等を通じて配信されることもできる。
【００１４】
本発明の別の側面によれば、本発明は次のような電子機器を提供することができる。この電子機器は、センサと、第１のソフトウエアと、前記センサと前記第１のソフトウエアとの間で動作する第２のソフトウエアとを備え、さらに前記第２のソフトウエアが、前記第１のソフトウエアから命令を受け、前記命令に基づき前記センサから情報を集め、前記情報が前記命令から要求される状態を満たすか否かを判断し、    満たす場合は前記第１のソフトウエアへその旨を報告するように構成される、電子機器である。
【００１５】
上記提供される電子機器は、第２のソフトウエアによって制御されうるセンサを複数備えることができる。また第１のソフトウエアは第２のソフトウエアからソフトウエア割り込みを受けられるように構成されることが好ましく、第２のソフトウエアはソフトウエア割り込みによって上記の報告を行なうように構成されることが好ましい。また上記第２のソフトウエアは、電子機器の筐体の外にあるセンサの情報も集めることができるように構成されることが好ましい。
【００１６】
上記提供される電子機器は、携帯情報機器であることが好ましい。
【発明の効果】
【００１７】
本発明を利用することにより、アプリケーションに適した形式で、しかも簡単にセンサを利用することが可能となる。
【発明を実施するための最良の形態】
【００１８】
以下、添付図面を参照しつつ本発明の実施形態を例を用いて説明する。本発明が適用された電子機器１は、センサ・アプリケーション１０、センサマネージャ２０、センサＡ、センサＢ、センサＣを備える。センサ・アプリケーション１０は、天気予報や電子機器１の操作など、ユーザーにセンサを利用した機能を直接提供するソフトウエアである。センサマネージャ２０は、物理的なセンサであるセンサＡ，Ｂ，Ｃと、センサ・アプリケーション１０との間で動作するソフトウエアである。センサマネージャ２０は、センサ・アプリケーション１０の命令に基づいてセンサＡやセンサＢなどから情報を集め、その情報を解析して結果をセンサ・アプリケーション１０へ報告する。センサ・アプリケーション１０やセンサマネージャ２０は、電子機器１が備える図示しないＣＰＵを、これらのソフトウエアによる命令の通りに動作させることにより、上記の、またこれから説明する機能を実現する。
【００１９】
センサ・アプリケーション１０からセンサマネージャ２０へ送られる命令は、ソフトウエア関数の形式を取る。従ってセンサマネージャ２０は、これらの関数を理解し、その内容を実行可能なようにプログラミングされている。センサ・アプリケーション１０からセンサマネージャ２０へ送られる命令は、複数のソフトウエア関数の組み合わせから構成されていても良い。
【００２０】
さらに、センサ・アプリケーション１０からセンサマネージャ２０へ送られる命令は、センサＡ、センサＢ、センサＣのうち、１又は複数のセンサの状態に関するものであることができる。すなわち、この命令は、センサＡ、Ｂ、Ｃの３つのセンサから構成される、あたかも新しいセンサのような機能を有する。
【００２１】
図１において、センサ・アプリケーション１０は、センサマネージャ２０への命令として、次のような仮想センサＸを定義し、センサマネージャ２０に送る。
【００２２】
【数１】
2007004632.tif 000003
関数“ａｌｅｒｔ”は、カッコ内の条件が満たされた場合は報告せよという関数とする。上記の命令を受けたセンサマネージャ２０は、センサＡ〜Ｃから情報を収集し、それらが命令から要求される状態を満たすか否かを解析して、満たす場合にはセンサ・アプリケーション１０へ報告する。すなわちセンサマネージャ２０は、センサＡの出力値が５から１０の間であって、センサＢの出力値がセンサＣの出力値よりも大きい状態を検出すると、センサ・アプリケーション１０へ報告を行なう。このように関数“ａｌｅｒｔ”は、数式１で定義される状態を検出する、仮想的なセンサとしての機能を有する。センサ・アプリケーション１０は、センサＡ〜Ｃから情報を収集したり、これらの情報を数式１を満たすか否かの解析するためのプログラム・コードを備える必要がなく、効率的なプログラミングが可能となる。関数“ａｌｅｒｔ”や数式１はもちろん単なる例示であって、センサ・アプリケーション１０とセンサマネージャ２０との間で様々な型の関数を定義することができる。
【００２３】
センサマネージャ２０は、数式１で定義される状態を検出すると、ソフトウエア割り込みによってセンサ・アプリケーション１０へ報告を行なう。もちろん、センサ・アプリケーション１０も、センサマネージャ２０からのソフトウエア割り込みを受けられるようにプログラミングされていなければならない。ソフトウエア割り込みは既存技術であり、当業者であれば実装することができる。このように構成することで、センサ・アプリケーション１０は、センサの出力値を定期的に調べるようにプログラミングされる必要がない。このように本発明によれば、アプリケーションに適した形式で、しかも簡単にセンサを利用することが可能となる。
【００２４】
本発明のより具体的な実施例の１つとして、電子機器１を“お洗濯センサ”として構成することができる。この実施例では、センサＡは温度センサ、センサＢは湿度センサである。センサＣは不要であろう。センサ・アプリケーション１０は、温度と湿度が一定の関係が満たされた場合に報告を受けるような仮想センサを定義し、センサマネージャ２０へ命令する。この関係は、既定のものの他に、ユーザーが独自に設定可能とすることが好ましいだろう。センサ・アプリケーション１０は、センサマネージャ２０からの報告を元に、「今日は洗濯日和です」のようなメッセージを、ビジュアル又は音声等の方法で、ユーザーに伝える。センサマネージャ２０は、温度センサと湿度センサの出力値を定期的に調べ、定義された状態を満たすか否かを調べる。が、センサ・アプリケーション１０はそのようなことをする必要はなく、センサマネージャ２０からの報告に基づいてユーザーへの報告を行なうだけでよい。従って、センサ・アプリケーション１０の構造を非常に単純化することができる。
【００２５】
本発明の別の具体的な実施例の１つとして、電子機器１を“お天気センサ”として構成することができる。この実施例では、センサＡは温度センサ、センサＢは湿度センサ、センサＣは気圧センサである。センサ・アプリケーション１０は、温度・湿度・気圧の変化に基づき、「晴れ」「曇り」「雨」という報告を受けるような仮想センサを定義する。センサマネージャ２０は、定期的に（例えば３０秒おきに）これら３つのセンサの出力値を調べ、それらの出力値の変化率を計算する。そしてその変化率に基づき、「これから晴れる」「午後は曇り」「明日は雨」等の判断を行なう。センサ・アプリケーション１０は、例えば１時間に１回程度、センサマネージャ２０から天気予報の報告を受け、その報告に基づいて、天気予報をビジュアル・音声等の方法でユーザーに行なう。センサ・アプリケーション１０は、センサ制御・解析のためのコードを備える必要がなく、本発明を適用しない場合に比べてプログラミング労力が大きく減少する。
【００２６】
別な実施態様において、センサマネージャ２０は、電子機器１の筐体の外に存在するセンサも制御できるように構成されることができる。例えば、電子機器１にセルラネットワークやＢｌｕｅｔｏｏｔｈ，ＵＷＢ，ＷＬＡＮ等の無線通信手段を介して接続されたセンサや、インターネットを介して接続されたセンサを制御できるように、センサマネージャ２０を構成することができる。このような実施形態であっても、センサ・アプリケーション１０はセンサの物理的な存在位置を特に意識せずに、仮想センサを定義することが可能である。もちろん、物理的に離れた複数のセンサを組み合わせた仮想センサをも定義することも可能である。
【００２７】
電子機器１は、センサ・アプリケーション専用機であってもよいし、携帯電話やＰＤＡ等であってもよい。また、センサマネージャと物理的なセンサを予め備えた携帯電子機器に、様々なセンサ・アプリケーションをインストールして利用するという実施形態も可能である。
【００２８】
次に、図２を用いて本発明の別の実施態様を説明する。この実施例に係るシステム１００は、ユーザ空間１０２とカーネル空間１０４とを備えたＯＳ（オペレーティングシステム）を有する。センサマネージャ１０６は、センサマネージャ２０と同様の機能を備え、これまたセンサ・アプリケーション１０と同様の機能を有するセンサ・アプリケーション１０８の命令に基づいてセンサから情報を集め、情報を解析して結果をセンサ・アプリケーション１０８に報告する。センサマネージャ１０６やセンサ・アプリケーション１０８は、センサマネージャ２０やセンサ・アプリケーション１０よりも高度な機能を有する。センサ・アプリケーション１０８の命令は、センサ・アプリケーション１０が定義する命令と同様に、複数のセンサを組み合わせて作られた仮想センサとしての機能を有する。センサ・アプリケーション１０８は、複数の仮想センサ１１０，１１２，１１４を定義し、センサマネージャ１０６は、これらの仮想センサ１１０，１１２，１１４を並列的に処理することができる。仮想センサはソフトウエアインターフェース１１６を経由してセンサ・アプリケーション１０８からセンサマネージャ１０６へ伝えられる。またセンサマネージャ１０６が扱うことのできるセンサ情報が、センサ情報格納部１１８からソフトウエアインターフェース１１６を経由してセンサ・アプリケーション１０８へ伝えられる。
【００２９】
センサ１２０，１２２，１２４，１２６は、物理的なセンサである。センサはデバイスドライバ１２８，１３０，１３２，１３４等を通じてセンサマネージャ１０６に接続される。センサ１２０は、動的なセンサ検出手段によってセンサマネージャ１０６に検出・接続される。
センサ１２２はデバイスドライバ１３４を通じてセンサマネージャ１０６に接続される。センサ１２４は、ＦＰＧＡ１３８のセンサエントリ１４０を通じてセンサマネージャ１０６に接続される。センサ１２６は無線通信手段１４２を通じてセンサマネージャ１０６に接続される。
【００３０】
デバイスドライバに接続されたセンサは、センサエントリ１４４，１４６，１４８，１５０等を通じてセンサマネージャ１０６のセンサ仮想化ブロック１５２に接続される。センサ仮想化ブロック１５２は、センサの出力データにフィルタをかけたり、複数のセンサ出力を結合したりすることができる。
【００３１】
以上、本発明の実施態様を例を挙げて説明したが、本発明の実施態様はこれらに限られるものではなく、本発明の範囲を逸脱せずに様々な変形が可能であることは言うまでもない。
【図面の簡単な説明】
【００３２】
【図１】本発明の実施態様を説明するための概念図である。
【図２】本発明の別の実施態様を説明するための概念図である。
【符号の説明】
【００３３】
１        電子機器
１０      センサ・アプリケーション
２０      センサマネージャ
１００    システム
１０２    ユーザ空間
１０４    カーネル空間
１０６    センサマネージャ
１０８    センサ・アプリケーション
１１０，１１２，１１４  仮想センサ
１１６    ソフトウエアインターフェース
１１８    センサ情報格納部１１８
１２０，１２２，１２４，１２６  物理的なセンサ
１２８，１３０，１３２，１３４  デバイスドライバ
１３８    ＦＰＧＡ
１４２    無線通信手段
【図１】
2007004632.tif 000004
【図２】
2007004632.tif 000005