Damiao モーターの設定・書き込みをGUIで簡単に行えるツールです。CAN通信を使用してモーターパラメータをリアルタイムで変更・管理できます。
- 対応インターフェース: SocketCAN / SLCAN
- 対応OS: Linux (Ubuntu 24.04 で動作確認済み)
- UI: PySide6によるGUI
- 機能: リアルタイム設定変更、CSV保存/読み込み、フラッシュメモリ書き込み
- numpy: 数値計算ライブラリ
- PySide6: GUI フレームワーク
- python-can: CAN通信ライブラリ
# 仮想環境の作成(推奨)
python3 -m venv .venv
source .venv/bin/activate
# 依存パッケージのインストール
pip install -r requirements.txtSLCAN / SocketCANを使用する場合でも、内部でCANインターフェイスの初期化は不要です。
# source .venv/bin/activate # 仮想環境を有効化(必要な場合)
python dm_configurator.py
- 「接続設定」で以下を選択します:
- インターフェースタイプ: SocketCAN または SLCAN
- CAN ポート: can0など(SocketCANの場合)
- シリアルポート: /dev/ttyACM0など(SLCANの場合)
- ビットレート:1000000 Hz
- ESC_ID: 0x001
- MST_ID: 0x000
- モーター 型番:
- 「接続」ボタンをクリック
- 接続成功時:ステータスが緑に変わり、モーターのIDが表示される 接続確認までに、CANインターフェースのセットアップが自動で行われます。セットアップに失敗した場合はエラーメッセージが表示されます。 また、モーターからIDの読み込みに成功すると、接続成功とみなされます。IDの読み込みに失敗した場合は、接続エラーとして扱われます。
Caution
接続前、以下を確認してください:
-
モーターのID設定が正しいか
-
複数モーターの場合、IDの重複がないか
-
基本的には1対1での接続を推奨します。
- 「設定を読み込み」ボタンをクリック
- モーターから現在のパラメータをGUIに取得します 初期設定では、接続後、自動的に読み込み、GUIに現在のモーター設定が表示されます。 複数台の設定を揃えたいなど、現在の設定で上書きしたくない場合はチェックボックスから無効にしてください。
Caution
各種類モーターの初期設定を「設定を保存」でバックアップしてください。
ソフト内にデフォルト設定は用意されていません。初期状態のパラメータをモーターから読み込み、保存しておくことを強く推奨します。
- 各パラメータをGUI上で編集
- 値をEnterキーで確定 → モーターに送信
- または「すべて書き込み」で一括送信
- 「設定を読み込み」で再度設定を読み込む
- GUIに表示されている値が反映されていることを確認
CSV形式での保存:
「設定を保存」 → ファイル名を指定 → 保存
フラッシュメモリへの保存(永続化):
「flashメモリに保存」 → 確認ダイアログで「OK」
保存した設定の読み込み:
「設定を読み込み」(CSV) → ファイルを選択 → モーターに書き込み
dm-menuconfig/
├── dm_configurator.py # メインGUIアプリケーション
├── DM_CAN.py # モーター制御ライブラリ
├── socketcan_interface.py # SocketCANインターフェース
├── socketcan_initializer.py # SocketCANセットアップ
├── slcan_interface.py # SLCANインターフェース
├── can_interface.py # 汎用CANインターフェース
├── setup_socketcan.py # SocketCAN自動セットアップスクリプト (ソフトでは使いません)
├── config/ # 設定ファイル保存先
│ ├── DM10010L.csv # DM10010Lデフォルト設定
│ └── DM4310.csv # DM4310デフォルト設定
└── README.md
- SocketCAN: Linux標準のCANドライバを使用
- SLCAN: USB-CANアダプタ向けのシリアル通信 起動時に接続されているCANインターフェースを自動検出し、選択肢に表示します。 どちらも接続されている場合はSLCANを優先して表示しますが、選択可能です。
- socketcanのセットアップを内部で処理するため、ボーレート変更時などの手動設定が不要です。
- セットアップは「接続」ボタンを押すと自動で行われます。セットアップに失敗した場合はエラーメッセージが表示されます。
- 実行には管理者権限が必要なため、必要に応じてパスワード入力を求められます。
- ソフトを再起動するまでは内部のキャッシュに維持していますが、保存はしていません。
- パラメータを編集してEnterを押すと、即座にモーターに反映します
- この機能は、有効/無効を切り替えることができます。無効にすると、変更後に「すべて書き込み」ボタンを押すまでモーターには反映されません。
- 複数モーター対応(モーターIDで識別するため重複IDが無い状態にする必要があります)
- IDやボーレートの変更を行った場合、自動再接続されます。 再接続に失敗した場合、設定の変更が反映されていない可能性があります。 電源を再投入して、リセットしてから再度やり直してください。
- 設定をCSV形式で保存・読み込み
- 複数の設定パターンを管理可能
- 設定をモーターの不揮発性メモリに保存
- 電源切断後も設定を保持
-
パラメータ検証
- すべての値はDatasheetの指定範囲内に設定してください
- 不正な値でフラッシュメモリに保存すると、接続不可になる可能性があります
-
フラッシュメモリ寿命
- フラッシュメモリは書き込み回数に制限があります(10000回)
- 不必要な連続書き込みは避けてください
-
複数モーター
- 各モーターのIDが一意であることを確認してください
- IDの重複は通信エラーの原因になります
-
CANFD設定
- CANFDはsocketcanでのみサポートされており、SLCANでは使用できません。
- SLCAN接続時、警告は表示されますが、CANFDの設定は妨げません。
- 間違って設定した場合、電源再投入すれば設定はリセットされるはずです。