MINDSTORMS
出典: フリー百科事典『ウィキペディア(Wikipedia)』
MINDSTORMSはモーターを備えたプログラムが組み込めるブロックや、センサー、レゴブロック、ギアや車軸、ビーム、タイヤと言ったレゴテクニックの部品の組み合わせで、ロボットや他の機械、または対話システムを組む為のレゴ社の商品セットである。
レゴ マインドストームは商業的にはロボット発明システムRISとして売られている。また、元々はMITメディア研究所とレゴのパートナーシップを通して教材としても販売され使われている。教育用の商品はLego Mindstorms for Schoolsと呼ばれており、タフツ大学で開発されNational Instruments社のLabVIEWをエンジンとして使っているGUIベースのプログラミングソフトであるROBOLABを同梱している。
レゴ マインドストームはコンピュータで操る電子機械部品の組み込みシステムのモデルを構築する為に使われるかもしれない。ほとんど全ての実生活の組み込みシステムはエレベーターのコントローラーから産業用ロボットに到るまでマインドストームを用いてモデル化されるだろう。
プロから趣味人、全ての年齢層からなる活発なコミュニティがありデザインやプログラミングの技巧やその他関連するアイディアを共有している。
元のマインドストームRIS1998年にリリースされた。サーボモーターとタッチセンサーが2つずつと光センサーが1つ入っていた。2006年、レゴ社はNXTと呼ばれる新しいプログラミングできるブロックを中心とした次世代のマインドストームをリリースした。
目次 |
[編集] RCX
レゴマインドストームの第一世代はRCXとして知られるブロックの周りに作られていた。内蔵CPUとしてルネサス テクノロジ社のH8/300マイクロコントローラが入っている。パソコンかMacから特別な赤外線インタフェースを通してブロックのRAMに下に挙げるいくつかの使用可能な言語で書かれたプログラムをダウンロードする事によってプログラミングされる。ユーザがプログラムをスタートさせた後、RCXを可能にしたマインドストームの創造物をそれ自身で全体的に動作させる事が出来、プログラムされた命令に基づき、内外の刺激に基づいて行動する。また、2つ以上のRCXブロックは互いにIRインタフェースを通して通信でき、内部のブロックに協力や競争をさせる事が出来る。IRポートに加えて、三つのセンサー用の入力ポートと三つのモーター用の出力ポートがあり、他にはランプ等が利用できる。電池のレベルや入力、出力ポートの状況、どのプログラムが選択ないし動作中か、その他の情報を表示する液晶ディスプレイもある。
RCXバージョン1.0ではバッテリーを使った時の限られた動作時間に変わる持続的な動作を可能にする電源ジャックを呼び物にしていた。バージョン2.0では、電源ジャックは取り除かれた。電源アダプタを搭載したRCXブロックは個体されたロボットアームのようなロボット工学プロジェクトやレゴモデルトレインに人気がある。後者の文脈ではRCXは電車の動作の自動化されたモデルを要求するデジタルコマンドコントロール(DCC)ソフトウェアをプログラムする必要がある。
[編集] プログラム言語
レゴ社が提供する言語
有名なサードパーティの言語
- 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や他のUSBWebカメラをサポートする装置に接続できるだけである。
LEGOカメラは同梱されているRCXと調和できる、それによって視覚をもったロボットを作る事が出来るVision Commandソフトと一緒に使う事を意図されている。
[編集] サイバーマスター
サイバーマスターは主にヨーロッパとオーストラリア・ニュージーランドで売られていたが、レゴクラブマガジンを通して短時間で利用できる。レゴとロボット工学とコンピュータゲームを融合させる早期の試みとして若い読者を対象にしていた。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でプログラムできる。スカウトブロックは全てのオプションセットをオフにしなければならない。ランボタンを押すと、赤外線コードを送る。
スカウトはマイクロスカウトを支配する為にVLLを使って3つ目のエンジンを使うことも出来る。
[編集] 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
[編集] マイクロスカウト
マイクロスカウトはレゴロボティックスへの入門レベルとして加えられた。単一の光センサーと単一の組込みエンジンを備えた非常に限定された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つ必要とする。アルカリ電池が推奨されているが、充電池でも動作する。
レゴマインドストーム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 main microprocessor @48MHZ
- 256 KB flash memory
- 64 KB RAM
- 8 bit Atmel AVR microcontroller @4MHZ
- 4 KB flash memory
- 512 Bytes RAM
- 64×100 pixel LCD matrix display
- Can be programmed using a PC or Mac
- Users create a program with new software, powered by LabVIEW from National Instruments
- A single USB 2.0 port
- Bluetooth wireless connectivity, to transfer programs to the NXT wirelessly or offer ways to control robots remotely ( mobile phones and possibly by PDAs)
- 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 output ports, 6-wire cable digital platform
- Digital Wire Interface, allowing for third-party development of external devices
[編集] 部品
- 519 LEGO Technic parts (and Bionicle parts, including Visorak pincers)
- Three servo motors, with built-in rotation sensors, and feedback for precise control
- Ultrasonic distance and movement sensor
- Sound sensor, with sound pattern and tone recognition
- Light sensor, detecting light intensity
- Touch sensor (press/release/bump detection)
- Compass sensor, direction sensor (sold separately from NXT)
- Color sensor, distinguishes colors (sold separately from NXT) [1]
[編集] プログラミング言語
- Actor-Lab
- Language(s): Custom flowchart-like language
- Ada Interface to MindStorms
- Language(s): Ada
- brickOS
- Language(s): C/C++[2]
- GCC
- Language(s): C/C++, Objective C, Fortran, Java, Ada among others
- GNU Toolchain for h8300
- Language(s): C/C++, ASM
- LabVIEW Toolkit for NXT
- Language(s): LabVIEW
- Comment: A toolkit for LabVIEW permitting development of custom native blocks for use in the Mindstorms NXT software.
- Lego.NET
- Language(s): Anything that can compile to .NET, works best with C#[3]
- Comment: Doesn't come with a compiler, converts bytecode to machine code
- leJOS
- Language(s): Java
- librcx
- Language(s): C/C++
- Comment: A library for GCC
- Logitech SDK
- Language(s): Visual Basic, Visual C++
- Comment: Can be combined with an RCX control library such as spirit.ocx from the MindStorms SDK to make use of the Lego Cam
- NQC
- Language(s): NQC, a C-like language
- Comment: This is the most widely used unofficial language
- Official MindStorms SDK
- Language(s): Visual Basic, Visual C++, MindScript, LASM
- Comment: 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
- Language(s): A custom language which can be programmed directly on the RCX
- pbForth
- Language(s): Forth
- PRO-BOT
- Language(s): A kind of Visual Basic/spirit.ocx-based language
- Comment: Designed for robots which are in contact with the workstation at all times
- QuiteC
- Language(s): C
- Comment: A library for use with GCC and comes with GCC for Windows.
- RCX Code
- Language(s): RCX Code, a custom flowchart-based language
- ROBOLAB
- Language(s): A flowchart language based on LabVIEW
- Comment: This is the programming environment offered to schools who use MindStorms, supports the Lego Cam
- SqLego
- Language(s): Squeak[4]
- TclRCX
- Language(s): Tcl
- Terrapin Logo
- Language(s): LOGO
- TinyVM
- Language(s): Java
- The Transterpreter
- Language(s): occam
- Vision Command
- Language(s): RCX Code
- Comment: The official programming language for use with the Lego Cam
- XS
- Language(s): Lisp
- LegoLog
- Language(s): Prolog
- Comment: Uses an NQC program to interpret commands send from the pc running the Prolog code
- PBrickDev
- Language(s): PBrickDev, a flowchart based language.
- Comment: 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.
[編集] 関連項目
- FIRST Lego League
- RoboCup Junior
- Legoscript
- Vex
- Big Trak
- iRobot Create(iRobot)
[編集] 外部リンク
公式Mindstorms sites:
Various information resources and portals:
- 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
Programming languages and operating systems:
- 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
Third-party external devices
Tutorials:
The RCX's built-in H8/3292 microcontroller:
- Renesas H8/3297 Series documents (incl. H8/3292) – Technical updates, hardware and software manuals, application notes, etc.
Mindstorms NXT Links:
- 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