発行済み 2026-03-06
で遊ぶときは、サーボ、プログラムが書かれているにもかかわらず、次のような状況に遭遇したことがありますか?サーボただ従わないだけで、絶えず震えているか、回転の途中で止まっているか、あるいはまったく動かなくなっていませんか?この「シュレーディンガーのターン」は本当に人々を狂わせています。実際、この背後にある理由の 10 のうち 9 は、その人の「魂」にあります。サーボ- PWM 信号が正しく与えられていません。今日はサーボの PWM とは何なのか、そしてサーボを「あなたの言葉に従う」ようにする方法について説明します。
簡単に言えば、PWMはステアリングギアの回転を制御する「コード」または「言語」です。考えてみてください。サーボ モーターを特定の角度に回転させるには、どこをどのくらい回転させるかを指示する必要がありますよね。このコマンドは信号線を通じてPWM波の形で伝達されます。実際には、高レベルと低レベルが常に変化する方形波です。
この方形波には、ハイレベルの持続時間である「パルス幅」と呼ばれる重要なパラメータがあります。通常のサーボの場合、このパルス幅は通常 0.5ms から 2.5ms の間です。ハンドルを回すようなものと考えることができます。パルス幅 0.5ms は左いっぱいの位置に対応し、1.5ms はステアリングホイールが中央に戻ることに対応し、2.5ms は右端のいっぱい位置に対応します。
ステアリングギアの中に制御回路があり、このパルス幅を常に監視しています。パルス幅が変化すると、対応する角度にモーターが駆動されます。つまり、サーボを制御するということは、本質的にはこの高レベルの持続時間を正確に制御することなのです。これが PWM の機能です。
サーボの振動は、特に最初に使い始めたときに、非常に一般的な頭痛の問題です。サーボに東に移動するように指示すると、サーボは躊躇し、次に西に揺れ、最後に東に移動したような感じです。プロセス全体は「不本意」でいっぱいでした。この問題が発生する場合、原因の 99% は PWM 信号が不安定であることです。
考えてみれば、サーボに与えられた「コード」が明確でなく変動すると、サーボは誤った指示に従って常に位置を修正し、それが高周波ジッターとして現れます。誰かがあなたのハンドルを左右に振り続けているようなものです。車の揺れは止まりますか?
信号が不安定になる原因はさまざまです。たとえば、電源が不十分な場合や、電圧が変動すると信号が混乱します。また、コード内で PWM を生成するタイマーが正しく構成されていない、または次のような関数が設定されています。遅れ()プログラムの実行をブロックし、信号のタイミングが不正確になる原因となります。したがって、ジッター問題を解決するには、まず信号品質と電源の安定性というソースから始める必要があります。
多くの初心者は、「コードに何の数字を埋めればいいのか?」という段階でつまずいてしまうでしょう。これは実際には難しくありません。重要なのは、使用する開発ボードまたはドライバー ライブラリが「パルス幅」の時間概念をどのように「桁」に変換するかを理解することです。
最も一般的な Servo.h ライブラリを例に挙げます。使用しますwrite(角度)関数を直接操作することは簡単ですが、精度が十分ではありません。より高度な方法は、(マイクロ秒)高レベルが何マイクロ秒続くかを直接伝えることができます。例えば.(1500);サーボを中間点に戻すことです。
レジスタを直接操作する場合、または Servo ライブラリを使用せずに他のプラットフォームを使用する場合は、自分で計算する必要があります。たとえば、PWM 周期が 20ms で、パルス幅を 1.5ms にしたい場合、デューティ サイクルは 1.5/20 = 7.5% になります。 PWM 分解能が 8 ビット (0 ~ 255) の場合、対応する値は 255 * 7.5% ≈ 19 です。この対応関係が見つかると、すべてが突然明らかになります。
ジッターを解決し、サーボがどこにヒットするかを制御できるようになったら、次の課題は、サーボの動きをより自然でスムーズに見せることです。 0 度から 90 度まで瞬時にジャンプすると、サーボが「ポン」と跳ね返り、非常に唐突に見え、機械構造に影響を与えます。
滑らかさを求めるならその秘密は「補間」です。ターゲット角度を一度にサーボに入力するのではなく、パスを多くの小さなステップに分割し、各ステップ間に非常に短い遅延を追加します。まるで映画を再生しているような感覚で、コマごとに切り替わり、連続した動きがスムーズになります。
️操作手順 :
1. 始点と終点を設定する: たとえば、0 度から 90 度まで。
2. 歩幅を決定する: たとえば、ステップごとに 1 度回転します。
3. 円運動: を使用します。のために0 から 90 まで、毎回 1 度ずつ増加します。ループ本体で、まずサーボを現在の角度まで回転させ、次に遅延(15)次のステップに進むまでのミリ秒程度。このようにして、サーボはアニメーションのように滑らかに 90 度回転します。この遅延時間は、アクションの速度に応じて調整できます。
この問題は無視するにはあまりにも簡単であり、それによって引き起こされる故障現象はあらゆる種類の奇妙なものであるため、この問題について言及する必要があります。ステアリングギアは本質的にはモーターです。電力が強いほど、必要な電流も大きくなります。開発ボードの 5V ピンを直接使用して大型サーボに電力を供給する場合、それは消防車に水を供給するために小さな水道管を使用するのと同じです。
不当な再起動: サーボが回転すると、瞬間的な電流によってメインボードの電圧が低下し、マイクロコントローラーがリセットされます。
クレイジースピニング:電圧が不安定です。サーボ自体が正常に動作しなくなるだけでなく、マイコンのプログラム動作に支障をきたし、コードが暴走する恐れがあります。
応答はありませんでした:電流がまったく伝わらず、サーボはうなるだけでまったく動きませんでした。
したがって、このような少し強力なサーボの場合は、これを強くお勧めします。サーボ用電源を別途用意する(バッテリーや電圧安定化モジュールなど)、開発ボードとサーボの電源アース線 (GND) を同じアースに接続して、信号が共通の基準点を持つようにします。大型サーボを使って遊ぶ基本的な操作です。
市場には数元から数百元まで、あらゆる種類のサーボが販売されています。最適なものを選択するにはどうすればよいですか?見た目だけを見るのではなく、主にいくつかのハードな指標を見てください。
1. トルクを見てください: トルクはステアリングギアの強力さを決定します。単位は通常kg・cmで、ハンドル軸中心から1cmの位置で物をどれだけ持ち上げることができるかを表します。プロジェクト内の構造物の重さ、可動範囲、必要な力はどれくらいですか?いくつかの変換を行って少しマージンを残すだけで、決定できます。
2. スピードを見てください: 単位は秒/60 度です (0.12 秒/60 度など)。これは、60 度回転するのに 0.12 秒かかることを意味します。これは、移動速度の要件によって異なります。高速化したい場合は、より小さい数値を選択してください。
3. 種類を見てください: アナログステアリングギアとデジタルステアリングギア。簡単に言えば、デジタルサーボは応答が速く、制御がより繊細で、保持力が強いですが、高価でもあります。ほとんどの初心者レベルのプロジェクトでは、アナログ サーボで十分です。これらのポイントを理解すれば、数多くの商品の中からターゲットを素早く特定することができます。
ここまで話した後、現在どのようなプロジェクトに取り組んでいるのか気になります。サーボに奇妙な問題が発生しましたか?ぜひコメント欄であなたのストーリーを共有し、一緒に議論して解決しましょう。この記事が役立つと思われた場合は、「いいね」を押して、同じようにステアリングギアに悩まされている周りの友人と共有することを忘れないでください。
更新時間:2026-03-06