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

AnglerFish(アンコウ)の組み立てとプログラミング ~レゴマインドストームEV3~

AnglerFish(チョウチンアンコウ)とは

教育用レゴマインドストームEV3の基本セットでAnglerFish(チョウチンアンコウ)を組み立ててみた。

Anglerは魚釣りという意味なのでAnglerFishは魚釣りをする魚。

チョウチンアンコウは頭の上の突起物を揺らして小魚をおびき寄せるのでこんな名前がついているのだと思う。

レゴではチョウチンの部分はカラーセンサー、大きな目はタイヤのホイールを使って表現している。

AnglerFish(チョウチンアンコウ)

組み立て動画

AnglerFishの組み立て動画はこちら

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

Mモーター

胴体部分のMモータで口の開閉を行う

時計回り(プラス)で閉める、反時計回り(マイナス)で開ける動作を行う

下記は時計回りで口を閉じる時の動作

Mモーターで口の開閉

Mモーターの動作は上顎についている超音波センサーで制御することにした

Mモーターと超音波センサー

超音波センサー

上顎に超音波センサーがついている

超音波センサーは超音波を使って物体との距離を測定することができる

超音波センサーの4cm以内に物体が近づいたらMモーターを制御して口を閉じるプログラミングをしてみる

超音波センサー

ジャイロセンサー

胴体下部、中央についているジャイロセンサー

ジャイロセンサーについての記事はこちら

ジャイロセンサーは動いた角度や角速度(単位時間あたりの角度)を測定する事ができる

ジャイロセンサーを中心にチョウチンアンコウが回転したときにカラーセンサーのライトの色を変えるプログラミングをしてみる

ジャイロセンサー

カラーセンサー

チョウチン部分はカラーセンサーを使用している

カラーセンサーには3種類のモードがありそれぞれ異なる色のライトが光る

この機能を利用してジャイロセンサーの角度によりライトの色を変えるプログラミングをしてみる

つまりチョウチンアンコウが体の向きを変えるとチョウチンの光る色を変えるプログラムにする

カラーセンサー

カラーセンサーのモード

色の判定モード

白に光る

色の判定 白

反射光の強さモード

赤に光る

反射光の強さ 赤

周辺の光の強さモード

青に光る

周辺の光の強さ 青

しっぽ(手動)

しっぽは手動だが左右に動く

チョウチンアンコウのしっぽ

プログラム概要

まずはプログラムの全体図、それぞれのブロックの詳細は後述する

1.と2.それれぞれ並列で動作する

上のロジック部は口の開閉のコントロール、下はカラーセンサーの光のコントロールを行っている。

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

AnglerFish(チョウチンアンコウ)プログラム概要

プログラム全体

AnglerFishプログラム

プログラム開始

2~7までと8~15までを並行して動作させる

口を閉じて初期状態にする

4~7をプログラム終了まで繰り返す

口を開ける

超音波センサーの測定値が4cm以下になるまで待機する

口を閉じる

5秒間待機する

9~15をプログラム終了まで繰り返す

ジャイロセンサーでプログラム開始からの回転角度を測定して10に引き渡す

10

回転角度が-10~10度の範囲内かどうかを判定(真 or 偽)する

11

10の結果が真なら12、偽なら13の処理を実行する

12

カラーセンサーを色の判定モードにする(白色)

13

ジャイロセンサーの角度が10度より大きいかどうかを判定して大きければ14、そうでなければ15を実行する

14

カラーセンサーを反射光の強さの判定モードにする(赤色)

15

カラーセンサーを周辺の光の強さ判定モードにする(青色)

使用したブロック

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

ループブロック

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

ループブロック 無限

プログラムを終了させるまでループする

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

口の開閉、カラーセンサーの光のコントロール等、プログラムが終了するまでループさせる為のブロック

Mモーターブロック

軽いものを素早く動かすのが得意なモーター

今回はチョウチンアンコウの口の開閉に使用する

Mモーター 初期処理

弱いパワーで1秒間、口を閉じる方向(プラス回転)にMモーターを回転させて口を完全に閉じさせる

この様に弱いパワーで一定時間、一定方向にパワーを加えて初期状態にする手法はレゴマインドストームではよく使う

  • Mモーター:秒数
  • パワー:5
  • 秒数:1(秒間)
  • ブレーキ方法:真(惰性なしで停止させる)
