久々の投稿です。
OBD-IIという自動車のコネクタを通した各社共通の診断プロトコルがあるのですが、そいつを日曜プログラマでも簡単に扱えるようにするELM327というチップが存在することを知りました。 そして、そのチップを使ってシリアルやらUSB、Bluetoothなどでパソコンからお話をするデバイスもいくつか売り出されているようです。これを使うと、エンジン回転数や速度などの基本情報、それにエンジン温度や瞬間燃費等の普通は知ることのない情報をリアルタイムに取得することができるようになります。
え、そういうのだったら既に売ってるって? ええ、BLITZ R-VITとかそうですよね。仕組みはまさに同じなのですが、自分でのプログラミングだと簡単にログをとったりいろいろ遊ぶことができます。逆にそういった加工をしないのであればこちらの製品のほうが手っ取り早いと思います。 自分の場合は、パソコンと連携していろいろやってみたかったってことと、どうせすぐに飽きるのに4万とか5万とか出せないので自作することにしました。OBD-IIから情報を取り出すだけなら5000円くらいのパーツだけで済んでしまいますので。
というわけで、この投稿から数回にわたってELM327を使って車とお話しするアプリ製作の備忘録を書いていこうと思います。
今回は、ELM327を搭載したデバイスを手に入れるフェーズに関して記載します。
デバイスの選択
ELM327は、(ちょっとプログラムを組むには面倒な)OBD-IIプロトコルを、シリアルコンソールを用いて容易に自動車とお話しすることができるようにするICチップです。 ELM Electronicsという会社が作っていて、オンライン上にはELM327 のデータシートやクイックリファレンスシートなどもあります。これらはプログラム作成時に利用します。
このELM327を使ったデバイスであれば基本的にどのデバイスでもデータを読み出せます。実際にUSB、RS-232C接続、Bluetoothなど、多くのバリエーションが存在します。そんな中で、自分は以下の理由からBluetooth版を選択しました。
- 出来るだけ車内に配線を這わせたくない
- 自分の車(RX-8)の場合、運転席ハンドル下部に端子があるため、何らかの拍子にケーブルなどが外れた場合にアクセルやブレーキに巻き込まないか心配
- Macを使っているので、USB版はドライバが存在しない可能性がある。それにひきかえBluetoothはSPP (Serial Port Protocol)経由でデータを読み込むためドライバは不要
- Bluetoothの弱点は電気をよく食べることですが、それもダイナモが動いてるときしか食わないのでバッテリもあがらないはず
- ELM327はECUのデータ書き換えなどの機能はないので、万が一(無線なので)外部からいじられても大した被害にはならない。
ただまぁ、プログラミングのし易さで言えば有線の方が簡単ですし安定するはずです。どれを選ぶかはオーナー次第ですね。
デバイスの購入
そんなわけで、自分はBluetooth版のものを購入することにしました。Googleでいろいろ調べたところ、deal extremeという会社で売っていたELM327 Bluetooth OBD-II Wireless Transceiver Dongleを見つけたので、これを購入することにしました。deal extremeはPayPalを使って決済が出来るので、海外のサイトにクレジットカード番号を教えたくない、という人でも安心だと思います(自分はあまり躊躇しないで買ってしまいますが)。 金額は55ドルほど。2009年末に注文をしたのですが、円高でしたので助かりました。PayPalはドル決済と円決済を選べるようですが、ドル-円レートはクレジットカード会社のもののほうがだいぶ良かったので、PayPalではドル決済を選びました。なお、送料は無料です。
この会社、倉庫は香港にあるようで、商品出荷時には国際郵便の追跡コードをメールで知らせてくれます。自分の場合、出荷してからだいたい一週間で届きました(出荷まで半月くらいかかってましたが…)。
この青い部分が本体です。CDにいろいろソフトが入っているようですが、今回は使いません。いきなりプログラミングです。 そのプログラミングは次回以降に。