2015年12月21日月曜日

BB-8をつくる その4

映画公開には間に合わす・・・

とりあえず。中身をつめてみるとこんな感じ。
一応、磁石を引っ付けることができた。
ただし、内容物が軽いので、ふらふらとしているようです。


上は、単に前後運動しているだけで、制御を全く入れていないので、無線モジュールを購入。


こちらで、PCからシリアル通信を行って、モーターを制御させます。
(何も知らなかったので、古いXBeeモジュールを購入してしまい、少し手間取りました。)


簡単にいうとUSBを無線化しただけです。

そして、ためしにUNITYからシリアル通信できるプログラムを作成。ひとまずXBOXコントローラーで制御できるようにします。






2015年12月12日土曜日

BB-8をつくる その3

何もはいらない。

早速BB-8にしようとおもったものの
この大きさのアクリルボールと、現状のメカでは、磁石をつけるスペースもなければ
おそらく無線受信デバイスも入らないのではないだろうか・・・。
実は、モバイルバッテリーも若干ボールの内側に擦っている・・・。

ここで私は考えた。

胴体はもっと大きなものでつくればよいのでは・・・と。
むしろ、等身大(だいたい高さ60cmらしい)で作れば・・・。

そう考えると胴体になりそうなものを探さねばならない。

ちなみにアクリルボールは大きくなればなるほどアホみたいに値段があがる上、
半球として使うことが前提らしく、変なフランジがついていたり
接着できそうにない構造だったり、そのくせ薄くてペラペラなのである。

ちなみに条件としては、価格が安くて内側も外側も滑らかでほどよくきれいな球体、そして中空構造。
そんなものがあるのだろうか・・・。

候補をあげてみた。
・発泡スチロール玉 : 形状としては良いものの中身が詰まっている。
・地球儀 : そもそもが高い。玉だけも売ってはいるが、分解したところで、中がなめらかだとは保証できない。そして、そんな大きさがない。
・3Dプリンタで製造:値段と大きさ的にまずムリだろう、

BB8の胴体直径(約50cmくらい)の中空ボールなどほぼないも同然であった。


脳内会議の結果、50cmはあまりにデカすぎるだろうということになって
前回のアクリルボールの半球をヘッドパーツとした胴体の大きさに落ち着かせることにした。

大体、直径30cm程度となる。

ここで、友人のアイデアから、かなりよさそうなものを発見。

こちらである。

10号花火玉

しかも、ご丁寧に3DCADデータまであるという。
これを見るに・・・理想の形状である。
そして、価格も比較的安い。
データを見る限り、紙製ではあるものの、不要な凹凸などはないので十分使えるのではないだろうかと判断し、早速ポチッてしまった。


待つこと数日。
ダンボールで玉が届いた。



家族には大変なサプライズになってしまったが、見た目に、損傷はないようだ。
むしろ、紙とはいえ、圧縮されているため、そうとうに硬い。
これには驚いた。
水にさえぬれなければ鈍器に使えるんじゃないかというレベルである。

BB-8?・・・見た目は、まあ、ぼちぼち良い感じ。
あとはメカをどうにかする。

続く。


2015年11月28日土曜日

BB-8をつくる その2

早速プロトタイプ作りへ。

以前つくっていた倒立振子のメカをそのまま使えば
車輪二つ左右独立制御は達成できそうな気がしたので
じゃあ、あとはボール部分を買ってこよう。

東急ハンズへ赴き、おもむろに適当な半球アクリルボールセットを購入。
半球をあわせると、球体になるすぐれものである。
でも意外と高い。3000円。

われながら良い買い物をしたと意気揚々と帰宅。
しかし、ここで「メカが大きすぎて入らない」ことが発覚。

何も考えずに買い物をすると良くない。

ここで、元倒立振子の身長を削った。
Arduinoをnanoに変更し、モバイルバッテリーを無理やり搭載した。
そして中でメカが倒れないように前後にアームを作成,。

これによりなんとか汚くアクリルボールに収まった。

