モーターの駆動にはNiH単三4本使っていますが、電池電圧が低下するとトルクも変わってくるのでPIDパラメータもその変化に対応して変えないと安定状態を保てなくなるという当然の結果。
現実的な対応としては、
① 電池電圧を安定化する
少なくともDD-CON必要だし、電圧ドロップ考えると電池電圧足りないだろうからハード作り直しレベル
② 電池電圧の変化に応じてモーターへの最低印加電圧を可変する
float MOTOR_POWER_MIN = 100;
float MOTOR_POWER_MAX = 250;
ここでMOTOR_POWER_MINを変えてやる、今はモーターが回り始めるぐらいの電圧になるように調整していますが、当然電圧低下するとこの値を変えてやらないとダメなのは自明。
理屈ではM5StackのADコンバーター使って可変することはできそうだね、やるやらないは別にして。
admin