マジカル教材の構成
図1は、このプログラムで利用する教材です。2本の金属製のスプーン、マジカルボックス、飛行船、ソフトウェアシミュレータ(以下、シミュレータと称す)で構成されます。
スプーンは、飛行船を制御する符号列であるスプーン指令を出力するために用います。スプーンどうしを叩き合わせることで生じる超音波の有無が、飛行船を制御するための0と1の信号として解釈されます。
マジカルボックスは、飛行船を制御するためのコードセット登録と、スプーン指令の受信と飛行船への送信とを担当する電子基板です。指令受信部にはNECエレクトロニクス株式会社製NEC78Kチップを、指令送信部には株式会社ルネサステクノロジ社製のM16チップとを用いて実装され、それぞれにC言語による独自ソフトウェアが組み込まれています。
飛行船には、マジカルボックスから送信される制御信号を受信する独自の電子基板が装着されます。さらに、左右各1つと上下方向1つの計3つのモータ付きプロペラを具備した自作ハーネスが、この電子基板に連結されます。ここで利用される飛行船は模型タイプの市販品であり、電子基板にはC言語の独自ソフトウェアが組み込まれています。
シミュレータはコードセットの設計・登録、スプーン指令の入力練習、飛行計画の立案・検討に利用されます。シミュレータ上の飛行船は、プロペラ動作を確認できるよう、飛行船後部の第3者視点のアニメーションとして表現されます。3つのプロペラの動作(正回転、逆回転、停止)、上下方向への移動、左右方向への方向転換の様子が示されます。シミュレータはC++言語で実装されており、USBシリアル通信を用いてマジカルボックスとの情報送受信を実現しています。
マジカル教材の利用
マジカルスプーン教材の利用フローを図2に示します。
- ユーザは設計済みコードセットをシミュレータを介してマジカルボックスに登録する。この時登録されるコードセットは、8種の飛行船動作(上昇・下降・前進・後退・右旋回・左旋回・停止・停留)を表現するための3ビットの符号と1ビットのパリティビットで構成される。
- ユーザは自らの定めたタイミングでコード開始信号を4拍入力する。さらに続けて、そのタイミングに合わせて、コードセット内のコードに対応するよう金属スプーンを叩くことで、マジカルボックスにスプーン指令を送信する。この時、マジカルボックス上の超音波センサによりスプーン指令が感知される。
- マジカルボックスは受信したスプーン指令に対応する飛行船動作を、登録されているコードセットより決定する。この時、飛行船動作は左右上下制御用の3つのモータの推力として表現される。
- マジカルボックスから飛行船に対してモータの動作命令を送信する。飛行船は、実機を用いる場合(実機制御モード)とシミュレーションを用いる場合(シミュレーションモード)とがある。実機への命令送信には約30mの通信距離を確保できるZigbee規格の無線が用いられる。
実際にマジカル教材を利用しているユーザの様子を、図3に示します。就学前のボク・ワタシから、高校生、そして高校・大学の先生、さらには若き組込みエンジニアまでが一同にコード設計やコード入力を行なっています。

この教材は、極めて独立性の高いソフトウェア構成をしています。教材内のソフトウェアは、それぞれが異なる組織で個別に開発され、それらがライトウェイトに関連付いており、拡張も容易に行えます。その1例として、飛行船の遠隔操作を行う実験を試みました。
東京・お台場に浮かぶ飛行船を、札幌と熊本から遠隔制御しようという試みです。マジカル教材に、ネットワーク越しに指令を送信する仕組みを付加することで実現しました。図4に遠隔操作実験の様子を示します。



