
古 倒立振子を復活させる
本記事にはアフィリエイト広告が含まれます。
今年最後の電子工作として、発掘された古の倒立振子を復活させることにしました。
6年以上前につくったヴィンテージ
これを令和の感覚で作り直してみます。
目次
古 倒立振子
古 倒立振子の構成は以下の通り
I2C制御のモータドライバDRV8830を採用し、超初期のM5StickC(IMU:SH200Q )が使われています。
モータは昔Adafruitで買ったロボットキットのギアドモータを使用
2017/6/26に購入だって。ヴィンテージ~
当時は3Dプリンタ持ってなかったから、アクリル、アルミ板、木材で筐体が構成されとりました。
製作
ギアドモータだけ流用してあとは令和の感覚で更新していきます。
以前製作したコロコロロボットの駆動系をそのまま移植することにしました。
コロコロロボットのユニットを流用することに
コントローラ:M5StickC Plus2
モータドライバ:DRV8835 pic.twitter.com/TQzu2MmcY0— HomeMadeGarbage (@H0meMadeGarbage) December 28, 2025
コントローラ:M5StickC Plus2
モータドライバ:DRV8835
コロコロロボットと同様にモータ駆動用電源にM5StickC Plus2のバッテリ(BATピン)を使用します。
M5StickC Plus2のBATピンは内蔵バッテリ直結で常に出力されてしまうので手動でピンを抜き差しします (めんどくせーけど。。)。
初代M5StickC Plusでは5V出力ピンの電流能力が高くDCモータも駆動できたのですが、M5StickC Plus2では内部の保護機能が働くためか5V出力ピンでモータ駆動はできませんでした(シャットダウンしてしまう)。
そのためBATピンをモータ電源に使用。
M5StickC Plus2の5V生成DCDCは初代のDCDCより能力自体は高いのでもったいない気はするのですが、モータを駆動させるための5Vではないのですからしょうがないですね。
むしろ駆動できていた初代M5StickC Plusのほうが品質管理上よくなかったとも言えます。
M5StickC Plus2内蔵のIMU:MPU6886動作もバッチリ
M5StickC Plus2
IMU OK pic.twitter.com/tdEapTmYiu— HomeMadeGarbage (@H0meMadeGarbage) December 28, 2025
固定具はモダンに3Dプリント品
動作
無事倒立
エンコーダなしでこのギアドモータだと
こんなもんだろうか
今酔っぱらってるからビタッと静止しているように見える pic.twitter.com/mdeY1p3aal— HomeMadeGarbage (@H0meMadeGarbage) December 29, 2025
やはりギアドモータの遊び(バックラッシュ)が大きく完全静止倒立は難しかったわ。
制御はこんな感じでやった
|
1 2 3 4 5 6 7 8 9 |
//重心ズレによるバランス角シフト theta0_hat += Kl / 100.0 * (kalAngle - theta0_hat) * dt; theta0_hat = constrain(theta0_hat, -2.0, 2.0); //モータ回転 M = Kp * (kalAngle - theta0_hat) / 90.0 + Kd * kalAngleDot / 250.0 + Kw / 10 * Mpre; M = constrain(M, -1.0, 1.0); Mpre = M; |
カルマンフィルタ済みのIMUによる傾斜角(kalAngle )と角速度(kalAngleDot )からギアドモータに印加する電圧(M)を決定します。
またエンコーダがないのでモータ速度を印可電圧で代用して直近の印可電圧(Mpre)もフィードバックしています。
倒立目標角のオフセットの補償として一次遅れ推定器theta0_hat を導入しています。
ただしモータの応答があまりよくないので±2°で制限。
当初の古 倒立振子は乾電池が重りとなって多少応答遅れても何とか倒立できていましたが、今回は重りなしなので制御の工夫のみで勝負しました。
まぁこのモータだと こんなもんでしょ
素朴な味 pic.twitter.com/1KSWFsWXNd
— HomeMadeGarbage (@H0meMadeGarbage) December 30, 2025
おわりに
ここでは古 倒立振子をリメイクしてみました。
ちょっと FA-130RA系ギアドモータで倒立振子を実現するのは厳しいなというのが感想です。
速度も応答性も低いしバックラッシュも大きくて
DCモータでやるならトルク的には不利だけどダイレクトドライブがいいかなぁと思います。
まぁ今ならBLDCベクトル制御でギュンギュン回して足までつけたりますわ!はぁ!!
BLDCベクトル制御で足つける
これがモダン pic.twitter.com/UwqkyO1Rh5— HomeMadeGarbage (@H0meMadeGarbage) December 30, 2025







