Skip to content

Repository files navigation

DM Configurator

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.txt

セットアップ

SLCAN / SocketCANを使用する場合でも、内部でCANインターフェイスの初期化は不要です。

使用方法

アプリケーションの起動

# source .venv/bin/activate     # 仮想環境を有効化(必要な場合)
python dm_configurator.py

基本的な操作フロー

起動画面

1. 接続設定

  • 「接続設定」で以下を選択します:
    • インターフェースタイプ: SocketCAN または SLCAN
    • CAN ポート: can0など(SocketCANの場合)
    • シリアルポート: /dev/ttyACM0など(SLCANの場合)
    • ビットレート:1000000 Hz
    • ESC_ID: 0x001
    • MST_ID: 0x000
    • モーター 型番:

2. 接続確認

  • 「接続」ボタンをクリック
  • 接続成功時:ステータスが緑に変わり、モーターのIDが表示される 接続確認までに、CANインターフェースのセットアップが自動で行われます。セットアップに失敗した場合はエラーメッセージが表示されます。 また、モーターからIDの読み込みに成功すると、接続成功とみなされます。IDの読み込みに失敗した場合は、接続エラーとして扱われます。

Caution

接続前、以下を確認してください:

  • モーターのID設定が正しいか

  • 複数モーターの場合、IDの重複がないか

  • 基本的には1対1での接続を推奨します。

3. 現在の設定を読み込み

  • 「設定を読み込み」ボタンをクリック
  • モーターから現在のパラメータをGUIに取得します 初期設定では、接続後、自動的に読み込み、GUIに現在のモーター設定が表示されます。 複数台の設定を揃えたいなど、現在の設定で上書きしたくない場合はチェックボックスから無効にしてください。

Caution

各種類モーターの初期設定を「設定を保存」でバックアップしてください。

ソフト内にデフォルト設定は用意されていません。初期状態のパラメータをモーターから読み込み、保存しておくことを強く推奨します。

4. パラメータの変更

  • 各パラメータをGUI上で編集
  • 値をEnterキーで確定 → モーターに送信
  • または「すべて書き込み」で一括送信

5. 変更確認

  • 「設定を読み込み」で再度設定を読み込む
  • GUIに表示されている値が反映されていることを確認

6. 設定の保存

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

詳細機能

CANインターフェース選択

  • SocketCAN: Linux標準のCANドライバを使用
  • SLCAN: USB-CANアダプタ向けのシリアル通信 起動時に接続されているCANインターフェースを自動検出し、選択肢に表示します。 どちらも接続されている場合はSLCANを優先して表示しますが、選択可能です。

SocketCANセットアップ

  • socketcanのセットアップを内部で処理するため、ボーレート変更時などの手動設定が不要です。
  • セットアップは「接続」ボタンを押すと自動で行われます。セットアップに失敗した場合はエラーメッセージが表示されます。
  • 実行には管理者権限が必要なため、必要に応じてパスワード入力を求められます。
    • ソフトを再起動するまでは内部のキャッシュに維持していますが、保存はしていません。

リアルタイム変更

  • パラメータを編集してEnterを押すと、即座にモーターに反映します
    • この機能は、有効/無効を切り替えることができます。無効にすると、変更後に「すべて書き込み」ボタンを押すまでモーターには反映されません。
  • 複数モーター対応(モーターIDで識別するため重複IDが無い状態にする必要があります)

通信設定の反映と再接続

  • IDやボーレートの変更を行った場合、自動再接続されます。 再接続に失敗した場合、設定の変更が反映されていない可能性があります。 電源を再投入して、リセットしてから再度やり直してください。

CSV設定ファイル

  • 設定をCSV形式で保存・読み込み
  • 複数の設定パターンを管理可能

フラッシュメモリ保存コマンドの送信

  • 設定をモーターの不揮発性メモリに保存
  • 電源切断後も設定を保持

注意事項・安全上の推奨事項

  1. パラメータ検証

    • すべての値はDatasheetの指定範囲内に設定してください
    • 不正な値でフラッシュメモリに保存すると、接続不可になる可能性があります
  2. フラッシュメモリ寿命

    • フラッシュメモリは書き込み回数に制限があります(10000回)
    • 不必要な連続書き込みは避けてください
  3. 複数モーター

    • 各モーターのIDが一意であることを確認してください
    • IDの重複は通信エラーの原因になります
  4. CANFD設定

    • CANFDはsocketcanでのみサポートされており、SLCANでは使用できません。
    • SLCAN接続時、警告は表示されますが、CANFDの設定は妨げません。
    • 間違って設定した場合、電源再投入すれば設定はリセットされるはずです。

About

GUI app for Damiao motor

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages