2024年11月21日
008-1.EV3ソフトウェア入門-第1回「NXTとEV3の両方で動くプログラム」
去年(2013年)、新シリーズのレゴマインドストームである「教育用レゴマインドストームEV3」が発売されました。今まで7年間に渡って使われてきた「NXT」との違いにも注目しつつ、EV3を使ったプログラミングについて紹介していきたいと思います。(文/松原拓也)
◆ EV3の特徴1

ちゃれんじ教室でEV3を取り上げるのは初めてのことですので、まずEV3について簡単に紹介したいと思います。 EV3は1998年に誕生した「RCX」から数えて三世代目のレゴマインドストームです。「EV3」は一世代前の「NXT」とある程度の互換性を保っています。
写真はEV3の「基本セット」です。インテリジェントブロックEV3にほか、モーター、各種センサー等がセットに含まれていて、いろいろなロボットを作ることができます。

「インテリジェントブロック」はマイコンを搭載したロボットの頭脳となるブロックです。左が「インテリジェントブロックNXT」で、右が新シリーズの「インテリジェントブロックEV3」です。
NXTの出力ポートは3つですが、EV3の出力ポートは4つもあります。出力ポートが1つ多いことがEV3の大きな特徴です。

EV3では、モーターやセンサーが自動で認識されます。この機能を「オートID」と呼んでいます。
たとえば、「Port View」というアプリを実行中にカラーセンサーを接続すると、画面には「COL-COLOR」と表示されました。自動で認識されている証拠です。

EV3では新しく「インタラクティブサーボモーターM」というモーターが登場しました。従来の仕様に近いモーターは「インタラクティブサーボモーターL」と呼ばれています。MモーターはLモーターに比べてトルクが足りませんが、そのかわり速く回転させることができます。角度制御やパワー制御の機能は「M」と「L」のどちらにも搭載されています。
ちなみに写真のロボットは「EV3デスクロボ デビューセット」に登場するロボットです。Mモーターを使ってアームを開閉させたり、上下に動かすことができます。
◆ EV3の特徴2

EV3では「ジャイロセンサー」というセンサーが登場しました。ジャイロセンサーは角速度と角度を検出できるセンサーです。NXTには純正のジャイロセンサーは存在していません。
ジャイロセンサーを使えば「ジャイロボーイ」という倒立制御を行うロボットを作ることができます。ごらんのとおり2つのタイヤだけで立っても倒れません。

EV3はWiFi(無線LAN)にも対応しています。WiFiを使うとワイヤレスでロボットを動かしたり、プログラミングすることができるようになります。NXTはBluetoothだけでWiFiには対応してませんでした。方法としては、インテリジェントブロックの「USBホストポート」に「EV3 WiFiドングル」というUSBアダプタを接続するとWiFiに対応します。市販の無線LANのUSBアダプタだったらなんでもOKというわけではなく、ローランド製の一部の製品しかEV3で動作しないようです。ドングルを購入するさいには、対応しているかどうかをしっかり確認しましょう。

EV3では「デイジーチェーン」という機能ができるようになりました。この機能を使うと、インテリジェントブロックの一つが「親分」となって「子分」のインテリジェントブロックを制御することができます。大量のモーターやセンサーを動かしたい場合には役立つかもしれません。
デイジーチェーンを行うには、USBケーブルを使って、写真のようにインテリジェントブロックを接続します。デイジーチェーンで接続できるインテリジェントブロックは合計で4台までです。

インテリジェントブロックEV3にはOSとして「Linux(Ubuntu)」が搭載されています。これでパソコン並みの機能を発揮することができるわけです。専門的な知識が必要ですが、OSをリビルド(再構築)することによって、USBホストポートにUSBカメラを接続することもできるようです。EV3でUSBカメラを活用する「教育版EV3 カメラ セットアップセット」という教材も発売されています。
◆ EV3ソフトウェアについて

続いて、EV3ソフトウェアについて紹介します。
EV3ソフトウェアはNXTソフトウェアのようにブロックを組み合わせてプログラムを作ります。操作方法はそれほど変わらないのですが、EV3ソフトウェアには「プロジェクト」という概念があり、複数のプログラムを1つのファイルとして管理することができます。
EV3ソフトウェアの使い方を説明すると、ものすごい文字の量になってしまいますので、ここではヒントだけにとどめたいと思います。 画面上の「クイックスタート」と「ロボットエデュケーター」のボタンを押すと、必要な資料がいっぱい出てきますので、各自で勉強してみてください。

なお、NXTにはレゴ社製の紙の取扱説明書が入っていましたが、EV3では代わりに電子的な取扱説明書(PDF)が収録されています。この「ユーザーズガイド」をクリックすると、説明書を読むことができます。 これはEV3ソフトウェアの説明書ではなく、EV3本体の説明書です。 「ユーザーズガイド」は全69ページの大作なので、目を通しておきましょう。

「ヘルプ」には、プログラミングブロックの詳しい説明が書かれています。ブロックの使い方が分からない場合には、これを読みましょう。

ヘルプの中の「プログラミングブロック」の項目です。
◆ EV3ソフトウェアでNXT用のプログラムを作る

なんと、EV3ソフトウェアはEV3用だけではなく、NXT用のプログラムを作ることができます。 方法はEV3ソフトウェアを動かしている状態で、USBケーブルを使ってパソコンとインテリジェントブロックNXTを接続するだけです。 自動的にNXTと認識され、NXT用のモードに移行しました。その証拠として、画面右下には「NXT」と表示されています。

NXT用のモードのままにして、プログラムを作ってみました。
「1秒ごとに画面表示の値が1つずつ増える」というシンプルなプログラムです(project1.ev3)。ループの回数と表示ブロックをデータワイヤでつなぎます。
NXTソフトウェアでは数値をテキスト表示をしたい場合には、「数値→テキスト変換」ブロックを使って変換する必要があったのですが、このEV3ソフトウェアではそのブロックが不要です。そのままワイヤを直結することができます。 これでシンプルにプログラムが組めるようになりました。

ちょっと実験をしてみました。
プログラミングの途中で、インテリジェントブロックNXTをパソコンから切断して、代わりにインテリジェントブロックEV3をパソコンに接続してみました。
するとどうなるかというと、表示ブロックの形状が変化しました。モードがEV3に変わり、画面右下の表示も「NXT」から「EV3」に変わりました。
NXT用とEV3用のモードは自動的に切り替わるようです。

こうして「NXT用」として作ったプログラムは、インテリジェントブロックNXTとインテリジェントブロックEV3の両方で動かすことができます。
逆に「EV3用」として作ったプログラムはNXTでは動かず、EV3のみでしか動きません。
プログラムの実行結果を見比べてみました。 どちらも数値が増えるという動作は変わらないのですが、 文字の表示される位置が違うようです。 これはNXTとEV3でY座標の方向が逆になっているためです。解像度や文字のサイズも違っています。

なお、NXT用のモードでプログラムを作成している場合、 一部の機能を使うことができないようです。写真のように、利用できないブロックには「!」マークが表示されてしまいました。
NXTとEV3の両方で動くプログラムを作るさいには、 「!」マークが出ないように気をくばる必要がありそうです。
[DOWNLOAD]今回作成したプログラム(教育用EV3ソフトウェア用)
当ブログの内容は、弊社製品の活用に関する参考情報として提供しております。
記載されている情報は、正確性や動作を保証するものではありません。皆さまの創意工夫やアイデアの一助となれば幸いです。