テクノロジー

img_technologyTop01

製品をもっと詳しく知りたい方へ
技術研究所

プログラミング

《概要》

教育版EV3ソフトウェアのプログラミング機能では、アイコン操作を主体としてプログラミングができるようになっているため、初心者から上級者まで活用できるようになっています。

プログラミングブロックのパラメータは、プログラミングブロック自身に表示されるため、プログラミングブロックを見ればどの様な動きをするのかが分かります。そのため、プログラム全体の動きも把握しやすくなっています。

プログラムを開始するための「スタートブロック」を複数置くことができるようになり、並列処理が簡単に実現できます。

インテリジェントブロックEV3とパソコンをつないだ状態でプログラムを実行すれば、プログラム中のプログラミングアイコンがハイライトされて、プログラムのどこを実行しているのかが分かりやすくなっています。

複数のプログラミングブロックを組み合わせて、1つのプログラムブロックを作成することができます。(マイブロック機能)

プログラムの作成

prog_04_combine

(a) File→New Project→Program を選択 (b) Content Editor を閉じる (c) 画面下部のパレットに並ぶアイコンをドラッグ アンド ドロップして、プログラムを作ります。

NXT向けプログラムの作成と制限

教育版EV3ソフトウェアで教育用インテリジェントブロックNXT向けのプログラムを作成することができます。 しかし、全ての機能をサポートしておらず以下の様な制限があります。 また教育用NXTソフトウェアでEV3のプログラムを作ることはできません。

– ツール
カテゴリ No 教育版EV3ソフトウェアの機能 教育用レゴ マインドストームNXTでの利用可否
基本機能 1 マイブロックを作る機能 動作未定
2 各種センサーの初期値、最大値、最小値を設定する機能
3 ファームウェア更新機能 動作未定
4 無線に関する設定機能 動作未定
5 HiTechnic社センサーや、新しいセンサーのブロックをインポートする機能
6 アプリとしてダウンロード
7 メモリブラウザー 動作未定
8 データログファイルマネージャ 動作未定
9 データロギングの間にグラフを表示 動作未定
10 データセットから値を削除
11 データロギングプログラムの作成
– プログラミングアイコン
カテゴリ No 教育版EV3ソフトウェアの機能 教育用レゴ マインドストームNXTでの利用可否
動作 1 Mモーター
2 Lモーター
3 ステアリング 使用できない
4 タンク 使用できない
5 表示
6
7 ボタンライト 使用できない
フロー制御 11 スタート
12 待機
13 ループ
14 スイッチ
15 中断
センサー 16 ブリックボタン
17 カラーセンサー 使用できない
18 ジャイロセンサー 使用できない
19 赤外線センサー 使用できない
20 回転センサー 使用できない
21 温度センサー
22 タイマー
23 タッチセンサー
24 超音波センサー 使用できない
25 エネルギーメーター
26 音センサー
データ操作 28 変数
29 定数
30 配列操作
31 ロジック操作
32 数学
33 端数
34 比較
35 範囲
36 テキスト
37 ランダム
拡張機能 38 ファイルアクセス 使用できない
39 データロギング 使用できない
40 メッセージング 使用できない
41 Bluetooth接続 使用できない
42 キープアライブ
43 生のセンサー値 使用できない
44 モーター逆回転
45 ストップブロック
マイブロック 46 マイブロック

 

– 実験

 

カテゴリ No 教育版EV3ソフトウェアの機能 教育用レゴ マインドストームNXTでの利用可否
実験機能 1 実験設定(サンプリング数や取得するセンサーの設定)
2 データセットテーブル取得したデータを一時的に保存するテーブル機能)
3 データセット計算(データセットテーブルの値を利用した計算機能)
4 グラフプログラミング(グラフデータを活用したプログラミング)
予測ツール 5 予測(実験結果がどうなるか予測してグラフを書く機能)
解析ツール 6 ポイント分析(あるポイントの値を調べる機能)
7 セクション分析(ある範囲の値を調べる機能)

 

数学ブロック

教育版EV3では、数学ブロックが大幅に強化されています。

math

 

入力値 計算結果
足し算 A, B A + B
引き算 A, B A – B
割り算 A, B A / B
掛け算 A, B A * B
絶対値 A Aが0以上であればA、Aが0より小さければ-A。 計算結果は常に0以上になります。
平方根 A √A
指数 A, N A^N
拡張機能 A, B, C, D A, B, C, Dを使った任意の計算式を指定できます。

任意計算の指定方法

4つの変数を使って任意の計算式を実行することができます。

