ロボカップジュニアサッカーに参戦していたTeamReverseの徒然を記すブログです
--年--月--日 (--) | 編集 |
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

2010年12月14日 (火) | 編集 |
Reverse父です。

Reverseは、今度の日曜、北九州ノードの練習競技会に遠征します。

なので、この競技会に向けて新型試作機の完成を目指して平日夜も開発を継続しています。が...
妹の方のガンローラー機は、一応動くようになったのですが、新たにつけた超音波(既製品:Ping)のうち、一つがおかしい???
外してどこが悪いのか見ようとしていたら、1cm×4mmくらいの部品がポロッと落ちてきて... ご臨終です。たぶんマイコンの発振子(セラロックか?)だと思われますが、表面実装品の上に電極ごととれていて修理不能!! うーん、既製品も不良品の場合があるようです。が、一回ロボットにつけてがんがん動かしてたので、もともと不良だったのか振動が悪いのかわからず...これ本番中に起きたら大変です。超音波は一つ使わずに済ますか、予備を使うか検討中です。(実は、ついてはいるけどまだ一つもプログラム中では使っていない;;)

姉の方は..一応先週中に形はできあがりました。が、くみ上げると指令通りにモータが動かない!!モータ一つずつ1秒ずつ動かしても、長いやつとか、ちょっとしか動かないやつとか、しばらくしたら一つだけ回り続けてしまうとか...I2Cの指令無視=いわゆる暴走ってやつですね。
これが恐ろしい「モータノイズ」ってやつでしょうか。グランド強化したり、コンデンサ追加したり、いろいろしてみても完全には解決せず;;(一応何とか動くくらいにはなっていますが...)いずれ解決の必要があるようですが、とりあえずまだプログラムがほとんど出来ていないので、そっちから手をつけているようです。

試合が出来るように、間に合うといいんですが...

コメント
この記事へのコメント
参考まで
Reverse父さん、こんにちは。

GRA父です。

Reverse父さんのご指導なので、そんなことはないと思いますけど、念のため。

電源はCPUとモータ用とは共通でしょうか?。
もし共通だとするとモーター駆動時に電力をほとんど持って行かれ、CPUの方が瞬停を起こして落ちてしまい電力復帰したがCPUは再起動して最初からプログラム動作をやり直しか、コモン線=-ラインが完全に共通である為、モータ自身でなくモータICから拾ってしまったノイズによってi2cが化けるのか。
それともプルアップ抵抗値がモータ無し状態ではなんとかあっていたが、実はモータ動作時ではあっていないため不安定になるとか。

これらは当方チームで実際に起こったことです。
ご参考になれば・・・。
2010/12/14(Tue) 21:59 | URL  | GRA父 #-[ 編集]
ありがとうございます
GRA父様

アドバイスありがとうございます。
モータ電源とCPU電源は別ですが,モータドライバ内でGNDが共通になってしまっていますので完全に分離はできていません。モータドライバコントロール用のAVRからの信号もフォトカプラとかは使っていないいい加減な接続です。またI2Cのケーブルがやたら長くなっていたので,それもノイズを拾う原因になっているかもしれません。モータの代わりに信号線にLEDつないだら正常に動くので,モータのノイズが原因かと思っていますが,オシロとか持ってないので想像だけで,モータ端子へのコンデンサ追加とかを考えているくらいです(部品が足りないのでまだできていませんが)。I2Cのプルアップ抵抗は5.1kのようですが,ちょっと大きすぎかもしれませんね。またいろいろ試してもらいます(って今週末試合なんだけど)。どうもありがとうございました。
2010/12/15(Wed) 01:39 | URL  | Reverse父 #-[ 編集]
コネクタ
コネクタは絶対接触不良が起こらないということはないので、振動によってたま~に接触不良が起きるという可能性はないとは言えないと思います。
僕は全国大会の準決勝らへんで、8個のIRセンサーのうち1つのセンサーの線の3本のうちの1本が接触不良になったようで、そのとき全く動かなくなってしまいました(暴走しました)。
コネクタは絶対に接触不良が起こらないと思い込んでいたため、発見時はかなりビックリしました。
接触不良というものは静かなときにはずっと通電しているとかいうこともあるのが、一番怖い所です。
Reverseさんの原因とは違うかも知れませんが、いちおうということで書きました。
2010/12/15(Wed) 21:32 | URL  | ZERO #xVu8mIRI[ 編集]
ありがとう
ZEROさん

