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

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

ロボットアームとは

教育用レゴマインドストームEV3でロボットアームを組み立ててみる。

ロボットアームは、

  • アームの旋回
  • アームの上下運動
  • 把持の開閉

でブロックを掴んで移動させることができる。

レゴ・マインドストームEV3 ロボットアーム

駆動部品とセンサー類は以下の通り。

Lモーター(ポートC)

アーム下部でギアを回してアームの旋回を制御する

アームを旋回させるLモーター

Lモーター(ポートB)

ギアを回してアームの上下運動を制御する

アームを上下させるLモーター

Mモーター(ポートA)

Mモーターでギアを回して把持(ブロックを掴む)部分を制御する

Mモーターで把持部分の開閉を制御する

Mモーターで把持部分の開閉を制御する・その2

Mモーターで把持部分の開閉を制御する・その3

カラーセンサー(ポート3)

アームを上昇させた時の安全装置の役割。

アームが上昇するとカラーセンサーの前に白いブロックが移動してくる構造になっている。

カラーセンサーで反射光の強さを測定して正面に白いブロックが来たらポートBのLモーターを停止させてこれ以上上昇しないように制御する。

カラーセンサーでアームの上昇限界を制御する

タッチセンセー(ポート1)

アームを旋回させた時の安全装置の役割。

アームの(上から見て)時計回りの旋回の時に限界以上回転をしないようにタッチセンセーが押されたらポートCのLモーターを停止させる。

タッチセンサーによる旋回限界の制御

ロボットアームの組み立て

ロボットアームの組み立ての様子

レゴに慣れている人であれば30分弱で組み立てることができる

プログラム概要

プログラムの全体の概要

一つ一つのブロックの解説は後述する。

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

プログラムの全体図・概要

インテリジェントブロックの上のキーを押したときは時計回りに、下のキーを押したときは反時計回りに旋回した後、アームを下ろしてブロックを掴む。

掴んだ後はアームを上昇させて先程とは逆の旋回をした後、再びアームを下ろしてブロックを離したのちアームを上昇させているプログラム。

プログラム全体

アームを旋回後、下降させてブロックを掴んだ後、上昇して逆方向に旋回した後にブロックを降ろすプログラム。

プログラム全体その1
プログラム全体その2

プログラム開始

3~24を繰り返す

ディスプレイにクエッションマークを表示する

インテリジェントブロックのステータスライトをオレンジ色に点滅させる

上か下のキーを受け付けるまで待機する

結果を9と17のスイッチブロックに引き渡す

ステータスライトをリセットする

クリック音を再生する

中央キーが押されるまで待機する

5の入力結果により10、11の処理に分岐する

  • 上(4)が押された時:10の処理を実行する
  • 下(5)が押された時:11の処理を実行する

10

アームを時計回りに旋回させる

11

アームを反時計回りに旋回させる

12

アームを下降させる

13

把持ブロックでブロックを掴む

14

アームを上昇させる

15

アームの上昇上限になるまで待機する

※カラーセンサーの反射光の強さで判定する

16

アームの上昇を停止する

17

5の入力結果により18、19の処理に分岐する

  • 上(4)が押された時:18の処理を実行する
  • 下(5)が押された時:19の処理を実行する

18

アームを反時計回りに旋回させる(10の逆)

19

アームを時計回りに旋回させる(11の逆)

20

アームを下降させる

21

ブロックを離す

22

アームの上昇を停止する

23

アームの上昇上限になるまで待機する

※カラーセンサーの反射光の強さで判定する

24

アームの上昇を停止する

使用したブロック

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

ループブロック

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

プログラム終了までアーム操作を繰り返すのでループブロックを配置した。

ループブロック

無条件に繰り返し

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

表示ブロック

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

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

表示ブロック Question Mark

入力待ちの状態を表すためにクエッションマークをディスプレイに表示する

  • 表示:イメージ
  • 画面消去:真(画面消去してから表示する)
  • X:0(X軸表示位置)
  • Y:0(Y軸表示位置)
  • ファイル名:Question mark

インテリジェントブロックステータスライト

インテリジェントブロックのLEDのステータスライトの表示を制御するブロック

インテリジェントブロックステータスライトの詳細についてはこちらの記事を参照

インテリジェントブロックステータスライト オレンジ点滅

入力待ちの状態を表すためにインテリジェントブロックステータスライトのLEDをオレンジ色に点滅させる

  • インテリジェントブロックステータスライト:オン
  • 色:1(オレンジ)
  • パルス:真(点滅)
インテリジェントブロックステータスライト リセット

オレンジ色の点滅を終了させる

  • インテリジェントブロックステータスライト:リセット

待機ブロック

特定の条件に一致するまで待機するブロック

条件は様々なセンサーの値やインテリジェントブロックの操作キー、時間などを指定することができる。

待機 インテリジェントブロックボタン

インテリジェントブロックボタンの上(4)または下(5)が押されるまで待機する

  • 待機:インテリジェントブロックボタン、比較、インテリジェントブロックボタン
  • インテリジェントブロックボタンIDのセット:4(上)、5(下)
  • 状態:1(押された)
  • ボタンID:押されたボタンのIDをデータワイヤーで出力してスイッチブロックに引き渡す
待機 インテリジェントブロックボタン

インテリジェントブロックボタンの中央(2)が押されるまで待機する

プログラムの動作を一旦止める為に使用している

  • 待機:インテリジェントブロックボタン、比較、インテリジェントブロックボタン
  • インテリジェントブロックボタンIDのセット:2(中央)
  • 状態:1(押された)
  • ボタンID:未使用
待機 カラーセンサー 反射光の強さ

