ステッピングモーター制御ソフトウェアcgstepをアップデートしました

cgstepはIndoor Corgiが開発、公開しているステッピングモーター制御用コマンドラインツールとPythonライブラリです。Raspberry Pi用高機能ステッピングモータードライバー「RPZ-Stepper」と組み合わせることで、わずか数行のコマンド/コードでモーターを回転させることができます。

今回のcgstepのアップデートにより、これまで以上に直感的にモーター制御することが可能になりました。

モーターの最大電流値の設定

これまで、設定する電流値をもとにユーザーがcurrent_rangeやglobal_scalerといったパラメーターを計算、設定する必要がありました。

今回のアップデートで追加された新パラメーター「ifs」に電流値をアンペア単位で設定することで、cgstepが自動的にcurrent_range、global_scalerを設定します。ユーザーは直感的に電流値を記述できるようになり、プログラムの可読性も向上します。

Python、コマンドの双方で0.5Aに設定する例です。

Python:

m1.ifs = 0.5

コマンド:

cgstep ifs -w 0.5

rpm単位で回転数の設定

これまで、設定する回転数をもとにモータードライバーICに設定する速度(vmaxなど)の値をユーザーが計算し、設定する必要がありました。

今回のアップデートで、回転数に関係するパラメーター全般について、末尾に「_rpm」を付けたパラメーターを追加しました。例えば回転速度を指定するvmaxに対してはvmax_rpmを追加しています。これらのパラメーターにrpm単位で速度を設定すると、cgstepが計算を行い対応するパラメーターを設定します。ユーザーは直感的に回転数を記述できるようになり、プログラムの可読性も向上します。

なお、rpmを求めるには使用モーターの1回転あたりのステップ数が必要になります。Pythonではモーター制御クラスのインスタンス作成時、コマンドでは-sオプションで指定します。

Python、コマンドの双方で60rpmに設定する例です。(1回転あたり200ステップのモーターの場合)

Python:

m1 = TMC5240(steps_per_rev=200)
m1.vmax_rpm = 60

コマンド:

cgstep vmax_rpm -w 60 -s 200

ステッピングモーター制御ソフトウェアcgstepを使い方の詳細はRPZ-Stepper製品ページを参照してください。