Skip to main content

Python driver for PAMC-104 Piezo Assist Motor Controller

Project description

pypamc_104

PyPI Python

PAMC-104 ピエゾアシストモーターコントローラ用 Python ライブラリ

インストール

pip install pypamc_104

開発版(ローカルインストール):

cd pypamc-104
pip install -e .

必要環境

  • Python 3.9+
  • pyserial

開発環境のセットアップ

1. リポジトリをクローン

git clone https://github.com/mechano-transformer/pypamc-104.git
cd pypamc-104

2. 仮想環境(venv)を作成・有効化

Windows:

python -m venv .venv
.venv\Scripts\activate

macOS / Linux:

python3 -m venv .venv
source .venv/bin/activate

3. 開発用依存パッケージと共にインストール

pip install -e ".[dev]"

これで pypamc104 本体 + pytest がインストールされます。

4. ユニットテストの実行

pytest

詳細出力で実行する場合:

pytest -v

特定のテストクラスだけ実行する場合:

pytest tests/test_controller.py::TestRotation -v

5. 仮想環境の終了

deactivate

クイックスタート

from pypamc104 import PAMC104

# コントローラに接続
with PAMC104("COM3") as ctrl:
    # 通信確認
    ctrl.check_connection()

    # ファームウェアバージョン確認
    print(ctrl.get_firmware_info())

    # CH1を正回転(1500Hz, 10パルス)
    ctrl.rotate_forward(channel=1, frequency=1500, pulses=10)

    # CH2を逆回転(連続駆動)
    ctrl.rotate_reverse(channel=2, frequency=300)

    # 停止
    ctrl.stop()

使い方

接続

from pypamc104 import PAMC104

# context manager(推奨)
with PAMC104("COM3") as ctrl:
    ...

# 手動で接続管理
ctrl = PAMC104("COM3")
ctrl.open()
# ... 操作 ...
ctrl.close()

通信確認

with PAMC104("COM3") as ctrl:
    # CON コマンドで通信状態を確認
    if ctrl.check_connection():
        print("通信OK")

ファームウェアバージョン確認

with PAMC104("COM3") as ctrl:
    info = ctrl.get_firmware_info()
    print(info)  # e.g. "PAMC-104 Ver:0.8.0(115200bps)"

モーター駆動(正回転 / 逆回転)

with PAMC104("COM3") as ctrl:
    # 正回転: CH1, 1500Hz, 10パルス
    ctrl.rotate_forward(channel=1, frequency=1500, pulses=10)

    # 逆回転: CH2, 500Hz, 連続駆動(pulses=0)
    ctrl.rotate_reverse(channel=2, frequency=500)

    # 小数点周波数(ファームウェア0.8.0以降)
    ctrl.rotate_forward(channel=1, frequency=100.5, pulses=10)

    # 拡張パルス(最大999999パルス、ファームウェア0.8.0以降)
    ctrl.rotate_forward(channel=1, frequency=800, pulses=100000)

    # 停止(駆動パルス数が返る)
    result = ctrl.stop()
    print(result)  # e.g. "FIN" or "FIN1456"

    # パルス数だけ取得
    count = ctrl.get_stop_pulse_count()

生コマンド送信

with PAMC104("COM3") as ctrl:
    response = ctrl.send_raw("CON")
    print(response)

コマンド一覧

メソッド コマンド 説明
check_connection() CON 通信確認
get_firmware_info() INF ファームウェアバージョン確認
rotate_forward() NRnnnnyyyyz 正回転駆動
rotate_reverse() RRnnnnyyyyz 逆回転駆動
stop() S 駆動停止

駆動コマンドのフォーマット

フォーマット 説明 対応FW
NR/RR + nnnn + yyyy + z 標準(整数周波数、4桁パルス) 全バージョン
NR/RR + nnnn.n + yyyy + z 小数点周波数(0.1Hz単位) 0.8.0+
NR/RR + nnnn + Xyyyyyy + z 拡張パルス(6桁) 0.8.0+

パラメータ

パラメータ 範囲 説明
周波数(整数) 1〜1500 Hz 4桁ゼロ埋め
周波数(小数) 0.1〜1500.0 Hz ○○○○.○形式 (FW 0.8.0+)
パルス数(標準) 0000〜9999 0000 = 連続駆動
パルス数(拡張) X000000〜X999999 X + 6桁 (FW 0.8.0+)
チャンネル A〜D A:CH1, B:CH2, C:CH3, D:CH4

レスポンスメッセージ

メッセージ 意味
OK コマンドを正常に受けた
FIN 駆動終了
FIN△△△△ 連続駆動停止時の実移動パルス数
ERROR コマンド入力間違い
BUSY 駆動中

通信仕様

項目
ボーレート 115200 bps
データビット 8 bit
パリティ None
ストップビット 1 bit
フロー制御 None
デリミタ CR + LF

PAMC-204 との違い

PAMC-104 は PAMC-204 と比較してシンプルな構成です:

  • アドレスシステムなし: コマンドに Exx プレフィックスを付けません
  • 位置制御なし: 絶対位置移動(PA)、相対位置移動(PR)等はありません
  • CON コマンド: PAMC-104 固有の通信確認コマンドがあります
  • 出力電圧制御なし: DAC コマンドはありません

ライセンス

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pypamc_104-0.1.0.tar.gz (11.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pypamc_104-0.1.0-py3-none-any.whl (7.9 kB view details)

Uploaded Python 3

File details

Details for the file pypamc_104-0.1.0.tar.gz.

File metadata

  • Download URL: pypamc_104-0.1.0.tar.gz
  • Upload date:
  • Size: 11.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.5

File hashes

Hashes for pypamc_104-0.1.0.tar.gz
Algorithm Hash digest
SHA256 fbce99550f8c0fe6d8a1bb159bd040eb5c4a8ad4dc93932a8e7a87082d4ff52c
MD5 fe81d0fb5321e1e94f654919c23084c4
BLAKE2b-256 ed0b0eb43bd91f459ef7ad3875ed83024d057753580e9c697337e19be6c81b32

See more details on using hashes here.

File details

Details for the file pypamc_104-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: pypamc_104-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 7.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.5

File hashes

Hashes for pypamc_104-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ecb456b06d5953af531a2475f344b29c4ccf7b04bf512ad073831cff62b8d514
MD5 ce920014b6f85c33a6a50cd4772249bc
BLAKE2b-256 71bb4bfee89e8b03240d39bf0b3eef45b028d9d955c44ea03166f597ae5ede65

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page