2015年6月28日日曜日

燃費計をつくる その7

実測作業に入る前に


さて。今度は、実際に燃料噴射量をリアルタイムで表示させて走らせて見た。

前回のブログに書いていた値はインジェクター一本分になるので、二本=二倍にしておけばばっちりなはずである。
(試走の際は残りのセカンダリーインジェクターが噴射されないようにゆっくり走ればよい・・・はず)

もしコレをまねされる場合は、
走行中は絶対にノートPCの画面を見ないように。
きわめて危険なので。

私の場合は、今回助手席に友人を配し、リアルタイムに値を読んでもらうことにした。
まさに助手。

謎のINF


 アイドリングをしてるときは大丈夫なのだが、走り出して信号で停車したところでINF(ムゲンダイ)になる値がでてくるという。(何の値だったかは忘れた・・・噴射量は数値としてでているとか)

原因は、噴射量が0になることがあり、その0で割っていたことが原因だった。

 これはアクセルを離したとき(=エンジンブレーキ)、燃料噴射を停止する制御になっているからだ。一般的なインジェクター付きECU制御のクルマならば必ずそういった制御になっている。いわゆる燃料カットとよばれているものだ。
だから、信号で止まるときに値がおかしくなっていたようだ。

教訓:でてくる値が0になることも考えてプログラムを作ろう。

(単に噴射量だけだしていれば特に問題はないが、それを元に色々計算したのが遠因でもある)

※ちなみに
 浮動小数点型と整数型だと0でわったときの挙動が違うらしい。
浮動小数点型は、言語にもよるがNanとかINFの値がでる。整数だと例外処理(プログラム停止)になるようだ。知らなかった。
wikipedia:ゼロ除算

謎のスーパー消費量


 やっとこさまともな数値がでたので同じガソリンスタンドへ戻ってくる約10kmルート、満タン法で計測した燃料消費量と比べてみることにした。

満タン法:5.3km/L
Arduino;2.3km/L

私:「ヌワー!アメ車か!」
友:「誤差っていうレベルじゃねーぞ!」

何度も試走して、調査に時間がかかったが、どうやら

「Arduinoで計算させ、さらに直接シリアル通信で日本語の文字列を表示していること」が原因だった。

このときは、もっと色々表示してた気がする。

きわめて基本的なことだった・・・。

 というのが、今回の計測方法だと、周波数(回転数)が上がれば上がるほど当然表示回数も増える。計算回数も増える。速度が追いつかなかったのだ。

(ちなみに、FD3Sのレッドゾーンは8000回転から。このとき許される時間はわずか0.0075秒。のんびりシリアル通信+日本語文字列ではとても間にあわない。もちろん、レッドゾーンまで回していたわけではなく、普通に2000~3000ではしっても間にあっていなかったのだが。)

横着はダメである。

なので、プログラム変更をした。

 Arduinoはセンサーの値のみをそのままPCに送る役割に徹してもらう。、
燃料噴射量の計算と表示は、PC側(今回はProcessing)で行った。

(通信速度を上げるという作戦もあるが、そもそもこの作戦自体、あまりキレイじゃないので、こういう方法にした)

これで、どうでしょう。

ノートPCの余りある計算能力を使って、グラフまで描画!
素敵!
最初からこうしておけと。


2015年6月21日日曜日

燃費計をつくる その6

周波数計測

まず、燃料噴射量を計算する前に、クランプセンサーで正しい値がでるかの下調べとして

インジェクター線をクランプしてアイドリングで周波数計測する。
信号のONOFFを計測して、ONから次のONまでの時間をはかれば周波数は計算できる。


・・・
・・・

何度やっても出ない・・・。
アクセルを踏んだ一瞬だけ値がでる。

何かおかしい。

