OBD2のデータをOLEDディスプレイに表示させてみた(試作)
目的 |
チューニング・カスタム |
作業 |
DIY |
難易度 |
  中級 |
作業時間 |
3時間以内 |
1
2
回路図を書いてみました。今回は128X64のサイズの小さなOLEDディスプレイを2画面使ってOBD2に流れているデータを拾って表示させてみます。
OBD2のデータ取得は他の所有車で散々遊んできたのでその回路を流用しています。基本構成は今回もMicrochip社のCANコントローラーMCP2515とCANトランシーバーMCP2551を使います。マイコンを使ってOLEDディスプレイの表示処理とCAMコントローラーへデータの要求と返信された処理を行って、CANトランシーバーで車両のCAN通信を行ってもらうのが回路の機能です。
3
使用するOLEDディスプレイはAmazonや秋月で500円くらいで売っている汎用のディスプレイです。128X64のドットで画面が表示されます。表示領域として縦15mm 横25mmくらいの小さなディスプレイなので今回はこのディスプレイを2基横に並べて表示させています。
こいつの通信仕様はI2Cという通信プロトコルを使ってディスプレイへ命令を出します。あらかじめ2基のディスプレイを同時に制御できるようになっており基板裏の4.7kΩの抵抗の位置を変えることで表示データを送るディスプレイのアドレス変更ができるようになっています(写真赤丸)。今回は片方のディスプレイの抵抗をずらして双方制御できるようにしてやりました。
4
ディスプレイのドライバーはSSD1306という規格で表示制御されますが、このドライバーは今までに何回か遊びで使ったことはあります。ですがI2C通信での表示は初めてだったのでまずはブレッドボードで仮組とマイコンプログラムを軽く作ってみました。
今回は、水温計・電圧計・エンジン負荷のデータをディスプレイ上に表示させてみようと思っています。
表示されているデータの文字やグラフィックはあらかじめ画像データを数値に変換してプログラムにうまく組み込み表示させます。このテクニックも散々遊んできたので時間もかからず完成しました。大事な過去の遺産ですね。
5
今回作った回路は2基のディスプレイの下に隠れる大きさで収まるように、そして試作品なのでユニバーサル基板で無理やり押し込んでやりました。配線は電源となるACC電源の+とー。OBD2より来るCAN線2本の合計4本とシンプルです。
今回使用したマイコンは、PIC16F1705という8ビットマイコンです。足が14本と少ない数の比較的小さなマイコンを使用しています。
こういうグラフィックを扱うには多くのメモリデータが必要になります。マイコンに保存できるデータ量はかなり小さなものでこのくらいを表示させるためのデータを保存するとあっという間にメモリ領域がいっぱいになります。いかに小さくデータをまとめるかが肝で複雑な計算は避けて簡略化してできるだけプログラムを小さくする工夫が必要です。今回は80%のプログラム容量でまとめました。ですが、残り容量からはあまり大規模な機能はもう追加できません。
6
今回は無理やりディスプレイ2基分の大きさに回路を詰め込んだのでウレタン銅線を使って端子間をハンダ付けして小さく収まるように配置しています。素人ハンダなのでこの先使用中にポロリも多く発生すると思われ、おそらく耐久性はないです。あくまでも試作なので本当に欲しければプリント基板を作ってみようかと思っています。
7
OBD2は運転席左下のコネクタに接続。CAN通信のHighとLowの配線だけを接続します。
コネクタはAliexpressで1個100円くらいで売っていたコネクタを大量買いしたものを使っています。
8
起動時は3秒間ほどホンダとN-ONEロゴをおしゃれ(?)に表示させています。
2〜3日車両に取り付けて走っています。各表示データは1.5秒毎の更新とちょっと遅めですが、正常にデータ表示されています。サイズも小さく見えないかな?と思っていましたが、OLEDなので表示もくっきりしており視認性も思ったより良いです。今はメーター前に取り付けて様子をうかがっていますが。この大きさで配線も4本くらいなので設置場所も選ばないかも。もうちょっと様子を見てこの先進めるかお蔵入りにするか考えます。
[PR]Yahoo!ショッピング
入札多数の人気商品!
[PR]Yahoo!オークション
タグ
関連コンテンツ( N-ONE の関連コンテンツ )
関連整備ピックアップ
関連リンク