NXT Controller in Scheme (alpha version)
Common Lisp版はこちら.
これは何?
LEGO社の
MINDSTORMS NXT
をSchemeで操作するためのバックエンドです.Schemeを使って対話的にNXTプログラミングができるようになります.
LEGO社が公開している
fantom SDK
を利用して開発しています.
XS
(RCX用)とは異なり,あくまでPC上で動くSchemeによる外部コントローラであるため,PCとNXTの間の通信は頻繁に発生することになります(特にイベント待ちの時).そのかわり,強力な(?)Schemeの機能をフルに利用してメモリの制約もほとんど気にすることなくプログラミングが可能です.
XSにほぼ準拠した高水準なNXT操作用Lisp関数・マクロも実装しています.
動作要件
-
Microsoft Windows:XPおよびVistaで動作確認しています.要管理者権限.
-
PLT Scheme
:Foreign Function Interface (FFI)やマルチスレッディングなどの処理系固有の機能を使っているため.
-
MINDSTORMS NXT本体:これがないと話になりません.
-
NXT firmware:買ったときに入っているファームウェアで問題ないと思いますが,
ここ
に最新版が置いていあります.ファームウェアのダウンロードはNXT Softwareか,無料の
BricxCC (Bricx Command Center)
を使ってください.
Robolabを使ってNXTとの通信を確立しようとすると,ちょっと違うファームウェアをダウンロードしてしまい,その状態だと使えなくなってしまうようです.
-
fantom.dll:%windir%/system32 のフォルダにインストールされている必要があります.本体付属のCDをインストールするとついてくるようです.
ダウンロード
Temporarily unavailable
更新履歴
導入手順
-
Scheme処理系のインストール
-
ここ
の
“Download”
→
“Download DrScheme”
のリンクからDrSchemeをダウンロードして,インストールします.
-
fantom.dllのインストール
-
Robolab2.9またはNXT SoftwareのCDから普通にインストールすればOKです.
-
ファームウェアのダウンロード
-
必要な場合
(Robolabのファームウェアをダウンロードしてしまったり,
leJOS
を使っていた場合)
は上記の場所から最新のstandard firmwareとBricxCC(NXT Softwareが手元にない場合)をダウンロードしてNXTにファームウェアをダウンロードしてください.
(Vistaでは,BricxCCを「管理者として実行」する必要があるようです.)
-
実行
-
PC本体とNXTをUSBケーブルかBluetoothで接続します.Bluetoothの接続は今のところかなり不安定ですのでうまくいかなければUSBを試してください.
Bluetoothに関する追記 (2008/08/20)
-
BluetoothデバイスとNXTの相性がけっこうあるようです.私の環境では,ThinkPad X60内蔵のデバイスでは全然うまくいきませんでしたが,
Abe UB22S
を使うとあっさり成功しました.
ここ
を参考に,対応するデバイスを使用するとよさそうです.
-
「Bluetoothで接続」
とは,パスコードを送ってシェイクハンドした状態まで持っていくことを指します.本体メニューの
“Bluetooth”
→
“My contacts”
の画面でPCの名前が表示される状態ならOKと思われます.
(同一PCであれば二度目以降は必要ない?)
-
本ページのnxt-scm.zipをダウンロードして適当な場所に解凍します.
-
Scheme処理系を起動します.
-
Windowsのスタートメニューから
「PLT Scheme」
→
「DrScheme」
を
(Vistaの場合は管理者として)
実行します.
-
ウインドウが表示されるので,上部のメニューの
“Language”
→
“Choose Language”
を実行すると現れるChoose Languagesのウインドウで,
“PLT”
→
“Textual (MzScheme, includes R5RS)”
を選択してOKボタンで決定します.
(この作業は二度目以降は必要ありません)
-
上部メニューの
“File”
→
“Open”
を実行し,
“nxt-scm.zip”
を解凍したディレクトリ内にある
“nxt.scm”
を開きます.
-
ウインドウ下部のプロンプトから
(表示されていない場合はCtrl+Eで表示されます)
(setup-nxt)
(Bluetooth接続の場合は
(setup-nxt #t)
)
として,
#t
が返ってくれば接続成功です.
-
(play "CDEFGAB")
として音が鳴るか試してみてください.
マニュアル
ここ
に置きました.Common Lisp用に書いたものですが,
“t”
→
“#t”
,
“nil”
→
“#f”
など,適当に読み変えれば大丈夫だと思います.
参考にしたもの