
Atomic Motion Base 不具合
本記事にはアフィリエイト広告が含まれます。
前回はM5Stack社の Atomic Motion Base ユニットを用いた倒立振子の検証を実施しました。
その際に、DCモータがうまく駆動できない不具合を確認しました。
ここでは症状や実施した解析の結果についてまとめます。
目次
不具合症状
モータの一方の回転のトルクが小さいという不具合を確認しました。
ATOM MotionとIMUが同じI2Cポートなのが悪さしてるかもと思い
IMUを外付けにしてI2C分けて実験やはり正転/逆転でトルクが違う
クソが pic.twitter.com/aedRPbndIk— HomeMadeGarbage (@H0meMadeGarbage) May 4, 2026
症状をまとめると以下の通り
DCモータ速度指定関数 setMotorSpeed(ch, speed)で
M1 +speed:トルク強い、-speed:トルク弱い
M2 +speed:トルク弱い、-speed:トルク強い
便宜上、Atomic Motion Base のモータコネクタの赤シールの方を∔、黒を-としてモータを接続してます。
モータ配線
M1とM2コネクタで症状が反転しているので真面目に回路構成を調べます。
M1とM2のドライバ RZ7899 は基板回路上は全く同一に配線されています。
コネクタ(JP1, JP2)の配線を実機で確認しました。
結線は以下の通りでした。
M1 JP1-1:-、JP1-2:+
M2 JP2-1:+、JP2-2:-
前述の不具合症状はM1とM2のポートで反転しているように見えましたが、実のところは
モータドライバ RZ7899 の OUTRが高電位の (OUTRから電流を流す)時にトルクが弱い
という一つの症状が出ていたのでした。
不具合解析
症状の解析をできる限り実施します。
パルス出力観測
モータコネクタ(M1)の出力パルスを観測してみました。
モータドライバの動作は問題ないわ pic.twitter.com/FEso77q869
— HomeMadeGarbage (@H0meMadeGarbage) May 3, 2026
setMotorSpeed(ch, speed) 関数で、speed:-127~+127 の出力をみましたが全く問題ありませんでした。
正常なPWMパルスが出力されています (負荷 1kohm)。
負荷電流
実際にモータを回して Atomic Motion Base 内蔵の INA226 で負荷電流を観測します。
Atomic Motion Base
負荷を INA226 で観測setMotorSpeed(0, +120) で1A以上流れるのに
逆転のsetMotorSpeed(0, -80) 以降は0.5AでサチってるこれドライバのRonとかじゃない気がする
なんか内部で保護起動しちゃってない??? pic.twitter.com/mKliMVoLXi— HomeMadeGarbage (@H0meMadeGarbage) May 8, 2026
正転時はスピードに応じて電流が増え、setMotorSpeed(0, +120) で1A以上流れています。
逆転では setMotorSpeed(0, -90) 以降で0.5Aでサチっていうように見えます。
これがまさにトルクが低い原因です!!
この感じの不具合はドライバのオフセットやパラトラのオン抵抗バラつきとかではないね。
電流サチるって。。。内部で保護機能が誤作動しているのかもしれません。
さらに負荷電流の詳細を観測してみると
Atomic Motion Base
Speed -100~-126:約0.5Aで制限されてるような振る舞い
Speed -127:1A overで高速回転なんだろ??フルオンで正常になるってことは
スイッチング時の回生電流とかが悪さしてどっかの保護機能うごいちゃってるってこと?これ以上の解析は無理かな
すごく悔しいけど… pic.twitter.com/m3i2jZJHgp— HomeMadeGarbage (@H0meMadeGarbage) May 8, 2026
Speed -90~-126:約0.5Aで制限されてるような振る舞い
Speed -127:1A overで高速回転
なんとまぁ。。。
-127のフルオンでいきなり正常の負荷電流になるってことは、スイッチング時の回生電流とかが悪さしてどっかの保護機能がうごいちゃってるってことだろか??
でも なんで反転時だけ異常なんだろ??
コレは闇が深そうだな。。
Atomic Motion Base 保護機能
Atomic Motion Base にはたくさんの保護機能がありそうなんだよなぁ。。。
- バッテリチャージャ ETA9740:UVLO、 OCP、Thermal Shutdown など
- バッテリー保護 IC DW01-A:過充放電保護、OCP など
- モータドライバ RZ7899:OCP、Thermal Shutdown など
- 電流センサ INA226 も STM32とI2C連携で何かしらやってるかもしれない
今回の不具合が保護機能の誤作動が原因だとすると、どれのせいだろうか??
逆回転時に電流がサチってるのでラッチしたりシャットダウンしないタイプの保護機能だろうね。
バッテリー保護 IC DW01-A
比較的簡単に無効にできそうな DW01-A を止めてみました。
バッテリ陰極とGNDショートでDW01-Aの保護機能を無効にしてみた
結果は変わらず。
DW01-Aはシロでした。。。
ちょっとこの調子で各保護機能をしらみつぶしにしていく解析は無理かなぁ
おわりに
ここでは Atomic Motion Base で発生した不具合の解析を実施しました。
こんなわけのわからん不具合初めてです。
初めて触る Atomic Motion Base ユニットで初めて触る搭載IC がいくつもあるので もうわけがわかりません。
今回入手した Atomic Motion Base ユニットがたまたま不良品の可能性もあるので、
Atomic Motion Base を持ってる方は使用時に違和感などなかったか教えてください。






