Open Source Firmware Developer Kits for LEGO MINDSTORMS NXT Released!

ここんところ、遊び倒している、Lego Mindstorms NXT用の、Developer Kitsが公開された。www.lego.comの中にある、NXT’remeというサイトからダウンロードできる。

レゴ マインドストーム NXT
レゴ マインドストーム NXT

プレスリリースはこちら。現在、NXT’remeからは、以下のものがダウンロードできる。

 

  1. Software Developer KIT(SDK)
    1. Driver SDK
      パソコンからNXTを操作するための、パソコン用のソフトを開発するための、ヘッダ、ライブラリ、ドキュメントのセット
      ドキュメントは、WindowsHelp形式のchmとhtml形式の2種類。1ページ目にサンプルコードへのリンクと、ライブラリのクラスダイアグラムが出ている。サンプルコードとは言え、main.cpp一個のきわめてシンプルなもの。
      ヘッダは、includesの中と、その下のfantomというフォルダの中に、いわゆる、.hファイルが入っている。includeslabviewの中には、Win32とmacosxというそれぞれのフォルダの中に、viファイルという得体の知れないバイナリファイルが入っている。コレについての説明が見当たらないのでなんだかわからん。APIを叩くときのNXT側のプログラムかな?
      targetsフォルダの中に、macosxUとwin32Uというフォルダがあって、win32Uの下のwin32Ui386msvc71releaseのなかに、fantom.libというライブラリが置いてある。Uってついてるってことは、Unicodeってこと?macosxUの方は、、、、よくわからん。なんだこれ?
      サンプルをリンクするのに、National InstrumentsのサイトからNI-VISAをダウンロードしてインストールしておかなければいけないようなことが書いてあるけど、National Instrumentsのサイトを探してもそれらしきものが見つけられない。Windowsならサンプルをコンパイルするのに、cl.exeを使うみたい。いわゆる無料のVisual studio C++ express editionのcl.exeで、指示されたとおりにサンプルをコンパイルしたら、ちゃんとリンクが通ってしまった。動作確認まではしてないけど、National Instrumentsうんぬんのくだりは、MacOSでコンパイルするためのものか?targetsmacosxUのくだりはよくわからんです。
      サンプルコードを見ると、コメントに、

      • アクセス可能なNXTをすべて見つけてイテレータを作る(Bluetoothは探さないで、USBのみ)
      • NXTにダイレクトコマンドを送信する
      • ファイルオブジェクトを作成する

      なんてことが埋まっている。う~ん。このSDKで何ができるのか、よくわからん。

    2. Executable File and Bytecode Reference
      どうやら、NXTの中にはvirtual machineが入っていて、そのvirtual machineがバイトコード命令を解釈して実行するという構造になっているようである。その実行ファイルフォーマットとバイトコードの説明のpdfファイルが一個入っている。
      な~んだ。ARM7のコードを直接かくわけじゃないんだ。ん?ちうことは何?そうゆうコンパイラを自分で作れますよってことかしら。う~ん。めんどくさそ~。
      とりあえず、表紙にはでかでかと、Powered by National Instruments LabViewと書かれているので、LabViewを使ってvirtual machineが作られているのかしら。
  2. Hardware Developer Kit(HDK)
    NXTの回路図というか設計図。こいつがあれば、物理的には同じものが作れる。ソフトウエアは無いけどね。NXTの中が、どんなブロックになってて、どんなチップ使ってて、どのピンがどんな意味があって、どれとどれが繋がっているとか、電流の量とか電池の消費とかなどの詳しい説明が書かれている。また、センサの中の回路図もある。タッチセンサの回路図は当然ながら、スイッチ一個だけでした。それに加えて、Bluetoothのインターフェース仕様書もある。全部でpdf9個のファイル。
    まぁこんだけ書かれていれば、自分で新しいセンサくらいならつなげられるかな。
  3. Bluetooth Developer Kit(BDK)
    ぶっちゃけて言ってしまえば、NXTの通信プロトコルについてのドキュメント。Bluetoothだけじゃなくて、USBに関する通信プロトコルや、先のSDKに出てきたダイレクトコマンドの仕様もこのドキュメントに書かれている。
    これがあれば、NXTと通信する周辺機器が作れるっぽいね。

それより何より、ぶったまげたのが、NXT’remeの中にあるHardware Resourcesのリンク。http://www.hitechnic.com/http://www.mindsensors.com/ どちらも、Mindstormに繋がる拡張センサを開発販売している。向きを検知する、方位磁石センサとか傾きセンサとか、赤外線センサとか。
http://www.hitechnic.com/はまだ、レゴブロックの形を整えたセンサだけど、http://www.mindsensors.com/は、基盤にポッチ用の穴を開けて、穴の内側にスルーホールのように接触面を設けて、ポッチを使って端子をつなぐ。世の中いろんなこと、考える人がいるねぇ。

同様に、NXT’remeのProgramming environments using LEGO MINDSTORMS firmwareの中に、「Microsoft Robotics studio http://msdn.microsoft.com/robotics/」てな記述を見つけた。そういえば、以前、Microsoft Robotics studioの記事をどっかのWebで見たなぁ。ちょっと遊んでみるか。

コメントを残す