ボールに収まると、意外や意外、ちゃんとタイヤが常に下のほうにくるではないか。
これは、ひょっとすると倒立振子のように積極的にバランス調整を行う必要がないのでは?

とりあえず、ジャイロとかも無視して、
テストとして単純にモーターを一定時間ごとに前後に動かすスケッチを作成。

しかし、ここで問題が。

1.スケッチをコンパイル
2.USBを抜いて、モバイルバッテリーを接続。
3.モバイルバッテリーの電源を入れる
4.上半球をかぶせて、マスキングテープを貼って半球同士を固定
5.床にそっと置く

このままだと
3.の時点で勝手に動き出してしまうのだ。

下半球から脱走しようとするメカを抑えながら上半球をかぶせようとすると
指を挟んだり、マスキングテープをはさんだり、大脱走したりの
大変てんやわんやのしっちゃかめっちゃかに・・・。

・・・あ、そうか電源入れてから動き出すまで余裕を持たせればいいのか。

そんなわけで、電源をいれてから10秒後に動き出すスケッチに変更した。
いざトライ。



どんなもんでしょうか。
止まる瞬間はおおきくふらつくものの、意外とうまくいっているんじゃないでしょうか。

徐々にとまるようにすればある程度解決するのでは・・・と思っている。

続く。


2015年11月16日月曜日

BB-8をつくる その1

スターウォーズ最新作に登場するBB-8
なかなかユーモラスなドロイドだと思っていたら
なんと、実際に動くプロップがあるではないか!

注:いきなりデカい音がなるのでご注意を。


CGだと思っていた!
そして、あのSphero社から玩具のSphero BB-8が発売された。
すごい!いったいどういうメカニズムなのだ!?
と思ってしまうとても不思議な動きである。
頭はなぜ落ちないのか・・・。

(関係ないけど、このアプリのUIと音声作ってるの、ゲームのPortal2作ってるところだよねたぶん。)

我がものづくりブログとしては
メカニズムの解明?とともに早速作ってみようと思い立った。
(海外ではもうすでに作られている人がいるようだが・・・。)

調べてみるとすぐにメカニズム検証をしている海外サイトが見つかった。

How does BB-8 Work?

下のほうに3Dモデルと2種類のアイデア、透視図まで用意してくださっている。
これは面白いアイデア!
だが、なかなか複雑そうではある。
そして、どうやらSphero社が本物(?)のBB-8の制作も手がけているようだ。

であれば、Sphero、Sphero BB-8のメカニズムを知りたい!
何かヒントが得られるかもしれない
調べると、早速SpheroとSphero BB-8 をバラバラにしている方がいた。




ギャー!
しかし、思いのほか、外装めっちゃ頑丈にできてる・・・。

メカニズム的には
ボールの中には2つの車輪があって、それぞれをモーターで独立制御しているようだ。
なんと、シンプル。
後は無線ユニットだったり、非接触型充電装置だったり、CPUだったりバッテリーなどが詰まってるっぽい。
そして頭は磁石にひっついてるのね。これもシンプル。

そして、日本にも。
リモコン式のボールのガジェット「Spero」を分解して中身を調べてみた

なるほど、加速度センサやらジャイロセンサ、電子コンパスが乗っているわけですな。
これらをたくみに使って、倒れないように制御しているのだろうか?

その辺り原理がよくわからないので、早速、Spheroのメカニズムを元に
プロトタイプを作ってみようと思う。

話はそこからだ。

2015年9月14日月曜日

倒立振子をつくる その1

少し休みがもらえたので
制御の基本といわれる「倒立振り子」を作ってみることにした。

倒立振子は、簡単に言えばセグウェイのような、逆さにたったタイヤのついた振子(そのまんま)のこと。
逆さにたつためには、倒れそうになったらその方向に移動して倒れないようにバランスをとる必要がある。小学校のときに、手のひらにホウキを逆さに載せてバランスとってたアレみたいな感じでしょうか。
これをArduinoにやらせることにした。

しかし、私はそういった知識は皆無なので
先人がArduinoで制作された倒立振り子を作りながら、勉強していこうと思う。
個人的につまづいたところなど書いていく。