math_advance_combine

(a) 任意の計算式を指定できます。

実行中のプログラミングブロックを調べる

インテリジェントブロックEV3とパソコンがつながっている状態でプログラムを実行すると、実行中のプログラミングブロックがハイライトして表示されます。 highlight_block

プログラムの一部だけを実行する

プログラムの一部だけを実行して、プログラムの動きが正しいかどうかを確認することができます。

  1. プログラムの一部を範囲選択します。

    001_Part_of_Program_Choose

  2. 選択したプログラムを実行ボタンを押すと、選択してあるプログラムだけを実行できます。

    002_Part_Download_and_Execution

一般的な開発環境にあるブレークポイントやステップ実行は備えていません。

(アフレルオリジナル)

プログラムからEV3ジャイロセンサーを初期化する方法

EV3ジャイロセンサーを初期化するときには、 プログラミングブロックの「ジャイロセンサー」を選択し、 「リセットモード」を選択します。

Gyro_sensor_Brock

リセットモードのジャイロセンサーブロックが実行されたときに、ジャイロセンサーが初期化されます。

ジャイロセンサーを初期化する方法の例

タッチセンサを押すと、ジャイロセンサーを初期化します。初期化されると、液晶ディスプレイには、0が表示されます。

Gyro_sensor_Initial_Program

(アフレルオリジナル)

 

《Content Editor(コンテンツエディター)》

コンテンツエディタは、プロジェクトのドキュメント作成に利用します。 説明文、写真、ビデオ、組立図を使ってページを作成できます。 それぞれのページは異なるレイアウトや自動幅調整を使ってカスタマイズできます。

contenteditor_01_layout contenteditor_02_content contenteditor_03_example1
多彩なページレイアウト ページには様々なコンテンツを追加可能 動画とテキストでページを作成した例

 

 

《Sound Editor》

教育用インテリジェントブロックEV3は任意の音を鳴らすことができます。 Sound Editorを使って専用のサウンドファイルを作成することができます。

 

 

《Image Editor》

教育用インテリジェントブロックEV3の高解像度の液晶には、画像を表示することができます。 Image Editorを使って専用のイメージファイルを作成することができます。

 

 

《ブロックプログラムのインポート手順》

インテリジェントブロックEV3 本体でプログラミングしたブロックプログラムを教育版 EV3 ソフトウェア(以降、EV3 ソフトウェア)に取り込むことができます。

  1. インテリジェントブロックEV3 を起動し、コンピューターにUSB 接続します。

  2. EV3 ソフトウェアを起動し、[ファイル]→[新規プロジェクト]と選択し、[プログラム]をダブルクリックしてプログラミング画面を開きます。
    (既存のプロジェクトを開いてプログラミング画面を開いても構いません。)
    ブロックプログラムのインポート手順

  3. [ツール]メニューから、[インテリジェントブロック プログラムのインポート]を選択します。
    ブロックプログラムのインポイート手順

  4. インポートするプログラムを選択し、[インポート]をクリックします。
    ブロックプログラムのインポート手順

  5. EV3 ソフトウェアにインポートしたプログラムが開きます。
    import-04

 

 

《アプリダウンロート手順》

教育版 EV3 ソフトウェア(以降、EV3 ソフトウェア)で作成したプログラムをアプリとしてインテリジェントブロックEV3(以降、EV3)へダウンロードすることができます。
アプリとしてダウンロードされたプログラムは、ブロックプログラミングやポートビューなどの初期設定アプリとともに、ブロックアプリ画面に表示することができます。

  1. EV3 ソフトウェアでプログラムを作成します。
    EV3 は起動しコンピューターにUSB 接続します。

  2. [ツール]メニューから[アプリとしてダウンロード]を選択します。
    [技術情報]アプリダウンロード手順

  3. 次にアプリ名を入力し、ダウンロードボタンをクリックします。
    (アプリ名は半角英数のみ使用)
    [技術情報]アプリダウンロード手順

  4. ダウンロードに成功すると右図のメッセージが表示されます。
    [技術情報]アプリダウンロード手順

  5. ダウンロードしたアプリは、EV3 のブロックアプリ画面から実行することができます。
    [技術情報]アプリダウンロード手順

 

 

プログラム・マイブロックの表示設定

EV3ソフトウェアでは、プロジェクトファイルを開くと、プロジェクト内のプログラムやマイブロックは、下の図のようにすべてタブ形式で開かれます。

myblock01

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

そのため、プロジェクトに多くのプログラムやマイブロックがある場合、プロジェクトファイルを開く際の時間が長くかかってしまうことがあります。

