CAN BUSってなに?
CAN BUSとは…ボツシュが開発した車両用のネットワークであり、これにつなげられると車速や燃料噴射量などを取得できる。
車両にはOBD2端子というものがダッシュボード下に出ていて、自動車工場にある自動診断装置を接続すると、車両の情報を読んで、故障を診断する。厳密にはコマンドのハンドシェイクによってプロトコル名が違うのだが、基本はCAN BUSからデータを読んでいる。
我々素人がCANを読むにはOBD2アダプタというものを買えば、基本的にはOK。安いし、スマホのアプリにBluetoothで飛ばして電子メーターとか可能になる。
だから、わざわざハードウェアを作る理由は、実はあんまりない。でも、昔からスマホでドラレコとかやっていた身から言わせてもらえれば、スマホは「設置」するのも「接続」するのもけっこう大変だ。正直言ってだるい。
車両機器は、できればダッシュボードにがっちり固定しておきたい。Raspberry Piの場合はHDMI出力があるから、CANが読めれば電子メーターや累積燃費系みたいなものをリッチにつくることができるだろう。
どうしてもCAN BUSが動かなかった
これまで作ってきたボードは、大した周辺チップが載っておらず特に問題なかったのだ。でもCANは動かなかった。動かない原因がわからない。
リフローオーブンの温度ミスで部品が焼けたのか、CANコントローラMCP2515とトランシーバMCP2551の回路の結線ミスなのか、Raspberry PiのOS側の設定ミスなのか、ヤフオクで落としたプリウスのヨーレートセンサーの中古が壊れているのか、もう皆目見当がつかないわけである。
手元にある測定機器といえば、10年前に買ったフルークのテスター1個・・・・・ロジアナもオシロもなしに、表面実装部品のボードを開発すること自体が、あまりに無謀で常軌を逸していたのは否めない。しかしもはや測定機器を買うお金がない。これまで投入してきた金額は5万円以上。到底趣味の範囲で買えるものではなかった。
ふと・・・初心にかえって
実物を目の前にして、なお調べようもないので、ボード設計時のデータを見直すことにした。
電源にパスコンはいってない素人丸出しの回路図はおいておくとして、一応MCP2515の電源に3.3Vはつながっているように思えた・・・・
しかし・・・基板の方は未配線だったのだ!(図中の黄色い線)
どうしてこんなことがおきたかというと、せっかくEagle CADが出してくれていた警告を1度無視する操作をしてしまった。Eagleの仕様上、未配線を無視すると図面からも消滅するのであった。ワーニングには必ず意味がある。ブラインドでポチポチしてはいけなかった。
手配線で3.3Vを20番ピンに投入したら、めでたく動き出した・・・ここまで2週間。本当に疲れた。