接続を確かめてみると、前回言っていた緑のインジェクター線ではない、まったく関係ない線をクランプしていた。手元が暗い&狭い、姿勢がつらいので間違ったようだ。(いい訳

作業をするときは気をつけよう。




改めて、接続する線を確認して確かめてみると・・・。

おや、
妙な値がでる。
オシロスコープで見てみると、インジェクター自身の逆起電力でマイナス側にすごいヒゲが生じているようだ。(写真取り忘れ)
+と-を逆に測定するとそのヒゲ側を拾ってしまうようで、きちんとオシロスコープで確認してから、測定しよう。(あと逆起電力側でArduinoがやられないように念のためダイオードつけとくといいかも?)

イメージ図。矩形波のあとガクンと逆起電力が発生。こっちを測定しちゃった。


なので、+-入れ替えて再度測定。

若干ノイズが混じっているものの
だいたい11~13Hz。

来た!

では次に、これが正しい値なのかを計算してみる。

13Hzとは、一秒間に13回燃料噴射していることを意味する。
FD3Sの場合はポート噴射式のため、多段噴射は行っていないはず。この場合ロータリーエンジンは、噴射回数=点火回数になる。

さらに、点火回数=エンジン回転数(この辺りは、いずれロータリーエンジンのメカニズムを解説する予定)なので、噴射回数=点火回数=エンジン回転数

つまり、一秒間に13回転となる。
一分間に780回転=780rpm。

 タコメーターで確認できるアイドリング回転数とだいたい一致する。
エアコンを入れて負荷をかけると少しあがって、タコメーターとも比例して動いていそうなので、クランプセンサーでの測定値は、ぼちぼち正確なようだ。


※ちなみに
 ポート噴射ではなく、直噴やディーゼルなどは多段噴射させるらしく、状況に応じて1サイクルで何回噴射するか変わってくるはずなので、噴射回数から回転数を求めることができない。


噴射時間の測定

 ただしくクランプセンサーで値がとれていることがわかったので、今度こそ噴射時間を計測する。
前回の測定の値を常に保持おいて、「前回OFFで今回ON」だったときから「前回ONで今回OFF」までの時間を計測する形にした。

ちなみに前の記事で書き忘れたが、
プライマリーインジェクターは「一分間に550cc」噴射できる性能があるという。

だいぶ前にも書いたが、「噴射時間と1分間の噴射量から噴射時間あたりの噴射量」は求められるはず。


アイドリング時の結果が下。ただ、このときは色々情報を見たかったのでDuty比(デューティー比)やらFreq(噴射周波数)やら合計噴射量やらを「Arduino」で計算させ、シリアル通信でノートPCへ表示させている。(なお、これが後に災いの元となる。)

続く

エアコンいれたときちょっとあがる。

2015年6月20日土曜日

燃費計をつくる その5

燃費計制作の続き

シンプルな構成。
 前回の記事に若干写っていたが、こんな感じでまず、Arduinoへ適当に接続してみる。

クランプセンサーは抵抗をはさんでAnalogINに接続するだけで、簡単に値が取れる。

参考にしたのは以下。


 そして、次にFD3Sはどこに燃料噴射信号線があるのかを調べる。

 昔はディーラーに聞くと整備書とか見せてくれたらしいが、最近は企業コンプライアンスがキビしく、お得意様でもそういった情報は公開されなくなっている。

ネット上にあるだろうと思いきや、ない。

海外サイトまで調べてみるもなかなかにマニアックすぎてそういったものはでてこない。


~ 完 ~


うーん・・・なんということしょう・・・

ここで詰んでは、ブログをここまで書いた意味がなくなってしまいそうだ。

仕方ないので、昔知り合いから譲り受けたRX-7関係の雑誌に必要な情報がないか、物置から引っ張り出してみることにした。


大量の資料?

でてくるのは昔流行った改造、チューンの情報ばかりである。あと、ロータリーエンジンのオーバーホールとか。私にはあまり必要ない感じ・・・。

その中に、1冊だけECUの情報があった。

その名も「RX-7 オーナーズブック」。

FD、FCのDIYするであろう範囲を網羅している簡易整備書といったところで、基本的な分解方法やら配線図などが事細かに書かれている。これはすごい。

今後、常にクルマに積んでおくことにした
それによると、ECUは助手席の足元左側、内張りの裏にあり、エンジン側に接続口がある。(なので、作業は助手席足元へ頭を突っ込むというつらい姿勢を強いられる。)そして、車両搭載状態のECUにはでっかい白いコネクタが三つ接続されている。その一番上のコネクタが今回必要なもの。
※ちなみにこれは6型の情報。

助手席足元左の内張りをはずすとこんな感じ

そのコネクタの下側、手前側の緑色の4線がそれぞれインジェクターへの信号らしい。
ちなみにこれらのハーネス類はすべて絶縁テープでまとめられていてクランプしづらいので、テープをはずしておくと作業がやりやすくなる。ただし、絶対に信号線へ傷をいれないように!

中央に移っているコネクタの下側4線がインジェクターへの信号線

 さて、この4線についてだが、詳しく説明する。この13B型ロータリーエンジンは1つの燃焼室(レシプロでいう一気筒)に対して、「プライマリーインジェクター」と「セカンダリーインジェクター」2つのインジェクターを備えている。燃焼室は「フロント側」と「リア側」の2つ(2ローター)なので4つもインジェクターへの線があるということになる。

 プライマリーインジェクターは常に噴射、セカンダリーインジェクターは回転数に応じて不足分を噴射したりするらしいので、今回はプライマリーインジェクターへの信号を測定することにする。(いずれはセカンダリーも測定する必要がありそうね)

フロント側のプライマリーインジェクターにつながる信号線の場所も把握したし、Arduino側にはクランプセンサーからの値に基づいて、プログラムを作成した。(次の記事で、詳しく書きます。)



では、いざ行かん。


続く。

2015年6月13日土曜日

燃費計をつくる その4

今回は燃費計をつくるためにオシロを買ったお話。

 帰りが遅い関係上、基本土日じゃないとクルマは動かさないので、
家でもテストできるようオシロスコープを購入した。

 とはいいつつも、普通の据え置きオシロは高くてとても手がでないので、あと最終的にクルマの中でテストもできないので
DSO201とよばれる中華携帯オシロを選んでみた。なんと10000円を切るお値段!
本体。下の青いのはサーボテスター。こちらはまた別の機会に。
安い・・・はたして大丈夫なのか


参考サイト
amazon

一応販売はサインスマートなので、まあ信用できるかなと。


使い方とかはネットに溢れているので割愛。
感想をば。

・梱包、名称など

 とりあえず、梱包は中華製にしてはきちんとしてた。し、中身もそれなりに充実。欠品もなし!

でも、名称がDSO201だったりDS0201だったり安定しない・・・どっちが本当なんでしょう?
一応アマゾンではDSO、本体にはDS0って刻印してあるが・・・。

・概観

 何はともあれ、本体を見てみるとすごくなんだかしょっぱい携帯ムービープレーヤーな香りが。早送りボタンとか逆再生ボタンとかついてるし、音量?の+-ボタンもついてるし、プローブの接続口は、なんとなくステレオミニジャックが付きそうな大きさだし・・・。

 もしかしたら、何かの製品の筐体だけ使いまわしてるのかも 。
案の定ボタンとかはちゃちいので押しにくい。カチカチ堅い感じ。
取り回しはかなりいい。バッテリーもUSBから充電できるので簡単。
ただし、充電しながら測定すると測定不能なほどのものすごいノイズがのるので注意。





・測定精度

精度は悪くはない。一応1マイクロ秒まで目盛りはある・・・が、そんなに正確かどうかは不明。今回はインジェクターというハードウェア相手なのでそこまで精度は必要ないと割り切った。
きっと誤差とかはでているでしょうが、サーボ動かすPWM信号がはっきり見えるので、趣味で使う分には十分じゃないでしょうか。


・耐久性

耐久性は不明。とりあえず ぺらぺらではない。が、あまり乱雑に扱わないほうがよいかも。プローブの接続部分が細いので。



・使用テスト

ためしに前回購入したクランプセンサーを使ってテスト。
Arduinoでミニ四駆モーターをPWM制御して、モーターへ流れている電流をクランプで取得してみる。



動作テスト中
どんなもんだろう。
逆起電力のオヒゲやなにからはっきり測定できてるみたい。

ローパスフィルタとおして波形を安定させ、ソフトウェア側でヒステリシスをとるとそこそこな値が取れている模様。

波形が汚いのは、ミニ四駆のモーター自身が実はノイズを発信しまくってるから。実際のクルマのインジェクターはそんなにノイズだらけじゃないことを祈る。(ノイズで開いちゃったら困るし・・・)

さて、オシロについては、こんなところでした。
電子工作するなら、何かと便利なので、一台は持ってて損はない。でっせ。


2015年6月7日日曜日

ブラシレスモーター制御 その2

前回の続き

NEEWER 2212-1000KV ブラシレスモーター+30A ESCコンボ マルチコプター適用
の取り扱い説明書が中国語だったので全く読めない。


中国人の知り合いに翻訳してもらうことも考えたが、
GoogleにOCR(画像からのテキスト化)を無料で行うサービスがあるとのことで試しにそれを使ってみた。

やり方は以下。
http://office-taku.com/201209/web/2626.html

ためしに画像の一部分を切り出して「中国語(簡体字)」でテストすると・・・

二、选择设定项:
进入编程设定后,会听到8种鸣叫音,按如下顺序循环鸣 叫,在鸣叫某个提示音后,3秒内将油门打到最低,则进 入该设定项。
  1. “哗”  刹车(1短音)
  2. “哗一哗一” 电池类型(2短音)
  3. ”"哗—哗一哗一” 低压保护方式(3短音)
  4. “哗一哗一哗一哗一”  压保护阙值(4短音)
  5. “哗一”
  6. “哗一哗一”  进角(1长1短)
  7. ”哗一哗一哗一”  恢复出厂默认值 (1长2短)
  8. “哗一哗一”  退出(2长音)

とりあえず、テキスト化は見る限りばっちり そう。
さすがGoogle先生。
次にそれをGoogle翻訳簡体字から日本語)してみると・・・

