ClosedLoop
こちらのページを参考にしていただいて、配線後に以下のコマンドを投入します。
- モード設定
モードの切替はmコマンドで行います。
1m 4これで、ClosedLoopのモードになりました。LEDが点滅していることを確認してください(この段階では処理が軽いので高速に点滅している)。
コンパイル時の設定にもよります(現在のサンプルファームウェアはPID制御のみ)ClosedLoopの設定は m 1/2/3/4となり、それぞれP制御、PI制御、PD制御、PID制御にマッピングされます。繰り返しになりますが、現在のサンプルファームウェアはm 4のみで、PID制御のみとなります。繰り返しになりますが、現在のサンプルファームウェアのコードはm 0かそれ以外しか見ていないので、m 1としても、PID制御になります。 - 速度設定
左側のモータの速度設定をする例になります。
1s 0 1023で速度指定します。sの値は0-1023(2^10-1)になります。かけている電圧とモータやギアの特性にもよりますが、実際には500程度から設定しないとモータの駆動には至りません。
OpenLoopの時とは違い、まだモータは廻りません。 - 位置設定
左側のモータの位置設定になります。
1p 0 2000エンコーダのカウント値を設定します。この例ですと、エンコーダのカウント値が2000になるまでモータを駆動します(実際にはパラメータやモータの特性により前後します)。
時々、下記の
コマンドを投入して、現在のエンコーダのカウントを観察してもいいでしょう。 1c - PID パラメータ
web-masterが本システムでの使用の経験上、モータの正逆回転時に挙動が異なるようでそれぞれにPIDのパラメータが必要です。本サンプルファームウェアはそれぞれのパラメータセットを持ちます。正回転時のパラメータセットをkp, 逆回転時のパラメータセットをknとします。
コマンドプロンプト上から下記のコマンドを投入して、パラメータを確認します。
1kpコマンド単体での入力だと現在の設定値が返されます。
コマンドの入力はP, I, Dそれぞれで行います。入力時はx1000して、小数点が無いようにします(例: kp の p を 1.8と設定する場合)。1kp p 1800I, D についてもknに関しても同様です。
- パラメータの決め方
web-masterが試した限りでは、コレと言った万能の方程式はありません。ただ、使う速度は決めてから行います。それもDCモータは高い電圧ほど、トルクが出るので、1000程度に設定してからそれぞれのモータやギアに合わせて設定を行ったほうが良いと思います。
設定したパラメータはEEPROMに保持されますので、リセット/電源再投入してもそのまま使えます。