制御の醍醐味は不安定な系を安定にさせること。今回は、M5StickCを使って倒立振子に挑戦します!
制御工学を学んでいるけど、数式が多くて難しい、何の役に立つのか分からないといった方の助けになればよいと思います。
倒立振子を立たせるのに、かなり試行錯誤しました。どんなところに注意しなければいけないかポイントも紹介していきます。
記事は、ハードウェア設計編、ソフトウエア設計編、実機適合編に分けて連載する予定で、今回はハードウェア設計編です。
完成形
部品選定
準備した部品の一覧表です。
準備物 | 個数 |
---|---|
M5StickC Plus | 1個 |
FEETECH ギヤードモータ FM90 | 2個 |
タイヤ FS90R対応 | 2個 |
DRV8835使用ステッピング&DCモータドライバモジュール | 1個 |
電池ボックス 単3×2本 | 2個 |
ボディ(3Dプリンタで自作) | 1個 |
ジャンパピン メス | 必要分 |
GROVE 4ピンケーブル | 1本 |
M5StickC Plus
コントローラはM5StickC Plusを使いました。M5StickCPlusは、小型軽量ながら倒立振子に必要なGセンサ、ジャイロセンサーが備わっているので、部品点数削減に繋がります。あとはモーター、タイヤと電源を準備するだけでOK。
私はM5StickCシリーズの中でもM5StickC Plusを使用しました。M5StickC Plus選定は在庫があったからだけです。より安価に作るのであればM5StickCでも問題ないです。
FEETECH ギヤードモータ FM90
マブチモーターより小型なFM90を選定しました。FM90はサーボモーターと同一形状のため、サーボモーター用のタイヤを取り付けることができます。
定格電圧は4.8V。モーター特性は秋月電子のホームページを参照してください。
タイヤ FS90R対応
タイヤはFS90R用を使いました。FM90にも取付可能です。タイヤ径は60mm。
DRV8835使用ステッピング&DCモータドライバモジュール
モータードライバは、2ch内蔵のモジュールであるDRV8835を使います。15mm×10mmと小型で、搭載性抜群です。
電池ボックス 単3×2本
FM90は定格電圧4.8Vのため、充電式単3電池4本使います。重量バランスを考えて、電池2本ずつ前後に搭載することにしたので、2本用を2個用意しました。
配線図
配線図は下図のとおりです。
DRV8835への電源供給のために、単3電池の+端子をDRV8835のVM、VCC端子に繋ぎます。単3電池のー端子は、DRV8835のGNDに繋ぎます。
モーターFM90への接続は、それぞれAOUT1/AOUT2、BOUT1/BOUT2です。モーターは左右で反転して搭載しますので、一方のモーターをプラスマイナス逆転して接続しましょう。
モーターをPWM制御するために、G33端子をAIN1/BIN1、G32端子をAIN2/BIN2に接続しました。
ボディの製作
ボディはFusion360で設計しました。
これを3Dプリンタで製作。一体成型です。3Dプリントの設定はサポート材有り。サポート材を取り除くのにかなり苦労しました。
組み立て
モーターは下方から差し込む構造になっています。
電池ボックスを取り付けるためのネジ穴はボディに空けなかったので、両面テープで貼り付けます。配線は中央の穴を通しました。
タイヤをモーターに取り付け。
モータードライバDRV8835は電池パックに両面テープで貼り付けました。DRV8835のヘッダピンにそれぞれの配線を接続。
DRV8835は剥き出しになってしまったので、もう少し見栄えを良くしたかった。
M5StackC Plusをボディに差し込めば完成!
これにてハードウェア設計編は終わりです。次回はソフトウェア設計編です。