レゴでプログラミング|ジャイロボーイ編(ジャイロボーイが立たない失敗談も含めて)

スポンサーリンク

今回はマインドストームEV3の基本モデルセットにあるジャイロボーイについて紹介したいと思います。

まず最初にジャイロボーイって名前がなんとも可愛いですが、ジャイロボーイとはジャイロセンサーを使ってロボットを直立させ、移動させるという高度な技術を使ったロボットです。

2本足がタイヤになっていて、普通どう考えても直立しそうにないロボットですが、それをプログラミングを使って制御することにより立たせる事が出来ます。

ジャイロセンサーとは何か?

ウィキペディアによりますと、”物体の角度や角速度あるいは角加速度を測定する装置”とあります。様々な工業製品に使われていて、ロケットや車、カーナビ、スマホ、デジカメなどに欠かせないセンサーとなっています。

その他、Mモーターやカラーセンサー、超音波センサー、タッチセンサー、マインドストームEV3基本モデルに入っている全てのセンサーをフル動員して作る本格的なロボットです。

ここまで来るとテレビで見るロボットコンテストに近い動きを見ることが出来るのでワクワク感が半端ないです。(もちろん細かい原理については全く理解できませんが・・・)

あくまでロボットの動きを制御するとう初歩の初歩を体験することが出来ます。

では実際に作って行きましょう。

作り方はいつもの通りクラスルームの中にある組み立て方法に沿って組み立てて行きます。

まず初めはジャイロボーイを座らせる台座を作ります。

赤、青、黄、緑の色のブロックが付いた台座が出来ました。

後々この色をジャイロボーイのカラーセンサーに認識させて、前進させたり、停止させたりするために使います。

続いてジャイロボーイ本体を作って行きます。

先ずは足の部分から。

片足ですが、こんな感じに組み立てられます。

どことなく、ガンダムの足が完成された時のワクワク感がありますね。(ガンダム世代なもんで・・・)

続いて両足が完成しました。

なんとなく形が見えてくるとどんどん組み立てて行きたくなりますが、昔と違って説明書を理解するスピードも遅くなっているので(レゴ世代では無いので)ここまでで1時間ぐらい掛ってしまいました。

いよいよ各センサーと取り付けていきます。

ちょっと分かりづらいかもしれませんが、上の写真には3つのセンサー(長方形の四角い物体)が付いていて、タイヤ側からジャイロセンサー、タッチセンサー、Mモーターが取り付けてあります。

さらにジャイロセンサーとタッチセンサーには25cmのケーブルが取り付けてあります。

さらに両足に25cmのケーブルを取り付けるとなんだかコードがごちゃごちゃしてしまって複雑になりました。ほんとにこれで組み立てられるのか不安になります。

ただ、ここからはファームウェアを上に載せて、右手にカラーセンサー、左手に超音波センサーを取り付ければ完成です。完成まで約2時間ほどかかりました。

各ケーブルをファームウェアのどのポートに差し込むかが大変重要になってきます。実際自分もジャイロセンサーとタッチセンサーの差し込むポートが逆になっていて、最初上手く動きませんでした。

通常は向かって左足のケーブルをAポート、右足をDポート。ジャイロセンサーを2ポート、タッチセンサーを3ポート、カラーセンサーを1ポート、超音波センサーを4ポートに差し込みます。

完成した姿を見ると、いよいよ動かせることが出来るんだー、というワクワク感が湧き起こってきます。

制御プログラムに関しては、クラスルームの中にサンプルプログラムが入っているのでそれをファームウェアにダウンロードします。(とても自分でプログラム出来る技術も能力もありませんので・・・)

ではいよいよダウンロードしてスタートボタンを押してみました、すると・・・。

いきなり凄いスピードで後進し始めて倒れてしまいました(O_O)

あれ、何が悪いんだろう?と原因が分からず、かと言って一つ一つのプログラミングを見ても訳が分からないので、ケーブルを抜き差ししたり、ファームウェアを最新のバージョンに更新したりもしてみたのですが、それでも上手くいきませんでした。

完全に行き詰まってしまった自分としては手の施しようがなくて数日諦めていたのですが、ネットで検索するとレゴマインドストームのLabWIEWを使ったプログラミングがあったので試しにそちらのソフトウェアを使ってファーウェアと接続してみました。

クラスルームのプログラミングがブロックを組み合わせるプログラミングに対してLabWIEWは各センサーが視覚的に見えて、どのポートに繋がっているかがすぐに分かります。

また各センサーの状態が数値で分かり、明らかにおかしい数値が計測されていたらリセットすることが出来ます。

より工業用に特化したプログラミングソフトという感じを受けます。

そこで分かったことが先ほど書いた、ジャイロセンサーとタッチセンサーのポートが逆になっていることでした。

ジャイロセンサーの表示のポートが本来2であるはずが3になっていたのです。視覚的にジャイロセンサーのブロックだと分かるから発見できたことです。

さらに細かく見ていくと、ジャイロセンサーの測定方法が角度、角速度が選択出来て、タイヤの回転も角度と回転が選べます。

それがプログラミングで使われている測定方法と実際のセンサー測定方法が違う事を発見しました。

そこで、リセット処理を行い、プログラミングで使われている変数と実際のセンサーの変数を合わせました。

するとこんな感じに動きました。

赤ちゃんが初めて立ち上がるような、よちよちした動きがなんとも可愛いです。

なにはともあれ無事立ち上がることが出来て良かったです。

今回はジャイロボーイを組み立てて、サンプルプログラムを送って制御したのですが今後はどのような仕組みで制御出来るのか学んでいけたらと思っています。

コメント

タイトルとURLをコピーしました