び忘録

趣味で作ったものとかを記録していきたい

丸い倒立振子を立てる ~フライホイール風をそえて~

すぐわかる概要

倒立振子を立てたくなったので立てることにした. ポイントとしては,

  • 円筒形にしてコケても被害が少ないようにした.
  • ぶんぶん回っててかっこいいので,フライホイールで姿勢を維持することにした.
  • m5stickが便利ですごい

こんな感じで立った.

目次

  • メカ構成
  • 回路
  • 制御
  • 考察

メカ

CAD絵
こんな感じで,青ボディーがこけてもコロコロするだけにした. 使ったモーターは家に落ちてた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.ホイールは空気抵抗から反トルクを生むパーツなんじゃないの~?っていう気がますますしてきた. 次回,検証するなら,空気抵抗を減らしたホイールを準備するのがよさそう.

モーターの中身.RA260は在庫がなかったので,140をばらした.ローターがデカい

その他問題

  • ちょくちょくm5stickCがよく落ちてリセットが入ってしまった.モーター逆起とかかも.とりあえず,コンデンサをさして祈ってる.
  • ハード的に安定すぎるので,もうちょっとバランスを攻めないと制御してる感がでなくて,気分が上がらない.

今後の展望

今後
いったん立って楽しいところまでは行けたので,ここでクローズ.立たせたいという目標は達成したので,これ以上粘ってもぐだりそう.

次検証改造するなら

みたいな感じ

感想

m5stickCで簡単にいろいろ遊べることが分かってきたのは結構知見になった. m5stackの方でも遊んでみたいぞ.
CADは触ってなかったり,設計をしてなかったりすると,すぐ感覚が抜けて残念な設計を一杯してしまうので,いっぱい考えて作って出力して経験値を貯めていきたい.
やっぱり物が組みあがって,動くと楽しいなぁ

非課金版

*1:定格無視

*2:理由は知らないけどね~(大蛇丸

*3:小銭を載せて重心をずらす