連続回転サーボ。 Arduino SG90、MG995、MG996サーボ:配線図と制御ブラシ付きおよびブラシレスモーター

この記事では、サーボについて説明します。それらのデバイス、目的、接続と制御のヒント、サーボのタイプとそれらの比較。 始めて、サーボとは何かから始めましょう。

サーボの概念

サーボドライブは、ほとんどの場合、電気モーターを備えたメカニズムとして理解されており、特定の角度に回転してこの位置を保持するように要求できます。 ただし、これは完全な定義ではありません。

より完全に言えば、サーボドライブは負帰還による制御を備えたドライブであり、モーションパラメータを正確に制御することができます。 サーボドライブは、センサー(位置、速度、力など)と、特定の外部値に従ってセンサーとデバイスに必要なパラメーターを自動的に維持するドライブ制御ユニットを含む、あらゆるタイプの機械式ドライブです。

言い換えると:

    サーボドライブは、制御パラメータの値を入力として受け取ります。 たとえば、回転角。

    コントロールユニットは、この値をセンサーの値と比較します。

    比較の結果に基づいて、ドライブは回転、加速、減速などのアクションを実行し、内部センサーからの値が外部制御パラメーターの値に可能な限り近くなるようにします。

最も一般的なのは、特定の角度を保持するサーボと、特定の回転速度を維持するサーボです。

典型的なホビーサーボを以下に示します。

サーボはどのように配置されていますか?

サーボ装置

サーボドライブにはいくつかのコンポーネントがあります。

ドライブ-ギアボックス付きの電気モーター。 電気を機械的な回転に変換するには、 電気モーター。 ただし、モーターの回転速度が速すぎて実用化できないことがよくあります。 速度を落とすために使用されます レデューサー:トルクを伝達および変換する歯車のメカニズム。

電気モーターのオンとオフを切り替えることで、出力シャフトを回転させることができます。これは、サーボの最終ギアであり、制御したいものを取り付けることができます。 ただし、位置をデバイスで制御するには、 フィードバックセンサー - エンコーダー、ステアリング角度を電気信号に変換します。 これには、ポテンショメータがよく使用されます。 ポテンショメータのスライダーを回すと、回転角に比例して抵抗が変化します。 したがって、メカニズムの現在の位置を設定するために使用できます。

電気モーター、ギアボックス、ポテンショメーターに加えて、サーボドライブには電子充填があり、外部パラメーターの受信、ポテンショメーターからの値の読み取り、それらの比較、およびモーターのオン/オフを行います。 彼女は負帰還を維持する責任があります。

サーボに行く3本のワイヤーがあります。 それらのうちの2つはモーターへの電力供給を担当し、3つ目はデバイスの位置を設定するために使用される制御信号を提供します。

次に、サーボを外部から制御する方法を見てみましょう。

サーボ制御。 制御信号インターフェース

サーボに希望の位置を示すには、これを目的としたワイヤに沿って制御信号を送信する必要があります。 制御信号-一定周波数および可変幅のパルス。

サーボがとるべき位置は、パルスの長さによって異なります。 信号が制御回路に入ると、その中のパルス発生器が独自のパルスを生成し、その持続時間はポテンショメータによって決定されます。 回路の別の部分は、2つのパルスの持続時間を比較します。 持続時間が異なる場合は、電気モーターがオンになります。 回転方向は、どちらのパルスが短いかによって決まります。 パルス長が等しい場合、電気モーターは停止します。

ほとんどの場合、ホビーサーボでは、パルスは50Hzの周波数で生成されます。 これは、パルスが20ミリ秒ごとに1回放出および受信されることを意味します。 通常、パルス幅が1520 µsの場合は、サーボが中間位置にあることを意味します。 パルス長を増減すると、サーボはそれぞれ時計回りまたは反時計回りに回転します。 この場合、パルス幅には上限と下限があります。 Arduinoのサーボライブラリでは、デフォルトのパルス長は0°の場合は544 µs、180°の場合は2400 µsです。

お使いのデバイスでは、工場出荷時の設定が標準の設定と異なる場合があることに注意してください。 一部のサーボは760µsのパルス幅を使用します。 この場合、従来のサーボドライブと同様に、中間位置は760 µsに対応し、平均位置は1520 µsに対応します。

これらは一般的に受け入れられている長さであることに注意してください。 同じサーボモデル内でも、製造誤差によりパルス長の動作範囲が若干異なる場合があります。 正確に動作させるには、特定のサーボをそれぞれ校正する必要があります。実験を通じて、特定のサーボに固有の正しい範囲を選択する必要があります。

他に注意を払う価値があるのは、用語の混乱です。 多くの場合、サーボを制御する方法は、PWM / PWM(パルス幅変調)またはPPM(パルス位置変調)と呼ばれます。 これは当てはまらず、これらの方法を使用すると、ドライブが損傷する可能性さえあります。 正しい用語はPDM(パルス幅変調)です。 その中で、パルスの長さは非常に重要であり、それらの出現の頻度はそれほど重要ではありません。 50Hzが標準ですが、サーボは40Hzと60Hzの両方で正しく機能します。 覚えておくべき唯一のことは、周波数を大幅に下げると、ジャークで電力を減らして動作する可能性があり、周波数を大幅に上げると(たとえば、100 Hz)、過熱して故障する可能性があるということです。

サーボ仕様

それでは、サーボとは何か、そしてサーボがどのような特性を持っているかを理解しましょう。