Mモーター 口を開ける

反時計回り(マイナス)の回転でチョウチンアンコウの口を開ける

  • Mモーター:角度
  • パワー:50
  • 角度:-50(度)
  • ブレーキ方法:真(惰性なしで停止させる)
Mモーター 口を閉じる

時計回り(プラス)の回転でチョウチンアンコウの口を閉じる

  • Mモーター:角度
  • パワー:50
  • 角度:50(度)
  • ブレーキ方法:真(惰性なしで停止させる)

待機ブロック

指定した条件になるまで待機する。

待機ブロック 超音波センサー4cm以下

超音波センサーの測定距離が4cm未満になるまで待機する

口の付近に餌があるかどうかを超音波センサーで判断する

  • 待機:超音波センサー、比較、距離(cm)
  • 比較タイプ:4(<)
  • しきい値:4(cm)
  • 距離:測定した距離を出力する(今回は未使用)
5秒間待機

5秒間待機する

口を閉じてから次に口を開けるまでの待機時間

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

ジャイロセンサーブロック

動いた角度や角速度を測定するブロック

ジャイロセンサー 測定 角度

プログラム開始時からチョウチンアンコウが左右に回転した角度を測定する

時計回りはプラス、反時計回りはマイナスで測定結果が出力されるが今回は下向きにジャイロセンサーを取り付けたのでプラス、マイナスが逆に測定されるので注意

  • ジャイロセンサー:測定、角度
  • 角度:測定結果の角度、データワイヤーで範囲ブロックに引き渡して角度が範囲内かどうかを測定する

範囲ブロック

値が範囲内(範囲外)かを判別するためのブロック。

試験値が上限と下限の範囲内(外)かを判断して結果に出力する。

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

範囲ブロック

プログラム開始時からチョウチンアンコウが左右に回転した角度が-10~10度の範囲内かどうかを判定する

  • 範囲:範囲内
  • 試験値:ジャイロセンサーの角度をデータワイヤーで受け取る
  • 下限:-10(度)
  • 上限:10(度)
  • 結果:-10~10度の範囲内の時に真、それ以外の時に偽を出力する

スイッチブロック

条件によって処理を分岐することができるブロック。

センサーの測定値やロジック(”真” or ”偽”)など様々な条件を指定する事ができる。

スイッチブロック ロジックで判定

範囲ブロックの測定結果(真 or 偽)を元に分岐を行う

✓は範囲内(-10度~10度)、×は範囲外の時に実行される

  • スイッチ:ロジック
  • ロジック:データワイヤーで範囲ブロックの測定結果を受け取る
スイッチブロック -10~10度の範囲外の時の分岐

上記の分岐で範囲外の時に更に分岐する

ジャイロセンサーの測定値を元に-10度より小さい時と10度より大きい時とで処理を分岐する

  • スイッチ:ジャイロセンサー、比較、角度
  • 比較タイプ:2(>)
  • しきい値:10(度)

カラーセンサーブロック

カラーセンサーには3種類のモードがありそれぞれ光の色が異なる。

モードを切り替えることによりチョウチンアンコウのチョウチン部分の光の色を変える

カラーセンサー 色の判定

カラーセンサーのモードを色の測定にしてライトを白色にする

  • カラーセンサー:測定、色
  • 色:測定した色を数字で出力する(今回は未使用)
カラーセンサー 反射光の強さ

カラーセンサーのモードを反射光の強さの測定にしてライトを赤色にする

  • カラーセンサー:測定、反射光の強さ
  • 照明:測定した反射光の強さを%で出力する(今回は未使用)
カラーセンサー 周辺の光の強さ

カラーセンサーのモードを周辺の光の強さの測定にしてライトを青色にする

  • カラーセンサー:測定、周辺の光の強さ
  • 照明:測定した周辺の光の強さ数値で出力する(今回は未使用)

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

AnglerFish(チョウチンアンコウ)のプログラミングと実際に動かしてみた時の動画

チョウチンアンコウを左右に回転させると光の色が変わるのが分かるので動画で確認してみて欲しい

souichirou

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

おすすめ

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

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