WRX OBD2で車両情報を取得する その17 エンジン回転数と車速からギア位置を判定する
前回はELM327に対して3つのPIDを同時に要求し、車両OBD2から「エンジン回転数」「車速」「アクセルペダル位置」の3つの情報を取得しました。OBD2には「Transmission Actual Gear」というPID項目(A4)もあるのですが、私の車両ではそこまでのPIDはサポートされていない状態です。従って今回は直接にはOBD2は関係ありませんが、走行中のギア位置(シフトポジション)を判定する方法を考えてみます。
TRUST「インテリジェントインフォメータータッチ」
私は現在車内でTRUST(Greddy)の「インテリジェントインフォメータータッチ※生産終了」という製品を利用しています。OBD2に接続して色々な車両情報を表示する事が可能ですが、さすがに製品なので様々なメーカーや車種にも対応しています。この製品でもギア位置(シフトポジション)を表示する事が出来ますが、OBD2から情報が得られない車両用に、各ギアでエンジン回転数が2500rpm時の車速を入力する設定が用意されています。この設定を行う事でギア位置が表示可能になり、私の車両の場合も車速を設定してギア位置表示を行っています。
この様な製品は他にBLITZの「タッチブレイン※生産終了」や、最近ではレーダー探知機のオプション機能にもありますが、さすがに製品の中身にELM327が使用されている事は無く、OBD2と直接CAN通信を行っていると思われます。
エンジン回転数と車速の関係
車両ではエンジンの回転をギア(トランスミッション)で変速し、さらにデフを介してタイヤを回転させています。エンジン回転数とギアの関係は「変速比(ギア比)」、変速後の回転数とタイヤ回転数の関係は「減速比(最終減速比、ファイナル)」と呼ばれ、変速比×減速比で「総合減速比」になります。従って後はタイヤの外径が分かれば、エンジン回転数から各ギア時の車速が算出出来ます。
PLCによるギア位置表示
現在のギア位置(シフトポジション)を得るには
上記の通り、エンジン回転数から変速比と減速比で車速まで算出する事が可能なので、逆算を行えばその時の変速比や減速比も分かる事になります。減速比(デフ)はトランスミッションの様に多段では無いので固定値(定数)とみなす事が出来、またタイヤサイズも変わる事は無いので車速を便宜上のタイヤ回転数とすれば、各ギアの「変速比」でギア位置を判定する事が可能となりそうです。
車両の諸元表では各変速比(ギア比)や最終減速比は公開されている事がほとんどですが、ここでは具体的な数値は必要ありません。実際の車両で各ギア時のエンジン回転数と車速から「疑似的な」変速比を求める為です。TRUSTのインフォメータータッチも同様の方法かと思います。
具体的な判定方法
エンジン回転数と車速の設定
車両の諸元表からエンジン回転数に対する車速を求めても良いのですが、計算値と実測値では当然違いが出ます。やはり車両で実際に走行して、各ギアのエンジン回転数と車速を設定した方が確実です。とは言っても結局はメーターを目視で見るしか現状では方法がありません。
TRUSTのインフォメータータッチでは各ギア別でエンジン回転数が2500rpm時の速度を設定します。ただし5速や6速で2500rpmでは速度もそれなりになるので、一般道では確認すら難しくなります。各ギア時のエンジン回転数と車速の関係が分かれば良いだけなので、今回は下記の様にエンジン回転数と車速を共に設定する形にしました。
実際の走行で安全な時に、各ギアでの走行時のエンジン回転数と車速を覚えておき、後で入力します。TRUSTのインフォメータータッチの場合は入力項目を減らす為に、エンジン回転数は2500rpmに固定していると思われます。
さらに上記は入力したエンジン回転数と車速から「定数」を計算しています。定数とは先の「疑似的な」変速比で、単純にy=axで「a」となる値、ここでは「エンジン回転数/車速」を定数としています。また「現在定数」とはリアルタイムなエンジン回転数と車速から計算される定数です。従って値は逐一変化します。
定数の比較
各ギアでのエンジン回転数と車速の関係は上記の様になります(一例です)。y=エンジン回転数、x=車速で、y=axの関係になっていて、「a」は言い換えれば「傾き」です。クラッチを繋いで走行すれば、1速~6速のいずれかの「a」と「現在定数」は一致するはずなので、それを現在のギア位置と判定させる事が出来ます。
ただし、エンジン回転数と車速の設定は目視によるもので当然誤差があり、クラッチも切ったり滑ったりするとエンジン回転数と車速の関係は崩れてしまうので、定数がピッタリ合う事はまずありません。従って上記の様に1速と2速、2速と3速などで中間の定数を計算によって設け、さらに1速より大きい、6速より小さい定数(上下限)も設定出来る様にしました(※1の画面、1最大・6最小)。1速~6速の各定数の一致を見るのではなく、それぞれの範囲内にあった場合に現在のギア位置とする判定を行っています。しかしこの方法でも当然クラッチを切って惰性で進んでいたり、停車している場合では正確なギア位置は判定出来ません。これはTRUSTのインフォメータータッチでも同じですが、いずれのギア位置にもならない時は「N(ニュートラル)」と表示する様にしています。また後退の場合も車速はマイナスにはならないので判定する事は出来ません(別途リバース信号を入力すれば可能ですが)。
私の車両ではメーター内部のディスプレイにギア位置も表示されていますが、さすがに車両の標準機能なので後退(R)も含めてしっかりと表示されています。走行中にクラッチを切った際にあやふやなギア位置を表示する事もありません。
実際の様子
上記は実際に走行してみた様子です。以前のSIドライブの自動変更機能も含んでいますが、今回は車両のSIドライブ信号線と接続していないので機能していません。ギア位置は割としっかり表示出来ている印象です。本当はTRUSTのインフォメータータッチと比較したいのですが、車両OBD2ポートは1つしかないので、今後アフターマーケット品の二又ケーブルを購入してみようかと思っています。
その他
またオマケの機能として「急減速」や「急加速」、アクセルの「踏み間違い」表示も付けています。急減速は速度の減少速さ、急加速と踏み間違いはアクセル開度の増加速さで判定しています。動画では表示させやすい様に設定をかなり厳しくしています。踏み間違いは製品としてもOBD2に接続して、急な踏み込みに対して警告を行うものがあります(下記)。
踏み間違いは判定後にアクセル開度信号を制御出来れば、実際に車の前進も抑えられますが、さすがに素人が手を出せる部分ではありません。個人的にはアフターマーケット品のスロットルコントローラーは、実際に使うにはちょっと怖いと感じていますが、最近はやはり踏み間違い防止の為に車両メーカーなどからも相次いで製品が出始めています。車両前後にセンサーを付けて障害物の検出と合わせたり、ブレーキ信号と合わせてアクセルと同時に踏んだ場合はアクセル側を抑える、燃料カットを行うなどの機能がある様です。
「OBD2」関連記事
以下は「OBD2」タグの記事一覧です(投稿順)。現在の記事とこれ以降に投稿した記事も含みます。
- 「セカイモン」でドイツから商品を購入
- WRX OBD2で車両情報を取得する その1 OBD2とは
- WRX OBD2で車両情報を取得する その2 ELM327の電源とRS232Cの配線
- WRX OBD2で車両情報を取得する その3 ELM327と「とある機器」の接続
- WRX OBD2で車両情報を取得する その4 通信テスト用のプログラムと画面
- WRX OBD2で車両情報を取得する その5 ELM327からの応答
- WRX OBD2で車両情報を取得する その6 ELM327との通信テスト完了
- WRX OBD2で車両情報を取得する その7 その他のATコマンドと調査用コマンド
- WRX OBD2で車両情報を取得する その8 ELM327を車両OBD2に接続する
- WRX OBD2で車両情報を取得する その9 OBD2のPIDを調べる
- WRX OBD2で車両情報を取得する その10 その他のPIDとエンジン回転数の取得
- WRX OBD2で車両情報を取得する その11 アスキーコードを数値に変換
- WRX OBD2で車両情報を取得する その12 正しいエンジン回転数取得の様子
- WRX OBD2で車両情報を取得する その13 エンジン回転数以外の項目とメーター表示
- WRX OBD2で車両情報を取得する その14 エンジン回転数以外の項目の返信内容
- WRX OBD2で車両情報を取得する その15 複数PIDの取得テスト
- WRX OBD2のアクセル開度によるSIドライブ自動変更機能の自作
- WRX OBD2で車両情報を取得する その16 複数PIDの取得の様子
- WRX OBD2で車両情報を取得する その17 エンジン回転数と車速からギア位置を判定する
- WRX OBD2ポート(OBD2コネクター)からの電源について
- WRX OBD2で車両情報を取得する その18 OBD2の分岐ケーブルについて
その他
ブロック形式でプログラミングが行える、教育用「micro:bit」も始めてみました。micro:bitでもELM327と接続して車両OBD2ポートからの情報取得を試しています。
- WRX micro:bitを車両で使う その16 シリアル通信(RS232C)を行う
- WRX micro:bitを車両で使う その19 ELM327の車両との通信を確認する
- WRX micro:bitを車両で使う その20 アスキーコード16進数から数値10進数への変換
- WRX micro:bitを車両で使う その21 車両からエンジン回転数を得る
- WRX micro:bitを車両で使う その40 フルカラーLED(WS2812B)でメーターを作る
micro:bit全体の記事は以下から始まります。
注記
- OBD2の仕様は各メーカーや車両で異なる部分があります。メーカーや車両によってはアフターマーケット製品による利用を推奨していない場合や、利用した場合による不具合発生の可能性を示している事があります。
- このブログ内で書いている内容はあくまで私の車両、私の利用する製品や機器での場合です。他メーカーや他の車両をはじめ、同じメーカーの車両または製品、機器であっても記事内容の保証、責任を負う事は出来ません。
- 記事内で紹介している製品や、その他の類似製品を購入・利用する場合はそのメーカーや購入先で、利用する車両などへの適合を確認し、自己判断と自己責任の下で利用して下さい。
- OBD2やELM327、その他記事内容について個別の問合せや依頼を頂いても回答する事は出来ませんので、予め御了承下さい。
- ELM327はElm Electronics Inc.の登録商標です。その他のブランド名または製品名は各所有者の商標です。