トルクと回転速度

まず、サーボの2つの非常に重要な特性について説明しましょう。 トルクと約 回転速度.

力のモーメント、またはトルクは、回転軸からこの力のベクトルによる力の作用点まで引かれた半径ベクトルの積に等しいベクトル物理量です。 剛体に対する力の回転作用を特徴づけます。

簡単に言えば、この特性は、サーボが特定の長さのレバーにどれだけの負荷をかけ続けることができるかを示しています。 サーボのトルクが5kg×cmの場合、サーボはおもりに1cmの長さのレバーを水平位置に保持し、その自由端に5kgがぶら下がっていることを意味します。 または、同等に、長さ5 cmのレバーから、1kgを吊るします。

サーボ速度は、サーボアームが60°回転するのにかかる時間で測定されます。 0.1s / 60°の特性は、サーボが0.1sで60°回転することを意味します。 それから、より馴染みのある値、1分あたりの回転数で速度を計算するのは簡単ですが、サーボを説明するときに、そのような単位が最も頻繁に使用されることがありました。

信頼性の高い頑丈なサーボが必要な場合は、この強力な取り付けがゆっくりと回転するように準備する必要があるため、これら2つの特性の妥協点を見つける必要がある場合があることに注意してください。 また、非常に高速なドライブが必要な場合は、バランスを崩すのは比較的簡単です。 同じモーターを使用する場合、バランスはギアボックス内のギアの構成によって決まります。

もちろん、その特性が私たちのニーズを満たしている限り、私たちはいつでもより多くの電力を消費するプラントを取ることができます。

フォームファクタ

サーボのサイズはさまざまです。 また、正式な分類はありませんが、メーカーは長い間、一般的に受け入れられているファスナーの配置でいくつかのサイズに固執してきました。 それらは次のように分けることができます。

    小さい

    標準

それらには、次の特徴的な寸法があります。

この分類に当てはまらない寸法のいわゆる「特殊型」サーボもありますが、その割合は非常に少ないです。

内部インターフェース

サーボドライブはアナログまたはデジタルのいずれかです。 では、それらの違い、長所、短所は何ですか?

外見上、それらは違いはありません。電気モーター、ギアボックス、ポテンショメーターは同じであり、内部制御電子機器のみが異なります。 特別なアナログサーボチップの代わりに、デジタル版は、パルスを受信して​​分析し、モーターを制御するマイクロプロセッサを搭載したボード上に表示されます。 したがって、物理バージョンでは、違いはパルスの処理方法とモーターの制御方法のみです。

どちらのタイプのサーボも同じ制御パルスを受け取ります。 次に、アナログサーボが位置を変更するかどうかを決定し、必要に応じてモーターに信号を送信します。 これは通常、50Hzの周波数で発生します。 したがって、20ミリ秒(最小反応時間)が得られます。 このとき、外部の影響でサーボの位置が変わる可能性があります。 しかし、これだけが問題ではありません。 静止状態では、電気モーターに電圧は印加されません。平衡状態からわずかに逸脱した場合は、低電力の短い信号が電気モーターに供給されます。 偏差が大きいほど、信号は強くなります。 したがって、偏差が小さいと、サーボはモーターをすばやく回転させたり、大きなトルクを発生させたりすることができなくなります。 「デッドゾーン」は時間と距離で形成されます。

これらの問題は、受信周波数、信号処理、モーター制御を上げることで解決できます。 デジタルサーボは、制御パルスを受信して​​処理し、200Hz以上の周波数でモーターに信号を送信する特殊なプロセッサを使用しています。 デジタルサーボは、外部の影響に対してより速く応答し、必要な速度とトルクをより速く発生させることができることがわかりました。つまり、特定の位置を維持する方が良いということです。これは良いことです。 もちろん、同時にそれはより多くの電力を消費します。 また、デジタルサーボは製造がより困難であるため、著しく高価です。 実際、これら2つの欠点は、デジタルサーボが持つすべての欠点です。 技術的には、無条件にアナログサーボを打ち負かします。

歯車の材質

サーボ用の歯車には、プラスチック、カーボン、金属など、さまざまな素材があります。 それらはすべて広く使用されており、選択は特定のタスクとインストールに必要な特性によって異なります。

プラスチック、ほとんどの場合ナイロンのギアは非常に軽く、摩耗しにくく、サーボドライブで最も一般的です。 それらは重い負荷に耐えられませんが、負荷が小さいと予想される場合は、ナイロンギアが最良の選択です。

カーボンギアは耐久性が高く、実質的に摩耗せず、ナイロンギアよりも数倍強力です。 主な欠点はコストが高いことです。

金属製のギアは最も重いですが、最大の負荷に耐えることができます。 すぐに摩耗するので、ほぼ毎シーズンギアを交換する必要があります。 チタン歯車は、技術的特性と価格の両方の点で、金属歯車の中で人気があります。 残念ながら、彼らはあなたにかなりの費用がかかります。

ブラシ付きおよびブラシレスモーター

サーボモーターには、従来のコアモーター、コアレスモーター、ブラシレスモーターの3種類があります。

