放置状態!!
夏前に配送ミスで届いたMPU6050とarduinoモータモジールでステッピングモータ版ロボコン5号の筐体をでっち上げてたのだが、夏の暑さでやる気がおきずソフトを組まず放置してた。
放置状態は、不憫なのでソースを弄って魂を入れてみた。といってもソースは一から書いてはいない。
MPU6050はDMPモードで動くライブラリ、モータドライブはメーカ提供のライブラリとか、肝心なところは、メーカ標準のライブラリやArduinoのPIDライブラリとか極力便利なライブラリを利用した。
10秒ほど立っただけ
テストがてら書いた簡単なソースだから仕方ないが、数十秒ほどは倒立するのだが、ちょっとしたきっかけでバランスを崩してゴロンと転がるのだ。
ジャイロの姿勢情報とPIDを使った姿勢制御部分は問題はないのだが、ステッピングモータを十分に回しきれてないので姿勢が崩れたとき元の姿勢に戻せないのだ。
今のところ、メーカ提供のライブラリを使ってるので、チューニングされてないのだ。
これが取り合えず立ってるところ。
ステップひとつひとつを制御してるのでビシッと静止している。
ノウハウが必要
DCモータもノウハウが必要だったがステッピングモータを使うにもノウハウが必要なのだ。
DCモータの回転制御は電圧の加減で行うが、ステッピングモータの回転は電圧の加減で行う訳ではないので、低速回転時のほうがより電流が流れやすく倒立振子ロボットのように低速回転が常態なものは電池の消耗が激しいのだ。
しかもDCモータに比べたらトルクは少ないので、回転数によって電圧を加減したり回転パターンを変えたりと工夫が必要なのだ。
DCモータは使いやすいがギヤが必要だったり回転数を把握するために特別な構造必要だったりと幾分複雑で、DCモータはギヤの遊びもあってかなり姿勢がぶれるのだが、遊びがないステッピングモータを使えばビシッと姿勢も安定し制御しやすいのだが、ソフトがその分邪魔臭いのだ。一長一短がある。