組み立てが終わったので、次は開発環境の構築です。NXTを動かすには、プログラムを入れる必要がありますので、まずは専用の開発環境を準備します。
開発環境はマイクロソフトの「Visual Studio」やサイバネットの「MATLAB/Simulink」などが有名ですが、今回はETロボコン事務局から参加者向けにオープンソースで提供されているC、C++向けの開発環境「nxtOSEK」を使用することにしました(なお、今後はVisual Studioでの開発にも挑戦する予定ですが、まず走行体が無事に動くまでは、nxtOSEKで進めたいと思います)。
インストールは、以下のページを参考に進めました(Cygwin:1.5.25、nxtOSEK:nxtOSEK 2.09)。ここからは、筆者が実際に行った導入の流れを簡単に紹介していきます。
まずはWindows環境でもプログラムを作成できるように、Cygwinをインストールします。Cygwinは、LinuxなどUNIX系OSの機能をWindows OSでも実行可能にする開発キットです。プログラムを実行する際に必要なコンパイラや、bashなどのツールが含まれています。
Cygwinのサイトからダウンロードしました。
次に、GNU ARMのサイトから、NXTに搭載されているARM7コアプロセッサ(ATMEL AT91SAM7S256)に対応したGCCコンパイラパッケージ(bu-2.16.1_gcc-4.0.2-c-c++_nl-1.14.0_gi-6.4.exe)をダウンロードしました。
ダウンロードの際、(1)保存場所をマルチバイト文字およびスペースを含まないディレクトリ下にすること、(2)Cygwinはインストール済みのため、“Install Cygwin DLLs...”は選択しないこと、の2点に注意しました。
LEGO MINDSTORMS NXT Driverは、LEGOが提供しているNXTのUSB通信用ドライバです。LEGO MINDSTORMS Update pageから、MINDSTORMS NXT Driver v1.02をダウンロードしました。
NeXTToolは、アプリケーションプログラムおよびファームウェアをNXTへアップロードできる、通信用PCのコンソールプログラムです。作成者であるJohn Hansen氏のWebサイトからダウンロードしました。
拡張NXTファームウェアは、標準NXTファームウェアをベースに機能拡張したもので、NXTに搭載されている、ARM7コアCPUのネイティブコードも実行可能にします。
ダウンロードは、先ほどの4. NeXTToolのインストールと同様に、John Hansen氏のWebサイトから行いました。バージョンは1.06で、ダウンロード後、(lms_arm_nbcnxc_106.rfw)をNeXTToolの格納ディレクトリにコピーします。
最後にETロボコン事務局から提供されたnxtOSEK 2.09をダウンロードして、すべてのインストールが完了しました。
これまでにダウンロードしたものは、すべてC:Cygwin以下に保存しました。
続いて、拡張NXTファームウェアをNXTへアップロードするために、NXTをファームウェアアップデートモードにします。ファームウェアアップデートモードにするためには、いったん頭部を外し、NXTの電源がONの状態で、ハードウェアリセットボタン(NXT背面の上部左側の穴の内部)を5秒以上押し続けます。
かすかに「カチッ」というクリック音が聞こえたら、次にCygwinを起動し、以下のコマンドを入力してカレントディレクトリをNeXTToolが格納されているディレクトリに移動します。
$ cd C:/cygwin/nexttool
その後、USBケーブルをNXTに接続し、次のコマンドをCygwin上で入力し、拡張NXTファームウェアをNXTへアップロードします。
$ ./NeXTTool.exe /COM=usb -firmware=lms_arm_nbcnxc_106.rfw
これでバイナリアップロードの完了です。 確認のため、ETロボコン事務局から提供されているサンプルプログラム(Hello world!と表示するもの)を実行してみましたが、無事に実行されました(画像20参照)。
次回はETロボコン事務局から提供されているサンプルプログラムを実行し、NXTを立たせてみたいと思います。
Copyright © ITmedia, Inc. All Rights Reserved.