lejosはスペイン語で「遠くに,はるかに」の意である。筆者,若い頃数週間だけスペイン語を習ったことがある。当時は駅前留学などはなく,○○文化会館のようなところに少しだけ通っていたが,「仕事が忙しいから」というありきたりな理由で挫折してしまった。今思うともったいことをした。スペイン語は20ヶ国で公用語として採用され,3億以上の人が使っているメジャーな言語である。我々日本人にとって都合の良い点は,発音の簡単さである。小学校で習ったローマ字のようにと言うか,ローマ字変換のようにそのまま読めばいいのである。例えばlaはラ,raもラ,le,reはレ,lo,roはロと読めばよい。英語やフランス語のようにアルファベットと発音の関係が複雑ではない。ただし,ラテン系言語の常としてHは無音なので,ハヒフヘホはja,ji,ju,je,joとなる。ゆえにlejosはレホスと発音する。

 lejos,lejos,lejos(レホス,レホス,レホス = 遠くに,遠くに,遠くに)。

 思えば遠くに来たものである。MindStroms日記も,はや92話。LEGO MINDSTORMSを買ったのがこうしろう小学5年生の誕生日,当時は日本語版がまだ出荷されておらず,付属CD-ROMの英語の解説に目を丸くしていたこうしろう。間延びした同時通訳を行う父を尊敬のまなざしで見ていたものだ(多分,私の勘違いだが)。今や,こうしろうは中学2年生,経済産業省お墨付きのオタク,じゃなくて基本情報処理技術者である。勝手にフリースペースにホームページを上げ,何をしたいのか知らないが,ブラウザ上で動くスクリプト言語JavaScriptの勉強をしている。

 当初,彼はMindStroms標準の開発環境RISでブロックを繋ぐようにプログラムを作成していた。それから,C言語に似たNQC(Not Quite C)で本格的なプログラミングの勉強を始めた。NQCでロボットを動かしたことでC言語にも興味を持ち,基本情報処理技術者試験の午後問題でもC言語を選択した。「こうしろう,この3年間で急成長」と傍目には映るのかもしれないが,いつも一緒にいる父に変化は感じにくく,相変わらず背の低いこうしろうである。

 もっと遠くに(lejosに)行こう。NQCの後はどこに進むかと言うと,C言語ベースのLegOSへ進むか,JavaベースのLejOSに進むかである(ふう,長い前振りだった)。Javaは「Write Once, Run Anywhere(一度書けば,どこでも動く)」という思想のもと,実行環境に合わせた実行形式(exeファイル)を作るのではなく,中間コード(バイトコード)を作成して,JavaVM(Virtual Machine)上で動作させる。Internet ExplorerやNetscape NavigatorにはJavaVMが組み込まれ,Javaアプリが動く携帯電話もJavaVMである。Javaはいろんなところで公用語になりつつある。

 LEGO MINDSTORMSの頭脳RCX用のJavaVMがLejOSであり,標準搭載のファームウェアと差し換えて使用することになる。

 「このサイトからLejOSのzipファイルをダウンロードして」とインターネットに繋がっているPCの前に居座るこうしろうにアドレス(http://lejos.sourceforge.net/)を示す。こうしろうは第90話で紹介した野村のバーチャル株式投資倶楽部での株価チェックに余念がないので,この後の作業は私のノートPCで行う。ダウンロードしたlejos_win32_1_0_5.zipをメモリースティックを介して私のPCにコピー,解凍してc:\lejosにおく(我が家にも,無線LANがほしい)。次に,Java2 Software Development Kit Standard Edition version 1.4.0(JDK1.4.0)を日経ソフトウエア2002年7月号付属のCD-ROMからインストールする。7月号は創刊4周年記念号だけあって,DVD-ROMやCD-ROMが付いている豪華版だ。値段はいつもよりちょっとだけ高い。JDK1.4.0をc:\j2sdk1.4.0にインストールした。

 この後,これらのディレクリをPATH変数に登録するため,autoexec.batを編集する。
set PATH=%PATH%;C:\j2sdk1.4.0\bin;c:\lejos\bin;
それぞれのbinディレクトリをPATHに指定する。クラスパスも以下のように追加する。
set CLASSPATH=.
 これでPC側の準備はOKだ。

今度は,RCXのファームウェアを置き換える。
c:\>lejosfirmdl
を実行するとRCXのLCD上にカウンタが表示され,眺めているとそのうち終了する。我が家のRCXは1.0なのでCOMポートで転送する。かなり遅い。2.0だとUSBで転送できて速いらしい(RCX2.0もほしい)。

次に,下記のサンプルプログラム(helloworld.java)をコンパイルする。
c:\lejos\examples\hworld>lejosc helloworld.java -target 1.1
JDK1.4.0の場合,オプション -target 1.1を付けなくてはならない。



import josx.platform.rcx.*;
public class HelloWorld
{
 public static void main (String[] aArg)
 throws Exception
 {
  LCD.clear();
  TextLCD.print ("hello");
  Thread.sleep(2000);
  TextLCD.print ("world");
  Thread.sleep(2000);
 }
}



 RCXのLCDをクリアしhelloと表示,しばらく待ってからworldと表示するJava入門らしいプログラムである。
c:\lejos\examples\hworld>lejos helloworld 
と入力し中間コードをRCXに転送する。



緑色のrunボタンを押すと,やや古ぼけた感じのするLCDにhelloと表示された。
「おーい,こうしろう。面白そうだぞー」