obd2

CAN

RX-8リアルタイム情報をグラフを使ってもっと分かりやすく表示してみる

RX-8リアルタイム情報をグラフを使ってもっと分かりやすく表示してみる 前回の動画でアイドリング時の燃費について動画にしたわけですが、アイドリング時ってことで信号待ちばかりで見ている人には退屈な動画になってしまいました^^;そこで、きちんと走っているところを取り出して再編集。 ただ、単に再編集しても楽しくないのでグラフを一緒に載っけることにしました。これで、一瞬で数値が変わってしまうものでもいろいろ比較できます。
CAN

RX-8車載動画にリアルタイム燃費情報を表示して懐具合に思いを馳せる

RX-8車載動画にリアルタイム燃費情報を表示して懐具合に思いを馳せる というわけで、今度はRX-8の燃料消費状況をモニターして、リアルタイムの燃費情報を車載動画に重ね合わせてみました。 吹かしたときに燃料を消費するのは体感的にも理解できるのですが、信号待ちなどアイドリング時にこれほどまでに燃料を使うのかと驚きました。百聞は一見にしかず、ですね。
CAN

On-vehicle movie overlaying vehicle information using CANUSB

I overlaid various vehicle information (i.e. speed, rpm, and so on) extracted by CANUSB on my on-vehicle movie. HS-CAN Data At first, I tried to use information posted byMadox.NET, but unfortunately HS-CAN Data extracted by my RX-8 look totally different from Madox's one. I'm not sure why there are big differences. But one possible reason is that Madox's RX-8 is AT. My RX-8 is 2007 5MT model. RPM: ID 0x201, (data * 256 + data) / 4Vehicle Speed(km/h): ID 0x201, (data * 256 + data - 10000) / 100Ac...
CAN

CAN + Quartz Composer + 車載動画 = PS4動画?

RX-8 CANデータと車載動画を組み合わせてPS4的動画を作る CANデータを使った動画、もう少し派手めに...ということで、作ってみました。 といっても、CANのデータからいちいち速度などの情報を手で入力していては日がくれてしまうので、それらを自動でレンダリングする術を考えなければなりません。 今回は、Quartz Composerのカスタムパッチを作ることでCANログをQuartz Composerに取り込むことにしました。 Quartz Composer? Quartz Composerは、いわゆるビジュアルプログラミング環境です。Mac OS Xの開発環境(無料)に同梱されています。 これを使うと簡単にモーショングラフィクスを作成できるのですが、当然のことながらCANデータログを読み込んでくれるようなパッチはありませんので、それを自作することにしました。 昔はカスタムパッチの作成手順は公開されていなかったので面倒でしたが、今はオフィシャルの情報をたどると簡単に作ることができます。 Objective-C 2.0のプロパティなどを使うことで、パッチのポートの宣言なども煩雑になら...
CAN

CANUSBを使ってRX-8の各種データを取り出してみる

前回のエントリまで使っていたELM327チップですが、どうも全てのデータのログを取ろうとするとバッファが溢れてしまうようで...。ただせっかく乗りかかった船なので、CANUSBという代物を購入してRX-8のデータをリアルタイムに取り出してみることにしました。 上記の画像においてグラフの意味は以下の通りです。 赤 線:車速 青 線:エンジン回転数 紫 線:ラジエータ水温 水色線:エアインテーク温度 黄色線:アクセル開度 赤領域:フットブレーキを踏んでいる 青領域:クラッチが切れている 緑領域:(高さに合わせて)ギアポジション CANはまぁここでは車内LANのようなものだと考えておけばいいと思います。自動車内のコンピュータとその他センサや計器類との間で情報をやり取りするときのプロトコルなのですが、特徴の一つはブロードキャストだということです。 なので、OBD-IIのようにポーリングしてデータを取り出すのと違い、ネットワーク内を流れているデータであれば「盗み聞き」することができるため、車内コンピュータへの負荷が(おそらく)ありません。 コンピュータに負荷がかかった場合にもおそらくフェイルセー...
CAN

RX-8とOBD-IIでお話をする – シリアル接続プログラミング

前回のエントリでELM327デバイスが動作することを確認したので、今回は簡単なプログラミングをしてみようと思います。 Bluetooth版のデバイスを自分は選んだので、BluetoothのRFCOMMを利用することになります。今回はJavaでプログラミングをすることにし、BluetoothライブラリはBluecoveを利用します。 実際のプログラミングのフローは以下のようになるかと思います。 Bluetoothデバイスを探索する探索が完了したらそのデバイスをオープンするELM327の初期化ELM327にリクエストを発行ELM327から受け取ったレスポンスをparseする4に戻る デバイス探索に関してははじめに一度だけ行い、二度目からはBluetoothアドレスなどを保持しておけば再度行う必要はありません。また、2以降はおおむね他のシリアルデバイスでも同じ手順になるはずです。 デバイスのオープンはBluetoothの場合は以下のようになります。 String url = "btspp://XXXXXXXXXXXX:1;authenticate=false;encrypt=false;ma...
CAN

RX-8とOBD-IIでお話をする – 動作確認

ELM327の載ったデバイスを手に入れたので、今エントリでは実際に自動車に取り付けて動作確認をしたいと思います。 前回のエントリで自分はBluetooth版デバイスを買いましたが、基本的にデバイスとお話しする方法はシリアル通信となります。RS-232C接続(つまりシリアル接続)の場合には該当するデバイスとお話をすればいいですし、USBやBluetoothの場合、各OSで仮想的なシリアルデバイスを作成できます(WindowsだったらCOM1とか、Macだったら/dev/tty.*とか)。 MacだとBluetoothで仮想デバイスを使って常にお話しするのはどうも安定性に欠けるようなのですが(Snow Leopardは長く試してないので改善しているかもしれません)、いずれにせよ動作確認のためだけであれば問題ないでしょう。 普通だったらここで実際に配布されているソフトウェアを使って動作確認をするのでしょうが、自分の場合は(それだとつまらないので)実際にターミナル経由でデバイスと直接お話をしてみることにします。 プロトコル ELM327は古き良きATコマンドを含む対話型のインタフェースを提供し...
CAN

RX-8とOBD-IIでお話をする – 準備

久々の投稿です。 OBD-IIという自動車のコネクタを通した各社共通の診断プロトコルがあるのですが、そいつを日曜プログラマでも簡単に扱えるようにするELM327というチップが存在することを知りました。 そして、そのチップを使ってシリアルやらUSB、Bluetoothなどでパソコンからお話をするデバイスもいくつか売り出されているようです。これを使うと、エンジン回転数や速度などの基本情報、それにエンジン温度や瞬間燃費等の普通は知ることのない情報をリアルタイムに取得することができるようになります。 え、そういうのだったら既に売ってるって? ええ、BLITZ R-VITとかそうですよね。仕組みはまさに同じなのですが、自分でのプログラミングだと簡単にログをとったりいろいろ遊ぶことができます。逆にそういった加工をしないのであればこちらの製品のほうが手っ取り早いと思います。 自分の場合は、パソコンと連携していろいろやってみたかったってことと、どうせすぐに飽きるのに4万とか5万とか出せないので自作することにしました。OBD-IIから情報を取り出すだけなら5000円くらいのパーツだけで済んでしまいますの...
スポンサーリンク