従来のコアモーター(右)には、巻線と磁石が周囲にある高密度の鉄製ローターがあります。 ローターには複数のセクションがあるため、モーターが回転すると、セクションが磁石を通過するときにローターによってモーターがわずかに振動します。その結果、サーボが振動し、コアレスモーターサーボよりも精度が低くなります。 中空ローターモーター(左)には、磁石の周りにシリンダーまたはベル型の巻線を備えた単一の磁気コアがあります。 コアレス設計は軽量でセクションがないため、応答が速く、振動のないスムーズな操作が可能です。 これらのモーターはより高価ですが、標準のモーターよりも高いレベルの制御、トルク、および速度を提供します。

ブラシレスモーターを備えたサーボドライブは、比較的最近登場しました。 利点は他のブラシレスモーターと同じです。ブラシがないため、回転に対する抵抗が発生せず、摩耗しません。コレクターモーターと同等の消費電流で、速度とトルクが高くなります。 ブラシレスモーターサーボは最も高価なサーボですが、他のタイプのモーターを使用したサーボよりも優れたパフォーマンスを提供します。

Arduinoに接続する

多くのサーボをArduinoに直接接続できます。 これを行うために、それらは3本のワイヤーのケーブルから来ます:

    赤-食べ物; 5Vピンまたは直接電源に接続します

    茶色または黒-地球

    黄色または白-信号; Arduinoデジタル出力に接続します。

Arduinoに接続するには、TroykaShieldなどのポートエキスパンダーボードを使用すると便利です。 いくつかの余分なワイヤーがあれば、ブレッドボードを介して、または直接Arduinoピンにサーボを接続することが可能です。

自分で制御パルスを生成することは可能ですが、これは非常に一般的なタスクであるため、サーボ標準ライブラリはそれを単純化するために存在します。

食事制限

一般的なホビーサーボは、動作中に100mA以上を消費します。 同時に、Arduinoは最大500mAを供給できます。 したがって、プロジェクトで強力なサーボを使用する必要がある場合は、それを追加の電力で回路に分離することを検討するのが理にかなっています。

12Vサーボを接続する例を考えてみましょう。

接続するサーボ数の制限

ほとんどのArduinoボードでは、サーボライブラリは最大12のサーボをサポートし、Arduino Megaではこの数は48に増加します。このライブラリを使用することには小さな副作用があります。ArduinoMegaを使用していない場合、サーボがこれらのピンに接続されているかどうかに関係なく、9ピンと10ピンでanalogWrite()関数を使用します。 PWM / PWM機能を中断することなく、最大12個のサーボをArduino Megaに接続できます。さらにサーボを使用すると、ピン11と12でanalogWrite()を使用できなくなります。

サーボライブラリ機能

サーボライブラリを使用すると、サーボをソフトウェアで制御できます。 これを行うために、タイプServoの変数が作成されます。 管理は、次の機能によって実行されます。

    attach()-変数を特定のピンに接続します。 この関数には、servo.attach(pin)とservo.attach(pin、min、max)の2つの可能な構文があります。 この場合、pinはサーボが接続されているピンの番号であり、minとmaxはマイクロ秒単位のパルス長であり、0°と180°の回転角の原因となります。 デフォルトでは、それぞれ544 µsと2400 µsに設定されています。

    write()-サーボにパラメータ値を受け入れるように指示します。 構文は次のとおりです。servo.write(angle)ここで、angleはサーボが回転する角度です。

    writeMicroseconds()-特定の長さのパルスをサーボに送信するコマンドを提供します。これは、前のコマンドの低レベルのアナログです。 構文は次のとおりです。servo.writeMicroseconds(uS)ここで、uSはマイクロ秒単位のパルスの長さです。

    read()-サーボが入っている角度の現在の値を読み取ります。 構文は次のとおりです。servo.read()は0から180までの整数値を返します。

    attach()-変数が特定のピンに接続されているかどうかを確認します。 構文は次のとおりです。servo.attached()は、変数がいずれかのピンに接続されている場合はブール値trueを返し、それ以外の場合はfalseを返します。

    detach()-attach()の反対のアクションを実行します。つまり、変数が割り当てられたピンから変数をデタッチします。 構文は次のとおりです。servo.detach()。

すべてのServo2ライブラリメソッドはServoメソッドと同じです。

サーボライブラリの使用例

結論の代わりに

サーボドライブは異なり、優れているものもあれば、安価なものもあり、信頼性が高いものもあります。より正確なものもあります。 また、サーボを購入する前に、プロジェクトに適している限り、サーボが最良の特性を備えていない可能性があることに注意する必要があります。 あなたの努力で頑張ってください!

この記事では、Arduinoプロジェクトのサーボについて説明します。 通常の電子プロジェクトがロボットになるのはサーボモーターのおかげです。 サーボをArduinoプロジェクトに接続すると、ドアを開けたり、センサーを正しい方向に向けたりするなど、センサー信号に正確な動きで応答できます。 この記事では、サーボの制御の問題、サーボをarduinoに接続するための可能なスキーム、およびスケッチの例について説明します。

サーボドライブは、モーションパラメータを正確に制御できる一種のドライブです。 つまり、シャフトを一定の角度で回転させたり、正確な周期で連続回転を維持したりできるモーターです。

サーボの動作は、フィードバック(入力と出力の信号が一致しない閉回路)の使用に基づいています。 あらゆるタイプの機械式ドライブは、センサーと、センサーに設定されたすべてのパラメーターを自動的に維持する制御ユニットを含むサーボドライブとして機能できます。 サーボドライブの構造は、モーター、位置センサー、および制御システムで構成されています。 このようなデバイスの主なタスクは、サーボ機構の分野での実装です。 また、サーボドライブは、材料加工、輸送機器製造、木材加工、金属板製造、建材製造などの分野でよく使用されます。

