MINDSTORMS

**MINDSTORMS**（マインドストーム）は、モーターを備えたプログラムが組み込めるブロックや、センサー、レゴブロック、ギアや車軸、ビーム、タイヤと言ったレゴ・テクニックの部品の組み合わせで、ロボットや他の機械、または対話システムを組むためのレゴ社の商品セットである。

## 概要
レゴ マインドストーム（Mindstorms）は、発売当初のRCXと現状のNXTが主で、他にも派生型がある。当初は、「ロボット発明システムRIS」として売られていた。また、元々はMITメディアラボとレゴのパートナーシップを通して教材としても販売され使われていた。このブロックは Logoでプログラムされた。最初のビジュアル式プログラム環境はLEGOsheetsと称され、 1994年にコロラド大学によってを基に開発された。

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

レゴ マインドストームはコンピュータで操る電子機械部品の組み込みシステムのモデルを構築するために使われるかもしれない。ほとんど全ての実生活の組み込みシステムはエレベーターのコントローラーから産業用ロボットに到るまでマインドストームを用いてモデル化できるだろう。

プロから趣味人、全ての年齢層からなる活発なコミュニティがありデザインやプログラミングの技巧やその他関連するアイディアを共有している。

最初のマインドストーム Robotics Invention System(RIS) は、1998年にリリースされた。DCモーター(※注意 一部ではステッピングモーターやサーボモーターであると勘違いしている場合があるが、これは誤りである。ただし、NXTはサーボモーター)、とタッチセンサーが2つずつと光センサーが1つ入っていた。別売りの追加パーツとして回転センサー、温度センサー、音量センサーがある。2000年前後ではモーターの新型も登場したが、ほとんど旧型と見分けがつかない。変更が見られたところはモーターのトップにはめ込みの跡があること、重量が若干軽くなった点などが挙げられる。2006年、レゴ社はNXTと呼ばれる新しいプログラミングできるブロックを中心とした次世代のマインドストームをリリースし、2009年 NXT 2.0をリリース。ソフトウェアは2010年に2.1にバージョンアップした。2013年9月1日にEV3を発売。

言語知識が無くても多様な機能を持つロボットを自由に作ることができる。高度な機能を比較的手軽に実装できるため、企業研修などでも多用される。また、教育版レゴ マインドストームEV3は、レゴ マインドストームシリーズの3代目のロボット作成キット。

Evolution（進化）から名付けられた、教育版レゴ マインドストームEV3には、今までの利便性をそのままにプロセッサの見直し、出力ポートの追加、プログラミング機能などの改善や、新しくUSBポート、マイクロSDカードスロット、Auto-ID機能などが追加され、多岐にわたる進化を遂げている。

## RCX

レゴマインドストームの第一世代は、RCX(*Robotic Command eXplorers*のアクロニム)という名前のブロックを含むセットである。RCXにはCPUが内蔵されており、ルネサス テクノロジ社の16MHzの8ビットCPUであるH8/300マイクロコントローラが採用されている。32KのRAMにファームウェアと利用者のプログラムを保存する。

外部通信用のIRポートを持ち、Microsoft WindowsかMacのパソコンから専用の赤外線インタフェースを通して、内蔵されたRAMに後述の対応言語で書かれたプログラムを5種類までダウンロードし登録できる。プログラムをスタートさせれば、その内容に従い内外の刺激に基づいて接続されたモーター等をコントロールする。これによりRCXを搭載した制作物を単体で自立動作させることができる。

また、複数のRCX同士で互いにIRポートを通して番号付きのメッセージの送受信を行うことができ、これを用いて協調動作や競争をさせる事も可能。

上面には3つのセンサー用入力ポートと3つのモーター用出力ポート(モーター以外に電球を灯したりすることも可能)があり、中央に電池の残量や入力・出力ポートの動作状況、プログラムの動作状況などの情報を表示する液晶ディスプレイを持つ。

