[ロボットプログラミング]レゴ マインドストーム EV3で遊んでみた(プログラミング編)
ノンプロ研というコミュニティで主にプログラミング等の勉強をしています。普段はPythonを使って業務自動化、データ加工とか、スクレイピングをやったりしています。
今回もレゴ マインドストーム EV3というロボットについて書きます。前回はロボットを組み立てて、リモコン動かすところまで書きました。
今回はこのロボットをプログラミングで動かすところを紹介していきます。
ロボットの準備
前回、ロボットを組み立てるところまでやりました。ソフトの説明書に従って作る最初のもので、TRACK3Rというタイプのロボットです。
このロボットにはモーターが3つついていて、左右のキャタピラーと、写真左側についているバイブレード・ブレンダーという名前の部品が回転します。これをプログラミングで動かしていきます。
接続~最初のプログラム実行
前回ソフトウェアはインストールしていて、そのソフトウェアに載っているマニュアルを見ながら組み立てました。
まずはLEGO® MINDSTORMS® Homeを起動します。
開始を押すと、TRACK3Rを使ったミッションがいくつか出てきます。今回は一番上のTRACK3R 01をやります。
と書いてあります。では開始ボタンを押してみましょう。
ここの組み立てのところまでは前回やりましたので、>ボタンを押して次に進みます。
そうすると、自動的にScratch風のソースコードがダウンロードされます。これを実行すればよいのですが、このプログラムはPC上にしかないので、ロボットに接続してプログラムを書き込まないといけません。
PCとマインドストームEV3はBluetoothで接続できます。上の「接続」というボタンを押すと設定できます。
この画面に従いながらロボットの制御ブロックとペアリングします。
完了すると、左上のアイコンが緑色になり、ロボットの状態が表示されるようになります。
上のアイコンを押すと、現在コントロールブロックとつながっているモーターやセンサーの状態が表示されます。
Aにつながる四角の部品はロボット前方のモーターで、今はバイブレード・ブレンダーという部品につながっています。BとCにつながっている丸はタイヤ用のモーターで、A・B・Cは現在のモーターの角度を表しているようです。
下の④につながっているのは赤外線センサーで、近くに何もないと100%に近い値ですが、すぐ近くに物を置くと下の画像のように数値が小さくなります。
少し物を遠ざけると数値が大きくなります。これで30cmくらいです。
これだけでも楽しいのですが、最初のミッションはセンサーは使わないので、とりあえずサンプルプログラムを動かしてみます。
プログラムが表示されている状態で右下の三角ボタンを押すとロボット側にプログラムがダウンロードされ、そのまま実行されます。
こんな感じで、ミッション通りタイヤをふっとばすことができました!
完璧です!
コードの説明
ダウンロードしてきたコードを実行しただけでミッションがクリアできるようになっているようですが、コードの中身も少し見てみます。
左についている番号は説明のために画像上に追加したもので、画面上では表示されません。
①でプログラム開始。
②はロボットの液晶画面を制御します。目のような表示をしています。
③でキャタピラーの速度を設定し、④でキャタピラーのモーターを動かします。まずは前に動かしています。
⑤でバイブレード・ブレンダーの速度を設定し、⑥でモーターを動かしてタイヤを飛ばします。
⑦でキャタピラーを後ろに動かしてバックさせます。
最後に⑧で音を鳴らして⑨で終了です。
こんな感じでScratch風のブロックの組み合わせで動作させていきます。
慣れるまではダウンロードしたプログラムをもとに色々変更してみるのがよいかもしれません。
次のミッション
次のミッション(TRACK3R 02)は、前につける部品が代わり、バズーカ砲になります。バズーカ砲も組み立て図がソフトウェア上で見れるので、見ながら組み立てます。
動作はこんな感じです。小学男子が好きそうなやつで、結構楽しいです。(玉がまあまあ速いので小さい子とかは注意)
コードも貼っておきます~
最初のコードは前後移動だけでしたが、今度はキャタピラーの向きの設定が追加されていて、方向転換できるようになります。
こんな漢字で、チュートリアル的にミッションをクリアしながら新しい機能を実装していく感じになります。
ダウンロードしただけで完成してしまうのは便利ですがちょっと物足りないので、慣れてきたらミッションを確認したらダウンロードせずにプログラムを組んでみるのも良いと思います。
下図のように、画面左側にはそのミッションで必要なブロックだけが用意されているので、その組み合わせでプログラムを作っていきます。
他にもいろいろできそう
ちなみに、ミッションではなく新規プロジェクトを開くと、もっとたくさんのブロックが使えます。
例えばセンサーを使ったイベントトリガーとか、
Scratchでもおなじみ制御構文だったり、
演算も使えます。何に使うんだろう。。
これら組み合わせたら色々制御ができますね。センサーと組み合わせて自走ロボットも作れそうな感じです。ミッションをクリアしていったら全部できるようになるのかもしれませんね。
このミッションはガンガン進めそうな気もするのですが、ミッションに必要な部品の組み立てがそこそこ難しいので、一気に進めるのは子供にはちょっと大変かもしれません。
まあ一気にやっても飽きてしまうだけなので、少しずつ進めていこうかと思っています。
もし何かすんごいロボットが出来たらまた紹介したいと思います。
最後まで読んでいただきありがとうございました。
最後まで読んで頂き、ありがとうございました。