TOPPERS/JSPによるロボット制御
TOPPERS/JSP版NXT環境を構築しよう(続き)
5. コンフィグレータの構築
Cygwin環境から、手順3.で作成した「jsp」フォルダの中にある「cfg」フォルダに移動して、次の手順でコンフィグレータを構築します。
cd /jsp/cfg
make depend
make
構築が完了すると「cfg.exe」 や 「chk.exe」といったプログラム が作成されます。
エラーが発生するときは、Cygwinをインストールしたときのパッケージの選択が違っていないか、手順3、4の展開に問題はなかったか確認してみましょう。
6. JSPカーネルのライブラリ化
ロボットのプログラムを開発しているときは、カーネルはほとんど変更の対象になりません。このような場合には変更の少ないカーネル部分をライブラリ化しておいて、 makeするときにカーネルのソースコードがコンパイル対象にならないようにします。
次のコマンドを実行して、TOPPERS/JSPカーネルをライブラリ化します。
cd /jsp/OBJ/MINDSTORMSNXT
mkdir libkernel
cd libkernel
../../../configure -C armv4 -S mindstormsnxt
make depend
make libkernel.a
configureを実行するときに、プロセッサにarmv4、対象システムにmindstormsnxtを指定しているのがわかります。
make depend を実行したときにエラーが発生する場合は、手順2で、環境変数PATHに「GNUARM/bin」を追加するところに間違いが含まれているかもしれませんので見直してみてください。また、環境変数の変更を反映するために、Cygwin環境をいったん終了してもう一度起動するのを忘れているかもしれません。念のためCygwin環境を立ち上げなおしてみましょう。
この手順が成功すると「lbikernel.a」というファイルができあがります。このファイルが、ライブラリ化したカーネルです。
7. 教育用レゴ マインドストームNXT用のライブラリ作成
次は、教育用レゴ マインドストームNXT用のライブラリを作成します。すでに必要なファイルは「/jsp/nxt」フォルダに展開してありますので、次のコマンドを実行して、ライブラリを作成します。
cd /jsp/nxt
make
libbalancer.a、libdevice.a、libecrobot.a というファイルが作成されます。
エラーが発生するときには、Cygwinを起動するときに「管理者として実行」を選んでいない可能性があります。再度「管理者として実行」を選んでやり直してください。
8. 教育用レゴ マインドストームNXT用ドライバのインストール
教育用レゴ マインドストームNXTとPCを接続するためのUSBポートのドライバです。レゴ マインドストームのWebサイトにアクセスしてFantom Driver v1.1.3をダウンロードしてインストールします。setup.exeを実行するときには「管理者として実行」を選びます。
9. NeXTToolのインストール
NeXTToolは、教育用レゴ マインドストームNXTにファームウエアやプログラムをダウンロードするためのツールで、Bricx Command Centerプロジェクトの成果のひとつです。Bricx Command CenterのWebサイトのProgrammable Brick Utilitiesのページの中ほどにNeXTToolのセクションがありますので、そこから「nexttool.zip」をダウンロードします。Cygwinをインストールしたフォルダの中にnexttoolというフォルダを作成して、「nexttool.zip」を展開して得られたファイル群を移動します。
10. 拡張NXTファームウエアの用意
Bricx Command CenterプロジェクトのWebサイトから、拡張NXTファームウェアをダウンロードします。NXT Newsというセクションの3段落目あたりに「NBC/NXCfirmware」というリンクがありますので、これをクリックして「lms_arm_jch.zip」というファイルをダウンロードします。このファイルを展開すると「lms_arm_nbcnxc_107.rfw」と「lms_arm_nbcnxc_128.rfw」というファイルが得られますので、これらを先ほど作成したnexttoolというフォルダに移動しておきます。
サンプルプログラムで動作を確認する
OBJ/MINDSTORMSNXTフォルダには、いくつかのサンプルプログラムが提供されています。このうちのひとつを使って、環境構築が正しく行われたかを確認しましょう。
Cygwinを起動して、「/jsp/OBJ/MINDSTORMSNXT/MON」フォルダをカレントフォルダにします。そのフォルダにあるサンプルプログラムをコンパイルしてみましょう。
cd /jsp/OBJ/MINDSTORMSNXT/MON
make depend
make
インストールが正しく行えていれば、MONディレクトリ内に 「jsp.rxe」 という実行形式ファイルが生成されます。
一番初めのときだけ、教育用レゴ マインドストームに拡張ファームウエアをダウンロードします。[*2]
- [*2]拡張NXTファームウェアはレゴ社から提供されているソフトウエアではありませんので、これを使用した場合レゴ社の製品保証範囲外となります。レゴ社のサポートを受けることができなくなるとともに、筆者や株式会社アフレルも製品の動作を保証することができなくなります。この記事に記載されていることを試すときは、みなさん自身の責任において試すことをあらかじめご承知おきください。
インテリジェントブロックNXTを裏側から見て、USBポートに一番近い穴の奥に、リセットボタンがあります。電源を入れた状態で、リセットボタンを4秒以上長押ししてください。すると「プッ・プッ・プッ」という小さな音が鳴ります。ファームウエアが消え、ファームウエアアップデートモードと呼ばれる状態になります。
この状態で、USBケーブルでパソコンとインテリジェントブロックNXTをつなげます。Cygwinを「管理者として実行」を選択して起動して、次のコマンドを実行します。この例はCygwinフォルダのすぐ下にnexttoolフォルダを作った場合ですので、nexttoolフォルダの作成先が異なる場合にはフォルダの場所は読み替えてください。
cd /nexttool
./NeXTTool.exe /COM=usb -firmware=lms_arm_nbcnxc_128.rfw
しばらくすると、拡張ファームウエアがダウンロードされて、インテリジェントブロックNXTにLEGOのマークが表示されます。もし、ロボットを動かしていて問題が発生するような場合には、「lms_arm_nbcnxc_107.rfw」の方のバージョンをお使いください。
次に、先ほどコンパイルしてできた「jsp.rxe」というファイルを教育用レゴ マインドストームNXTにダウンロードしてみましょう。「jsp.rxe」というファイルがあるフォルダをカレントフォルダにして、「rxeflash.sh」シェルプログラムを実行しましょう。
cd /jsp/OBJ/MINDSTORMSNXT/MON
sh rxeflash.sh
正常にプログラムがダウンロードされると、図2の様に表示されます。
図2:プログラムのダウンロード結果 |
表示結果の2行目、jsp.rxe=43456というように、ファイルサイズが表示されない場合には、プログラムのダウンロードが失敗しています。教育用レゴ マインドストームNXTの電源が入っていないか、コンピュータとUSBケーブルで接続されていないなどの問題がある可能性があります。
次の様な手順に沿って、ダウンロードしたプログラムを実行しましょう。
教育用レゴ マインドストームNXTの画面にはメインメニューが表示されています。その中の「My Files」を選択して、オレンジ色のボタンを押し、さらに「Software files」を選択して、オレンジ色のボタンを押します。すると先ほどダウンロードした、「jsp」が表示されます。この「jsp」を選択して、「Run」を選びます。すると、「WAIT BLUETOOTH CONNECTION」などと表示されます。
ここまで実行できれば、開発環境の構築や、プログラムのダウンロード環境は、問題なく構築できています。プログラムの動きなどは、同じフォルダの「sample1.c」ファイルのヘッダを読んだり、TOPPERS/JSP版NXT環境をダウンロードして展開したフォルダに存在する「ETロボコンセミナー資料」を読んで確認をしてみると良いでしょう。