エンジンを搭載したシステムでAVRマイクロコントローラーを使用するための10のヒント

エレクトロニクスが好きな人の間で最も人気のある研究の1つは、キャタピラーロボットの製造です。 Habréを含む多くの記事がこのトピックに当てられています。 マニュアル、図表、記事が豊富にあるので、それほど難しくないだろうと思うようになり、自分でこのような美しい自家製製品を作りたかったのです。 私は幸運ではなかったと言うことができます-仕事の過程で、エンジンの存在に関連する多くの問題に遭遇しました。 最終的に、これらすべての問題を解決することができましたが、非常に長い時間がかかりました。 この記事では、AVRマイクロコントローラーに基づいたエンジンを含む回路を設計するためのヒントを提供します。 これらすべてのヒントの実用的な有用性は、私自身の経験から確かめなければなりませんでした。 私には、多くのヒントが他のマイクロコントローラーに適しているようです。







このプロジェクトを始めたとき、エレクトロニクスでの私の経験は最小限であったとすぐに言います。 その頃までにArduinoをかなりの期間使用していたので、トラックとダブルのタミヤギアボックス、L293NEチップ(エンジンドライバー)を購入し、2〜3晩Arduinoの銘板を作成しました。 。



しかし、私はもっと欲しかった。 Arduinoに電力を供給するために別のバッテリー「Krona」を持ち運ぶ必要に悩まされます。 そして、Arduinoを使用するという事実(私はそのファンに謝罪します!)不快な気持ちを残しました-それはデザイナーからマシンを組み立てるのと同じです(しかし、ArduinoからAVRにとって非常に便利なプログラマーであることがわかりました -私はそれを使用しました)。



Atmega8Bluetoothモジュール 、超音波距離センサー3軸加速度計L293NEおよび74HC595マイクロ回路、すべての種類と色の抵抗器、コンデンサー、LEDのホスト、フォトレジスター、ポテンショメーター、電磁音発生器がありました。 私は、1つのソース(4つのAA 1.2Vバッテリー)からエンジンと論理部分に電力を供給するタスクを自分で設定しました。 そのようなソースから電力を供給されるラジコン戦車を見たので、これが可能であったことは疑いありませんでした。



回路基板に印刷した回路を描いて組み立てました。 テストファームウェアを作成し、ライトが点滅し、Bluetoothが接続され、きしみ音が鳴ることを確認し、エンジンのテストを開始することにしました。 そして、非常に騒がしい環境でAVRを操作するという刺激的な世界に突入しました。



コレクターモーターの動作は不安定です。 これらは広い周波数範囲でノイズが多く、開始電流と妨害電流は最適な負荷での定格電流の数倍です。 私のシステムの仕事では、これは2つの症状で表現されました:







これらの問題を取り除くのに1年半かかりました(もちろん継続的な作業ではありません!)。 その結果、すべてが機能しましたが、システム全体をもう一度やり直す必要がありました。



以下の考慮事項はすべて、何らかの形でインターネット上に存在する可能性があります。 私の主な目標は、すべてのヒントをまとめることでした。もしそのような記事が早く私の目を引くなら、それは私に多くの時間、お金、そして安心を節約するでしょう。