コネクタ部分も結構不具合多いですね。ハンダ割れの他,うちではケーブルのピンを専用工具を使わずにラジオペンチで圧着しているので,時々線が抜けてしまいます。旧型機はあちこち接触不良で,センサの読めないチャンネルとか,モータが息も絶え絶えになったりとかしていました。
今回は,モータさえ動かさなければ信号の動作は期待通りなので,ノイズじゃないかな,と思っていますが,対策できるかどうか。まあ,何らかの方法で動くようにすると思います。

アドバイスありがとう。
2010/12/17(Fri) 09:59 | URL  | Reverse父 #-[ 編集]
ノイズの種類!?
今知っているノイズのことについて書きますので、違うことがもしあればすみませんが返信をお願いします。
ノイズには伝導ノイズと放射ノイズの2種類ありますが、"モータ電源とCPU電源は別"にしているのであれば、たとえ"モータドライバ内でGNDが共通になってしまっていますので完全に分離はできてい"なくても、つながっているところはGNDだけですので、伝導ノイズは絶対にないと言えると思います。もし、1本の線で伝導ノイズを起こすことができたならば、大変なことになると思います。電線にいる鳥なんか大変です。
ただし、FETのドレインの電圧はゲートへと伝わらないというのが前提です。これが覆されると先ほどのことは言うことができません。
ということは、Reverseさんのハードウェアの不安定な原因がノイズであると仮定したならば、そのノイズは伝導ノイズの可能性はなくなり、放射ノイズであるということになります。
ということは、ほかのロボットのモーターを近くで動かしてみれば、同じように不安定になるはずです。これで不安定にならなければ、原因はノイズではないと考えていいのではないでしょうか。
少し強引な考えかもしれませんが、理論的にはノイズに関してはこれで正しいでしょうか。
よろしくお願いします。
2010/12/18(Sat) 11:47 | URL  | ZERO #xVu8mIRI[ 編集]
放射ノイズ
Reverse父です。

ZEROさん,詳しくコメントありがとう。

