Lego Mindstorms NXT

Lego Mindstorms NXTは、2006年7月末に発売されたプログラム可能なロボットや他の機械、または対話システムを組むためのレゴ社の商品セットであるMINDSTORMSの改良型。

1. 概要
-----

キットはサーボモーター3個、タッチセンサー2個、光センサー1個、サウンドセンサー1個、超音波センサー1個とNXT「知能」ブロックを1個、7本の接続ケーブルとUSBインタフェースケーブルを含む577個の部品で構成される。知能ブロックは異なる振る舞いを可能にするマインドストームの"脳"である。キットには同様にNXTに作成したプログラムをダウンロード可能なグラフィカルプログラミング環境のNXT-Gを含む。ソフトウェアは同様にAlpha-Rex 、Tri-Bot 、ロボアーム T-56 と Spike の4形態のロボットに対応した命令を備える。

モーターは回転センサーが予め組み込まれたステッピングモーターで、従来のマインドストーム用モーターよりはるかに高性能である。しかしセンサー、モーターともに接続の方式が今までのようにブロックに線が埋め込まれているのではなく、ブロックの形を完全になくした専用のジャックとなった。機能が向上した分、従来のセンサー、モーターの複数同時接続はできなくなった。

NXTの知能ブロックは48MHzで動作する32ビットのARM7マイクロプロセッサーと4MHzで動作する8ビットのAtmel AVRマイクロプロセッサを持っている。ブロックは入力ポートを4個、出力ポートを3個、64×100ピクセルLCDマトリックスディスプレイを1個、USB 2.0ポートとBluetoothワイヤレス接続を持っている。ARM7プロセッサは256KiBのフラッシュメモリと64KiBのRAMへのアクセスを持つ一方で、第二のプロセッサは4KiBのフラッシュと512バイトのRAMへのアクセスしかもたない。接続はデジタルで、センサーと使用できるモーターポートを拡張するマルチパックを加える事が出来る。I/Oソケットで使われるコネクタはRCXで使われていたものとデザインが異なり、RJ12コネクタに似たポートを使っている。ブロックには8kHzD/Aのラウドスピーカーが組み込まれている。ブロックはAAタイプのバッテリーを6つ使用する。アルカリ電池が推奨されているが、充電式電池でも動作する。旧型となってしまったRISシリーズに比べテクニック系の部品が大部分を占め、今までなかった新しいブロックの組み合わせや楽しみが増えた。

レゴマインドストームNXTセットは小売り版と教育用の2つのバージョンで出荷されている。教育用セットのNXTブロックは充電式電池と充電器を同梱している。しかし、このキットはプログラミングソフトを含んでおらず、別売りになっている。なお、個人用、教室用、サイト用でソフトウェアのライセンスが異なる。

教育用の商品は Lego Mindstorms for Schools と呼ばれており、タフツ大学で開発され ナショナルインスツルメンツのLabVIEWをエンジンとして使っているGUIベースのプログラミングソフトである[1]が同梱されていた。現状では、教育用NXTはROBOLABまたはNXTソフトウェアのどちらかを選択して、別途購入する方式をとっている。教育用とは別に、同梱されているセンサーやブロックが異なる玩具用NXTがあるが、こちらはNXTソフトウェアが同梱されている。

いくつかの開発者キットが利用可能で、NXTに対応している。

Software Developer Kit  -ホストUSBドライバの情報や実行可能なファイル形式、バイトコードのリファレンスを含んでいる。
Hardware Developer Kit  -文書とNXTブロックとセンサーの概要を含んでいる。
Bluetooth Developer Kit  -Bluetooth通信に使われているプロトコルの文書2006年5月1日レゴは2006年8月までにNXT知能ブロックファームウェアがオープンソースとしてリリースされると公表したが、12月初頭まで利用できなかった。ファームウェアのソースはthe Hardware Developer's Kit、Software Developer's Kit、Bluetooth Developer's Kitと一緒にレゴのウェブサイトで見つけられる。

1.1. NXTのブロック
-------------

32ビットARM7 主マイクロプロセッサ @48MHZ
256KB フラッシュメモリ
64KB RAM
8ビットAtmel AVR マイクロコントローラ @4MHZ
4KB フラッシュメモリ
512Bytes RAM
64×100 ピクセル 液晶ドットマトリクスディスプレイ
ウィンドウズまたはマッキントッシュのパソコンでプログラミング可能
ユーザーはNational Instruments社開発のLabVIEWを使った新しいソフトウェアを用いてプログラムを作成
USB 2.0ポートを一つ搭載
Bluetoothによって、NXTに無線でプログラムを転送ないしロボットの遠隔操作をする方法を提供
4 input ports, 6-wire cable digital platform  compliant expansion port for future use)
3つの6線ケーブルデジタルプラットフォームの出力ポート
サードパーティー開発の外部デバイスを使用可能にするデジタルワイヤインターフェイス

1.2. 部品
-------

519個のレゴ・テクニックの部品
回転検出センサが組み込まれており、正確な制御の為のフィードバックがある3つのサーボモータ
超音波距離センサと移動センサ
音のパタンとトーン認識を備えたサウンドセンサ
光の強弱を感知する光センサ
光の強弱と、色を識別できる色センサー
タッチセンサ
別売りの方向を感知するコンパスセンサ
別売りの色彩を感知するカラーセンサ[3]
別売りの赤外線センサー、加速度センサー、ジャイロセンサー等

2. レゴ マインドストームNXT 2.x
---------------------