こちらのサイトを参考にさせていただきました。
半日で作る倒立振子

半日でできるっていうところに、すごく魅力を感じた。ほんまかいな。

というわけで参考サイトStep1~4くらいまで軽く読んで
急ぎ早に必要なセンサー、部品類をポチる。


*** ボディ ***

この辺りは参考サイトと同じパーツを使った。

・ユニバーサルプレート(2枚セット)

・ユニバーサルアームセット

・ダブルギアボックス
 だいぶ前なんちゃってarduino戦車を作ったときに購入してた。
 でも、それが原因でトラブったので(後述)、出来る限り新品買いましょう。

・スリムタイヤセット

*** 電装 ***

・arduino UNO

・ブレッドボード

・ジャンパ・ケーブル
 これは、たくさんあったほうがいい。
 ※ただ、何十本数百円の「安物」は、中の線は非常に細くて切れやすい。
 モーターにはんだづけorまきつけて接続すると、実験してるうちにたいがい切れるので
 最安値のものはやめましょう。

・モータ・ドライバIC(TOSHIBA TA7291P×2)
 これは、Arduinoでモーター動かすときに皆買っているのではないだろうか
 定番のモータードライバ。
 ただし、参考サイトにもあるように、後ほど別のものを使う。(詳細は次回以降)

