2024年11月21日

008-1.EV3ソフトウェア入門-第9回「モーターについて」

新シリーズのレゴマインドストームである「教育用レゴマインドストームEV3」を使ったプログラミング環境「EV3ソフトウェア」について紹介していきたいと思います。(文/松原拓也)

◆ モーターの回転速度を測る

「パワー100でモーターを回しているのに速くならない」
という問い合わせを頂いたので調べてみました。

こちらが、EV3用に使われている「Lモーター」です。
LモーターはNXT用のインテリジェントサーボモーターと同一の性能です。回路も同じ。AUTO IDも同じです。ただし、取り付けの穴の位置だけが少し違います。

ソフトウェアの面では、NXTとEV3で少し違います。 NXTソフトウェアでは「パワーコントロール」機能がデフォルトでオフですが、EV3ソフトウェアではパワーコントロールが常にオンになっていて、解除できません。目標とする回転速度のことを「パワー」として使っています。
パワー制御がどのように働いているかを検証するために、写真のような装置を用意しました。 LモーターがポートAに接続されているだけです。 バッテリ残量で結果が変化しないようにACアダプタを付けました。

回転速度(角速度)を計測するためのプログラムを作ってみました。 こちらは、そのプロトタイプです。 モーターを回してから、回転センサーとタイマーをリセットして、1秒後に回転センサーを読み取って表示します。単位は「度」です。 回転センサーの値が大きいほどモーターが速く回転したということになります。

いろいろなパワーで測定したかったので、 プログラムを改造してみました。超大作になってしまいましたが、これで自動的にパワーを変えてくれます。

実行結果です。
パワー20からパワー100までの回転速度(角速度)が表示されました。
パワーを10上げていくと、大体100度/秒くらい速度が上がっていきます。しかし、 パワー90あたりになると限界が見えてきてパワー100とあまり差がありません。
最初の話にあった「パワー100で速くならない」というのは、このことのようです。現象を確認することができました。他に「パワー100にしたら遅くなった」という話も聞いたのですが、それは何かの間違いだと思います。

結論から言うと、モーターブロックのパワーというのは「目標とする回転速度」のことです。エンコーダを使って実際の回転速度を測って、「本当のパワー(電力)」を内部で計算しています。「本当のパワー」は確認することができません。パワー90の時点で「本当のパワー」は100近くに達してるので、速度が上がらなくなっているわけです。
つまりモーターブロックにおいて「パワーは90がいいか?100がいいか?」という議論は意味がないということになります。パワー100付近でパワーを微調整するようなプログラムは作ることができません。
なお、今回はモーターの負荷が無い状態だったのでパワー90まで持ちましたが、負荷の大きい環境だと、もっと早い段階でパワーの限界に突き当たります。

続いての実験です。「モーター」ブロックを「未調整のモーター」ブロックに交換してみました。 「未調整のモーター」はモーターに内蔵されているエンコーダを読まずに「本当のパワー」を設定することができます。エンコーダが入っていないRCX時代の9Vモーターを動かすさいにも、このブロックを使います。

実行すると、こうなりました。
パワーと回転速度がほぼ比例しています。

比べてみました。 最後のパワー100の回転速度はどちらも同じです。ただし、特性が違います。 「未調整のモーター」のほうがパワーと速度が比例しているので、使い勝手が良さそうに見えますが、エンコーダを見ていないので、負荷が加わると回転速度が変わってしまいます。 状況に応じて使うブロックを選ばないといけません。

[DOWNLOAD]今回作成したプログラム(教育用EV3ソフトウェア用)

当ブログの内容は、弊社製品の活用に関する参考情報として提供しております。
記載されている情報は、正確性や動作を保証するものではありません。皆さまの創意工夫やアイデアの一助となれば幸いです。