第二に、設定項目を選択します。
プログラムを入力し、次の順序サイクルツイートに音をチャープ8種類を聞いて3秒以内に底にスロットルスティックの後にトーンをツイートし、設定項目を入力します。
「うわー、"ブレーキ(1ショートトーン)
「うわーすごい」電池の種類(2ショートトーン)
""うわ - うわーうわー「低電圧保護を(3ショートトーン)
「うわーうわーA A Aうわーうわー「電圧保護スレッショルド(4ショートトーン)
"ワオ"
「うわーすごい」タイミング(ロング1,1ショート)
「うわー、うわーうわーつの「工場出荷時のデフォルト(1長く、2ショート)を復元する
「うわーすごい」(2ロングトーン)を終了します

なんだこれ。

ワオが混ざってるあたりとか
最近のトレンドの単語を所々織り交ぜてくるあたりで笑いを取ろうとしてくるGoogle先生流石。

このテンション、これを思い出した。
北痘神げんこつ

Fufu...話を聞いてくれません。


 んで、
Google翻訳した結果から必要な情報を収集、ネットの情報をまとめるとこんな感じ

スペック:
UBEC:2A
入力電圧:DC6~16.8V(2-3SLixx)、
駆動電流:30A(最大:40A / 10S)

線の説明

・太い水色線(3本)
ESCで生成されたモーターを回転させるための出力線。ブラシレスモーターにある三本線にそれぞれ繋ぐ。