一般向けのセットには対応センサーとして接触センサーと光センサーが同梱されている他、製品としては回転センサー、温度センサーも存在する。また出力ポートからはランプなどの電飾部品の制御も可能。

RCXの赤外線インターフェースはスパイボット、スカウト、レゴトレイン、NXT(サードパーティーの赤外線リンクセンサーを使用)とも通信可能だった。RCX 1.0 IR 受信機の搬送波の周波数は38.5&nbsp;kHzだったが、RCX 2.0 IR では搬送波の周波数は76&nbsp;kHzだった。両方のバージョンはどちらの周波数でも送信できる。 信号はRCXに内蔵されたタイマーの一つで生成される。RCXはシリアルポートやUSB IR タワーを介してコンピュータと通信できる。タワーはWindows 98、MeとXP (32ビット)に対応する。ハイパースレッディング/マルチコアCPUのためのパッチが入手可能である。Windows Vista (32ビット)への公式サポートは無いが機能するという報告はある。USB タワーは64ビットのOSでは使用できないが32ビットのOSは仮想環境上で使用できる。シリアルタワーは通常64ビットのWindows 7でサードパーティー製のUSB-シリアルアダプターを介して使用できる。

全てのバージョンのRCXは固有の番号が印刷されていて技術サポートを受ける時や今では廃止されたマインドストームのウェブサイトでID番号としてアカウントとして必要だった。最初に製造されたRCXは"000001"でマインドストーム10周年イベントで展示された。

電源は一般的な単三乾電池6本だが、RCXバージョン1.0にはそれ以外にACアダプタ用の電源ジャックが搭載されており、家庭用コンセントからの電源供給も可能でそれにより長時間の使用が可能だった。製品自体にはACアダプタは含まれていないが、電圧さえ合えば他製品のACアダプタを極性や交流・直流に関係なく利用可能であり、ファミコン用の製品などが流用できる。バージョン1.5以降では電源ジャックは取り除かれている。電源ジャックを搭載したRCXは電池使用時と違い持続的な動作を可能にするため、固定ロボットアームのようなロボット工学プロジェクトやレゴモデルトレインへの使用に人気がある。レゴモデルトレインではRCXに電車モデルの動作を自動化するデジタルコマンドコントロール（DCC）ソフトウェアをプログラムする必要がある。

2008年現在では既に生産終了しており、取扱店も在庫のみの状態であり新品の入手は困難である。教育機関向けの正規代理店では一部販売しているようである。

### プログラム言語
#### レゴ社製
* RCX コード
**玩具店で売られる一般向けマインドストームに同梱
* ROBOLAB
**LabVIEWに基づきタフツ大学で開発された。2011年開発停止。一つの制御をするのに複数のブロックを集める必要があり、ブロックの所在はユーザーが覚えてたどり着くしかないという使い勝手の悪さがあった。
* NXTソフトウェア
**LabVIEWに基づき、GUIを一新させたもの。非常に小さなプログラムを組む場合に使い勝手が良い。しかしバグが多く、アプリケーションが途中で勝手に隣の制御ブロックとの接続を切り離してしまうので、エラーが頻発する。コピーペーストでブロックを複製したり、ブロックをまとめて移動すると高い確率でバグにはまる。150個程のブロックを並べると、最後が表示出来ない等のバグは、2011年7月時点で未解決のままメーカー保留中である（メーカーにAfrel経由で報告済2010.12）。

#### サードパーティ製
* BrickOS（かつてのLegOS）下のCとC++
* leJOSやTIny VM下のJava
* NQC（Not Quite C）
* pbFORTH（Forthの拡張）
* Visual Basic（CDで供給されているCOM+インタフェースを介して）
* RobotC（新言語で、NXTと互換がある）

## RCX以外のプログラム動作可能な製品

