MINDSTORMS

出典: フリー百科事典『ウィキペディア(Wikipedia)』
移動: 案内検索

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

概要[編集]

レゴ マインドストーム(Mindstorms)は、発売当初のRCXと現状のNXTが主で、他にも派生型がある。当初は、「ロボット発明システムRIS」として売られていた。また、元々はMITメディアラボとレゴのパートナーシップを通して教材としても販売され使われていた。教育用の商品は Lego Mindstorms for Schools と呼ばれており、タフツ大学で開発され National Instruments 社の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年にEV3を発売。

RCX[編集]

MINDSTORMS RCX

レゴマインドストームの第一世代は、RCXという名前のブロックを含むセットである。RCXにはCPUが内蔵されており、ルネサス テクノロジ社の16MHzの8ビットCPUであるH8/300マイクロコントローラが採用されている。

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

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

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

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

電源は一般的な単三乾電池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)下のCC++
  • leJOSやTIny VM下のJava
  • NQC(Not Quite C)
  • pbFORTHForthの拡張)
  • Visual Basic(CDで供給されているCOM+インタフェースを介して)
  • RobotC(新言語で、NXTと互換がある)

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つのシリアルポートをもつコンピュータと単純なプログラムのリピータで仲介すれば統合可能。

スカウト[編集]

RCXと同サイズのプログラミング可能なブロック。「ロボティクスセット」に同梱。2つのセンサーポートと2つのモーターポートを持ち、光センサーとLEDライトが本体に組み込まれている。PCインタフェースを持っておらず、組み込みのプログラムコレクションを選択していくことで、単独でプログラミングを行える。保持できるプログラムは1つのみ。

「パワーモード」と呼ばれるモードがあり、この状態でRCXから赤外線メッセージを送ることでスカウトに接続されたモーターをコントロールできる。この状態ではRCXから全てのコントロールができ、従って間接的にPCでのプログラムが可能。ただしスカウト側のオプションセットは全てオフにしなければならない。ランボタンを押すと、赤外線コードを送る。このスカウトのコンピューター制御は余り話題にならない。

前述のパワーモード、LEGO純粋リモコンでの単独制御、またはスカウト組み込みプログラムで内蔵LEDの点灯を制御しVLL信号を発することによって、マイクロスカウトをコントロールすることも可能。

RCX/スカウト IR コミュニケーションコード[編集]

(IRメッセージ コード番号/左モーターの動作/右モーターの動作)

  • 4/順/順
  • 5/逆/逆
  • 6/順/逆
  • 7/逆/順
  • 8/順/オフ
  • 9/逆/オフ
  • 10/オフ/順
  • 11/オフ/逆
  • 12/オフ/オフ

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

マイクロスカウト[編集]

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

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

スパイボティックス[編集]

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

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

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

その他関連製品[編集]

リモコン[編集]

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

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

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

LEGOカメラ[編集]

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

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

レゴ マインドストームNXT[編集]

マインドストームの最新の商品は2006年8月にリリースされたマインドストームNXTである。キットはサーボモーター3つ、タッチセンサー2つ、光センサー(現在、グレースケールの読み取りに基づく色の識別能力を備えている)1つ、サウンドセンサー1つ、超音波センサー1つとNXT「知能」ブロックを1つ含んでいる。モーターは回転センサーが予め組み込まれたステッピングモーターで、従来のマインドストーム用モーターよりはるかに高性能である。しかしセンサー、モーターともに接続の方式が今までのようにブロックに線が埋め込まれているのではなく、ブロックの形を完全になくした専用のジャックとなった。機能が向上した分、従来のセンサー、モーターの複数同時接続はできなくなった。

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
  • 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線ケーブルデジタルプラットフォームの出力ポート
  • サードパーティ開発の外部デバイスを使用可能にするデジタルワイヤインターフェイス

部品[編集]

  • 519のレゴテクニックの部品(及びVisorakのpincersを含むバイオニクルの部品)
  • ローテーションセンサが組み込まれており、正確なコントロールの為のフィードバックがある3つのサーボモータ
  • 超音波距離センサと移動センサ
  • 音のパタンとトーン認識を備えたサウンドセンサ
  • 光の強弱を感知する光センサ(教育用セットに同梱)
  • 光の強弱と、色を識別できる色センサー(玩具用セットに同梱。色はセンサーの目の前のもののみ判別可能)
  • タッチセンサ(プレス/リリース/衝突の感知)
  • 別売りの方向を感知するコンパスセンサ(Hitechnic社製。本来の方角の360°と、センサーが返す360°の値には、大きく違いがある。また、センサーが○○°と返しても、実際の方角を一義的に決める事はできない。sinカーブの様な曲線相当を、y軸(コンパスセンサーが返す値)の0°で上下分割し、x軸(本来の方角)が0~150°でカーブ上半分を0~50°辺り、170~360°で、カーブ下半分を310~360°辺り、150~170°辺りで急激に50~350°位にy値が上がるという様なもの。新品購入2個と以前購入した2個全てが同様であり、Afrelにセンサーが異常ではないか質問したが、そういうものだという回答であった。)
  • 別売りの色彩を感知するカラーセンサ(Hitechnic社製)[1]
  • 別売りの赤外線センサー、加速度センサー、ジャイロセンサー(Hitechnic社製)等

レゴ マインドストームNXT 2.x[編集]

2009年6月29日にver2.0発表、8月1日発売開始[1]。パーツ数が619に増えた。

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

レゴ マインドストームEV3[編集]

2013年9月20日発売。

スペック

  • OS:Linux
  • CPU:ARM 9
  • メモリ:64MB
  • ストレージ:フラッシュメモリ(16MB)、SDカード

技術情報

プログラミング言語[編集]

Actor-Lab
言語: 独自のフローチャート風の言語
Ada Interface to MindStorms
言語: Ada
brickOS
言語: C/C++[2]
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#[3]
コメント: コンパイラ無し。バイトコードをマシンの命令に変換する。
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[4]
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.

参考文献[編集]

参照[編集]

  1. ^ The New LEGO MINDSTORMS NXT 2.0 is coming!

関連項目[編集]

外部リンク[編集]

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

様々なリソースとポータル:

プログラミング言語とOS:

サードパーティの拡張デバイス:

チュートリアル:

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

RCX内蔵の H8/3292 マイコン:

マインドストーム NXT のリンク: