さて、今まで試してきたOBD2の実験ですが、実用性が見えてきたので、基板作成に着手しました。
 
 
 
回路イメージは、こんな感じ
 
 (図は、CANのHiとLowが逆でしたあせる)


これから、ヘッドアップディスプレイを自作しようと思ってる方の参考になればと思います。
 
ちなみに、これはドシロウトの僕が、色んな人の記事やネット情報、自己解釈を基になんとか作り上げた物です。
色々解釈間違いもあると思います。これを参考に問題が起きたり、車が故障や事故にあっても一切責任は負えませんので悪しからず。
ニヤリ
 
ESP32は、シグナル電圧が3.3Vなので、周辺回路はそれ基準に考えないといけません。
幸い、ILI9341液晶は、3.3Vなので、Arduino UNOより液晶接続はシンプルになります。
 
代わりに、MCP2515が5Vになるので、そことはレベルシフトが必要になります。
ただ、MCP2515自体は、3.3V 5V 両対応なんです。では、なんで?と思うところで
同ボードに搭載されている、CANレシーバー(TJA1050)が、5V対応なんです。
3.3VのCANレシーバーもあるみたいですが、CAN Hi信号のHI(ドミナント)が、3.5Vなので、5Vの方が安心に思います。
実際、3.3V仕様のレシーバーだと、車側が認識しなかったりと言う記事も見かけました。
 
MCP2515からの出力は、入力電圧に準ずるので、5V入れておけばレシーバーのコントロールはOK。
そして、MCP2515への入力は、3.3Vでも受けてくれてるようです。ただ、逆の出力は、5V基準になるので、レベルシフトしてあげます。
最低限、INT信号とMISO信号のみが出力なので、2つだけレベルシフトしてあげれば動きました。
実は、最初はすべての入出力信号をレベルシフトしていたのですが、何故かループバックモードが動かず、かなりの時間悩みました。
えーん
で、必要最低限と思われる、今の接続に変えたら動きました。
理屈的には、すべてレベルシフトしても問題ないとは思うのですが、多分、レベルシフト基板の不具合があって全ての信号を変換しきれてなかったのか?なんて結論付けています。
 
ちなみに、ESP32には、なんとCANコントローラーが内蔵されているようです。
なので、ESP32でCANする人は、レシーバーのみ接続するのが一般で、MCP2515を繋げてる記事が少なく自己解釈でなんとか繋げられました。
元々買ったCANボードがMCP2515搭載物だったのと、今更レシーバーのみ分離するのも面倒だったので、そのままSPI通信で繋げて使うことにしました。(Arduino UNOで使えた実績もありますしね)
 
 
 
さて、回路イメージができたら、あとはひたすら老眼と戦いながらのハンダ作業です。
 
 
ちなみに
 
 
基板の配線を付けるときは、マスキングテープを使うと便利です!
ちゃんとしてる人は、フレキシブルなクリップアーム等があるのでしょうけど、無い人はこれで十分です。
 
ちなみに、基板配線用のケーブルで皮膜が耐熱の物があって、ハンダ付けでも溶けなくてとても便利でした。
お勧めです。
 
 
 
 
 
 
 
なんとか組み上げて、通電確認
2、3回配線ミスを直して、無事起動した時はかなり嬉しかったです。
笑い泣き
 
やれば、できるな〜って
 
 
 
 
 
 
あとは、ケースをカスタマイズして納めて完成!!
おねがい
 
 
 
 
 
どうしても、ピンソケットを使ってるのと、液晶も厚みがあるので、高さが増してしまいますね。
 
 
 
 
 
側面には、Arduino IDEと接続するためにUSBの口を開けたのと
電源やCAN配線、その他も入力を増やせるように、8PINのピンプラグを付けました。
抜けやすいですが、この方が配線毎に自由に繋げられるので、我ながらナイスアイデアかと。
ニヤリ
 
 
 
 
 
 
さて、実走テストです。
 
夜はバッチリですね。夜は...
 
ちなみに、ブレットボードの時は光センサー付けてましたが、スペースの問題でつかなく一旦保留になってます。
なので、現状輝度MAXです。
やっぱり、夜はちょっと眩しいですかね。
 
 
 
これで、ひとまず最低限は完成です。
あとは、見た目に課題が残るので、少し手直しして行こうと思っています。
ニコニコ
 
 

 

DIYで使っている便利な道具の紹介です。