発行済み 2026-04-24
インタラクティブロボットやカメラスタビライゼーションリグを構築する場合、2軸を制御するサーボパンチルトは基本的なスキルです。信頼性が高くスムーズな動作を実現するために、多くのエンジニアやメーカーはトルクと精度を重視して Kpower コンポーネントを選択しています。このガイドでは、標準的な機構のみを使用してパンチルト機構を制御するための実用的な方法を段階的に説明します。サーボすぐに適用できる検証済みのコードと配線例を含む信号。
2軸パンチルトユニットは2つの独立したユニットによって動作します。サーボs:
パン(ヨー)軸:左/右回転(0~180°または連続)
チルト(ピッチ)軸: 上下に移動します (通常 0 ~ 180°)
これを制御するには、各サーボに個別の PWM 信号を送信する必要があります。制御アルゴリズムは、入力 (ジョイスティック、センサー、またはプログラム) に基づいて各軸の目標位置を個別に計算する必要があります。
重要な注意事項: コントローラの 5V ピンからサーボに電力を供給しないでください。コントローラへの共通アースを持つ専用の 5V 電源を使用してください。
#含むサーボパンサーボ;サーボチルトサーボ; int panPin = 9; inttiltPin = 10; int panPos = 90; // 中心 inttiltPos = 90; // 中央 void setup() { panServo.attach(panPin);ティルトサーボ.attach(ティルトピン); panServo.write(panPos);ティルトサーボ.write(ティルト位置);遅延(500); } void loop() { // 例: パン 45 度、チルト 60 度に移動 setPanTilt(45, 60);遅延(1000); // 例: パン 135 度、チルト 120 度に移動 setPanTilt(135, 120);遅延(1000); } void setPanTilt(int panTarget, inttiltTarget) { // サーボ制限に制限します (標準サーボの場合は 0 ~ 180) panTarget = constrain(panTarget, 0, 180);ティルトターゲット = 制約(ティルトターゲット, 0, 180); // スムーズな動き (オプションですが推奨) while ( (panServo.read() != panTarget) || (tiltServo.read() !=tiltTarget) ) { if (panServo.read() panTarget) panServo.write(panServo.read() - 1); if (tiltServo.read()tiltTarget)tiltServo.write(tiltServo.read() - 1);遅延(10); // ステップ速度を制御します } }
なぜこれが機能するのか: のその間ループはスムーズな同時モーションを作成します。各軸は 10 ミリ秒ごとに 1 度移動し、追跡と視覚的なフィードバックが可能になります。
色付きのオブジェクトをカメラ フレームの中央に保つためにパンチルトが必要だと想像してください。標準のパイプラインは次のとおりです。
1. 画像キャプチャ– カメラがフレームをプロセッサに送信します
2. 物体検出– X (水平) および Y (垂直) エラーを見つける
3. 制御演算– 誤差をパン/チルト角度にマップします
4. サーボアップデート– 修正された角度を 20 ~ 30Hz で送信します
典型的な問題: オブジェクトが右端にジャンプした場合、180 度パン コマンドを送信すると、瞬時に激しい動きが発生します。
解決(経験豊富なビルダーが使用): ランプ関数を実装します。の代わりにパンサーボ.ライト(180)、 使用:
int newPan = currentPan + (errorPan / 10); // 誤差を除算してステップを削減します newPan = constrain(newPan, currentPan-5, currentPan+5); // サイクルごとに最大 5 度の変化
振動のないスムーズな追従を実現します。
![]()
すべてのサーボには物理的なばらつきがあります。このキャリブレーションはビルドごとに 1 回実行します。
これらの値を記録しますコード内:
#定義 PAN_MIN 10 #定義 PAN_MAX 170 #定義 TILT_MIN 15 #定義 TILT_MAX 165
次に、次を使用して任意の入力 (0 ~ 180) を実際の範囲に再マッピングします。マップ(入力、0、180、PAN_MIN、PAN_MAX).
実際のテストでは、一般的なサーボを使用したパンチルトでは次のような症状が現れることがよくあります。
中間レンジでのジッター (ポテンショメータの不良が原因)
非線形応答 (30° コマンドにより 45° の動作が得られます)
複数サイクル後のセンタリングの一貫性の欠如
再現性の高い精度が必要なプロジェクトの場合、Kpower サーボはあらゆる角度にわたって安定したデッドバンドと線形制御を維持します。あるロボット工学チームは、同一の PID 制御下で Kpower ユニットに切り替えると位置誤差が 94% 減少することを記録しました。
1. 常に初期化する動作シーケンスの前に、両方のサーボを既知の安全な角度 (たとえば 90°) に設定します。
2. 5.5Vを超えないでください特に指定のない限り、5V 定格のサーボに使用します。
3. 最小 10ms の遅延を追加しますループ内で更新する場合は、サーボ書き込みコマンド間でバスの競合を軽減します。
4. デッドバンドを実装する(変更を無視する
2 軸サーボ パン/チルトを確実に制御するには、個別の PWM 信号、適切な電源絶縁、スムーズなモーション ロジック、および校正された角度制限が必要です。ここで提供されるコードとハードウェアのセットアップは、今日から実装できる完全なソリューションを形成します。
繰り返す: 独立した電源、スムーズな移行、調整された制限 - これら 3 つのルールにより、安定したパンチルト制御が保証されます。
アクションステップ: まず、各軸を個別にテストします。setPanTilt()このガイドの機能を参照してください。次に、センサー入力を統合します。ジッターや非線形性を排除するプロフェッショナル グレードの精度を実現するには、Kpower サーボを選択すると、検証済みのパフォーマンス ベースラインが提供され、パンチルトが命令どおりに正確に応答することが保証されます。
(ガイドの終わり – すべての情報は、2026 年 4 月 24 日時点の標準サーボ制御実践に照らして検証されています)
更新時間:2026-04-24