丸い倒立振子を立てる ~フライホイール風をそえて~
すぐわかる概要
倒立振子を立てたくなったので立てることにした. ポイントとしては,
- 円筒形にしてコケても被害が少ないようにした.
- ぶんぶん回っててかっこいいので,フライホイールで姿勢を維持することにした.
- m5stickが便利ですごい
こんな感じで立った.
m5stickcを刺したフライホイール風倒立振子がたった。 #Adventurer3 pic.twitter.com/5qGf4o0Kop
— びー (@kbkbirogy) 2020年7月9日
目次
- メカ構成
- 回路
- 制御
- 考察
メカ
こんな感じで,青ボディーがこけてもコロコロするだけにした. 使ったモーターは家に落ちてたRE-260RAを使った. フライホイール(黒色)はモーターのシャフトにエイって圧入してる. 3Dプリンターで作ったので,穴径を微調整するとほどよい圧入ができる. m5stickC(黄色)は寝せた方がUSBが差しやすかったので,雑にボディーに置けるようにした.
回路
m5stickCがマイコン+センサ+マイコン電源になってるのでサイコーだった. そこに,amazonで買った謎のモタドラをつないだ. pwmを入れられるし,正転,反転,ブレーキもできるので,TA7291的なノリで使えた.
最初は,m5stickから電源を取ろうとしたら,電流不足感がすごかったので, モーターの電源は単三×4から引っ張ってきた.*1
制御とかプログラミングとか
m5stickCなので,arduino studioでモリモリっとかいた.
m5stickCの中に入ってる角度センサを使って本体の角度を決めた.
Madgwickフィルタとかいうナウいフィルタを使って角度を吐けるらしい.
M5StickCはMadgwickフィルタで倒立振子の夢を見るか? - Qiita
M5.MPU6886.getAhrsData(&pitch, &roll, &yaw);ってすれば,角度が取れる.
*2 すごい.
制御的には,角度みてモーターを分回したらたったので,P制御しかしてないです... ハードウェア的にそこまでアンバランスじゃないので,気合を入れなくても大丈夫だったと思われる. bluetoothを使って無線でパラメータ調整!とかやろうかと思ったけど,どうにかなってしまった.
考察とか問題とか
考察
- フライホイールって言ってるけど,空気抵抗的な反作用も効いてそう.
実は,3Dプリンターで作ったホイール部分は,空気抵抗しか生んでいなくて,モーターのローター部分のトルクが支配的という説がある.
CADでざっくり見積もりすると,軸周りの慣性モーメント的には,
a.ホイール:7.5×103 g/mm2
b.モーター:2.1×104 g/mm2
c.ボディ:3.7×104 g/mm2
d.m5stick:3.3×104+15×202=3.9×104 g/mm2
e.ブレッドボード:4×103 g/mm2
みたいな値になる.
このうち,フライホイールとして働くのは,a.ホイールとb.モーター内のローター部分が該当する.
ホイール部分の慣性モーメントが一桁分くらい小さいし,モーターの中のローターが重量の大部分を占めていそうなことを踏まえると,
ローター(コイル巻いてあるし重そう)がフライホイールとしての反トルクを一番生んでるんじゃないの~って気がする.
そうなると,a.ホイールは空気抵抗から反トルクを生むパーツなんじゃないの~?っていう気がますますしてきた.
次回,検証するなら,空気抵抗を減らしたホイールを準備するのがよさそう.
その他問題
- ちょくちょくm5stickCがよく落ちてリセットが入ってしまった.モーター逆起とかかも.とりあえず,コンデンサをさして祈ってる.
- ハード的に安定すぎるので,もうちょっとバランスを攻めないと制御してる感がでなくて,気分が上がらない.
今後の展望
今後
いったん立って楽しいところまでは行けたので,ここでクローズ.立たせたいという目標は達成したので,これ以上粘ってもぐだりそう.
次検証改造するなら
- 慣性モーメントは同じだが,フィンを持たないロータをつける.
- メカ的にアンバランスにするために重心をあげる.課金*3しやすい形にするか.
- 状況再現をしやすいように安定化電源からモーター電源を引っ張る.
- PIDをやったり,真面目にモデルを眺めたりする.
- bluetoothでシリアル通信をするやつをためす. ワークライフアンバランス: ESP32でスマホとシリアル通信(Arduino IDE編)
みたいな感じ
感想
m5stickCで簡単にいろいろ遊べることが分かってきたのは結構知見になった.
m5stackの方でも遊んでみたいぞ.
CADは触ってなかったり,設計をしてなかったりすると,すぐ感覚が抜けて残念な設計を一杯してしまうので,いっぱい考えて作って出力して経験値を貯めていきたい.
やっぱり物が組みあがって,動くと楽しいなぁ