NXTプログラミング(1)
NXT基本セットには、マウスだけでプログラミングして、それをNXT本体にUSB/Bluetoothで接続して転送するためのソフトが付属している。これは「NXTソフトウェア」と呼ばれる。(右図)
これを使ってライントレーサー(白い紙の上に書かれた黒い線を辿って移動するロボット)のプログラムぐらいならすぐに作れるが、複雑なことをしようと思うと入力された値を変数に格納しておいて、それを加工して、その値によって分岐したいというようなことがある。
こういうことをしようと思うとテキストベースのプログラミング言語のほうが生産性が高い。
LEGO MINDSTORMS NXTはレゴ社により、その仕様が公開されている。
http://mindstorms.lego.com/Overview/NXTreme.aspx
そこで、さまざまな言語が使えるようになっている。NXTをスタンドアロンで動かすときにはNXCという言語が使われることが多いようだ。
しかし、いまさら独自言語なんて勉強したくないし、パソコンからBluetooth経由で制御するつもりなら、C#でも十分だ。(C#でNXTがスタンドアロンで動くプログラムを書きたい場合、Microsoft Robotics Studioを使えば良いようだ。詳細、未調査。)
以下、それぞれの言語へのリンク。
NBX(Next Byte Codes) : アセンブリ
NXC(Not eXactly C) : C言語ライク
http://bricxcc.sourceforge.net/nbc/
RobotC : C言語
http://www.robotc.net/
LeJOS NXJ : Java
http://lejos.sourceforge.net/
phLua : Lua
http://www.hempeldesigngroup.com/lego/pbLua/
NXT# : C# / VB.NET
http://nxtsharp.fokke.net/