Pythonライブラリ

KeiganMotor 用の Python ライブラリです。
USBシリアル通信・BLE を用いて制御出来ます。
ソースコードはオープンソース(MITライセンス)になります。

 

開発環境

Raspberry pi などのLinux環境 または、Windows PC からお使いいただけます。

  USB シリアル通信 BLE (Bluetooth Low Energy)
Linux (Ubuntu, Raspbian OS など)
Windows ×(サポート対象外)

 

 

■FAQ一覧

 

絶対位置指定(move_to_pos)を行った際、測定値のmeasurement["position"]の値が目標位置に辿り着く前に止まってしまう。

 

偏差が 0.8 degree 以内に至らずにP制御のまま偏差ありで止まってしまっていると思われます。
以下をご確認頂けますでしょうか。

def set_pos_control_threshold
(https://github.com/keigan-motor/pykeigan_motor/blob/master/pykeigan/controller.py)


これにより、位置制御をP制御からPID制御に移行する閾値を変更することができます。
引数の pos_control_d は、単位 [radians]で、デフォルト値は、0.0139626f rad = 0.8 degreeです。
こちらの閾値を例えば、 0.0523599 [radians] = 3.0 degree等に設定頂いて様子を見て頂けますでしょうか。 ※デフォルトでPID制御にしたい場合は値を十分大きく取ります。


<補足>
毎回呼び出してから位置制御をして頂くか、あるいはsave_all_registers を実行して頂くとフラッシュに永続的に保存されます。
位置決め時間を短くされたい場合はset_position_p または、set_speed_p の値を 1ずつ上げて頂き、調整してもらえますでしょうか。

set_speed_p 14.0 → 設定推奨 10.0~20.0(高速回転の場合は 1.0等低く取る)
set_position_p 5.0 → 設定推奨 5.0~10.0
set_position_i 10.0 → 設定推奨 5.0~15.0