### 4.5V PC インターフェース
最初のプログラム可能なレゴの製品(1989)である。IBM-PC-互換機のISA インターフェースカードでリボンケーブルと制御パネルで構成された。制御パネルは6個の極性の反転のできない4.5Vの出力ポートと3個の極性を反転可能な4.5V出力ポート(それぞれ2個の反転不可能のポートから電力供給)、2個の4.5V入力ポートと常時出力の4.5V 出力ポートが含まれた。同様に手動式の停止ボタンを特徴とした。本体のコンピュータ上でプログラムを実行して利用者は固定されたプログラム可能なロボットを古い4.5Vのシステムを使用してレゴ インベンションで作る事が出来た。4.5V PCインターフェースは1995年に9V式のDacta Control Labによって置き換えられた。

### テクニック コントロールセンター
コントロールセンター(1990)は単独で作動する最初のプログラム可能なレゴの製品で保存可能なシーケンスを基本としたプログラムを実行した。3個の出力ポートと手動制御と手動によるタイミング情報によるシーケンスを備えた。2個までのプログラムを1回に保存可能だった。

手動制御は3台のモータを独立して制御できた。プログラムを記録する為;制御装置をプログラムモードに設定してどの手動制御もプログラムのために記録出来た。一時停止も同様にプログラムに含まれた。一度記録されると、制御装置は再呼び出しに成功して記録中のどの手動動作も実行出来た。プログラムの実行は無限ループに設定する事が出来た。

後のプログラム可能な制御装置と比較すると、テクニックコントロールセンターは大幅に単純でプログラムを呼び出す事だけが出来た。

### Dacta コントロール ラボ
1995年に発売されたコントロール ラボは後に9Vの自動化レゴの製品に使用されたセンサーを特徴とするレゴの最初の製品である。コントロールラボはデータ記録機で4個の受動部品、4個の能動入力部品、8個の制御可能な9Vの出力ポートと1個の常時通電出力ポートを特徴とした。同様に手動式の停止ボタンを備えた。制御パネルは専用に設計されたアダプターケーブルを備えたシリアルポートを使用してコンピュータに接続され、供給されたコンピュータプログラムが利用者にプログラムの状態を出力した。これは大半が固定式のレゴ・インベンションのロボットの運転を企図した。コントロールラボは最初のプログラム可能なレゴのインターフェースである古い4.5VのPCインターフェースが1989年から供給された。

初期のセンサーの接続端子は種類に応じて色分けされていた。能動センサーは青の端子で受動センサーは黄色の端子だった。後のPブロックは入力用の色分けを維持したが後期のセンサーは接続端子の機能別の色分けを廃止した。(代わりに黒の接続端子が使用された)初期のタッチセンサーも同様に後期のタッチセンサーと比較して異なる種類と形状だった。特筆すべきは取り外し可能なケーブルの代わりにケーブルは他のセンサーのように固定式だった。これらの初期のセンサーは長いケーブルを備えた。

コントロールラボは学校と教育での使用のために設計され、その結果、一般の市場では入手できなかった。後に固定式インベンションに移動式インベンションが加えられたRCXが教育分野にロボットインベンションシステムが発売された事によって置き換えられた。

### コードパイロット
「バーコードトラックキット」の部品として登場。最初のプログラミング可能なブロック（Pブロック）である。モーター、タッチセンサー、光センサーをそれぞれ1つずつ内蔵している。「learn」に設定し、あらかじめ用意された命令セットのバーコードを光センサーで読み取る事でプログラムできる。命令セットはとても限定されている。この形式のコマンド入力は「VLL(Visual Light Link)」と呼ばれ、光の変化の連続に過ぎないので簡単に利用でき、後のいくつかのレゴモデルで使われている。

### サイバーマスター

主にヨーロッパとオーストラリア・ニュージーランドで売られていた製品だが、レゴクラブマガジンを通してアメリカ等でも短期間販売されていた。日本未発売。レゴとロボット工学とコンピュータゲームを融合させる早期の試みとして若い読者を対象にしていた。使用されているPブロックのespソフトや特徴はRCXと共通しているが、外観や技術的特徴は異なる。1つの出力と2つの組み込みモーター、3つのセンサー入力がある。
* PCとの通信に赤外線ではなくRF（27MHz R/Cバンド）を使っている。
* タコメーターと速度計を持つ2つの組み込みモーターを持っている。
* 利用できるセンサーは受信センサー（内部のプルアップ抵抗と一緒になった単純なA/D）に限られている。光センサーなどが利用できない。
* 一緒に発売されたタッチセンサーには、内部抵抗が色ごとに異なる3種類があり、どのセンサーが接続されているのか本体側で認識することができる。
* ファームウェアは固定されており、改良や除去ができない。
* プログラム用の限定的なRAMとプログラムスロットが1つだけある。