2009年6月29日にver2.0発表、8月1日発売開始。パーツ数が619に増え、2個のタッチセンサーと1個の超音波センサーと新型の色センサーが導入された。NXT 2.0 は浮動小数点演算を使用するが、初期の型では整数演算を使用した。キットの値段はおよそUS$280だった。

2010年11月に、ソフトウェアがNXT 2.1にバージョンアップされた。

3. プログラミング言語
------------

[4] 言語： 独自のフローチャート風の言語 [5] 言語： Ada [6] 言語： C/C++[7] [8] 言語： C/C++, Objective C, Fortran, Java, Ada among others [9] 言語： C/C++, ASM [10] 言語： LabVIEW コメント： A toolkit for LabVIEW permitting development of custom native blocks for use in the Mindstorms NXT software. [11] 言語： Anything that can compile to .NET, works best with C#[12] コメント： コンパイラ無し。バイトコードをマシンの命令に変換する。 [13] 言語： Java [14] 言語： C/C++ コメント： GCC用のライブラリ [15] 言語： Visual Basic, Visual C++ コメント： Can be combined with an RCX control library such as spirit.ocx from the MindStorms SDK to make use of the Lego Cam [16] 言語： NQC, a C-like language コメント： 非オフィシャルの言語の中では、もっともよく使われている。 [17] 言語： Visual Basic, Visual C++, MindScript, LASM コメント： You don't need VB to use the VB features as MS Office comes with a cut down version of VB for making macros [18] 言語： A custom language which can be programmed directly on the RCX [19] 言語： Forth [20] 言語： A kind of Visual Basic/spirit.ocx-based language コメント： Designed for robots which are in contact with the
workstation at all times [21] 言語： C コメント： A library for use with GCC and comes with GCC for Windows. [22] 言語： RCX Code, a custom flowchart-based language [23] 言語： A flowchart language based on LabVIEW コメント： This is the programming environment offered to schools who use MindStorms, supports the Lego Cam [24] 言語： Squeak[25] [26] 言語： Tcl [27] 言語： LOGO [28] 言語： Java [29] 言語： occam [30] 言語： RCX Code コメント： Lego Cam と一緒に使うオフィシャルのプログラミング言語 [31] 言語： Lisp [32] 言語： Prolog コメント： Uses an NQC program to interpret commands send from the pc running the Prolog code [33] 言語： PBrickDev, a flowchart based language. コメント： Has more fuctionality than the RIS language, such as datalogs and subroutines/multithreading.

4. 参考文献
-------

Bagnall, Brian. [34] Variant Press. 2007. ISBN 0-9738649-1-5
Bagnall, Brian. //Core LEGO® Mindstorms// Prentice-Hall PTR. 2002. ISBN 0-13-009364-5
Baum, Dave. //Definitive Guide to LEGO® MINDSTORMS//, 2nd ed. Apress. 2002. ISBN 1-59059-063-5.
Erwin, Benjamin. //Creative Projects with LEGO® Mindstorms// . Addison-Wesley. 2001. ISBN 0-201-70895-7.
Ferrari et al. //Building Robots With LEGO® Mindstorms: The Ultimate Tool for Mindstorms Maniacs//. Syngress. 2001. ISBN 1-928994-67-9.
Gindling, J., A. Ioannidou, J. Loh, O. Lokkebo, and A. Repenning., "[35]," Proceeding of Visual Languages, Darmstadt, Germany, IEEE Computer Society Press, 1995, pp.   172–179.
Breña Moral, Juan Antonio. //Develop LeJOS programs Step by Step//, "[36]
LEGO MINDSTORMS NXTオレンジブック ISBN 9784839921866
LEGO MINDSTORMS NXTグレーブック ISBN 9784839923013
Joe NagataのLEGO MINDSTORMS NXT歩行ロボット製作入門 ISBN 9784274205668
入門LEGO MINDSTORMS NXT ISBN 9784797338256
実践ロボットプログラミング ISBN 9784764903784
LabVIEWで学ぶ〈最新〉LEGO Mindstorms NXT入門 ISBN 9784774146553
知的LEGO Mindstorms NXTプログラミング入門 電子工作Hi‐Techシリーズ ISBN 9784789818957
「Kinect」×「Mindstorms NXT」「ロボット」プログラミング I/O BOOKS ISBN 9784777517602

5. 脚注
-----

6. 関連項目
-------

シーモア・パパート - 著名なコンピュータ科学者・心理学者で、MINDSTORMSの開発者の一人。MINDSTORMSの名は、彼の著作『マインドストーム—子供、コンピューター、そして強力なアイデア』から名付けられた。
:en:FIRST Lego League
:en:RoboCup Junior
:en:Legoscript
:en:Vex
:en:Big Trak
iRobot Create 
ETソフトウェアデザインロボットコンテスト
WRO
レゴ

7. 外部リンク
--------

マインドストーム NXTの公式サイト：

[37]
[38]
[39]様々なリソースとポータル：

[40]
[41] - A summary of information and links about many aspects of Mindstorms
[42]
[43] - Resource for Educators on RCX & NXT
[44] – Mark Riley's LDCC firmware for the RCX
[45]
[46] - Lego Mindstorms NXT Robots
[47] - Lego Mindstorms Sensor Input Pageプログラミング言語とOS：

[48]
[49]
[50]
[51]
[52]
[53]
[54] 
[55]
[56]
[57]
[58]
[59]
[60]
[61]
[62]サードパーティの拡張デバイス：

[63]
[64]チュートリアル：

[65]
[66]日本における技術サポート：

[67]マインドストーム NXT のリンク：

[68]
[69] – Behind the scenes of the Mindstorms NXT User Panel
[70]
[71]

8. 脚注
-----

8.1. 注釈
-------