車体データ取得 その2のつづき
以前にシビックのCANに流れているデータを細かい周期で取得することができましたが、
PCをつないでロギングしていたのでPCが邪魔でした。
今回はUSBアクセスモジュールを使って、PCを接続せずにUSBメモリにログを残すようにしました。
ちょうど、シリアルで送信したデータをUSBメモリに保存してくれる
モジュールを買っておいたので、
それを使用してみました。
FAT32形式でファイルの保存が可能で、シリアル通信により簡単なコマンドで制御できるので、
いろいろ使い勝手がありそうです。
USBモジュールへ送るデータは、dsPICの開発環境を使って、
車体のOBDカプラからCANの信号を取り出し、
保存したいデータをシリアルでUSBモジュールへ送信するようにしました。
右がdsPICの開発環境、左がUSBモジュール
保存するデータは、「タイムスタンプ(ms)」、「エンジン回転数」、「アクセル開度」、「車速」の4つです。
今回はこの4つのデータを、10msの周期でcsvのテキスト形式で保存するようにプログラムしました。
USBモジュールとのシリアル通信速度は、115.2kbpsに設定して、
10msのタスク周期では25Byte送るのが限界でした。
今のところ10msではあまり多くのデータは送ることができません。
バイナリ形式のデータにするとか、保存するデータに応じて周期を長くする等の工夫をすれば、
もうちょっと増やせると思います。
USBモジュールへコマンドやデータを送信すると、
PCで見れるテキストファイルが出来上がるので、これをエクセル等でグラフにすると、
細かいデータが見れるようになります。
15分ロギングすると、1934KBのテクストファイルが出来上がります。

最初の山が1速→2速、次の尖った山が2速→3速という具合に、
6速までシフトアップする様子がちゃんと取れているようです。
※青が回転数、赤がアクセル開度、緑が車速
※回転数(rpm)が右側の軸、アクセル開度(%)と車速(km/h)が左側の軸

10ms周期で保存しているので、拡大するとクラッチをつなぐタイミングで車速が変動しているのがよくわかります。(1速→2速の山を拡大)
こうやって見てみると、ドライバー特有の癖を発見できたりすると思います。
プロのドライバーに自分の車を運転してもらって、
そのログデータと自分のデータとの違いを比較したりすると、面白いかもしれませんね。
簡単にデータを保存できる環境があるといろいろ便利なので、
他の用途も考えてみようと思います。
ブログ一覧 |
車(シビック) | クルマ
Posted at
2010/09/02 01:00:03