【目次】

  1. データ操作ブロックの説明 

  2. データ操作ブロックを応用してプログラムを作ってみよう!   

  【1.データ操作ブロックの使い方】

​ 変数ブロック

特徴

数字を入れられる箱のようなもの。値を出し入れできるものです。センサーの値を保存したり計算結果を入れたりします。変数を使うときにはまず名前を付けなければいけないので忘れないように。

 

ブロックについて

「読み込み」:テキスト、数値、ロジックがあり変数内

       の値を取り出すことができます。

​「書き込み」:テキスト、数値、ロジックがあり変数内

       の値書き換えることができます。 

*「数値配列」、「ロジック配列」は下の配列ブロックのところで説明します。    

​ 変数ブロックを使ってみよう!

下のプログラムはセンサーで読み取った値を画面に表示するプログラムです。これを使うことでライントレースをしながらセンサーの値を画面に表示することがでプログラマー自身がわかりやすくなります。

​変数の使い方をマスターしましょう。

コメント 2019-11-03 155139.png

​ 比較ブロック

特徴

​ある数字とある数字がどのような関係にあるかを調べるブロックです。

 

ブロックについて

「 a は b より○○か?」という形○○に6種類のものを入れます。その計算結果を一番右のところから「真(条件を満たしてる)」、「偽(条件を満たしてない)」のどちらかを出します。    

コメント 2019-11-02 213444.png

​ 範囲ブロック

特徴・ブロックについて

​ある数字が何から何までの値の中にあるのかないのかを調べるブロックです。一番左の枠に調べる値を入れ、真ん中に下限、その右に上限の値を入れます。その計算結果を一番右のところから「真(条件を満たしてる)」、「偽(条件を満たしてない)」のどちらかを出します。

コメント 2019-11-02 213504.png

​ ロジックブロック

特徴

​データワイヤ(△版)二つの値の関係がどのようになっているかを調べることができます。

 

ブロックについて

「AND」:aとbの両方を満たしているか

「OR」:aまたはbを満たしているか

「XOR」:aまたはbのどちらかしか満たしていないか

「NOT」:aではないか    

コメント 2019-11-02 213425.png

​ 範囲・ロジックブロックを使ってみよう!

コメント 2019-11-03 164920.png

下のプログラムはセンサーで読み取った値が両方白かそうでないかを調べ、その結果で処理をする内容を変えられるプログラムです。これを使うことで処理の仕方を変えることができます。

両方

「真」の時

どちらかが

​「偽」の時

コメント 2019-11-04 143303.png

​ 数学ブロック

特徴

​デイタワイヤ(〇版)または自分で入力した数字を計算することができます。その計算結果を一番右のデータワイヤから出力します。

ブロックについて

足し算:a+b

引き算:a-b

割り算:a/(÷)b

掛け算:a*(×)b

絶対値:|a| aが0以下だった場合整数にする

平方根:√a の値にするにする

指数:a^n aのn乗にする

​拡張機能:a、b、c、dの数字を使い自分で計算式を

     立てられる

  

コメント 2019-11-01 204410_edited.png

  【2.データ操作ブロックを応用してプログラムを作ってみよう!

まずは、ライントレースのプログラムをよくしていこう。

変数や範囲ブロックなどを使ってみましょう。

コメント 2019-11-02 222152.png

上のプログラムは左右のカラーセンサーの値の差が小さいとスイッチブロックの上の動作へ。差が大きいと下の動作へを処理します。上のプログラムは差が小さいのでライントレースがあまり揺れないように正確性を重視して処理しています。Kp(比例ゲイン)は調整する必要があるので変数にしています。下のプログラムは差が大きいのでロボットがカーブに差し掛かっている又は線からはずれているということなのでKpを大きくしてずれを早く直す処理をします。

​<補足内容>

​レゴにはマイブロックといいプログラムを簡潔にまとめることができる機能があります。このことを関数といいます。下の図1のように図2の内容を一つのブロックにまとめることができます。

マイブロックを進める理由1:プログラミングをしているときに動きが遅くなる時があります。動きを軽く

              するためにもマイブロックを使って簡潔にまとめることが大切です。

マイブロックを進める理由2:WROなどプログラミングを作ているときに同じようプログラミング構成の

              ところが多々あると思いますそれを一つのブロックにすることでプログラミ

              ングを作る作業効率も上がります。

コメント 2019-11-02 223147.png
コメント 2019-11-02 223105.png

図1のマイブロックの説明

一番左には「Power」という変数に入れていてBCモーターのパワーの値です。

左から二番目の数字は左右のセンサーの値の差が小さいときのKpの値です。その値は変数名「Kp」に入れています。

左から三番目には値の差が小さいときのKpです。その値は変数名「Kp2」に入れています。

​一番右にはスイッチの上か下(Kp大orKp小)の境目の値(正の数)を入れます。

このようにマイブロックを使うことで長いプログラミングをきれいに・見やすく・簡潔にまとめることができます。ぜひ活用してだれが見てもわかりやすいようなプログラミングを作りましょう。

​参考動画