古 倒立振子を復活させる

アバター画像 お父ちゃん  2025.12.30 
Home > 電子工作 > 古 倒立振子を復活させる

本記事にはアフィリエイト広告が含まれます。

すき 0
うんこ 0

今年最後の電子工作として、発掘された古の倒立振子を復活させることにしました。

 

6年以上前につくったヴィンテージ

M5StickC で倒立振子 PID制御編 ー倒立振子への道 3ー

これを令和の感覚で作り直してみます。

 

AudiostockでBGM・効果音を販売中!

古 倒立振子

古 倒立振子の構成は以下の通り

I2C制御のモータドライバDRV8830を採用し、超初期のM5StickC(IMU:SH200Q )が使われています。

 

モータは昔Adafruitで買ったロボットキットのギアドモータを使用

 

2017/6/26に購入だって。ヴィンテージ~

 

当時は3Dプリンタ持ってなかったから、アクリル、アルミ板、木材で筐体が構成されとりました。

 

製作

ギアドモータだけ流用してあとは令和の感覚で更新していきます。

以前製作したコロコロロボットの駆動系をそのまま移植することにしました。

 
コントローラ: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動作もバッチリ

 

固定具はモダンに3Dプリント品

 

動作

無事倒立

やはりギアドモータの遊び(バックラッシュ)が大きく完全静止倒立は難しかったわ。

 

制御はこんな感じでやった

カルマンフィルタ済みのIMUによる傾斜角(kalAngle )と角速度(kalAngleDot )からギアドモータに印加する電圧(M)を決定します。
またエンコーダがないのでモータ速度を印可電圧で代用して直近の印可電圧(Mpre)もフィードバックしています。

倒立目標角のオフセットの補償として一次遅れ推定器theta0_hat を導入しています。
ただしモータの応答があまりよくないので±2°で制限。

当初の古 倒立振子は乾電池が重りとなって多少応答遅れても何とか倒立できていましたが、今回は重りなしなので制御の工夫のみで勝負しました。

 
まぁこのモータだと こんなもんでしょ

 

おわりに

ここでは古 倒立振子をリメイクしてみました。

ちょっと FA-130RA系ギアドモータで倒立振子を実現するのは厳しいなというのが感想です。
速度も応答性も低いしバックラッシュも大きくて

DCモータでやるならトルク的には不利だけどダイレクトドライブがいいかなぁと思います。

DCモータ RE-280RA で倒立振子作製

 

まぁ今ならBLDCベクトル制御でギュンギュン回して足までつけたりますわ!はぁ!!

 

コメントはこちらから

メールアドレスが公開されることはありません。コメントのみでもOKです。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください