どうもみるです。春休みなんだかんだ忙しい中、久しぶりの更新です。


いつもふざけてるばかりのケ響ですが、今年の春休みは少しはまともなことしようと思いました。

ってことで
カブのタコメーターを完全自作してみた




ということで、今回は完全自作の電子工作記事です。たぶん真面目だと思われる。



※僕の専攻は機械工学なので電気系はよくわかりません。あしからず・・・











このタコメーター自作の考えってのは、かつて予備校時代から構想していたことで、大学に入ってからずっとネットを頼りに独学で勉強してきました。でも本腰入れて作り出したのはこの時期から(

それまでアキバでライター買ってきたり、パーツ取り寄せたり、7セグダイナミック点灯(転倒ではない)とかいろいろ試してはいたんですけどね・・・やっとできる見込みができたので春休み入ってから進めてますた。




で、さっそくできた。

20150312_190702




これだけではあれなので、とりあえず製作について書きます。
今回使ったのはこれ↓
KIMG0299
あずにゃん可愛い!あずにゃん可愛い!


KIMG0298

ATmel社製のAVRマイコン、ATtiny2313ちゃんです。

この娘を中心に作っていきます。
パーツはこれこれ。
KIMG0274
(写真は最初にとったもの、いろいろ違う)
  • ユニバーサル基盤(80円)
  • 220uF、110uF電解コンデンサー(合わせて100円くらい?)
  • 三端子レギュレーターNJM7805(50円)
  • 0.1uFセラミックコンデンサー3つ(60円くらい?)←うち二つしか使わなかった
  • 330Ω×7、2。2kΩの1/4W抵抗(8円)
  • ATtiny2313(300円くらい)
  • 7セグ三桁LED(330円)
  • ティッシュ(おまけ)

以上でおよそ900円あればそろいます。

これに必要なものは

  • AVRISPmkII・・・マイコンのプログラミングにしよう
  • AVRstudio6.2・・・同様に(ry
  • はんだごて、はんだ
  • ニッパーとかの工具

と、家にある電子工作道具でつくりました。


基本的にはAVRでタコメーター作ってた記事があったので回路とプログラムはそれを参考にさせていただきました。


初期の回路図(3桁)はこれ。

これまた独学なので専門の人にはくっそ突っ込まれそうな回路図である。

7SEG(4桁)


ATtiny2313ちゃんのお仕事は、

  1. ピックアップコイルからの回転パルスの立ち上がりを0.25msごとでカウントして、パルスの立ち上がりから立ち上がりまでのカウント回数(変数t0)を数える
  2. 0.25ms*t0でパルス間隔(s)が分かるので、そこから瞬間回転数を算出
  3. 表示変数numの数値を0.25sごとに更新
  4. main関数内でnumをダイナミック点灯

といった感じです。

カブのピックアップコイルはジェネレーターにくっついているので、ピックアップコイルが1パルスでクランクが1回転してます。



よって

ピックアップコイルのパルス間隔拾ってあげれば回転数がわかるってこと。

( ´∀`)b


3番目の0.25sごとの更新は見易さのため。もしかしたらノイズ対策にもなるのでは





基本設計仕様としましては

  • パルスを0.25msでカウント
  • マイコンは内部発振8MHz
  • できるだけ小型軽量簡易設計
  • コストも安く
  • パルスはピックアップコイルより検出
  • 電源はバッテリー電源を車体より使用
  • 最低100rpm、最高30000rpmを想定
  • プログラムはC言語を使用(アセンブラ?知らんし)

って感じ







設計上の問題としては

  • ピップアップコイルの電圧はどのくらい?
  • ピックアップコイルのパルス間隔って0.25ms以上あるの?
  • それをどう拾うの?
  • つーか他のノイズとかどうすんねんwww
  • ちみぃー、これ精度には妥当性あるの?(教授並感

ってあたりですかね





で実際の開発の話。

ブレッドボードであーだこーだ言いながら開発中・・・

20150309_155440

うしろのマイコンはATtiny13aというロリ小さい8ピンマイコンです。

こいつをパルスジェネレーターとしてプログラムして活用しました。(これがまた時間かかった)













最初は7セグLED1桁を4桁表示で行こうかと画策してたんですけど

20150306_152924


20150306_153004

まぁ配線カオスになるよね。

この時点で4桁は諦めて浜松のマルツパーツ館にあった3桁の物を買ってきました。

はんだ付けの努力は無駄になったのだ・・・

でも小さくなるし万事OKって感じはある。




とりあえず組んでみた感じはこんな感じ

KIMG0277


今回の目標は「できる限り小さく」と、初めての癖にでかい目標を立てていたのですが、結構小さくできたのじゃないかな?












一応これをカブに乗っけて試験起動してみてもみてもうまく動かず・・・

(・∀・)ナゼダ?

(・∀・)ナゼダ?

(・∀・)ナゼダ?

(´⊙ω⊙` )











ブレッドボードでいろいろいじって研究する(野外

KIMG0285






原因を究明するとどうもピックアップコイルからの配線を拾えてない模様。

ということでPALSからのGND(0V)に短絡してるコンデンサと抵抗をとりました。

なぜ動かないかは電気系は専門外なのでよくわかんない・・・





完成回路図

7SEG(完成)


回路的には非常に簡単ですね。

一度基板上に回路を組んだため、短絡してる線を切って対処しました(あ

この適当さがケ響ヌクモリティ・・・( ´∀`)



できた!うごいた!!!!!!

KIMG0287




で、これをプラスチックケース(マルツで80円)に入れて、配線まとめてギボシで車体と繋げられるようにしました。

20150311_172734


ちなみに回路上のVccはキーオンでDC12V(バッテリー)とつながる配線に分岐させてかませます。

GNDも同様に(ry

PALSはCDI手前の配線からピックアップコイル配線を分岐させます。








とりあえず上のケースを無理やりねじ止めでつけて試走。

KIMG0296

しっかり動いてますのでワイニッコリ

٩( ᐛ )و














ちなみに先に挙げた問題点に関して

  • ピップアップコイルの電圧はどのくらい?

どうも他のサイト見てると最大25V以上のパルス見たいです。また、AVRにそれ直付けしてもいいかって話ですが、AVRにはI/Oピンにクランプダイオードの保護回路があるようなので大丈夫っぽい。電流に関してはしっかり抵抗で制限してるし行けるっしょwww


以下ATtiny2313データシートより、I/Oピンの回路説明

jpg large



  • ピックアップコイルのパルス間隔って0.25ms以上あるの?

一応あるみたい。現に動いてるし。電磁誘導の式から幾何学的に求められなくもないですが解析になりそうな予感。


  • つーか他のノイズとかどうすんねんwww

3端子レギュにはしっかりノイズ対策のコンデンサー入れてあるので電源側は問題なさそうです。

パルス線が一番長いのでそこにノイズ乗りそうですが大丈夫そうですお( ^ω^)おっ

ただし電源がバッ直の安定電源の話で、コンデンサー入りのバッテリーレス車ではどうにかしないとヤバソウ。

現に今回はカブのヒューズ切っちゃってジェネレーターの配線からの電源ではノイズ乗りまくりの不安定動作でした。

バッテリーレス車には詰めないね☆(ゝω・)vキャピ


  • ちみぃー、これ精度には妥当性あるの?(教授並感

これに関しては何とも言えません。一応tiny13aちゃんによるパルスでは確実に設定パルスに対し正しく表示してました。ただ、AVRの内部発振8MHzは温度により誤差が生じます。これに関してはセラミックなどの発振子で対処可能です。


また、0.25msごとの計測なので高回転時にはパルス計測時の誤差が生じます。

たとえば17000rpmでは283.3Hzのパルスなのでパルス間隔は3.529msです。これを0.25msでカウントすると14.118カウントとなります。計測には整数カウントなので端数は切り捨てなので14カウントとなります。この時点で誤差が(ry

さらにこれが15カウントとなると16000rpm、14カウントでは17142rpm・・・

要するに高回転時では表示回転数の飛びが発生します。現にtiny13aちゃんの設定パルスが高回転時は出ませんでした。

これに関しての対処法としては、カウント間隔を短くするというソフト面で対処ができます、そうすると微小なノイズを拾う可能性もあるので、ノイズ対策も必要となります。

(つーか1/8分周辞めちゃうとタイマーカウント数が8bitじゃ足らないので16bitの物使わないといかんという)


ただし、実際カブの走行時には10000rpmなんて行かないですし、アイドリング時は1300~1500rpm内で収まっているため、現状の精度では使用上問題なさそうです。

サーキット行ったり回したい人は既存の奴買ってね☆(ゝω・)vキャピ












と、以上問題点などをいろいろたらたら書きましたが、現在の使用では問題なく使えてるので大満足です。

ちなみに、

最初の画像になりますが、遊び心で起動時にメーターアクションを付与しました。
20150312_190702

起動時に「CUB」と表示する機能です。こういう遊びができるのも、完全自作のなせる業です。

他にも999~0まで起動時アクションさせるとか点滅させるとかいろいろできますが、フラッシュメモリ節約のために自重

(決してメンドクサイとかではない)



市販品のタコメーターは基本的に2000円くらいします。これが900円で自作できたなんてのは成功と言っても過言ではないような気がする。

メーターアクションや自分のノウハウの向上、目標の達成、いろいろなことが得られたので作ってよかったと感じてます。


ここ1週間、毎日起きて工作して悩んで深夜超えてから寝るって生活でしたので、なにぶん無事製作できてよかった・・・・・・

ヤケ酒やヤケタバコは非常に多かったけど・・・












とりあえず完成を見た株タコメーターですが、これからの課題としては、

  • 防水性能の向上
  • 精度の克服
  • 7セグ表示はではなく、LCDやアナログ表示も挑戦したい
  • 温度計や時計機能も欲しいよね?

って感じ。現在LCDの起動試験に挑んでいる最中です。


つーか温度計機能はセンサーのAD変換必要だしtiny2313ちゃんだけじゃできないのよねぇ・・・

もしかしたら新しい娘(マイコン)を導入するかもですw

下手したらAVRじゃなくてPICに浮気してたりして(ライター自作しないと)





このように、電子工作はオタ趣味としても活用度が高いので、是非皆様も電子工作初めてみて、自分たちの単車なり原付なりに実装してみては?って感じのお勧めをして、最後を締めたいと思います。


電子工作は初期投資が非常に安いので誰でもできるのがいいね☆

浜松にはマルツもあるのでパーツの買い出しも楽で便利です。


もし作りたい!とか人は僕に直接聞いてくれればお答えしませう。










最後に別にこんなものだれも使わないと思うけど、今回のソースコードとかをうp

基本上の回路組んでプログラム焼けばできます

また専門の人にいろいろ言われそうなプログラムだけどご愛嬌

自作タコメータープログラム(c)

自作タコメーター回路図