• 車種別
  • パーツ
  • 整備手帳
  • ブログ
  • みんカラ+
イイね!
2015年05月14日

デジタルスピードメーター(車速表示)を自作してみる

デジタルスピードメーター(車速表示)を自作してみる スピードメータについて問い合わせをいただきました.いままで単独でのスピードメータは作ったことがなかったので、せっかくなのでちょっと考察してみました.メモとして残しておきます.細かい計算には触れません.考え方と、その結果の紹介になります.

以前、多機能タコメータを作ったのでハードはこれを使います.



◆タコメータとスピードメータってほとんど同じじゃないの?
タコメータとスピードメータは一見似ていますが、プログラムの難易度としては後者がより高く、難しくなります.タコメータは基本的にパルスが入力され続けることが保証されていますが、車速パルスは車が停車するとパルスも止まります.高性能メータは基本的にカウンタをソフト的に内蔵していて、車速パルス1パルスの間に何回カウントできたかで車速を算出します.これを ”レシプロカル方式” と呼びます.

分解能”1km/h”とか唄っていても、例えば200km/hと201km/hで、カウント数の差が1しかないとか・・・ 理論的には速度差を分離できますが、まー使い物になりません.そこで、ネットでもそー見かけない方法でメータを作ってみることにしました.

※パルス計測方法としては”ゲート方式”があります.一定時間内に何個のパルスが来たかを・・・.市販品を始め、YouTubeやWebページで見られるように世の中に出回っている殆どのメータの計測方法です.どんくさいので技術的に魅力を感じません.

しかし、一方でレシプロカル方式は極めて低速なパルスが来ると内部カウンタはいつまでもカウントし続け、ついにはオーバーフローしてしまいます.普通はそうならないようカウンタの周波数を遅くして、しかし高い速度のパルス(高周波)でも速度に応じてわずかにカウント数に差ができるようにしているのが、レシプロカル方式で試している方の大部分を占めるやり方です。

◆パルス計測をちょっと工夫してみる
基準カウンタを1マイクロ秒で組み込んでみます.勘のよい方なら、”そんなの絶対無理!”と思われるかもしれません.それもそのはず、今回使った8bitマイコンの割り込みタイマは16bit(65535=2の16乗)までしか数えられないので、1マイクロ秒でカウントしたら65msec長のパルスまでしか測定できないことになってしまうからです.ネット検索で出てくる自作愛好家の極めて多くの方は基準カウンタ時間を長くして、65535回以下になるようにな苦しいプログラミングをしていることに気付きます.

しかし、65535を”オーバーフロー”した回数を別に用意した変数で数えておけば、最長で32bit(マイクロ秒)が測定できることになります(long=4byte=2の32乗).周期が数時間といった極低周波も検出できますし、それでいて200-201km/hのカウント差は、35カウントになりスレッシュホールドとして判定に余裕ができることになり、非力なマイコンでも高精度な計測が可能になります.

マイコン内蔵クロック:8MHz
プリスケーラ:2 (初期値=0xFFFF)
タイマ1の周期:1マイクロ秒=1MHz

