(57)【要約】      （修正有）【課題】プログラム作成支援装置により作成された制御プログラムに基づいてハードウェアデバイスが動作される際、玩具等として好ましい応答速度での動作が可能であり、かつ、ハードウェアデバイスの実機を自立駆動させることを可能とする情報処理システムを提供する。【解決手段】情報処理システムは、ユーザの指示により制御プログラムの作製を支援するユーザ端末１と、機能モジュール３−１、３−２の夫々と通信をする機能と、前記制御プログラムに基づいて機能モジュール３−１、３−２の夫々を制御する機能を有するベーシックコア２−１、２−２と、そのベーシックコア２−１と通信をする機能と、所定の機能を発揮する機能を有する機能モジュール３−１、３−２とを含む。ユーザ端末１の制御送付部１０４は、制御プログラムの少なくとも一部を１以上のベーシックコア２−１、２−２のうちの少なくとも１つに送付する。【選択図】図６
2020095532.tif 000002
【特許請求の範囲】
【請求項１】
ユーザの指示により制御プログラムの作製を支援するプログラム作製支援装置と、
他のハードウェアデバイスと通信をする機能と前記制御プログラムに基づいて前記他のハードウェアデバイスを制御する機能を有する１以上の第１ハードウェアデバイスと、
前記第１ハードウェアデバイスと通信をする機能と所定の機能を発揮する機能を有する前記他のハードウェアデバイスとしての１以上の第２ハードウェアデバイスとを含む情報処理システムにおいて、
前記プログラム作製支援装置は、
前記制御プログラムの少なくとも一部を前記１以上の第１ハードウェアデバイスのうちの少なくとも１つに送付する制御送付手段、
を備える情報処理システム。
【請求項２】
前記プログラム作製支援装置は、
前記１以上のハードウェアデバイスの中から、所定のルールに基づいて前記制御プログラムの少なくとも一部を送付する第１ハードウェアデバイスを決定する制御送付先決定手段、
を更に備える請求項１に記載された情報処理システム。
【請求項３】
前記制御プログラムは、前記第２ハードウェアデバイスに対応付けられたハードウェア部品を含むプログラミング部品を結合させて定義され、
前記制御送付先決定手段は、
前記制御プログラムを解析して、他の前記プログラミング部品に信号を送らない前記プログラミング部品を終点部品として抽出する終点部品抽出手段と、
抽出された前記終点部品のそれぞれから遡ってその始点までの全ての前記プログラミング部品を、当該終点部品についての先行部品として特定する先行部品特定手段と、
前記終点部品の夫々についての前記先行部品の前記制御プログラムにおける信号の送り先を当該終点部品に変更する送信先変更手段と、
を更に備える請求項１又は２に記載された情報処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理システムに関する。
【背景技術】
【０００２】
従来より、子供の教育を目的とした組み立て式玩具の提供は、広く普及しており、関連する技術は数多く提案されている（例えば、特許文献１）。
例えば、特許文献１に記載された技術によれば、簡単な配線やプログラミングによって組み立て式玩具を構築することができる組み立てブロックの提供がなされている。
この特許文献１に記載された技術によれば、年齢の低いユーザであっても、複雑な作業や操作を行うことなく、組み立て式玩具を構築することができる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平１０−１０８９８５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上述の特許文献１の技術では、各組み立てブロックは、既存のプログラムによって単一に制御されているに過ぎず、組み立て式玩具の動作や制御の自由度には、限界があった。
即ち、例えば、上述の特許文献１の技術のみでは、各組み立てブロックの夫々の機能を組み合わせて、プログラムを作製するような処理を実行することはできなかった。
換言すれば、上述の特許文献１の技術のみでは、各組み立てブロックの夫々の機能を組み合わせるといった高度な処理を実行させるためには、別途、複雑なプログラムを作成する必要があった。
【０００５】
また、組み立て式玩具の動作や制御の自由度は、有線式の接続での組み立てでは、配線のとりまわしの都合上の制限を受けることとなり、無線式の接続での組み立てでは、高速通信では電力の消耗による制限を受けることとなる。
例えば、無線式高速通信の一例であるＷＬＡＮ（Ｗｉ−Ｆｉ）では、回路が物理的に大きいことによる制限を受けることとなり、更には高価格である点でも採用は困難である。
一方、低消費電力の無線式の接続での組み立てでは通信速度が十分ではない、又は通信間隔が長く（例えば、ＢＬＥ（Ｂｌｕｔｏｏｔｈ  Ｌｏｗ  Ｅｎｅｒｇｙ）では５ｍｓ〜１００ｍｓ）、ボトルネックとなって動作に遅れが生じてしまい、玩具として好ましいものではなかった。
【０００６】
また、表示画面付きのデバイスは高価格になりがちであるので、これを占有することは好ましくなかった。
【０００７】
本発明は、このような状況に鑑みてなされたものであり、プログラム作成支援装置により作成された制御プログラムに基づいてハードウェアデバイスが動作される際において、プログラム作成支援装置と各ハードウェアデバイスとの間の通信を不要とすることにより、例えば玩具等として好ましい応答速度での動作が可能であり、かつ、ハードウェアデバイスの実機を自立駆動させることを可能とする技術を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記目的を達成するため、本発明の一態様の情報処理システムは、
ユーザの指示により制御プログラムの作製を支援するプログラム作製支援装置と、
他のハードウェアデバイスと通信をする機能と前記制御プログラムに基づいて前記他のハードウェアデバイスを制御する機能を有する１以上の第１ハードウェアデバイスと、
前記第１ハードウェアデバイスと通信をする機能と所定の機能を発揮する機能を有する前記他のハードウェアデバイスとしての１以上の第２ハードウェアデバイスとを含む情報処理システムにおいて、
前記プログラム作製支援装置は、
前記制御プログラムの少なくとも一部を前記１以上の第１ハードウェアデバイスのうちの少なくとも１つに送付する制御送付手段、
を備える。
【発明の効果】
【０００９】
本発明によれば、プログラム作成支援装置により作成された制御プログラムに基づいてハードウェアデバイスが動作される際において、プログラム作成支援装置と各ハードウェアデバイスとの間の通信を不要とすることにより、例えば玩具等として好ましい応答速度での動作が可能とし、かつ、ハードウェアデバイスの実機を自立駆動させることを可能とする技術を提供することができる。
【図面の簡単な説明】
【００１０】
【図１】本発明の一実施形態に係る情報処理システムの構成を示すブロック図である。
【図２】本発明の一実施形態に係るユーザ端末のハードウェア構成の一例を示すブロック図である。
【図３】本発明の一実施形態に係るベーシックコアのハードウェア構成の一例を示すブロック図である。
【図４】本発明の一実施形態に係る機能モジュールのハードウェア構成の一例を示すブロック図である。
【図５】本発明の一実施形態に係るベーシックコア及び機能モジュールが接続された状態の構成の一例を示す図である。
【図６】図２のユーザ端末、図３のベーシックコア及び図４の機能モジュールの機能的構成例を示す機能ブロック図である。
【図７】本発明の一実施形態に係る情報処理システムを利用したプログラム作製処理に関する状態の遷移を示す状態遷移図である。
【図８】本発明の一実施形態に係る情報処理システムを利用したプログラム作製処理に際し、ユーザに実際に表示される画面の一例を示す図である。
【図９】本発明の一実施形態に係る情報処理システムを利用したプログラム作製処理に際し、ユーザに表示される画面と実際の制御との対応関係の例を示す図である。
【図１０】本発明の一実施形態に係る情報処理システムを利用したプログラム作製処理に際し、ユーザに表示される画面と実際の制御との対応関係の一例であって図９とは異なる例を示す図である。
【図１１】本発明の一実施形態に係る情報処理システムを利用したプログラム作製処理に際し、ユーザに表示される画面と実際の制御との対応関係の一例であって図９及び図１０とは異なる例を示す図である。
【発明を実施するための形態】
【００１１】
以下、本発明の実施形態について、図面を用いて説明する。
【００１２】
本発明は、ユーザが視覚的な操作よって、より容易に複雑なプログラムを作製するための技術的思想の創作である。
ユーザは、プログラム作製用に表示されるユーザインタフェース（以下、「プログラム作製画面」と呼ぶ）に表示された各種アイコンを操作することで、プログラムを作製することができる。
具体的には例えば、ユーザは、プログラム作製画面に表示された特定のハードウェアの動作を指定するプログラムの内容を示すアイコン（以下、「ハードウェアパーツ」又は「Ｈパーツ」と呼ぶ）及び特定のソフトウェアの実行を指定するプログラムの内容を示すアイコン（以下、「ソフトウェアパーツ」又は「Ｓパーツ」と呼ぶ）を視認することができる。
そして、ユーザは、これらのアイコンを任意に移動（例えば、Ｄｒａｇ  Ａｎｄ  Ｄｒｏｐ等）させることで、各種アイコンを組み合わせてプログラムを作製する。
このようにして作製されたプログラムは、例えば、組み立て式の玩具等に利用することができる。
つまり、本発明の一実施形態に係る情報処理システムは、容易な操作によってプログラムを作製することができるため、プログラムの仕組みや作成方法を子供に学ばせるための教材として極めて有用である。
【００１３】
図１は、本発明の一実施形態に係る情報処理システムの構成を示すブロック図である。
図１に示す情報処理システムは、ユーザにより使用されるユーザ端末１と、ｍ個のベーシックコア２−１乃至２−ｍ（ｍは１以上の任意の整数値）と、ｍ個の機能モジュール３−１乃至３−ｍとを含むシステムである。
さらに、ユーザ端末１は、ベーシックコア２−１乃至２−ｍの夫々と、各種方式、例えばＮＦＣ（登録商標）（Ｎｅａｒ  Ｆｉｅｌｄ  Ｃｏｍｍｕｎｉｃａｔｉｏｎ）、Ｂｌｕｅｔｏｏｔｈ（登録商標）等の各種方式で通信を行う。
なお、以下、ベーシックコア２−１乃至２−ｍの夫々を個々に区別する必要がない場合、これらをまとめて「ベーシックコア２」と、機能モジュール３−１乃至３−ｍを個々に区別する必要がない場合、これらをまとめて「機能モジュール３」と呼ぶ。
【００１４】
ここで、本実施形態で用いられる、ベーシックコア２及び機能モジュール３について簡単に説明する。
ベーシックコア２とは、後述する機能モジュール３と接続して使用するハードウェアデバイスであり、近距離無線通信（例えば、ＮＦＣ（登録商標）の規格に準拠した通信）でユーザ端末１とのペアリングを行う。
ユーザ端末１は、所定のベーシックコア２−Ｋ（Ｋは、１乃至ｍのうち任意の整数値）とペアリングを行うことで、ベーシックコア２−Ｋと、ベーシックコア２−Ｋに接続された所定の機能モジュール３−Ｋとを認識する。
機能モジュール３−Ｋとは、例えば、温度センサ等の各種センサ、ブザー等の操作器具、モーターや扇風機等の駆動器具等により構成されるハードウェアデバイスである。
【００１５】
ここで、上述のユーザ端末１とベーシックコア２−Ｋとのペアリングについて説明する。本実施形態では、ベーシックコア２−Ｋに接続された機能モジュール３−Ｋの動作を少なくとも伴うプログラムの作製に際して、ユーザ端末１とベーシックコア２−Ｋとについて近距離無線通信を利用したペアリングを行う必要がある。
ペアリングとは、端的に言えば、近距離無線通信を用いて、ユーザ端末１に、ベーシックコア２−Ｋ及びそれに接続されている機能モジュール３−Ｋの種別や接続状態等を認識させることをいう。
なお、詳細については後述するが、ユーザ端末１では、機能モジュール３−Ｋの種別や接続の状態等を認識すると、接続された機能モジュール３−Ｋに対応するＨパーツがプログラム作製画面に表示される。
【００１６】
図２は、本発明の一実施形態に係るユーザ端末１のハードウェア構成を示すブロック図である。
【００１７】
ユーザ端末１は、タブレット型端末等で構成される。
ユーザ端末１は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２１と、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）２２と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）２３と、バス２４と、入出力インターフェース２５と、タッチ操作入力部２６と、表示部２７と、入力部２８と、記憶部２９と、第一近距離無線通信部３０と、第二近距離無線通信部３１と、通信部３２と、ドライブ３３と、リムーバブルメディア３４とを備えている。
【００１８】
ＣＰＵ２１は、ＲＯＭ２２に記録されているプログラム、又は、記憶部２９からＲＡＭ２３にロードされたプログラムに従って各種の処理を実行する。
ＲＡＭ２３には、ＣＰＵ２１が各種の処理を実行する上において必要な情報等も適宜記憶される。
【００１９】
ＣＰＵ２１、ＲＯＭ２２及びＲＡＭ２３は、バス２４を介して相互に接続されている。このバス２４にはまた、入出力インターフェース２５も接続されている。入出力インターフェース２５には、タッチ操作入力部２６、表示部２７、入力部２８、記憶部２９、第一近距離無線通信部３０、通信部３２及びドライブ３３が接続されている。また、第二近距離無線通信部３１も設けられている。
【００２０】
タッチ操作入力部２６は、例えば表示部２７に積層される静電容量式又は抵抗膜式（感圧式）の位置入力センサにより構成され、タッチ操作がなされた位置の座標を検出する。
表示部２７は、液晶等のディスプレイにより構成され、プログラム作製に関する画像等、各種画像を表示する。
このように、本実施形態では、タッチ操作入力部２６と表示部２７とにより、タッチパネルが構成されている。
【００２１】
入力部２８は、各種ハードウェア等で構成され、ユーザの指示操作に応じて各種情報を入力する。
記憶部２９は、ハードディスクやＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等で構成され、各種情報を記憶する。
第一近距離無線通信部３０は、例えば、ＮＦＣ（登録商標）の規格に従った方式で近距離無線通信を行う制御を実行する。具体的には例えば、上述の通り、ユーザ端末１とベーシックコア２は、ＮＦＣ（登録商標）の規格に従った方式で近距離無線通信をして、ペアリングを行う。
第二近距離無線通信部３１は、例えば、Ｂｌｕｅｔｏｏｔｈ（登録商標）の規格に従った方式で近距離無線通信を行う制御を実行する。具体的には例えば、ユーザ端末１で作製したプログラムの実行結果（コマンド等を含む）を、Ｂｌｕｅｔｏｏｔｈ（登録商標）の規格に従った方式の近距離無線通信で送信する。
通信部３２は、第一近距離無線通信部３０及び第二近距離無線通信部３１とは別個独立して、インターネット等を介して他の装置との間で行う通信を制御する。
【００２２】
ドライブ３３は、必要に応じて設けられる。ドライブ３３には、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリ等よりなる、リムーバブルメディア３４が適宜装着される。ドライブ３３によってリムーバブルメディア３４から読み出されたプログラムは、必要に応じて記憶部２９にインストールされる。
また、リムーバブルメディア３４は、記憶部２９に記憶されている各種情報も、記憶部２９と同様に記憶することができる。
【００２３】
図３は、本発明の一実施形態に係るベーシックコア２のハードウェア構成を示すブロック図である。
【００２４】
ベーシックコア２は、所定のハードウェアデバイス等で構成される。
ベーシックコア２は、ＣＰＵ４１と、ＲＯＭ４２と、ＲＡＭ４３と、バス４４と、第一近距離無線通信部４５と、第二近距離無線通信部４６と、接続部４７と、電源部４８とを備えている。
【００２５】
ベーシックコア２の構成のうち、ＣＰＵ４１、ＲＯＭ４２、ＲＡＭ４３、バス４４、第一近距離無線通信部４５、第二近距離無線通信部４６については、ユーザ端末１の構成と基本的に同様であるので、ここではそれらの説明は省略する。
【００２６】
接続部４７は、他のハードウェアデバイス（例えば、図１の機能モジュール３）との接続を行う。
また、接続部４７は、モジュール間通信部５１と、モジュール間電力伝達部５２とを備える。
モジュール間通信部５１は、例えば、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）の規格に従った方式により、データ通信を行う制御を実行する。
モジュール間電力伝達部５２は、後述する電源部４８からの電力の供給を受けて、他のハードウェアデバイス（例えば、図１の機能モジュール３）へと、電力を伝達する。
電源部４８は、電池等のバッテリーである。電源部４８は、ベーシックコア２に電力を供給するとともに、モジュール間電力伝達部５２を介して、適宜、機能モジュール３へ電力を供給する。
【００２７】
図４は、本発明の一実施形態に係る機能モジュール３のハードウェア構成を示すブロック図である。
【００２８】
機能モジュール３は、所定のハードウェアデバイス等で構成される。
機能モジュール３は、ＣＰＵ６１と、ＲＯＭ６２と、ＲＡＭ６３と、バス６４と、接続部６７と、機能ハードウェア６８と、電力供給部６９とを備えている。
【００２９】
機能モジュール３の構成のうち、ＣＰＵ６１、ＲＯＭ６２、ＲＡＭ６３、バス６４、及び接続部６７については、ユーザ端末１若しくはベーシックコア２の構成と基本的に同様であるので、ここではそれらの説明は省略する。
なお、機能モジュール３にも、ベーシックコア２と同様に、第一近距離無線通信部と、第二近距離無線通信部とが設けられてもよい。
【００３０】
機能ハードウェア６８は、例えば、温度センサやブザーであり、夫々の機能モジュールが固有の機能を発揮するためのハードウェア等である。
即ち、ユーザが作製したプログラムは、機能ハードウェア６８が適切にその機能を発揮することで、実際のハードウェア上に反映されるのである。
ここで、本実施形態において、プログラムの実行には、２種類の実行方法が存在する。即ち、ユーザ端末１で作製したプログラムを、ユーザ端末１のみで仮想的に実行する種類を、「シミュレーションによる実行」と呼ぶ。他方、ユーザ端末１で作製したプログラムの実行結果に基づいて機能ハードウェア６８等を動作させる種類を、「実機による実行」と呼ぶ。
更に、「実機による実行」には、ユーザ端末１で作製したプログラムに基づく制御をユーザ端末１で行う実行方法と、１以上のベーシックコア２で行う実行方法とが存在する。
【００３１】
電力供給部６９は、モジュール間電力伝達部７２を介して取得した電力、又は外部の電源（例えば図５のバッテリーユニットＰＰ）から供給された電力を機能モジュール３へ供給する。
【００３２】
次に、図５を用いて、ベーシックコア２−Ｅ（Ｅは、１乃至ｍのうち任意の整数値）及び機能モジュール３−Ｅの接続形態の詳細について説明する。
図５は、本発明の一実施形態に係るベーシックコア２−Ｅ及び機能モジュール３−Ｅが接続された状態の構成の一例を示す図である。
【００３３】
図５には、ベーシックコア２−Ｅ、機能モジュール３−Ｅ及びバッテリーユニットＰＰが例示されている。
ベーシックコア２−Ｅには、バッテリーユニットＢＵ（例えば、図３の電源部４８）、シリアルポートＳ及び近距離無線通信部ＢＴ（例えば、図３の第２近距離無線通信部４６）が備えられている。
バッテリーユニットＢＵは、例えば、電池等のバッテリーであり、ベーシックコア２−Ｅや機能モジュール３−Ｅに電力を供給する。
シリアルポートＳは、ベーシックコア２−Ｅと他のハードウェア等とを接続するための接続口（接続コネクタ）である。
図５の例では、ベーシックコア２−Ｅには、シリアルポートＳＰが備えられ、機能モジュール３−Ｅには、シリアルポートＰＳが備えられている。そして、ベーシックコア２−Ｅと機能モジュール３−Ｅは、この二つのシリアルポートＳＰ、ＰＳを介して接続されている。
近距離無線通信部ＢＴは、他のハードウェア等と所定の規格（例えば、Ｂｌｕｅｔｏｏｔｈ（登録商標））に従った方式で近距離無線通信を行うためのＩＣカード等が搭載されている。
図５の例では、（図５においては、図示せぬ）ユーザ端末１と、近距離無線通信部ＢＴを備えたベーシックコア２−Ｅとは、Ｂｌｕｅｔｏｏｔｈ（登録商標）に従った方式で近距離無線通信を行う。
具体的に例えば、ユーザ端末１で作製されたプログラムの実行結果（コマンド等）は、ベーシックコア２−Ｅにも送信される。さらに言えば、ベーシックコア２−Ｅでは、ユーザ端末１から送信されてきた当該プログラムの実行結果（コマンド等）を取得し、さらに、その結果を、機能モジュール３−Ｅへと送信する。
また、或いは、具体的に例えば、ユーザ端末１で作製されたプログラムは、ベーシックコア２−Ｅに送信され、ベーシックコア２−Ｅにおいて実行される。さらに言えば、ベーシックコア２−Ｅでは、ユーザ端末１から送信されてきた当該プログラムを取得し、実行した結果（コマンド等）を、さらに、機能モジュール３−Ｅへと送信する。
【００３４】
また、機能モジュール３−Ｅは、タイヤＴ（例えば、図４の機能ハードウェア６８）を備えている。そして、上述の通り、機能モジュール３−Ｅは、ベーシックコア２−Ｅから送信されてきた上述のプログラムの実行結果（コマンド等）を取得する。図５の例の機能モジュール３−Ｅは、ユーザ端末１で作製されたプログラムの実行結果（コマンド等）に従って、タイヤＴを駆動させる。
ここで、図５の例では、機能モジュール３−Ｅには、バッテリーユニットＰＰが接続されている。このバッテリーユニットＰＰは、外部電源として機能モジュール３−Ｅに電力を供給する。なお、上述したように、ベーシックコア２の電源部４８（図３）等から、機能モジュール３−Ｅに電力の供給が可能であるならば、バッテリーユニットＰＰは必須な構成要素ではない。
【００３５】
このようなユーザ端末１、ベーシックコア２及び機能モジュール３の各種ハードウェアと各種ソフトウェアの協働によりプログラム作製処理の実行が可能となる。
ここで、プログラム作製処理とは、ベーシックコア２に接続された機能モジュール３を１以上機能させるためのプログラムを作成するための処理をいう。
【００３６】
このプログラム作製処理を実現すべく、ユーザ端末１、ベーシックコア２及び機能モジュール３は、図６に示すような機能的構成を有している。
図６は、図１のユーザ端末１、ベーシックコア２及び機能モジュール３の機能的構成の一例を示す機能ブロック図である。
図６に示すように、ユーザ端末１のＣＰＵ２１においては、ペアリング部１０１と、プログラム作製部１０２と、制御送付先決定部１０３と、制御送付部１０４と、表示制御部１０５と、通信制御部１０６とが機能する。
また、ユーザ端末１の記憶部２９の一領域には、プログラム作製部１０２で作製されたプログラムを格納するプログラム格納部５００と、各種Ｓパーツが格納されているＳパーツＤＢ（Ｓｏｆｔ  ｗａｒｅ  Ｐａｒｔｓ  Ｄａｔａ  Ｂａｓｅ）６００とが設けられている。
そして、ベーシックコア２−１のＣＰＵ４１−１においては、端末通信制御部２０１−１と、プログラム実行部２０２−１と、機能モジュール通信制御部２０３−１とが機能する。
ここで、ベーシックコア２−１の記憶部４９−１の一領域には、端末通信制御部２０１−１を介して受信したプログラムを格納するプログラム格納部５００−１が設けられている。
また、ベーシックコア２−２のＣＰＵ４１−２においては、端末通信制御部２０１−２と、プログラム実行部２０２−２と、機能モジュール通信制御部２０３−２とが機能する。
また、ここで、ベーシックコア２−２の記憶部４９−２の一領域には、端末通信制御部２０１−２を介して受信したプログラムを格納するプログラム格納部５００−２が設けられている。
なお、以下、ベーシックコア２−１乃至２−２の各構成の夫々を個々に区別する必要がない場合、これらをまとめて「ＣＰＵ４１」、「記憶部４９」、「端末通信制御部２０１」、「プログラム実行部２０２」、「機能モジュール通信制御部２０３」、及び「プログラム格納部５００」と呼ぶ。
【００３７】
ユーザ端末１のペアリング部１０１は、第一近距離無線通信部３０を介して、ユーザ端末１とベーシックコア２とのペアリングを行う。なお、このペアリングは、本実施形態ではＮＦＣ（登録商標）に準拠した近距離無線通信で行われるが、これは例示に過ぎず、任意の方式の通信で行われてもよい。
また、ペアリング部１０１は、ユーザ端末１とペアリングしたベーシックコア２及びそれに接続された機能モジュール３の種別や接続の状況を確認する。
なお、ペアリング部１０１に確認された機能モジュール３の種別や接続の状況は、表示制御部１０５を介して、プログラム作製画面に表示される。
【００３８】
プログラム作製部１０２は、ユーザのタッチ操作を受付けて、実際にプログラムの作製を行う。
また、プログラム作製部１０２は、ペアリング部１０１によりペアリングが行われたベーシックコア２に接続されている機能モジュール３の種別に対応するＨパーツを、表示制御部１０５を介してプログラム作製画面へ表示する。
また、プログラム作製部１０２は、適宜、ＳパーツＤＢ６００からＳパーツを抽出して、表示制御部１０５を介してプログラム作製画面へ表示する。
また、プログラム作製部１０２は、ユーザのタッチ操作に応じて、各種Ｈパーツ及び各種Ｓパーツを結合する。
最終的に作製されるプログラムにおいては、このように結合された各種Ｈパーツ及びＳパーツに指定されたプログラムの内容が連続的に実行されて良い。
そして、プログラム作製部１０２は、ユーザに作製されたプログラムの内容を確定し、その作製されたプログラムをプログラム格納部５００へ格納する。
【００３９】
制御送付先決定部１０３は、所定のルールに基づいて、プログラム格納部５００に格納されたプログラムの少なくとも一部を送付する第１ハードウェアデバイスを決定する。
即ち、制御送付先決定部１０３は、プログラム格納部５００に格納されたプログラムのうちから、ユーザが実行を望むプログラムを抽出し、これに所定のルールを適用して、制御の送付先とするベーシックコア２と、これに送付するプログラムの一部とを決定する。
【００４０】
ここで、ベーシックコア２を１個使って実機を構成した場合は、当該ベーシックコア２を制御送付先として決定することにより、自立制御が可能となり、ユーザ端末１とも、他の機器とも、近距離無線通信を利用した信号伝達が不要となるので、例えば、玩具として好ましい応答速度での動作をさせることができる。
しかし、ここで、ベーシックコア２を２個以上使って実機を構成した場合は、いずれを制御送付先とすべきかが問題となる。
即ち、ユーザ端末１の中央集権制御ではないため、各々のベーシックコア２が自分に関連するロジック（プログラムの一部）について把握し、各々が自立して制御する必要がある。
【００４１】
具体的には、ロジックの始点から終点までのデータの経路をどうするかや、ハードウェアの介在しないＳパーツのロジック（例えばＮＯＴ（信号の反転）演算）は、ベーシックコア２が２個以上の場合にどのベーシックコア２が制御するのかや、それらを最適化するアルゴリズムが望まれる。
これについての一方策としては、一番終点のベーシックコア２が自機に関わる全ての始点の情報を取得し、終点から始点の間にあるロジックを、全て当該ベーシックコア２に処理させて良い。この様にすることにより、データの伝達経路としては最短となる。
なお、例えば、後述する図１１（Ｃ）の場合、全く同じ論理和演算処理をベーシックコア２−３でもベーシックコア２−４でも行うこととなる。この様に、実機全体としての処理効率についてはトレードオフとなる場合が有る。
また、各ベーシックコア２は、自立制御のみならず、ベーシックコア２同士で同期をとる等の協調を行うことが望ましい。
この様にすることで、様々な不都合を回避することが可能となる。
【００４２】
ここで、制御送付先決定部１０３には、所定のルールに基づいて前記制御プログラムの少なくとも一部を送付する第１ハードウェアデバイスを決定する為、終点部品抽出部１２１と、先行部品特定部１２２と、送信先変更部１２３とが設けられている。
制御送付先決定部１０３が制御の送付先とするベーシックコア２は、１であって良く、また２以上であって良い。
この様にすることにより、ベーシックコア２を何個使って実機を構成されても、制御プログラムを適正に分割して、処理をさせることが可能になる。
【００４３】
終点部品抽出部１２１は、前記制御プログラムを解析して、他の前記プログラミング部品に信号を送らない前記プログラミング部品を終点部品として抽出する。
この様にすることにより、終点部品のそれぞれから信号の伝達経路を遡って、他のプログラミング部品との関係を調べることが可能となる。
【００４４】
先行部品特定部１２２は、抽出された前記終点部品のそれぞれから遡ってその始点までの全ての前記プログラミング部品を、当該終点部品についての先行部品として特定する。
この様にすることにより、直接又は間接に、処理の対象の終点部品に信号を伝達する前記プログラミング部品を特定することが、可能となる。
また、この様にすることにより、信号の伝達経路の中継部分を特定することが、可能となる。
【００４５】
送信先変更部１２３は、前記終点部品の夫々についての前記先行部品の前記制御プログラムにおける信号の送り先を当該終点部品に変更する。
この様にすることにより、信号の伝達経路を最大で１段階のみにまで減少させることができるので、信号伝達に要する時間を短縮させることができる。
これに伴い、プログラムの必要な一部を実行させるベーシックコア２を終点部品のものとすべく、その制御送付先を制御送付先決定部１０３として決定することにより、実行結果については維持することができるので、本発明に係る例えば玩具を、良好な応答速度で正しく動作させることができる。
なお、「送り先を変更する」とは、一の既存の送り先を一の新たな送り先に入れ替えるのみならず、既存の送り先を残して新たな送り先を追加して良く、又は後述する図１１（Ｃ）に示す通り、二以上の新たな送り先に入れ替えて良い。
【００４６】
制御送付部１０４は、制御プログラムの少なくとも一部を１以上の第１ハードウェアデバイスのうちの少なくとも１つに送付する。
即ち、制御送付部１０４は、制御送付先決定部１０３が所定のルールに基づいて送付先として決定したベーシックコア２に、制御プログラムの少なくとも一部を送付する。
即ち、制御送付部１０４は、ユーザが実行を望むプログラム格納部５００に格納されたプログラムを適宜改変することにより、制御プログラムの少なくとも一部を生成して送付する。
【００４７】
なお、ユーザ端末１は、ユーザに作製されたプログラムによって、ベーシックコア２及び機能モジュール３を動作させることを目的とせずに、抽出されたプログラムを仮想的に実行できて良い。
即ち、ユーザ端末１は、実際に作製されたプログラムが正常に実行できるか等をチェックするためのシミュレーションを行うことができて良い。なお、プログラムの実行結果は、後述するように、表示制御部１０５を介して表示部２７に表示される。
また、ユーザ端末１は、ユーザに作製されたプログラムによって、ベーシックコア２及び機能モジュール３を動作させることを目的として、抽出されたプログラムを実行できて良い。
即ち、ユーザ端末１は、作製されたプログラムの実行結果（コマンド等）を、ベーシックコア２及び機能モジュール３へと送信し、機能モジュール３に機能を発揮させることができて良い。
なお、プログラムの実行結果は、表示制御部１０５を介して表示部２７に表示されるだけでなく、後述するように、通信制御部１０６によってベーシックコア２へと送信されて良い。
【００４８】
表示制御部１０５は、前述した各種情報等を表示部２７に表示するための制御を実行する。
【００４９】
通信制御部１０６は、制御送付部１０４による制御プログラムの少なくとも一部の送付を、第二近距離無線通信部３１を介して１以上のベーシックコア２に送信することにより実現するための制御等を行う。
また、通信制御部１０６は、ユーザ端末１で実行されたプログラムの実行結果を第二近距離無線通信部３１を介してベーシックコア２に送信するための制御等を行って良い。
なお、前述の通り、本実施形態では、第二近距離無線通信部３１は、Ｂｌｕｅｔｏｏｔｈ（登録商標）の規格に従った方式で近距離無線通信を行う。
【００５０】
ベーシックコア２は、第一近距離無線通信部４５を介して、ユーザ端末１とペアリングを行う。
ここで、第一近距離無線通信部４５は、ベーシックコア２においてシステムと独立している。そこで、第一近距離無線通信部４５には、第二近距離無線通信部４６の接続情報（例えばＭＡＣアドレス）が予め書き込まれており、ベーシックコア２は、そのＭＡＣアドレスを読み込んで、Ｂｌｕｅｔｏｏｔｈ（登録商標）によるユーザ端末１とのペアリングを実現しているが、これは例示に過ぎず、接続情報の読み込みは任意の方式で行われてよい。
即ち、ペアリングにおける接続情報の読み込みには、例えば、カメラとＱＲコード（登録商標）との組み合わせ、ホールセンサと磁石との組み合わせ、加速度センサと振動モータとの組み合わせ等を採用することができる。
【００５１】
端末通信制御部２０１は、例えば、ユーザ端末１から送信されてきたプログラムの一部又はプログラムの実行結果を第二近距離無線通信部４６を介して取得するための制御等を実行する。
この場合は、例えばＢＬＥによる近距離無線通信を採用する場合は、各ベーシックコア２がＢＬＥサーバとなり、ユーザ端末１がＢＬＥクライアントとなって、近距離無線通信を行って良い。
また、端末通信制御部２０１は、他のベーシックコア２と、機能モジュール３からの信号又はプログラムの実行結果の通信をするための制御等を実行する。
この場合は、例えば、ＢＬＥ機器（ベーシックコア２）一つで、ＢＬＥサーバと、ＢＬＥクライアントの両方を担わせることとして良い。
即ち、二つのベーシックコア２の間で、ＢＬＥサーバと、ＢＬＥクライアントの関係が通信方向によって、入れ替わることとして良い。
この場合、ベーシックコア２が２つの場合は、ペアリングは２つ行うこととなり、ベーシックコア２が３つの場合は、ペアリングは６つ行うこととなる。
【００５２】
この他には、ＢＬＥでアドバタイジングパケットで送信することにより、データをブロードキャストすることとして良い。
即ち、ブロードキャスト情報の中に宛先情報を入れて送信し、受信者であるベーシックコア２は自分宛の場合のみ取得させ、それ以外の情報は破棄することとして良い。
この場合において、ＢＬＥブロードキャストは、送信間隔を数ｍｓ以下まで変更でき、かつ動的に送信間隔を変更できることが望ましい。
【００５３】
ここで、プログラムの実行時において、当該プログラムで機能を発揮させる機能モジュール３は、所定のベーシックコア２と接続されていることが必要である。
即ち、少なくともプログラムの実行時において、ベーシックコア２と機能モジュール３は、接続部４７と接続部６７によって接続されている。
ここで、少なくともプログラムの実行時としたのは、ベーシックコア２と機能モジュール３との接続は、ベーシックコア２とユーザ端末１とのペアリングとは独立して行うことができるからである。つまり、ペアリング前にベーシックコア２と機能モジュール３との接続がなされていてもよいが、ペアリング後にベーシックコア２と機能モジュール３との接続がなされていてもよい。後者の場合、機能モジュール３から自身のユニークＩＤがユーザ端末１に送信されることで、ユーザ端末１はその機能モジュール３が何であるのか（どのような機能を発揮させるものか）を認識することができる。
また、ペアリング後に機能モジュール３をベーシックコア２から外すこともできる。その際は、ベーシックコア２は、機能モジュール３が外れたことをユーザ端末に１に通知する。ユーザ端末１は、ＵＩ（後述する図８のユーザ表示画面等）に外れた旨を表示させる。より正確には本実施形態では、ユーザ端末１は、所定の機能モジュール３がベーシックコア２から外された場合は、当該所定の機能モジュール３に対応するＨパーツを示すアイコンがＵＩにおいて非表示状態になる。
このようにして、ペアリング後の機能モジュール３のホットスワップが実現されている。即ち、ユーザにとっては、ペアリングを一旦してしまえば、あとはベーシックコア２に対する機能モジュール３の抜き差しだけでよい。この抜き差しの状態は、ユーザ端末１上のＵＩでも追従される。
いずれにしても、ベーシックコア２と機能モジュール３が接続されている場合、ベーシックコア２の機能モジュール通信制御部２０３は、接続部４７を介して接続された機能モジュール３との通信の制御を実行する。
例えば、機能モジュール通信制御部２０３は、後述するプログラム実行部２０２で出力された動作指示等を機能モジュール３へ送信する。
【００５４】
プログラム実行部２０２は、ベーシックコア２で実行される各種処理の主たる制御を実行する。
例えば、プログラム実行部２０２は、端末通信制御部２０１で取得したプログラムの一部を実行して、その実行結果に基づいて、機能モジュール３の機能を発揮させるための動作指示等を出力する。
【００５５】
なお、ベーシックコア２のＣＰＵ４１は、端末通信制御部２０１でのＢＬＥインターフェースとのデータのやりとり、機能モジュール通信制御部２０３での機能モジュール３とのデータのやりとり、及びプログラム実行部２０２でのロジックの処理の３つを並行してμ秒オーダーで行う演算処理能力を備えていることが望ましい。
【００５６】
機能モジュール３は、機能モジュール３で実行される各種処理の主たる制御を実行する。
例えば、ベーシックコア２から送信されてきた動作指示を、接続部６７を介して、取得する。
【００５７】
機能モジュール３は、取得した動作指示を、機能ハードウェア６８に実行させるための制御を実行する。
即ち、機能モジュール３は、取得した動作指示を機能ハードウェア６８に実行させることで、機能モジュール３の機能を発揮させる。
【００５８】
なお、電力供給部６９は、モジュール間電力伝達部７２を介して取得した電力を機能モジュール３へ供給するが、上述したように、外部の電源（例えば図５のバッテリーユニットＰＰ）から供給された電力を機能モジュール３へ供給することもできる。
【００５９】
図７は、本発明の一実施形態に係る情報処理システムを利用したプログラム作製処理に関する状態の遷移を示す状態遷移図である。
図７において、各状態は、１つの楕円形で示されており、夫々の状態は、ＳＰを含む符号により判別される。
１つの状態から１つの状態への状態遷移は、所定の条件（以下、「状態遷移条件」と呼ぶ）が満たされると実行される。
このような状態遷移条件は、図７おいては、１つの状態から１つの状態への遷移を表す矢印に、Ａを含む符号を付して表されている。
【００６０】
本実施形態においては、図７に示すように、プログラム作製状態ＳＰ１が基本の状態になる。
プログラム作製状態ＳＰ１において、ユーザは、ユーザ端末１とベーシックコア２を近接させることでペアリングを行う。
なお、ここでいう近接されるとは、ＮＦＣ（登録商標）規格に従った方式で近距離無線通信を行うのに有効な距離であり、一般に１０ｃｍ程度の距離まで近接させることを言う。
即ち、ユーザが、ユーザ端末１とベーシックコア２とを１０ｃｍ程度の距離まで近接させることで、状態遷移条件Ａ１が満たされる。
すると、状態は、ペアリング状態ＳＰ２へと遷移する。これにより、プログラム作製部１０２は、Ｈパーツを表示制御部１０５を介してプログラム作製画面に表示する。
そして、ペアリング後、ユーザが一定の時間、操作を行わなかった場合には、状態遷移条件Ａ２が満たされる。
すると、状態は、プログラム作製状態ＳＰ１へと再び遷移する。
【００６１】
ペアリング状態ＳＰ２において、ユーザが、所定の操作子（図示せぬプログラム実行ボタン等）を押下すると、状態遷移条件Ａ３が満たされる。
すると、状態は、プログラム実行状態ＳＰ３に遷移する。
そして、先ほどと同様に、プログラム実行状態ＳＰ３において、ユーザが、ユーザ端末１とベーシックコア２を近接させることで、状態遷移条件Ａ４が満たされる。
すると、状態は、ペアリング状態ＳＰ２へと再び遷移する。
【００６２】
プログラム作製状態ＳＰ１において、ユーザが、プログラムの作成が終了して、プログラムの実行を指示する所定の操作子（図示せぬプログラム実行ボタン等）を押下すると、状態遷移条件Ａ１２が満たされる。
すると、状態は、プログラム実行状態ＳＰ３に遷移する。
なお、プログラム実行状態ＳＰ３において、ユーザが、プログラムの追加や変更を所望した場合、所定の操作子（図示せぬプログラム作製ボタン等）を押下すると、状態遷移条件Ａ１３が満たされる。
すると、状態は、プログラム作製状態ＳＰ１に遷移する。
【００６３】
ここで、プログラム実行状態ＳＰ３には、上述したようにシミュレーション状態と実機状態２つの状態が存在する。
プログラム実行状態ＳＰ３において、これらの２つの状態は、ユーザが所定の操作子（図示せぬシミュレーションボタン等）を押下することで、夫々の状態での、状態遷移条件Ａ１０又Ａ１１を満たす。
このように、プログラム実行状態ＳＰ３において、シミュレーション状態と実機状態は、適宜、遷移することができる。
【００６４】
プログラム実行状態ＳＰ３において、プログラム実行後、ユーザが所定の操作子（図示せぬプログラム実行キャンセルボタン等）を押下すると、状態遷移条件Ａ５が満たされる。
すると、状態は、休止状態ＳＰ４へと遷移する。
そして、休止状態ＳＰ４において、ユーザが所定の操作子（図示せぬプログラム実行ボタン等）を押下すると、状態遷移条件Ａ６が満たされる。
すると、状態は、プログラム実行状態ＳＰ３へと遷移する。
【００６５】
休止状態ＳＰ４において、ユーザが、所定の操作子（図示せぬプログラム作製アプリケーションの起動ボタン等）を押下すると状態遷移条件Ａ７が満たされる。
すると、状態は、プログラム作製状態ＳＰ１へと遷移する。
そして、プログラム作製状態ＳＰ１において、ユーザのが、所定の操作子（図示せぬプログラム作製キャンセルボタン等）を押下すると、遷移条件Ａ８が満たされる。
すると、状態は、休止状態ＳＰ４へと遷移する。
なお、図７に示す通り、ペアリング状態ＳＰ２と休止状態ＳＰ４については、直接遷移することも可能である。
【００６６】
次に、図８を用いて、ユーザ端末１の表示部２７に表示されるプログラム作製画面の詳細について説明する。
図８は、図２のユーザ端末１が実行するプログラム作製処理に関し、ユーザに実際に表示される画面の一例を示す図である。
【００６７】
図８において、左半分にはユーザに表示されているプログラム作製画面（以下、「ユーザ表示画面」と呼ぶ）が、右半分には実際に作製されたプログラムに応じて、動作する各種ハードウェアの模式図（以下、「ハードウェア模式図」と呼ぶ）が示されている。
まず、図８（Ａ）は、ユーザ端末１に、いずれのベーシックコア２のペアリングもなされていない状況を示している。
即ち、図８（Ａ）のハードウェア模式図を見ると、ユーザ端末１には、ベーシックコア２−Ｏ及び機能モジュール３−Ｏ（Ｏは、１乃至ｍのうち任意の整数値）と、ベーシックコア２−Ｐ及び機能モジュール３−Ｐ（Ｐは、１乃至ｍのうちＯ以外の任意の整数値）のいずれもペアリングされていない。
なお、機能モジュール３−Ｏは、押しボタンの機能を発揮することができる。また、機能モジュール３−Ｐは、ブザーの機能を発揮することができる。
そして、図８（Ａ）のユーザ表示画面を見ると、プログラム作製時表示領域ＤＡとＨパーツ表示領域ＤＨＡにはアイコンは表示されていない。なお、Ｓパーツ表示領域ＤＳＡには、タイマーのアイコンが表示されている。
【００６８】
図８（Ｂ）は、ユーザ端末１と、機能モジュール３−Ｏが接続されたベーシックコア２−Ｏとのペアリングがなされ、かつ、ユーザ端末１と、機能モジュール３−Ｐが接続されたベーシックコア２−Ｐとのペアリングがなされた状況を示している。
そして、図８（Ｂ）のユーザ表示画面を見ると、ペアリングがなされた機能モジュール３−Ｏに対応する押しボタンのアイコン及び機能モジュール３−Ｐに対応するブザーのアイコンがＨパーツ表示領域ＤＨＢに夫々表示されている。
【００６９】
図８（Ｃ）は、ユーザによって作製されたプログラムが、実行された状況を示している。
図８の（Ｃ）のユーザ表示画面を見ると、プログラム作製時表示領域ＤＣには、右から順に押しボタンのアイコン、タイマー（２ｓ）、ブザーのアイコンが順番に表示され、夫々のアイコンにより夫々結合されている。
ユーザは、このように、ユーザ表示画面に表示されたアイコンを視認しながら、各種Ｈパーツ及び各種Ｓパーツを自由に組み合わせて結合させることで、夫々のアイコンが指定する内容を組み合わせて１つのプログラムを製作し、そのプログラムを実行させることができる。
図８（Ｃ）のハードウェア模式図を見ると、同図のユーザ表示画面で示されるプログラムが実行された結果として、押しボタン（機能モジュール３−Ｏ）が押されると、その２秒後に、ブザー（機能モジュール３−Ｐ）が鳴るという動作が実現されることがわかる。
【００７０】
図９乃至１１を用いて、ユーザ端末１がプログラム作製画面において表示するプログラムに基づく制御の詳細について説明する。
図９は、本発明の一実施形態に係る情報処理システムを利用したプログラム作製処理に際し、ユーザに表示される画面と実際の制御と対応関係の例を示す図である。
【００７１】
図９（Ａ）はプログラム作製画面に表示されるプログラムの模式図である。
プログラム作製画面には、Ｈパーツとして、左には例えばボタンであるＨパーツＨＡ及びＨパーツＨＢのアイコンが表示され、右には例えばＬＥＤライトであるＨパーツＨＣのアイコンが表示されている。それらの間には、Ｓパーツとして、論理回路Ｓ１のアイコンが表示されている。論理回路Ｓ１のアイコンは、入力側にはＨパーツＨＡ及びＨパーツＨＢのアイコンが接続され、出力側にはＨパーツＨＣのアイコンが接続されている。
【００７２】
図９（Ｂ）はプログラム作製画面に表示されるプログラムに基づいて実行される制御の第一の態様の模式図である。
ここで、ベーシックコア２−１は、プログラム作製画面におけるＨパーツＨＡとしてペアリングされた例えば押しボタンＡである機能モジュール３と接続されているものとする。同様に、ベーシックコア２−２は、ＨパーツＨＢとしてペアリングされた例えば押しボタンＢである機能モジュール３と、ベーシックコア２−３は、ＨパーツＨＣとしてペアリングされた例えばＬＥＤライトＣである機能モジュール３と、それぞれ接続されているものとする。
また、ここで、各ベーシックコア２間の波線矢印は、低消費電力近接無線通信（例えばＢＬＥ（Ｂｌｕｔｏｏｔｈ  Ｌｏｗ  Ｅｎｅｒｇｙ））による信号の伝達方向を示している。
【００７３】
本制御の態様は、ベーシックコア２−２から、ベーシックコア２−１に信号が伝達され、ベーシックコア２−１において、ＨパーツＨＡ及びＨパーツＨＢからの信号を例えばＡＮＤゲート回路である論理回路Ｓ１に入力し、その結果の信号を、ベーシックコア２−３に伝達する。
係る例においては、プログラムに基づいて、押しボタンＡと押しボタンＢとが、共に押されている間に、ＬＥＤライトＣが発光することとなる。
この場合において、ベーシックコア２−１は、論理回路Ｓ１の結果の信号を、そのままベーシックコア２−３に伝達して、ベーシックコア２−３に、ＬＥＤライトＣを発光させる制御をさせて良い。
またあるいは、ベーシックコア２−１は、ＬＥＤライトＣをも制御して良い。即ち、論理回路Ｓ１の結果に基づいてＬＥＤライトＣを発光させる信号を、ベーシックコア２−１において生成し、これをベーシックコア２−３に伝達して、ＬＥＤライトＣを発光させても良い。
【００７４】
図９（Ｃ）はプログラム作製画面に表示されるプログラムに基づいて実行される制御の第二の態様の模式図である。
ここで、各ベーシックコア２と、各Ｈパーツとしてペアリングされた機能モジュール３との接続関係は、図９（Ｂ）における場合と、同様である。
本制御の態様は、ベーシックコア２−１及びベーシックコア２−２から、ベーシックコア２−３に信号が伝達され、ベーシックコア２−３において、押しボタンＡ及び押しボタンＢからの信号を例えばＡＮＤゲート回路である論理回路Ｓ１に入力する。
係る例においても、図９（Ｂ）における場合と同様に、プログラムに基づいて、押しボタンＡと押しボタンＢとが、共に押されている間に、ＬＥＤライトＣが発光することとなる。
本制御の態様においては、図９（Ｂ）に示す第一の態様の場合に比較して、押しボタンＢの信号の、ベーシックコア２−３への伝達経路が１段階短くなる。
このことにより、信号伝達に要する時間が減少する為、本制御の態様においては、玩具として良好な速さで動作することとなる。
【００７５】
図１０は、本発明の一実施形態に係る情報処理システムを利用したプログラム作製処理に際し、ユーザに表示される画面と実際の制御との対応関係の一例であって図９とは異なる例を示す図である。
図１０（Ａ）はプログラム作製画面に表示されるプログラムの模式図である。
プログラム作製画面には、Ｈパーツとして、左には例えばボタンであるＨパーツＨＡ及びＨパーツＨＢのアイコンが表示され、右には例えばＬＥＤライトであるＨパーツＨＤのアイコンが表示されている。それらの間には、例えばボタンであるＨパーツＨＡと、Ｓパーツとして、論理回路Ｓ１、及び論理回路Ｓ２のアイコンが表示されている。論理回路Ｓ１のアイコンは、入力側にはＨパーツＨＡ及びＨパーツＨＢのアイコンが接続され、出力側には論理回路Ｓ２のアイコンが接続されている。論理回路Ｓ２のアイコンは、入力側には論理回路Ｓ１のアイコン及びＨパーツＨＣのアイコンが接続され、出力側にはＨパーツＨＤのアイコンが接続されている。
【００７６】
図１０（Ｂ）はプログラム作製画面に表示されるプログラムに基づいて実行される制御の第一の態様の模式図である。
ここで、ベーシックコア２−１は、プログラム作製画面におけるＨパーツＨＡとしてペアリングされた例えば押しボタンＡである機能モジュール３と接続されているものとする。同様に、ベーシックコア２−２は、ＨパーツＨＢとしてペアリングされた例えば押しボタンＢである機能モジュール３と、ベーシックコア２−３は、ＨパーツＨＣとしてペアリングされた例えば押しボタンＣである機能モジュール３と、ベーシックコア２−４は、ＨパーツＨＤとしてペアリングされた例えばＬＥＤライトＤである機能モジュール３と、それぞれ接続されているものとする。
【００７７】
本制御の態様は、ベーシックコア２−１及びベーシックコア２−２から、ベーシックコア２−３に信号が伝達され、ベーシックコア２−３において、ＨパーツＨＡ及びＨパーツＨＢからの信号を例えばＡＮＤゲート回路である論理回路Ｓ１に入力し、その結果の信号及びＨパーツＨＣからの信号を、ベーシックコア２−４に伝達し、これらを例えばＡＮＤゲート回路である論理回路Ｓ２に入力する。
係る例においては、プログラムに基づいて、押しボタンＡと、押しボタンＢと、押しボタンＣとが、共に押されている間に、ＬＥＤライトＤが発光することとなる。
【００７８】
図１０（Ｃ）はプログラム作製画面に表示されるプログラムに基づいて実行される制御の第二の態様の模式図である。
本制御の態様は、信号の送信先を、二以上の新たな送り先に入れ替える場合の例である。
ここで、各ベーシックコア２と、各Ｈパーツとしてペアリングされた機能モジュール３との接続関係は、図１０（Ｂ）における場合と、同様である。
本制御の態様は、ベーシックコア２−１、ベーシックコア２−２及びベーシックコア２−３から、ベーシックコア２−４に信号が伝達され、ベーシックコア２−４において、ＨパーツＨＡ及びＨパーツＨＢからの信号を例えばＡＮＤゲート回路である論理回路Ｓ１に入力し、その結果の信号及びＨパーツＨＣからの信号を、更に例えばＡＮＤゲート回路である論理回路Ｓ２に入力する。
係る例においても、プログラムに基づいて、押しボタンＡと、押しボタンＢと、押しボタンＣとが、共に押されている間に、ＬＥＤライトＤが発光することとなる。
本制御の態様においては、図１０（Ｂ）に示す第一の態様の場合に比較して、押しボタンＡ及び押しボタンＢの信号の、ベーシックコア２−４への伝達経路が１段階短くなる。
このことにより、信号伝達に要する時間が減少する為、本制御の態様においては、玩具として良好な速さで動作することとなる。
【００７９】
図１１は、本発明の一実施形態に係る情報処理システムを利用したプログラム作製処理に際し、ユーザに表示される画面と実際の制御との対応関係の一例であって図９及び図１０とは異なる例を示す図である。
図１１（Ａ）はプログラム作製画面に表示されるプログラムの模式図である。
プログラム作製画面には、Ｈパーツとして、左には例えばボタンであるＨパーツＨＡ及びＨパーツＨＢのアイコンが表示され、右には例えばＬＥＤライトであるＨパーツＨＣ及びＨパーツＨＤのアイコンが表示されている。それらの間には、Ｓパーツとして、論理回路Ｓ１のアイコンが表示されている。論理回路Ｓ１のアイコンは、入力側にはＨパーツＨＡ及びＨパーツＨＢのアイコンが接続され、出力側にはＨパーツＨＣ及びＨパーツＨＤのアイコンが接続されている。
【００８０】
図１１（Ｂ）はプログラム作製画面に表示されるプログラムに基づいて実行される制御の第一の態様の模式図である。
ここで、ベーシックコア２−１は、プログラム作製画面におけるＨパーツＨＡとしてペアリングされた例えば押しボタンＡである機能モジュール３と接続されているものとする。同様に、ベーシックコア２−２は、ＨパーツＨＢとしてペアリングされた例えば押しボタンＢである機能モジュール３と、ベーシックコア２−３は、ＨパーツＨＣとしてペアリングされた例えばＬＥＤライトＣである機能モジュール３と、ベーシックコア２−４は、ＨパーツＨＤとしてペアリングされた例えばＬＥＤライトＤである機能モジュール３と、それぞれ接続されているものとする。
【００８１】
本制御の態様は、ベーシックコア２−１及びベーシックコア２−２から、ベーシックコア２−３に信号が伝達され、ベーシックコア２−３において、ＨパーツＨＡ及びＨパーツＨＢからの信号を例えばＡＮＤゲート回路である論理回路Ｓ１に入力し、その結果の信号を、ベーシックコア２−４に伝達する。
係る例においては、プログラムに基づいて、押しボタンＡと押しボタンＢとが、共に押されている間に、ＬＥＤライトＣとＬＥＤライトＤとが発光することとなる。
この場合において、ベーシックコア２−３は、論理回路Ｓ１の結果の信号を、そのままベーシックコア２−４に伝達して、ベーシックコア２−４に、ＬＥＤライトＣを発光させる制御をさせて良い。
またあるいは、ベーシックコア２−３は、ＬＥＤライトＤをも制御して良い。即ち、論理回路Ｓ１の結果に基づいてＬＥＤライトＤを発光させる信号を、ベーシックコア２−３において生成し、これをベーシックコア２−４に伝達して、ＬＥＤライトＤを発光させても良い。
【００８２】
図１１（Ｃ）はプログラム作製画面に表示されるプログラムに基づいて実行される制御の第二の態様の模式図である。
ここで、各ベーシックコア２と、各Ｈパーツとしてペアリングされた機能モジュール３との接続関係は、図１１（Ｂ）における場合と、同様である。
本制御の態様は、ベーシックコア２−１及びベーシックコア２−２から、ベーシックコア２−３及びベーシックコア２−４にそれぞれ信号が伝達され、ベーシックコア２−３及びベーシックコア２−４において、押しボタンＡ及び押しボタンＢからの信号を例えばＡＮＤゲート回路である論理回路Ｓ１にそれぞれ入力する。
係る例においても、図１１（Ｂ）における場合と同様に、プログラムに基づいて、押しボタンＡと押しボタンＢとが、共に押されている間に、ＬＥＤライトＣ及びＬＥＤライトＤが発光することとなる。
本制御の態様においては、図１１（Ｂ）に示す第一の態様の場合に比較して、ベーシックコア２−４への信号の伝達経路が１段階短くなる。
このことにより、信号伝達に要する時間が減少する為、本制御の態様においては、玩具として良好な速さで動作することとなる。
【００８３】
以上本発明の一実施形態について説明したが、本発明は、上述の実施形態に限定されるものではなく、本発明の目的を達成できる範囲での変形、改良等は本発明に含まれるものである。
【００８４】
例えば、図８に示す実施形態では、機能モジュール３−Ｏ及び機能モジュール３−Ｐとして、押しボタンとブザーが採用されているが、機能モジュール３の発揮する機能は特に上述した実施形態には限定されない。
【００８５】
本発明は、上述した様々な実施形態により実施することが可能であるが、多くの実施形態において、特に子供の教育用の組み立て式玩具に使用するプログラムを作製するのに極めて有用である。
プログラム作製画面に表示されたアイコンを視覚的に確認することができるため、ユーザが子供であっても、安全かつ容易にプログラムを作製することができる。また、自身で作製したプログラムに応じて、実機によって動作させることができるため、子供は飽きることなく、プログラムの作製を楽しむことができる。
【００８６】
このように、子供に楽しみながらプログラムの作製を行わせることで、子供は、一般に触れることが困難であるプログラムについて、慣れ親しむことができるのである。
さらに、ベーシックコア２とユーザ端末１とのペアリングをしておけば、機能モジュール３は自由に着脱が可能であり、その着脱の状態もプログラム作製画面に反映される。従って、子供は、ハードウェアの設計も楽しむことができる。
【００８７】
ここで、本実施形態における入出力情報について、補足する。本実施形態において、各種Ｈパーツや各種Ｓパーツを組み合わせることで、各種アイコンに指定されたプログラムの内容が連続的に実行される。
この夫々のプログラムの入出力情報は、図８に示したような単なるトリガ情報だけでなく、アナログ信号等の多種多様な情報を入出力情報として取り扱うことができる。
即ち、例えば、本実施形態における入出力情報は、温度センサによって取得された情報（例えば、温度が１５度）を、そのままアナログ信号等の情報として出力し、プログラムの作製に用いることができる。そのため、デジタル信号の情報だけでは、実現することのできない複雑な情報処理であっても実現することが可能となる。
【００８８】
また例えば、上述の実施形態では、ユーザ端末１とベーシックコア２のペアリングは、
ＮＦＣ（登録商標）規格に従った方式での近距離無線通信により行っているが、これに限定されない。ペアリングは、近距離無線通信に限らず、いかなる手段によってペアリングを行ってもよい。
さらに言えば、上述の実施形態では、ユーザ端末１で作製したプログラムの実行結果をＢｌｕｅｔｏｏｔｈ（登録商標）等の規格に従った方式で近距離無線通信を利用して送信しているが、特にこれに限定されない。作製したプログラムは、近距離無線通信に限らず、いかなる手段を利用して送信してもよい。
【００８９】
また例えば、上述の本実施形態では、ベーシックコア２の数と機能モジュール３の数をともにｍとして説明を行ったが、特にこれに限定されない。即ち、ベーシックコア２の数と機能モジュール３の数は、同一でも構わないし、また、異なっていても構わない。
つまり、１台のベーシックコア２に対して、ｓ台（ｓは１以上の任意の整数値）の機能モジュール３を接続してもよい。
【００９０】
また例えば、上述した一連の処理は、ハードウェアにより実行させることもできるし、ソフトウェアにより実行させることもできる。
換言すると、図６の機能的構成は例示に過ぎず、特に限定されない。
即ち、上述した一連の処理を全体として実行できる機能が情報処理システムに備えられていれば足り、この機能を実現するためにどのような機能ブロックを用いるのかは特に図４の例に限定されない。また、機能ブロックの存在場所も、図６に特に限定されず、任意でよい。
また、１つの機能ブロックは、ハードウェア単体で構成してもよいし、ソフトウェア単体で構成してもよいし、それらの組み合わせで構成してもよい。
【００９１】
また例えば、一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、コンピュータ等にネットワークや記録媒体からインストールされる。
コンピュータは、専用のハードウェアに組み込まれているコンピュータであっても良い。
また、コンピュータは、各種のプログラムをインストールすることで、各種の機能を実行することが可能なコンピュータ、例えばサーバの他汎用のスマートフォンやパーソナルコンピュータであってもよい。
【００９２】
また例えば、このようなプログラムを含む記録媒体は、ユーザにプログラムを提供するために装置本体とは別に配布される図示せぬリムーバブルメディアにより構成されるだけでなく、装置本体に予め組み込まれた状態でユーザに提供される記録媒体等で構成される。
【００９３】
なお、本明細書において、記録媒体に記録されるプログラムを記述するステップは、その順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的或いは個別に実行される処理をも含むものである。
また、本明細書において、システムの用語は、複数の装置や複数の手段等より構成される全体的な装置を意味するものとする。
【００９４】
以上を換言すると、本発明が適用される情報処理システムは、次のような構成を有する各種各様の実施形態を取ることができる。
即ち、本発明が適用される情報処理システムは、
ユーザの指示により制御プログラム（例えば図６のプログラム格納部５００に格納されたプログラム）の作製を支援するプログラム作製支援装置（例えば、図１のユーザ端末１）と、
他のハードウェアデバイスと通信をする機能と前記制御プログラムに基づいて前記他のハードウェアデバイスを制御する機能を有する１以上の第１ハードウェアデバイス（例えば、図１のベーシックコア２）と、
前記第１ハードウェアデバイスと通信をする機能と所定の機能を発揮する機能を有する前記他のハードウェアデバイスとしての１以上の第２ハードウェアデバイス（例えば、図１の機能モジュール３）とを含む情報処理システムにおいて、
前記プログラム作製支援装置は、
前記制御プログラムの少なくとも一部を前記１以上の第１ハードウェアデバイスのうちの少なくとも１つに送付する制御送付手段（例えば、図６の制御送付部１０４）、
を備える情報処理システムであれば足りる。
これにより、プログラム作成支援装置により作成された制御プログラムに基づいてハードウェアデバイスが動作される際において、プログラム作成支援装置と各ハードウェアデバイスとの間の通信が不要になるため、例えば玩具等として好ましい応答速度での動作が可能になり、かつ、ハードウェアデバイスの実機を自立駆動させることが可能になる。
【符号の説明】
【００９５】
１・・・ユーザ端末、２・・・ベーシックコア、３・・・機能モジュール、２１・・・ＣＰＵ、２７・・・表示部、３０・・・第一近距離無線通信部、３１・・・第二近距離無線通信部、４１・・・ＣＰＵ、４５・・・第一近距離無線通信部、４６・・・第二近距離無線通信部、４７・・・接続部、４８・・・電源部、５１・・・モジュール間通信部、５２・・・モジュール間電力伝達部、６１・・・ＣＰＵ、６７・・・接続部、６８・・・機能ハードウェア、６９・・・電力供給部、７１・・・モジュール間通信部、７２・・・モジュール間電力伝達部、１０１・・・ペアリング部、１０２・・・プログラム作製部、１０３・・・制御送付先決定部、１０４・・・制御送付部、１０５・・・表示制御部、１０６・・・通信制御部、１２１・・・終点部品抽出部、１２２・・・先行部品特定部、１２３・・・送信先変更部、２０１・・・端末通信制御部、２０２・・・プログラム実行部、２０３・・・機能モジュール通信制御部、５００・・・プログラム格納部、６００・・・ＳパーツＤＢ
【図１】
2020095532.tif 000003
【図２】
2020095532.tif 000004
【図３】
2020095532.tif 000005
【図４】
2020095532.tif 000006
【図５】
2020095532.tif 000007
【図６】
2020095532.tif 000008
【図７】
2020095532.tif 000009
【図８】
2020095532.tif 000010
【図９】
2020095532.tif 000011
【図１０】
2020095532.tif 000012
【図１１】
2020095532.tif 000013