arduinoロボットプロジェクトでは、サーボは単純な機械的動作によく使用されます。

  • 距離計またはその他のセンサーを特定の角度に回転させて、ロボットの狭い視野での距離を測定します。
  • 足、手足または頭の動きで小さな一歩を踏み出します。
  • ロボットマニピュレータを作成します。
  • ステアリング機構を実装します。
  • ドア、ダンパー、またはその他の物体を開閉します。

もちろん、実際のプロジェクトでのサーボの範囲ははるかに広いですが、与えられた例は最も人気のある回路です。

サーボのスキームとタイプ

サーボの動作原理は、1つまたは複数のシステム信号からのフィードバックに基づいています。 出力インジケータは入力に供給され、そこでその値が設定アクションと比較され、必要なアクションが実行されます。たとえば、エンジンがオフになります。 最も単純な実装は、シャフトによって制御される可変抵抗器です。抵抗器のパラメーターが変化すると、モーターに供給する電流のパラメーターが変化します。

実際のサーボでは、制御メカニズムははるかに複雑で、組み込みのコントローラーチップを使用します。 使用されるフィードバックメカニズムのタイプに応じて、 アナログデジタルサーボ。 前者はポテンショメータのようなものを使用し、後者はコントローラを使用します。

サーボ制御回路全体がケース内に配置されており、制御信号と電力は、原則として、アース、供給電圧、制御信号の3本のワイヤを介して供給されます。

360度、180度、270度の連続回転サーボ

サーボモーターには主に2つのタイプがあります。連続回転と固定角度(ほとんどの場合、180度または270度)です。 制限回転サーボの違いは、パラメータで指定された角度の外側でシャフトの動きをブロックできる機械設計要素にあります。 180度に達すると、シャフトがリミッターに影響を与え、モーターをオフにするように命令します。 連続回転サーボモーターには、このようなリミッターはありません。

サーボギア材料

ほとんどのサーボでは、シャフトと外部要素の間のリンクはギアであるため、それがどのような材料でできているかが非常に重要です。 最も利用可能なオプションは2つあります。金属歯車またはプラスチック歯車です。 より高価なモデルでは、炭素の元素、さらにはチタンの元素を見つけることができます。


プラスチック製のバリエーションは、当然、安価で製造が容易であり、安価なサーボモデルでよく使用されます。 トレーニングプロジェクトの場合、サーボが複数の動きをするとき、これは問題ではありません。 しかし、深刻なプロジェクトでは、負荷がかかった状態でのそのような歯車の非常に急速な摩耗を考慮すると、プラスチックの使用は不可能です。

金属歯車の方が信頼性が高いですが、もちろんこれはモデルの価格と重量の両方に影響します。 倹約家は部品の一部をプラスチックや金属にすることができますが、これも念頭に置いておく必要があります。 そしてもちろん、最も安いモデルでは、メタルギアの存在でさえ品質を保証するものではありません。

予算が限られている場合は、チタンまたはカーボンギアが最適です。 軽量で信頼性の高いこのようなサーボは、自動車、ドローン、航空機のモデルを作成するために広く使用されています。

サーボモーターの利点

サーボドライブが広く使用されているのは、安定した動作、干渉に対する高い耐性、小型で広範囲の速度制御を備えているためです。 サーボドライブの重要な機能は、電力を増やしてフィードバック情報を提供する機能です。 したがって、順方向では回路がエネルギーの送信機になり、逆方向では制御精度を向上させるために使用される情報の送信機になります。

サーボと従来のモーターの違い

従来の電動機のON/OFFにより、回転運動を発生させ、シャフトに取り付けられた車輪などを動かすことができます。 この動きは継続的ですが、シャフトがどの角度で回転したか、または何回転したかを理解するには、追加の外部要素であるエンコーダーを取り付ける必要があります。 サーボには、現在の回転パラメータに関する情報を取得するために必要なすべてのものがすでに含まれており、シャフトが目的の角度に回転すると自動的にオフになります。

サーボモーターとステッピングモーターの違い

サーボモーターとステッピングモーターの重要な違いは、高加速度と可変負荷で動作する能力です。 サーボモーターもより高い出力を持っています。 ステッピングモーターにはフィードバックがないため、ステップ損失の影響を観察できます。サーボモーターではステップ損失が除外されます。すべての違反が記録され、修正されます。 これらすべての明らかな利点により、サーボモーターはステッピングモーターよりも高価であり、配線と制御システムがより複雑であり、より熟練したメンテナンスが必要です。 ステッピングモーターとサーボドライブは直接の競合相手ではないことに注意することが重要です。これらのデバイスにはそれぞれ固有のスコープがあります。

人気のSG90、MG995、MG996サーボを購入する場所

最も手頃なSG901.6KGサーボオプション 70ルーブル未満の価格でArduino用のSG90およびMG90Sサーボ
Aliの信頼できるサプライヤーからの別のSG90Pro9gサーボオプション 信頼できるサプライヤーRobotDynのServoSG90
サーボテスター いくつかのサーボテスターオプション
15kgのトルクで保護されたサーボ サーボJXDC5821LV21KGフルウォータープルーフコアメンタルギア1/81/10RCカースケーラーバギークローラーTRAXXASRC4WDTRX-4 SCX10 D90
双葉JR用サーボMG996RMG996サーボメタルギア サーボ13KG15KGサーボデジタルMG995MG996MG996Rサーボメタルギア