これがエクセルで計算したカウント数と、PICシミュレータで内部変数(カウンタ値)をリアルタイムに表示したものです.この例では1km/h、つまり0.71Hzのパルスを観測しています.1マイクロ秒での理論カウント数は、141万回. 一方のシミュレータでは140.9万回でほぼ一致しています.カウンタのオーバーフロー回数は21回となっており、これも理論値と一致しています(^^


◆ノイズによるパルス計測誤差に関して
車速パルスは車速が大きくなるほど短く(高周波)なります.これにノイズが含まれると0-12V、あるいはその中間で変化してパルス周期があたかも変化したようになります.つまり、本来のカウント数よりも少ないカウント数になることは簡単に想像できます.逆にノイズによってパルスが長くなることはありません.この現象をうまく利用します.

具体的には、 時系列でカウントしたものを例えば5つの変数(箱)に入れ込みます.これを大きい順に並べ替えて一番最初の変数、つまりノイズを含んでいない確率の高い品質のモノをとってきて、現在の確からしいカウント値とする方法です.ローパス機能をもたせることができ、高周波パルス(高速域)に対して移動平均やメジアンフィルタを施すよりも強力なノイズ除去性能が期待できます.並べ替えは、バブルソートや挿入ソートなどが有名です.

◆高性能ビデオカメラに対応したディスプレイ
表示器は7セグ.ダイナミック点灯方式で4個の7セグを1こずつ横にずらしながら高速で切り替えて点灯させています.これは配線数を減らすために用いる一般的な手法ですが、切り替えを早くしないと目線を通過させたときに点灯の切り替えが見えてしまい煩わしくなります. さらに、車載動画などで60fpsで撮影したときに切り替えが遅いとちらついてよく分からなくなります.市販のドライビングモニターはちらつきが激しくてよく分からない動画をよく目にします.こうならないために、十分高速に表示を切り替えることにします.



一番左の7セグを表示させてから、隣の7セグに移るのに100マイクロ秒.つまり4桁表示するのに400マイクロ秒(2500Hz)の超高速切り替えとしています.これだけ切り替えが高速だと、目線を左右に動かしても一切ちらつきが見えず連続点灯に見えます.これは一般的な表示器の50~100倍の早さになります.車載メータとしては重要なこだわりポイントでもありますね.

◆ユーザビリティとプログラマビリティ
プログラム変更せずに各種設定ができるようメニューを埋め込んで、ユーザが自由に呼び出して実行できるようにしています.ここで悩ましいのがメニューの表示方法.というのも、7セグで表現するには限度があります.当然、表記は数字・アルファベットに限定されますが後者は全て表現できるわけではありません.限られた記号を使ってなるべく分かりやすく、それでいてプログラムのしやすさにも配慮してみました.

プログラムの中ではbitの1/0で各セグメントを操作します.例えば7セグに”b”と表示する場合、内部では ”0b11110100 (0xF4)”と表します(配線の仕方によって表記は異なります).1文字ならこの表記で事足りますが、”Abcd”とか別の表示をしたい場合は都度めんどくさい・・・.イチイチ表現を考えていては効率が悪いので、JISの文字コード表(ASCIIコード)をメモリー内に持たせました.ただし、bit表記とアスキー文字の対応表は最初の1回だけ自分で作らなければなりませんが、エクセルを使えば一瞬で作ることができます.

エクセルに各セグメント7つを配置し、光らせたいセグメントに”1”を入れると黄色く反転して自動でプログラムコードをはき出すようにしました.あとは、プログラムソースに貼り付けるだけでOK.アスキーコードを参照する関数を書いておけば、 SetChar7seg("Abcd"); と記述するだけでよいので、プログラムがはかどります.※この自作関数は文字列リテラルの先頭アドレスをポインタで受け取り、ポインタ変数をインクリメントすることで4文字処理する関数.

 

今回使ったマイコンのメモリー使用量です.

◆スマートシリーズ(SmartDigitalTachometer)
メニュー設定の雰囲気はこんな感じ(以前作ったスマートタコメータ)
サイズも get in shape♪


TOP画像左下のは車輌パルス発生機として昔自作したパルスジェネレータ.
(アジア圏の基板メーカに製作依頼したモノ.カラー基板でも安い)

あまりメジャーじゃない方法でやるってのが好き.真似だとつまらん.普通に考えると下記の項目は欲しいと思われる機能なのに、これらを盛り込んだものを作ってる人っていない.なぜだろう??

【MCU】
PIC16F88(4KWORDメモリ内蔵)

【配線】
only 4 wires!
1)12V(10 to 14V)
2)GND
3)車速信号(pulse)
4)イルミ信号

【仕 様】
 設定はメニューを呼び出して変更可能
   ※停車中・走行中でも変更可能
1) 車速パルス:
  1, 2, 3, 4, 6, 10 [パルス/回転]
  ※プログラムにより種類を増やすことも可
2) 表示分解能:
   1, 2, 5, 10, 20[km/h]
3) HUD(ヘッドアップディスプレイ):
   ON / OFF
4) 夜間減光(イルミ信号より判定):
   輝度→10,20,30,40,50,60,70,80,90,100 %
5) ゼロサプレス::
   ON / OFF  例:"0825" → " 825"




以前、LCDタイプのモノも作りました.
大きな画面で動画再生する(YouTube)

4万回以上再生されているので、結構興味を引くようです.
コントラストや輝度、パルス設定はメニューから呼び出して変更できるようにしました.





