Python driver for PAMC-104 Piezo Assist Motor Controller
Project description
pypamc_104
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
Release history Release notifications | RSS feed
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)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fbce99550f8c0fe6d8a1bb159bd040eb5c4a8ad4dc93932a8e7a87082d4ff52c
|
|
| MD5 |
fe81d0fb5321e1e94f654919c23084c4
|
|
| BLAKE2b-256 |
ed0b0eb43bd91f459ef7ad3875ed83024d057753580e9c697337e19be6c81b32
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ecb456b06d5953af531a2475f344b29c4ccf7b04bf512ad073831cff62b8d514
|
|
| MD5 |
ce920014b6f85c33a6a50cd4772249bc
|
|
| BLAKE2b-256 |
71bb4bfee89e8b03240d39bf0b3eef45b028d9d955c44ea03166f597ae5ede65
|