その場合は、プログラムやマイブロックを非表示にすることで、プロジェクトファイルを開く時間を短縮することができます。

 

プログラムやマイブロックを非表示にするには、プロジェクトプロパティで「表示」のチェックを外します。(プログラムやマイブロックを作成したとき、初期設定では「表示」にチェックが入っています。)

myblock02

 

 

 

 

 

 

 

 

 

 

 

 

 

 

プロジェクトプロパティで「表示」のチェックが外れているプログラム・マイブロックは、プロジェクトファイルを開くとき、タブ形式で表示されなくなります。

myblock03

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

たくさんのプログラムやマイブロックの内容を画面上に表示しなくていい分、プロジェクトファイルを開く時間を短縮することができます。

画面上に表示されていないプログラムやマイブロックは、プロジェクトプロパティ画面でダブルクリックすれば、開くことができます。

 

 

1プログラムあたりに使用できるブロック数の限界

EV3ソフトウェアで、1つのプログラムに使用しているプログラミングブロックの数が多いと、次のような症状が見られることがあります。
・プログラミングブロックの一部が表示されなくなる
・プログラミングブロックが動かせなくなる

blockBug01

 

 

 

 

 

 

 

 

 

 

 

 

 

 

お使いの環境(PC)によって異なりますが、1プログラムあたりのプログラミングブロックの数が、100個を超えたあたりから見られる症状です。

このような症状が見られた場合は、機能ごとにマイブロック化するなどして、1プログラムあたりのプログラミングブロックの数を減らしてください。

 

 

モーター逆回転ブロックを使用する際の注意点

モーター逆回転ブロックは、正しい組み合わせで使用しないと、モーターを逆回転させることができません。ここでは、モーター逆回転ブロックの使用する際の注意点をご紹介します。

motorbackspin01

モーター逆回転ブロック(右図)は、すでに回転しているモーター回転方向を変えるブロックです。
そのため、モーター逆回転ブロック単体では使用することができません

 

motorbackspin02

 

 

 

 

 

 

 

 

 

 

また、モーター逆回転ブロックは、1つのモーターの回転方向を制御します。そのため、ステアリングブロック・タンクブロックとあわせて使用することもできません
ステアリングブロックやタンクブロックで回転しているモーターに、モーター逆回転ブロックをあわせて使用すると、片方のモーターのみ回転方向を変える事になり、矛盾が生じてしまうためです。

motorbackspin03

 

 

 

 

 

 

 

 

 

モーター逆回転ブロックを使用する際は、以上の点にご注意ください。

 

 

ステアリングブロック、タンクブロックを用いてくり返し直進をした際、徐々に曲がる現象

ステアリング、タンクブロックを用いて、くり返し直進をすると徐々に曲がってしまう現象が存在します。

例:パワー10で1秒間直進するステアリングブロックを8回繰り返し使用

program01_2

 

 

 

 

 

 

 

※ループを使用しても同様の事象を確認しています。

これは左右のモーターでブレーキの掛かり方に差が生じて、左右のモーターの回転角度に差が出ることによります。

この現象は以下の条件で発生します。

凡例:○ 角度差が出ない

  :× 角度差が出る

 

 

 

モーターのモード

ブレーキ方法

ブレーキ

惰性運転

秒数

×

角度

回転数

 

検証した結果を紹介します。

上記プログラムをデータロギングした結果のグラフ(縦軸:パワー、横軸:秒)
紫色:Bモーター、黄色:Cモーター

graph02_2

 

 

 

グラフ前半においてBモーターのパワーが落ちていないことから左右のモーターのブレーキの掛かり方に差があることがわかります。

同様のプログラムをデータロギングした結果のグラフ(縦軸:回転角度、横軸:秒)
青色:Bモーター、緑色:Cモーター

graph03_2

 

 

 

 

 

 

 

 

 

 

グラフからBモーターがCモーターより多く回転していることがわかります。この検証で「Bモーターの回転角度」-「Cモーターの回転角度」を計算すると790-746=44(度)の角度差が生じています。
上記プログラムで何度か試行した結果、一つのブロックにつき約4から15度の回転角度差が出ていました。

また、この現象の特徴としてパワーが低いほど左右のモーターの回転角度差が大きくなります。(下グラフ参照)
このグラフは例で示したプログラムのパワーを変えて検証したものです。
3回ずつプログラムを実行し、回転角度差の絶対値を平均してグラフ化しています。

motorgraph

 

 

 

 

 

 

 

 

 

 

 

 

 

