🧪 新しいチュートリアルを公開中 — ロボットアームからセンサーまで
コンテンツへスキップ
この製品を購入公式ストア公式サイト

SCS0009 サーボ調整とキャリブレーション ​

SCS0009 版には 2 種類の調整内容があります:

  1. TTL の組み立てと中間位置の調整:配線、サーボ ID の設定、サーボホーンの固定、中間位置の微調整、テストの実行。
  2. SCS0009 調整ツール:Python + PySide6 の GUI。バスのスキャン、全レジスタの読み書き、位置制御、ボーレート/工場出荷状態への復元、xdat EEPROM バックアップ。

プロトコルのレジスタ詳細は SCS0009 プロトコルメモリテーブル を参照してください。
Arduino/拡張の配線は Arduino Nano を参照してください。

1. TTL 調整:組み立て、ID、中間位置 ​

まず「多指ハンド調整.zip」をダウンロードして解凍し、「arduino プログラムで多指ハンドを調整する手順(TTL サーボ)」のドキュメントに従って、サーボ ID の設定、キャリブレーション、中間位置の調整、デモプログラムの実行を行います。または公式オープンソースコードを参照してください。

完成品を分解しない場合(出荷時にサーボ ID、キャリブレーション、中間位置は調整済み)、第 6 節「02 デモプログラム」の実行とハンドトラッキングへ直接進めます。

TTL 調整に必要なツールと配線

1. 多指ハンド調整の配線方法 ​

1 つは PC で Python などの PC 側ソフトウェアを実行する方法(Feetech のサーボ設定ソフトや Python コードなど)です。

もう 1 つは MEGA328P などのマイコン、または購入した開発ボードやメインコントローラを使用する方法です。

配線方法は次のとおりです:

(1)Python 方式で調整するときの配線(サーボドライバ基板のみ接続):

1. 多指ハンド調整の配線方法 – 1

(2)MEGA328P 開発ボードで調整するときの配線(サーボドライバ基板 + 328P 開発ボード):

MEGA328P 開発ボードのピン位置をよく確認してください!

1. 多指ハンド調整の配線方法 – 2

1. 多指ハンド調整の配線方法 – 3

1. 多指ハンド調整の配線方法 – 4

1. 多指ハンド調整の配線方法 – 5

以下ではマイコンを使った調整手順を説明します。マイコン自体はデモプログラムを繰り返し実行し続けるため、データ線を外すだけで停止できます。

2. サーボ ID の設定 ​

1 つの多指ハンドはサーボを 8 個使用します。右手の ID は 1-8、左手の ID は 11-18 に設定する必要があります。

中間位置のキャリブレーション:完成品のデフォルトは右手 [451,571,451,571,451,571,451,571]、左手 [571,451,571,451,571,451,571,451]

  1. 配線:1 個ずつサーボとサーボドライバ基板を順に接続します。

2.サーボ ID の設定 – 1

  1. サーボメーカー提供の設定ソフト FD1.9.8.2 で設定します

FD.rar

2.サーボ ID の設定 – 2

2.サーボ ID の設定 – 3

2.サーボ ID の設定 – 4

3. サーボホーンの固定 ​

  1. 「白いサーボホーンを取り付けるときに使用」というプログラムを開発ボードへ書き込みます

このプログラムの役割:サーボのギア位置をほぼ中央に合わせます。以降の動作角度はすべてこの中間位置を基準にします。

(1)Arduino ソフトをインストールし、お使いのシステムに応じてインストールチュートリアルを参照してください。Arduino プログラムをコンパイル・ダウンロードするには、先にライブラリマネージャーで FTServo ライブラリと SCServo ライブラリをインストールします

3.サーボホーンの固定 – 1

(2)ボードの種類:「Arduino Nano」を選択

3.サーボホーンの固定 – 2

  1. サーボ 1、2 を調整

(1)編集:調整するサーボ ID に応じて、次の箇所を変更します。人差し指を調整する場合は ID を 1、2 に設定します

3.サーボホーンの固定 – 3

(2)プログラムを開発ボードへ書き込みます

(3)配線:開発ボードをサーボドライバ基板と 1、2 番のサーボへ接続すると、サーボのギアが一定角度回転して停止するのが聞こえます。

3.サーボホーンの固定 – 4

(4)サーボホーンをギアへ取り付けます。可能な限り平行な位置にしてください

