elm327

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;master=f...
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円くらいのパーツだけで済んでしまいますので。...
スポンサーリンク