https://blog.with2.net/link/?1965529

ESP-WROOM-02で倒立振子

https://blog.with2.net/link/?1965529

しばらく続いたリモコン車両にも飽きてきましたので、しばらく遠ざかっていた倒立振子を作ってみることにしました。

以前に試験的に作ったATMEGA328を使ったミニマムサイズ倒立振子をベースにESP-WROOM-02で製作可能かを試みてみます

主な仕様はつぎのようなものです。

  • マイコンはESP-WROOM-02
  • ジャイロセンサはMPU6050
  • モータドライバはTA7291P
  • モータは6V、200rpm
  • リモコンはアプリTouchOSC でスマホ操作

今回は倒立とリモコンの可能性確認だけですから回路は以下のようにシンプルなものにしました。

モータドライバTA7291Pの制御電圧が4.5V以上ということなので5V 電源回路が別途必要になります。以前に使ったDRV8835であれば3.3Vで駆動できると気が付いた時には時すでに遅しで基板製作にとりかかった後でした。いずれもう一枚作ってみます。

基板のレイアウトです。基板サイズは47X60mmとなります。

完成した基板です。ずいぶん空間がありますが、WROOM-02の下は電源回路で満杯状態です。

機体は以前に製作したミニマムサイズ倒立振子を解体して流用しています。電子部品もほとんど流用しています。

sketchはSainsmart InstaBotsからオープンソースとして公開されているものを今回も流用させてもらっています。ただし、WiFi接続に関してはかなり変更しなければなりません。巻末に参考までに掲載しておきます。

機体を安定させるために必要なKp,Ki,Kdの値は機体それぞれ変更しなければならないのですが、試行錯誤の結果以下のような値に落ち着いています。

  • Kp=20
  • Ki=0.2
  • Kd=500

この他に調整する要素は巻末のsketchの24行目の”Angle offset”値です。今回は5.5度を入力して安定しました。ずいぶん大きな値ですが、機体が軽いので僅かな重量バランスの差が効いてきます。構造上最も重いバッテリーが機体の前後方向に離れて取り付けられているのでその取り付け誤差が効いているのではと思われます。ともかく一度調整すれば後は変更の用無しの係数なので以前のように半固定抵抗を追加する必要はないと思います。

コントローラはTouchOSC を使います。

操作画面

とりあえず倒立するかの確認です。うまく倒立しています。感覚的には以前のATMEGA328仕様よりは安定性は良いように思えます。

倒立確認、この状態で一分以上放置してもこの状態を保っています。

つづいてリモコン操作の確認です。動画ではなんとかスマホ画面からの操作に反応はしてくれているように見えますが、実際にはかなり操縦が難しいです。機体が軽いのに重量のあるバッテリーが前後方向の離れた場所にあるのが要因です。しかし、これまでの経験からするとエンコーダなしのDCモータ仕様ではこんなものでしょう。

ということで今回の成果はESP-WROOM-02一枚でリモコン操縦できる倒立振子が製作可能という一幕でした。

参考までにsketchを添付しておきます。

シェアする

フォローする