
NDロードスターのオリジナルメーターを製作しています。
前回can-bus読み取り不具合の原因が判明し、処置をして、テストプログラムでのcan-busからの読み取りは正常になりました。
読み取りが正常になった事で、色々なパターンでテストプログラムを試しました。割り込み処理を使ってみて上手く動かなかったり、条件分岐を色々作ってみて、思った動きにならなかったり。
段々とプログラムの書き方が分かってきて、本番用プログラムも作り直せば動くかもと思い、作り直して再度動作確認してみる事にしました。
本番用プログラムが今度は上手く動いたように見えます。しかし、またもやcan-busの一部データを読み込みしなくなりました。
調べるとフィルター設定の末番の奴を読み込みできなくなっているようです。又、読み込むアドレスの受信割合が大きく変わりました。
車体からのノイズかなぁ。
更に、PCからUSBでマイコンに繋ぐとcan-busからデータ取得するのに、シフト前USBポートからUSBで繋ぐとcanデータ取得しなくなる謎現象も発見。
ノイズだった場合非常に厄介なので、これは面倒そう。(
PCからのバッテリー駆動にして、フィルター・マスク設定を変更して、信号の受信割合を変更しました。
と言う事で、それっぽく動く本番用プログラムが完成しました。
あと、バックの信号も見つけました。ギヤのアドレス0x165の左から5番目がC8で、なおかつギヤ状態が1速の信号だとバックでした。(6速でもC8になるためAND条件で検出しています)
少し表示するまでの反応が遅いけど、まぁバックだし遅くても良いかな。
1速〜6速の現在ギヤ表示は、自分の予想よりも正確かつ高速で、メーターのシフト表示より0.3秒〜0.5秒位?速いです。
ギヤ変更に対して遅延なくパッと表示される感じになっています。正直メーター内の表示よりこっちの方が良いレベルだなぁ、、、これ。
次は、車に積むためにHUD風マウントや、通信ケーブル、I2C送受信の基板を作って行こうと思います。
Posted at 2020/05/16 12:12:46 | |
トラックバック(0)