・ジャイロ・モジュール(秋月電子 K-04912
 こちらは、参考サイトにも書いてあるように、個体差とかあるらしいので念のため2個購入した。
 ただし、参考サイトにもあるように、後ほど別のものを使う。(詳細は次回以降)

・単3電池×4
 モーター駆動用。通常の電池だと恐ろしい勢いで電池を消費することになったので、容量が大きくて激安の充電式電池TOSHIBA IMPULSEを4本(充電器付き)購入。使い勝手はすごい良い感じ。

・モバイルバッテリー
 こちらはArduino駆動用。家にあった適当なやつ。参考サイトでは9V電池を使用。

・電池ホルダ(単3×4本用)

・電池スナップ1個
 9V電池を使っていないので、2個ではなく、1個。


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





動画アップロードテストも兼ねて、ブラシレスモーターがグィングィンしてるところを撮影。

出力は20%程度。

2015年9月6日日曜日

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


Arduinoでブラシレスモーター動かすよ
の続き

ソフト編

ソフト的には
Xマイクロ秒ONにして
20000マイクロ秒-Xマイクロ秒OFFにするを繰り返す処理にしている。
つまり20000マイクロ秒周期の信号になる。

PCからシリアルモニタを使って、キーボードから0~180の間で数値制御できるようにした。0を送るとXの値が1150、180を送ると1850になるようにしてある。

※Xの値は、現状資料を見る限り1150~1850マイクロ秒としているが、ESCによっても違うみたいなので
まだよくわかっていない。誰かご存知でしたら教えてください。

今回は3番ポートで信号を送る。

実践編


配線をミスっていないか確認する。
モーターがすっ飛んでいかないようにきちんと固定してることを確認する。

※最初回したときモーターの固定が甘かったので私は近くにおいてあったけしゴムをすっ飛ばした。
怪我しないように気をつけよう。

キャリブレーションするためにシリアルモニタから180を入力。
その次にESCに電源を繋ぐ。

ピロリ。ピーピーと応答したらシリアルモニタから0を入力。
ピーと応答したのを確認したらキャリブレーション終了。

その後0~180までの適当な数値を入力するといい感じに回転するはず。
最初は10あたりが安全かも。

以上、ブラシレスモーターを回す でした

2015年7月26日日曜日

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

ブラシレスモーターをArduinoで動かすよ
の続き
ハード編


使うのはArduinoUNOと、前回話にでてきたESC、ブラシレスモーター
そして、ブラシレスモーターを動かす電源として12V程度のDC電源。

DC電源はバッテリーとか安定化電源とか安全な手を使ってほしい。
私はテストで低回転で動かすだけだからと容量大きめのACアダプタを使ってしまったが
大変危険なので決してまねをしないように。
特に高回転高負荷ではかなりの電流が流れるので火災につながる可能性もあり。

ちなみに9V電池も試したが最初から痙攣したようになって動かなかった。(電流が足りてない?)

※9V電池
昔はおもちゃとかによくつかわれていた独特の四角い電池。
6LR61と書いてあるものは中に単6乾電池が6本入っているのだとか。なるほどね。
6F22は6枚のセルが入っているようだ。
良い子は絶対分解しないように。

で、配線は以下の感じ。

ESCから伸びる太い白黒線を電源に。
赤は12V、黒はGND。

ESCから伸びる黒と白の線をArduinoに。
白は信号線(今回は3番ポート)黒はGND。
赤色はArduinoにはささないで、ショートさせないように絶縁テープなどで処理しておく。

※間違って変な所にさすと、Arduinoだけでなく
接続されたPC側のUSBポート、果てはPC本体まで破壊しかねないので気をつけよう。

ESCから伸びる青の三本線はモータに接続。

これで配線は終了。

次回はソフト編



2015年7月20日月曜日

燃費計をつくる その8

ちょっと夏風邪気味と多忙気味で更新遅れ気味のすいさんです

燃料噴射量測定がぼちぼちできてきたので
そろそろ走行距離計測に入ろうかと思う。

カーナビなど設置したことのある人にはわかると思うが
基本的にECUを搭載した車には車速信号線がある。

ここに流れるのは車速に比例した回数のパルス信号になる。

詳しくはWkipediaココ!

下のほうに規格で1km走行ごとに637回転と書いてある。
で、おそらくFD3Sはワイヤ1回転ごとに4パルス・・・なはずなので
1km走行ごとに2,548パルス来ることになる。

なので、走行距離測定ではこのパルス回数を数えて、「2,548回来たら1km走ったよ」とすることで
走行距離が計測できるはず。

さらに単位時間当たりにパルスの来る数(周波数)を計測することで速度も割り出すことができる。

あとは、クランプセンサーでそれが測定できるのか実験が必要というところ。
できたら、クランプセンサーをもう一個購入する必要がありそう。




・・・ここのところクソ暑いゆえ、作業が滞る可能性があるので、ご了承ください。

2015年7月5日日曜日

Unityでロータリーエンジン

今回はArduinoからは離れて、ソフトウェア的なものづくり。

CGでロータリーエンジンの動作模型制作にチャレンジした。
ここのところ更新が遅かったのはこいつのせい。

概要


マツダRX-7 FD3Sに搭載されていた13BTロータリーエンジンをベースに動作模型を制作。
一部、見づらい部分や必要なさそうな部分を簡略化している(めんどk

こちら。
13BEngine

※ブログに埋め込んだら画面がでかすぎて、大変なことになったのでリンクを貼る。

たぶんCromeじゃ見れないかも。
ブラウザを変えて、unity web player のアドオンが入っていれば動作するはず。

操作方法は、基本的にはマウスクリックで。

Worksモード

ロータリーエンジンの4工程
吸気 Intake
圧縮 Compression
膨張 Power
排気 Exhaust
をじっくり観察できる。

Viewerモード

各パーツを表示、非表示にして動作する様子を
じっくり観察できるモード。

十字キー左右:カメラ回転
十字キー前後:ズームアップ、ズームアウト

ちなみに、一部を消した状態でWorksモードに戻ることもできる。


逐一制作物アップしてもおもしろくないかなーとおもって
途中経過はアップしてなかったが、思いのほか時間がかかってしまった・・・。

数年ぶりにモデリングをしたので、かなり手間取ったのである。


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


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




2015年5月27日水曜日

燃費計をつくる その3


噴射量計算に必要な要素

 インジェクターに電流が流れている間燃料が噴射され、電流を止めると噴射も止まるONOFF制御だから、単位時間あたりのON時間を測定する。 インジェクターは1分間あたりに噴射できる最大量(常にONの状態で1分間に噴射できる量)がものによって決まっているので、これらから噴射量を計算することができるはず。(図1)ちなみに今回は個人的に噴射周波数も取りたいので噴射開始時間から次の開始時間までの間の時間(噴射周期)と、噴射開始時間から噴射終了時間(=ON時間)も計測することにした。



図1 ONOFFの矩形波。実際はこんなにきれいじゃないらしい。
※ちなみに、この波形は一種のPWMとみることができる。と思う、ので、今後は噴射周期に対するON時間の割合をデューティ比と説明する。


信号の実測方法

 私はECUの信号線などを切ったり貼ったりできるだけしたくない性格だ。(車自身が何かで故障したときに余計なトラブルシューティングが増えるので。)
なので、今回の作戦には信号線を切断や分岐させずにながれる値を取得したいという、無駄にハードルをあげる制限を自らかけた。

 ここで私が考えたのが、線の周りの磁界を計測するクランプセンサーだ。これであれば線を傷つけずにはさむだけで電流が測定できるはずだ。
直流クランプセンサーは鬼のように高額だが、交流クランプセンサーは2000円前後と安い。今回はインジェクターを動かすほどの電流のONOFFを計測するので、これで十分と考えた。(半分適当・・・買ってみなくちゃわからない)

クランプセンサーはこんなやつで、最低周波数10Hzくらいから、割とよさげなものを選んだ。
http://www.multimic.com/products/detail/20 

どういう値がでるか楽しみだ。
続く。

2015年5月26日火曜日

燃費計をつくる その2

燃料噴射のメカニズム


まず一般的な燃料噴射のメカニズムについて調べてみた。
 
 クルマの燃料は燃料タンクにある燃料ポンプによって圧力をかけられ、燃料配管に送られる。燃料配管はエンジン内部にあるインジェクターとよばれる噴射装置(超高精度のソレノイド電磁弁)につながっており、ECUからの制御でインジェクターが開くと配管にかかる圧力によって燃料が噴射される。おそらくこんな感じ。(図1)

左上のタンクにあるポンプから右のインジェクターへ
ECUからの制御で噴射。(大きさ比は適当)
 じゃあ、ECUからインジェクターへ信号がでているはずなのでそれを取得できる・・・と思ったが、どうやらそこの仕組みは、バッテリーからの12Vをインジェクターに通し、そのマイナス側(アース側)をECUに引き込んでその中でアースへの接続、接続解除を制御しているようだった。つまり制御信号自体はECUより外側には行かず、ECU内部で直接リレーかなにかで制御しているようだ。
不思議。

 私は整備書は持っていないので確証はないが、おそらくFD3Sも同じ制御だと思う。(図2)


ECUの中でスイッチ(実際はリレー?)で制御。 

 つまり、ECUからの燃料噴射信号線と今までいっていたものの、実際OUTではなくINであり、そこにインジェクター(ソレノイド)を動かすほどの割と大きな電流が流れたり、止まったりしていることになる。燃料噴射量を測定するには、その値を取得できればいいはず。

次はその信号の詳細について

続く。

2015年5月25日月曜日

燃費計をつくる

ArduinoとかRaspberry Pi を購入したので
RX-7 FD3S のリアルタイム燃費計を自作してみる。

 まず燃費とはkm/Lと書く様に
燃料1リッターあたり何km走るかを表した単位になるので
消費した燃料量と走行距離がわかればいい。

これらの情報を取得する方法について

 最近のクルマにはOBD2と呼ばれる各社共通の端子があり、ナニカシラのハードウェアからECUに対して通信することができる。(通信プロトコルは色々違うらしい。)
そこから、現在の燃料噴射量と走行距離(速度信号)を取り出すことができるはず。

と思って探してみるも、FD3SにはOBD端子らしきものが見当たらない。


 調べてみると、一応端子はあるもののOBD2より旧規格な上に通信負荷をかけすぎるとエンジン制御がおろそかになる(可能性がある)らしい。そして、通信方法に関する資料がほとんどない。
さすが古い車なだけはある。
色々試して遊んでたらエンジンブローなんてほどオソロシイ話はないので、別の方向からアプローチしよう。

続く。