・太い赤と黒の線、
ESCに入力される電源入力線。バッテリーまたは電源に繋ぐ。(黒がグランド側)

・細い赤、黒、白の線
白は、ESCにPWM信号を与える入力線。
赤はBEC線(Battery Eliminator Circuit)と呼ばれるもので、ESCから出力される電源。(後述)
黒はグランド。

※BECについて
 昔のラジコンは、モーターを動かすためのバッテリーと、受信機を動かすためのバッテリーの二個をつんでいたんだとか。で、これを簡略化するためにモーターを動かすバッテリーで受信機を動かしちゃおうという発想で作られたのがBEC。必要がなければはずしましょう。

動作方法:

 ブラシレスモーターを回転させるには、スロットルの最大位置と最低位置をESCに覚えさせるキャリブレーションが必要になる。


1.細い赤、黒、白の線を受信機に接続、水色の三本線もモーターに接続。

2.スロットルを最大位置にした状態でバッテリーを太い赤、黒の線に繋ぐ。

3.繋いだ瞬間ピロリ♪、という音が鳴る。

4.二秒後くらいに「ピーピー」 とスロットル最大位置を確認した合図がなる。その後、スロットルを最低位置まで下げる。

5.1秒後くらいに「ピー」とスロットル最低位置を確認した合図がなる。