【キーワード】
デジタル スピードメーター タコメーター パルス2 パルス4 自作 作る つくる 製作 お手製 DIY 回路 永井電子 ウルトラ マイコン 0から 0から 1から 1から ゲート方式 レシプロカル ギア比 ギヤ比 タイヤサイズ シフト ギア変速 から計算 計算 JIS パルス計測 クラッチ レシプロカル方式 ゲート ゲート方式 判定方法 高精度 高性能 パルス設定 パルス計測 移動平均 メジアンフィルタ デジタルフィルタ 三菱車 subaru車 自作基板 基板製作 基板 基板設計 回路図 秋月 秋月電子 車速表示 車速 表示 オーバーフロー デジタルスピードメータ 電源部 車速入力 設定 メニューから 7セグ ダイナミック点灯 ダイナミック 制御 表示 シミュレーション HUD ヘッドアップ ヘッドアップディスプレイ デジタルスピードメーター デジタルタコメーター JIS規格 電子回路 設計 コンパクト 小型 超小型 JIS JIS-D5601 JIS D5601 ascii table tach tachometer tacho 7seg 7segment segment segments simulation ISIS proteus speedmeter speed meter gear shift position indicator indicater 5speed 6speed Assembly Desk transmission manual automotive pulse display ultra ratio gearposition shiftposition mikroc hi-tech compiler PIC microcontroller microchip arduino avr PIC16 PIC16F PIC16F88 PIC16F628A PIC16F648A akizuki timer timer0 timer1 HUD headup head display
ブログ一覧 | PIC+電子工作 | 日記
Posted at 2015/05/14 01:15:52

イイね!0件



タグ

今、あなたにおすすめ

ブログ人気記事

ラゲッジトレイ N-BOX N-B ...
VS-ONEさん

1200km走破♬
ふじっこパパさん

後…1ヶ月😍
Hiro.sさん

皆様のアーシングの仕方の知識は本当 ...
神聖 ノンタマさん

昭和記念公園のコスモスは・・・
ライトバン59さん

切り開く
1・2・3・○○!!さん

この記事へのコメント

2015/05/15 22:48:21
お久しぶりです。
タコとスピードメーターにそんな違いが・・・
確かに、エンジンがかかっている状態でエンジン回転数が0rpmになるなんてありえませんね。

どんどん黒っ9さんがプロに近いていくw
コメントへの返答
2015/05/16 19:18:41
はい/
ちびっと(1bit)近づきました!


えー・・・っと、
ココ、笑うところです
現在価格を調べてみる

おすすめアイテム

 
 

プロフィール

「倉庫から色々出てきたでござる http://cvw.jp/b/194408/41272537/
何シテル?   03/27 20:35
黒っ9(クロック)といいます。 黒のエボ9オーナーだったので クロック(笑) 休日は主にドライブです♪ 旅先の露天風呂なんか最高だね! 手作...
みんカラ新規会員登録

ユーザー内検索

<< 2019/10 >>

  12345
6789101112
13141516171819
20212223242526
2728293031  

リンク・クリップ

自作♪パルスジェネレータ(車&バイク用) 
カテゴリ:その他(カテゴリ未設定)
2017/01/30 21:33:58
自作♪GPI++:ギアポジションインジケーターVer5(MT用) 
カテゴリ:≡ 電子工作にチャレンジ♪
2016/08/27 23:18:43
【PSI++】自作ドライビングモニター でけたぁ~♪ 
カテゴリ:≡ 電子工作にチャレンジ♪
2014/09/16 23:08:56

愛車一覧

三菱 ランサーエボリューションX 三菱 ランサーエボリューションX
セクシーなXにあこがれて9GTから乗り換えました♪ ファントムブラックの5MTです. ...
三菱 ランサーエボリューションIX 三菱 ランサーエボリューションIX
納車されました(^^ セクシーなエボⅨにあこがれて思い切って買い換えました。ん~黒のボで ...
三菱 ランサーエボリューションVII 三菱 ランサーエボリューションVII
頭文字D見てマニュアルの車にあこがれ、ワイルドスピード×2見て刺激され買ってしまいました。
三菱 パジェロ 三菱 パジェロ
幼少の頃からパリダカで活躍するパジェロに興味があり、初めての車にパジェロを物色していると ...

過去のブログ

2018年
01月02月03月04月05月06月
07月08月09月10月11月12月
2016年
01月02月03月04月05月06月
07月08月09月10月11月12月
2015年
01月02月03月04月05月06月
07月08月09月10月11月12月
2014年
01月02月03月04月05月06月
07月08月09月10月11月12月
2013年
01月02月03月04月05月06月
07月08月09月10月11月12月
2012年
01月02月03月04月05月06月
07月08月09月10月11月12月
2011年
01月02月03月04月05月06月
07月08月09月10月11月12月
2010年
01月02月03月04月05月06月
07月08月09月10月11月12月
2009年
01月02月03月04月05月06月
07月08月09月10月11月12月
2008年
01月02月03月04月05月06月
07月08月09月10月11月12月
2007年
01月02月03月04月05月06月
07月08月09月10月11月12月
2006年
01月02月03月04月05月06月
07月08月09月10月11月12月
ヘルプ利用規約サイトマップ
©2019 Carview Corporation All Rights Reserved.