3.サーボホーンの固定 – 5

  1. サーボ 3、4 を調整

(1)328P 開発ボードとサーボドライバ基板の間の配線を外してください(外さないとアップロードできません)

(2)編集:ID を 3、4 に設定

3.サーボホーンの固定 – 6

(3)プログラムを開発ボードへ書き込みます

(4)配線:開発ボードをサーボドライバ基板と 3、4 番のサーボへ接続すると、サーボのギアが一定角度回転して停止するのが聞こえます。

(5)サーボホーンをギアへ取り付けます。可能な限り平行な位置にしてください

  1. サーボ 5、6 を調整

手順は上記と同じ

  1. サーボ 7、8 を調整

手順は上記と同じ

4. 中間値の微調整 ​

  1. 「01 MiddlePos 値の微調整時に使用」というプログラムを開発ボードへ書き込みます

  2. 指が閉じた位置になったらすぐにプログラムを停止し(データ線を外すだけで停止)、サーボホーンが正しく揃っているか確認します(下図)。揃っていない場合は、プログラム内の MiddlePos_1、MiddlePos_2 の値を揃うまで調整します。その値を記録しておきます(8 個のサーボに対応する 8 個の値)。最後のプログラムで使用します。

4.中間値の微調整 – 1

4.中間値の微調整 – 2

5. テストプログラムの実行 ​

  1. 上で保存した MiddlePos_1、MiddlePos_2 の値を次の配列へ入力し、プログラムをダウンロードします。

5.テストプログラムの実行 – 1

6. 「02 デモプログラム」を実行 ​

(1)Arduino ソフトをインストールし、お使いのシステムに応じてインストールチュートリアルを参照してください

(2)灵巧手调试\00 TTL串口舵机\arduino程序(MEGA328P开发板)\02 演示程序 ディレクトリで、左手か右手かに応じて対応する ino ファイルを開きます

6.「02 デモプログラム」の実行 – 1

(3)Arduino プログラムをコンパイルして開発ボードへアップロードするには、先にライブラリマネージャーで FTServo ライブラリと SCServo ライブラリをインストールします

6.「02 デモプログラム」の実行 – 2

(4)ボードの種類:「Arduino Nano」を選択

6.「02 デモプログラム」の実行 – 3

(5)コンパイルしてアップロード

注意:このとき PC は開発ボードだけを単独で接続し、開発ボードはまだサーボドライバ基板へ接続しません(つまり多指ハンドとは接続しません)。

アップロードが成功したら、開発ボードを 3 本のジャンパー線でサーボドライバ基板へ接続し、サーボをサーボドライバ基板へ接続します。参考:MEGA328P 開発ボードで調整するときの配線方法。

多指ハンドは**「02 デモプログラム」**を繰り返し実行し続けます

実行結果は次のとおりです:

6.「02 デモプログラム」の実行 – 4


2. SCS0009 調整ツール ​

Windows 10 / 11 対応です。Linux と macOS の違いは第 8 節を参照してください。本チュートリアルは環境のインストールから完全な調整までの各ステップを扱います。

⚠️ 互換性の注意:本ツールは現在 Feetech SCS0009 サーボのみに対応しています(SCS シリーズ、ポテンショメータ位置フィードバック、10 ビット分解能 0–1023)。レジスタ表、xdat パラメータ形式はいずれも Feetech SCS0009 向けに設計されており、他ブランド/型番の互換性は保証されません。

1. 動作環境 ​

依存関係バージョン説明
Python>= 3.83.10+ を推奨。python.org からダウンロード
PySide6>= 6.0GUI フレームワーク
pyserial>= 3.5シリアル通信
システムWin10 / Win11任意のバージョン

2. Python のインストール ​

  1. https://www.python.org/downloads/ へアクセス
  2. Python 3.10+ のインストーラーをダウンロード
  3. インストール時に必ず「Add Python to PATH」を有効にする(有効にしないとコマンドラインで python が見つかりません)

インストールの確認:

bash
python --version

3. 依存関係のインストール ​

システムの Python を汚さないよう、仮想環境でのインストールを推奨します:

bash
# プロジェクトディレクトリへ移動
cd SCS0009_ServoController

# 仮想環境を作成
python -m venv .venv

# 仮想環境を有効化(Windows)
.venv\Scripts\activate

# 依存関係をインストール
pip install -r requirements.txt