6.スロットルを動かすとそれに伴ってモーターが回転する。

動かすのに必要な情報はこんなところでしょうか。

ほかに説明書には

ブレーキ制御
電池の種類
低電圧保護
低電圧保護の閾値
を設定する方法も書かれてたり

トラブルシューティングが書かれていたりした。

次回、やっとこさArduinoで動かしてみる編へ!


2015年6月5日金曜日

ブラシレスモーター制御 その1

 近年流行っているマルチコプターやRCヘリの動力に使われているのがブラシレスモーター。

通常のモーターはブラシと呼ばれる部品でモーターが一定回転するごとに+-を機械的に入れ替える仕組みになっている。これを電子制御に置き換えたものがブラシレスモーター。

エンジンでいうとキャブレターがインジェクションになったくらいの革新的なもの。
コンディションや負荷に応じて最適な電流を流せる上、機械的摩擦がないのでメンテナンスが楽、同じ大きさのブラシモーターと比べ高効率、といいことづくし。
いまや新幹線をはじめ鉄道、自動車、家電にも当たり前のように使われているそうだ。

詳しくはwikipediaへ
http://ja.wikipedia.org/wiki/%E3%83%96%E3%83%A9%E3%82%B7%E3%83%AC%E3%82%B9%E3%83%A2%E3%83%BC%E3%82%BF

で、今回はその当たり前のブラシレスモーターを動かしてみねば。
せっかくなので、"Arduino"で制御しようと思い立った。

購入したのはこちら。ラジコン業界ではよく見かけるモーターとESCのセット。

http://www.amazon.co.jp/NEEWER-2212-1000KV-%E3%83%96%E3%83%A9%E3%82%B7%E3%83%AC%E3%82%B9%E3%83%A2%E3%83%BC%E3%82%BF%E3%83%BC%EF%BC%8B30A-ESC%E3%82%B3%E3%83%B3%E3%83%9C-%E3%83%9E%E3%83%AB%E3%83%81%E3%82%B3%E3%83%97%E3%82%BF%E3%83%BC%E9%81%A9%E7%94%A8/dp/B00JGEY3GI

正直マーケットプレイスは不良品や偽者がある可能性も高いときくのであまり乗り気じゃない。が、今回は実験なので安さにつられて買ってしまった・・・。
後々書くが、ほんと、オススメしない。皆さんは日本でちゃんと購入しましょう。

ちなみにESCとは、エレクトリックスピードコントローラといって、通常のPWM信号と電源電流を与えるだけでブラシレスモーター制御に必要な三相の交流を作ってくれる&その起動制御や回転数維持など色々自動的にやってくれる万能インバーターのこと。

注文してから待つこと2週間・・・。


やっと届いた製品。(と、プロペラ)



こちらは諸事情でゴムカバーをはずしたESC。






そして・・・。

「中国語」で書かれた取り扱い説明書。英語すらありません。すべて中国語。




全くWAKARAN


  まずこれを解読していくところからか・・・。