テクノロジー

img_technologyTop01

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

EV3ソフトウェア 配列ブロックの使用方法【実践編】

教育版EV3ソフトウェアのプログラムにおける配列ブロックの使用方法を 簡単な具体例を用いてご紹介します。

 

配列の書き込み方法や読み取り方法など、基本的な操作方法はこちらをご覧ください。

 

◆例1
数値やテキストの変数は、1つの変数で1つの値しか記憶できないのに対し、配列は1つで複数の値を記憶しておくことができます。
そのため、あらかじめ複数の値を記憶しておき、それを利用してEV3を制御する際に便利です。

 

下図の例は、カラーセンサーの値を使って鳴らしたいメロディを配列に記憶させ、配列に記憶された値を読みとりながらメロディを鳴らします。

 

 

※1…EV3の中央ボタンを押す毎に1つ、配列に値を記憶します。
※2…配列の長さをくり返しの回数に指定すれば、配列の全ての値を読みとれます。
※3…ループインデックスを配列のインデックスに指定すれば、配列の値を順番に読み取れます。
※4…スイッチブロックの中には、各値に対応した音を鳴らす処理が入っています。1なら「ド」、2なら「レ」…のように、配列に記憶された値によって、それに対応した音を鳴らします。

 

 

◆例2
配列は、相対的に値を見る場合にも便利です。

 

下図のようなコースで、指定された番号の位置へ移動する場合で考えてみます。
・スタート地点は「0」です。
・移動する位置と順番は、事前にカラーセンサーの値によって指定することとします。
(例えば、「青(2)、赤(5)、緑(3)、黄(4)、黒(1)」と値を読みとった場合、EV3を「0(スタート地点)→2→5→3→4→1」の順に移動させます。)
・各番号の間隔は、EV3のタイヤ1回転分であることとします。

 

 

この課題のサンプルプログラムは下図のとおりです。

 

 

前半は、例1のプログラムに、読みとった値(行先とその順番)を表示する処理(※1)を追加しています。カラーセンサーの値によって行先を指定し、配列「ikisaki」に記憶します。

 

変数「pos(※2)」には、現在地を記憶します。移動を開始する前はスタート地点にいるので「0」です。

 

後半は、配列「ikisaki」に記憶された値にしたがって移動します。(※3)

 

配列「ikisaki」の値と、後半(※3)の値の変化は下表のようになります。

 

 

ループブロックで1回くり返すごとに、ループインデックス(④)の値が0から1ずつ増加します。これを配列のインデックス(①)に指定することで、配列ikisakiの値(②)が順番に読み取れます。(⑤)

 

移動量(⑦)は行先(⑤)から現在地(⑥)をひくことで求められます。
結果がマイナスの値になる場合は、後ろ向きに進みます。

 

移動が完了したら、行先(⑤)が現在地(⑥)とイコールになるので、現在地に行先の値を上書きします。(⑧)

 

これをくり返すことによって、事前に記憶した行先を順番に取得し、現在地との差から行先までの移動量を求め、移動することができます。

 

(2017/08/03現在)

お問い合わせ

CONTACT

株式会社アフレル

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

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

東京支社

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

大阪事業所

〒532-0011
大阪府大阪市淀川区西中島3-7-8 NLC新大阪17号館302
TEL.06-4805-8788 FAX.06-4805-8789 MAP
  • 正規代理店

    LEGO education logo

  • PITSCO logo

  • NI logo

  • virtual robotics toolkit logo

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

Copyright 2017 Afrel Co.,Ltd. All Rights Reserved.

© LEGO, the LEGO logo, MINDSTORMS and the MINDSTROMS logo are trademarks of the LEGO Group.
© 2017 The LEGO Group.
レゴ、レゴのロゴマーク、レゴ マインドストームは、 レゴグループの登録商標です。