グラフからパワーが10から40までは特に左右モーターの回転角度差が大きいこと、90や100ではほとんど回転角度に差がないことがわかります。

この現象の対処法として、ステアリング、タンクブロックを秒数モードでくり返し使用する際は、ブレーキ方法には惰性運転を選択することを推奨します。また、ブレーキを使う場合は、Lモータブロックと待機ブロックを組み合わせると回転角度に差を出さずに動かすことが可能です(下図)。

program02_2

 

 

 

 

 

 

 

 

ファイルアクセスブロックの使用方法

FileAccess_01

EV3ソフトウェアには、「ファイルアクセス」プログラミングブロックが用意されています。このブロックを使用すると、プログラムの中でファイルにデータを書き込むことができます。
ファイルに書き込まれたデータは、ファイルアクセスブロックやメモリブラウザー機能を使って読み取ることができます。

ここでは、ファイルアクセスブロックの基本的な使用方法をご紹介します。

FileAccess_02_web

 

●ファイルの書込み

ファイルにデータを書き込むには「書き込み」モードを使用します。「書き込み」モードでは、数値・文字のどちらでも書き込むことができます。

データを書き込むファイルの名前は、ブロックの右上の「ファイル名」欄に設定します。(右図の場合、ファイル名は「abc.rtf」となります。)

 

FileAccess_03_web

指定したファイル名のファイルがプロジェクト内に存在しない場合は、新たにファイルが作成されます。
指定したファイル名のファイルがプロジェクト内に存在する場合は、既存のファイルに追記されます。
くり返しプログラムを実行する際、常に新しいファイルに書き込みたい場合は、プログラムのはじめで「削除」モードを使用して、既存のファイルを削除するようにします。

 

下図は、カラーセンサーで反射光の値を1秒ごとに3回読み取り、それをファイル「abc」に書き込んでいます。また、プログラムの最初で、既存のファイル「abc」を削除しています。

FileAccess_04

 

 

 

 

 

 

 

 

 

FileAccess_09_web

ファイルアクセスブロックは、一度書き込みを行うごとに改行します。そのため、カラーセンサーの値を1つ書き込むごとに改行され、プログラム実行後のファイル「abc」の中身は、右図のようになります。

 

 

 

●ファイルの読み込み

FileAccess_05_web

ファイルを読み込むには、2つの方法があります。

1)ファイルアクセスブロックを使って読み込む

プログラムの中でファイルの中身を読み込むには、ファイルアクセスブロックの「読み込み」モードを使用します。

読み込む値にあわせて、「テキスト」または「数値」を選択します。「テキスト」モードで数値を読み込むことは可能です。

 

下図のプログラムは、先ほどのプログラムに、ファイルの中身を読みとって画面に表示する処理を追加したものです。

FileAccess_06

 

書き込みをしたファイルを読み込むには、まずファイルを閉じる必要があります。ファイルを閉じるには、ファイルアクセスブロックの「閉じる」モードを使用します。

FileAccess_07

ファイルアクセスの「読み込む」モードは、一度目に読み込むとファイルの1行目を、2度目に読み込むとファイルの2行目を読み込みます。
ループブロックを使用してくり返し読み込むと、ファイルの中身を一行目から順に読み込むことができます。

プログラムの実行結果は右図のようになります。

 

2)メモリブラウザーから読み込む

EV3ソフトウェアのメニューから「ツール」→「メモリ ブラウザー」を開きます。
プロジェクトの中のファイルを選択して「アップロード」を選択すると、ファイルをPCに保存することができます。

FileAccess_08_web

 

 

 

 

 

 

 

 

 

保存したファイルは、テキストファイルとして開くことができます。

お問い合わせ

CONTACT

株式会社アフレル

本社/カスタマーセンター

〒918-8231 福井市問屋町3-111
TEL.0776-25-0303 FAX.0776-25-0309
カスタマーセンター電話受付  9:30〜17:30 (土日・祝日・年末年始を除く) MAP

東京支社

〒103-0001
東京都中央区日本橋小伝馬町2-8 新小伝馬町ビル5F
TEL.03-6661-9251 FAX.03-3249-3741 MAP

正規代理店

資料内容の無断転載、複製を禁じます。
製作・著作 株式会社アフレル

Copyright 2016 Afrel Co.,Ltd. All Rights Reserved.
© LEGO, the LEGO logo, MINDSTORMS and the MINDSTROMS logo are trademarks of the LEGO Group.

© 2016 The LEGO Group.

レゴ、レゴのロゴマーク、レゴ マインドストームは、 レゴグループの登録商標です。