MINDSTORMS

出典: フリー百科事典『ウィキペディア(Wikipedia)』

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

目次

[編集] 概要

レゴ マインドストームは商業的にはロボット発明システムRISとして売られている。また、元々はMITメディアラボとレゴのパートナーシップを通して教材としても販売され使われている。教育用の商品はLego Mindstorms for Schoolsと呼ばれており、タフツ大学で開発されNational Instruments社のLabVIEWをエンジンとして使っているGUIベースのプログラミングソフトであるROBOLABを同梱している。

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

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

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

[編集] RCX

MINDSTORMS RCX

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

パソコンから特別な赤外線インタフェースを通してブロックのRAMに下に挙げるいくつかの使用可能な言語で書かれたプログラムをダウンロードする事によってプログラムを登録する。ユーザがプログラムをスタートさせた後、RCXを可能にしたマインドストームの創造物をそれ自身で全体的に動作させる事ができ、プログラムされた命令に基づき、内外の刺激に基づいて行動する。

また、2つ以上のRCXブロックは互いにIRインタフェースを通して通信でき、内部のブロックに協力や競争をさせる事が出来る。IRポートに加えて、三つのセンサー用の入力ポートと三つのモーター用の出力ポートがあり、他にはランプ等が利用できる。電池のレベルや入力、出力ポートの状況、どのプログラムが選択ないし動作中か、その他の情報を表示する液晶ディスプレイもある。

RCXバージョン1.0ではバッテリーを使った時の限られた動作時間に変わる持続的な動作を可能にする電源ジャックを呼び物にしていた。バージョン2.0では、電源ジャックは取り除かれた。電源アダプタを搭載したRCXブロックは個体されたロボットアームのようなロボット工学プロジェクトやレゴモデルトレインに人気がある。レゴモデルトレインではRCXは電車の動作の自動化されたモデルを要求するデジタルコマンドコントロール(DCC)ソフトウェアをプログラムする必要がある。

2008年現在では既に生産中止、取扱店も在庫のみの状態であり新品の入手は困難である。教育機関向けの正規代理店では一部販売しているようである。今後価格高騰が予想される。

[編集] プログラム言語

レゴ社が提供する言語

  • RCX コード(玩具店で売られる消費者版マインドストームに含まれる)
  • ROBOLAB(LabVIEWに基づきタフツ大学で開発された)

有名なサードパーティの言語

  • BrickOS(かつてのLegOS)下のCC++
  • leJOSやTIny VM下のJava
  • NQC(Not Quite C)
  • pbFORTHForthの拡張)
  • Visual Basic(CDで供給されているCOM+インタフェースを介して)
  • RobotC(新言語で、NXTと互換がある)

[編集] LEGOカメラ

レゴカメラ自体は技術的にはロボットの玩具ではなく、レゴの殻に梱包された普通のウェブカメラ(Quickcam)である。普通のWebカメラなのでLEGOカメラはほとんどのマインドストーム製品とは異なりプログラミングできず単にPCや他のUSB Webカメラをサポートする装置に接続できるだけである。デザイン的には、ペグを取り付けるためのビーム、ポッチが備わっており、色も2タイプある。マインドストーム用のカメラは赤、青のスケルトンタイプであったが、LEGOスタジオシリーズに登場した映画制作用キットに附属する同型のカメラは灰と黄色のタイプであった。USBケーブルによってパソコンと接続する有線タイプ。

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

[編集] サイバーマスター

サイバーマスターは主にヨーロッパとオーストラリア・ニュージーランドで売られていたが、レゴクラブマガジンを通して短時間で利用できる。レゴとロボット工学とコンピュータゲームを融合させる早期の試みとして若い読者を対象にしていた。PブロックはRCXと多くのespソフトや特徴を共有しているが外観や技術的特徴では異なる。1つの出力(加えて2つは組み込み)と3つのセンサーがある。

  • 通信に赤外線の代わりにRF(27MHz R/Cバンド)を使っている。
  • 完全なタコメーターと速度計を持つ2つの組み込みモーターを持っている。
  • 受信センサ(内部のプルアップ抵抗と一緒になった単純なA/D)に限られている。
  • 一緒に発売されたセンサーは色でコード化されておりopen state(Pブロックにどのポートにどのセンサが接続されているか感知させられる)に内部レジスタを持っている。
  • 固定化されたファームウェアを持つ。従って改良や除去ができない。
  • プログラムのための限定されたRAMとプログラムスロットが1つだけある。

明らかな限定がある一方、ビッグブラザーであるRCXを超える数多くのエッジがある。

  • RFリンクは距離がより長く、全方向である。
  • 内部モーター上の組み込みのタコとスピードセンサーはRCXの外部回転センサーを提供するが、センサーポートを使いきるわけではない。

これは様々な携帯プラットフォームと基本的な動作とポジショニングタスクをとても便利にする。

