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
レゴマインドストームの第一世代は、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年現在では既に生産中止、取扱店も在庫のみの状態であり新品の入手は困難である。教育機関向けの正規代理店では一部販売しているようである。今後価格高騰が予想される。
[編集] プログラム言語
レゴ社が提供する言語
有名なサードパーティの言語
- BrickOS(かつてのLegOS)下のCとC++
- leJOSやTIny VM下のJava
- NQC(Not Quite C)
- pbFORTH(Forthの拡張)
- 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.
[編集] 参考文献
- 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.
[編集] 関連項目
- シーモア・パパート - 著名なコンピュータ科学者・心理学者で、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)
- レゴ
[編集] 外部リンク
マインドストームの公式サイト:
様々なリソースとポータル:
- 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
サードパーティの拡張デバイス:
チュートリアル:
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

