(57)【要約】【課題】プログラムを体感可能な学習システムを提供する。【解決手段】学習システム１００は、貨車１０と、荷物操作ユニット２０と、荷物３０と、機関車４０と、レール５０と、信号ユニット６０と、ポイントユニット７０と、荷物置場８０と、入力ユニット９０と、出力ユニット１１０とを備える。貨車１０、荷物操作ユニット２０、荷物３０、機関車４０、レール５０、信号ユニット６０、ポイントユニット７０、荷物置場８０、入力ユニット９０、及び出力ユニット１１０は、適宜選択されて各種の演算を実行するプログラムを表わす鉄道模型を構成する。【選択図】　　　　図１
2004012923.tif 000002
【特許請求の範囲】
【請求項１】
出発地から目的地まで玩具が移動することによって所定の演算を行なうプログラムを体感可能な学習システムであって、
前記所定の演算に必要な変数の取り得る値と、前記所定の演算の各課程における演算結果とを示すための荷物玩具と、
前記出発地から前記目的地まで移動可能であり、かつ、前記荷物玩具が搭載される移動可能玩具と、
前記移動可能玩具が移動する経路を構成するための経路玩具と、
前記荷物玩具を前記所定の演算の内容に応じて前記移動可能玩具に積み／降ろしする荷物操作玩具と、
前記移動可能玩具を停止／発進させる信号玩具と、
前記移動可能玩具が移動する経路を切換える経路切換玩具とを備え、
前記移動可能玩具、前記荷物操作玩具、前記信号玩具、及び前記経路切換玩具は、前記荷物玩具に関する情報を送信及び／または受信し、
前記荷物玩具、前記移動可能玩具、前記荷物操作玩具、前記信号玩具及び前記経路玩具は、適宜選択されて前記プログラムを構成する、学習システム。
【請求項２】
前記荷物玩具、前記移動可能玩具、前記荷物操作玩具、前記信号玩具及び前記経路玩具は、適宜選択されて組立てられたシステムにおいてユーザによる介入を適宜受ける、請求項１に記載の学習システム。
【請求項３】
前記移動可能玩具は、
前記所定の演算に必要な変数の取り得る値を示すための荷物玩具を搭載する第１の移動可能玩具と、
前記所定の演算の各課程における演算結果を示すための荷物玩具を搭載する第２の移動可能玩具とを含み、
前記荷物操作玩具は、
前記第１の移動可能玩具に搭載された荷物玩具の個数を検知して送信する第１の荷物操作玩具と、
前記第１の荷物操作玩具から受信した個数と同じ個数の荷物玩具を前記第２の移動可能玩具に積む第２の荷物操作玩具とを含む、請求項１に記載の学習システム。
【請求項４】
前記第２の移動可能玩具は、搭載された荷物玩具の個数を検知して送信し、
前記経路切換玩具は、前記第２の移動可能玩具から受信した荷物玩具の個数に基づいて前記経路を切換える、請求項３に記載の学習システム。
【請求項５】
前記移動可能玩具は、前記演算結果を示すための荷物玩具を搭載し、
前記荷物操作玩具は、予め設定された演算内容に応じて前記荷物玩具を前記移動可能玩具に積み／降ろしする、請求項１に記載の学習システム。
【請求項６】
前記移動可能玩具は、
前記荷物玩具を予め搭載した第１の移動可能玩具と、
前記演算結果を示すための荷物玩具を搭載する第２の移動可能玩具とを含み、
前記荷物操作玩具は、前記第１の移動可能玩具に搭載された荷物玩具を前記第２の移動可能玩具に移動させる、請求項１に記載の学習システム。
【請求項７】
前記荷物玩具は、所定数のビットを示す所定数の荷物玩具から成り、
前記移動可能玩具は、前記所定数の荷物玩具を予め搭載し、
前記荷物操作玩具は、前記移動可能玩具に搭載された前記所定数の荷物玩具に基づいてビット数を検出し、その検出したビット数を用いて演算を行ない、前記演算の結果を示す前記所定数の荷物玩具を前記移動可能玩具に積む、請求項１に記載の学習システム。
【請求項８】
前記移動可能玩具、前記荷物操作玩具、前記信号玩具、及び前記経路切換玩具は、前記経路玩具を介して前記荷物玩具に関する情報を送信及び／または受信する、請求項１に記載の学習システム。
【請求項９】
前記移動可能玩具、前記荷物操作玩具、前記信号玩具、及び前記経路切換玩具は、無線を介して前記荷物玩具に関する情報を送信及び／または受信する、請求項１に記載の学習システム。
【請求項１０】
前記移動可能玩具は、貨車であり、
前記経路玩具は、レールであり、
前記経路切換玩具は、前記レールの切換を行なうポイントである、請求項１から請求項９のいずれか１項に記載の学習システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、学習システムに関し、特に、プログラムを体感可能な学習システムに関するものである。
【０００２】
【従来の技術】
知能的な玩具を作製するシステムとしてレゴ社のマインドストームズ（ＭＩＮＤ　ＳＴＯＲＭＳ）が知られている。このマインドストームズは、センサー及びモーターが組み込まれた複数のブロックを任意に組み合わせて１つのロボットを作製し、その作製したロボットを周囲から独立して動作させるシステムである。作製した１つのロボットを周囲から独立して動作させるには、その作製したロボットに独自のプログラムを作成し、その作成したプログラムをロボットにインストールする。
【０００３】
より具体的には、レゴ社のマインドストームズにおいては、“ＲＣＸ”という自律式マイクロコンピュータがロボットに内蔵されており、作成したロボットに独自のプログラムをこの“ＲＣＸ”にダウンロードすることにより、作製したロボットを周囲から独立して動作可能にしている。
【０００４】
また、リアルタイムシステムの教育を行なうものとして、列車のレイアウト製作と、その制御ソフトウェアとを教材としたリアルタイムシステムが提案されている（Ｊｏｈｎ　Ｗ．　ＭｃＣｏｒｍｉｃｋ：　”Ｕｓｉｎｇ　ａ　Ｍｏｄｅｌ　Ｒａｉｌｒｏａｄ　ｔｏ　Ｔｅａｃｈ　Ｄｉｇｉｔａｌ　Ｐｒｏｃｅｓｓ　Ｃｏｎｔｒｏｌ”，　１９ｔｈＡＣＭ　ＳＩＧＣＳＥ　Ｔｅｃｈｎｉｃａｌ　Ｓｙｍｐｏｓｉｕｍ　ｏｎ　Ｃｏｍｐｕｔｅｒ　Ｓｃｉｅｎｃｅ　Ｅｄｕｃａｔｉｏｎ，　Ｖｏｌ．　２０，　Ｎｏ．　１，　１９８８）。このシステムにおいては、複数の列車を動かし、その複数の列車のうち、特定の１台の列車を人間が自由に動かしても他の列車が衝突することなく運行できるようなレイアウトと、列車の運行プログラムとを作製することを目的とするものである。
【０００５】
更に、複数の列車の運行プログラムを作製するシステム（Ｒｏｙ　Ｄｏｗｓｉｎｇ　＆　Ｐｅｔｅｒ　Ｓａｗａｒｄ，　”Ｃｏｎｐｕｔｅｒ−Ｃｏｎｔｒｏｌｌｅｄ　ｍｏｄｅｌ　ｒａｉｌｗａｙ　ｆｏｒ　ｕｓｅ　ｉｎ　ｔｅａｃｈｉｎｇ　ｒｅａｌ−ｔｉｍｅ　ｐｒｏｇｒａｍｍｉｎｇ”，　Ｍｉｃｒｏｐｒｏｃｅｓｓｏｒ　ａｎｄ　Ｍｉｃｒｏｓｙｓｔｅｍｓ，　Ｖｏｌ．６，　Ｎｏ．１０，　１９８２）が知られている。このシステムは、列車レイアウトのうち、列車をプロセス、レールを計算機資源として見なしてリアルタイムシステムについて学習する教材環境を提案するものである。
【０００６】
更に、特開２０００−３４２８６２号公報には、各列車の制御を可能とし、シンプルで、かつ、効率的な転てつ器切替を可能とする鉄道模型用集中制御システムが開示されている。より具体的には、鉄道模型の外部にパーソナルコンピュータが設置されており、このパーソナルコンピュータは、鉄道模型中に設けられた電源部、列車、及び信号処理部を制御することにより、列車を効率良く運行させる。
【０００７】
更に、プログラムの作成を学習するものとしてマイクロワールド（野口、田中、“プログラミング実習のためのツールキットシステムを用いたマイクロワールド”教育システム情報学会誌、Ｖｏｌ．１６，　Ｎｏ．３４，　１９９９）が知られている。このマイクロワールドは、パーソナルコンピュータのディスプレイ上で部品を組み合わせることによりプログラムを作成するものである。各部品には、単純なプログラムが記述されており、組み合わされた部品の各プログラムが連動して複雑な動作を行なう。
【０００８】
更に、複数の立方体を組み合わせて１つの仕組みを実現するシステムも提案されている（伊藤、北村、河合、岸野、“リアルタイム３次元形状モデリングとインタラクションのための双方向ユーザーインタフェース　ＡｃｔｉｖｅＣｕｂｅ”、情報書処理学会論文誌、Ｖｏｌ．４２，　Ｎｏ．６，　２００１）。このシステムを用いれば、例えば、光センサーブロックとモーターブロックとにより、明るいところでモーターが回る仕組みを実現できる。
【０００９】
このように、プログラムを用いた玩具、及びプログラムを学習するためのシステム等、プログラムに関連するシステムが多く提案されている。
【００１０】
【発明が解決しようとする課題】
しかし、上述したシステムは、全て、システム全体によりプログラム自体を構成することができない。
【００１１】
レゴ社のマインドストームズは、１つのロボットを作製した後、このロボットを制御するためのプログラムを他のパーソナルコンピュータで作成し、ロボットにインストールする。そして、ロボットは、インストールされたプログラムに従って動作する。従って、ロボットによりプログラム自体を構成するものではない。
【００１２】
また、リアルタイムシステム（Ｊｏｈｎ　Ｗ．　ＭｃＣｏｒｍｉｃｋ：　”Ｕｓｉｎｇ　ａ　Ｍｏｄｅｌ　Ｒａｉｌｒｏａｄｔｏ　Ｔｅａｃｈ　Ｄｉｇｉｔａｌ　Ｐｒｏｃｅｓｓ　Ｃｏｎｔｒｏｌ”，　１９ｔｈＡＣＭ　ＳＩＧＣＳＥ　Ｔｅｃｈｎｉｃａｌ　Ｓｙｍｐｏｓｉｕｍ　ｏｎ　Ｃｏｍｐｕｔｅｒ　Ｓｃｉｅｎｃｅ　Ｅｄｕｃａｔｉｏｎ，　Ｖｏｌ．　２０，　Ｎｏ．　１，　１９８８）は、複数の列車のうち、特定の１台の列車を人間が動かしても他の列車が衝突しないようなプログラムを別のパーソナルコンピュータで作成する必要がある。そして、その作成されたプログラムを用いて、人間が特定の１台の列車を動かしても他の列車は衝突しない列車のレイアウトを作製するので、このシステムはプログラム自体を構成するものではない。
【００１３】
更に、複数の列車の運行プログラムを作製するシステム（Ｒｏｙ　Ｄｏｗｓｉｎｇ　＆　Ｐｅｔｅｒ　Ｓａｗａｒｄ，　”Ｃｏｎｐｕｔｅｒ−Ｃｏｎｔｒｏｌｌｅｄ　ｍｏｄｅｌ　ｒａｉｌｗａｙ　ｆｏｒ　ｕｓｅ　ｉｎ　ｔｅａｃｈｉｎｇ　ｒｅａｌ−ｔｉｍｅ　ｐｒｏｇｒａｍｍｉｎｇ”，　Ｍｉｃｒｏｐｒｏｃｅｓｓｏｒ　ａｎｄ　Ｍｉｃｒｏｓｙｓｔｅｍｓ，　Ｖｏｌ．６，　Ｎｏ．１０，　１９８２）では、列車をプロセス、レールを計算機資源に見立てているが、変数に対応するものが存在しないため、このシステムはプログラム自体を構成するものではない。
【００１４】
更に、特開２０００−３４２８６２号公報に開示された鉄道模型用集中制御システムは、鉄道模型を制御するものであり、その鉄道模型によりプログラム自体を構成するものではない。
【００１５】
更に、マイクロワールドは、組み合わせた複数の各部品が連動してコンピュータの画面上で動作するものであり、ユーザが複数の各部品に触れてプログラムを体感できるものではない。
【００１６】
更に、複数の立方体を組み合わせて１つの仕組みを実現するシステム（伊藤、北村、河合、岸野、“リアルタイム３次元形状モデリングとインタラクションのための双方向ユーザーインタフェース　ＡｃｔｉｖｅＣｕｂｅ”、情報書処理学会論文誌、Ｖｏｌ．４２，　Ｎｏ．６，　２００１）は、組み合わせた立方体で実現できるのは、１つの動作であり、連続して複数の動作を実現することができない。従って、このシステムにおいては、組み合わせた立方体の各々をプログラムの一部として連続して動作させることができず、プログラムを体感することができない。
【００１７】
このように、従来のシステムにおいては、ユーザは、プログラムを体感できないという問題があった。
【００１８】
そこで、この発明は、かかる問題を解決するためになされたものであり、その目的は、プログラムを体感可能な学習システムを提供することである。
【００１９】
【課題を解決するための手段及び発明の効果】
この発明によれば、学習システムは、出発地から目的地まで玩具が移動することによって所定の演算を行なうプログラムを体感可能な学習システムであって、所定の演算に必要な変数の取り得る値と、所定の演算の各課程における演算結果とを示すための荷物玩具と、出発地から目的地まで移動可能であり、かつ、荷物玩具が搭載される移動可能玩具と、移動可能玩具が移動する経路を構成するための経路玩具と、荷物玩具を所定の演算の内容に応じて移動可能玩具に積み／降ろしする荷物操作玩具と、移動可能玩具を停止／発進させる信号玩具と、移動可能玩具が移動する経路を切換える経路切換玩具とを備え、移動可能玩具、荷物操作玩具、信号玩具、及び経路切換玩具は、荷物玩具に関する情報を送信及び／または受信し、荷物玩具、移動可能玩具、荷物操作玩具、信号玩具及び経路玩具は、適宜選択されてプログラムを構成する。
【００２０】
好ましくは、荷物玩具、移動可能玩具、荷物操作玩具、信号玩具及び経路玩具は、適宜選択されて組立てられたシステムにおいてユーザによる介入を適宜受ける。
【００２１】
好ましくは、移動可能玩具は、所定の演算に必要な変数の取り得る値を示すための荷物玩具を搭載する第１の移動可能玩具と、所定の演算の各課程における演算結果を示すための荷物玩具を搭載する第２の移動可能玩具とを含み、荷物操作玩具は、第１の移動可能玩具に搭載された荷物玩具の個数を検知して送信する第１の荷物操作玩具と、第１の荷物操作玩具から受信した個数と同じ個数の荷物玩具を第２の移動可能玩具に積む第２の荷物操作玩具とを含む。
【００２２】
より好ましくは、第２の移動可能玩具は、搭載された荷物玩具の個数を検知して送信し、経路切換玩具は、第２の移動可能玩具から受信した荷物玩具の個数に基づいて経路を切換える。
【００２３】
好ましくは、移動可能玩具は、演算結果を示すための荷物玩具を搭載し、荷物操作玩具は、予め設定された演算内容に応じて荷物玩具を移動可能玩具に積み／降ろしする。
【００２４】
好ましくは、移動可能玩具は、荷物玩具を予め搭載した第１の移動可能玩具と、演算結果を示すための荷物玩具を搭載する第２の移動可能玩具とを含み、荷物操作玩具は、第１の移動可能玩具に搭載された荷物玩具を第２の移動可能玩具に移動させる。
【００２５】
好ましくは、荷物玩具は、所定数のビットを示す所定数の荷物玩具から成り、移動可能玩具は、所定数の荷物玩具を予め搭載し、荷物操作玩具は、移動可能玩具に搭載された所定数の荷物玩具に基づいてビット数を検出し、その検出したビット数を用いて演算を行ない、演算の結果を示す所定数の荷物玩具を移動可能玩具に積む。
【００２６】
好ましくは、移動可能玩具、荷物操作玩具、信号玩具、及び経路切換玩具は、経路玩具を介して荷物玩具に関する情報を送信及び／または受信する。
【００２７】
好ましくは、移動可能玩具、荷物操作玩具、信号玩具、及び経路切換玩具は、無線を介して荷物玩具に関する情報を送信及び／または受信する。
【００２８】
好ましくは、移動可能玩具は、貨車であり、経路玩具は、レールであり、経路切換玩具は、レールの切換を行なうポイントである。
【００２９】
この発明による学習システムにおいては、荷物玩具、移動可能玩具、荷物操作玩具、信号玩具及び経路玩具が適宜選択された１つの遊具が組立てられる。そして、荷物玩具、移動可能玩具、荷物操作玩具、信号玩具及び経路玩具の各々は、各種の演算を実行するプログラムの各ステップを実行するように動作する。
【００３０】
従って、ユーザは、組立てた遊具を動作させることにより各種の演算を実行するプログラムを体感できる。
【００３１】
この発明による学習システムを用いて組立てられる遊具としては、好ましくは、鉄道模型である。従って、コンピュータを使用することができない子供であっても、この学習システムを用いれば、各種の演算を実行するプログラムを体感できる。
【００３２】
【発明の実施の形態】
本発明の実施の形態について図面を参照しながら詳細に説明する。なお、図中同一または相当部分には同一符号を付してその説明は繰返さない。
【００３３】
図１は、この発明の実施の形態による学習システム１００を示す。学習システム１００は、貨車１０と、荷物操作ユニット２０と、荷物３０と、機関車４０と、レール５０と、信号ユニット６０と、ポイントユニット７０と、荷物置場８０と、入力ユニット９０と、出力ユニット１１０とを備える。
【００３４】
なお、貨車１０、荷物操作ユニット２０、荷物３０、機関車４０、レール５０、信号ユニット６０、ポイントユニット７０、荷物置場８０、入力ユニット９０、及び出力ユニット１１０は、鉄道模型を構成する玩具である。
【００３５】
貨車１０は、荷物３０を搭載し、レール５０により構成された経路上を機関車４０に牽引される。荷物操作ユニット２０は、荷物３０を貨車１０に積み／降ろしする。
【００３６】
荷物３０は、重量が同じ複数個の荷物、または重量が４段階で変化する複数個の荷物から成る。そして、荷物３０は、荷物置場８０に配置されており、荷物操作ユニット２０によって貨車１０に積み／降ろしされる。機関車４０は、複数の貨車１０を牽引してレール５０によって構成された経路上を移動し、信号ユニット６０の指示に従って停止／発車する。
【００３７】
レール５０は、複数のレール５０１〜５０ｎ（ｎは自然数）から成り、機関車４０及び貨車１０が走行する経路を構成する。また、レール５０１〜５０ｎの各々は、信号線（図示せず）を内蔵している。そして、レール５０１〜５０ｎの各々は、他のレールと接続されると、内蔵した信号線同士も接続される。信号ユニット６０は、レール５０によって構成された経路の途中に配置され、経路上を走行して来た機関車４０を停止／発車させる。
【００３８】
ポイントユニット７０は、レール５０で構成された経路を切換える。また、ポイントユニット７０は、信号及びデータ等を送受信する送受信装置（図示せず）及び予め設定された条件を満たすか否かを判定する制御装置（図示せず）を内蔵している。荷物置場８０は、荷物３０を配置しておくためのものである。入力ユニット９０は、マイク９１と、スイッチ９２とを含む。マイク９１は、ユーザの指示を音声により取り込む。また、スイッチ９２は、ユーザの指示を電気信号により取り込む。つまり、入力ユニット９０は、ユーザの指示をマイク９１またはスイッチ９２により取り込み、その取り込んだ指示に従ってポイントがレール５０を切換えるのを制御する。
【００３９】
出力ユニット１１０は、ライト１１１、モーター１１２及び計算機１１３を含む。ライト１１１は、貨車１０の状態に応じて点灯する。モーター１１２は、貨車１０の状態に応じて回転する。計算機１１３は、貨車１０に搭載された荷物３０を表示する。このように、出力ユニット１１０は、ライト１１１、モーター１１２及び計算機１１３により貨車１０の状態をユーザに表示する。
【００４０】
図２は、貨車１０を詳細に説明するための図である。貨車１０は、本体１１と、荷台１２と、車輪１３と、スイッチ１４と、制御装置１５と、送受信装置１６とを含む。荷台１２は、複数のセンサー１２１〜１３５を含む。
【００４１】
スイッチ１４は、ユーザによって「１」の位置へ移動されると、荷物３０の個数に意味があることを示す信号ＮＭＳを制御装置１５及び複数のセンサー１２１〜１３５へ出力する。また、スイッチ１４は、ユーザによって「２」の位置へ移動されると、荷物３０の配置位置に意味があることを示す信号ＰＯＳを制御装置１５及び複数のセンサー１２１〜１３５へ出力する。更に、スイッチ１４は、ユーザによって「３」の位置へ移動されると、荷物３０の重さに意味があることを示す信号ＷＧＳを制御装置１５及び複数のセンサー１２１〜１３５へ出力する。なお、図面を見易くするために、スイッチ１４から複数のセンサー１２１〜１３５への信号線は省略されている。
【００４２】
複数のセンサー１２１〜１３５の各々は、スイッチ１４から信号ＮＭＳまたは信号ＰＯＳを受けた場合、荷物３０が配置されたことに応じて信号「１」を制御装置１５へ出力し、荷物３０が配置されないことに応じて信号「０」を制御装置１５へ出力する。
【００４３】
また、複数のセンサー１２１〜１３５の各々は、スイッチ１４から信号ＷＧＳを受けた場合、配置された荷物３０の重さを測定し、その測定した重さを示す信号を制御装置１５へ出力する。より具体的には、複数のセンサー１２１〜１３５の各々は、荷物３０の重さを４段階で識別し、その識別した結果を信号Ｗ１〜Ｗ４として制御装置１５へ出力する。信号Ｗ１は、荷物の重さが最も軽いことを示し、信号Ｗ４は、荷物の重さが最も重いことを示す。
【００４４】
制御装置１５は、複数のセンサー１２１〜１３５から受けた信号「１」または信号「０」または信号Ｗ１〜Ｗ４と、スイッチ１４からの信号ＮＭＳまたは信号ＰＯＳまたは信号ＷＧＳによって貨車１０に搭載された荷物３０の個数、または荷物３０の配置位置、荷物３０の重さを検出する。
【００４５】
即ち、制御装置１５は、スイッチ１４から信号ＮＭＳを受けると、複数のセンサー１２１〜１３５から受けた信号「１」及び信号「０」に基づいて荷物３０の個数を検出する。そして、制御装置１５は、検出した荷物３０の個数によって表された変数を認識する。また、制御装置１５は、スイッチ１４から信号ＰＯＳを受けると、複数のセンサー１２１〜１３５から受けた信号「１」及び信号「０」に基づいて荷物３０の配置位置を検出し、その検出した荷物３０の配置位置によって表された変数を認識する。更に、制御装置１５は、スイッチ１４から信号ＷＧＳを受けると、複数のセンサー１２１〜１３５から受けた信号Ｗ１〜Ｗ４に基づいて荷物３０の重さを検出し、その検出した荷物３０の重さによって表された変数を認識する。
【００４６】
制御装置１５は、各変数を認識すると、その認識した変数を送受信装置１６へ出力する。
【００４７】
送受信装置１６は、制御装置１５から受けた変数を車輪１３を介して送受信する。
【００４８】
図３は、荷物３０によって表される変数を詳細に説明するための図である。荷物３０の個数に意味がある場合（図３の（ａ）参照）、例えば、５個の荷物３０が貨車１０に搭載される。貨車１０の制御装置１５は、複数のセンサー１２１〜１３５からの信号「１」または信号「０」に基づいて、貨車１０に５個の荷物３０が搭載されたことを検出し、変数の値が「５」であることを認識する。従って、荷物３０の個数に意味がある場合、貨車１０に搭載される荷物３０の個数によって変数の取り得る値が決定される。
【００４９】
荷物３０の配置位置に意味がある場合（図３の（ｂ）参照）、例えば、４個の荷物３０がセンサー１２１〜１２３，１２５上に配置される。センサー１２１〜１２３，１２５の各々は、信号「１」を制御装置１５へ出力し、センサー１２４は、信号「０」を制御装置１５へ出力する。そして、制御装置１５は、センサー１２１〜１２３，１２５からの信号「１」と、センサー１２４からの信号「０」とに基づいて、変数の値が「１１１０１」であることを認識する。従って、荷物３０の配置位置に意味がある場合、貨車１０に搭載される荷物３０の配置位置によって変数の取り得る値が決定される。
【００５０】
荷物３０の重さに意味がある場合（図３の（ｃ）参照）、例えば、４個の荷物３０（３０１〜３０４）がそれぞれセンサー１２１〜１２４上に配置される。センサー１２１は、荷物３０１の重さを検出し、信号Ｗ１を制御装置１５へ出力する。センサー１２２は、荷物３０２の重さを検出し、信号Ｗ２を制御装置１５へ出力する。センサー１２３は、荷物３０３の重さを検出し、信号Ｗ３を制御装置１５へ出力する。センサー１２４は、荷物３０４の重さを検出し、信号Ｗ４を制御装置１５へ出力する。制御装置１５は、センサー１２１からの信号Ｗ１に基づいて文字変数「Ａ」を認識し、センサー１２２からの信号Ｗ２に基づいて文字変数「Ｔ」を認識し、センサー１２３からの信号Ｗ３に基づいて文字変数「Ｒ」を認識し、センサー１２４からの信号Ｗ４に基づいて文字変数「−」を認識する。
【００５１】
個数に意味がある荷物３０を搭載した複数の貨車１０を並べる場合（図３の（ｄ）参照）、その配列によって数の配列を表現可能である。例えば、荷物３０を、それぞれ、５個、３個、４個搭載した３台の貨車１０を並べることにより配列「５，３，４」を表現可能である。この場合、各貨車１０の制御装置１５は、搭載された荷物３０の個数のみを検出し、その検出した個数によって認識した数を送受信装置１６を介して外部へ送信する。そして、荷物操作ユニット２０等は、３台の貨車１０から受けた３つの数「５」，「３」，「４」によって配列「５，３，４」を認識する。
【００５２】
このように、荷物３０は、３種類の変数を表現可能な玩具である。そして、貨車１０は、荷物３０が搭載されることにより、変数の取り得る値を表わす。
【００５３】
図４は、荷物操作ユニット２０を詳細に説明するための図である。荷物操作ユニット２０は、本体２１と、アーム２２〜２４と、回転制御装置２５と、伸縮制御装置２６と、把持制御装置２７と、フック２８とを備える。
【００５４】
本体２１は、モーター２１１と、ギア２１２，２１４と、ベルト２１３と、制御装置２１５と、送受信装置２１６とを含む。モーター２１１及びギア２１２は、本体２１に固定されている。ベルト２１３は、モーター２１１の軸の回転をギア２１２に伝達する。
【００５５】
ギア２１４は、アーム２２上に直線状に取り付けられ、ギア２１２と噛合う。制御装置２１５は、モーター２１１を制御し、モーター２１１の軸を矢印２１７の方向または矢印２１８の方向に回転させる。また、制御装置２１５は、アーム２２〜２４中に配置された信号線（図示せず）を介して回転制御装置２５、伸縮制御装置２６、及び把持制御装置２７を制御し、貨車１０への荷物３０の積込／積降ろしを制御する。更に、制御装置２１５は、送受信装置２１６を介して荷物操作ユニット２０の外部へ信号及びデータを送受信する。
【００５６】
モーター２１１が制御装置２１５によって駆動され、モーター２１１の軸が矢印２１７の方向へ回転されると、ベルト２１３は、ギア２１２を矢印２１９の方向に回転させる。そして、ギア２１２が矢印２１９の方向に回転すると、アーム２２は、矢印２２１の上方向へ移動する。また、モーター２１１の軸が矢印２１８の方向へ回転されると、ベルト２１３は、ギア２１２を矢印２２０の方向に回転させる。そして、ギア２１２が矢印２２０の方向に回転すると、アーム２２は、矢印２２２の下方向へ移動する。このように、モーター２１１の軸を矢印２１７の方向または矢印２１８の方向に回転させることによってアーム２２は、上下に移動する。
【００５７】
アーム２２は、半分程度、本体２１の中に入り込み、他方端は回転制御装置２５に取り付けられている。アーム２３は、回転制御装置２５と伸縮制御装置２６との間に設けられる。アーム２４は、伸縮制御装置２６と把持制御装置２７との間に設けられる。
【００５８】
回転制御装置２５は、制御装置２１５からの制御に従ってアーム２３を矢印２９の方向または矢印３１の方向に回転する。回転制御装置２５がアーム２３を回転する詳細な機構については後述する。伸縮制御装置２６は、制御装置２１５からの制御に従ってアーム２４を矢印３２の方向または矢印３３の方向に伸縮する。伸縮制御装置２６がアーム２４を伸縮する詳細な機構については後述する。
【００５９】
把持制御装置２７は、貨車１０に搭載された荷物３０の個数または荷物３０の有無を検出して制御装置２１５へ出力するとともに、フック２８を制御する。把持制御装置２７は、貨車１０に搭載された荷物３０の個数または荷物３０の有無を検出するとき、貨車１０の荷台１２に向けてレーザ光を出射し、荷台１２からの反射光を検出して荷物３０の個数を検出する。
【００６０】
つまり、荷台１２に設けられた複数のセンサー１２１〜１３５の各々に荷物３０が配置されていないとき、把持制御装置２７は、レーザ光を複数のセンサー１２１〜１３５の各々に照射し、その反射光を検出する。一方、荷台１２に設けられた複数のセンサー１２１〜１３５の各々に荷物３０が配置されているとき、把持制御装置２７は、レーザ光を荷物３０に照射し、その反射光を検出する。従って、荷物３０のレーザ光に対する反射率がセンサー１２１〜１３５のレーザ光に対する反射率と違えば、把持制御装置２７は、検出した反射率によって荷物３０の有無または荷物３０の個数を検出可能である。
【００６１】
なお、把持制御装置２７は、レーザ光を出射する半導体レーザ（図示せず）と、半導体レーザを駆動するレーザ駆動装置（図示せず）とを内蔵している。そして、制御装置２１５は、半導体レーザがレーザ光を出射するようにレーザ駆動装置を制御する。
【００６２】
フック２８は、把持制御装置２７からの制御に従って貨車１０に搭載された荷物３０を把持し、その把持した荷物３０を荷物置場８０または他の貨車へ移動し、または荷物置場８０に置かれた荷物３０を貨車１０に搭載する。
【００６３】
図５は、図４に示す回転制御装置２５を詳細に説明するための図である。回転制御装置２５は、基体２５１と、支持台２５２と、ピン２５３と、モーター２５４と、ギア２５５，２５７と、ベルト２５６と、支持部材２５８，２５９とを含む。
【００６４】
支持台２５２は、基体２５１に固定されている。ピン２５３は、支持台２５２に固定されている。アーム２３は、一方端に開口部２３１を有し、ピン２５３が開口部２３１を貫通するように配置されている。
【００６５】
モーター２５４は、アーム２３に固定されており、基体２５１中の信号線（図示せず）を介して制御装置２１５によって制御される。そして、モーター２５４の軸は、矢印２６０の方向または矢印２６１の方向に回転される。ギア２５５の軸は、アーム２３に固定されており、ギア２５５は、ベルト２５６によって矢印２６２の方向または矢印２６３の方向に回転される。また、ギア２５５は、ギア２５７と噛合う。
【００６６】
ベルト２５６は、モーター２５４の軸の回転をギア２５５に伝達する。ギア２５７は、円弧状の形状を有し、支持部材２５８，２５９によって回転制御装置２５の基体（図示せず）に固定されている。
【００６７】
モーター２５４が駆動され、モーター２５４の軸が矢印２６０の方向に回転すると、ベルト２５６は、ギア２５５を矢印２６２の方向に回転させ、アーム２３は、矢印２６４の方向に移動する。また、モーター２５４の軸が矢印２６１の方向に回転すると、ベルト２５６は、ギア２５５を矢印２６３の方向に回転させ、アーム２３は、矢印２６５の方向に移動する。
【００６８】
このように、回転制御装置２５は、モーター２５４の軸が矢印２６０の方向または矢印２６１の方向に回転することにより、アーム２３を矢印２６４の方向または矢印２６５の方向に移動させる、つまり、アーム２３を所定角度の範囲で回転させる。
【００６９】
図６は、図４に示す伸縮制御装置２６を詳細に説明するための図である。伸縮制御装置２６は、基体２７０，２７１と、支持台２７２と、モーター２７３と、ギア２７４，２７７と、軸２７５と、ベルト２７６と、車輪２７８，２７９とを備える。
【００７０】
支持台２７２は、基体２７１に固定されている。モーター２７３は、支持台２７２に固定されている。軸２７５は、その一方端が基体２７１に固定されている。ギア２７４は、回転可能に軸２７５に取り付けられている。そして、ギア２７４は、ギア２７７と噛合う。ベルト２７６は、モーター２７３の軸の回転をギア２７４に伝達する。ギア２７７は、直線状の形状を有し、アーム２４に固定されている。車輪２７８，２７９は、アーム２４に取り付けられ、基体２７０上を矢印２８４，２８５の方向に移動可能である。
【００７１】
モーター２７３が基体２７１中に設けられた信号線（図示せず）を介して制御装置２１５によって駆動され、モーター２７３の軸が矢印２８０の方向に回転すると、ベルト２７６は、ギア２７４を矢印２８２の方向に回転させる。ギア２７４が矢印２８２の方向に回転すると、車輪２７８，２７９が回転してアーム２４は、矢印２８５の方向に移動する。また、モーター２７３の軸が矢印２８１の方向に回転すると、ベルト２７６は、ギア２７４を矢印２８３の方向に回転させる。ギア２７４が矢印２８３の方向に回転すると、車輪２７８，２７９が回転してアーム２４は、矢印２８４の方向に移動する。
【００７２】
このように、伸縮制御装置２６は、モーター２７３の軸が矢印２８０の方向または矢印２８１の方向に回転することにより、アーム２４を矢印２８５の方向または矢印２８４の方向に移動させる、つまり、アーム２４を一定の範囲内で伸縮する。
【００７３】
上述したように、荷物操作ユニット２０は、アーム２２を上下方向に移動させることによりフック２８を上下方向へ移動させる機構と、アーム２３をある平面内で回転させることによりフック２８をある平面内で一定の角度だけ回転させる機構と、アーム２４をある平面内で伸縮することによりフック２８をある平面内で一定の距離だけ移動させる機構とを備える。つまり、荷物操作ユニット２０は、３つの方向へフック２８を移動させる３つの自由度を持った操作ユニットである。
【００７４】
図７は、荷物３０をある貨車から他の貨車へ積み替える荷物操作ユニット２０の機能を説明するための図である。レール５０によって形成された経路上を貨車１０Ａ，１０Ｂが移動して来て、荷物操作ユニット２０の前で停止すると、荷物操作ユニット２０は、制御装置２１５に予め格納された制御シーケンスに従って、上述した３つの自由度を有する移動機構を用いてフック２８を方向ＤＲ１〜ＤＲ３に移動させて貨車１０Ａに搭載された荷物３０Ａを荷物３０Ｂとして貨車１０Ｂに積み替える。
【００７５】
より具体的には、荷物操作ユニット２０の制御装置２１５は、本体２１中のモーター２１１、回転制御装置２５中のモーター２５４、及び伸縮制御装置２６中のモーター２７３をそれぞれ所定の方向に回転させ、フック２８を貨車１０Ａ上に移動させる。そして、把持制御装置２７は、貨車Ａに搭載された荷物３０Ａの個数を上述した方法により検出し、その検出した個数をアーム２４、伸縮制御装置２６、アーム２３、回転制御装置２５、及びアーム２２を介して制御装置２１５へ出力する。
【００７６】
制御装置２１５は、把持制御装置２７から受けた荷物３０Ａの個数が予め設定された移動個数よりも多いことを確認し、本体２１中のモーター２１１、回転制御装置２５中のモーター２５４、及び伸縮制御装置２６中のモーター２７３をそれぞれ所定の方向に回転させ、貨車１０Ａに搭載された荷物３０Ａを荷物１０Ｂとして貨車１０Ｂに積み替える制御を行なう。
【００７７】
これにより、荷物３０Ａは、貨車１０Ａから貨車１０Ｂに積み替えられる。
図８は、列車の停止、荷物検査、指定に応じた荷物の積込／積降、及び列車の発車を説明するための図である。レール５０によって形成された経路の近くに信号ユニット６０、荷物操作ユニット２０Ａ，２０Ｂ，２０Ｃ、及び荷物置場８０Ａ，８０Ｂ，８０Ｃが配置される。
【００７８】
そして、荷物置場８０Ａは、荷物操作ユニット２０Ａに対応して配置され、荷物置場８０Ｂは、荷物操作ユニット２０Ｂに対応して配置され、荷物置場８０Ｃは、荷物操作ユニット２０Ｃに対応して配置される。また、荷物置場８０Ａには、荷物３０Ａが配置されており、荷物置場８０Ｂには、荷物３０Ｂが配置されており、荷物置場８０Ｃには、荷物３０Ｃが配置されている。
【００７９】
貨車１０Ａ，１０Ｂ，１０Ｃは、機関車４０に接続されている。機関車４０が貨車１０Ａ，１０Ｂ，１０Ｃを牽引して信号ユニット６０まで進行すると、信号ユニット６０は、停止信号をレール５０を介して機関車４０へ送信し、機関車４０は、レール５０を介して停止信号を受信すると、停止する。機関車４０が停止すると、貨車１０Ａは、荷物操作ユニット２０Ａの前に停止し、貨車１０Ｂは、荷物操作ユニット２０Ｂの前に停止し、貨車１０Ｃは、荷物操作ユニット２０Ｃの前に停止する。
【００８０】
荷物操作ユニット２０Ａ，２０Ｂ，２０Ｃは、それぞれ、貨車１０Ａ，１０Ｂ，１０Ｃに搭載された荷物３０Ａ，３０Ｂ，３０Ｃを上述した機構によって検査する。そして、荷物操作ユニット２０Ａは、貨車１０Ａには６個の荷物３０Ａが搭載されていることを認識し、荷物操作ユニット２０Ｂは、貨車１０Ｂには５個の荷物３０Ｂが搭載されていることを認識し、荷物操作ユニット２０Ｃは、貨車１０Ｃには荷物３０Ｃが搭載されていないことを認識する。
【００８１】
その後、荷物操作ユニット２０Ａは、制御装置２１５に予め格納された制御シーケンスに従って荷物置場８０Ａから所定個数の荷物３０Ａを貨車１０Ａに搭載する。また、荷物操作ユニット２０Ｂは、制御装置２１５に予め格納された制御シーケンスに従って荷物置場８０Ｂから所定個数の荷物３０Ｂを貨車１０Ｂに搭載する。更に、荷物操作ユニット２０Ｃは、制御装置２１５に予め格納された制御シーケンスに従って荷物置場８０Ｃから所定個数の荷物３０Ｃを貨車１０Ｃに搭載する。
【００８２】
荷物操作ユニット２０Ａ，２０Ｂ，２０Ｃは、それぞれ、貨車１０Ａ，１０，１０Ｃへの荷物３０Ａ、３０Ｂ，３０Ｃの積込が終了すると、荷物の積込が終了したことを示す信号をレール５０を介して信号ユニット６０へ送信する。信号ユニット６０は、荷物の積込が終了したことを示す信号を受信すると、レール５０を介して発車信号を機関車４０へ送信する。そして、機関車４０は、発車信号を受信し、発車する。
【００８３】
これにより、列車の停止、荷物検査、指定に応じた荷物の積込／積降、及び列車の発車という一連の動作が終了する。
【００８４】
なお、図８においては、荷物操作ユニット２０Ａ，２０Ｂ，２０は、全て荷物の積込を行なうものとして説明したが、同じ動作を行なわなくてもよい。例えば、荷物操作ユニット２０Ａ，２０Ｃは、それぞれ、荷物置場８０Ａ，８０Ｃに配置された荷物３０Ａ，３０Ｃを貨車１０Ａ，１０Ｃに積込み、荷物操作ユニット２０Ｂは、貨車１０Ｂに搭載された荷物３０Ｂを荷物置場８０Ｂへ降ろしてもよい。
【００８５】
このように、荷物操作ユニット２０Ａ，２０Ｂ，２０Ｃは、それぞれ、独自の動作を行なう。従って、この実施の形態においては、荷物操作ユニット２０は、荷物の積込、荷物の積降、及び荷物の積込／積降等の各種の動作を行なう。
【００８６】
［転送命令］
図９は、プログラムを構成する１つの機能である転送命令を学習システム１００を用いて実現する方法を示す図である。
【００８７】
ユーザは、貨車１０Ａ，１０Ｂ，１０Ｃ、荷物操作ユニット２０Ａ，２０Ｂ、荷物３０Ａ，３０Ｂ、機関車４０、レール５０、信号ユニット６０、及び荷物置場８０Ａ，８０Ｂを学習システム１００から選択して図９に示すシステムを組立てる。そして、ユーザは、貨車１０Ａ，１０Ｂ，１０Ｃのスイッチ１４を「１」の位置へ移動させる。つまり、ユーザは、貨車１０Ａ，１０Ｂに搭載される荷物３０Ａ，３０Ｂが個数に意味がある変数を示すようにセットする。
【００８８】
レール５０によって形成された経路の近くに信号ユニット６０、荷物操作ユニット２０Ａ，２０Ｂ、及び荷物置場８０Ａ，８０Ｂが配置される。荷物置場８０Ａ，８０Ｂは、それぞれ荷物操作ユニット２０Ａ，２０Ｂに対応して配置される。そして、荷物３０Ａ，３０Ｂがそれぞれ荷物置場８０Ａ，８０Ｂに配置されている。
【００８９】
機関車４０は、貨車１０Ａ，１０Ｂ，１０Ｃを牽引して進行し、信号ユニット６０から停止信号をレール５０を介して受信すると停止する。この場合、貨車１０Ａは、荷物操作ユニット２０Ａの前に停止し、貨車１０Ｂは、荷物操作ユニット２０Ｂの前に停止する。また、荷物操作ユニット２０Ａは、荷物操作ユニット２０Ｂから受信した個数と同じ個数の荷物３０Ａを荷物置場８０Ａから貨車１０Ａに搭載する動作を行ない、荷物操作ユニット２０Ｂは、貨車１０Ｂに搭載された荷物３０Ｂの個数を検出し、その検出した個数をレール５０を介して荷物操作ユニット２０Ａへ送信する。
【００９０】
機関車４０が信号ユニット６０から停止信号を受信して停止すると、荷物操作ユニット２０Ｂは、停止した貨車１０Ｂに搭載された荷物３０Ｂの個数を上述した方法により検出し、その検出した個数をレール５０を介して荷物操作ユニット２０Ａへ送信する。
【００９１】
荷物操作ユニット２０Ａは、レール５０を介して荷物３０Ｂの個数を受信すると、その受信した個数と同じ個数の荷物３０Ａを荷物置場８０Ａから貨車１０Ａへ上述した３つの自由度を有する移動機構を用いて積込む。そして、荷物操作ユニット２０Ａは、貨車１０Ａへの荷物３０Ａの積込が終了すると、荷物の積込が終了したことを示す信号をレール５０を介して信号ユニット６０へ送信する。
【００９２】
信号ユニット６０は、荷物の積込が終了したことを示す信号を受信すると、発車信号をレール５０を介して機関車４０へ送信し、機関車４０は、発車信号を受信すると、発車する。
【００９３】
これにより、貨車１０Ｂに搭載された５個の荷物３０Ｂが貨車１０Ａへ５個の荷物３０Ａとして移動されたことになる。つまり、貨車１０Ｂというレジスタの値（５個の荷物３０Ｂ）が貨車１０Ａというレジスタへ転送されたことになる。
【００９４】
従って、ユーザは、貨車１０（１０Ａ，１０Ｂ，１０Ｃ）、荷物操作ユニット２０（２０Ａ，２０Ｂ）、荷物３０（３０Ａ，３０Ｂ）、機関車４０、レール５０、信号ユニット６０、及び荷物置場８０（８０Ａ，８０Ｂ）を学習システム１００から選択して図９に示すシステムを組むことにより、プログラムを構成する１つの機能である転送命令を実現することができる。
【００９５】
［ブロック転送命令］
図１０は、プログラムを構成する１つの機能であるブロック転送命令を学習システム１００を用いて実現する方法を示す図である。
【００９６】
この場合、ユーザは、４台の貨車１０Ａ，１０Ｂ，１０Ｃ，１０Ｄ、８台の荷物操作ユニット２０Ａ，２０，２０Ｃ，２０Ｄ，２０Ｅ，２０Ｆ，２０Ｇ，２０Ｈ、複数個の荷物３０Ａ，３０Ｂ，３０Ｃ，３０Ｄ、１台の機関車４０、２台の信号ユニット６０Ａ，６０Ｂ、レール５０（レール５０１〜５０ｎから選択された複数のレールから成る）、及び８台の荷物置場８０Ａ，８０Ｂ，８０，８０Ｄ，８０Ｅ，８０Ｆ，８０Ｇ，８０Ｈを学習システム１００から選択し、図１０に示すシステムを組立てる。
【００９７】
そして、ユーザは、貨車１０Ａ，１０Ｂ，１０Ｃ，１０Ｄのスイッチ１４を「１」の位置へ移動させる。つまり、ユーザは、貨車１０Ａ，１０Ｂ，１０Ｃ，１０Ｄに搭載される荷物３０Ａ，３０Ｂ，３０Ｃ，３０Ｄが個数に意味がある変数を示すようにセットする。
【００９８】
荷物置場８０Ａ，８０Ｂ，８０Ｃ，８０Ｄは、荷物置場群Ａを構成し、荷物置場８０Ｅ，８０Ｆ，８０Ｇ，８０Ｈは、荷物置場群Ｂを構成する。荷物置場８０Ａ，８０Ｂ，８０Ｃ，８０Ｄは、それぞれ、荷物操作ユニット２０Ａ，２０，２０Ｃ，２０Ｄに対応して配置される。また、荷物置場８０Ｅ，８０Ｆ，８０Ｇ，８０Ｈは、それぞれ、荷物操作ユニット２０Ｅ，２０Ｆ，２０Ｇ，２０Ｈに対応して配置される。
【００９９】
荷物操作ユニット２０Ａ，２０Ｂ，２０Ｃ，２０Ｄは、それぞれ、荷物置場８０Ａ，８０Ｂ，８０Ｃ，８０Ｄの荷物３０Ａ，３０Ｂ，３０Ｃ，３０Ｄを貨車１０Ａ，１０Ｂ，１０Ｃ，１０Ｄに積込む動作を行なう。また、荷物操作ユニット８０Ｅ，８０Ｆ，８０Ｇ，８０Ｈは、それぞれ、貨車１０Ａ，１０Ｂ，１０Ｃ，１０Ｄに搭載された荷物３０Ａ，３０Ｂ，３０Ｃ，３０Ｄを荷物置場８０Ｅ，８０Ｆ，８０Ｇ，８０Ｈに降ろす動作を行なう。
【０１００】
機関車４０は、貨車１０Ａ，１０Ｂ，１０Ｃ，１０Ｄを牽引する。信号ユニット６０Ａは、機関車４０が近づくと停止信号をレール５０を介して機関車４０へ送信し、機関車４０は、停止信号を受信して停止する。この場合、貨車１０Ａ，１０，１０Ｃ，１０Ｄは、それぞれ、荷物操作ユニット２０Ａ，２０Ｂ，２０Ｃ，２０Ｄの前に停止する。
【０１０１】
機関車４０及び貨車１０Ａ，１０Ｂ，１０Ｃ，１０Ｄが停止すると、荷物操作ユニット２０Ａは、荷物置場８０Ａに存在する荷物３０Ａを全て貨車１０Ａに積込み、荷物操作ユニット２０Ｂは、荷物置場８０Ｂに存在する荷物３０Ｂを全て貨車１０Ｂに積込み、荷物操作ユニット２０Ｃは、荷物置場８０Ｃに存在する荷物３０Ｃを全て貨車１０Ｃに積込み、荷物操作ユニット２０Ｄは、荷物置場８０Ｄに存在する荷物３０Ｄを全て貨車１０Ｄに積込む。
【０１０２】
荷物操作ユニット２０Ａ，２０Ｂ，２０Ｃ，２０Ｄは、荷物３０Ａ，３０Ｂ，３０Ｃ，３０Ｄの積込が終了すると、荷物の積込が終了したことを示す信号をレール５０を介して信号ユニット６０Ａへ送信する。信号ユニット６０Ａは、荷物の積込が終了したことを示す信号を全ての荷物操作ユニット２０Ａ，２０Ｂ，２０Ｃ，２０Ｄからレール５０を介して受信すると、発車信号をレール５０を介して機関車４０へ送信する。そして、機関車４０は、発車信号を受信すると発車する。
【０１０３】
その後、機関車４０は、レール５０を走行し、信号ユニット６０Ｂに近づくと、信号ユニット６０Ｂは、停止信号を機関車４０へ送信し、機関車４０及び貨車１０Ａ，１０Ｂ，１０Ｃ，１０Ｄは停止する。この場合、貨車１０Ａ，１０Ｂ，１０Ｃ，１０Ｄは、それぞれ、荷物操作ユニット２０Ｅ，２０Ｆ，２０Ｇ，２０Ｈの前に停止する。機関車４０及び貨車１０Ａ，１０Ｂ，１０Ｃ，１０Ｄが停止すると、荷物操作ユニット２０Ｅは、貨車１０Ａに搭載された荷物３０Ａを荷物置場８０Ｅへ降ろし、荷物操作ユニット２０Ｆは、貨車１０Ｂに搭載された荷物３０Ｂを荷物置場８０Ｆへ降ろし、荷物操作ユニット２０Ｇは、貨車１０Ｃに搭載された荷物３０Ｃを荷物置場８０Ｇへ降ろし、荷物操作ユニット２０Ｈは、貨車１０Ｄに搭載された荷物３０Ｄを荷物置場８０Ｈへ降ろす。
【０１０４】
荷物操作ユニット８０Ｅ，８０Ｆ，８０Ｇ，８０Ｈは、荷物の積降が終了すると、荷物の積降が終了したことを示す信号をレール５０を介して信号ユニット６０Ｂへ送信する。信号ユニット６０Ｂは、荷物の積降が終了したことを示す信号を受信すると、発車信号を機関車４０へ送信する。そして、機関車４０は、発車信号を受信すると発車する。
【０１０５】
上述した動作により、荷物置場８０Ａ，８０Ｂ，８０Ｃ，８０Ｄから成る荷物置場群Ａにある荷物３０Ａ，３０Ｂ，３０Ｃ，３０Ｄが荷物置場８０Ｅ，８０Ｆ，８０Ｇ，８０Ｈから成る荷物置場群Ｂへ移動される。つまり、荷物置場群Ａというブロックから荷物置場群Ｂというブロックへデータ（荷物３０Ａ，３０，３０Ｃ，３０Ｄ）が転送されたことになる。
【０１０６】
従って、図１０に示す貨車１０Ａ，１０Ｂ，１０Ｃ，１０Ｄ等の玩具を学習システム１００から選択して組立てることによってプログラムを構成する１つの機能であるブロック転送命令を実現可能である。
【０１０７】
［算術演算］
図１１は、プログラムを構成する１つの機能である算術演算を学習システム１００を用いて実現する方法を示す図である。ユーザは、貨車１０Ａ，１０Ｂ，１０Ｃ、荷物操作ユニット２０Ａ，２０Ｂ、荷物３０Ａ，３０Ｂ、機関車４０、レール５０、信号ユニット６０、及び荷物置場８０Ａ，８０Ｂを学習システム１００から選択して図１１に示すように組立てる。そして、ユーザは、貨車１０Ａ，１０Ｂ，１０Ｃのスイッチ１４を「１」の位置へ移動させる。つまり、ユーザは、貨車１０Ａ，１０Ｂに搭載される荷物３０Ａ，３０Ｂが個数に意味がある変数を示すようにセットする。
【０１０８】
図１１においては、算術演算の例として“ＡＤＤ　Ａ，Ｂ”を実現する方法を説明する。レール５０の近くに信号ユニット６０、荷物操作ユニット２０Ａ，２０Ｂ、及び荷物置場８０Ａ，８０Ｂが配置される。そして、荷物置場８０Ａ，８０Ｂは、それぞれ、荷物操作ユニット２０Ａ，２０Ｂに対応して配置される。また、機関車４０は、貨車１０Ａ，１０Ｂ，１０Ｃを牽引する。
【０１０９】
荷物操作ユニット２０Ａは、荷物操作ユニット２０Ｂから受信した個数と同じ個数の荷物３０Ａを荷物置場８０Ａから貨車１０Ａへ積込む。また、荷物操作ユニット２０Ｂは、貨車１０Ｂに搭載された荷物３０Ｂの個数を検出し、その検出した個数をレール５０を介して荷物操作ユニット２０Ａへ送信する。
【０１１０】
信号ユニット６０は、機関車４０が近づくと、停止信号をレール５０を介して機関車４０へ送信し、機関車４０及び貨車１０Ａ，１０，１０Ｃは停止する。この場合、貨車１０Ａ，１０Ｂは、それぞれ、荷物操作ユニット２０Ａ，２０Ｂの前に停止する。貨車１０Ａ，１０Ｂが停止すると、荷物操作ユニット２０Ｂは、貨車１０Ｂに搭載された荷物３０Ｂの個数を上述した方法により検出し、その検出した個数をレール５０を介して荷物操作ユニット２０Ａへ送信する。
【０１１１】
荷物操作ユニット２０Ａは、レール５０を介して荷物３０Ｂの個数を受信すると、その受信した個数と同じ個数の荷物３０Ａを上述した移動機構を用いて荷物置場８０Ａから貨車１０Ａに積込む。そして、荷物操作ユニット２０Ａは、荷物３０Ａの積込が終了すると、荷物の積込が終了したことを示す信号をレール５０を介して信号ユニット６０へ送信する。
【０１１２】
信号ユニット６０は、荷物の積込が終了したことを示す信号をレール５０を介して受信すると、発車信号をレール５０を介して機関車４０へ送信し、機関車４０は、発車信号を受信すると発車する。
【０１１３】
このように、ユーザは、貨車１０、荷物操作ユニット２０、荷物３０、機関車４０、レール５０、信号ユニット６０、及び荷物置場８０を学習システム１００から選択して図１１に示すシステムを組立てることにより、貨車１０Ｂに搭載された荷物３０Ｂの個数と同じ個数の荷物３０Ａを貨車１０Ａに加えることを実現できる。従って、算術命令“ＡＤＤ　Ａ，Ｂ”の変数Ｂを貨車１０Ｂに見立て、変数Ａを貨車１０Ａに見立てれば、図１１に示すシステムによりプログラムを構成する１つの機能である算術命令“ＡＤＤ　Ａ，Ｂ”を実現可能である。
【０１１４】
この場合、貨車１０Ａは、荷物操作ユニット２０Ａが荷物３０Ａの搭載を終了した後に、搭載されている荷物３０Ａの個数を上述した方法により検出し、その検出した個数をレール５０を介して他へ送信する。従って、貨車１０Ａは、演算結果を示す貨車となる。また、貨車１０Ｂは、変数Ｂの取り得る値を示す貨車となる。
【０１１５】
なお、図１１においては、加算演算の例を示したが、ユーザは、学習システム１００を用いれば、他の演算も実現可能である。
【０１１６】
［シフト演算］
図１２は、プログラムを構成する１つの機能であるシフト演算を学習システム１００を用いて実現する方法を示す図である。ユーザは、貨車１０Ａ，１０Ｂ、荷物操作ユニット２０、荷物３０Ａ、機関車４０、レール５０、信号ユニット６０及び荷物置場８０を学習システム１００から選択し、図１２に示すシステムを組立てる。そして、ユーザは、貨車１０Ａ，１０Ｂのスイッチ１４を「２」の位置へ移動させる。つまり、ユーザは、貨車１０Ａ，１０Ｂに搭載される荷物３０Ａが配置位置に意味がある変数を示すようにセットする。
【０１１７】
レール５０を用いて形成された経路の近くに信号ユニット６０、荷物操作ユニット２０及び荷物置場８０が配置される。荷物操作ユニット２０は、貨車１０Ａに搭載された荷物３０Ａの位置を変える。荷物置場８０は、荷物操作ユニット２０に対応して配置される。機関車４０は、貨車１０Ａ，１０Ｂを牽引する。
【０１１８】
機関車４０が信号ユニット６０に近づくと、信号ユニット６０は、停止信号をレール５０を介して機関車４０へ送信し、機関車４０はレール５０を介して停止信号を受信して停止する。荷物操作ユニット２０は、貨車１０Ａに搭載された荷物３０Ａの配置位置を上述した方法により検出し、荷物３０Ａの配置位置を上述した移動機構を用いて変える。
【０１１９】
そして、荷物操作ユニット２０は、荷物３０Ａの配置位置の変更が終了すると、配置位置の変更が終了したことを示す信号をレール５０を介して信号ユニット６０へ送信する。信号ユニット６０は、レール５０を介して荷物の配置位置の変更が終了したことを示す信号を受信し、発車信号をレール５０を介して機関車４０へ送信し、機関車４０は、レール５０を介して発車信号を受信して発車する。
【０１２０】
このように、図１２に示すシステムにおいては、貨車１０Ａに搭載された荷物３０Ａの配置位置が荷物操作ユニット２０によって変えられる。つまり、荷物３０Ａの配置位置によって表わされた数（ビット数）がシフトされたことになる。
【０１２１】
この場合、貨車１０Ａは、変数の数値および演算結果を表わす貨車である。
このように、ユーザは、貨車１０Ａ，１０Ｂ、荷物操作ユニット２０、荷物３０Ａ、機関車４０、レール５０、信号ユニット６０及び荷物置場８０を学習システム１００から選択し、図１２に示すシステムを組立てることにより、プログラムを構成する１つの機能であるシフト演算を実現することができる。
【０１２２】
［ビット演算］
図１３は、プログラムを構成する１つの機能であるビット演算を学習システム１００を用いて実現する方法を示す図である。ユーザは、貨車１０Ａ，１０Ｂ，１０Ｃ、荷物操作ユニット２０、荷物３０Ａ，３０Ｂ，３０Ｃ、機関車４０、レール５０及び信号ユニット６０を学習システム１００から選択し、図１３に示すシステムを組立てる。そして、ユーザは、貨車１０Ａ，１０Ｂ，１０Ｃのスイッチ１４を「２」の位置へ移動する。つまり、ユーザは、貨車１０Ａ，１０Ｂ，１０Ｃに搭載される荷物３０Ａ，３０Ｂ，３０Ｃが配置位置に意味がある変数を示すようにセットする。
【０１２３】
レール５０によって形成された経路の近くに信号ユニット６０、及び荷物操作ユニット２０が配置されている。ビット演算ブロック２０１が荷物操作ユニット２０に付随している。
【０１２４】
ビット演算ブロック２０１は、入口２０１Ａと、出口２０１Ｂと、ビット設定部２０１Ｃとを含む。入口２０１Ａは、荷物３０Ａ，３０Ｂ，３０Ｃをビット演算ブロック２０１に入れるためのものである。出口２０１Ｂは、ビット演算の結果を出力するためのものである。図１３においては、ビット演算ブロック２０１は、論理積（ＡＮＤ）を演算するものとして示されており、ビット設定部２０１Ｃは、乗算すべき数を設定するためのものである。
【０１２５】
学習システム１００を用いてビット演算の機能を実現する場合、貨車１０Ａに搭載された荷物３０Ａ，３０Ｂ，３０Ｃは、配置位置に意味がある変数として機能する。従って、荷物操作ユニット２０は、貨車１０Ａに搭載された荷物３０Ａ，３０Ｂ，３０Ｃの配置位置を上述した方法により検出し、貨車１０Ａに設定されたビット数を認識する。図１３に示す場合、荷物３０Ａ，３０Ｂ，３０Ｃは、４ビットの数を表わし、荷物操作ユニット２０は、４ビットの数「１１０１」を認識して荷物３０Ａ，３０Ｂ，３０Ｃを荷物３０Ａから、順次、ビット演算ブロック２０１の入口２０１Ａに入れる。
【０１２６】
そして、荷物操作ユニット２０の制御装置２１５は、貨車１０Ａに搭載された荷物３０Ａ，３０Ｂ，３０Ｃによって表わされた数「１１０１」と、ビット設定部２０１Ｃに設定された数との論理積を演算し、その演算結果を示すように荷物をビット配列して出口２０１Ｂから出す。その後、荷物操作ユニット２０は、出口２０１Ｂから出された荷物のビット配列を維持して荷物を貨車１０Ａに積込む。
【０１２７】
荷物操作ユニット２０は、演算結果を示す荷物を貨車１０Ａへ積込むと、荷物の積込が終了したことを示す信号をレール５０を介して信号ユニット６０へ送信する。信号ユニット６０は、荷物の積込が終了したことを示す信号をレール５０を介して受信すると、発車信号をレール５０を介して機関車４０へ送信し、機関車４０は、発車信号をレール５０を介して受信して発車する。
【０１２８】
荷物操作ユニット２０は、ビット演算を行なうとき、貨車１０Ａに搭載された荷物３０Ａ，３０Ｂ，３０Ｃをビット演算ブロック２０１の入口２０１Ａに入れると説明したが、これは、４ビットの数「１１０１」を表わす荷物３０Ａ，３０Ｂ，３０Ｃを入口２０１Ａに入れると、ビット設定部２０１Ｂに設定された数との論理積を演算し、その演算結果を示す荷物のビット配列を出口２０１Ｂから出すことにより、ビット演算が行なわれたことをユーザに視覚的に理解させるためである。
【０１２９】
従って、この発明においては、ビット演算が行なわれたことをユーザに視覚的に理解さえることができるのであれば、貨車１０Ａに搭載された４ビットの数「１１０１」を表わす荷物３０Ａ，３０Ｂ，３０Ｃをビット演算ブロック２０１の入口２０１Ａに入れることは必ずしても必要ではない。
【０１３０】
例えば、４ビットの数「１１０１」を表わす荷物３０Ａ，３０Ｂ，３０Ｃを貨車１０Ａに搭載したまま、４ビットの数「１１０１」とビット設定部２０１Ｃに設定された数との論理積を演算し、その演算結果を示すように貨車１０Ａに搭載された荷物３０Ａ，３０Ｂ，３０Ｃの配列を変えてもよい。荷物操作ユニット２０は、上述した方法により貨車１０Ａに搭載された荷物３０Ａ，３０Ｂ，３０Ｃの配置位置を検出可能であるので、荷物３０Ａ，３０Ｂ，３０Ｃの配置位置によって表わされるビット数「１１０１」を認識でき、ビット設定部２０１Ｃに設定された数も認識可能である。従って、荷物操作ユニット２０は、ビットで表現された２つの数の論理積を演算でき、その演算結果を示すように貨車１０Ａ上の荷物３０Ａ，３０Ｂ，３０Ｃの配置位置を容易に並べ替えられる。
【０１３１】
また、図１３においては、ビット演算ブロック２０１は、入口２０１Ａ、出口２０１Ｂ及びビット設定部２０１Ｃから成るセットを４セットを備え、これらの４セットの入口２０１Ａから荷物３０Ａ，３０Ｂ，３０Ｃを入れることにより全て論理積（ＡＮＤ）を演算するものとして示されているが、この実施の形態においては、全て同じ演算を行なわなくてもよく、論理和（ＯＲ）または排他的論理和（ＸＯＲ）を演算するようにしてもよい。
【０１３２】
このように、ユーザは、貨車１０Ａ，１０Ｂ，１０Ｃ、荷物操作ユニット２０、荷物３０Ａ，３０Ｂ，３０Ｃ、機関車４０、レール５０及び信号ユニット６０を学習システム１００から選択し、図１３に示すシステムを組立てることにより、プログラムを構成する１つの機能であるビット演算を実現することができる。
【０１３３】
［分岐処理］
図１４は、プログラムを構成する１つの機能である分岐処理を学習システム１００を用いて実現する方法について示す図である。ユーザは、貨車１０Ａ，１０Ｂ、荷物操作ユニット２０Ａ，２０Ｂ、荷物３０Ａ，３０Ｂ、機関車４０、レール５０Ａ，５０Ｂ，５０Ｃ、信号ユニット６０、ポイントユニット７０及び荷物置場８０Ａ，８０Ｂを学習システム１００から選択し、図１４に示すシステムを組立てる。そして、ユーザは、貨車１０Ａ，１０Ｂのスイッチ１４を「１」の位置に移動する。つまり、ユーザは、貨車１０Ａ，１０Ｂに搭載される荷物３０Ａ，３０Ｂが個数に意味がある変数を示すようにセットする。
【０１３４】
レール５０Ａで形成された経路、レール５０Ｂで形成された経路、及びレール５０Ｃで形成された経路がポイントユニット７０に接続される。信号ユニット６０、荷物操作ユニット２０Ａ，２０Ｂ及び荷物置場８０Ａ，８０Ｂがレール５０Ａで形成された経路の近傍に配置される。荷物置場８０Ａ，８０Ｂは、それぞれ、荷物操作ユニット２０Ａ，２０Ｂに対応して配置される。
【０１３５】
荷物操作ユニット２０Ａ，２０Ｂは、それぞれ、貨車１０Ａ，１０Ｂに搭載された荷物３０Ａ，３０Ｂの個数を検出し、その検出した個数をレール５０Ａを介してポイントユニット７０へ送信するとともに、荷物３０Ａ，３０Ｂの個数の検出が終了したことを示す信号をレール５０Ａを介して信号ユニット６０へ送信する。
【０１３６】
ポイントユニット７０は、受信した荷物３０Ａ，３０Ｂの個数が予め設定された条件を満たすとき、機関車４０及び貨車１０Ａ，１０Ｂが進行する経路を、レール５０Ｃで形成された経路へ切換え、受信した荷物３０Ａ，３０Ｂの個数が予め設定された条件を満たさないとき、機関車４０及び貨車１０Ａ，１０Ｂが進行する経路を、レール５０Ａで形成された経路の延長に相当するレール５０Ｂで形成された経路とする。
【０１３７】
信号ユニット６０は、機関車４０及び貨車１０Ａ，１０Ｂが近づくと、停止信号をレール５０Ａを介して機関車４０へ送信し、機関車４０は停止信号をレール５０Ａを介して受信して停止する。
【０１３８】
荷物操作ユニット２０Ａは、貨車１０Ａに搭載された荷物３０Ａの個数を上述した方法により検出し、その検出した個数をレール５０Ａを介してポイントユニット７０へ送信するとともに、荷物３０Ａの個数の検出を終了したことを示す信号をレール５０Ａを介して信号ユニット６０へ送信する。また、荷物操作ユニット２０Ｂは、貨車１０Ｂに搭載された荷物３０Ｂの個数を上述した方法により検出し、その検出した個数をレール５０Ａを介してポイントユニット７０へ送信するとともに、荷物３０Ｂの個数の検出を終了したことを示す信号をレール５０Ａを介して信号ユニット６０へ送信する。
【０１３９】
信号ユニット６０は、荷物操作ユニット２０Ａ，２０Ｂから荷物の個数の検出を終了したことを示す信号をレール５０Ａを介して受信すると、発車信号をレール５０Ａを介して機関車４０へ送信する。機関車４０は、レール５０Ａを介して発車信号を受信して発車する。また、ポイントユニット７０は、荷物操作ユニット２０Ａ，２０Ｂから受信した荷物３０Ａの個数及び荷物操作ユニット２０Ｂから受信した荷物３０Ｂの個数が予め設定された条件を満たすか否かを判定し、予め設定された条件を満たすとき、経路をレール５０Ｃにより形成される経路に切換える。そして、ポイントユニット７０まで進行した機関車４０及び貨車１０Ａ，１０Ｂは、レール５０Ｃで形成される経路を進行する。
【０１４０】
一方、ポイントユニット７０は、受信した荷物３０Ａの個数及び荷物３０Ｂの個数が予め設定された条件を満たさないとき、経路を切換えず、レール５０Ａで形成される経路と同じ経路に機関車４０及び貨車１０Ａ，１０Ｂを進行させる。
【０１４１】
このように、ポイントユニット７０は、貨車１０Ａ，１０Ｂに搭載された荷物の個数によって予め設定された条件を満たすか否かを判定し、その判定結果に応じて機関車４０及び貨車１０Ａ，１０Ｂが進行する経路を切換えるので、プログラムにおける分岐処理を行なうものである。
【０１４２】
従って、ユーザは、貨車１０Ａ，１０Ｂ、荷物操作ユニット２０Ａ，２０Ｂ、荷物３０Ａ，３０Ｂ、機関車４０、レール５０Ａ，５０Ｂ，５０Ｃ、信号ユニット６０、ポイントユニット７０及び荷物置場８０Ａ，８０Ｂを学習システム１００から選択し、図１４に示すシステムを組立てることにより、プログラムを構成する１つの機能である分岐処理を実現することができる。
【０１４３】
［入出力処理］
図１５は、プログラムを構成する１つの機能である入出力処理を学習システム１００を用いて実現する方法について示す図である。ユーザは、貨車１０Ａ，１０Ｂ、荷物操作ユニット２０Ａ，２０Ｂ、荷物３０Ａ，３０Ｂ、機関車４０、レール５０Ａ，５０Ｂ，５０Ｃ、信号ユニット６０、ポイントユニット７０、荷物置場８０Ａ，８０Ｂ、入力ユニット９０及び出力ユニット１１０を学習システム１００から選択し、図１５に示すシステムを組立てる。そして、ユーザは、貨車１０Ａ，１０Ｂのスイッチ１４を「１」の位置へ移動する。つまり、ユーザは、貨車１０Ａ，１０Ｂに搭載される荷物３０Ａ，３０Ｂが個数に意味がある変数を示すようにセットする。
【０１４４】
ポイントユニット７０の入力に入力ユニット９０を接続すると、ユーザがマイク９１により指示を与えることによりポイントユニット７０を制御して経路を切換えることができ、またはユーザがスイッチ９２を設定することによりポイントユニット７０を制御して経路を切換えることができる。
【０１４５】
また、荷物操作ユニット２０Ｂに出力ユニット１１０を接続すると、荷物操作ユニット２０Ｂの動作の終了をライト１１１、モーター１１２、及び計算機１１３により表示できる。即ち、荷物操作ユニット２０Ｂは、所定の動作を終了すると、動作が終了したことを示す信号をライト１１１へ送信してライト１１１を点灯する。また、荷物操作ユニット２０Ｂは、動作が終了したことを示す信号をモーター１１２へ送信してモーター１１２を回転させる。更に、荷物操作ユニット２０Ｂは、動作が終了したことを示す信号を計算機１１３へ送信して計算機１１３のディスプレイに処理が終了したことを表示させる。
【０１４６】
このように、ユーザは、貨車１０Ａ，１０Ｂ、荷物操作ユニット２０Ａ，２０Ｂ、荷物３０Ａ，３０Ｂ、機関車４０、レール５０Ａ，５０Ｂ，５０Ｃ、信号ユニット６０、ポイントユニット７０、荷物置場８０Ａ，８０Ｂ、入力ユニット９０及び出力ユニット１１０を学習システム１００から選択し、図１５に示すシステムを組立てることにより、プログラムを構成する１つの機能である入出力処理を実現可能である。
【０１４７】
次に、”２”と”３”とを乗算するプログラムを学習システム１００を用いて実現する例について説明する。図１６は、”２”と”３”とを乗算するプログラムを示す図である。”２”と”３”とを乗算するプログラムは、変数Ｂに”３”をロードするステップ（Ｓ１）と、変数Ａに”２”をロードするステップ（Ｓ２）と、変数Ａの値をＤＡＴＡに加えるステップ（Ｓ３）と、変数Ｂの値から１を引くステップ（Ｓ４）と、変数Ｂの値が”０”でなければステップ（Ｓ３）へジャンプし、変数Ｂの値が”０”であれば次のステップ（Ｓ６）へ移行するステップ（Ｓ５）と、演算を停止するステップ（Ｓ６）とを含む。
【０１４８】
ステップ（Ｓ３）〜ステップ（Ｓ５）は、ループを形成しており、このループは、変数Ｂの値が”０”になるまで繰返し実行されるので、ステップ（Ｓ３）における変数Ａの値”２”をＤＡＴＡに加える演算は変数Ｂの値である”３”回行なわれる。その結果、演算結果”６”が得られる。
【０１４９】
図１７は、図１６に示すプログラムを学習システム１００を用いて実現する鉄道模型を示す図である。ユーザは、貨車１０Ａ，１０Ｂ，１０Ｃ、荷物操作ユニット２０Ａ，２０Ｂ、荷物３０Ａ，３０Ｂ，３０Ｃ、機関車４０、レール５０、ポイントユニット７０及び荷物置場８０Ａ，８０Ｂを学習システム１００から選択し、鉄道模型２００を組立てる。
【０１５０】
ユーザは、レール５０１〜５０ｎの中から複数のレールを選択して直線の経路７１と、ループ状の経路７２とを組み立てる。そして、ユーザは、経路７１の途中にポイントユニット７０を配置し、経路７２を経路７１に接続する。また、ユーザは、荷物操作ユニット２０Ａ，２０Ｂを経路７２の途中に配置し、荷物置場８０Ａ，８０Ｂをそれぞれ荷物操作ユニット２０Ａ，２０Ｂに対応して配置する。更に、ユーザは、複数個の荷物３０Ｃを荷物置場８０Ａに配置する。更に、ユーザは、貨車１０Ａ，１０Ｂ，１０Ｃのスイッチ１４を「１」の位置に移動する。つまり、ユーザは、貨車１０Ａ，１０Ｂ，１０Ｃに搭載される荷物３０Ａ，３０Ｂ，３０Ｃが個数に意味がある変数を示すようにセットする。
【０１５１】
機関車４０は、貨車１０Ａ，１０Ｂ，１０Ｃを牽引する。貨車１０Ａは、２個の荷物３０Ａを搭載する。貨車１０Ｂは、３個の荷物３０Ｂを搭載する。貨車１０Ｃは、最初、荷物を搭載しない。
【０１５２】
荷物操作ユニット２０Ａは、機関車４０が経路７２を進行して来ると、貨車１０Ａに搭載された荷物３０Ａの個数を検出し、その検出した個数と同じ個数の荷物３０Ｃを荷物置場８０Ａから貨車１０Ｃに搭載する。荷物操作ユニット２０Ｂは、機関車４０が近づいて来ると、貨車１０Ｂに搭載された荷物３０Ｂを１個荷物置場８０Ｂへ降ろす。そして、荷物操作ユニット２０Ｂは、貨車１０Ｂに搭載された荷物３０Ｂの個数を検出し、その検出した個数を経路７２を構成するレール５０を介してポイントユニット７０へ送信する。
【０１５３】
ポイントユニット７０は、機関車４０が経路７１を進行して近づいてきたとき、機関車４０が経路７２を進行するように経路を切換える。また、ポイントユニット７０は、機関車４０が経路７２を進行しているとき、荷物操作ユニット２０Ｂからの個数を受信し、その受信した個数が”０”でないとき経路を切換えず、受信した個数が”０”であるとき機関車４０が経路７１を進行するように経路を切換える。
【０１５４】
図１８及び図１９は、鉄道模型２００を用いて”２”と”３”とを乗算し、乗算結果”６”を得る過程を示す図である。図１８は、初期状態（図１８の（ａ））と、機関車４０及び貨車１０Ａ，１０Ｂ，１０Ｃが経路７２を１周した状態（図１８の（ｂ））とを示す。また、図１９は、機関車４０及び貨車１０Ａ，１０Ｂ，１０Ｃが経路７２を２周した状態（図１９の（ａ））と、機関車４０及び貨車１０Ａ，１０Ｂ，１０Ｃが経路７２を３周した状態（図１９の（ｂ））と、終了状態（図１９の（ｃ））とを示す。
【０１５５】
まず、初期状態においては、機関車４０及び貨車１０Ａ，１０Ｂ，１０Ｃは、出発駅２１０に停車している。そして、貨車１０Ａは、２個の荷物３０Ａを搭載しており、貨車１０Ｂは、３個の荷物３０Ｂを搭載しており、貨車１０Ｃは、荷物を搭載していない（図１８の（ａ）参照）。貨車１０Ａが２個の荷物３０Ａを搭載していることは、変数Ａに数値”２”をロードしたこと（図１７のステップ（Ｓ２））を意味する。また、貨車１０Ｂが３個の荷物３０Ｂを搭載していることは、変数Ｂに数値”３”をロードしたこと（図１７のステップ（Ｓ１））を意味する。
【０１５６】
その後、機関車４０及び貨車１０Ａ，１０Ｂ，１０Ｃが出発駅２１０を出発し、ポイントユニット７０に近づくと、ポイントユニット７０は、機関車４０及び貨車１０Ａ，１０Ｂ，１０Ｃが進行すべき経路を経路７１から経路７２に切換える。そして、機関車４０及び貨車１０Ａ，１０Ｂ，１０Ｃは経路７２を矢印２３０の方向に進行し、荷物操作ユニット２０Ａに近づく。荷物操作ユニット２０Ａは、機関車４０及び貨車１０Ａ，１０Ｂ，１０Ｃが近づくと、貨車１０Ａに搭載された荷物３０Ａの個数を検出し、その検出した個数と同じ個数の荷物３０Ｃを荷物置場８０Ａから貨車１０Ｃに搭載する。つまり、荷物操作ユニット２０Ａは、貨車１０Ａに搭載された２個の荷物３０Ａを検出し、２個の荷物３０Ｃを荷物置場８０Ａから貨車１０Ｃに２個の荷物３０Ｄとして搭載する（図１６に示すステップ（Ｓ３）が１回実行されたことを意味する）。
【０１５７】
機関車４０及び貨車１０Ａ，１０Ｂ，１０Ｃが経路７２を更に進行し、荷物操作ユニット２０Ｂに近づくと、荷物操作ユニット２０Ｂは、３個の荷物３０Ｂのうち、１個の荷物３０Ｂを貨車１０Ｂから荷物置場８０Ｂに降ろす（図１６に示すステップ（Ｓ４）が１回実行されたことを意味する）。そして、荷物操作ユニット２０Ｂは、貨車１０Ｂに搭載された荷物３０Ｂの個数（２個）を検出し、その検出した個数（２個）を経路７２を構成するレール５０を介してポイントユニット７０へ送信する。
【０１５８】
ポイントユニット７０は、レール５０を介して荷物操作ユニット２０Ｂから個数（２個）を受信し、その受信した個数（２個）が”０”であるか否かを判定する。この場合、ポイントユニット７０が受信した個数は”０”ではないので、ポイントユニット７０は、経路を切換えず、機関車４０及び貨車１０Ａ，１０Ｂ，１０Ｃは、再び、経路７２を矢印２３０の方向へ進行する（図１８の（ｂ）参照。図１６に示すステップ（Ｓ５）が１回実行されたことを意味する）。
【０１５９】
機関車４０及び貨車１０Ａ，１０Ｂ，１０Ｃが経路７２を進行し（２周目）、荷物操作ユニット２０Ａに近づくと、荷物操作ユニット２０Ａは、貨車１０Ａに搭載された２個の荷物３０Ａを検出し、その検出した荷物３０Ａの個数（２個）と同じ個数の荷物３０Ｃを荷物置場８０Ａから貨車１０Ｃに２個の荷物３０Ｄとして搭載する（図１６に示すステップ（Ｓ３）が２回実行されたことを意味する）。
【０１６０】
機関車４０及び貨車１０Ａ，１０Ｂ，１０Ｃが更に進行して荷物操作ユニット２０Ｂに近づくと、荷物操作ユニット２０Ｂは、２個の荷物３０Ｂのうち、１個の荷物３０Ｂを貨車１０Ｂから荷物置場８０Ｂに降ろす（図１６に示すステップ（Ｓ４）が２回実行されたことを意味する）。そして、荷物操作ユニット２０Ｂは、貨車１０Ｂに搭載された荷物３０Ｂの個数（１個）を検出し、その検出した個数（１個）を経路７２を構成するレール５０を介してポイントユニット７０へ送信する。
【０１６１】
ポイントユニット７０は、レール５０を介して荷物操作ユニット２０Ｂから個数（１個）を受信し、その受信した個数（１個）が”０”であるか否かを判定する。この場合、ポイントユニット７０が受信した個数は”０”ではないので、ポイントユニット７０は、経路を切換えず、機関車４０及び貨車１０Ａ，１０Ｂ，１０Ｃは、更に、経路７２を矢印２３０の方向へ進行する（図１９の（ｂ）参照、図１６に示すステップ（Ｓ５）が２回実行されたことを意味する）。
【０１６２】
機関車４０及び貨車１０Ａ，１０Ｂ，１０Ｃが経路７２を進行し（３周目）、荷物操作ユニット２０Ａに近づくと、荷物操作ユニット２０Ａは、貨車１０Ａに搭載された２個の荷物３０Ａを検出し、その検出した荷物３０Ａの個数（２個）と同じ個数の荷物３０Ｃを荷物置場８０Ａから貨車１０Ｃに２個の荷物３０Ｄとして搭載する（図１６に示すステップ（Ｓ３）が３回実行されたことを意味する）。
【０１６３】
機関車４０及び貨車１０Ａ，１０Ｂ，１０Ｃが更に進行して荷物操作ユニット２０Ｂに近づくと、荷物操作ユニット２０Ｂは、残された１個の荷物３０Ｂを貨車１０Ｂから荷物置場８０Ｂに降ろす（図１６に示すステップ（Ｓ４）が３回実行されたことを意味する）。そして、荷物操作ユニット２０Ｂは、貨車１０Ｂに搭載された荷物３０Ｂの個数（０個）を検出し、その検出した個数（０個）を、経路７２を構成するレール５０を介してポイントユニット７０へ送信する。
【０１６４】
ポイントユニット７０は、レール５０を介して荷物操作ユニット２０Ｂから個数（０個）を受信し、その受信した個数（０個）が”０”であるか否かを判定する。この場合、ポイントユニット７０が受信した個数は”０”であるので、ポイントユニット７０は、経路を経路７２から経路７１に切換える。そして、機関車４０及び貨車１０Ａ，１０Ｂ，１０Ｃは、経路７１を矢印２４０の方向へ進行し、到着駅２２０に到着する（図１９の（ｃ）参照。図１６に示すステップ（Ｓ５）が実行され、ステップＳ６へ移行されてことを意味する）。
【０１６５】
機関車４０及び貨車１０Ａ，１０Ｂ，１０Ｃが到着駅２２０に到着した状態では、貨車１０Ｃには、６個の荷物３０Ｄが搭載されており、ユーザは、演算結果が”６”であることを認識する。
【０１６６】
このように、ユーザは、貨車１０Ａ，１０Ｂ，１０Ｃ、荷物操作ユニット２０Ａ，２０Ｂ、荷物３０Ａ，３０Ｂ，３０Ｃ，３０Ｄ、機関車４０、レール５０、ポイントユニット７０及び荷物置場８０Ａ，８０Ｂを学習システム１００から選択して鉄道模型２００を組立て、その組立てた鉄道模型２００を動作させることにより、貨車１０Ａ，１０Ｂ，１０Ｃ、荷物操作ユニット２０、荷物３０Ａ，３０Ｂ，３０Ｃ，３０Ｄ及びポイントユニット７０の動作が図１６に示すプログラムの各ステップを実行することに対応する。
【０１６７】
従って、ユーザ（特に子供）は、図１８の（ａ），（ｂ）及び図１９の（ａ），（ｂ），（ｃ）で示した一連の動作を見れば、貨車１０Ａに搭載された荷物３０Ａの個数である数値”２”と、貨車１０Ｂに搭載された荷物３０Ｂの個数である数値”３”とを乗算すれば、貨車１０Ｃに搭載された荷物３０Ｄの個数である数値”６”になることを容易に理解できる。つまり、ユーザ（特に子供）は、上述した一連の動作を見れば、数値”２”と数値”３”とを乗算して数値”６”を得るプログラムが実行されたことを体感できる。
【０１６８】
また、ユーザは、鉄道模型２００を組立てて遊んでいる途中で、貨車１０Ａ，１０Ｂ，１０Ｃをレール５０から取り去ったり、荷物３０Ａ，３０Ｂ，３０Ｃ，３０Ｄを他の場所へ移動させたりすることができる。すなわち、ユーザは、鉄道模型２００の稼動中に、その稼動を停止させたり、稼動内容を変更したりできる。これは、プログラムの実行中におけるデバッグ機能に相当する。従って、ユーザは、鉄道模型２００に自由に介入することができ、それにより、プログラムのデバック機能も体感できる。
【０１６９】
このように、学習システム１００を用いれば、コンピュータを使用することができないユーザ（特に子供）であっても、プログラムを体感することができる。また、ユーザ（特に子供）は、学習システム１００を用いて遊んでいる途中で学習システム１００を構成する貨車１０及び荷物３０等の全ての部品を自由に移動させることができ、それにより、プログラムのデバック機能を体感することができる。従って、学習システム１００を構成する貨車１０、荷物操作ユニット２０、および荷物３０等の全ての部品は、適宜選択されて組立てられたシステムにおいて、ユーザによる介入を自由に受けるものである。
【０１７０】
上記においては、”２”と”３”とを乗算するプログラムを学習システム１００を用いて実現できることを説明したが、学習システム１００を用いれば、乗算以外の演算を実行するプログラムを実現できる。
【０１７１】
なお、上記においては、算術演算を実行するプログラムを例にして、その算術演算を実行するプログラムを体感できることを説明したが、ユーザは、学習システム１００を用いれば、サブルーチンを含むプログラム、または上述した転送命令、ブロック転送命令及びビット演算等の各種の機能を含むプログラムを体感可能な鉄道模型を組立てることができる。
【０１７２】
また、上記においては、貨車１０、荷物操作ユニット２０、機関車４０、信号ユニット６０、及びポイントユニット７０は、レール５０を介して信号及びデータ等を送受信するとして説明したが、この発明においては、これに限らず、無線を介して信号及びデータ等を送受信してもよい。無線を介して信号及びデータ等を送受信する場合、貨車１０、荷物操作ユニット２０、機関車４０、信号ユニット６０、及びポイントユニット７０は、ブルーツース（Ｂｌｕｅｔｏｏｔｈ）用の送受信装置を搭載している。
【０１７３】
更に、上記においては、鉄道模型用の玩具によりプログラムを体感できることを説明したが、この発明は、鉄道模型に限らず、プログラムを体感可能な他の玩具も含む。
【０１７４】
上述したように、この発明による学習システムを用いることにより、ユーザ、特にプログラムを作成することができないユーザ（子供）であっても、玩具を用いた遊びを通して各種の演算を実行するプログラムを体感できる。
【０１７５】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した実施の形態の説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内でのすべての変更が含まれることが意図される。
【図面の簡単な説明】
【図１】この発明の実施の形態による学習システムを構成する玩具を示す図である。
【図２】図１に示す貨車の構成図である。
【図３】図１に示す学習システムにおける変数を概念的に説明するための図である。
【図４】図１に示す荷物操作ユニットの構成図である。
【図５】図４に示す回転制御装置の構成図である。
【図６】図４に示す伸縮制御装置の構成図である。
【図７】図１に示す荷物操作ユニットの機能を説明するための図である。
【図８】図１に示す荷物操作ユニットの他の機能を説明するための図である。
【図９】プログラムを構成する１つの機能である転送命令を図１に示す学習システムを用いて実現する方法を示す図である。
【図１０】プログラムを構成する１つの機能であるブロック転送命令を図１に示す学習システムを用いて実現する方法を示す図である。
【図１１】プログラムを構成する１つの機能である算術演算を図１に示す学習システムを用いて実現する方法を示す図である。
【図１２】プログラムを構成する１つの機能であるシフト演算を図１に示す学習システムを用いて実現する方法を示す図である。
【図１３】プログラムを構成する１つの機能であるビット演算を図１に示す学習システムを用いて実現する方法を示す図である。
【図１４】プログラムを構成する１つの機能である分岐処理を図１に示す学習システムを用いて実現する方法について示す図である。
【図１５】プログラムを構成する１つの機能である入出力処理を図１に示す学習システムを用いて実現する方法について示す。
【図１６】”２”と”３”とを乗算するプログラムを示す図である。
【図１７】図１６に示すプログラムを図１に示す学習システムを用いて実現する鉄道模型を示す図である。
【図１８】図１７に示す鉄道模型における初期状態と、１周目の状態とを示す図である。
【図１９】図１７に示す鉄道模型における２周目の状態と、３周目の状態と、終了状態とを示す図である。
【符号の説明】
１０，１０Ａ，１０Ｂ，１０Ｃ，１０Ｄ　貨車、１１，２１　本体、１２　荷台、１３，２７８，２７９　車輪、１４，９２　スイッチ、１５，２１５　制御装置、１６，２１６　送受信装置、２０，２０Ａ，２０Ｂ，２０Ｃ，２０Ｄ，２０Ｅ，２０Ｆ，２０Ｇ，２０Ｈ　荷物操作ユニット、２２〜２４　アーム、２５回転制御装置、２６　伸縮制御装置、２７　把持制御装置、２８　フック、３０，３０Ａ，３０Ｂ，３０Ｃ，３０Ｄ，３０１〜３０４　荷物、２９，３１〜３３，２１７〜２１８，２２１，２２２，２３０，２４０，２６０〜２６５，２８０〜２８５　矢印、４０　機関車、５０，５０Ａ，５０Ｂ，５０Ｃ，５０１〜５０ｎ　レール、６０，６０Ａ，６０Ｂ　信号ユニット、７０　ポイントユニット、７１，７２　経路、８０，８０Ａ，８０Ｂ，８０Ｃ，８０Ｅ，８０Ｆ，８０Ｇ，８０Ｈ　荷物置場、９０　入力ユニット、９１　マイク、１００　学習システム、１１０　出力ユニット、１１１　ライト、１１２，２１１，２５４，２７３モーター、１１３　計算機、１２１〜１３５　センサー、２００　鉄道模型、２０１　ビット演算ブロック、２０１Ａ　入口、２０１Ｂ　ビット設定部、２０１Ｃ　出口、２１２，２１４，２５５，２５７，２７４，２７７　ギア、２１０出発駅、２２０　到着駅、２１３，２５６，２７６　ベルト、２３１　開口部、２５１，２７０，２７１　基体、２５２，２７２　支持台、２５３　ピン、２５８，２５９　支持部材、２７５　軸。
【図１】
2004012923.tif 000003
【図２】
2004012923.tif 000004
【図３】
2004012923.tif 000005
【図４】
2004012923.tif 000006
【図５】
2004012923.tif 000007
【図６】
2004012923.tif 000008
【図７】
2004012923.tif 000009
【図８】
2004012923.tif 000010
【図９】
2004012923.tif 000011
【図１０】
2004012923.tif 000012
【図１１】
2004012923.tif 000013
【図１２】
2004012923.tif 000014
【図１３】
2004012923.tif 000015
【図１４】
2004012923.tif 000016
【図１５】
2004012923.tif 000017
【図１６】
2004012923.tif 000018
【図１７】
2004012923.tif 000019
【図１８】
2004012923.tif 000020
【図１９】
2004012923.tif 000021