サーボの制御の決定的な要因は、一定の周波数と可変幅のパルスである制御信号です。 パルス長は、サーボの位置を決定する最も重要なパラメータの1つです。 この長さは、コーナーからの選択方法またはライブラリコマンドを使用して、プログラムで手動で設定できます。 デバイスのブランドごとに、長さが異なる場合があります。

信号が制御回路に入ると、ジェネレータはそのパルスを発し、その持続時間はポテンショメータを使用して決定されます。 回路の別の部分では、印加された信号の持続時間とジェネレータからの信号が比較されます。 これらの信号の持続時間が異なる場合、電気モーターがオンになり、その回転方向はどちらのパルスが短いかによって決まります。 パルス長が等しい場合、モーターは停止します。

パルスが適用される標準周波数は50Hz、つまり20ミリ秒あたり1パルスです。 これらの値では、持続時間は1520マイクロ秒であり、サーボは中間位置にあります。 パルス長を変更すると、サーボが回転します-持続時間が長くなると、回転は時計回りになり、減少します-反時計回りになります。 持続時間の制限があります-サーボライブラリのArduinoでは0°の場合、パルス値は544μs(下限)に設定され、180°の場合は-2400μs(上限)に設定されます。

(amperka.ruからの使用画像)

特定のデバイスでは、設定が一般的に受け入れられている値とわずかに異なる場合があることに注意してください。 一部のデバイスでは、平均位置とパルス幅が760 µsになる場合があります。 デバイスの製造中に許容される可能性のあるエラーのために、受け入れられるすべての値もわずかに異なる場合があります。

ドライブ制御方式は、誤ってPWM / PWMと呼ばれることがよくありますが、これは完全には正しくありません。 制御はパルス長に直接依存し、それらの発生頻度はそれほど重要ではありません。 40Hzと60Hzの両方で正しい動作が提供され、周波​​数の大幅な減少または増加のみが寄与します。 急激に低下すると、サーボドライブがぎくしゃくして動作し始めます。周波数が100 Hzを超えると、デバイスが過熱する可能性があります。 したがって、PDMを呼び出す方が適切です。

内部インターフェースにより、アナログサーボとデジタルサーボを区別できます。 外部の違いはありません-すべての違いは内部の電子機器にのみあります。 アナログサーボドライブには特殊なマイクロ回路が内蔵されており、デジタルサーボドライブにはパルスを受信して​​分析するマイクロプロセッサが搭載されています。

アナログサーボは信号を受信すると、位置を移動するかどうかを決定し、必要に応じて、50Hzの周波数でモーターに信号を送信します。 反応時間(20ms)の間に、サーボの位置を変える外部の影響が発生する可能性があり、デバイスは反応する時間がありません。 デジタルサーボは、200 Hzからのより高い周波数で信号を送信および処理するプロセッサを使用しているため、外部の影響にすばやく応答し、目的の速度とトルクをすばやく生成できます。 したがって、デジタルサーボは設定位置をよりよく保持します。 同時に、デジタルサーボは動作するためにより多くの電力を必要とし、それはそれらのコストを増加させます。 それらの生産の複雑さも価格に大きく貢献しています。 高コストはデジタルサーボの唯一の欠点であり、技術的にはアナログデバイスよりもはるかに優れています。

サーボモーターをarduinoに接続する

サーボには3つの接点があり、それらは異なる色で着色されています。 茶色の線はアースに、赤い線は+ 5V電源に、オレンジ色または黄色の線は信号です。 図に示すように、デバイスはブレッドボードを介してArduinoに接続されています。 オレンジ色のワイヤ(信号)は、黒と赤のデジタルピンに接続されており、それぞれアースと電源に接続されています。 サーボモーターを制御するために、シムピンに特別に接続する必要はありません。サーボ制御の原理についてはすでに説明しました。

強力なサーボをボードに直接接続することはお勧めしません。 それらは、Arduino電源回路の寿命と互換性のない電流を生成します-保護が機能する場合は幸運です。 サーボの過負荷および不適切な電源供給の最も一般的な症状は、サーボのけいれん、不快な音、およびボードのリセットです。 電源については、外部電源を使用することをお勧めします。必ず2つの回路のアースを組み合わせてください。

Arduinoサーボ制御スケッチ

スケッチのパルス幅を変更してサーボを直接制御することは簡単な作業ではありませんが、幸いなことに、Arduino開発環境に組み込まれた優れたサーボライブラリがあります。 別の記事で、サーボのプログラミングと操作のすべてのニュアンスを検討します。 ここでは、Servoを使用する最も簡単な例を示します。

作業のアルゴリズムは単純です。

  • まず、Servo.hを含めます
  • Servoクラスのオブジェクトを作成します
  • セットアップブロックで、サーボが接続されているピンを指定します
  • オブジェクトのメソッドは通常のC++の方法で使用します。 最も一般的なのは書き込みメソッドです。これには、度単位の整数値を入力します(360サーボの場合、これらの値は異なる方法で解釈されます)。

サーボを操作するための簡単なスケッチの例

最初にサーボモーターをゼロ角度に設定し、次にそれを90度回転させるプロジェクトの例。