だから、ヒント。

  1. 電源を切り離す

    起動時に、モーターは通常の動作よりもはるかに多くの電流を消費します。 たとえば、使用するモーターの場合、開始電流は1Aです。 これにより、起動時に瞬時電圧降下が発生し、多くの場合、マイクロコントローラを再起動するのに十分であるという事実につながります。 この低下を克服するには、ショットキーダイオードと大きなコンデンサで電源を分離する必要があります。



    Vccラインは回路の論理部分全体に給電し、エンジンドライバーの電源部分はバッテリーから直接給電されます(図の上の行)。 電源電圧が低下すると、ダイオードが閉じ、コンデンサからの電流はVccラインのみに流れます。これが必要なことです。 コンデンサの容量は、ドローダウン中にロジック電力をサポートするのに十分でなければなりません。 2つの4.7mFコンデンサで十分でした。 直列インダクタンスにより、構造全体がLCフィルターになります。

  2. 地球をアナログ部分とデジタル部分に分けます

    前の図は、ランドがAGNDDGNDの 2つのブランチに分割されていることを示しています。 これは図では重要ではありませんが、実際には、デジタル部分とモーターのグランドを提供するグランドラインは、電源の「マイナス」にできるだけ近い1点でのみ交差する必要があることを意味します。



    もちろん、グラウンドポリゴンも分離する必要があります(図中の一点鎖線)。

  3. 機械部品の完全性を確保する

    私はインターネットでこのアドバイスに会ったことがありませんが、私の場合、それが決定的なものの1つであることがわかりました。 私のエンジンの1つで、シャフトのプラスチックギアが割れました。 これは、ギアボックスを備えたエンジンのパフォーマンスに実質的に影響を与えなかったため、オシロスコープでのみこれに気付きました。 歯車が亀裂に落ちた瞬間、わずかなくさびが発生し、消費電流が瞬間的に増加し、エンジン速度でノイズが発生しました。

  4. 水晶振動子を接地する

    Atmega XTAL1 / XTAL2外部クロック回路は、ピックアップに最適な方法です。 したがって、プロジェクトで水晶振動子を使用している場合、非常にノイズの多い環境では、コントローラーが狂い始める可能性があります。 私の場合、これによりハングアップしたり、プログラムの一部がスキップされたり、作業の頻度が突然増減したりしました。 この問題を解決するために、パラグラフ2から十分なアドバイスを受けましたが、これでも問題が解決しない場合は、デジタルアースにつながるワイヤを身体にはんだ付けして、クオーツを接地してみてください。 注意してください-水晶振動子は過熱により簡単に損傷します。

  5. スクリーン水晶

    私は通常、ボード上に固体のアースを塗りますが、それが気に入らない場合は、Atmelの推奨事項に記載されているように、クォーツとバラストコンデンサの周りに少なくとも小さなアースを作ります。 前の段落のように、これはクロックラインを干渉から保護するのに役立ちます。 アナログラインが論理ラインと平行に走っている場合にも同じことが当てはまります。それらをアースポリゴンで分離することは理にかなっています。

  6. 内部発振器を使用する

    多くのAVRコントローラーには内部発振器が装備されています。 それは水晶振動子ほど正確ではなく、また(たとえば、私のAtmega8の場合)コントローラーの最大クロック周波数を提供しないことがよくあります。 しかし、何も出ない場合は、使用してみてください。 私のロボットの最初の失敗したモデルは、内部発振器でのみ安定して動作しました。

  7. エレクトロニクス-悪い接触の科学

    はんだ付け不良がないか、すべての接点を3回確認してください。 ロジック供給ラインのジャンパーを避けてください。

    連絡先は良好ですが、必要な場所ではありません。 ロボットが正常に動作する場合がありましたが、Bluetooth経由で何かを送信しようとするとすぐに再起動しました。 リセットがはんだの滴でシリアルポートラインに短絡していることが判明しました。

  8. メーカーの推奨事項に従う

    ほとんどすべてのデータシートには、ボディキットの推奨事項が記載されています。 Atmelは別のドキュメント-AVR Hardware Design Considerationsをリリースしています。

    たとえば、Atmega8には、対応する結論に可能な限り近い位置に4つのコンデンサ( リセット、Vcc、ARef、AVCC )を装備する必要があります。 リセットは、10KΩ抵抗を介して電源にプルアップする必要があります。メイン電源( Vcc )には、独自の個別のLCフィルターが装備されています。 水晶とバラストのコンデンサは、できるだけMKの近くに配置する必要があります。 一般に、すべての超小型回路には、電力を分離する独自のコンデンサが必要です。

  9. モーター接点と並列にコンデンサを配置します

    コンデンサ(100nF)は、モーターの接点に直接はんだ付けする必要があります。 実際、私はこれを最初から知っていましたが、このアドバイスは完全を期すためのものです。

  10. 電圧低下レベルを下げる

    電圧低下-電圧レベルの低下を意味します。 マイクロコントローラーには、このようなドローダウンの検出器が装備されています。 発生すると、マイクロコントローラーはオフになります。 ただし、シャットダウンが発生するレベルは調整できます。 たとえば、Atmega8には3つのオプションがあります。検出が無効、2.7Vでトリップ、4.0Vでトリップです。 ブラウンアウト検出を完全に無効にすることはお勧めしませんが、応答レベルを下げると役立つ場合があります。 レベルを2.7Vに下げると、システムはより安定して動作し始めました。





以上です。 根拠がないようにするために、結論として、ロボットの動作を示すビデオを公開します。 私の記事が誰かに役立つことを願っています。ご清聴ありがとうございました!







参照資料


  1. PCBレイアウト技術
  2. AVRハードウェア設計の考慮事項
  3. Atmel AVR接続:マイクロコントローラーの安定化




私はずっと前にあきらめただろう人の助けとアドバイスなしで、私の友人に感謝したいと思います、そしてこの記事は決して書かれなかっただろう。



All Articles