Lego Mindstorms NXT

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

概要 
キットはサーボモーター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ベースのプログラミングソフトであるROBOLABが同梱されていた。現状では、教育用NXTはROBOLABまたはNXTソフトウェアのどちらかを選択して、別途購入する方式をとっている。教育用とは別に、同梱されているセンサーやブロックが異なる玩具用NXTがあるが、こちらはNXTソフトウェアが同梱されている。

いくつかの開発者キットが利用可能で、NXTに対応している。
 Software Developer Kit (SDK) -ホストUSBドライバの情報や実行可能なファイル形式、バイトコードのリファレンスを含んでいる。
 Hardware Developer Kit (HDK) -文書とNXTブロックとセンサーの概要を含んでいる。
 Bluetooth Developer Kit (BDK) -Bluetooth通信に使われているプロトコルの文書

2006年5月1日レゴは2006年8月までにNXT知能ブロックファームウェアがオープンソースとしてリリースされると公表したが、12月初頭まで利用できなかった。ファームウェアのソースはthe Hardware Developer's Kit、Software Developer's Kit、Bluetooth Developer's Kitと一緒にレゴのウェブサイトで見つけられる。

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

部品 
 519個のレゴ・テクニックの部品（及びVisorakのpincersを含むバイオニクルの部品）
 回転検出センサが組み込まれており、正確な制御の為のフィードバックがある3つのサーボモータ
 超音波距離センサと移動センサ
 音のパタンとトーン認識を備えたサウンドセンサ
 光の強弱を感知する光センサ（教育用セットに同梱）
 光の強弱と、色を識別できる色センサー（玩具用セットに同梱。色はセンサーの目の前のもののみ判別可能）
 タッチセンサ（プレス/リリース/衝突の感知）
 別売りの方向を感知するコンパスセンサ（Hitechnic社製）
 別売りの色彩を感知するカラーセンサ（Hitechnic社製）
 別売りの赤外線センサー、加速度センサー、ジャイロセンサー（Hitechnic社製）等

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

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

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

プログラミング言語 
 Actor-Lab
 言語： 独自のフローチャート風の言語
 Ada Interface to MindStorms
 言語： Ada
 brickOS
 言語： C/C++
 GCC
 言語： C/C++, Objective C, Fortran, Java, Ada among others
 GNU Toolchain for h8300
 言語： C/C++, ASM
 LabVIEW Toolkit for NXT
 言語： LabVIEW
 コメント： A toolkit for LabVIEW permitting development of custom native blocks for use in the Mindstorms NXT software.
 Lego.NET
 言語： Anything that can compile to .NET, works best with C#
 コメント： コンパイラ無し。バイトコードをマシンの命令に変換する。
 leJOS
 言語： Java
 librcx
 言語： C/C++
 コメント： GCC用のライブラリ
 Logitech SDK
 言語： 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
 NQC
 言語： NQC, a C-like language
 コメント： 非オフィシャルの言語の中では、もっともよく使われている。
 Official MindStorms SDK
 言語： 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
 OnScreen
 言語： A custom language which can be programmed directly on the RCX
 pbForth
 言語： Forth
 PRO-BOT
 言語： A kind of Visual Basic/spirit.ocx-based language
 コメント： Designed for robots which are in contact with the workstation at all times
 QuiteC
 言語： C
 コメント： A library for use with GCC and comes with GCC for Windows.
 RCX Code
 言語： RCX Code, a custom flowchart-based language
 ROBOLAB
 言語： A flowchart language based on LabVIEW
 コメント： This is the programming environment offered to schools who use MindStorms, supports the Lego Cam
 SqLego
 言語： Squeak
 TclRCX
 言語： Tcl
 Terrapin Logo
 言語： LOGO
 TinyVM
 言語： Java
 The Transterpreter
 言語： occam
 Vision Command
 言語： RCX Code
 コメント： Lego Cam と一緒に使うオフィシャルのプログラミング言語
 XS
 言語： Lisp
 LegoLog
 言語： Prolog
 コメント： Uses an NQC program to interpret commands send from the pc running the Prolog code
 PBrickDev
 言語： PBrickDev, a flowchart based language.
 コメント： Has more fuctionality than the RIS language, such as datalogs and subroutines/multithreading.

参考文献 
 Bagnall, Brian. Maximum LEGO® NXT: Building Robots with Java Brains 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 (book and CD-ROM). 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., "LEGOsheets: A Rule-Based Programming, Simulation and Manipulation Environment for the LEGO Programmable Brick," 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, "http://www.juanantonio.info/lejos-ebook/
 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

脚注

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

外部リンク 

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

 Official Lego Mindstorms (NXT)
 Official Robotics Invention System
 Lego Mindstorms公式サイト(日本語)

様々なリソースとポータル：
 bNXT collects resources on Lego Mindstorms NXT
 LEGO-robotics - A summary of information and links about many aspects of Mindstorms
 Carnegie Mellon's Robotics Academy
 LEGO Engineering - Resource for Educators on RCX & NXT
 DCC for the RCX – Mark Riley's LDCC firmware for the RCX
 nxtasy.org - Fresh NXT news and user community
 LEGO Mindstorms NXT Robots - Lego Mindstorms NXT Robots
 LEGO Mindstorms Sensor Input Page - Lego Mindstorms Sensor Input Page

プログラミング言語とOS：
 Tufts University's ROBOLAB page
 leJOS - Java for the RCX Brick
 BrickOS alternative firmware for the RCX
 National Instruments LabVIEW NXT Toolkit
 The NQC programming language for the RCX
 The NBC programming language for the NXT
 The Transterpreter (occam runtime system)
 XS: Lisp on Lego Mindstorms
 Robotics Academy's RobotC (NXT & RCX C-Based Programming)
 BricX Control Center, Multi language and OS IDE for Windows
 Perl Direct Commands Interface to the NXT
 RoboDNA offers Free PC Based Robotic Dashboards for the Lego NXT
 NXT#- .NET library for the Lego NXT
 NXTMOTE: TinyOS on NXT
 ruby-nxt is a Ruby interface for controlling the Lego Mindstorms NXT via Bluetooth

サードパーティの拡張デバイス：
 NXT Sensors from HiTechnic
 Sensors and interfaces from mindsensors.com

チュートリアル：
 A multimedia tutorial for the NXT-G graphical language
 Preparing QuiteC on Windows

日本における技術サポート：

 アフレル Afrel (日本語)

マインドストーム NXT のリンク：
 National Instruments NXT softwares
 Wired Magazine: Geeks in Toyland – Behind the scenes of the Mindstorms NXT User Panel
 Mindstorms NXT Wiki
 Short review with movie and screenshots

脚注

注釈 

教材
組み込みシステム
教育用ロボット
まいんとすとおむNXT
NXT
2000年代の玩具