| 
(1) レゴブロックの位置取得アルゴリズムの開発
レゴブロックにOne-wireプロトコル対応マイコンを組み込む.One-wireにより一本の信号線にマイコンがぶら下がっており,スイッチを切り替えていくことによりブロック位置を取得し,ブロック配置を木構造問題として扱うことができた
(松村 図1).
ブロック位置を取得する母体であるスタートブロック (パソコンなどに接続されている) はまずグローバルな命令でスイッチ制御マイコンにスイッチを閉じろと命令を送信する.あるスイッチ制御マイコンが自分の制御するスイッチを閉じると,そのブロックのメインマイコン
(IDなどの情報を持つ) と通信が可能になる.そこで,閉じた先のメインマイコンID問い合わせをする.問い合わせを受けたメインマイコンは自分のIDを返す.問い合わせ側は,そのIDのブロックに対して,スイッチを閉じるように命令し,グローバルな命令でスイッチを閉じろと命令をする.この際に,ブロックがない場合にはリプライが帰ってこないことからそのスイッチの先にはブロックがないと言う情報を得ることが出来る
(松村 図2).
松村 図1 one-wireプロトコル対応マイコン組み込みイメージ図
松村 図2 マイコンによる位置取得方法図解
(2) LEGOシミュレータの開発
LEGOシミュレータはレゴブロック位置取得アルゴリズムを組み込み,Javaで実装したレゴブロック作成シミュレータである.疑似立体の2次元インタフェースにブロックを組み立て,Java3Dによるビューア機能で立体的に確認することが出来る.シミュレータでは実際に作成不可能なレゴの擬似的な組み立ても行なうことが出来る.これは,将来的にブロックにマイコンを組み込んだ際に横方向にも接続可能なブロックを想定したためである
(松村 図3).
松村 図3 レゴシミュレータの画面
ブロックの配置から「何か」を生成する機能をプラグインとして追加することが可能である.
これらの特徴から,このシミュレータは一種のビジュアルプログラミング環境として位置づけることができる.またこれは,従来のビジュアルプログラミング環境にはない言語をユーザがプラグインとして作成できる機能を有している.
(3) 作曲プラグインONGAKUMonosashiの開発
LEGOシミュレータで作成したブロックの色と配置からメロディを自動的に作成しMIDIファイルとして出力する機能を開発した.ソフトウェアには以下のような音楽パターンが組み込まれている.
・沖縄風
・ブルース(シャッフルビート)
・ブルース(通常ビート)
これらはそれぞれ音とリズムの変化によって区別される.プラグインソフトウェアはこれらをブロック全体の雰囲気から選択し,MIDIファイルを書き出す
(詳細は省略).
(4) Thinking SketchプラグインLegoSketchの開発
Thinking Sketchは平成12年度ならびに平成13年度未踏ソフトウェア創造事業に採択された,人が絵を書くことを支援するソフトウェアで,部品を使っていろいろな作風にアレンジすることが出来るソフトウェアである.オブジェクトの色や形をある程度ブロックの配置から制御ができる.また,絵全体の雰囲気を変えるパネルの存在により,同じオブジェクトを用いても,全く雰囲気の違う絵を作成することができるといった操作感が面白いプラグインに仕上がった.松村
図4にブロックから作成した絵の例を示す.
松村 図4 ブロックから作成した絵の例
(5) ファイル暗号化プラグインLEGOnoHIMITSUの開発
レゴブロックをキーに用いてファイルの暗号化を行なうもので,パスワードに変わる暗号キーの手段を提供する.連想により覚えやすく,他人からは連想しにくいキーとして有用であると考える.また,暗号化には現在実用されているDES及びAESを用いる.
(6) LOGO Mind Storms
LEGO Mind Stormsロボットによる実世界LOGOタートルである.簡単な記述でロボットを動作させることが可能で,ロボットプログラミングの学習にも最適と言える.このタートルはペンを持ちペンの上げ下げをコントロールすることにより紙などに絵を描くことができる.ロボット及びLOGO言語インタプリタを開発した.
* * * * * * *
上記の開発で得られたレゴブロックシミュレータとプラグインの特徴について紹介しておく.
レゴブロックシミュレータはブロックの配置とブロック位置の把握,ブロックに組み込まれたマイコンの動作をシミュレートする.ブロックの配置は疑似立体表示の2Dインタフェースで行ない,ブロックの積み上げはレイヤー操作によって行なう.上位レイヤーからは,下位のレイヤーが透過して見え,配置操作が容易になっている.積み上げたブロックはJava3Dを用いた3Dビューアで見ることも可能で,全体の様子を捉えながらブロックを組み立てることができる.
シミュレータで組み上げられたブロックはそれ自体がプログラムになる.これを可能にするのがレゴシミュレータプラグインで実装される翻訳部分である.これによりブロックの組合せから音楽や絵を作成することが可能である.翻訳部分をプラグイン化することによりユーザがレゴブブロック言語の設計者となることを可能にするアーキテクチャとなっている.
|