アームを上昇させる時の安全装置の役割

反射光の強さが25を超える=正面に白いブロックが来ている=アーム上昇の上限

を判断する

  • 待機:カラーセンサー、比較、反射光の強さ
  • 比較タイプ:2(>)
  • しきい値:25
  • 照明:未使用

音ブロック

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

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

音ブロック クリック音

インテリジェントブロックの上、下のボタンが押されたことが分かるようにクリック音を再生する

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

スイッチブロック

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

センサーの測定値やロジック(”真” or ”偽”)など様々な条件を指定する事ができるが今回は数値(#)での分岐を使用する。

スイッチブロック

インテリジェントブロックボタンの4(上)、5(下)によって処理を分岐する

  • スイッチ:数値
  • 数値(#):待機ブロックのインテリジェントブロックボタンの結果をデータワイヤーで受け取って分岐する

Lモーター

重いものをゆっくり動かすのが得意なLモーターを制御するブロック

今回はアームの旋回と上昇下降の2箇所でLモーターを使用している

Lモーター アーム旋回用

アームを時計回りに旋回させる

  • Lモーター:回転数
  • パワー:30
  • 回転:0.85(回転)
  • ブレーキ方法:真
  • ポート:C
Lモーター アーム旋回用

アームを反時計回りに旋回させる

  • Lモーター:回転数
  • パワー:ー30
  • 回転:0.85(回転)
  • ブレーキ方法:真
  • ポート:C
Lモーター アーム上下制御用

アームを下降させる

  • Lモーター:角度
  • パワー:20
  • 度:275(度)
  • ブレーキ方法:真
  • ポート:B
Lモーター アームを上昇させる

アームを上昇させる

停止はカラーセンサーの反射光の強さで判定する

  • Lモーター:オン
  • パワー:-55
  • ポート:B
Lモーター アームの上昇を停止させる

アームを上昇を停止させる

  • Lモーター:オフ
  • ブレーキ方法:真
  • ポート:B

Mモーター

軽いものを素早く動かすのが得意なMモーターを制御するブロック

今回はアーム先端の”指”の開閉にMモータを使用している

Mモーター 物を掴む

指を閉じてブロックを掴む動作を行う

  • Mモータ:秒数
  • パワー:30
  • 秒:1(秒)
  • ブレーキ方法:真

※角度指定でも同様の事ができる

Mモーター 物を離す

指を開いてブロックを離す動作を行う

  • Mモータ:角度
  • パワー:ー30
  • 度:90(度)
  • ブレーキ方法:真

実際に動かしてみた動画

旋回用のLモータの制御、アームを上下させるLモータの制御、ブロックを掴む動作のMモーターの制御、全体のプログラミングの様子を動画にしている。

souichirou

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

おすすめ

8件のフィードバック

  1. 小田一博 より:

    大変参考になりました。LEGO EV3 ソフトにある組み立て方法に従って組み立てましたが、物を掴む部分が開閉するときにガガガと音がすることとMモーターの歯車にかみ合っている小さな歯車の軸が動かすごとに外に出てきてしまいます。何が原因かお分かりであればご教授頂けたらありがたいです。この部分は何回も組み立て直しました。よろしくお願いします。

    • souichirou より:

      小田さん
      コメントありがとうございます。
      ロボットアームはもうバラしてしまって手元に無いので正確には分からないのですが、恐らくですが物を掴む動作をする際に部品が干渉してしまっているのだと思います。
      無理やり回すのでベージュのベベルギアが飛び出してしまうのだと思います。
      Mモーターの黒い歯車を指で回してみたらどうなりますか。

      また下記の組み立て動画の1:48と1:50の所の部品の配置をご自分のアームと見比べてみてください。
      https://www.youtube.com/watch?v=RNwwb_gSI3Y&feature=emb_logo

      組み立てが合っている場合ですがプログラムでMモータのパワーを10程度でゆっくり動かしてみてください。

      • 小田一博 より:

        souichirou様
        早速のご返事ありがとうございます。今朝、一旦全部分解しました。
        近いうちまた組み立て直してみます。おっしゃる通り部品同士が擦れているような音がします。
        御助言ありがとうございました。組み立て直したら結果をお知らせいたします。
        小田一博

      • 小田一博 より:

        souichirou様
        教えていただいたようにMモーターのパワーを10に設定し直して動かしたら、異音もせず、軸も飛び出さないように動きました。
        大変ありがとうございました。

        • souichirou より:

          小田一博さん

          連絡ありがとうございます。
          無事に動いたのなら何よりです。
          パワーが強すぎたのかも知れませんね。
          パワーは30ぐらいまでは大丈夫だったと思います。

          • 小田一博 より:

            souichirou様
            最初は提供されたプログラムのままで、パワーは30になっていました。
            ありがとうございました。

  2. 根本通裕 より:

    質問させていただきます。 LEGOの制御は、IPADでしか できないと思っていました。
    YOUTUBEを観ると、WINDOWSの画面のような感じです。
    WINDOWSでも アプリをインストールすればLEGOの制御ができるのでしょうか?
    おてすきのときにご回答いただければ幸いです。

    • souichirou より:

      根本さん
      コメントありがとうございます。

      WindowsでもAndroidでも出来ます。
      Windowsの場合はこちらからソフトウェアをダウンロード出来ます。
      https://education.lego.com/ja-jp/downloads/mindstorms-ev3/software

      Windows場合は最近、レゴマインドストームのソフトウェアが変わってスクラッチの様な画面になっている様です。
      自分はまだ試していません。
      Youtubeの映像は最新のスクラッチ風に変わる前のソフトウェアの映像です。

小田一博 へ返信する コメントをキャンセル

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