(57)【要約】      （修正有）【課題】コンピュータプログラムなどの動作をより簡単に作成し、楽しむことができる装置を提供する。【解決手段】ブロックは、開始端制御ブロック１０２、制御ブロック１０５、１１０及び１１５並びに終端制御ブロック１２０を有する。制御ブロック１０５、１１０及び１１５は、例えば、プログラムの内容を表す命令又は命令を指定する情報を有し、命令又は命令を指定する情報を記憶する不揮発性記憶媒体を備える。【選択図】図２
2019016189.tif 000002
【特許請求の範囲】
【請求項１】
互いに通信可能に接続され、一連の動作の部分を表す命令及び／又は前記命令に関する情報をそれぞれが記憶する一又は二以上の物体と、
前記一又は二以上の物体の少なくとも一つに通信可能に接続され、前記一又は二以上の物体の前記接続の順序を特定する第１の物体とを備えた装置。
【請求項２】
請求項１に記載の装置において、
前記第１の物体は、前記一又は二以上の物体の前記接続の順序と、前記一又は二以上の物体が記憶する前記命令及び／又は前記命令に関する情報とを関連付けることによって、前記一連の動作を特定する、装置。
【請求項３】
請求項２に記載の装置において、
前記一又は二以上の物体において前記命令は、前記一又は二以上の物体に外部から認識可能なしるしに関連付けされている、装置。
【請求項４】
請求項１ないし３のいずれか一つに記載の装置において、
前記第１の物体は、前記第１の物体がユーザからの入力を受けたこと及び／又は第２の物体が前記一又は二以上の物体のいずれか一つに接続されたことを検出したことに応じて、前記接続の順序の特定を開始する、装置。
【請求項５】
請求項１ないし４のいずれか一つに記載の装置において、
前記第１の物体は、前記一連の動作又は前記動作に関する情報を外部の装置に送信する、又は、前記第１の物体、前記第２の物体及び前記一又は二以上の物体の少なくとも一つは、前記一連の動作を実行する、装置。
【請求項６】
請求項１ないし５のいずれか一つに記載の装置において、
前記第１の物体は、前記接続の順序の特定を周期的に行う、装置。
【請求項７】
互いに通信可能に接続されている一又は二以上の物体であって、一連の動作の内容の部分を表す命令及び／又は前記命令に関する情報をそれぞれが記憶する一又は二以上の物体の少なくとも一つに通信可能に接続され、前記一又は二以上の物体の前記接続の順序を特定する装置。
【請求項８】
互いに通信可能に接続されている一又は二以上の物体であって、一連の動作の内容の部分を表す命令及び／又は前記命令に関する情報をそれぞれが記憶する一又は二以上の物体の少なくとも一つに通信可能に接続されている第１の物体が、前記一又は二以上の物体の前記接続の順序を特定するためのコンピュータプログラム。
【請求項９】
互いに通信可能に接続されている一又は二以上の物体であって、一連の動作の内容の部分を表す命令及び／又は前記命令に関する情報をそれぞれが記憶する一又は二以上の物体の少なくとも一つに通信可能に接続されている第１の物体が、前記一又は二以上の物体の前記接続の順序を特定するステップ、を含む方法。
【請求項１０】
請求項８に記載のコンピュータプログラムを記憶した記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、物体の接続の順序を動作の順序として特定する装置に関する。
【背景技術】
【０００２】
特許文献１〜４に記載されているように、ビギナーがより簡単にコンピュータプログラムを学べる技術として物理ブロックを用いたコンピュータプログラム生成システムが知られている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許第３０５２５２４号公報
【特許文献２】特許第３０２４３３５号公報
【特許文献３】特許第３０４９９４５号公報
【特許文献４】実用新案登録第３２０６５８６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
コンピュータプログラムなどの動作をより簡単に作成し、楽しむことが望まれている。
【課題を解決するための手段】
【０００５】
各ブロックが有する情報を接続の順に取得する装置。
【０００６】
本発明の実施例による装置は、互いに通信可能に接続され、一連の動作の内容の部分を表す命令及び／又は前記命令に関する情報をそれぞれが記憶する一又は二以上の物体と、前記一又は二以上の物体の少なくとも一つに通信可能に接続され、前記一又は二以上の物体の前記接続の順序を特定する第１の物体とを備えることができる。
【０００７】
本発明の実施例による装置は、互いに通信可能に接続されている一又は二以上の物体であって、一連の動作の内容の部分を表す命令及び／又は前記命令に関する情報をそれぞれが記憶する一又は二以上の物体の少なくとも一つに通信可能に接続され、前記一又は二以上の物体の前記接続の順序を特定することができる。
【０００８】
本発明の実施例によるコンピュータプログラムは、互いに通信可能に接続されている一又は二以上の物体であって、一連の動作の内容の部分を表す命令及び／又は前記命令に関する情報をそれぞれが記憶する一又は二以上の物体の少なくとも一つに通信可能に接続されている第１の物体が、前記一又は二以上の物体の前記接続の順序を特定するために用いることができる。
【０００９】
本発明の実施例による方法は、互いに通信可能に接続されている一又は二以上の物体であって、一連の動作の内容の部分を表す命令及び／又は前記命令に関する情報をそれぞれが記憶する一又は二以上の物体の少なくとも一つに通信可能に接続されている第１の物体が、前記一又は二以上の物体の前記接続の順序を特定するステップを含むことができる。
【図面の簡単な説明】
【００１０】
【図１】図１は、本発明の実施例による制御ブロックの実施例を示す。
【図２】図２は、制御ブロックを備えたシステムを示す。
【図３】図３は、ブロックが接続されている状態の第１の実施例の模式図を示す。
【図４】図４は、図３に示した実施例の処理フローを示す。
【図５】図５は、ブロックが接続されている状態の第２の実施例の模式図を示す。
【図６】図６は、図５に示した実施例の処理フローを示す。
【図７】図７は、図５に示した実施例の変形例による処理フローを示す。
【発明を実施するための形態】
【００１１】
図１は、本発明の実施例による制御ブロックの実施例を示す。ブロックは、開始端制御ブロック１０２、制御ブロック１０５、１１０及び１１５、及び、終端制御ブロック１２０を有する。制御ブロック１０５、１１０及び１１５は、例えば、プログラムの内容を表す命令又は命令を指定する情報を有する。制御ブロック１０５、１１０及び１１５は、命令又は命令を指定する情報を記憶する不揮発性記憶媒体を備える。
【００１２】
ブロック１０２、１０５、１１０、１１５及び１２０は、例えば、立方体の形状とすることができる。立方体の形状は、例示であり、ブロックの形状は、直方体、球体、三角柱、棒などの幾何学的形状であってもよい。さらに、ブロックの形状は、幾何学的形状ではない動物などのぬいぐるみや、自動車やロボットのような形態を模した形状であってもよい。言い換えると、ブロックは、物体として定義することもできる。開始端制御ブロック１０２、制御ブロック１０５、１１０及び１１５、及び、終端制御ブロック１２０は、有線を介して互いに接続することができる。有線は、例えば、シリアル接続、パラレル接続、USBなどの有線接続手段によって実現される。また、接続は無線で実現されてもよい。言い換えると、各ブロックは、互いに通信できればよい。
【００１３】
図１において、制御ブロック１０５、１１０及び１１５それぞれは、プログラムの内容を表す命令を有している。制御ブロック１０５、１１０及び１１５は、それぞれ、「↑」（上（前）に進む）、「→」（右に曲がる）及び「↑」（上（前）に進む）命令を有している。制御ブロック１０５、１１０及び１１５は、この順序にて数珠つなぎで物理的に接続される。これにより、制御ブロック１０５、１１０及び１１５は、互いに電気的に接続され、互いに通信を行うことができる。本実施例において、制御ブロック１０５、１１０及び１１５において、ブロック外部から認識可能なしるし「↑」、「→」及び「↑」は、それぞれのブロックが記憶している命令と関連付けされている。また、認識には、視覚的認識が含まれており、さらに、触覚的認識や、聴覚的認識、嗅覚的認識などが含まれていてもよい。
【００１４】
開始端制御ブロック１０２は、制御ブロックの一つであるブロック１０５に物理的に接続される。終端制御ブロック１２０は、制御ブロックの一つであるブロック１１５に物理的に接続される。これにより、開始端制御ブロック１０２は、制御ブロック１０５、１１０及び１１５を介して終端制御ブロック１２０に電気的に接続することができる。したがって、開始端制御ブロック１０２、制御ブロック１０５、１１０及び１１５、及び、終端制御ブロック１２０は、互いに通信可能となる。
【００１５】
開始端制御ブロック１０２及び終端制御ブロック１２０が電気的に接続されたことに応じて、開始端制御ブロック１０２及び／又は終端制御ブロック１２０は、それらブロック１０２及び１２０に挟まれている制御ブロック１０５、１１０及び１１５が有する命令及びそれら命令を実行する順序を収集する。命令及び命令の順序の収集の詳細については後述する。順序は、例えば、ブロックの接続順序とすることができる。図１の例では、制御ブロック１０５が記憶する命令が１番目、制御ブロック１１０が記憶する命令が２番目及び制御ブロック１１５が記憶する命令が３番目に実行される順序とすることができる。
【００１６】
図２は、制御ブロックを備えたシステムを示す。複数の制御ブロック１０２、１０５、１１０、１１５及び１２５、及び、コンピュータ装置１５０を備えている。
【００１７】
開始端制御ブロック１０２及び／又は終端制御ブロック１２０は、命令を収集すると、収集した命令をコンピュータ装置１５０に有線又は無線を介して送信する。これにより、ユーザは、一又は二以上の命令からなるプログラム作成が終了したことを、ブロックに設けるボタンを用いた明示的な提示などを行うことなく、開始端制御ブロック１０２及び終端制御ブロック１２０の接続によって得ることができる。
【００１８】
他の実施例において、開始端制御ブロック１０２及び終端制御ブロック１２０のいずれか一方のみが準備されるだけでもよい。この場合、開始端制御ブロック１０２及び終端制御ブロック１２０の代わりに、命令の収集を行う１つのデータ収集ブロックがあればよい。この場合、データ収集ブロックは、ボタンや他の入力手段を有しており、入力手段を介してユーザから入力を受けたことに応じて、収集した命令をコンピュータ装置１５０に有線又は無線を介して送信することができる。
【００１９】
コンピュータ装置１５０は、表示装置１５２を有し、受信した命令に基づいて処理を実行する。本実施例では、例えば、表示装置１５２は、マス目を有するマップ１５３及びキャラクタ１５４を表示する。コンピュータ装置１５０は、命令に基づいて、表示装置１５２のキャラクタ１５４を動かす。例えば、キャラクタ１５４は、制御ブロック１０５の命令「↑」に基づいて、スタートのマス１５５から１６０に移動し、制御ブロック１１０の命令「→」に基づいて、マス１６０から１６５に移動し、さらに、制御ブロック１１５の命令「↑」に基づいて、マス１６５から１７０に移動する。これにより、子供や、初めてプログラムを作成する人であっても、簡単にコンピュータプログラミングの作成と実行が体験できる。
【００２０】
ここで、コンピュータプログラムにおいてプログラムの作成及び実行とは、プログラムステップの作成とプログラムステップの実行における内部レジスタ、メモリの演算結果であったり、外部I/Oの動作結果であったりする。言い換えるとプログラムステップの実行によりそのプログラムステップの実行結果が内部レジスタ、メモリ、外部I/Oに作用して一連の目的を達成する。また、プログラムステップの作成において各ステップの実行結果を確認することが重要であり、本来期待するプログラムの動作と違う場合、プログラムの構成、内容を確認し、正しいプログラムステップに修正する作業が重要となる。
本発明において、上記のプログラミングの概念を教育するに当たり、動作の意味を持たせた制御ブロックの一連の並びを作成し、動作対象物に制御ブロックで定義した一連の動作を実行させることや、動作対象物の動作の確認において期待する動作と違う場合には制御ブロックの並びを変えることにより期待した動作を実現することができる。このことは、プログラミングにおけるプログラムステップの作成とプログラムステップの実行検証にあたり、実際のプログラミング言語を使わなくてもブロックを並べる遊びの中で楽しくプログラミング概念の教育となる効果が期待される。
【００２１】
上記の実施例において、開始端制御ブロック１０２及び終端制御ブロック１２０の両方を準備する場合、開始端制御ブロック１０２（又は終端制御ブロック１２０）が終端制御ブロック１２０（又は開始端制御ブロック１０２）に電気的に接続されたことを検出したことに応じて、開始端制御ブロック１０２及び／又は終端制御ブロック１２０は、命令の収集及び／又はコンピュータ装置１５０への命令の送信などを実行することができる。この場合、開始端制御ブロック１０２及び終端制御ブロック１２０の間の電気的接続は、開始端制御ブロック１０２及び／又は終端制御ブロック１２０が命令の収集などの処理を開始するトリガーとなる。
【００２２】
他の実施例において、開始端制御ブロック１０２（又は終端制御ブロック１２０）は、命令を周期的に各制御ブロックから収集することができる。開始端制御ブロック１０２（又は終端制御ブロック１２０）が終端制御ブロック１２０（又は開始端制御ブロック１０２）に電気的に接続されたことを検出したことに応じて、開始端制御ブロック１０２及び／又は終端制御ブロック１２０は、収集した命令をコンピュータ装置１５０へ送信することができる。
【００２３】
他の実施例において、開始端制御ブロック１０２及び終端制御ブロック１２０のいずれか一方のみが準備される。すなわち、開始端制御ブロック１０２及び終端制御ブロック１２０の代わりに、データ収集ブロックが準備される。この場合、ユーザによる入力などが命令の収集などの処理を開始するトリガーとなる。一実施例において、データ収集ブロックは、ユーザによる入力を受ける入力手段を有する。入力手段は、ボタン、液晶タッチパネルなどのユーザの入力を直接的に受ける手段とすることができる。一実施例において、データ収集ブロックは、ユーザによる入力を無線又は有線を介して外部装置（例えば、コンピュータ装置１５０や他の装置）から受ける入力手段を有し外部装置からの入力をトリガとしてデータ収集を行ってもよい。したがって、データ収集ブロックは、入力手段がユーザからの入力を受けたことに応じて、各制御ブロックから命令を収集する及び／又はその命令を送信することができる。
【００２４】
他の実施例において、データ収集ブロックは、ユーザからの入力等を受けることなく周期的（例えば、１秒、５秒、１０秒など）に各制御ブロックから命令を収集してもよい。この場合、データ収集ブロックは、入力手段がユーザからの入力を受けたことに応じて、収集した命令の送信を行うことができる。
【００２５】
他の実施例において、開始端制御ブロック１０２及び／又は終端制御ブロック１２０は、開始端制御ブロック１０２及び終端制御ブロック１２０間の上記電気的接続を検出し、さらに、ユーザによる入力を受けたことに応じて、命令の収集などの処理を開始してもよい。
【００２６】
他の実施例において、各ブロックの接続は無線で実現されてもよい。制御ブロック１０５、１１０及び１１５は、リーダが無線で読取可能な記憶媒体を有していてもよい。開始端制御ブロック１０２及び終端制御ブロック１２０のいずれか一方は、リーダを有しており、制御ブロック１０５、１１０及び１１５と通信が可能である。これにより、リーダが記憶媒体から情報を読み取ることができる。例えば、ユーザが、リーダを有するブロックを、図１及び２に示したように並んでいる制御ブロック１０５、１１０及び１１５に沿って動かすことによって、制御ブロックの情報を取得することができる。一実施例において、リーダが無線で読取可能な記憶媒体としてRFIDタグ、リーダとしてRFIDリーダなどが用いられ得る。
【００２７】
制御ブロック１０５、１１０及び１１５は、物理的な形状に基づいてリーダを有するブロックを受け入れるように構成されていてもよい。例えば、制御ブロック１０５、１１０及び１１５それぞれにおいて、それらの上面にレール形状が施されており、制御ブロック１０５、１１０及び１１５を並べると、それらの上面に１つのレールが形成される。そのレールは、リーダを有するブロックの少なくとも一部の形状と適合するように構成されている。これにより、ユーザは、リーダを有するブロックを制御ブロック１０５、１１０及び１１５に沿って、それらブロックの上面をより的確に動かすことができる。
【００２８】
上記実施例において、命令の収集は、命令自体の収集、命令を実行すべき順序、命令を識別する識別子、及び、各制御ブロックの識別子などのような命令や制御ブロックに関連する情報の少なくとも一つを含むことができる。
【００２９】
上述のコンピュータ装置１５０が命令に基づいてキャラクタを動作させる例は、一例であり、本発明の実施例は、これに限定されない。例えば、キャラクタは、乗り物などの物体であってもよい。他の実施例において、コンピュータ装置１５０の代わりに動作可能な物体であってもよい。例えば、終端制御ブロック１２０から命令を受信する物体は、車輪などの移動手段を持った物体とすることができる。他の実施例において、データ収集ブロック、開始端制御ブロック１０２及び／又は終端制御ブロック１２０は、命令を送信しなくてもよい。例えば、ブロックの少なくとも一つそれ自体（例えば、ブロック１０２〜１２０のいずれのブロックでもよい）が命令に基づいて動作（例えば、動く、光る、音を出すなど）するように構成されていてもよい。他の実施例において、全てのブロック（例えば、ブロック１０２〜１２０の全てのブロック）が命令に基づいて動作するように構成されていてもよい。
【００３０】
上記の実施例において、制御ブロック１０５、１１０及び１１５が有する命令（制御ブロック１０５が有する「上」又は「前」に進む命令など）は、例示であり、それらに限定されない。制御ブロック１０５、１１０及び１１５が有する命令は、視覚、聴覚、触覚、味覚及び嗅覚などの人間が感知できる命令とすることができる。例えば、視覚の命令は、移動、光、色などに基づくことができる。聴覚の命令は、音に基づくことができる。触覚の命令は、移動や振動などの接触による感知に基づくことができる。
【００３１】
図３は、ブロックが接続されている状態の第１の実施例の模式図を示す。本実施例において、装置全体３００は、５つのブロックを含んでおり、データ収集ブロック３０２、第１の制御ブロック３０４、第２の制御ブロック３０６、第３の制御ブロック３０８及び第４の制御ブロック３１０を含んでいる。当業者であれば理解されるように、制御ブロックの数は例示であり、４より少なくてもよい、また、４より多くてもよい。
【００３２】
データ収集ブロック３０２は、制御部３２２、外部入出力インタフェース３２４、送信部３２６、接続検出部３２８、受信部３３０及び固有情報記憶部３３２を備えている。第１の制御ブロック３０４、第２の制御ブロック３０６、第３の制御ブロック３０８及び第４の制御ブロック３１０は、制御部３４２、接続通知部３４４、送信部３４６、接続検出部３４８、受信部３５０、固有情報記憶部３５２及び送信先切替部３５４を備えている。第１の制御ブロック３０４、第２の制御ブロック３０６、第３の制御ブロック３０８及び第４の制御ブロック３１０は、ほぼ同じ構成とすることができる。
【００３３】
データ収集ブロック３０２の制御部３２２及び制御ブロック３０４〜３１０の制御部３４２は、プロセッサ及びメモリを少なくとも有し、当該制御部を備えたブロックそれぞれを制御する。データ収集ブロック３０２の外部入出力インタフェース３２４は、コンピュータ装置１５０のような外部装置と通信を行うためのインタフェースである。データ収集ブロック３０２の送信部３２６及び受信部３３０、及び、各制御ブロック３０４〜３１０の制御部３４２の送信部３４６及び受信部３５０は、各ブロック間の通信を可能にする。データ収集ブロック３０２の固有情報記憶部３３２及び各制御ブロックの固有情報記憶部３５２は、ブロックの識別子や、一連の所定の動作の一部を定義し、ブロックに関連付けされている命令、ブロックを制御させるための命令（コンピュータプログラム）などを記憶している。
【００３４】
データ収集ブロック３０２の接続検出部３２８は、制御ブロックが接続されたことを検出する。一実施例において、データ収集ブロック３０２は、接続検出部３２８に接続されている凸型コネクタを有し、各制御ブロックは、接続通知部３４４に接続されている凹型コネクタを有する。データ収集ブロック３０２の凸型コネクタが第１の制御ブロック３０４の凹型コネクタに接続されると、第１の制御ブロック３０４の接続通知部３４４は、データ収集ブロック３０２が第１の制御ブロック３０４に接続されたことをデータ収集ブロック３０２に通知し、データ収集ブロック３０２の接続検出部３２８は、第１の制御ブロック３０４がデータ収集ブロック３０２に接続されたことを検出する。
【００３５】
各制御ブロックは、例えば凸型コネクタを有する接続検出部３４８を備えており、凸型コネクタを他の制御ブロックの接続通知部３４４に接続されている凹型コネクタに接続することができる。これにより、例えば、第１の制御ブロック３０４の接続検出部３４８は、第２の制御ブロック３０６の接続通知部３４４を用いて、これらのブロックが接続されていることを検出することができる。各制御ブロックは、送信先切替部３５４を備える。送信先切替部３５４は、接続検出部３４８に接続されている。送信先切替部３４８は、接続検出部３４８が他の制御ブロックへの接続を検出したことに応じて、送信部３４６の送信先を切り替える。例えば、各制御ブロックが左側（図３に関し、制御ブロックにおいてデータ収集ブロック３０２へ近い側）に凹型コネクタを有し、右側（図３に関し、制御ブロックにおいてデータ収集ブロック３０２から遠い側）に凸型コネクタを有する場合、各制御ブロックの送信先切替部３５４は、送信部３４６の送信を凸型コネクタ又は凹型コネクタを介して行うことを切り替えることができる。すなわち、第１の制御ブロック３０４は、データ収集ブロック３０２へデータを送信するか、又は、第２の制御ブロック３０６へデータを送信するか切り替えることができる。具体的には、第１の制御ブロック３０４は、接続検出部３４８が接続を検出したことに応じて、送信先切替部３５４を用いて第２の制御ブロック３０６へデータを送信し、接続を検出しないことに応じて、データ収集ブロック３０２へデータを送信する。本実施例において、左側の凹型コネクタへの送信先の切替は、第４の制御ブロック３１０のみが行う。第４の制御ブロック３１０からデータ収集ブロック３０２へのデータを送信する線を、各ブロックの接続により形成することによって、第４の制御ブロック３１０の送信部３４６は、他の制御ブロックそれぞれの送信部を用いることなく、情報をデータ収集ブロック３０２に送信することができる。これにより、送信部の部品を削減することができる。
【００３６】
図４は、図３に示した実施例の処理フローを示す。まず、データ収集ブロック３０２は、各制御ブロックが記憶する情報を収集するための要求を第１の制御ブロック３０４に送信する（ステップ４０５）。第１の制御ブロック３０４は、第２の制御ブロック３０６に接続されていることに応じて、制御部３４２を用いて固有情報記憶部３５２から第１の情報を取得し、要求及び第１の情報を第２の制御ブロック３０６に送信する（ステップ４１０）。第１の情報は、第１の制御ブロック３０４の識別子、及び、第１の制御ブロック３０４に関連付けされている命令の少なくとも一方を含むことができる。第２の制御ブロック３０６は、固有情報記憶部３５２から第２の情報を取得する。これにより、第２の制御ブロック３０６は、第１の制御ブロック３０４から受信した要求及び第１の情報と第２の情報とを取得することができる。第２の制御ブロック３０６は、要求、第１の情報及び第２の情報を第３の制御ブロック３０８に送信する（ステップ４１５）。
【００３７】
第３の制御ブロック３０８は、固有情報記憶部３５２から第３の情報を取得し、要求、第１の情報、第２の情報及び第３の情報を第４の制御ブロック３１０に送信する（ステップ４２０）。第４の制御ブロック３１０は、固有情報記憶部３５２から第４の情報を取得する。また、第４の制御ブロック３１０は、例えば、右側の凸型コネクタ（図３に関し、制御ブロックにおいてデータ収集ブロック３０２から遠い側）の接続が無いことを検出する。第４の制御ブロック３１０は、さらなる接続が無いことを検出したことに応じて、データの送信先を左側の凹型コネクタ（図３に関し、制御ブロックにおいてデータ収集ブロック３０２へ近い側）に決定する。第４の制御ブロック３１０は、要求、第１の情報、第２の情報、第３の情報及び第４の情報を第３の制御ブロック３０８、第２の制御ブロック３０６及び第１の制御ブロック３０４を介してデータ収集ブロック３０２に送信する（ステップ４２５）。各制御ブロックが、それ自体のブロックに関連付けされている第１の情報、第２の情報、第３の情報及び第４の情報を順に組み合わせることで、データ収集ブロック３０２は、実行順序が特定されている命令を取得することができる。一実施例において、第１の情報、第２の情報、第３の情報及び第４の情報は、それぞれに関連付けされているブロックの識別子であってもよい。これにより、データ収集ブロック３０２は、それら識別子の並びにより、制御ブロックの接続順序を取得することができる。
【００３８】
上記のように各制御ブロックの接続検出部３４８は次の制御ブロックの接続通知部３４４に接続されることにより次の制御ブロックの存在を検出できるが、接続通知部３４４が接続されていない制御ブロックは最端の制御ブロックと判定されその制御ブロックで受信データが送信部を介して折り返しされデータ収集ブロック３２２へ送信される。
【００３９】
他の実施例において、データ収集ブロック３０２は、制御ブロックにその制御ブロックを制御するための命令を送信することができる。例えば、ステップ４２５の後、データ収集ブロック３０２は、各制御ブロックの識別子を維持することができる。一実施例において、データ収集ブロック３０２は、第３の制御ブロックの識別子を含む第３の情報に基づいて、第１の制御ブロック３０４及び第２の制御ブロック３０６を介して第３の制御ブロック３０８に命令を送信することができる（ステップ４５０、４５５、４６０）。命令は、第３の制御ブロック３０８を動作させるための命令であってもよい。この時各制御ブロックは受信した命令が当該ブロックの命令でなければそのまま送信部に渡し、次の制御ブロックへ送信し、当該ブロックへの命令であれば処理を行う。例えば、データ収集ブロック３０２は、第３の制御ブロック３０８に光を発生させる命令を送信し、この命令に基づいて第３の制御ブロック３０８が発光する。例えば、データ収集ブロック３０２が第３の制御ブロック３０８から第３の情報を取得した後に第３の制御ブロック３０８に光を発生させる命令を送信する。これにより、ユーザは、データ収集ブロック３０２が第３の制御ブロック３０８が記憶している情報を取得できたことを知ることができる。
【００４０】
他の実施例において、データ収集ブロック３０２は、任意に発生した制御ブロックの状態の変化情報を取得することができる。例えば、第２の制御ブロック３０６は、状態が変化したことを示す情報及び変化した第２の情報を取得し、第３の制御ブロック３０８に送信する（ステップ４６５）。第３の制御ブロック３０８は、受信した情報を第４の制御ブロック３１０に送信する（ステップ４７０）。第４の制御ブロック３１０は、受信した情報を、第３の制御ブロック３０８、第２の制御ブロック３０６及び第１の制御ブロック３０４を介してデータ収集ブロック３０２に送信する（ステップ４７５）。データ収集ブロック３０２は、第２の制御ブロック３０６において状態が変化したことを示す情報及び変化した第２の情報を取得することができる。例えば、制御ブロックから収集される情報がコンピュータプログラムであり、第２の情報がプログラムにおけるループ及びループ回数を示す場合、データ収集ブロック３０２は、第２の制御ブロック３０６において変更されたループ回数などを収集することができる。この場合、第２の制御ブロック３０６は、当該ブロックの状態変化を表す情報の入力を受け付けるための入力手段を有することができる。
【００４１】
上記の例では各ブロックの状態変化が単発で起こる場合の例であるが、複数のブロックから同時に状態変化が発生する場合を考慮するとデータ収集ブロックから定期的にポーリング命令を送り、各制御ブロックはポーリング命令を受信後、状態変化の情報をポーリング命令に付加して次のブロックへ送信することにより状態変化の情報をデータ収集ブロックへ届けることができる。
【００４２】
図５は、ブロックが接続されている状態の第２の実施例の模式図を示す。本実施例において、装置全体５００は、５つのブロックを含んでおり、データ収集ブロック５０２、第１の制御ブロック５０４、第２の制御ブロック５０６、第３の制御ブロック５０８及び第４の制御ブロック５１０を含んでいる。当業者であれば理解されるように、制御ブロックの数は例示であり、４より少なくてもよい、また、４より多くてもよい。
【００４３】
データ収集ブロック５０２は、制御部５２２、外部入出力インタフェース５２４、送信部５２６、接続検出部５２８、受信部５３０及び固有情報記憶部５３２を備えている。第１の制御ブロック５０４、第２の制御ブロック５０６、第３の制御ブロック５０８及び第４の制御ブロック５１０は、制御部５４２、接続通知部５４４、第１の送信部５４６、接続検出部５４８、第１の受信部５５０、固有情報記憶部５５２、第２の送信部５５６及び第２の受信部５５４を備えている。第１の制御ブロック５０４、第２の制御ブロック５０６、第３の制御ブロック５０８及び第４の制御ブロック５１０は、ほぼ同じ構成とすることができる。
【００４４】
本実施例の構成は、図３で示した第１の実施例とほぼ同等である。しかしながら、本実施例では、各制御ブロックは、送信先切替部３５４を有していない、また、第１の実施例より一組多い送信部及び受信部を有する。本実施例において、各制御ブロックは、第１の送信部５４６、第１の受信部５５０、第２の送信部５５６及び第２の受信部５５４を有し、制御ブロックの第１の送信部５４６及び第２の受信部５５４は、それぞれ、他の制御ブロックの第１の受信部５５０及び第２の送信部５５６に接続することができる。また、制御ブロックの第１の受信部５５０及び第２の送信部５５６は、それぞれ、データ収集ブロック５０２の送信部５２６及び受信部５３０にも接続することができる。
【００４５】
図６は、図５に示した実施例の処理フローを示す。まず、データ収集ブロック５０２は、各制御ブロックが記憶する情報を収集するための要求を第１の制御ブロック５０４に送信する（ステップ６０５）。第１の制御ブロック５０４は、所定の時間（Tx）の間待機した後、制御部５４２を用いて固有情報記憶部５５２から第１の情報を取得し、第１の情報をデータ収集ブロック５０２に送信する（ステップ５１０）。第１の制御ブロック５０４は、要求を第２の制御ブロック５０６に送信する（ステップ５１５）。第２の制御ブロック５０６は、要求を受信した後、第１の制御ブロック５０４と同様に、所定の時間（Tx）の間待機した後、自身の記憶部から第２の情報を取得し、データ収集ブロック５０２に向けて送信し（ステップ５２０及び５２５）、要求を第３の制御ブロック５０８に送信する（ステップ５３０）。第３の制御ブロック５０８は、要求を受信した後、第１の制御ブロック５０４と同様に、所定の時間（Tx）の間待機した後、自身の記憶部から第３の情報を取得し、データ収集ブロック５０２に向けて送信し（ステップ５３５、５４０及び５４５）、要求を第４の制御ブロック５１０に送信する（ステップ５５０）。第４の制御ブロック５１０は、要求を受信した後、第１の制御ブロック５０４と同様に、所定の時間（Tx）の間待機した後、自身の記憶部から第４の情報を取得し、データ収集ブロック５０２に向けて送信する（ステップ５６５、５７０、５７５及び５８０）。
【００４６】
データ収集ブロック５０２は、第１〜４の情報を受信した時間順に並び替える。これらの情報が制御ブロックの識別子を含んでいる場合、データ収集ブロック５０２は、各制御ブロックの接続の順序を特定することができる。これらの情報が例えばコンピュータプログラムの命令の一部を含んでいる場合、それら命令の一部を接続の順序で組み合わせることによって、一連の命令を作成することができる。
【００４７】
一実施例において、データ収集ブロック５０２は、データを受信する最大待ち時間を有することができる。最大待ち時間は、制御ブロックの最大接続数に基づくことができる。これにより、データ収集ブロック５０２は、最大待ち時間を設定することにより、情報をより適格に収集することができる。
【００４８】
図７は、図５に示した実施例の変形例による処理フローを示す。データ収集ブロック５２２は、第１の制御ブロック５０４、第２の制御ブロック５０６及び第３の制御ブロック５０８を介して第４の制御ブロック５１０に要求を送信することができる（ステップ７０５、７１０、７２０及び７２５）。一実施例において、情報の送信は、各制御ブロックにおける受信部及び送信部を用いて実行されてもよい。他の実施例において、要求は信号として送信されてもよい。この場合、各ブロックは、接続により信号線を形成するように構成されていてもよい。データ収集ブロック５２２は、信号を各制御ブロック内の当該信号線を介して第４の制御ブロック５１０に送信することができる。これにより、各制御ブロックにおける１組の受信部及び送信部を排除することができる。
【００４９】
各制御ブロックは、接続検出部５４８を用いて、さらに制御ブロックが接続されているか否かを判定することができる。本実施例の第１、第２及び第３の制御ブロック５０２、５０６及び５０８において、各接続検出部５４８は、さらに制御ブロックが接続されていることを検出する。第４の制御ブロック５１０において、接続検出部５４８は、さらに制御ブロックが接続されていないことを検出する。これにより、第１、第２及び第３の制御ブロック５０２、５０６及び５０８は、接続先である制御ブロックに要求を送信し、第４の制御ブロック５１０は、さらなる接続先が無いことから、送信先をデータ収集ブロック５０２に向けることを決定する。第４の制御ブロック５１０は、自身の記憶装置から第４の情報を取得し、要求及び第４の情報を第４の制御ブロック５０８に送信する（ステップ７３０）。第３の制御ブロック５０８は、第２の制御ブロック５０６は、第１の制御ブロック５０４は、それぞれ、自己の記憶装置から第３、２及び１の情報を取得するとともに、それらを順に組み合わせて、組み合わせた情報及び要求をデータ収集ブロック５０２に向けて順に送信する（ステップ７３５、７４０、７４５）。これにより、データ収集ブロック５０２は、各制御ブロックが有する情報を接続の順に組み合わせることができる。
【００５０】
上記の実施例で説明した開始端制御ブロック１０２及び終端制御ブロック１２０は、それぞれ、制御ブロックが有する命令の開始及び終了を意味する。したがって、所定の一連の命令において開始端である場合は、他の一連の命令において終端とすることができ、又は、所定の一連の命令において終端である場合は、他の一連の命令において開始端とすることができる。さらに他の実施例において、所定の一連の命令における開始端制御ブロック１０２又は終端制御ブロック１２０は、他の一連の命令における制御ブロックとすることができる。
【００５１】
上記の実施例において、各制御ブロックは、コンピュータプログラムの命令の代わりに命令に関する情報を記憶していてもよい。この場合、データ収集ブロックは、命令に関する情報を取得した後、当該情報を命令に変換することができる。
【００５２】
上記の実施例において、各制御ブロックが記憶する情報は、コンピュータプログラムの命令でなくてもよい。例えば、記憶されている情報は、外部装置などで動作する内容の一部を表す情報とすることができる。例えば、動作内容が動画の再生である場合、動作内容の一部に対応する情報は、一又は二以上の静止画の情報とすることができ、動作内容が音の再生である場合、動作内容の一部に対応する情報は、一又は二以上の音の情報とすることができる。このように、動作内容に応じて、各制御ブロックに記憶されるべき情報は変化させることができる。
【００５３】
上記実施例において、終端制御ブロック１２０が命令の取得や、通信などの制御処理を行っているが、開始端制御ブロック１０２が終端制御ブロック１２０の代わりにこれらの処理を実行してもよい。
【００５４】
上記の実施例において、ハードウエアで実現するよう説明されたいくつかの要素の一部又は全ては、ソフトウエアで実現することができ、そして、ソフトウエアで実現するよう説明されたいくつかの要素の一部又は全ては、ハードウエアで実現することができることは理解されるであろう。
【００５５】
以上に説明した処理又は処理順序において、ある処理において、その処理ではまだ利用することができないはずのデータを利用しているなどの処理又は処理順序上の矛盾が生じない限りにおいて、処理又は処理順序を自由に変更することができる。
【００５６】
以上に説明してきた各実施例に関し、各実施例の一部又は全部を組み合わせて一つの実施例として実現されてもよい。
【００５７】
以上に説明してきた各実施例は、本発明を説明するための例示であり、本発明はこれらの実施例に限定されるものではない。本発明は、その要旨を逸脱しない限り、種々の形態で実施することができる。
【００５８】
請求項の記載における「装置」は、プログラミング教育用玩具とすることができる。プログラミング教育用玩具において、子供は、上記の各実施例で説明したブロックなどを用いてプログラミングの概念を学ぶことができる。また、大人は、プログラミング教育用玩具を用いて、プログラミングの概念をより簡単に子供に教えることができる。
【符号の説明】
【００５９】
１０２  開始端制御ブロック
１０５、１１０、１１５  制御ブロック
１２０  終端制御ブロック
１５０  コンピュータ装置
３０２、５０２  データ収集ブロック
３０４、５０４  第１の制御ブロック
３０６、５０６  第２の制御ブロック
３０８、５０８  第３の制御ブロック
３１０、５１０  第４の制御ブロック
データ収集ブロックの構成
３２２、５２２  制御部
３２４、５２４  外部入出力インタフェース
３２６、５２６  送信部
３２８、５２８  接続検出部
３３０、５３０  受信部
３３２、５３２  固有情報記憶部
制御ブロックの構成
３４２、５４２  制御部
３４４、５４４  接続通知部
３４６  送信部
３４８、５４８  接続検出部
３５０  受信部
３５２、５５２  固有情報記憶部
３５４  送信先切替部
５４６  第１の送信部
５５０  第１の受信部
５５４  第２の受信部
５５６  第２の送信部
【図１】
2019016189.tif 000003
【図２】
2019016189.tif 000004
【図３】
2019016189.tif 000005
【図４】
2019016189.tif 000006
【図５】
2019016189.tif 000007
【図６】
2019016189.tif 000008
【図７】
2019016189.tif 000009