以上のように明らかな制限がある一方、RCXにはない次のような長所がある。
* RFによる通信なので通信可能距離がより長く、また全方向と通信できる。
* 内蔵モーターに組み込まれたタコと速度センサーにより、RCXにおける回転センサーに相当する働きをセンサーポートなしで利用できる。

これらの利点により携帯プラットフォームからの操作やポジショニングがとても行い易い。

RCXと同じプロトコルを持つが、前述のように通信方式が異なるため直接通信することはできない。ただし2つのシリアルポートをもつコンピュータと単純なプログラムのリピータで仲介すれば統合可能。

### スカウト（Scout）
RCXと同サイズのプログラミング可能なブロック。「ロボティクスディスカバリーセット（RDS）」に同梱。2つのセンサーポートと2つのモーターポートを持ち、光センサーとLEDライトが本体に組み込まれている。ロボティックスディスカバリーセットにはPCインタフェースが含まれていないが、RISなどに入っているIRタワーを用いればPCとの通信も可能。

スカウトには「スタンドアロンモード（Stand Alone Mode）」と「パワーモード（Power Mode）」の2つの動作モードがある。この2つのモードを使い分けることで、PCを使わない（使えない）初心者から、プログラミングを楽しみたい上級者まで1台のスカウトでカバーできるはずであったが、実際にはどっちつかずの中途半端なコントローラーブロックという位置づけになった。

#### スタンドアロンモード
電源投入後の初期状態はスタンドアロンモードであり、組み込みのプログラムコレクションを選択していくことで、単独でプログラミングを行える。保持できるプログラムは1つのみ。また、スタンドアロンモードではリモコン、IRタワー、RCXなどから赤外線メッセージを送ることで特殊な動作を行ったり、モーターをコントロールしたりできる。

##### RCX/スカウト IR コミュニケーションコード
* 1 暗い方に進む
* 2 明るい方に進む
* 3 バグダンス（The Bug Dance）
(IRメッセージ コード番号/左モーターの動作/右モーターの動作)
* 4/順/順
* 5/逆/逆
* 6/順/逆
* 7/逆/順
* 8/順/オフ
* 9/逆/オフ
* 10/オフ/順
* 11/オフ/逆
* 12/オフ/オフ

※実際は13以降のメッセージにも反応する。

#### パワーモード
スカウトでは本体キー操作で「パワーモード」と呼ばれるモードに切り替えることができる。このモードでは、IRタワーを使ってスカウトからデータを読み取ったり、PC側で作成したプログラムをダウンロードしてスカウト上で実行することができる。また、RCX用の別売センサー（たとえば、温度センサー）などを接続して使うことも可能。

##### スカウトの開発環境
* LEGO(R) MindStorms Scout Software Developers Kit : アセンブラ風
* NQC(Not Quite C)： RCX用の開発言語だが、ターゲットとしてスカウトも指定可能
* ROBOLAB：メインのターゲットはRCXだが、ターゲットとしてスカウトも指定可能

しかし、スカウトのプログラミング環境はあまり使われておらず、「スカウトはPCからプログラミングできなかった」との誤解が流布している。これは、プログラミングのためにはRDSに含まれていなかったIRタワーが必要だったこと、プログラミング環境がRDSには含まれておらず、初心者には環境整備できなかったこと、プログラミングするならスカウトではなくRCXを多くの人が選んだこと、などの複数の理由が考えられる。

