*

C言語でEV3開発(22)-ロギング機能

公開日: : 最終更新日:2017/08/16 マインドストーム/EV3, 開発

どもです。
前回は、モーターの出力を制御する方法について記載しました。その際に、モータ/車体が期待通りに動かず、その解決のために、データの記録と解析が必要という結論に至りました。
なので今回は、このデータの記録方法について、記載します。

1.ログデータのフォーマット
一言で書けば「CSV」形式です。
以上!

2.記録するデータ
今回の解析のために、

・左右のモーター出力指示値
・左右のモーター出力動作値
・左右のモーター出力目標値
・左右のモーターのPID計算値
・超音波センサーの読取値
・超音波センサーの平均値

を記録するようにします

3.ログの方法
Ev3RTでは、標準Cライブラリが使用できます。なので、データの書き込みのためには、この標準関数を使用します。特別なこと、難しいこと、特筆すべきことは何もありません。
ええ、特筆すべきことは何もありません。

実装は、下記の通りです。
(左右のモーター出力指示値~左右の出力目標値)

(左右のモーターのPID制御値)

(超音波センサの読取値、および平均値)

4.ログを録ってみた
上記の実装を追加したアプリケーションを動作させてみました。

このときの動作のログは、下記の通りです。
超音波センサのログ
モーター値
モータ動作/指示値

モーター動作値を見てみると、左右のモーター出力値/動作値に違いはほとんどありません。あったとしても、ノイズ程度のものです。しかし、動画を見てみると、少しずつですが、右側に曲がっているのが分かります。
このことから、曲がってしまった原因は、車体ではなく、車体の走行環境にあることが考えられます。
(カーペットがデコボコしていたのが悪い?)

また、今回のデータでは、前回の動画でドリフト(?)らしき動きについては、説明がつきません。
停止間際に、「くいっ」と曲がるのは何でなんだか…。
この件については、引き続き調査していきます。

ではっ!

(追記)
上記の機能を追加したソースコード一式を、公開しました。
https://github.com/CountrySideEngineer/Ev3MindStormCar/releases/tag/TAG_DEV_EV3_C_VER_1_0

関連記事

toppers

C言語でEV3開発(19)-コマンド通信処理でEchoBackしてみた

どもです。 前回は、Bluetoothの接続状態の変化に伴う、状態遷移について書きました。 今回

記事を読む

toppers

C言語でEV3開発(24)-APIの実行時間を測定してみた。

どもです。 今回、以前から気になっていた、開発環境/プラットフォームであるTOPPERS HRP2

記事を読む

ADT7310_DHT11_eye_catch

温度センサの出力値の比較

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

記事を読む

no image

Windows/EclipseでRaspberryPiのクロス環境を構築してみた

どもです。 今回は、Windows/EclipseでRaspberry Piのクロス環境を構築した

記事を読む

think_about_utest

単体テストの効率化を考える(2)-スタブの戻り値

どもです。 「単体テストの効率化について考える」の2回目です。 (1回目はコチラ:単体テスト

記事を読む

no image

C言語でEV3開発(11)-opOUTPUT_STEP_POWERコマンド

どもです。 今回のエントリーでは、再びモーターを動かすためのコマンドについて書きます。 コマンド

記事を読む

no image

C言語でEV3開発(4)

どもです。 今回のエントリーは、前回のエントリー内容/EclipseでEV3の実行ファイルをビルド

記事を読む

think_about_utest

VisualStudioで実行した単体テストの結果の出力(3)-テスト実行からレポート生成までをツールで自動化

どもです。 前々回、前回と、VisualStudio/C#での単体テストの効率化について書いて

記事を読む

python

VisualStudioCommunityでのPython開発環境構築

どもです。 最近、VisualStudioでのPython開発を始めました。 その際の環境構築に

記事を読む

no image

C言語でEV3開発(12)-opOUTPUT_TIME_POWERコマンド

どもです。 今回のエントリーでは、これまた前回に引き続き、モーターを動かすためのコマンドについて書

記事を読む

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="">

c_sharp_eye_catch
セルに「取り消し線」が設定されているかを判定してみた

どもです。 前回、前々回と、エクセルのセル内の文字列から、「取り

c_sharp_eye_catch
セル内の「取り消し線で消された文字列」の削除を簡単にしてみた

どもです。 前回、C#/OpenXmlを用いて、エクセルのセル内

c_sharp_eye_catch
セル内の「取り消し線で消された文字列」を削除してみた

どもです。 今回は、C#/OpenXmlの組み合わせで、エクセル

c_sharp_eye_catch
C#でバッファの内容を表示する処理を実装してみた-
データ型に従って動的に書式を設定する

どもです。 最近、C#でバッファ/配列の値をコンソールに表示した

arduino_relay_switch_003_self_preservation_circuit_eye_catch
Arduinoでリレースイッチ(3)-自己保存回路

どもです。 前回の記事で、リレースイッチ「AE-G5V-DRV」

→もっと見る

PAGE TOP ↑