⚠️ 仮想環境の作成は 1 回だけで十分です。繰り返し実行すると元の環境を上書きします(インストール済みの依存関係が消去されます)。以降は毎回 activate で有効化するだけです。

ヒント:有効化するとコマンドラインの先頭に (.venv) が表示されます。

4. 環境の確認 ​

bash
python setup.py

[OK] 环境检查通过,可以运行项目 と表示されれば環境は正しいです。

5. ハードウェアの接続 ​

  1. USB シリアルアダプター(CH340 / CP2102 など)を PC へ接続
  2. サーボコントローラ(ロボットアーム制御基板)を接続
  3. サーボへ給電(DC 5V 5A を推奨、Pro 版は DC 12V 5A)

デバイスマネージャー(Win+X → デバイスマネージャー)を開き、COM 番号を確認します:

端口 (COM 和 LPT)
  └─ USB-SERIAL CH340 (COM3)     ← 你的舵机串口

COM 番号を記録し、プログラム起動時に選択します。

6. GUI の起動 ​

bash
python -m src.gui.factory_calibration_tool

または手動でポートを指定します(シリアルポートが占有されている場合):

bash
python -m src.gui.factory_calibration_tool --port COM3

使用可能なポートの確認:

bash
python -m src.gui.factory_calibration_tool --list-ports

7. 画面の操作手順 ​

画面は単一パネル構成です。ウィンドウの高さが足りないときは自動的にスクロールバーが現れ、最大化時は画面に合わせて伸縮します。

7.1 シリアルポートの接続 ​

  • ポートとボーレート(デフォルト 1M)を選択し、连接をクリック
  • 状態が 🟢 已连接 と表示される

7.2 サーボのスキャン ​

  • 扫描舵机をクリックし、ID 1-254 のオンラインサーボを検出
  • スキャン結果はサーボリスト(型番付き)へリアルタイム表示
  • サーボリストの行をクリック → サーボのドロップダウンへ自動入力

7.3 パラメータの読み書き ​

  • 读取参数:44 個すべてのレジスタ(EEPROM + SRAM)を読み取り、結果をログへリアルタイム表示
  • 参数表:5 列で表示(アドレス/レジスタ/値/記憶領域/読み書き)。EPROM/SRAM/DEFAULT を色分け
  • クリック連動:パラメータ表の行をクリック → 「書き込みアドレス」「長さ」「値」へ自動入力
  • 書き込み:値を変更して書き込みをクリックすると、プログラムが自動でロック解除/書き込み/ロックを行います
  • 書き込み結果のダイアログ:成功時は緑色で「✅ 已成功写入」、失敗時は赤色で「❌ 写入失败」(原因を含む)を表示

7.4 サーボ ID の変更 ​

  1. バスには ID を変更するサーボを 1 個だけ接続し、既存の ID との衝突を避けます。
  2. パラメータ表で「舵机 ID」(アドレス 0x05)の行を見つけて選択します。
  3. 「値」を目標の ID に変更し、✏️ 写入をクリックします。プログラムが自動でロック解除 → 書き込み → 再ロックを行います。
  4. 変更後はバスを再スキャンして確認します。右手は 1–8、左手は 11–18 を使用します。

7.5 位置制御 ​

  1. スライダーをドラッグするか目標位置(0–1023)を直接入力します。数値ボックスとスライダーは同期します。
  2. ▶ 移动をクリックすると、ステータスバーに「移动中…」と表示されます。
  3. 到達すると「已移动完成,请关闭力矩」と表示されるので、⏹ 力矩关をクリックします。

7.6 ボーレート/工場出荷状態への復元 ​

  • 修改波特率:新しいボーレート(38400–1000000 bps)を選択して書き込みます。プログラムはシリアルポートのボーレートを切り替えて ping で検証し、失敗時は自動的にロールバックします。
  • 恢复出厂:出荷時のデフォルト(ID=1、ボーレート 1M)へ戻します。その後は再スキャンが必要です。

7.7 xdat パラメータ(EEPROM のみ保存) ​

  1. 💾 保存当前舵机:現在の ID のサーボの EEPROM パラメータを xdat ファイルへ保存(バックアップ)
  2. 📂 打开 xdat:バックアップファイルを読み込み
  3. 📤 恢复参数到舵机:バックアップをサーボへ書き戻し

8. Linux と macOS の違い ​