パワーモードでは、内蔵LEDを制御してVLL信号を発することによって、VLLで制御可能な他の機器（たとえば、マイクロスカウト）をコントロールすることも可能。

### マイクロスカウト
レゴロボティクスへの入門製品として登場。本体に光センサーとモーターが1つずつ組み込まれており、7種類の書き換え不可のプログラムが内蔵された非常に簡易的なプログラムブロックである。スター・ウォーズシリーズのドロイドを模したロボットを制作できる「ドロイドキット」及び「ダークサイドキット」に同梱。

光センサーをVLL受信機として使うことができ、RCXやスカウト、スパイボティックスから専用もしくは市販の光ファイバーを介して光信号を送ることで内蔵モーターの動作を制御することができる。いわば専用の電池を内蔵したモーターとして使う状態であり、パワーの必要なモデルを製作する際に有効だが、マイクロスカウト自体が大型のため使用には工夫が必要である。

### スパイボティックス
サイバーマスターの後継とも言える商品群。コンピュータ上で遊ぶパートと実際にスパイボットを操縦してミッションを解決して遊ぶパートが収録されたコンピュータゲームとセットで販売された。これらに用いられるPブロックはサイバーマスターと同様、タコメーターと速度フィードバックを備えた2つの内蔵モーターを持つが、タッチセンサーは1つしかない。

ライトと光センサーが2組搭載されており、PCインターフェースとしての他、これを用いてスカウトやマイクロスカウト、さらにはコードパイロットともVLLを使って接続することができる。他のスパイボットやRCXと通信させる拡張赤外線機能もある。赤外線ユニットは距離と方向を測定する機能を持っており、他のスパイボットやリモコン、RCXを探知し場所を特定する事ができる。

赤外線リモコンと一緒に出荷されるので単一の赤外線ビーコンを倍に出来る。

## その他関連製品

### リモコン
RCXの動作を外部から制御できる赤外線リモコン。別売品。

プログラムの選択起動・停止のほか、接続されたモーターをプログラムを介さずに直接制御したり、メッセージコードの送信やビープ音を鳴らすことができる。

スカウトの制御も可能。スカウトには出力ポートが2つしかないが、リモコンの3番目のモーター用のボタンを使うとモーターの代わりに内蔵LEDライトからVLL信号を発する。そのため、あらかじめ光ファイバーで繋いでおけば間接的にマイクロスカウトの制御もできる。

### LEGOカメラ
レゴの殻に梱包されたウェブカメラ(Logicool社製Quickcamシリーズのカスタム品)。機能的にはロボットの玩具ではなく普通のUSB接続の有線ウェブカメラなので、他のマインドストーム製品とは異なりプログラミングできず、単にPCや他のUSB Webカメラに対応する装置に接続できるだけである。
デザイン的にはペグを取り付けるためのビーム及びポッチが備わっており、マインドストーム用の赤・青のスケルトンタイプと、LEGOスタジオシリーズ附属の灰・黄色のタイプの2種類の色がある。

制作したモデルにRCXとともに搭載することで視覚を持ったロボットを作る事ができ、Vision Commandソフトと一緒に使う事を意図されている。他、RISの拡張キット「MARS」のソフトを利用して、カメラからの映像を元に火星探査機のシミュレーション遊びをすることもできる。

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

マインドストームNXTは2006年8月にリリースされ初代のマインドストームを置き換えた。キットはサーボモーター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つ、USB2.0ポートとBluetoothワイヤレス接続を持っている。ARM7プロセッサは256KiBのフラッシュメモリと64KiBのRAMへのアクセスを持つ一方で、第二のプロセッサは（別個の）4KiBのフラッシュと512バイトのRAMへのアクセスしかもたない。接続はデジタルで、センサーと使用できるモーターポートを拡張するマルチパックを加える事が出来る。I/Oソケットで使われるコネクタはRCXで使われていたものとデザインが異なり、RJ12コネクタに似たポートを使っている。ブロックには8kHzD/Aのラウドスピーカーが組み込まれている。ブロックはAAタイプのバッテリーを6つ使用する。アルカリ電池が推奨されているが、充電式電池でも動作する。旧型となってしまったRISシリーズに比べテクニック系の部品が大部分を占め,今までなかった新しいブロックの組み合わせ,楽しみが増えた。