#含む サーボサーボ //オブジェクトを作成しますvoidsetup()(servo.attach(9); //サーボがピン9に接続されていることをServoクラスオブジェクトに通知しますservo1.write(0); //初期位置を設定します)void loop() (servo.write(90); //サーボを90度回転delay(1000);servo.write(1800); delay(100);servo.write(90); delay(1000);servo.write(0) ; delay(1000);)

2つのサーボのスケッチ

この例では、一度に2つのサーボを使用しています。

#含む Servoservo1; //最初のサーボサーボservo2; //2番目のサーボvoidsetup()(servo1.attach(9); //サーボがピン9に接続されていることをサーボクラスオブジェクトに通知servo2.attach(10); //このサーボはピン10に接続されている)void loop ()(//位置を設定servo1.write(0);servo2.write(180); delay(20); //位置を変更servo2.write(0);servo1.write(180);)

ポテンショメータによるサーボ制御

この例では、ポテンショメータから受け取った値に応じてサーボを回します。 値を読み取り、map関数を使用して角度に変換します。

//サーボライブラリを使用する標準的な例のフラグメントvoidloop()(val = analogRead(A0);//ポテンショメータが接続されているピンから値を読み取りますval= map(val、0、1023、0、 180); // 0〜1023の範囲の数値を新しい範囲-0から180に変換します。servo.write(val); delay(15);)

SG-90の特徴と接続

最も安価でシンプルなサーボを購入する場合は、SG 90が最適です。このサーボは、回転角が0°から180°の小型で軽量の機械を制御するために最もよく使用されます。

仕様SG90:

  • コマンド処理速度0.12s/60度;
  • 電源4.8V;
  • -30Cから60Cまでの作動温度;
  • 寸法3.2x1.2 x 3 cm;
  • 重量9g。

SG90の説明

ワイヤーの色が標準です。 サーボは安価であり、開始位置と終了位置の正確な設定を提供しません。 0度と180度の位置での不要な過負荷と特徴的なパチパチ音を避けるために、極値を10度と170度に設定することをお勧めします。 デバイスを操作するときは、供給電圧を監視することが重要です。 この指標を大幅に過大評価すると、歯車機構の機械要素が損傷する可能性があります。

MG995およびMG996タワープロサーボ

MG995サーボは、Arduinoプロジェクトに最も頻繁に接続される2番目に人気のあるサーボモデルです。 これらは、SG90よりもはるかに優れた性能を備えた比較的安価なサーボです。

仕様MG995

MG995の出力シャフトは120度(各方向に60度)回転しますが、多くの売り手は180度を示しています。 デバイスはプラスチックケースで作られています。

  • 重量55g;
  • トルク8.5kgx cm;
  • 速度0.2s/60度(4.8Vで);
  • 動作電力4.8-7.2V;
  • 動作温度-0Cから-55Cまで。

MG995の説明

arduinoへの接続も3本のワイヤーを介して行われます。 原則として、アマチュアプロジェクトの場合、MG995をArduinoに直接接続することは許可されていますが、モーター電流は常にボードの入力に危険な負荷をかけるため、サーボに個別に電力を供給し、接続することを忘れないでください。両方の電源回路のアース。 生活を楽にするもう1つのオプションは、既製のサーボコントローラーとシールドを使用することです。これについては別の記事で説明します。

MG996Rは、機能の点でMG995と似ていますが、金属製のケースに入っているだけです。

サーボを連続回転サーボに変換する

上記のように、サーボは回転角を設定する可変幅パルスによって制御されます。 現在位置はポテンショメータから読み取られます。 シャフトとポテンショメータが接続されていない場合、サーボモーターはポテンショメータのスライダーの位置を中間点と見なします。 これらすべてのアクションは、フィードバックが削除されるという事実につながります。 これにより、信号線の回転速度と回転方向を制御し、連続回転サーボを作成することができます。 定回転サーボは一定の角度で回転できず、厳密に指定された回転数で回転できないことに注意してください。

上記の手順を実行するには、デバイスを分解して設計を変更する必要があります。

Arduino IDEでは、ロッカーを中央の位置に配置する小さなスケッチを作成する必要があります。

#含む サーボmyservo; void setup()(myservo.attach(9); myservo.write(90);)void loop()()

その後、デバイスをArduinoに接続する必要があります。 接続すると、サーボが回転し始めます。 抵抗を調整して完全に停止させる必要があります。 回転が止まったら、シャフトを見つけて、フレキシブルエレメントを引き出して、元に戻す必要があります。

この方法にはいくつかの欠点があります。抵抗を完全に停止するように設定すると不安定になり、わずかな衝撃/加熱/冷却で、調整されたゼロ点が誤ってしまう可能性があります。 したがって、ポテンショメータをトリマーに交換する方法を使用することをお勧めします。 これを行うには、ポテンショメータを引き出して、同じ抵抗のトリマーと交換します。 ゼロ点は、キャリブレーションスケッチで調整する必要があります。

サーボを連続回転サーボに変換する方法には、欠点があります。 第一に、ゼロ点を調整することは困難であり、どんな動きでもゼロ点を下げることができます。 第二に、制御範囲が小さい-パルス幅のわずかな変化で、速度が大幅に変化する可能性があります。 Arduinoではプログラムで範囲を拡大できます。

結論

