*

C言語でEV3開発(23)-モーターの性能確認

公開日: : マインドストーム/EV3, 開発

どもです。
今回は、EV3に付属しているモーター(Lモーター/Mモーター)の性能について調べてみたので、その結果についてのエントリです。

0.動機
これまで、EV3のモーターを色々動かしてきましたが、その中で「Mモーターの出力が50%前後以上にならない」ということが起きています。
そこで、手元にあるEV3のモーターが、本当に公開されている仕様を満たしているのか否かを確認してみることにしました。

1.公開されている仕様
「LEGO MINDOSTORMS EV3 Hardware Development Kit」によれば、各モーターの仕様は下記の通りです。

-Lモーター

-175 RPM
-60 mA

-Mモーター

-260 RPM
-80 mA

特に負荷をかけずにモーターを回転させた際の出力/動作が、上記の仕様を満たしているのかを確認します。

2.検証環境と方法
検証は、下記の環境で実施します。

- PC

– CPU:i7-3770K CPU 3.50GHz
– メモリ:16.0GB
– OS:Windows7 Professional SP1(64bit)

- EV3

- OS:TOPPERS EV3RT Beta-7-release

また、モーターの動作は、実行するたびに変化し、毎回必ず同じ値になるとは限りません。
そのため、複数回試行し、その平均値が仕様に記載された値を確認します。

3.検証用アプリケーション
検証のためのアプリケーションは、下記に記載するような、非常にシンプルなものです。

– メインのタスク
– ポートなど、各種の初期化と、周期タスクの開始と停止
– 100msec定周期タスク
– そのときのモーター出力とモーター角の取得と、ログファイルへの出力
– 1sec定周期タスク
– モーター出力値の決定と設定
– モーター出力は、「0%」から開始して「100%」まで「5%」ごとに変化
– 「100%」に到達した後は、「-100%」まで「5%」ごとに変化
– 「-100%」に到達した後は、「0%」まで「5%」ごとに変化

実際の検証用アプリケーションのコードは、下記の通りです。

4.実行結果
上記のアプリケーションを実行、その10回の試行の結果の平均値(出力指定値と動作値)をグラフ化した図が、下記の通りです。

Mモーターの平均値(1)

Mモーターの平均値(1)


Mモーターの平均値(2)

Mモーターの平均値(2)


Lモーターの平均値

Lモーターの平均値


このグラフを見て分かる通り、M-モーターの出力指示値が50%以上/-50%以下になったくらいから、モーター出力値が変化しなくなっています。
そこで、このときのモーターの回転数を確認します。
確認した結果のグラフは、数の通りです。

Mモーターの回転数の平均値(1)

Mモーターの回転数の平均値(1)


Mモーターの回転数の平均値(2)

Mモーターの回転数の平均値(2)

このグラフから見ると、モーターの回転数は、おおよそ150RPM/-150RPMです。
これは、M-モーターの仕様に記載された値に非常に近い値です。
そのため、これは正常な値であると考えられます。
また、違う見方をすると、モーターの出力値が100%になった場合、単純計算でモーターの回転数は300RPM程度になります。
これは、仕様の内容とかけ離れた値になります。

次にL-モーターの動きを見ます。
モーターの出力値指示値を、出力値が追従しています。
また、モーターの回転数については、おおよそ200RPMであり、これは仕様に記載された値と一致しません。

Lモーターの回転数の平均値

Lモーターの回転数の平均値

5.確認結果の考察
TOPPERS のAPIでは、モーターの出力は、「-100%」から「100%」の範囲で出力を指定できます。
しかし、この範囲での出力の指定は、実際のモーターの出力の割合とは一致しません。
現状、モーターの出力を制御するためのAPIは限られています。そのため、「APIで指定した出力と実際の出力は必ずしも一致しない」ということを念頭において、APIを使用する必要がありそうです。

6.公開しています
今回のエントリーで作成したコード、およびテストデータについては、GitHubで公開しています。

以上、今回はEV3のモーターの出力について確認しました。
次は…何をしよう?

ではっ!

関連記事

no image

C言語でEV3開発(14)-opOUTPUT_TIME_SPEEDコマンド

どもです。 今回のエントリーは、モーターを動かすコマンドである「opOUTPUT_TIME_SPE

記事を読む

raspberry-pi

ライブラリでRasPiのピンにアクセス(1)-ライブラリを作ります

どもです。 これまでこのブログでは、RaspberryPiのGPIOとかSPIを使用したアプリ

記事を読む

no image

Objective-CからC++コードを呼び出す

どもどもです。 今回は、突然ながらMacに関係する投稿です。 ソフト関係のことを勉強していて

記事を読む

GitHub

Windowsでのカバレッジ測定-OpenCppCoverageを使ってみた(2)

どもです。 前回のエントリーで、OpenCppCoverageというカバレッジを測定する、フリーの

記事を読む

toppers

C言語でEV3開発(26)-EV3で機械学習(1)-QLearningをC#に委譲してみた

どもです。 前回の投稿では、Q-LearningをEV3本体に実装してみたら、メモリが足りなくて動

記事を読む

iot_at_home_eye_catch

IoT開発(4)-ESP-WROOM-02を電池で駆動

どもです。 この記事は、以下の記事の続きです。 IoT開発(1)-ESP-WROOM-02の

記事を読む

SEN0193_0114_eye_catch

土壌湿度センサーの出力値の比較:SEN0114とSEN0193

どもです。 今回も、センサーの性能、測定結果を比較してみた結果について書きます。 1.比較し

記事を読む

MY_MFC_LOGO

MFCプログラミング(1):CFileまたはCStdioFileクラスを使用してファイル出力

どもです。 突然ですが、仕事でMFCを使用することになりました。 MFCはこれまで触ったことがな

記事を読む

no image

Windows-QtCreatorでのデバッグ

どもです。 更新の間隔が空いてしまいました。 久しぶりの更新です。 最近、Qtを触り始めま

記事を読む

RasPi_Qt

QtでRaspberryPi/GUI開発(8):pigpioを使用したチャタリング対策の問題の対策

どもです。 だいぶ、間が空いてしまいました。 久しぶりの更新です。 前回のエントリーで、「

記事を読む

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA


次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">

arduino_relay_switch_002_ae_g5v_drv_eye_catch
Arduinoでリレースイッチ(2)-AE-G5V-DRV

どもです。 前回の記事では、「フォトカプラリレー」を使用したLチ

tlp222af_001_eye_catch
Arduinoでリレースイッチ(1)-TLP222AF

どもです。 つい先日、やっとのことでリレースイッチを手に入れるこ

c_sharp_eye_catch
外部からMariaDbにアクセスする(2)-C#からMariaDbにアクセスする。

どもです。 前回のエントリで、外部からMariaDbにアクセスす

c_sharp_eye_catch
外部からMariaDbにアクセスする(1)-データベースの設定

どもです。 今回は、Linux上のMariaDbにWindows

think_about_utest
middle_unit
最小…よりも(ほんの)少し大きいテストフレームワーク

どもです。 今回は、単体テストのフレームワークについて書きます。

→もっと見る

PAGE TOP ↑