ランダムブロックを使ったプログラムの作成 ~レゴマインドストームEV3~ | そう備忘録

ランダムブロックを使ったプログラムの作成 ~レゴマインドストームEV3~

ランダムブロックとは

教育用レゴマインドストームでランダムブロックを使ったプログラムを作ってみる。

ランダムブロックとは乱数(無作為な数値)を発生させたり、指定した確率でロジックの真(または偽)を発生させることができるブロック。

ランダムブロック

最初に1~6までの数字をランダムに発生させてインテリジェントブロックのディスプレイに表示するプログラム、次にランダムなロジック(真 or 偽)を発生させてレゴのトレーニングロボットを真なら右回り、偽なら左回りをするプログラムを作成する。

尚、ランダムブロックの機能についてはこちらの記事を参照

使用するブロック

使用するブロックは以下の6種類。

ループブロック

ループ内に配置されたブロックを右側の条件に一致するまで繰り返す。

ループブロック 5回

ループを5回繰り返す。

  • 番号:01
  • ループ:カウント
  • カウント:5
ループブロック 無限

ループを無限(プログラム終了まで)に繰り返す

※2つ目のプログラムで使用する

  • 番号:01
  • ループ:無限

ランダムブロック

無作為な数値、ロジックを発生させるブロック。

主に以下の2つの機能がある。

  1. 指定された範囲内のランダムな数値を発生させる
  2. 指定された確率で”真”を発生させる
ランダムブロック 数値

1~6までの乱数を発生させる

  • ランダム:数値
  • 下限:1
  • 上限:6
  • 値:データワイヤーで表示ブロックへ引き渡す
ランダム ロジック 80%

80%の確率で”真”を発生させる

※2つ目のプログラムで使用する

  • ランダム:ロジック
  • 真になる確率:80
  • 値:真 or 偽をでデータワイヤーでスイッチブロックに引き渡す

表示ブロック

レゴのインテリジェントブロックのディスプレイにテキスト、図形などを表示する。

表示ブロックの詳細な機能についてはこちらの記事を参照

表示ブロック

データワイヤー経由で受け取った数値をディスプレイに表示する

  • 表示:テキスト、グリッド
  • テキスト:データワイヤーでランダムブロックの値を受け取る
  • 画面消去:真
  • 列:5
  • 行:5
  • 色:偽(黒)
  • フォント:2(大)
  • テキスト(右上):ワイヤーテキスト

待機ブロック

条件を満たすまで待機をするブロック。

待機ブロック 1秒間

1秒間待機する

  • 待機:時間
  • 秒:1

ディスプレイに1秒毎にランダムブロックからの乱数を表示する為に待機する。

2つ目のプログラムではトレーニングロボットを1秒間待機させる為に使用する。

スイッチブロック

条件を判定して処理を分岐するブロック。

スイッチブロック ロジック

データワイヤーでロジック(真 or 偽)を受け取ってスイッチで分岐する。

真の時は上のロジック、偽の時は下のロジックを実行する。

※2つ目のプログラムで使用する

  • スイッチ:ロジック
  • ロジック:データワイヤーでランダムブロックより”真” or ”偽”を受け取る

ステアリングブロック

Lモーターを制御してトレーニングロボットを制御する。

今回は右回りと左回りの2種類のステアリングブロックを使用する。

尚、ステアリングブロックの詳細はこちらを参照

ステアリングブロック 右回り

トレーニングロボットを1秒間右回りさせる

※2つ目のプログラムで使用する

  • ステアリング:秒数
  • ステアリング:100(右回り)
  • パワー:50
  • 秒:1
  • ブレーキ方法:真
ステアリングブロック 左回り

トレーニングロボットを1秒間左回りさせる

※2つ目のプログラムで使用する

  • ステアリング:秒数
  • ステアリング:ー100(左回り)
  • パワー:50
  • 秒:1
  • ブレーキ方法:真

1~6の数値をランダムに表示するプログラム

1~6の数値をランダムに発生させてインテリジェントブロックのディスプレイに合計5回数値を表示するプログラム。

ランダムに発生した数値をディスプレイに表示する

プログラム開始

3~5を5回繰り返す

ランダムに発生させた1~6までの数値をデータワイヤーで4に引き渡す

データワイヤーで受け取った値をディスプレイに表示する

1秒間待機する。

3へ戻る

ランダムな数値をディスプレイに表示する

80%の確率で右回りするトレーニングロボット

80%の確率で”真”を発生させて真なら右、偽なら左回りをするプログラム。

80%の確率で右回りをするプログラム

プログラム開始

3~7を無限(プログラム終了まで)繰り返す

80%の確率で”真”を発生させて結果をデータワイヤーで4へ渡す

”真”なら5、偽なら6を実行する

トレーニングロボットを1秒間右回りさせる

トレーニングロボットを1秒間左回りさせる

1秒間待機する

3へ戻る

プログラミング動画

プログラミングと実際のトレーニングロボットの動きを動画にしている。

ランダムに数値を表示したり、トレーニングロボットが回転する様子が分かる。

souichirou

やった事を忘れない為の備忘録 同じような事をやりたい人の参考になればと思ってブログにしてます。 主にレゴ、AWS(Amazon Web Services)、WordPress、Deep Learning、RaspberryPiに関するブログを書いています。 仕事では工場に協働ロボットの導入や中小企業へのAI/IoT導入のアドバイザーをやっています。 2019年7月にJDLA(一般社団法人 日本デイープラーニング協会)Deep Learning for GENERALに合格しました。 質問は記事一番下にあるコメントかメニュー上部の問い合わせからお願いします。

おすすめ

質問やコメントや励ましの言葉などを残す

名前、メール、サイト欄は任意です。
またメールアドレスは公開されません。