Arduino Nanoで軽トラの車速パルスから軌道計測をした話 ①S510Pの仕様

　はじめまして、[りょーつ](https://twitter.com/Gomachan_2021)といいます。高専出身の大学院1年生です。研究の専門は力学や機構学で、Qiitaでは主に制御工学や数学の理論に関する記事を書いています。
　今回は愛車の**ハイゼットトラック(S510P)の車速パルスをArduino Nanoを使って取得し、軌道計測を行う**という内容になっています。内容がボリューミーなのでいくつかの記事に分割する予定です。

# 目次
[1.はじめに](#1-はじめに)
[2.ハイゼットトラックの仕様](#2-ハイゼットトラックの仕様)
[3.おわりに](#3-おわりに)
[4.参考文献](#4-参考文献)

# 1. はじめに
　本稿ではArduino Nanoを使用することを前提に、 **[ハイゼットトラック(S510P)](https://www.daihatsu.co.jp/lineup/truck/)** の車速パルスを取得するために必要なS510Pの仕様を紹介します。車両の改造に本記事の内容を使用される場合は全て自己責任でお願いいたします。さまざまな記事を参照しながらハイゼットトラックの仕様を確認しましたが、年代や車種によって仕様が異なる場合もあると思うので、本記事のみを鵜呑みにしないようご注意ください。
　「おわりに」の章に本記事のまとめを書いているので急ぎの方は先にそちらを参照ください
 
# 2. ハイゼットトラックの仕様
　本章では、**[ハイゼットトラック(S510P)](https://www.daihatsu.co.jp/lineup/truck/)** の
 
 ① 車速パルスの基本
 ② 車速パルスの伝達経路と出力方式
 ③ 車速パルスの信号線位置
 ④ 純正ナビの仕様
 
を紹介します。可能な限り公式資料を参照しましたが、ネットの記事も参考にしているため、心配な方はダイハツへ直接確認してください。

## 2.1 車速パルスの基本
　車速パルスは自動車の速度を検出するためのパルス信号を意味します。普段はトンネルの中など、GPSが機能しない場合において、車両位置を推定するためなどに用いられています。**ハイゼットトラックS510Pの場合は車輪が1回転する度に、4つのパルス波が出力されます。** つまり、1秒間に出力されるパルスの数を数えることで、車両の速度を推定することができます。

 
　車輪一回転につき出力されるパルスの数(センサ分解能)は車種によって異なります。私は[こちらの資料](https://pellucid.co.jp/cp-bin/wordpress5/wp-content/uploads/2020/02/EG-1651____20180901.pdf)を参考にS510Pの分解能を調べました。ほとんどの国産車は2 [pulse/rotate]か4 [pulse/rotate]のようです。

 
　S510Pの車速信号は4 [pulse/rotate]なのですが、パルスの値が変化するタイミングさえ取得できれば分解能を2倍に上げることができます。これを2逓倍(2テイバイ)といい、車輪1回転につき、8カウント分の情報が得られることを意味します。図1に2逓倍の概要を示しました。同様に2 [pulse/rotate]の車両であれば4 [count/rotate]の情報が得られます。逓倍の詳細については[こちらの記事](https://www.sk-solution.co.jp/blog/c7)などを参照ください。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3031572/feec9645-d07e-4907-bba5-d5bea8d14b4f.png" width=80%>

図1　逓倍の原理

　本記事では車速パルスを2逓倍し、S510Pから8 [count/rotate]の情報が得られるとして計算を行います。ここでは1秒間に$n$ [count/s]の情報が得られた場合を仮定し、速度$v$ [km/h]を取得する計算式を導出します。

　まず、車輪が1回転(=$2\pi$ [rad]回転)するとき、8カウントされるため、車輪の回転速度$\omega$ [rad/s]は以下の計算式に沿って計算できます。
```math
\omega [\rm{rad/s}]
= 
\dfrac{n [\rm{count/s}]}{8 [\rm{count/rotate}]}\times2\pi [\rm{rad/rotate}] 
=
\dfrac{n\pi}{4} [\rm{rad/s}]
\tag{1}
```
ここでタイヤの直径を$D$ [m]とし、地面とタイヤの間にすべりがないものと仮定すると、車両の移動速度$v$ [km/h]は(4)式で計算できます。なお
```math
1[\rm{km/h}] = 1000 [\rm{m/h}] = \dfrac{1000}{3600} [\rm{m/s}] = \dfrac{5}{18} [\rm{m/s}]
\tag{2}
```
であることを利用します。
```math
v [\rm{km/h}]
= 
\dfrac{D}{2} [m]\times \omega [\rm{rad/s}]\times \dfrac{18}{5}[(\rm{km/h})/(\rm{m/s})]
=
\dfrac{9}{5}\omega D [km/h]
\tag{3}
```
　最後に(1)式と(3)式から回転速度$\omega$を消去すると
```math
v [\rm{km/h}]
= 
\dfrac{9}{5}D \times \dfrac{n\pi}{4} [km/h]
=
0.45\times n\pi D [\rm{km/h}]
\tag{5}
```
となります。(5)式は4 [pulse/rotate]の車両にのみ適用可能です。ほかの車両にも扱えるように車速信号が$p$ [pulse/rotate]であるとして一般化すると
```math
v
= 
1.8\times \dfrac{n\pi D}{p}
\tag{6}
```
の関係が得られます。

　少し長くなってしまったので本節の内容をまとめておきます。
　まず**ハイゼットトラックS510Pの車速パルスは4 [pulse/rotate]** です。

車速パルス：$p$ [pulse/rotate]
タイヤ直径：$D$ [m]

の車両において2逓倍でカウントを行った場合に$n$ [count/rotate]のカウントが得られた場合、速度$v$は
```math
v
= 
1.8\times \dfrac{n\pi D}{p}
```
で計算できます。ちなみにS510Pの純正タイヤの直径は0.539 [m]だそうです([参考文献](https://kakaku.com/item/K0000848557/spec//1000/#:~:text=K305%20145R12%206PR%20%E3%81%AE%E3%82%B9%E3%83%9A%E3%83%83%E3%82%AF,%E6%8E%A8%E5%A5%A8%E3%83%AA%E3%83%A0%E5%B9%85%E3%81%AF4J%E3%80%82))。
　Arduino Nanoで$n$を取得する方法などは別記事に書く予定です。

## 2.2 車速パルスの伝達経路と出力方式
　ハイゼットトラックでは、まず車輪付近のセンサから車速パルスが速度メータに送られ、速度メータ内で情報処理された後にカーナビへ転送されるようです([参考文献](https://minkara.carview.co.jp/userid/1505785/car/2160444/4607844/note.aspx))。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3031572/afd6e7c0-e7bf-4402-bae8-37516d44b049.png" width=70%>

図2　車速パルスの伝達経路

そのため、車両から車速パルスを取得する手法は、①センサから直接信号を取得する、②メータとカーナビの通信線から信号を取得する、の2パターンあると考えられます。本記事では後者について解説します。
　後者を選んだ理由として、S510Pの速度メータに関する仕様がネットに公開されていないという点が挙げられます。1つ[関連記事](https://minkara.carview.co.jp/userid/1505785/car/2160444/4607844/note.aspx)を見つけたので試してみましたが、こちらに掲載されているピン番号からはパルスを取得できませんでした。一方でカーナビ周りの配線についてはいくつか情報が出てきたのでこちらを採用しています。

　ちなみに古い型番(S210Pなど)のハイゼットトラックであれば速度メータの情報が割れており、こちらを使用するのが一般的なようです([参考文献](https://ameblo.jp/herlock8221/entry-12855808376.html))。

　次に車速パルスの出力方式について説明します。結論から言うと**S510Pの車速メータからカーナビへの信号送信はオープンコレクタ方式**のようです。ダイハツのコペンの車速信号がオープンコレクタ方式であること([参考文献](https://minkara.carview.co.jp/userid/203820/car/92260/188609/note.aspx))や、車速パルスの方式についてまとまっている[こちらの記事](https://ameblo.jp/ikkotei/entry-11723957830.html)の内容から予想しました。実際にダイハツの社員様に確認したところ、オープンコレクタ出力で間違いないそうです。

　オープンコレクタ方式は図3に示すような回路で信号が出力される方式を意味します。詳細は[wikipedia](https://ja.wikipedia.org/wiki/%E3%82%AA%E3%83%BC%E3%83%97%E3%83%B3%E3%82%B3%E3%83%AC%E3%82%AF%E3%82%BF)などを参照してください。簡潔に説明するとマイコンで信号を読む際にプルアップが必要になるというものです。プルアップについては[こちらの記事](https://voltechno.com/blog/pullup-pulldown/)で分かりやすく解説されています。Arduino Nanoを使った具体的な信号取得方法については別記事で解説します。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3031572/b68799c9-f0b6-41df-a8e8-6618c7e5f073.png" width=70%>

図3　オープンコレクタ方式の回路

　車種によっては直接5Vや12Vを出力するものもあるようなので、本記事を参考にS510P以外の車を改造する場合は別途調査を行ってください。


## 2.3 車速パルスの信号線位置
　本節では車速信号を取得可能なコネクタとそのピン番号について解説します。結論から述べると、**S510Pはカーナビ裏のオプション5ピンコネクタの中央ピンから車速パルスを取得可能です**。この情報はダイハツの[公式資料](https://www.denso-ten.com/jp/eclipse/support/justfitguide2021/pdf/da-hijet_truck-201806-2201r3.pdf)で公開されています。今回は使用しませんが、リバース信号やパーキングブレーキの情報もこのコネクタから取得可能なようです。コネクタの外観などは[こちらの記事](https://blog.goo.ne.jp/ksfactory2012/e/9d5d1a656c83c408aff1cf425c9cce3b)で非常に分かりやすく解説されているのでそちらをご参照ください。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3031572/6797dbee-af81-48fc-a59f-1db9be4c208d.png" width=90%>

図4　カーナビ裏のオプション5ピンコネクタ [[11](https://www.denso-ten.com/jp/eclipse/support/justfitguide2021/pdf/da-hijet_truck-201806-2201r3.pdf)]

　少し分かりづらいですが、同じく**カーナビ裏に生えているオプション24ピンコネクタからも取得可能**だそうです。こちらについても[公式資料](https://www.denso-ten.com/jp/eclipse/support/jfg_s2021/pdf/da-hijet_truck-202112-2204r1s.pdf)や[記事](https://shizuoka-syaken-seibi.com/%E9%9B%BB%E8%A3%85%E5%93%81%E5%8F%96%E4%BB%98/2023/03/15/3082/)で解説されています。**どうやら令和3年12月より前の車両は5ピン、後の車両は24ピンコネクタ**のようです。
　さらに、**多くの国産車の車速パルス取得方法が[こちらの資料](https://pellucid.co.jp/cp-bin/wordpress5/wp-content/uploads/2020/02/EG-1651____20180901.pdf)にまとまっています。**

## 2.4 純正ナビの仕様
　本節では純正ナビの仕様について説明します。純正ナビが接続されている場合、Arduino Nanoを接続するために純正ナビの仕様を考慮する必要があります。ここで考慮しないといけないのは、カーナビの電源電圧(とプルアップ抵抗)の値です。2.2節で説明したとおり、車速パルスはオープンコレクタで出力されます。したがってカーナビ側はカーナビの電源電圧でプルアップされていると考えられます。Arduino Nanoとカーナビの電源電圧が異なると、電圧が低いほうへ電流が流れてしまい、最悪破壊につながるため、慎重に作業しなければなりません。
　私が**テスタで計測した結果、S510Pの純正ナビの電源電圧は約5Vでした**。Arduino Nanoの電源電圧も5Vなので特段慎重になる必要はなさそうです。図5に速度メータとカーナビの通信についてまとめました。
　プルアップ抵抗の値はのちに解説するArduino Nanoの保護ダイオードの影響を排除するために必要となりますが、厳密な値はあまり重要でないので調べていません。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3031572/7713f58d-811a-43d6-aeee-705adfe985ca.png" width=100%>

 図5　速度メータとカーナビの通信

# 3. おわりに
　本記事ではArduino Nanoを使用することを前提に、 **ハイゼットトラック(S510P)** の車速パルスを取得するために必要なS510Pの仕様について紹介しました。内容をざっくりまとめると、

**① S510Pの車速パルスは4 [pulse/rotate]
② 車速パルスはオープンコレクタ出力
③ カーナビ裏のオプション5ピンコネクタ中央から車速パルスを取得可能
④ カーナビのセンサ入力用電源電圧は5V**

となります。軽トラを改造する人にとって有益な情報となれば幸いです。Arduino Nanoとの接続や実車検証については次回以降の記事にまとめていきます。
　さいごまで読んでいただきありがとうございました！

# 4. 参考文献
1) [商品情報サイト、DAIHATSU (最終閲覧日2025/4/5)](https://minkara.carview.co.jp/userid/1505785/car/2160444/4607844/note.aspx)
2) [ペダルの見張り番 対応車種適合表、オートバックス (最終閲覧日2025/4/5)](https://pellucid.co.jp/cp-bin/wordpress5/wp-content/uploads/2020/02/EG-1651____20180901.pdf)
3) [エンコーダ パルスカウントの逓倍とは？、SKソリューション (最終閲覧日2025/4/5)](https://www.sk-solution.co.jp/blog/c7)
4) [価格.COM (最終閲覧日2025/4/5)](https://kakaku.com/item/K0000848557/spec//1000/#:~:text=K305%20145R12%206PR%20%E3%81%AE%E3%82%B9%E3%83%9A%E3%83%83%E3%82%AF,%E6%8E%A8%E5%A5%A8%E3%83%AA%E3%83%A0%E5%B9%85%E3%81%AF4J%E3%80%82)
5) [S510Pジャンボ スピードメータ実験 (最終閲覧日2025/4/5)](https://minkara.carview.co.jp/userid/1505785/profile/)
6) [ハイゼットトラック S201P 車速パルス取り出し (最終閲覧日2025/4/5)](https://ameblo.jp/herlock8221/entry-12855808376.html)
7) [コペンの車速信号について考えてみる (最終閲覧日2025/4/5)](https://minkara.carview.co.jp/userid/203820/car/92260/188609/note.aspx)
8) [電気式スピードメーター＆タコメーターのパルス入力と出力 (最終閲覧日2025/4/5)](https://ameblo.jp/ikkotei/entry-11723957830.html)
9) [wikipedia "オープンコレクタ" (最終閲覧日2025/4/5)](https://ja.wikipedia.org/wiki/%E3%82%AA%E3%83%BC%E3%83%97%E3%83%B3%E3%82%B3%E3%83%AC%E3%82%AF%E3%82%BF)
10) [プルアップ抵抗・プルダウン抵抗とは？電子回路に必須の考え方 (最終閲覧日2025/4/5)](https://voltechno.com/blog/pullup-pulldown/#google_vignette)
11) [車両側車速・パーキング・リバース信号接続情報H30.6~R3.12、DAIHATSU (最終閲覧日2025/4/5)](https://www.denso-ten.com/jp/eclipse/support/justfitguide2021/pdf/da-hijet_truck-201806-2201r3.pdf)
12) [S510P ハイゼット 車速信号線、バック、パーキング/サイドブレーキ線など (最終閲覧日2025/4/5)](https://blog.goo.ne.jp/ksfactory2012/e/9d5d1a656c83c408aff1cf425c9cce3b)
13) [車両側車速・パーキング・リバース信号接続情報R3.12~、DAIHATSU (最終閲覧日2025/4/5)](https://www.denso-ten.com/jp/eclipse/support/jfg_s2021/pdf/da-hijet_truck-202112-2204r1s.pdf)
14) [ダイハツS500Pの車速信号の取出し【最新版】(最終閲覧日2025/4/5)](https://shizuoka-syaken-seibi.com/%E9%9B%BB%E8%A3%85%E5%93%81%E5%8F%96%E4%BB%98/2023/03/15/3082/)