- - PR -
スイッチのON/OFFをマイコンの入力として扱うことは、“センシングのための重要な第一歩”である。
しかし、そこにあるのは、一瞬で「Low」が「High」に、あるいは「High」が「Low」になる理想的なデジタル回路の世界ではなく、「スイッチ」という現実的なモノの“生々しい振る舞い”によって実現される世界だ。
今回は、スイッチの生々しさと付き合ってみよう!
もし「自爆ボタン」が
予期しない動作をしたら?
しつこいようだが、本連載の最終目標は、「招き猫」ロボットを動作させて、望むだけの福を招かせることである(画像1)。
| 画像1 第3シリーズのゴール「招き猫」 ※画像をクリックすると動画が再生されます(aviファイル) |
この「招き猫」の“招き”動作の回数は、腕の付け根に設置したマイクロスイッチによって行われている。スイッチをマイコンの入力として扱うための、最低限必要となる準備については、連載第3回「スイッチを押したら何かが起こる!? −マイコンでスイッチ入力を扱うには−」で解説したとおりだ。
これらの準備は、スイッチをマイコンの入力として扱うための必要条件ではあるが、十分条件ではない。十分条件になるために不足しているのは、「スイッチそのものが動作する」ということに付随して起こるさまざまな問題だ。
ここで、有名な連続アニメ「タイムボカンシリーズ」(注)に登場する“自爆ボタン”を思い出してほしい。憎めない悪役が登場し、毎回悪事を働くのだが、颯爽(さっそう)と登場した正義の味方によって成敗される(子供向けアニメの王道だ!)。最終的に、悪役は自爆ボタンを押して、自らの乗り物(メカ)を爆破し、負け惜しみをいいながら逃げて行く……(大爆発にもかかわらず、なぜか無事である)。
| 注:株式会社 竜の子プロダクション(タツノコプロ)制作のアニメ番組。 |
この自爆ボタンだが、もし自爆ボタンを押したのに自爆できなかったら、どうなるであろうか? きっと、正義の味方にあっけなく捕らえられてしまい、次回の物語の冒頭を「悪役が悪事を働く」という、おなじみの展開から開始することができなくなってしまうだろう。また、1回だけ自爆するつもりだったのに、ボタンを押したら3回も爆発してしまったらどうなるだろうか? 1回の爆発ならいつものように無傷で脱出できるかもしれないが、3回の爆発に耐えられず悪役が爆死してしまい、次回の物語が成立しなくなってしまうかもしれない……。捕らえられた悪役の物語/悪役が死んでしまった後の物語は、それはそれで興味深いものであろう。しかし、娯楽として楽しむ連続アニメの世界にはふさわしくなさそうだ。
自爆ボタンが意図どおりのタイミングで意図どおりの動作をしてくれないと、このように大変都合の悪いことになってしまう。では、「自爆ボタンを押しても、思いどおりに自爆できない」という事態は、どのような場合に発生するだろうか? ここで、1つの可能性として考えられるのは「自爆ボタンの設計者が、スイッチに“チャタリング”という現象があることを知らなかった」ということであろう。
チャタリングとは?
スイッチの基本は「金属板と金属板が接触して接点ができると、そこに電流が流れる」である。金属板の片方を固定しておき、もう片方をバネなどの力によって移動させて、接触させることで接点を作るわけだ。
理想としては、
「2枚の金属板が近づいた」→「接点ができた」→「スイッチON」
を期待したいところだが、実際には、
「2枚の金属板の片方が、強い力を与えられて、速いスピードで動きはじめた」→「2枚の金属板がぶつかった」→「ぶつかったり、離れたりする振動を繰り返した」→「振動が止まって、接点が安定した」→「スイッチON」
となる。
この「ぶつかったり、離れたりする振動」がチャタリングとなる。スイッチの中を直接観察するのは困難だが、木やメラミン樹脂でできた食器を硬い床に投げ付けてみると、「カタカタカタ……と振動してやがて止まる」という現象を見ることができるであろう。これがチャタリングのイメージに近い。
チャタリングが起こっているとき、スイッチは早い周期で「ON」と「OFF」を繰り返すことになる。チャタリングの最中の「ON」「OFF」に反応してしまうと、「1回だけ自爆するつもりが3回自爆」ということになるかもしれない。また、チャタリングが終わった後を「ON」とすると、「自爆スイッチを押したけど、反応しない」ということになるかもしれない。
| 関連リンク: | |
| 必修技術:タスク制御とチャタリング対策 http://monoist.atmarkit.co.jp/fembedded/tengine/tengine03/tengine01.html |
|
スイッチのON/OFFの実際
ここで、今回の「招き猫」ロボットに使用したマイクロスイッチのON/OFFの様子を、実際の測定波形で見てみよう。
スイッチの「ON」で「High」→「Low」(画像2)、「OFF」で「Low」→「High」(画像3)となる。
| 画像2 スイッチの「ON」で「High」→「Low」 |
| 画像3 スイッチの「OFF」で「Low」→「High」 |
「ON」時には、500μsecほどの時間に、5回以上の「ON」→「OFF」→「ON」→……が行われて、最終的に「ON」となることが分かる。一方、「OFF」時には、特に気にする必要があるほどのノイズはなく、スムーズに「ON」→「OFF」の切り替えが行われていることが分かる。
この違いは、「床に投げ付けられた食器は、しばらくカタカタカタ……と振動してから止まる」と、「床にある食器を拾い上げるとき、つかむ動作に成功しさえすれば、食器はスムーズに空中に移動する」の違いである。
スイッチのON/OFFを扱うときは、「ON」時のチャタリングに注意して、対策を行う必要がある。今回、入力として取り扱うマイクロスイッチの場合、「OFF」時のチャタリングに関する対策は特に必要ない。ただ、「OFF」時への対策が必要かどうかはスイッチのタイプによるので、はじめてスイッチを取り扱う場合は「OFF時にはチャタリング対策は不要」と思い込まないでいただきたい。
回路で行うチャタリング対策
現在のチャタリング対策は、制御ソフトウェアによって行うのが主流である。しかし、今回は回路そのものでチャタリング対策を行うことにした。理由は「制御ソフトウェアは、なるべく単純明快なものとしたい」「チャタリング対策を行った回路の実例を、近年見掛けることが少なくなったので示したい」の2つである。
図1は、前回「回路図なんか怖くない!−「招き猫」回路を読む」でも示したスイッチインターフェイス部分の回路図である。
| 図1 スイッチインターフェイス部分の回路図 |
この回路のうち、チャタリング対策として設けられているのは、
である。
次ページでは、これらのチャタリング対策の役割と、回路中での実際の機能について見てみよう。
関連記事 半導体/エレクトロニクス
- 連載:イチから作って丸ごと学ぶ! H8マイコン道
- 特集:組み込みシステムに吹く“仮想化”の風
- 連載:組み込みマルチコア進化論(連載中)
- 連載:必修! FPGAタイミング解析の基礎(全5回)
- 連載:−ザ・組み込み−ソフトウェアのハードウェア化(連載中)
- 連載:S08ではじめるマイコン制御プログラミング(全6回)
- 連載:マイコン制御基礎の次(連載中)
- 連載:マイコン制御基礎の基礎(全10回)
- 連載:マイコン制御基礎以前(全10回)
- 連載:H8で学ぶマイコン開発入門(全13回)
- 連載:触って学ぼう FPGA開発入門(全6回)
- 連載:FPGA開発テクニック、チューニングの心得(全6回)
- 特集:いまさら聞けない FPGA入門
- 連載:バラして納得! 電子部品入門(全18回)
- 連載:完全マスター! 電子回路ドリル III(全14回)
- 連載:完全マスター! 電子回路ドリル II(全25回)
- 連載:完全マスター! 電子回路ドリル(全25回)
- 目指せ! 電子回路マスターへの道
- 目指せ! 電子回路マスターへの道 Part2
- 分かっておきたい、IP活用の落とし穴
ホワイトペーパー(TechTargetジャパン)
組み込み開発フォーラム 新着記事
- テストでの「ダメな猫」「普通の猫」「優秀な猫」(2010/3/19)
- 目指せETロボコン!! ライントレースとシステム制御(2010/3/18)
- ミップスとDMPがAndroid on MIPSで協業(2010/3/18)
- 【問題9】 アナログをデジタルに変換する「AD変換」(2010/3/17)
- 組み込みシステム開発における“モデル”とは?(2010/3/11)
- 組み込み向けAndroid「Embedded Master」を公開(2010/3/10)
- Androidでビジネス拡大を狙うミップスの新戦略(2010/3/9)
- MATLAB/Simulinkプロダクト・ファミリ R2010aを発表(2010/3/8)
- 各種カード決済/通信方式に対応した携帯型POS(2010/3/5)
- 【問題8】 「ウォッチドッグタイマ」の役割とは?(2010/3/4)
- アクテル、ミックスド・シグナルFPGA「SmartFusion」(2010/3/3)
- 素晴らしきファイルシステムのデータ管理(2010/3/2)