うちの場合は,放射ノイズだったようです。他のロボットのモータを動かしたわけではありませんが,モータ近くに3つのコンデンサ(http://monoist.atmarkit.co.jp/fembedded/articles/miconkiso3/04/miconkiso3_04b.htmlを参考にしました)を追加し,電線を捻るという,RCカーのモータと同様のノイズ対策をしたら問題なく動くようになりました。ダイセンモータドライバの回路図を参考にしていたので,モータドライバ基板のコネクタ間にノーマルモードノイズ用のコンデンサをつけていたのですが,モータから基板までの配線が長く,その間の電線がマイコンの真上を通っていたので,基板に達するまでの電線からの放射ノイズが悪さをしていたように思います。発生源近くでノイズを断つことで改善できたようです。

伝導ノイズの方ですが,モータ側とCPU側のGNDが共通だと,モータからのノイズの影響でGND電位が変化してしまい(電圧はVccとGNDの電位差なので)CPUの動作電圧に支障をきたすことがあります。で,Vcc-GND間にコンデンサを追加したり,GND電位が部分的に変化しないようにGND配線を太くしたりしてみましたが改善せず,また,うちの現象はCPUリセットがかかるわけではなかったので,こちらが原因ではなかったようです。
まあ兎にも角にも,一応動くようになったので,なんとか出かけられそうです。(試合できるプログラムはまだ完成してないようですが,「動かない」ということはなさそうです)
2010/12/18(Sat) 13:02 | URL  | Reverse父 #-[ 編集]
ノイズについて
ZERO 様

私は電子回路の専門家ではなく、ノイズ対策についても最近本から仕入れた知識だけなので間違っているかも知れませんが、電源が別かどうか、GND が共有されているかどうかで伝導ノイズなのか放射ノイズなのか議論することは意味が無い様に思います。1本の線だけで伝導ノイズを起こすことも出来ます。鳥の例で言うとハイインピーダンスで長いU字型の電線の両端に足をかけさせて電線の一端に雷落とすと間違いなく死ぬでしょう(電線がどこかで接地されていたとしても)。伝導ノイズなのか放射ノイズなのかはノイズの伝播経路のことであり、伝播経路でのノイズ対策の判断と対策に役立ちますが、ノイズの発生源によっては伝導ノイズにも放射ノイズにも成り得るので伝導経路での対策とは別に発生源に対する対策も必要ということだと思います。鳥の例で言うと、足をかけている2点間を充分に低インピーダンスな線で短い距離にするという対策(伝導ノイズに対する対策)もありますし、鳥も電線も全部システム一式を接地した導電性の箱で囲ってしまうことにより雷が落ちても死なないようにするという対策(放射ノイズへの対策)もありますし、そもそも雷雲が発生しないようにする(出来ないか..)という対策もあります(ノイズ源の除去)。モータ電極へのコンデンサ追加はどちらかというと伝送経路への対策ではなく雷雲の除去では ?

Reverse 父様、ちょっと気になる議論になっているので書き込ませて頂きました。実際のノイズ対策に長じているわけではなく頭でっかちなので間違ったこと書いているかもしれません。長文ですみません。
2010/12/18(Sat) 18:40 | URL  | モッパー #vASB4.KM[ 編集]
質問
ありがとうございます。
何度もすみませんが、まだ納得できていません。

Reverse父様に質問なのですが、
"モータからのノイズの影響でGND電位が変化してしまい(電圧はVccとGNDの電位差なので)"
とありますが、CPU用のVccとモーター用バッテリーのVccとは完全に分離されていますから(GNDだけは繋がっているので電位差はありますが)、モーター用バッテリーの+とGNDの電位差は大きな瞬間的なパルス(つまりこれがノイズ)がありますが、CPU用のVccには影響を及ぼさないと思うのですが・・・
GNDしか繋がっていないので・・・
だから、電線に鳥が止まっていて鳥の足の幅の電線には抵抗が完全に0だと仮定すれば(つまり電線に抵抗があっても鳥が1点で接していれば)、落雷があったとしても伝導ノイズのみを考えた場合、鳥はびくともしないのと同じだと思うのですが・・

モッパー様に質問です
"長いU字型の電線の両端に足をかけさせて"
これで感電するというのは、両端に電位差があるからですが、電位差があるのは"U字型の電線"に少ないけれども抵抗があるからということで合っていますか?
ちなみに電位差というのは"差"ですから、2つ以上を比べないといけないですよね?また抵抗が完全に0であれば常に電位差も0ですよね?
2010/12/18(Sat) 20:49 | URL  | ZERO #xVu8mIRI[ 編集]
ノイズ
難しいですね。

モータ側とCPU側のGNDが共通でモータからのノイズがGND電位を揺らせば,CPU側の電位(通常のGND0Vからの5V)が変わらなくても,その差は変化しますよね。モータの発生するノイズは結構大きくて瞬間的には5Vp-pくらいの振幅を持ってたりしますから,その差が5Vよりかなり小さくなればCPU動作に問題を生じますよね。

うちがやった対策は,コンデンサは発生源除去(雷雲ですか^^)で,電線を捻ったのが電動経路対策ですね。

鳥の件に関してはよくわかりません??が,電線よりも鳥に電気が流れる状態を作れば,の話ですね。体の両端に大きな電位差が生じ大きな電流が流れれば死にますね。実際にそうなるかどうかは知りませんが。

いやあ,難しいです。
2010/12/18(Sat) 23:35 | URL  | Reverse父 #-[ 編集]
すみませんがもう少しお付き合い願います
すみませんが、僕の考えを書きます。
お忙しい中、すみませんが、全部読んでいただけると、そして間違っているところを指摘していただけるとうれしいです。

とにかく、1本の線(A線とします)でノイズを伝えようとしたら(つまり電流をながそうとしたら)、
(A線の両端をP,Qとする)
方法①もう1本基準線(B線とする)を用意し、B線からの電位差を作ってやる(B線から比べて、Pに+5V,Qに+10Vかけてやれば電流は流れますね)
方法②帯電している物質を2つ用意して、Pに+に帯電している物質を、Qに-に帯電している物質をつないでやる
しかないと思います。
方法①は2本線を使っていますから、モータードライブ回路でこのようなノイズの伝わり方はありえません。
方法②ですが、これはつまり、なにかが"帯電"していないといけないということです。
モータードライブ回路でのモーターからのノイズを考えますと、根本的にはコイルの自己誘導になります。
これは、コイルの両端の線には"電位差"はありますが、帯電はしていません。つまり、絶対的な電位差ではなく相対的な電位差なわけです。
だから、モータードライブ回路においてモーター用電源とCPU電源を分離した場合、GNDのみをつないでも、伝導ノイズは絶対に起こらないと言えると思います。


乾電池Aの+と乾電池Bの+とをつなげた後、
乾電池Aの-と乾電池Bの+とをつなげても
電流は少しも流れません。
これで電流が流れば乾電池は+専用電池とか-専用電池とか存在するんじゃないでしょうか。
なぜ電流が流れないかというと乾電池A,Bは両方帯電させることができないからです。
乾電池の両端には相対的な電位差があるだけなのです。絶対的な電荷はないと言えると思います。絶対的な電荷は繋がっている物質に合わせる感じです。
だから、バッテリー・コイルともに片方の絶対的な電荷を決めてやればもう片方の絶対的な電荷が決まるという感じであって、コイルの片方だけを使っても電流は流すことができないということです。
バッテリーは+と-があるからこそ電流を流すことができると思います。

+に帯電している物質Aと-に帯電している物質Bは両方引き合い、くっつくと電流が流れ、電荷は0になります。だから、電線が1本であっても絶対的な電荷を持つ物質を2つ用意してやれば電流は流れます。
しかしながら、絶対的な電荷を持つバッテリーというのは現在は存在しないようですね。

結論から言うと
「モータからのノイズがGND電位を揺らせば,CPU側の電位(通常のGND0Vからの5V)が変わらなくても,その差は変化します」
というのは少し違って、モーターからのノイズがたとてGNDの電荷を揺らしても、CPU電源+のGNDに対する電位差は変わらない、つまり、CPU電源+はGND電位に順応する、と思います。
だから、
モータードライブ回路においてモーター用電源とCPU電源を分離した場合、GNDのみをつないでも、伝導ノイズは絶対に起こらない(CPU電源+とGNDの電位差は全く変動しない)
ということが言えると思います。

伝導ノイズというのは、たとえば家の中でドライヤーを使えば、他の電子機器に少しノイズがはいるとかいうのを指す(つまり信号線と-が共通の場合のノイズを指す)のではないでしょうか。
2010/12/19(Sun) 15:09 | URL  | ZERO #xVu8mIRI[ 編集]
ZERO 様

私の理解を超える話になってきたので、私も良く分かりませんが、鳥の話で雷を例に出したのが混乱の元のようですみません。雷は大地に対して電荷を持つものなので、1本の電線のどこかが接地しているなり電線と大地の間に回路的要素が無い限り鳥は感電しないと思います。(実際には大地との間に回路的要素が存在するので電線と鳥は帯電し問題は発生するでしょうが、それは大地が第2線であるからです。)

モータとCPUのグラウンドに関する論議については、電源が隔離されていてグランドが共有されていると、グランドと電位差を持つ信号線(例:I2C)がモータとCPUの回路の間で接続されている限り、伝導ノイズは発生するでしょうと言う観点で異議を唱えさせて頂きました。ZERO 様の主張は完全に大地から浮遊されたグランドしか共有されず、グランドに対して電位を持つ信号線も全く接続されていない場合は伝導ノイズは発生しないでしょうと言う意味ですね ? だとすればそれは正しいと私は思います。

Reverse 父様、人のサイトで長々と議論してしまって申し訳ありません。
2010/12/19(Sun) 22:36 | URL  | モッパー #vASB4.KM[ 編集]
ノイズ=電磁波?
皆さん、こんにちは。

GRA父です。

最初に余計なツッコミを入れたせい?で、何か話がややこしくなってきているような気が。

モッパーさんが書いた通り、”完全に大地から浮遊されたグランドしか共有されず、グランドに対して電位を持つ信号線も全く接続されていない場合は伝導ノイズは発生しない”という解釈なら私も98%%正しいと思います。

というのは、ノイズというのを議論するならば、最終的には、電磁波であると考えた方がいいからです。

今ターゲットになっているのは伝導ノイズと放射ノイズですが、干渉ノイズというものもあります。

ノイズの発生源は正直、地球上の物資中(=生物もですが)電子運動をしている上、ミクロで微弱であれノイズを発生しています。

ちょっと難しく書いちゃいますけど、ノイズの正体は、素子の物性的な内因や物理・科学的な変化、あるいは信号の発生・抑制メカニズム、回路構成自体から発生する電磁気的エネルギですから、それらを機器から完全に排除するのは極めて困難なことです。

もっと具体例で言えばICも内部では動いているので、IC自身がノイズ=電磁波を発生させています。
基板なんかはICだらけなので、基本、ミクロなノイズが発生してます。
これらが干渉し合って、機器に影響を出す大きなノイズとなります。(普通は対策してあるので問題ないですが)

通常、RCJやラジコンレベルのノイズ除去は、あくまで放射であれ伝導であれ、IC間に伝達しないマイクロな距離まで押さえこんでいるだけで、機器や基板内ICの動作を完全に止めてしまわない限り、そこには何らかのノイズ成分を分が発生するといえますよ。

電気的な理論だけでなく電波と考えてくれれば、コモン線1本でも、それが媒体となって伝導ノイズが伝わることが解ってもらえると思います。
(電波だから空中=放射ノイズもある)
実際に無線や携帯電話だってノイズと言えば、まさにノイズなので(笑)
アナログTV受信できない!なんかの電波障害もそうですしね。

表現をかなり曖昧にしたので、わかりにくいかもしれませんが、とにかくノイズは対策しても無くなっていいない!とだけ理解された方がいいです。

ちょっと皆さんとは焦点がずれた話を書いているかもです。

人様のblogでこれ以上の長文を書くことは止めておきます=書いたら書いたで、専門書1冊できてしまうので(笑)
2010/12/19(Sun) 23:42 | URL  | GRA父 #-[ 編集]
議論は大歓迎^^
Reverse父です。

ZERO様,ノイズの件,既に私の理解の範疇を超えてきました。まあ,最初に書いたように,私の場合,何らかの技術的知識や根拠・実験データがあってのコメントではない(あくまで電気は素人)ですので,他の方々のコメントも参考に,本当のところはどうなのか,どこを探せばあるのか,どれが正しいのかを見極めるのも勉強かな,と思います。ネット上の情報(このブログを含めて)には正しいものもそうでないものもありますし,ここでのコメントも(特に私のは)正しいとは限りません(他の専門知識人の方々のは正しいコメントかと思いますが)。だから,正しい,正しくない,の議論ではなく,こういう考えではどうか,とか,こういう場合は,という議論になるのは大歓迎です。今回のは,内容的にはかなり難しくて私はついていけませんが,ここを見てコメントを頂ける方々の中にはいろいろな分野に精通されている方もおられますので,貴重なコメントが頂けることもあります。

モッパー様,GRA父様,ありがとうございます。既に私の理解の範疇を超えてしまいましたので,詳しいコメント頂いて助かりました。
ノイズ対策は重要な課題ですが,それだけに難しい課題ですね。勉強になります。
2010/12/20(Mon) 21:28 | URL  | Reverse父 #-[ 編集]
通りすがりの野次馬より
reverse父様

いいコメントだと思います
ご自分のブログの中であれば考え方のひとつを述べても、あくまでもご自分の意見ですから間違いであろうと何であろうと表現はOKでしょう。考えとともに議題をあげることが大事だと思います。

それに対し多くの賢者がコメントをしてくれているので、その中から一番あっている(正解でなくとも)物を探し出せればこれ幸いだと私は思います。

GRA父さんの言われるとおり、ノイズ ゼロは限りなく無理なのでどれだけ影響を少なくできるか、または、そのノイズが無視できるものにしていくのかがひとつのテクニックだと思います。

計測器などを設計していると、ノイズレベルがどの程度まで落とせているかが非常に重要になりますが、そうでない場合は動けばいいじゃんて、無責任な考えで進めています。
(計測器の使用のところにノイズマージン的なことが書いてあります。確度というかもしれません。正しいとおもって読んでいい値ってやつですね)

私も賢者の意見を見るのが楽しみなので、これからも、議題あげてくださいね。
2010/12/20(Mon) 22:55 | URL  | union12の父 #mQop/nM.[ 編集]
ありがとうございました
返信までだいぶ時間が空いてしまい、申し訳ありませんでした。
全部読ませていただきました。
いろんなことを教えて頂き本当にありがとうございました。
ロボットを作りつつ、電気の知識も増やしていけたらな、と思います。
本当にありがとうございました。
2010/12/25(Sat) 14:22 | URL  | ZERO #xVu8mIRI[ 編集]
コメントを投稿
URL:
Comment:
Pass:
秘密: 管理者にだけ表示を許可
 
トラックバック
この記事のトラックバックURL
この記事へのトラックバック
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。