ゴリラの組み立てとプログラミング ~レゴマインドストームEV3~ | そう備忘録

ゴリラの組み立てとプログラミング ~レゴマインドストームEV3~

レゴマインドストームEV3のゴリラ

教育用レゴマインドストームEV3の基本セットでゴリラ(Gorilla)を組み立ててみた。

ゴリラは両腕はLモーター、頭は超音波センサー、手先にそれぞれタッチセンサーとカラーセンサーが付いている。

Lモーターの太い部分や黒のカバーブロックを使って太い腕を再現したり超音波センサーを大きな瞳に模して頭を表現したりして”ゴリラ感”がでていて愛嬌がある。

ゴリラ レゴマインドストームEV3

駆動部・センサー類の説明

駆動部は両腕のLモーターのみ、足は固定されていて動かない。

センサー類は超音波センサー、カラーセンサー、タッチセンサーの3種類が付いている。

Lモーター(両腕)Lモーターは両腕に使われている

上下運動のみなのでタンクブロックを使って制御することにした

Lモーター ゴリラの両腕

 

超音波センサーゴリラの頭は超音波センサー

超音波センサーは片側から超音波を出して反射してきた超音波をもう片側で受信した時の時間で物体との距離を測ることが出来る

5cm以内に物が近づいたら両腕を上げて万歳三唱をすることにした

超音波センサー ゴリラ

タッチセンサー左腕手先はタッチセンサー

タッチセンサーは、

  • 離れた
  • 押された
  • バンプ(押してすぐに離した)

3種類の状態を測定する事ができる

今回は押された時にゴリラの音声ファイル再生する事にした

タッチセンサー ゴリラの左腕先端

カラーセンサー右腕手先はカラーセンサー

カラーセンサーは

  • 色の判別
  • 反射光の強さ
  • 周辺の光の強さ(明るさ/暗さ)

を測定することができる

今回は反射光の強さを使用して反射光が一定以上(=光を反射する物が近くにある)の時に右上を上下させることにした

カラーセンサー ゴリラの右腕先端

プログラム概要

プログラムは主に下記の3つのブロックから成り立っている

  • 超音波センサーに関する動作
  • タッチセンサーに関する動作
  • カラーセンサーに関する動作

それぞれのセンサーに対する両腕の動きや音声の再生は一例でこれが正解というわけではない。

尚、記事の最後にプログラミングと実際に動かした時の動画を載せているので確認してみて欲しい

ゴリラ・プログラム概要

プログラム全体

ゴリラ・プログラム全体

プログラム開始

2、8、10を同時並行で実行する

両腕を下げる(初期状態にする)
超音波センサーの5cm以内に物が近づいたら4以降を実行する
1秒間待機
6~7を3回実行する(万歳三唱)
両腕を上げる
両腕を下げる
タッチセンサーが押されたら9を実行する
ゴリラの鳴き声を再生する
10カラーセンサーに光を反射する物が近づいたら11以降を実行する
11右腕を少しゆっくり上げる
1213~15を3回繰り返す
130.5秒待機する
14右腕を下げる
15右腕を上げる

使用したブロック

今回使用したブロックは以下の4種類。

タンクブロック

左右のLモーターを制御するブロック

通常は車輪を制御する事が多いので”タンク”という名前だが今回のように両腕を制御することにも使える

初期処理・タンクブロック初期処理用に両腕を一番下まで下げる

弱いパワーで一定時間、一方向に回転させることにより両腕を初期の開始状態にもっていく

  • タンク:秒数
  • 左側パワー:-5(下げる)
  • 右側パワー:-5(下げる)
  • 時間:0.5(秒)
  • ブレーキ方法:真(惰性なしで停止させる)
両腕を上げる両腕を上げる

  • タンク:角度
  • 左側パワー:30(上げる)
  • 右側パワー:30(上げる)
  • 角度:100(度)
  • ブレーキ方法:真(惰性なしで停止させる)
両腕を下げる両腕を下げる

  • タンク:角度
  • 左側パワー:ー30(下げる)
  • 右側パワー:ー30(下げる)
  • 角度:98(度)
  • ブレーキ方法:真(惰性なしで停止させる)

上げる角度に対して下げる角度が少ないのは腕が重いので上がりきらない分を考慮している

右腕を上げる右腕をゆっくり上げる

  • タンク:角度
  • 左側パワー:0
  • 右側パワー:20(上げる)
  • 角度:100(度)
  • ブレーキ方法:真(惰性なしで停止させる)

 

右腕を下げる右腕を下げる

  • タンク:角度
  • 左側パワー:0
  • 右側パワー:-30(下げる)
  • 角度:98(度)
  • ブレーキ方法:真(惰性なしで停止させる)
右腕を上げる右腕を上げる

  • タンク:角度
  • 左側パワー:0
  • 右側パワー:30(上げる)
  • 角度:100(度)
  • ブレーキ方法:真(惰性なしで停止させる)

待機ブロック

指定した条件に一致するまで待機するブロック

各種センサー、時間など様々な待機条件を設定することができる

条件に一致すると後続のブロックの処理を実行する

待機ブロック・超音波センサー超音波センサーの5cm以内に物が近づくまで待機する

  • 超音波センサー:比較、距離(cm)
  • 比較タイプ:4(<)
  • しきい値:5(cm)
  • 距離:測定した距離を出力する(今回は未使用)
待機ブロック・タッチセンサータッチセンサーが押されるまで待機する

  • タッチセンサー:比較、状態
  • 状態:1(押された)
  • 測定値:状態を出力する(今回は未使用)
待機ブロック・カラーセンサーカラーセンサーを反射光の強さを測るモードにして反射光が10より大きく(光を反射する物体が近くにある)なるまで待機する

  • カラーセンサー:比較、反射光の強さ
  • 比較タイプ:2(>)
  • しきい値:10※
  • 照明:反射光の強さを出力する(今回は未使用)

※光を反射する物が前にない時は0(ゼロ)

1秒間待機する1秒間待機する(0.5秒待機も使用している)

  • 待機:時間
  • 時間:1(秒)

音ブロック

様々な音を再生するブロック

音ブロックの詳細についてはこちらの記事を参照

音ブロック・ゴリラの鳴き声の再生ゴリラの鳴き声の音声ファイルを再生する

  • 音:ファイルの再生
  • ボリューム:100
  • 再生タイプ:0(完了待ち)

音声ファイルの追加

ゴリラの鳴き声の音声ファイルはEV3に標準的に用意されていないので以下の手順で音声ファイルを追加する

ゴリラの鳴き声のファイルを入手する

mp3形式のフリーの音声ファイルを入手した

サウンドエディターをレゴマインドストームEV3ソフトウェアから起動する

サウンドエディターの追加

「開く」で音声ファイルを開く

*.rso、*.rsf、*.wav、*.mp3を開くことが出来る

開く

保存で名前をつけて保存する

保存

音ブロックのファイル名のプロジェクトサウンドに先程保存したファイルが表示されるようになる

ゴリラの鳴き声ファイル

ループブロック

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

ループブロック3回ループする

  • 番号:01
  • ループ:カウント
  • カウント:3(回)

プログラミングと実際に動かしてみた時の動画

ゴリラのプログラミングと実際に動かしてみた時の動画

両腕が重いので万歳三唱をさせると本体が動いてしまったり、もう少し細かい動きを調整したりとまだまだ改良の余地があるプログラムだがとりあえず実際の動きが分かるので動画で確認してみて欲しい。

souichirou

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

おすすめ

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

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