レゴマインドストームNXTセットは小売り版と教育用の2つのバージョンで出荷されている。教育用セットの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 bit ARM7 主マイクロプロセッサ @48MHZ
** 256 KB フラッシュメモリ
** 64 KB RAM
* 8 bit Atmel AVR マイクロコントローラ @4MHZ
** 4 KB フラッシュメモリ
** 512 Bytes 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線ケーブルデジタルプラットフォームの出力ポート
* サードパーティ開発の外部デバイスを使用可能にするデジタルワイヤインターフェイス

### 部品教育版EV3拡張セットに含まれるもの
教育版EV3拡張セットには以下の物が含まれている。拡張セットは、ロボットの形を強く、かつ早く作るためのフレーム類や、複数種類のタイヤ、グリップ力を上げるゴムなどが含まれており、より、幅広いロボットを作ることができるようになる。

LEGO MINDSTORMS Education EV3 Expansion Setのspecifications sheetに以下の一覧が掲載されている。

### 教育版EV3基本セットで作ることができるロボットの種類
* 519のレゴ・テクニックの部品（及びVisorakのpincersを含むバイオニクルの部品）
* ローテーションセンサが組み込まれており、正確なコントロールの為のフィードバックがある3つのサーボモータ
* 超音波距離センサと移動センサ
* 音のパタンとトーン認識を備えたサウンドセンサ
* 光の強弱を感知する光センサ（教育用セットに同梱）
* 光の強弱と、色を識別できる色センサー（玩具用セットに同梱。色はセンサーの目の前のもののみ判別可能）
* タッチセンサ（プレス/リリース/衝突の感知）
* 別売りの方向を感知するコンパスセンサ（Hitechnic社製）
* 別売りの色彩を感知するカラーセンサ（Hitechnic社製）http://shop.lego.com/ByTheme/Product.aspx?p=MS1038&cn=17&d=70
* 別売りの赤外線センサー、加速度センサー、ジャイロセンサー（Hitechnic社製）等

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

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

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

## レゴ マインドストームEV3

Mindstorms EV3は第3世代のMindstormsの製品である。レゴは第3世代のマインドストームのプラットホームをEvolution（進化）から名付けられたEV3と呼ぶ事を発表した。EV3はNXTをさらに発展させた。 2013年9月20日発売。

MINDSTORMS EV3 セットにはモーター、センサー、EV3プログラム可能なブロック、550個以上のレゴ・テクニックの部品とリモコンが含まれる。
ジャイロセンサーを搭載してセグウェイのような倒立振子式のロボットが組めるようになった。

EV3はスマートデバイスからも制御可能である。さらに、
* **「オンブロックプロプログラミング」と「オンブロックデータロギング」** インテリジェントブロックEV3には、「オンブロックプロプログラミング」と「オンブロックデータロギング」と呼ばれる機能が追加されました。これらの機能によって、インテリジェントブロックEV3だけでプログラミングやデータロギングを行うことができます。インテリジェントブロックEV3で作成したプログラムや、取得したデータは、後でパソコンに取り込むことができるようになります。ロギングしたデータは、マイクロSDカードに保存できるので屋外での活動時も残容量を心配することなく取り組めます。
* **Auto-ID機能** Auto-ID機能とは、センサーやモーターを接続した際、インテリジェントブロックEV3や教育版EV3ソフトウェアが 「どのポートに何が接続されたか」を自動的に検出する機能です。これによって、センサーやモーターの接続間違いなどを素早く発見することができます。
* **USBによるディジーチェーン接続** USBポートを利用して、最大4台までのインテリジェントブロックEV3を接続できます。インテリジェントブロックEV3をディジーチェーン接続したとき、教育版EV3ソフトウェアからは16個のモーターを接続した1台の インテリジェントブロックEV3のように扱うことができ、より複雑な機構を動かすことができるようになります。
* **Bluetooth通信とWi-Fi通信** Bluetooth通信とWi-Fi通信通信機能も充実し、Bluetooth通信では、最大7台までのインテリジェントブロックEV3と通信が可能です。USBポートにWi-Fiドングルをつなげることで、Wi-Fi通信も可能になります。iPhoneやAndroid搭載端末との連携ができるようになる予定です。などの機能も追加された。
スペック
* OS：Linux
* CPU：ARM 9
* メモリ：64MB
* ストレージ：フラッシュメモリ（16MB）、SDカード

