DCモータで姿勢制御 SHISEIGYO-1 DC 爆誕 ーリアクションホイールへの道43ー
常々 姿勢制御モジュールを小型化したいと考えており、重たくサイズもそこそこのブラシレスモータの使用がネックとなっておりました。
ここでは姿勢制御モジュールを小型化をめざしてDCモータの使用を検討してみましたので報告いたします。
目次
DCモータ
小型で入手性のよいDCモータで姿勢制御モジュールの実現を目指します。
姿勢制御の際にはモータの回転速度の検知が必須となります。
そこで以下の磁気エンコーダを試してみました。
Pololu 直径20mm 金属ギヤードモータ用磁気エンコーダキット 2個入り 20 CPR 2.7-18V
直径20mmギヤードモータ両軸仕様に取付けて回転制御できるようになります。モータの精密な制御に必須のキットです。https://t.co/Xd011rFAEp pic.twitter.com/2Z46jeDs7b— 朱雀技研ショップ情報 (@suzakulabshop) March 30, 2018
早速DCモータにつけてA相、B相のパルスを確認してみました。
いい感じで回転を検出できているようです。
磁気エンコーダの味見https://t.co/isOg2Raa60
面白い。 pic.twitter.com/HgNb0FoDdc
— HomeMadeGarbage (@H0meMadeGarbage) October 3, 2021
モータには回転検出用の磁気ディスクと姿勢制御用のリアクションホイールを接続する必要がありますのでダブルシャフトの以下のモータを採用することにいたしました。
姿勢制御モジュール構成
DCモータの回転検出ができそうですので姿勢制御モジュールの製作に進みます。
SHISEIGYO-1と同様にATOM Matrixでモジュールの傾きと角速度を検出しつつモータを制御します。
以下、モジュールの構成概要です。
部品
- M5Stack ATOM Matrix
- モータドライバ DRV8835
- ダブルシャフトDCモータ
- 磁気エンコーダ
モータと磁気エンコーダは3Dプリンタで治具を出力して両面テープでうまいこと固定しました。
モータドライバもモータ上部に固定しました。
グリグリグリグリグリグリグリグリグリグリグリグリ
タミヤ ミニ四駆グレードアップパーツシリーズ No.402 GP.402 ライトダッシュモーターPRO 15402 を Amazon でチェック!https://t.co/FZ8XtveDnB pic.twitter.com/B4ZDR5NA5Y
— HomeMadeGarbage (@H0meMadeGarbage) October 6, 2021
リアクションホイール検討
ひとまず部品を結線して動作確認
DCモータで姿勢制御できないかしら
なんて#朝練#電子工作 #M5Stack pic.twitter.com/Zqm8NlNqi9— HomeMadeGarbage (@H0meMadeGarbage) October 10, 2021
筐体やホイールも3Dプリントして本格的に姿勢制御モジュールを構築します。
制動甘いのもあるんだけど
もひとつだなぁ
なんか音なってるし#朝練#電子工作 #3Dプリント pic.twitter.com/f9FatEIY15— HomeMadeGarbage (@H0meMadeGarbage) October 13, 2021
ネジやナットでホイールのトルクを増やして、制御の調整もしますがなかなか難しいです。
みて キレイ pic.twitter.com/UuoqDOz3cW
— HomeMadeGarbage 9.3 the GARAGE 2022 開催 (@H0meMadeGarbage) October 16, 2021
磁気エンコーダ検証
ホイールのトルクを上げても なかなか制御がうまくいかないのでモータの回転速度を検出する磁気エンコーダを詳細調査しました。
SHISEIGYOは以下を参考にエンコーダのクロック数を検出しております。
使用した磁気エンコーダは1周20カウントと記載あったので買ったのですが、よくよく見ると1周5クロックしか出ていませんでした。
これでは分解能が足りず正確に回転速度を計測できません。。
販売サイトの文言を見直すとA相、B相のクロックのエッジの合計が1周 20カウントとのことでした。。
てっきり各相で20クロック出ているものかと。。。
“The encoder board senses the rotation of the magnetic disc and provides a resolution of 20 counts per revolution of the motor shaft when counting both edges of both channels. “
ESP32のパルスカウンタ機能 採用
モータの回転速度検出の分解能が低く狼狽していたところ非常に有益な情報をいただきました。
ご存知かもしれませんが
ESP32にはハードでパルスカウンタが乗っているそうで外部割り込み使わなくても、設定によっては4逓倍で読めるそうですhttps://t.co/60qdJmCIEs— Sako-DIY (@DiySako) October 16, 2021
なんとESP32には割り込み使用せずともパルスカウントができるとのことで早速試したところ本当にエンコーダ出力をカウントでき無事に1周20カウントで回転速度検出できるようになりました。
ESP32のパルスカウンタ機能なんて全然知らなかった。。。
以前 POVディスプレイでESP32を使用した際に、回転を割り込み使ってわざわざチャタ防止でシュミットトリガ入れてたけど この機能使えばよかったんだ。。
とても勉強になりました。
SHISEIGYO-1 DC爆誕
回転速度検出の精度が改善され無事に倒立が達成されました!!
課題はまだ多いけど
おわりに
無事にDCモータを使用した姿勢制御モジュールが実現され、大いなる可能性を見出すことができました。
しかしまだまだ SHISEIGYO1 DC 自体に課題が多いです。
- 制動が甘い:じっくり調整します
- モータノイズ:ノイズがガンガンのってLED点滅もおかしくなっているので要対策
- バッテリ駆動にしたい
- 起き上がり倒立:これはさすがに無理かも
まずはSHISEIGYO1 DCの精度を高めるべく頑張ります!