RCXと同じプロトコルと言うが、直接的に通信できない(赤外線とRFの違いによる)が、2つのシリアルポートをもつコンピュータと単純なプログラムのリピータを使えば統合できる。

[編集] コードパイロット

バーコードトラックキットの部品として売られる。このユニットは最初のプログラミングできるブロック(あるいはPブロック)である。単一のモーター、タッチセンサー、光センサーを特徴としていた。「learn」に設定し、バーコード命令を送る光センサーを使う事でプログラムされる。命令セットはとても限定されている。バーコードは光の変化の連続に過ぎないので、この形式のコマンド入力はVLL(Visual Light Link)と呼ばれ後のいくつかのレゴモデルで使われている。

[編集] スカウト

レゴはスカウトという名のブロックもリリースしており、それはセンサーポートを2つ、モーターポートを2つ、組み込みの光センサーを持っており、PCインタフェースを持っていなかった。スカウトはプログラムできるが、ユーザは常に組み込みのプログラムのコレクションの1つを選ぶ事になっている。スカウトに本格的なプログラムをするにはユーザはパワーモードを使えるようにしなければならない。スカウトは1つのプログラムを蓄えられる。RCXは赤外線メッセージをプログラムブロックに送る事でスカウトをコントロールできる。スカウトが「slave」として行動している間、RCXは全てのコントロールができ、従ってPCでプログラムできる。スカウトブロックは全てのオプションセットをオフにしなければならない。ランボタンを押すと、赤外線コードを送る。このSCOUTのコンピューター制御は余り話題ならない。 スカウトはマイクロスカウトをコントロールすることも可能で,追加部品としては専用もしくは市販である光ファイバーが必要である.前述のパワーモード,LEGO純粋リモコンでの単独制御,またはスカウト組み込むプログラムを実行すると発生するダイオード点灯などによって動作が可能である.利点としてはスカウトの電池と別にマイクロスカウトを制御できるためにパワーの必要なモデルを製作する際には適切であるところであるが,マイクロスカウト自体大型のため使用には工夫が必要である.

[編集] RCX/Scout IR コミュニケーションコード

(IR Code/Left/Right)

  • 4/Fwd/Fwd
  • 5/Rev/Rev
  • 6/Fwd/Rev
  • 7/Rev/Fwd
  • 8/Fwd/Off
  • 9/Rev/Off
  • 10/Off/Fwd
  • 11/Off/Rev
  • 12/Off/Off

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

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

マイクロスカウトはレゴロボティクスへの入門レベルとして加えられた。単一の光センサーと単一の組込みエンジンを備えた非常に限定されたPブロックである。ユニットはドロイドデベロッパーキット(featuring R2D2)、後にはダークサイドデベロッパーキット(fearuring AT-ATインペリアルウォーカー)の部品として売られた。

ユニットはスカウト、スパイボティックス、RCXユニットに光センサーをVLL受信機として使うことができ、従わせる事が出来る。

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

スパイボティックスはむしろサイバーマスターの商品群を拡大する試みだった。キットはコンピュータ上で遊ばれる部分とスパイボットを操縦して多くの決められたミッションを解決して遊ぶ部分のコンピュータゲームと一緒に売られた。Pブロック自体は多くのサイバーマスターの特徴、つまり十分なタコメーターと速度フィードバックを備えた2つの内蔵モーターを持つが、完全なタッチセンサーは1つしかない。

発光と光センサーも特徴としており、それはコンピュータインタフェースの2倍である。このインタフェースはスカウトやマイクロスカウト、ことによるとコードパイロットともVLLをつかって接続する為にも使える。他のスパイボットやRCXユニットと通信させる拡張された赤外線機能もある。赤外線ユニットも距離と方向を限定した機能を持っており、他のスパイボットやリモコン、RCXを探知し場所を特定する事が出来る。

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

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

マインドストーム最新の商品はマインドストームNXTであり、2006年8月にリリースされた。キットはサーボモーターを3つとタッチセンサーを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シリーズに比べテクニック系の部品が大部分を占め,今までなかった新しいブロックの組み合わせ,楽しみが増えたと言えるが,本来のLEGOブロックの特徴である「ポッチ」を利用した固定ができなくなってしまい(工夫すればできる),小型のモデルの製作が困難になる,自由度が失われたという意見もある。

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

[編集] 部品

  • 519のレゴテクニックの部品(及びVisorakのpincersを含むバイオニクルの部品)
  • ローテーションセンサが組み込まれており、正確なコントロールの為のフィードバックがある3つのサーボモータ
  • 超音波距離センサと移動センサ
  • 音のパタンとトーン認識を備えたサウンドセンサ
  • 光の強弱を感知する光センサ
  • タッチセンサ(プレス/リリース/衝突の感知)
  • 別売りの方向を感知するコンパスセンサ
  • 別売りの色彩を感知するカラーセンサ[1]

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

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.

[編集] 参考文献

[編集] 関連項目

[編集] 外部リンク

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

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

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

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

チュートリアル:

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

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