サーボドライブは、ロボット工学からスマートホームシステムまで、多くのArduinoプロジェクトで非常に重要な役割を果たします。 伝統的に動きに関連するすべてのものは特別な知識を必要とし、本格的な正しく機能するドライブを作成することは簡単な作業ではありません。 しかし、サーボモーターを使用すると、多くの場合、作業を簡素化できるため、サーボはエントリーレベルのプロジェクトでも常に使用されます。

この記事では、arduinoプロジェクトでサーボを使用する際のさまざまな側面(接続からスケッチの作成まで)について説明しました。 最も単純なサーボモデル(たとえば、sg 90)を選択することにより、与えられた例を簡単に繰り返し、何かが動いたり変化したりする最初のプロジェクトを作成できます。 この記事がこれに役立つことを願っています。

最も単純なロボットは、2輪または4輪です。 このようなロボットは、ラジコンカーのシャーシをベースにすることができますが、誰もが手元にあるとは限らないか、それを台無しにするのは残念かもしれません。 シャーシを自分で作成することもできますが、ホイールをモーターに直接取り付けることはあまり良い解決策ではありません。モーターを充電して速度を落とす必要があります。これにはギアボックスが必要です。 サーボとは異なり、既製のシャーシ、ギアボックス、またはギアボックス付きのモーターを入手することは、それほど簡単な作業ではないことがわかりました。 ほとんどすべてのサーボドライブは、ギアボックスを備えたモーターに簡単に変換できます。

このようなモーターのロッキングチェアには車輪を直接接着することができ、サーボ本体は取り付けに便利です。

注意! 他のサーボの設計は異なる場合があるため、このマニュアルはその一部にすぎません。

最も単純で最も安価なサーボが基礎として採用されました。

まず、分解してみましょう。

まず、不要な電子機器を取り外し、ドライバーを噛み切り、モーターを直接制御します。 次に、メカニックの変更を開始し、外部シャフトを備えた最初のギアを取り外し、ストロークリミッターを取り外します。

抵抗器を取り出し、本体にあるリミッターを噛みます。

すべてのメカニズムを回収し、すべてが正常に動くかどうかを確認します。

次のステップは、ワイヤーをモーターにはんだ付けすることです。

以前のサーボをギアボックス付きの新しいモーターに組み立てます。

すべての準備が整いました。間違いがなければ、仕事を楽しむことができます。

サーボを分解するには、ドライバーが必要です。 なぜなら 非常に小さなサーボを分解してから、適切なドライバーが必要です。 個人的には、安い中国製キットのドライバーを使用しています。 地下道のキオスクで5ドルくらいで買ったので、それほど高くはありません。

サーボを開くには、4本のネジを緩めるだけです。 それらは底部カバーにあります。 ネジを外します:

カバーを外すと、コントロールユニットが見えます。 詳細については説明しませんが、とにかくここから削除します。 また、2本のワイヤーがつながるモーターも見ることができます。

上部にはカバーもあり、ギアボックスのギアが見えるように取り外します。 そのうちの2つがポテンショメータに固定されていることは注目に値します-ギアボックスがその機能を実行し続けるためには、実際にポテンショメータを壊す必要があるため、これは非常に重要です-単にそれを軸として使用しますギア。

実際には、サーボドライブからすべてのギアを取り外して、しばらく脇に置く必要があります。 サーボの下側からドライバーでそっと押して、ケースからポテンショメータ(ちなみに可変抵抗器でもあります)を取り出します。

これがノーリターンの瞬間です。 もちろん、すべてをはんだ付けすることはいつでも可能ですが、これはすでにより困難です。 だから-ポテンショメータをかみます。

次に、同じ方法を使用して、制御ボードを電源線と信号線で分離します。


次に、モーターからワイヤーを噛み切ります。 ここでは、注意して、モーター自体から接点を噛まないようにしてください。よくわからない場合は、ワイヤーに余裕を持たせておくとよいでしょう。 その後、はんだ付けすることができます。 私は非常に接触するためにワイヤーを噛み切りました。

在庫を取りましょう。

すべてが整っているようです。 次に、ポテンショメータを手に取ります。

事実、今では特定の角度でのみ回転します。 また、軸であり、最大の歯車が取り付けられており、後で実際にホイールを取り付けるため、常に回転するようにする必要があります。 これを防ぐために2枚の金属板を取り出します。 我々が得る:

写真が私がしたことを明確にすることを願っています。 手元にこれ以上適したものがなかったので、小さなペンチでそれを引き裂きました。
次に、ギア自体のリミッターをカットする必要があります。 歯車の下からの棚のように見えます。 見つけやすいです、こんな感じです。

レゼム。

そして実際にはその後、ギアボックスをハウジングに組み立てて戻すことができます。 ポテンショメータから先に作成した軸を挿入し直します。

次に、小さいものから1つずつギアを並べていきます。 最後の歯車を挿入するときは注意してください。軸の先端は文字の形をしているため、前のポテンショメータの軸に特別に取り付けられています。 D。 この突起が歯車のくぼみに入る必要があります。 次の図のようなものになります。

今後の作業でバラバラにならないように、ギアボックスにトップカバーを取り付けています。

さて、あまり残っていません。 以前にボードから噛み切ったコネクタ付きのワイヤを取り、その中の配線を分離します。 あなたは長距離から離れるべきではありません、実際には1センチメートルで十分です。

私たちはそれらのうちの2つを掃除します(実際、どれでも、私は赤と緑を使用しました)。 約3mmの断熱材を切り落とすだけで十分です。 私たちの目的のために-以上。

