【文献】
Junichi Niino,"ゲームプログラミングもできる、やさしい開発環境「プログラミン」、文部科学省が公開",Publickey,日本,Publickey,2010年 8月19日,[2017年1月4日検索],URL,http://www.publickey1.jp/blog/10/post_118.html
【文献】
Web担サカモト,"遊びながらプログラムが学べる文科省のWebサイト『プログラミン』がおもしろい",週間アスキーWeb,日本,株式会社KADOKAWA,2010年 8月20日,[2017年1月4日検索],URL,http://weekly.ascii.jp/elem/000/000/023/23778/
【文献】
中村亮太、外2名,"プログラミング入門教育用学習環境PEN",「情報処理学会研究報告 Vol.2005 No.104」,日本,社団法人情報処理学会,2005年10月22日,第2005巻,第104号,p.65-71,(特に、p.66-69「3.初学者向けプログラミング学習環境PEN」)
(58)【調査した分野】(Int.Cl.,DB名)
前記制御部は、取得した前記コード識別子情報及び前記位置情報をもとに、所定の構文ルールに従って構文解析して、前記出力部を制御するプログラムを生成する、ことを特徴とする請求項1乃至請求項4の何れかに記載のコーディング玩具。
【発明を実施するための形態】
【0013】
(実施形態1)
以下、図に基づいて、本発明の実施形態を説明する。
図1は、コーディング(プログラミング)玩具10の構成を示す図である。コーディング玩具10には、制御対象物である形象体20、コーディングカード(ステージ)30及びアイコンブロック(パーツ)40が含まれる。アイコンブロック40は、コーディングカード30上に配置される。本実施形態の形象体20は、人型を模しているが動物を模して形成してもよい。また、制御対象物は、形象体20に限らず、家電、テレビやパソコン等の表示画像、走行体のような他の玩具、等とすることができる。形象体20は、入力部である撮像部231によりコーディングカード30の所定の撮像範囲33を撮像して(S23)、コーディングカード30上に配置された一つ又は複数のアイコンブロック40を読み取る。形象体20は、読み取ったアイコンブロック40の種類及び配置に従い動作を行う。
【0014】
図2は、形象体20の構成を示す図である。形象体20は、制御部21、記憶部22、入力部23、出力部24、通信部25を備える。記憶部22には、
図4で後述するアイコンテーブル220が記憶される。入力部23は、撮像部231及び収音部232を有する。また、出力部24は、駆動部241、放音部242、表示部243を有する。
【0015】
撮像部231は、例えば、CCDセンサやCMOSセンサ等の撮像素子を備えたカメラであり、
図1の形象体20の目202の位置等に設けられる。撮像部231は、コーディングカード30の所定の範囲を撮像して画像データを取得する機能を有し、可視光波長帯域、紫外及び赤外等の不可視光波長帯域、あるいは一つ又は複数の特定色の光を検出することができる。収音部232は、形象体20の頭201の耳部等に設けられた収音マイクであり、音声を収音することができる。
【0016】
駆動部241は、制御部21の指示により制御対象物の形状や機能に応じて駆動可能な一つ又は複数の部位であり、本実施形態の形象体20は、駆動部241として
図1に示す頭201、目202、口203、首204、腕205、手206、胴207及び脚208を駆動対象としている。
【0017】
放音部242は、形象体20の口203の位置等に設けられたスピーカである。放音部242からは、音声が発せられ、ユーザは形象体20と会話を行うことができる。あるいは、放音部242は、音楽を発音してもよい。表示部243は、
図1に示したように目202の位置等に発光部として設けることができる。表示部243として、例えば、LED、液晶パネル、有機ELパネル等の表示素子を用いることができる。また、表示部243は、文字や絵等の表示を行うディスプレイやインジケータとして、その他の位置に設けてもよい。
【0018】
通信部25は、赤外線や特定周波数の電波を送受信し、外部の機器やネットワークと通信を行う、入力部又は出力部として機能する。また、形象体20は、内部に時計部を備えてもよい。制御部21は、この時計部により、現在時刻を取得し、放音部242や表示部243により出力させることができる。さらに、形象体20は、単体で動作するためのスイッチ(ON/OFF)や音量設定を行うためのスイッチを備えることができる。なお、本図に示した形象体20の構成は一例であり、実施の形態に合わせて一部を設けない構成としてもよいし、他の構成を付加してもよい。
【0019】
図3は、アイコンブロック40の構成を示す図である。
図3(a)は、アイコンブロック40の斜視図である。また、
図3(b)はアイコンブロック40の展開図である。本実施形態のアイコンブロック40は、一辺が約2cmの六面体形状に形成され、各面には、コード識別子としてそれぞれ異なるアイコン41(41a〜41f)が描かれている。例えば、
図3(b)のアイコンブロック40の展開図で、第一面のアイコン41aは「腕205を上に上げる」制御内容を、第二面のアイコン41bは「腕205を上に曲げる」制御内容を、第三面のアイコン41cは「腕205を下に下げる」制御内容を、第四面のアイコン41dは「腕205を上に上げる動作と伸ばす動作を繰り返す」制御内容を、第五面のアイコン41eは「腕205を伸ばす」制御内容を、そして、第六面のアイコン41fは「腕205を下に曲げる」制御内容を、それぞれ対応する絵文字により表している。なお、アイコン41と制御内容との対応関係は、
図4で後述するアイコンテーブル220で予め定義することができる。
【0020】
アイコン41は、制御対象物の機能や形状に併せて適宜定義することができる。他の例として、例えば、本実施形態の制御対象物は
図1に示した人型の形象体20であるため、目202の動作として「まぶたの開閉動作」及び「目202に設けられたLED等の表示部243の点灯、点滅動作」を、口203の動作として「放音部242による発音」及び「発音と連動した口203の開閉動作」を、首204の動作として「首204を曲げる、伸ばす又は振る動作」を、手206の動作として「手206を開く、結ぶ、叩く動作」及び「手206を開いて閉じる開閉動作」を、胴207の動作として「腰を曲げる動作」及び「おしりを振る動作」を、脚208の動作として「脚208を曲げる、伸ばす、歩く動作」を、対応するアイコン41により予め定義することができる。
【0021】
また、アイコンブロック40は、テーマに合わせて異なる色で場合分けすることができる。形象体20は、色違いのアイコン41を区別し、アイコンに多数のバリエーションを持たせることができる。このように、アイコンブロック40は、アイコン41の色(テーマ)、面の数(6面)、及び形象体20のアクション数により、複数の種類が用いられる。なお、アイコン41は、テーマや言葉に合わせたイラスト、言葉、記号等の表示を、アイコンブロック40の各面に印刷することにより表示することができる。
【0022】
図4は、アイコンテーブル220の構成を示す図である。アイコンテーブル220は、アイコン221と制御内容222を対応して記憶する。アイコン221には、「腕(右)を斜め上に上げる」や「腕(右)を上げる/伸ばすを繰り返す」等の、出力部24の駆動に関する動作アイコン223、時間に関する時間アイコン224、プログラムのフロー制御に関する制御アイコン225等の種類が含まれる。
【0023】
図5及び
図6は、アイコンの種類の例を示す図である。アイコンブロック40には、アイコン種別226,228の項目毎、又はアイコン種別226,228の分類227,229の項目毎に対応して定義されたアイコン41が描かれる。なお、本図のアイコン種別226,228及び分類227,229に示した項目は、一例として示したものであり、操作対象物の種類に応じて適宜定めることができる。以下、各項目について説明する。
【0024】
図5で、アイコン種別226「頭」、「首」、「目」、「腕(右)」、「腕(左)」、「肘(右)」、「肘(左)」、「足(右)」、「足(左)」は、形象体20の各部位の動作の指定に用いることができる。動作の具体的な内容は、さらに分類227に定められる。例えば、アイコン種別226「首」の動作に対しては、分類227として「右を向く」、「左を向く」動作が定められる。
【0025】
アイコン種別226「顔文字」は、分類227に「おはよう」、「おやすみ」、「げんき?」等に関するアイコン41を定めることができ、形象体20の感情等を表した動作や会話の指定に用いることができる。
【0026】
アイコン種別226「その他絵文字」は、分類227に「天気」、「動物」、「アイテム」、「スポーツ」等に関するアイコン41を定めることができ、形象体20の動作や会話等において扱うテーマの指定に用いることができる。例えば、分類227「アイテム」は、カメラ、かばん、お金、携帯、テレビ、音楽等とすることができる。また、分類227「スポーツ」は、サッカー、オリンピック等とすることができる。分類227「学校」は、勉強、塾、先生等とすることができる。分類227「おでかけ」は、海、遊園地、病院等とすることができる。分類227「植物」は、木、花等とすることができる。分類227「ファミリー」は、パパ、ママ等とすることができる。分類227「生活」は、歯磨き、お風呂、着替え、ご飯を食べる、トイレ等とすることができる。分類227「遊び」は、じゃんけん、さいころ等とすることができる。分類227「その他」は、月、秘密、ダイエット、泥棒、おばけ、喧嘩等とすることができる。
【0027】
アイコン種別226「会話」は、形象体20がユーザと会話を行うため、予め定義した複数種類のテーマや台詞等の指定に用いることができる。形象体20は、ユーザが発した言葉を認識して双方向に会話を行うことができる。アイコン種別226「走行体」は、形象体20と連動する別体の制御対象物である走行体の制御を定めることができる。例えば、形象体20は、
図10(d)に示す走行体50に乗車させることができる。走行体50は、形象体20からの指示を受けて、分類227に示した「前進」、「後退」等の動作を行うことができる。走行体50の制御例の詳細については、
図10(d)の説明で後述する。
【0028】
図6で、アイコン種別228「メモリ」は、コーディングのデータの保存に用いることができる。例えば、「メモリ」アイコンは、他のアイコンブロック40の「メモリ」アイコンと識別可能な固有の図柄や色で形成される。「メモリ」アイコンを認識した形象体20は、それまでに読み込んだアイコンの内容や同時に読み込まれたアイコン41の内容を記憶部22に記憶させる。このとき、アイコン41の内容としては、いずれのアイコン41であるかを示すアイコン情報と、各アイコン41の位置である位置情報が対応して記憶部22に記憶される。形象体20は、通信部25からネットワークを介して所定のサーバに読み込んだアイコン情報と位置情報を保存させる。そして、他の形象体20は、当該「メモリ」アイコンを読み込むと、その「メモリ」アイコンの固有な図柄や色に従い、サーバに保存されたデータを特定し、アイコン情報と位置情報を通信部25により取得することができる。位置情報は、コーディングカード30上の位置や配置されたアイコンブロック40同士の相対位置として定義することができる。
【0029】
また、別の例として、形象体20の記憶部22に記憶されたアイコン情報や位置情報を有線又は無線で読み取って記憶する、メモリ用のアイコンブロック40を別途使用してもよい。他の形象体20は、このメモリ用のアイコンブロック40から有線又は無線でアイコン情報や位置情報を取得することができる。このように、「メモリ」アイコンを有するアイコンブロック40を用いて友達や親等とコーディングデータを共有することで、そのデータを交換したり、データに対して変更又は追加を加えて新たなプログラムコードとして使用することができる。
【0030】
アイコン種別228の「時間」は、形象体20に動作等を行わせる他のアイコン41と組み合わせて、その動作に関する時間、期間等の指定に用いることができる。時間又は期間の長さは、例えば、分類229に示した「0秒」、「5秒」、「10秒」等の値を用いることができる。また、「時間」アイコンは、処理の待ち時間等をカウントする制御カウンタとして用いることもできる。アイコン種別228「スタート/エンド」は、コードの開始又は終わりの指定に用いることができる。例えば、コーディングした複数のアイコン41の前後に「スタート/エンド」アイコンを配置すると、複数のアイコン41により組み合わされたコード群を一つの命令又は一連のプログラムと認識させることができる。あるいは、「スタート/エンド」で囲われた一連のプログラムに対して、他のプログラムから参照が可能なラベルを付することができる。
【0031】
アイコン種別228の「回数」は、例えば、形象体20に動作を行わせる他のアイコン41と組み合わせて、その動作を行う回数等の指定に用いることができる。また、「回数」アイコンは、一定量の処理の回数をカウントするカウンタとして用いることもできる。アイコン種別228「BGM」は、複数種類の音楽(BGM)の指定に用いることができる。アイコン種別228「SE」は、「BGM」と同様、複数種類の効果音や音声等の音(SE)の指定に用いることができる。なお、「BGM」及び「SE」の各アイコンは、複数の音楽又は効果音による一連の放音制御の指定に用いてもよい。
【0032】
アイコン種別228「ストップ/ゴー」は、処理の停止や開始の指定に用いることができる。アイコン種別228「待つ」は、処理を所定の条件が満たされるまで停止させる動作の指定に用いることができる。アイコン種別228「元に戻る」は、形象体20を初期位置や初期動作に戻すような処理の指定に用いることができる。アイコン種別228「角度」は、所定の動作を行わせる他のアイコン41と組み合わせて、形象体20の動作の指定に用いることができる。例えば、「45度」の「角度」アイコンと、「斜め上に上げる」の「腕(右)」アイコンを組み合わせると、形象体20に「腕(右)205を斜め上に45度上げる」動作を指定することができる。
【0033】
アイコン種別228「数字」、「ひらがな」、「アルファベット」、「記号」は、それぞれ文字の指定に用いることができる。例えば、形象体20は、配置された「数字」、「ひらがな」、「アルファベット」、「記号」の文字を読み込むことにより、ユーザや形象体20の名前の登録等を行わせることができる。
【0034】
アイコン種別228「その他」の分類229「if」は、分岐処理の指定に用いることができる。「if」は、適宜他のアイコン41と組み合わせて処理の分岐条件を定め、条件を満たした場合又は条件を満たさない場合に、いずれの処理を行わせるか予め定めることができる。例えば、「if」とともに「顔文字」の「おはよう」アイコン及び「会話」アイコンを用いると、形象体20の放音部242からあいさつを発音させ、ユーザが応答したと形象体20が判断した場合に、「会話」アイコンに従った会話を行わせることができる。
【0035】
図7は、コーディングカード30の構成を示す図である。本図は、コーディングカード30の平面図である。コーディングカード30は、板状に形成され、表面にアイコンブロック40を配置させるための複数のガイド31と、コーディングカード30毎のコーディングテーマを表示するテーマ表示部32とを有する。本実施形態のガイド31は、行及び列を成すマトリクス状に配置され、2行4列の合計8個が設けられている。ユーザは、アイコンブロック40をガイド31の位置に合わせて配置する。また、形象体20に読み込ませたいアイコン41が表示される面は、上方に向けて(図の手前側に向けて)配置される。形象体20は、これらのガイド31を含む領域を撮像範囲33として撮像部231により撮像し、アイコンブロック40の載置向きに応じた画像データを取得する。
【0036】
テーマ表示部32には、コーディングテーマをテキストや図により表示させることができる。形象体20は、撮像範囲33にテーマ表示部32を含めて、テーマ表示部32に記載されたコーディングテーマを取得してもよい。この場合、制御部21は、取得したコーディングテーマと配置されたアイコン41の組み合わせに応じて、指定された制御内容を解析してもよい。さらに、コーディングカード30は、撮像範囲33内に複数の傾き補正用のマーカを設けることができる。アイコンとともにマーカを撮像することにより、形象体20がコーディングカード30を斜め方向から撮像した場合であっても、制御部21はマーカの位置から画像の傾きを補正する画像処理等を行い、適切にガイド31の位置を把握して、アイコン41を認識することができる。
【0037】
本図では、コーディングカード30の三か所のガイド31位置に、左上から右に向かって順に「腕(右)を斜め上に上げる」、「15秒間同じ動作を続ける」、「元に戻る」を表すアイコン41が配置される。
【0038】
このように、ガイド31を有したコーディングカード30を用いることにより、所定間隔及び所定位置に容易にアイコンブロック40の配置を行うことができる。
【0039】
図8は、形象体20の処理フローチャート図である。
図9は、取得したアイコン41により形象体20が生成した処理フローチャート図である。また、
図10は、形象体20の制御例を示す図である。
【0040】
図8において、処理が開始されると、ステップS100で、制御部21は、撮像部231によりコーディングカード30の所定の撮像範囲33を撮像して、画像を取り込む。ステップS110で、制御部21は、取り込まれた画像にいずれのアイコン41が含まれているかを画像解析する。具体的には、例えば、制御部21は、ステップS100で取り込んだ画像のうち、ガイド31がいずれの箇所に位置するかを認識する。制御部21は、アイコンテーブル220を参照して、ガイド31位置の画像が、いずれのアイコン221の画像に一致するか画像判定する。
図7で示したコーディングカード30を撮像する例では、制御部21は、複数のガイド31のうち左上から順に右に向かって三つのアイコン41b,41g,41hが配置されていることを認識する。
【0041】
ステップS120で、制御部21は、ステップS110の解析で取得した、アイコン41の識別データであるアイコン情報(コード識別子情報)及びその各アイコン41の位置情報に従い構文解析を行う。この位置情報は、コーディングカード30上において、行及び列により定まるガイド31位置で定義される情報とすることができる。構文解析は予め定められた構文ルールに従って行われる。例えば、アイコン41で表されるコードは、ガイド31位置に応じて、読み込まれる順番が定められており、各行内では左の列から右の列に向かって読み込まれ、行間では上の行から下の行に向かって読み込まれる。制御部21は、一つ目のアイコン41aが「腕(右)を斜め上に上げる」であり、二つ目のアイコン41bが「15秒間同じ動作を続ける」であり、三つ目のアイコン41cが「元に戻る」であることから、
図9のステップS141〜S145に示す処理フローのプログラムS140を生成して、記憶部22に記憶する。
【0042】
なお、ガイド31の読み込む順番は、列内の個々には定めずに、一つのグループとされた行ごとに、上の行から下の行に向かって読み込むように定めてもよい。この場合、本実施形態では、一つ目の行に動作アイコン223である「腕(右)を斜め上に上げる」、時間アイコン224である「15秒間同じ動作を続ける」、及び制御アイコン225である「元に戻る」の別属性のアイコン41が組み合わされているため、制御部21は、一連の動作処理の内容であると判断し、グループ内に配置されるこれらのアイコン41の組み合わせに基づいて
図9のステップS141〜S145の処理フローのプログラムS140を生成することができる。
【0043】
ステップS130で、制御部21は、ステップS120の構文解析により生成したプログラムS140に従い制御内容を出力部24に指示する。ステップS141で、制御部21は、駆動部241である右腕205aを斜め上に上げる。ステップS141の駆動の様子は
図10(a)に示される。ステップS143で、制御部21は、ステップS141の右腕205aを上げる動作を15秒間続ける。ステップS145で、制御部21は、右腕205aを下げて、処理を終了する。
図8に戻り、ステップS130の処理が終わると、形象体20の処理は終了する。
【0044】
なお、制御部21は、ステップS120で生成したプログラムS140に従い、駆動部241の他に、放音部242、表示部243又は通信部25を制御してもよい。また、ステップS130で、制御部21は、音声や表示によりユーザに対して入力部23による入力動作を促し、ユーザからの入力内容に従った出力処理を行ってもよい。また、制御部21は、入力部23に入力させたデータや処理内容を記憶部22に記憶させてもよい。
【0045】
つぎに、形象体20の他の動作形態について説明する。
図10(b)では、形象体20は、首204を駆動させて右を向く動作を行っている。また、
図10(c)では、形象体20は、右足208aを上に上げる動作を行っている。このように、形象体20は、体の部位を動かすことによって感情を体現することができる。また、
図1の目202や口203等の動作を制御することにより表情を楽しむことができる。
【0046】
図10(d)では、形象体20が別体の制御対象物である走行体50の上に乗車している例を示している。形象体20は、走行体50のアイコン情報を取得する。
図8に示した処理フローチャート図に従い、制御部21は、ステップS100で、アイコン41画像を撮像して取り込むと、ステップS110で画像解析を行った後、ステップS120で構文解析を行う。ステップS130で、制御部21は、ステップS120で解析を行って生成したプログラムS140の情報を、通信部25を介して走行体50に送信する。走行体50は、適宜の受信部により受信した生成されたプログラムS140の情報に従い制御される。あるいは、ステップS130で、制御部21は、走行体50に対して直接制御指示を行い、走行体50を制御してもよい。制御の例として、例えば三輪で動く走行体50は、前輪51や後輪52を駆動させて、
図5のアイコン種別226「走行体」の分類227に示したような「前進」、「後退」、「右に進む」、「左に進む」といった動作を行うことができる。
【0047】
形象体20と走行体50との通信手段としては、形象体20が走行体50の上に載置させる際に、互いの接触部分に設けられた端子を介して有線通信としてもよいし、赤外線や所定周波数の電波を用いて無線通信としてもよい。なお、走行体50自身が、アイコン41を撮像する撮像部を有しており、アイコン41画像を取得してもよい。
【0048】
以上のように、本実施形態では、アイコン41が形成されたアイコンブロック40を用いてコーディングをし、制御対象物である形象体20がアイコン41とそのアイコン41の配置を撮像して取得する例を示した。また、アイコン情報と位置情報とを取得する手段は、形象体20側に設けた。したがって、アイコンブロック40やコーディングカード30に電源等を設ける必要がなく、アイコンブロック40及びコーディングカード30を簡易に構成することができるため、コーディング玩具10全体を安価で簡易に構成することができる。
【0049】
(実施形態2)
つぎに、実施形態2について説明する。
図11は、コーディングボード60の構成を示す図である。本実施形態では、アイコンブロック40を配置するために、実施形態1のコーディングカード30の代わりにコーディングボード(ステージ)60を用いる。また、アイコンブロック40のアイコン41の情報とそのアイコン41の位置情報の取得を、コーディングボード60により行う。
【0050】
コーディングボード60は、板状に形成され、複数の取付部61を有している。取付部61は、行及び列を成すマトリクス状に配置され、本実施形態では4行8列の合計32個が設けられている。取付部61の行及び列には、それぞれ対応する位置に行番号62及び列番号63として大文字及び小文字のアルファベットが表記される。ユーザは、コーディングを行う際、選択したアイコンブロック40を取付部61の位置に合わせて配置する。また、形象体20に読み込ませたいアイコン41が表示される面は、上方に向けて(図の手前側に向けて)配置される。
【0051】
取付部61は、アイコンブロック40の載置位置をガイドするための枠線を描いて構成してもよいし、アイコンブロック40の面よりやや大きい四角形状の窪みにより構成してもよい。取付部61を窪みとした場合、アイコンブロック40は、その窪みに嵌ることで位置が固定される。こうすることで、アイコンブロック40に描かれたアイコン41を所定間隔及び所定位置に容易に配置させることができる。
【0052】
図12は、本実施形態におけるコーディングボード60の内部構成を示す図である。本実施形態のコーディングボード60は、取付部61、ボード制御部64、記憶部65、検出部66、通信部67を備える。検出部66は、
図11に示した各取付部61におけるアイコンブロック40の有無を検出し、アイコンブロック40がある場合は、その位置においてアイコンブロック40が示すアイコン41を検出する。通信部67は、有線又は無線により外部の機器とデータの送受信を行う、入力部又は出力部として機能する。
【0053】
本実施形態のアイコンブロック40の検出方法について説明する。例えば、アイコンブロック40は、各面のアイコン41に対応する識別子である複数の凹凸部を、当該アイコン41の反対面側に有する。つまり、表示させたいアイコン41を上方に向けて載置すると、対応する凹凸部は、アイコンブロックの載置面側に配置される。ボード制御部64は、取付部61側に設けられた物理スイッチにより凹凸部の凹凸パターンを検出する。これにより、載置されたアイコンブロック40がいずれの位置においていずれのアイコン41を示しているかを検出することができる。
【0054】
あるいは、アイコンブロック40は、各面のアイコン41に対応した電気的な固有値を示す素子を備えており、ボード制御部64がこの固有値を読み取ることにより、いずれの位置にあるアイコンブロック40がいずれのアイコン41を示しているかを読み取るように構成してもよい。例えば、アイコンブロック40は、各面のアイコン41毎に対応した受動素子を、両端子が外部に露出した状態で内蔵している。また、取付部61には、図示しない固有値の検出用の端子が設けられている。アイコンブロック40が取付部61に載置されると、アイコンブロック40と取付部61は互いの端子が電気的に接続され、検出部66はアイコン41に対応する固有値を測定して、いずれの位置にいずれのアイコン41が配置されているかを検出することができる。例えば、受動素子が抵抗であれば、ボード制御部64は、固有値として抵抗値を測定する。
【0055】
図13は、本実施形態における形象体20及びコーディングボード60のシーケンス図である。処理が開始されると、ステップS200で、ボード制御部64は、検出部66により、コーディングボード60上の各取付部61にアイコンブロック40が配置されているかを検出する。そして、ボード制御部64は、検出されたアイコンブロック40のアイコン41を検出する。
【0056】
ステップS210で、ボード制御部64は、検出した各アイコン41の識別データであるアイコン情報301と、その各アイコン41の対応する位置である位置情報302を、通信部67を介して形象体20へ向けて送信する。位置情報302は、例えば、コーディングボード60上において、行番号62及び列番号63で定まる取付部61の位置により定義することができる。
【0057】
ステップS220で、形象体20の制御部21は、形象体20の通信部25によりアイコン情報301及び位置情報302を受信する。ステップS230で、制御部21は、ステップS220で受信したアイコン情報301及び位置情報302に従い構文解析を行ってプログラムを生成する。構文解析の方法としては、ステップS120に示した構文ルールと同様のルールに従って行うことができる。ステップS240で、制御部21は、ステップS230で生成したプログラムに従った処理を出力部24に指示し、駆動部241、放音部242や表示部243等を制御する。
【0058】
以上、各実施形態によると、アイコンブロック40を配置して組み合わせたコードを、形象体20が撮像部231により又はコーディングボード60が検出部66により読み取ることで、形象体20を制御させることができる。
【0059】
また、コーディング玩具10は、アイコンブロック40によりコーディングしたプログラムを用いて、形象体20を動かしたり、会話を楽しむことができる。様々なアイコンブロック40を用いているため、コーディングパターンは多岐にわたり、繰り返しコーディング作業を行うことで想像力を発達させるだけでなく、主体性やコミュニケーション能力、持続性を育むことができる。
【0060】
以上、本発明の各実施形態を説明したが、本発明は以上の実施形態によって限定されることはなく、種々の変更を加えて実施することができる。例えば、各実施形態では、制御識別情報が形成されたパーツとして、各面にアイコン41が形成された6面体形状のアイコンブロック40を用いたが、各面にアイコン41を形成した他の多面体のブロックを用いたり、アイコン41を両面に描いたアイコンカードを用いてもよい。
【0061】
また、各実施形態において、アイコンブロック40の各面には、バーコードのような一次元コード、QRコード(登録商標)のような二次元コード、カラーにより二次元コードの一つの符号に含まれる情報を多値化したカラーバーコード等をコード識別子として表示させることができる。このようなアイコンブロック40の載置向きに応じて変わる一次元コード、二次元コード、カラーバーコードを、実施形態1の形象体20は撮像部231により、また、実施形態2のコーディングボード60は検出部66により取得することができる。
【0062】
また、各実施形態において、形象体20は、アイコンブロック40が示すコード識別子をRFID(Radio Frequency IDentification)によって取得してもよい。例えば、アイコンブロック40は、載置向きに応じて読み取り値の変わるRFタグを備えている。このRFタグに固有のコード識別子情報は、実施形態1では形象体20が入力部23により、実施形態2ではコーディングボード60が検出部66により取得することができる。また、RFタグにコーディングデータを読み書きさせることにより、RFタグを備えたアイコンブロック40をメモリブロックとして用いることができる。
【0063】
また、形象体20及びコーディングボード60は、アイコンブロック40のコード識別子に含めたOID(Object IDentifier)をコード識別子情報として取得し、構文解析や出力制御等の処理に用いてもよい。
【0064】
また、実施形態1及び実施形態2は組み合わせることができる。つまり、アイコン情報及び位置情報の取得は、形象体20がアイコン41を撮像して行うとともに、コーディングボード(ステージ)60がアイコン41を検出して形象体20に送信することにより取得してもよい。いずれの方法によりアイコン情報及び位置情報を取得するかは、ユーザによる選択により、又はコーディングカード30やコーディングボード60の仕様等に応じて適宜定めることができる。
【0065】
また、各実施形態では、位置情報として、コーディングカード30又はコーディングボード60上の行及び列で定まる位置により定義したが、アイコンブロック40同士の相対位置により定義してもよい。
【0066】
また、実施形態1において、形象体20は、撮像部231によりコーディングカード30のガイド31をすべて含む撮像範囲33を撮像して、アイコン情報及び位置情報を取得したが、一部範囲のガイド31に配置されるアイコンブロック40を個別に撮像して、アイコン情報及び位置情報を取得してもよい。