Linux ​

  • フォント:sudo apt install fonts-noto-cjk fonts-noto-color-emoji を実行します。実行しないと中国語の画面が空白になったり、emoji が四角に表示されたりすることがあります。
  • シリアルポートの権限:sudo usermod -a -G dialout $USER を実行し、ログアウトして再ログインすると反映されます。groups に dialout が含まれているはずです。一時的な方法として sudo chmod 666 /dev/ttyUSB0 も使えます。
  • デバイス名:/dev/ttyUSB*(CH340 / CP2102 / PL2303)または /dev/ttyACM*(オンボード USB シリアル)。lsusb、dmesg | grep -i tty で製造元を確認します。
  • 固定デバイス名(任意):/etc/udev/rules.d/99-servo.rules に SUBSYSTEM=="tty", ATTRS{idVendor}=="1a86", ATTRS{idProduct}=="7523", SYMLINK+="ttyServo" を書き、以降は /dev/ttyServo を使用します。
  • 起動:python -m src.gui.factory_calibration_tool --port /dev/ttyUSB0。
  • よくある問題:pip が externally-managed-environment を出す場合は venv を使用するか、--break-system-packages を付けます。

macOS ​

  • Python:Homebrew で brew install python を実行してインストールすることを推奨します。システム付属の古いバージョンは使わないでください。
  • シリアルポートの命名:/dev/cu.* を使用し、/dev/tty.* は使わないでください(後者はブロックする可能性があります)。ls /dev/cu.* で確認します。
  • USB ドライバー:CH340 / CP2102 / FTDI はほとんどドライバー不要です。古いロットの CH340 は WCH ドライバーが必要で、system_profiler SPUSBDataType で調査できます。
  • 起動:python -m src.gui.factory_calibration_tool --port /dev/cu.usbserial-0001。
  • Apple Silicon:ネイティブの Python 3.10+ を使用し、Rosetta 下の古い Python を避けてください。初回実行時に「開発元を検証できません」と表示された場合は、「プライバシーとセキュリティ」で許可します。
  • 省電力:macOS のスリープでシリアルポートが切断されることがあるため、操作中はスリープさせないでください。

9. 注意事項 ​

  1. 書き込みは永続化されます:パラメータを EEPROM へ書き込むと元の値が上書きされ、元に戻せません。変更前に xdat でバックアップしてください。
  2. 安定した給電:給電不足は脱調、通信失敗、サーボの接続喪失を招きます。SCS0009 配線と給電 の要件に従って給電してください。
  3. シリアルポートの独占:同じポートを 2 つのプログラムが同時に開くことはできません。使用前にシリアルモニター、PC 側ソフトウェアなど占有しているプログラムを閉じてください。
  4. ID 変更のリスク:バスには ID を変更するサーボを 1 個だけ接続してください。変更後に接続できなくなった場合は、「工場出荷状態へ復元」(ID が 1 に戻る)を試せます。
  5. 過熱/過電圧:ツールは電圧と温度を監視します(温度 > 60 °C で警告)。高温が続く場合は停止して放熱してください。
  6. ホットプラグ:USB を抜くとプログラムは再接続を試みます。挿し直したらポートの更新をクリックしてください。
  7. Windows コンソールの文字化け:コマンドラインツールで emoji が文字化けする場合は、PYTHONIOENCODING=utf-8 を設定してから実行してください。

10. よくある問題 ​

問題解決方法
シリアルポートが見つからないデバイスマネージャーでドライバーを確認;USB ポートを変える;CH340 ドライバーをインストール
シリアルポートが占有されているシリアルモニターなどのプログラムを閉じる;ツールを再起動
中国語フォントが空白になるシステムのデフォルトは Microsoft YaHei。異常な場合は中国語フォントをインストール
サーボがスキャンできない給電/配線を確認;ボーレートが 1M であることを確認
書き込みに失敗するサーボの給電と接続を確認;対象レジスタが書き込み可能か確認
PermissionError でシリアルポートを開けない他のプロセスがその COM ポートを占有していないことを確認
Linux:Permission denied: /dev/ttyUSB0dialout グループに未加入。上記の Linux の項を参照
macOS:ポート名に tty. が付くと固まる対応する /dev/cu.* デバイスに変更

11. コマンドライン(任意) ​

bash
# 使用可能なシリアルポートを一覧表示
python -m src.gui.factory_calibration_tool --list-ports

# ポートを指定して起動
python -m src.gui.factory_calibration_tool --port COM3

関連ページ ​