tQy

Spybotics

1年半前の記事なのでメインテナンスをしました(2009/08/01)



もうすぐ、5年生になる息子に、プログラミング言語の基礎ぐらい教えてみようかと思った。*1
ただ、いきなりモニターにキーボードで、アルファベットの並ぶスクリプトを覚えさせるのもどうかと思い、次のようなカリキュラムを考えていた。

  1. メカトロニクス LEGO Spyboticsを組み立てる。
  2. GUIに拠る簡単なプログラミング LEGO Spybotics付属のソフトを使用する。
  3. CUIに拠る基礎プログラミング NQC*2を使用してSpyboticsの制御を行う。

メカトロニクス

いくらバーチャルが進んでも、その細部は常に現実を模倣しているというのが、ぼくの基本的な信念だ。だから、プログラムはI/Oを介して常に現実にコミットしていることを最初に感じて欲しい。インタフェース・デザイナーとして、ここは譲れないところなのでLEGO Spyboticsを使用することにした。
最近はやりの2本足で初めから歩くロボットほど洒落たものではないのだけれど、これでも、モーター制御、発音、触覚センサー、赤外線入出力、LED表示と、最初に触るには十分すぎるくらい一通りI/Oが揃っている。
やる気さえあれば、ここから2速歩行機だって製作は可能なはずだ。
たぶん我が家にはそれくらいの部品は揃っている。

GUI

Spybotics付属のCDには作り方から、簡単な遊びを設定できるソフトが収録されている。LEGO社の怪しい日本語翻訳によるこのGUIも、遊びの場としてはそれなりに考えられている。インターネットランキングもあるし、*3テンプレートをもとにある程度までのプログラミングが可能になっている。遊びながら、センサーの意味やプログラミングの働きを体感してもらえればいいかなと思う。

LEGO社のSpybotics公式ページ

CUI

プログラムのソースコードからマニュアルまで、これらは全て有志の方々の手による環境です。ぼくもいつか、これくらいコミュニティーに貢献する何かがしたいんだけど、今んとこたいしたスキルもないしな〜。まぁできる範囲でぼちぼちやります。

●さて、マニュアル類やヒントはこちらから。

●プログラムの本体はここからダウンロードが可能

これは完全にコマンドラインの環境なので、実行環境がGUIで整備された下記プログラムをワークショップでは利用しています。

上記のGUIのプロセスで実現できない壁にぶつかった上で、こっち側に来れば、CUIに自発的に取り組めると思う。正直ぼく自身大昔BASICにコンパイラーをちょっとかじった程度。最近でもJAVA SCRIPTをコピペ改造とか、フラッシュのスクリプトを見よう見まねでいじるレベルなんで、事前にかなり勉強しておかなければならない。まぁ、実際、こういうネタがないと、自分でも勉強しないしね。
エレクトロニクス(回路設計やパーツ屋巡り)は中学になってから、自分ですればいいことにする。あれは金と暇がかかるしな。
なんとなく組んだカリキュラムなんだけど、TUI的→GUI的→CUI的の順になっている。わ〜い。*4


さて、これで、放置していたSpyboticsをたっぷりかわいがってあげることができるぞ。
そんな構想を話しながら、買いためておいたSpyboticsのコアユニットを6台床に並べていると、かみさんが言った。


  「ところで、これは結婚前に購入したものなのかしら?」


  「いや、全部結婚後にコツコツ買いためたモンです。」


  「まったく、あなたはおこづかいが多すぎですっ!」


やれやれ。

*1:アートとプログラミングの融合が次世代の日本の製造業の食い扶持だと個人的には考えている。

*2:Spyboticsの上位バージョンであるLEGO MindStormsには、RIS (Robotics Invention System)というプログラミング環境があるらしい。ただ、これに飽き足らず、Dave Baumという方がNQCを作られたそうだ。NQC(Not Quite C)プログラミング言語Cに似ていはいるが、ちょっと違うと言う意との事。

*3:現在サーヴィスは終了

*4:必ずしもコンピュータの進歩はCUIGUI→TUIと進んできたのではないらしい。グラフィカルインタラクティブシステム前史を参照