nxtway-gsを走らせる

nxtOSEKのサンプルとして付属していたnxtway-gsをmake allして、nxtにダウンロード。
実行すると走り出すんだけれど、走り出した瞬間からタイヤが地面についていないとモータが全力回転しだすみたい。

地面にnxtを立たせて、やさしく手を添えつつRUNさせる感じでしょうか。。

nxtOSEKプログラムをBluetoothで転送する

毎回毎回USBケーブルをつなぐのが面倒なので、
Bluetoothでプログラム転送できないのかな、と調べてみたら。

http://bricxcc.sourceforge.net/nexttool_docs.html
http://forums.nxtasy.org/lofiversion/index.php?t789.html

ちゃんと書いてありました。

結局nexttoolの引数で/COM=〜の代わりに/BTを付けるといけるんだけど、この場合(たぶん)COMポートを一つずつ探していってるっぽくて時間が非常にかかる。(1分ぐらい)

で2つ目のURLにあるとおり、
NeXTTool.exe -listbricksを実行して(1分ほどかかるかも)、

BTH::NXT=BTH::NXT::XX:XX:XX:XX:XX:XX::X

という風なNXTのBluetoothのアドレス?をメモしておく。

メモしたアドレスを元に、

NeXTTool.exe /COM=BTH::NXT::XX:XX:XX:XX:XX:XX::X /BT -download=NXTway_GS_JSP.rxe

を実行するとぼちぼちな速度でダウンロードに成功。

ただ、ダウンロードだけだとうまくBluetoothで接続できてない場合との見分けがつかないので、

NeXTTool.exe /COM=BTH::NXT::XX:XX:XX:XX:XX:XX::X /BT -listfiles=NXTway_GS_JSP.rxe

を実行してファイルサイズ取得もやっておく。

毎回このコマンドを打つのは面倒なので、
C:\cygwin\nxtOSEK\ecrobot/ecrobot.mak
の320行目付近の

rxeflash:
@echo "echo Executing NeXTTool to upload $(RXEBIN_TARGET)..." >./rxeflash.sh
@echo "$(WINECONSOLE) $(NEXTTOOL_ROOT)/$(NEXTTOOL) /COM=usb -download=$(RXEBIN_TARGET)" >>./rxeflash.sh
@echo "$(WINECONSOLE) $(NEXTTOOL_ROOT)/$(NEXTTOOL) /COM=usb -listfiles=$(RXEBIN_TARGET)" >>./rxeflash.sh
@echo "echo NeXTTool is terminated." >>./rxeflash.sh

の後に

@echo "echo Executing NeXTTool to upload $(RXEBIN_TARGET) via Bluetooth..." >./b_rxeflash.sh
@echo "$(WINECONSOLE) $(NEXTTOOL_ROOT)/$(NEXTTOOL) /COM=BTH::NXT::XX:XX:XX:XX:XX:XX::X /BT -download=$(RXEBIN_TARGET)" >>./b_rxeflash.sh
@echo "$(WINECONSOLE) $(NEXTTOOL_ROOT)/$(NEXTTOOL) /COM=BTH::NXT::XX:XX:XX:XX:XX:XX::X /BT -listfiles=$(RXEBIN_TARGET)" >>./b_rxeflash.sh
@echo "echo NeXTTool is terminated." >>./b_rxeflash.sh

を追加しておくと、毎回rxeflash.shと同時にb_rxeflash.shが生成されるので、
コマンドラインでsh ./b_rxeflash.shを実行すればBluetoothでプログラムが転送できる。
(BTH::NXT:XX:XX:XX:XX:XX:XX::Xの部分はNeXTTool -listbricksの結果にあわせて書き換えてください。)
本当は別ターゲットを作った方がいいと思うけどMakefileに詳しくないのでこれで満足。

nxtOSEK開発環境インストール

手順はnxtOSEKのインストールページの通り。
http://lejos-osek.sourceforge.net/jp/installation_enf.htm

トップページをよくよく見るとnxtOSEKとnxtJSPがあって、
JSPのほうはμiTron系でOSEKはiTronとはまた別の車載OSなんですね。
サンプルプログラムもOSEK用とJSP用が入っているようす。


以下、サンプルプログラムを初期のフォルダ以外の場所(別階層のフォルダ・別ドライブ)に移動した場合に必要な修正。(nxtOSEK_v207.zipでの話)

Makefileの7行目
NXTOSEK_ROOT = ../..

NXTOSEK_ROOT = /nxtOSEK
に修正。

C:\cygwin\nxtOSEK\ecrobot/ecrobot.makの76行目
# TOPPERS_OSEK_ROOT_SG = C:/cygwin/nxtOSEK/toppers_osek

TOPPERS_OSEK_ROOT_SG = C:/cygwin/nxtOSEK/toppers_osek
に修正。(#を消す)

と思っている間にv208が出たようなので環境を新しくしないと。。

ETロボコン2009に向けて

アフレルのETロボコンキットNXT-Aを購入。
http://www.afrel.co.jp/robocon.html


NXTには
教育版(fig(人形)が入っている、通常版よりパーツが少ない)
http://peeron.com/inv/sets/9797-1
通常版(figなし)
http://peeron.com/inv/sets/8527-1
の2種類があります。


ETロボコン2009のためのロボットnxtway-gsを作るためには
教育版+いくつかの細かいtechnic系パーツ+大きいタイヤ+ジャイロセンサ または 通常版+大きいタイヤ+ジャイロセンサ
が必要です。


ジャイロセンサはアフレルから一つ7350円(高い!)で購入できるのですが、
大きいタイヤ
http://peeron.com/inv/parts/2902
http://peeron.com/inv/parts/2903
は単品での購入が困難です。
また教育版で不足しているいくつかの細かいtechnic系パーツも
単品で購入するのは難しいです。


これらの不足分パーツ(細かなtechnic系パーツと大きいタイヤ)は
教育用レゴ マインドストームNXT 拡張キットに入っていますが、
このセットは11550円で販売されています。
実際に不足しているパーツは合計で2000円もしない程度だと思うのですが、
これらのパーツだけを売ってくれたら
ETロボコンに参加しやすくなるのになーと思ってしまいます。