Deprecated: 関数 seems_utf8 は、バージョン 6.9.0 から非推奨になりました ! 代わりに wp_is_valid_utf8() を使用してください。 in /home/afrel/afrel.xsrv.jp/public_html/afcms/wp-includes/functions.php on line 6131

Deprecated: 関数 seems_utf8 は、バージョン 6.9.0 から非推奨になりました ! 代わりに wp_is_valid_utf8() を使用してください。 in /home/afrel/afrel.xsrv.jp/public_html/afcms/wp-includes/functions.php on line 6131

Deprecated: 関数 seems_utf8 は、バージョン 6.9.0 から非推奨になりました ! 代わりに wp_is_valid_utf8() を使用してください。 in /home/afrel/afrel.xsrv.jp/public_html/afcms/wp-includes/functions.php on line 6131

Deprecated: 関数 seems_utf8 は、バージョン 6.9.0 から非推奨になりました ! 代わりに wp_is_valid_utf8() を使用してください。 in /home/afrel/afrel.xsrv.jp/public_html/afcms/wp-includes/functions.php on line 6131

Deprecated: 関数 seems_utf8 は、バージョン 6.9.0 から非推奨になりました ! 代わりに wp_is_valid_utf8() を使用してください。 in /home/afrel/afrel.xsrv.jp/public_html/afcms/wp-includes/functions.php on line 6131

Deprecated: 関数 seems_utf8 は、バージョン 6.9.0 から非推奨になりました ! 代わりに wp_is_valid_utf8() を使用してください。 in /home/afrel/afrel.xsrv.jp/public_html/afcms/wp-includes/functions.php on line 6131

Deprecated: 関数 seems_utf8 は、バージョン 6.9.0 から非推奨になりました ! 代わりに wp_is_valid_utf8() を使用してください。 in /home/afrel/afrel.xsrv.jp/public_html/afcms/wp-includes/functions.php on line 6131

Deprecated: 関数 seems_utf8 は、バージョン 6.9.0 から非推奨になりました ! 代わりに wp_is_valid_utf8() を使用してください。 in /home/afrel/afrel.xsrv.jp/public_html/afcms/wp-includes/functions.php on line 6131
008-1.EV3ソフトウェア入門-第9回「モーターについて」 | AFREL TECH BLOG |(株)アフレル
Warning: Undefined variable $wp in /home/afrel/afrel.xsrv.jp/public_html/afcms/wp-content/themes/afrel/functions.php on line 1997

Warning: Attempt to read property "request" on null in /home/afrel/afrel.xsrv.jp/public_html/afcms/wp-content/themes/afrel/functions.php on line 1997

Deprecated: strstr(): Passing null to parameter #1 ($haystack) of type string is deprecated in /home/afrel/afrel.xsrv.jp/public_html/afcms/wp-includes/functions.php on line 1154

Deprecated: stripos(): Passing null to parameter #1 ($haystack) of type string is deprecated in /home/afrel/afrel.xsrv.jp/public_html/afcms/wp-includes/functions.php on line 1161

Deprecated: stripos(): Passing null to parameter #1 ($haystack) of type string is deprecated in /home/afrel/afrel.xsrv.jp/public_html/afcms/wp-includes/functions.php on line 1164

Deprecated: str_contains(): Passing null to parameter #1 ($haystack) of type string is deprecated in /home/afrel/afrel.xsrv.jp/public_html/afcms/wp-includes/functions.php on line 1171

Deprecated: str_contains(): Passing null to parameter #1 ($haystack) of type string is deprecated in /home/afrel/afrel.xsrv.jp/public_html/afcms/wp-includes/functions.php on line 1174

Notice: 関数 WP_Scripts::add が誤って呼び出されました。ハンドル「wpcf7-recaptcha」のスクリプトは、未登録の依存関係とともにキューへ追加されました: google-recaptcha。 詳しくは WordPress のデバッグをご覧ください。 (このメッセージはバージョン 6.9.1 で追加されました) in /home/afrel/afrel.xsrv.jp/public_html/afcms/wp-includes/functions.php on line 6131

Deprecated: 関数 seems_utf8 は、バージョン 6.9.0 から非推奨になりました ! 代わりに wp_is_valid_utf8() を使用してください。 in /home/afrel/afrel.xsrv.jp/public_html/afcms/wp-includes/functions.php on line 6131

Deprecated: 関数 seems_utf8 は、バージョン 6.9.0 から非推奨になりました ! 代わりに wp_is_valid_utf8() を使用してください。 in /home/afrel/afrel.xsrv.jp/public_html/afcms/wp-includes/functions.php on line 6131

Deprecated: 関数 seems_utf8 は、バージョン 6.9.0 から非推奨になりました ! 代わりに wp_is_valid_utf8() を使用してください。 in /home/afrel/afrel.xsrv.jp/public_html/afcms/wp-includes/functions.php on line 6131

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ソフトウェア用)

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


Deprecated: 関数 seems_utf8 は、バージョン 6.9.0 から非推奨になりました ! 代わりに wp_is_valid_utf8() を使用してください。 in /home/afrel/afrel.xsrv.jp/public_html/afcms/wp-includes/functions.php on line 6131

Deprecated: 関数 seems_utf8 は、バージョン 6.9.0 から非推奨になりました ! 代わりに wp_is_valid_utf8() を使用してください。 in /home/afrel/afrel.xsrv.jp/public_html/afcms/wp-includes/functions.php on line 6131

Deprecated: 関数 seems_utf8 は、バージョン 6.9.0 から非推奨になりました ! 代わりに wp_is_valid_utf8() を使用してください。 in /home/afrel/afrel.xsrv.jp/public_html/afcms/wp-includes/functions.php on line 6131