DDT モーター ID 変更¶
このページでわかること
ddt_checker.py を使って DDT モーター(M0602C)の ID を確認・変更する手順がわかります。新品モーターの初期 ID 設定や、モーターを交換したときの再設定に使います。
なぜ ID 変更が必要か¶
QUESTiX の走行モーターは RS-485 バスで制御されます。バス上では ID でモーターを識別 するため、左右のモーターが別々の ID を持っている必要があります。
| モーター | 標準 ID |
|---|---|
| 左モーター | 4 |
| 右モーター | 5 |
新品の DDT モーターは ID が異なる場合があります。組立前・交換後に必ず確認してください。
安全注意事項¶
作業前に必ず確認
- DDT モーターを 1 台だけ 接続した状態で行ってください。複数台を同じ RS-485 バスに繋いだまま変更すると、すべてのモーターが同じ ID になるおそれがあります。
- 作業前に ROS 2 の走行ノード・QUESTiX Launcher・他のシリアル通信ツールをすべて終了してください。
- 非常停止ボタンをすぐに押せる状態で作業してください。
前提¶
| 項目 | 内容 |
|---|---|
| ツール | ddt_checker.py(~/questix/ddt_checker.py) |
| 実行環境 | Python 3 + tkinter が使える端末(Pi または開発機) |
| 接続 | USB/RS-485 変換器が /dev/ttyACM0 に現れていること |
| ボーレート | 57600 |
手順¶
全体フローを確認する
flowchart TD
A["① ddt_checker.py を起動\npython3 ~/questix/ddt_checker.py"] --> B
B["② ポートの確認\n/dev/ttyACM0@57600 が利用可能か"] --> C
C["③「情報更新」で現在 ID を確認"] --> D
D["④ 新しい ID を入力\n左=4 / 右=5"] --> E
E["⑤「ID変更」ボタンを押す\n完了ダイアログを確認"] --> F
F["⑥ モーターの電源を入れ直す\n(ID はリセット後に有効)"] --> G
G["⑦「情報更新」で変更後 ID を確認\nFault: 0x00 であること"]
① ddt_checker.py を起動する¶
GUI ウィンドウが開きます。

Port Status: 利用可能 (/dev/ttyACM0@57600) が緑色で表示されていることを確認します。表示されない場合は、モーター電源・USB/RS-485 変換器の接続・ポート名・アクセス権限を確認してください。
ボーレート自動検出について
「ボーレート自動検出」ボタンは現バージョンでは使用できません。手動で 57600 を選択してください。
②③「情報更新」で現在の ID を確認する¶
「情報更新」ボタンをクリックすると、端末に送信コマンドと受信データが表示され、GUI のフィールドが更新されます。

端末出力の見方:
送信コマンド: C8 64 00 00 00 00 00 00 00 DE
利用可能バイト数: 10
受信データ: 04 02 FF E6 00 00 7D 1F 00 B2
↑
先頭バイトが現在の ID(この例では 04)
GUI フィールドの確認ポイント:
| 表示項目 | 確認ポイント |
|---|---|
| ID | 変更前後で期待値(4 または 5)になっているか |
| Mode | 参考値 |
| Current | 停止中は小さい値(例:-0.026 A) |
| Velocity | 停止中は 0 rpm |
| Temperature | N/A (not in this response) は正常 |
| Position | 参考値(16 進数) |
| Fault | 0x00 = エラーなし |
④ ID 設定欄をスクロールして ID を入力する¶
ウィンドウ右側のスクロールバーを下へ動かすと「ID 設定」欄が現れます。「新しい ID (0〜255)」欄に目的の値を入力します。

| 対象 | 入力する ID |
|---|---|
| 左モーター | 4 |
| 右モーター | 5 |
接続台数を再確認
入力前に、モーターが 1 台だけ 接続されていることを再確認してください。
⑤「ID変更」ボタンを押す¶
「ID変更」をクリックすると完了ダイアログが表示されます。

ダイアログの内容(例:「ID を 5 に変更しました。再接続時に有効になります。」)を確認して OK を押します。
⑥ モーターの電源を入れ直す¶
ID 変更は電源再投入後に有効になります。モーターの電源を切り、数秒待ってから再投入してください。
⑦「情報更新」で変更後の ID を確認する¶
再度「情報更新」をクリックし、以下を確認します。
- ID が設定した値(
4または5)になっている - Fault: 0x00(エラーなし)
config ファイルとの照合¶
ID 変更後、motor_control_app/config/drive_component.yaml の設定値と一致しているか確認します。
ID が一致しない場合、走行ノードが誤ったモーターに指令を送り正常に動作しません。
トラブルシューティング¶
ポートが利用不可になる¶
# デバイスファイルが存在するか確認
ls -l /dev/ttyACM* /dev/ttyUSB* 2>/dev/null || echo "デバイスなし"
# ポートを使用しているプロセスを確認
fuser -v /dev/ttyACM0
- 別プロセスがポートを占有している場合は終了してください。
- USB/RS-485 変換器を抜き差しするとポート名が変わることがあります(
/dev/ttyACM1等)。
「情報更新」で応答がない¶
- モーター電源が入っているか・非常停止が解除されているか確認してください。
- RS-485 の A/B 配線が逆になっていないか確認してください。
- ボーレートが
57600であることを確認してください。 - モーターが 1 台だけ 接続されているか確認してください。
ID が変わっていない¶
- 電源を入れ直していない場合は、モーターの電源を切り再投入してください。
- 完了ダイアログが表示されなかった場合は、ポートの占有や接続不良が原因の可能性があります。ポートを確認して再試行してください。
Temperature が N/A と表示される¶
現在の「情報更新」コマンドの応答に温度フィールドは含まれていません。N/A (not in this response) は正常な表示です。