残りの剥がれていないワイヤーを曲げて、邪魔にならないようにします。

ホットに移りましょう。 はんだごてを加熱する時が来ました。 はんだごてが加熱されている間、サーボドライブのグリップをより快適にしました。

まず、エンジンの接点に残っている古いはんだの残りを取り除く必要があります。 これをはんだごてポンプで行い、はんだごてとの接点をはんだが溶ける状態に予熱します。 ここでの主なことは、やりすぎないことです。モーターの背面カバーはまだプラスチックであり、長時間ウォームアップするのは好きではありません。 プロセスは次のようになります。

私がやったことは可能であまり目立たないことは理解していますが、接点にはんだがほとんど残っていなかったので、それを達成しようとしていました。

DI HALTにははんだ付けに関する素晴らしい記事があります"a。彼は一般的に天才です、私には思えます。彼のブログへのリンク、はんだ付け以外にもたくさんのことがあります。実際、検索するだけです。
要するに、良いはんだ付けをするために、あなたは常に最初に古いはんだを取り除く必要があります。
2本のワイヤーをはんだ付けするために残っています。 はんだ付けに精通している人-5秒で対処します。 私のように、私の人生で2回目に、通常ははんだごてを取り上げた人は、もう少し時間がかかりますが、それでも-それは非常に簡単で、誰でもこれを行うことができます。
はんだ付けの際、私はフラックスを使用します。これにより、作業が簡単になる場合があり、はんだ付けの品質を確保するのがはるかに簡単になります。 個人的には、私からのアドバイスで、再びDI HALT "と彼のブログで、私はすでにLTI-120に恋をしました。私はそれをブラシですぐにそのようなファッショナブルな瓶に入れました。

4本のネジを締めます。

以上でサーボの変更は終わりです。 サーボをより快適に、よりしっかりとグリップに固定したら、テストを開始できます。

今回はコントローラーに精通していませんが、電源から5Vまでの電圧を緑と赤の配線に印加するだけです。 注意、ビデオはドライブの操作からかなり大きな音を示しています。

ご覧のとおり、サーボが停止せずに回転するのを妨げるものは何もありません。 ドライブから発せられる音はそれほど静かではありませんが、原則として許容範囲内です。 今日はこれでおしまいでしょう。

サーボドライブの回転角度は通常180度に制限されています。 この場合、軸の回転角が無制限の「変更された」サーボを検討してください。


販売者のページからのTTX

サイズ:40 * 20 * 37.5+5mmドライブシャフト
重量:38g
ワイヤー長さ:320mm

速度:0.19秒/ 60度(4.8V)
0.22秒/60度(6V)
速度はおそらく混同されており、6ボルトではサーボがより速くなるはずです
トルク:5kg。 CM。 (4.8 V)で
5.5kg.cm.at(6V)
電圧:4.8V-6V

配信セット標準

さまざまな形の4つのロッキングチェア
サーボを取り付けるための4つのブッシング、4つのゴム製ダンパーおよび4つのネジ
そして、ロッキングチェアをシャフトに取り付けるための別の小さなネジが写真から逃げました:)

外観は自信を刺激し、触ることもありません。取り付け耳の領域にのみ鋳造の小さな浅瀬があり、ステッカーはわずかに曲がっています(はい、トートロジーです!)。 ワイヤーは柔らかく、コネクターはピンにぴったりとはまります。

さて、今オープニング:

それがどのように機能するかを知らなかった人:モーター、制御盤、可変抵抗器があり、その位置によってサーボが軸の角度を決定する場合。
このサーボのギアボックスはプラスチック製で、リソースは金属製のものよりも少なく、大きな負荷を好みません。 中心軸のブッシングは銅またはその合金の一部です。 出力軸にはベアリングが付いています。 潤滑剤を追加することができます

電気部品

回転の方向と速度を制御する頭脳、可変rezjukと電気モーター。

そして今、注目、「ライフハック」、通常のサーボを定回転サーボにする方法

オリジナルでは、変数はサーボの内側から出力シャフトに軸で固定されていますが、変更されたシャフトでは、組み立て段階で噛まれたり壊れたりしたようです。抵抗は中央の位置に設定されているため、シャフトは静止時に回転しません。 さらに進んで、それを完全に捨てて、2つの同一の一定の抵抗器と交換することができます。コントロールボードに何かsmd-shnoeを置くと便利です。

合計:
セルバとしてのセルバ、スペースではなく、消費財ではなく、
より安く、金属製のギアボックスで見つけることができます

PS
コメントで正しく指摘されているように、サーボがどのように制御されているかについて言及するのを完全に忘れました。サーボは5〜6ボルトで駆動され、3番目のワイヤを介してppm信​​号が供給されます。

最も一般的な制御オプション:
1)片側に電源を接続し、一方、3つの「消費者」(サーバー、モーターなど)の電源とPPM信号の出力を接続し、ノブでサーボの回転速度と回転方向を調整できます
2)受信機のRC機器は同じppm信号を出力します。
3)arduinoを運転する

ビデオ

pps
「変更」の結果、サーボはフィードバックを失い、脳はシャフトの実際の位置と回転方向を知りません。購入する場合は、この瞬間を考慮してください。

+17を購入する予定です お気に入りに追加 レビューが気に入りました +31 +56
トピックの続き:
Linux

数学計算のための無料の商用プログラムがたくさんあります。 それらは2つの大きなグループに分けることができます:1。 数式処理システム-..。