### データロギング機能
教育版EV3のデータロギングは、教育版EV3ソフトウェアを使う場合と、インテリジェントブロックEV3単体で行う二通りの方法がある。教育版EV3ソフトウェアを利用する場合にはインテリジェントブロックEV3に接続されたセンサーの値をパソコンの画面にグラフィカルに表示することが可能である。
* EV3ソフトウェアを利用したい場合は、こちらを参照してくだささい。
* EV3インテリジェントブロック単体でロギングを行いたい場合は、こちらを参照してください。
技術情報

* EV-3情報ページ
* EV-3.net

## プログラミング言語
; Actor-Lab
: 言語： 独自のフローチャート風の言語
; Ada Interface to MindStorms
: 言語： Ada
; brickOS
: 言語： C/C++https://brickos.sourceforge.net/
; 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#http://www.dcl.hpi.uni-potsdam.de/research/lego.NET/
: コメント： コンパイラ無し。バイトコードをマシンの命令に変換する。
; 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
: 言語： Squeakhttp://minnow.cc.gatech.edu/squeak/2412
; 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.

### 教育版EV3基本セットに含まれるもの

## 参考文献
* 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.&nbsp;172–179.
* Breña Moral, Juan Antonio. *Develop LeJOS programs Step by Step*, "https://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
* マインドストーム・プログラミング入門 Computer technology ISBN 9784789837118
* LabVIEWで学ぶ〈最新〉LEGO Mindstorms NXT入門 ISBN 9784774146553
* 知的LEGO Mindstorms NXTプログラミング入門 電子工作Hi‐Techシリーズ ISBN 9784789818957
* 「Kinect」×「Mindstorms NXT」「ロボット」プログラミング I/O BOOKS ISBN 9784777517602
* 中谷多哉子, 兼宗進, 御手洗理英 ほか、「オブジェクトストーム: オブジェクト指向言語による初中等プログラミング教育の提案」 『情報処理学会論文誌』 2002年 43巻 6号 p.1610-1624, .
* 森岡弘, 上村梨紗, 秋本泰宏 ほか、「マインドストームを利用した技術科の教育方法に関する研究」『教育実践総合センター研究紀要』 2004年 17巻 p.35-50, 山口大学教育学部附属教育実践総合センター
* 丘華, 久保明雄、「LEGOマインドストームを利用するものづくり教育の試み(機械工学科,工学部創設40周年記念号)」 『九州産業大学工学部研究報告』 2004年 41号 p.41-48, 九州産業大学工学部.
* 山口倫, 青木敏裕, 吉岡昌雄、「LEGOマインドストームNXTによる「ものづくり入門実習」）」 『熊本大学工学部技術部年次報告集』 2012年 p.196-197.
* 外山茂浩, 床井良徳, 井山徹郎, 「中学校技術・家庭科の教材開発をテーマとしたエンジニアリングデザイン演習 — レゴマインドストームを用いた「プログラムによる計測・制御」の教材開発」『自動制御連合講演会講演論文集』 第57回自動制御連合講演会, セッションID:1A07-2, 2014年, 計測自動制御学会

## 出典

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

## 外部リンク

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

* 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 (日本語)

RCX内蔵の H8/3292 マイコン：
* Renesas H8/3297 Series documents (incl. H8/3292) – Technical updates, hardware and software manuals, application notes, etc.

マインドストーム 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