ArduinoのPIDライブラリ
初投稿となります。シャチです。
一年生の頃はArduinoとMATLABでフィーッドバック制御をやろうと思っていたのですが、なんとArduinoにはPIDライブラリが存在します。
初めから使っとけばよかったですねこれ(泣)
さて、自分のメモ帳の代わりとしてライブラリで使用可能な関数と、その機能をまとめておこうと思います。伝わりにくい日本語になってしまうかと思いますが。
PID(入力、出力、セットポイント、Kp、Ki、Kd、Direction)
これがPID制御のクラス。
PID myPID(&input, &output, &setpoint, &kp, ki, kd, DIRECT)
このようにオブジェクト化する。kp,ki,kdは1,2,3などの数字でも良いらしい。
またこの時点でinput, output, setpointはdouble型で宣言しておく必要があるがこの時点では値を代入してなくてもいいらしい。(あとで実験します)
setupとloopの中にinputとoutputとsetpointの値を代入する式を書けばいいらしい。ちなみにsetpointは目標値のこと。
最後のDIRECTはDIRECTモードを選択していることを表すらいいが、DIRECTモードが何なのかは不明。REVERSEモードも存在するらいしいが、一般的には用いないらしい。
Comoute()
void loop()の{}の中に書くことで、ループが回るたびに一回だけブロック線図をループする。つまり一回分フィードバッックする。myPID.Compute(); という感じで。SetSampleTime で計算の間隔を調整する。詳しくは後述。
SetMode(mode)
これはvoid setup()の{}の中に書く。これも上のやつと同じように、オブジェクト名.SetMode(mode);と書く。引数にManualかAutomaticを書いて、PIDのオンオフを決定できるらしい。多分Automaticにしとけば問題ないと思われる。
SetOutputLimits(min,max)
これはArduinoの出力の変化範囲を指定できる。デフォルトは0~255。maxを255以上の値に変化させることはできない。使うことあるのだろうか。
SetTunings()
まだ使ってないので分からないが、自動的にkp,ki,kdの値を調整してくれる?らしい。正直使う必要はあまりなさそうに思える。自分で実験しながら決めれば良い気もする。
SetSampleTime(サンプリング時間)
サンプリング時間はミリ秒単位で決定する。これはPIDの評価頻度を決定できるらしい。正直使い所はまだ不明。
SetControllerDirection(Direction)
どうやらオブジェクト化した時のモードを後から決めることもできる模様。入力が設定値を超えてる場合に、出力を減らすのがDIRECTで、増やすのがREVERSEらしい。よくわかりませんね。
何ができるのかなどは未知数なので、今から早速ダウンロードして試してみたいと思います。
実際に使ってみた感想なども今後書いていく予定です。
また他の人がArduinoでロボットの制御をする時の助けに少しでもなれれば...嬉しいですね。
来年の春には倒立振子作りたいなぁ...
からくりミラーボール
みなさん、はじめまして
今回機巧堂メンバーとして、
記念すべき初の活動投稿なので、すごく簡単な自己紹介でもします
名前は...
millaboといいます
このブログを作った人であり、このあいだの投稿も私がしました(-.-)/
趣味、興味のある分野はいろいろです。これからそのときの気分でいろいろ作って、アップします(したいです)
最近はUnityで作るゲームの案とか考えてます
あとは前から買おうとは思ってたけど買ってなくて、この前買ってsetupがいろいろ終わったこのラズパイ3でなにか作ろうとか思ってます
その他にも考えてることはいろいろいろあるので、また予定とかも書いていくつもり
書くだけじゃなくて作るつもり
明日は機巧堂として今年最後のミーティングです
今年最後ということで話すこと多いです
いつもののんびりしたミーティングじゃなくて、(初めて?)ちゃんとしたやつする予定。
それでは、また明日。
アディオス
カラクリの館、開かれる
Hello, Blog!
はじめまして。
私たちは、
神戸三田キャンパスにて活動している、
ものづくり団体「機巧堂(からくりどう)」
です。
いきなりですが、
今回ブログを始めることとなりました。
このブログは、
機巧堂に所属するメンバーが
日々の活動の様子や
頭のなかで考えていることなど
さまざまなことを
思い思いに書いていきます!
これからどんなブログになっていくのかは私たちにもわかりませんが、楽しんでやっていきたいと思っています!
果たして記念すべき第一回目の活動投稿メンバーは誰になるのでしょうか!?
それではこれからよろしくお願いします!
最後まで読んでいただきありがとうございました。