検証と対処

検証

前回の記事で取り上げたモータの検証である。
検証用に0Vから約0.05Vずつ電圧を増やすプログラムを書いて、車輪の回転数を計測してみた。
ログはこれである。

Robokon4 Motor calibration...
Drv: 0.000000(0.000000V),Left Wheel RPM: 0,Right Wheel RPM: 0
Drv: 0.010000(0.051600V),Left Wheel RPM: 0,Right Wheel RPM: 0
Drv: 0.020000(0.103200V),Left Wheel RPM: 0,Right Wheel RPM: 0
Drv: 0.030000(0.154800V),Left Wheel RPM: 0,Right Wheel RPM: 0
Drv: 0.040000(0.206400V),Left Wheel RPM: 0,Right Wheel RPM: 0
Drv: 0.050000(0.258000V),Left Wheel RPM: 0,Right Wheel RPM: 0
Drv: 0.060000(0.309600V),Left Wheel RPM: 0,Right Wheel RPM: 0
Drv: 0.070000(0.361200V),Left Wheel RPM: 0,Right Wheel RPM: 0
Drv: 0.080000(0.412800V),Left Wheel RPM: 0,Right Wheel RPM: 0
Drv: 0.090000(0.464400V),Left Wheel RPM: 0,Right Wheel RPM: 0
Drv: 0.100000(0.516000V),Left Wheel RPM: 0,Right Wheel RPM: 0
Drv: 0.110000(0.567600V),Left Wheel RPM: 0,Right Wheel RPM: 0
Drv: 0.120000(0.619200V),Left Wheel RPM: 0,Right Wheel RPM: 0
Drv: 0.130000(0.670800V),Left Wheel RPM: 0,Right Wheel RPM: 147
Drv: 0.140000(0.722400V),Left Wheel RPM: 208,Right Wheel RPM: 149
Drv: 0.150000(0.774000V),Left Wheel RPM: 204,Right Wheel RPM: 159
Drv: 0.160000(0.825600V),Left Wheel RPM: 200,Right Wheel RPM: 164
Drv: 0.170000(0.877200V),Left Wheel RPM: 223,Right Wheel RPM: 172
Drv: 0.180000(0.928800V),Left Wheel RPM: 229,Right Wheel RPM: 192
Drv: 0.190000(0.980400V),Left Wheel RPM: 247,Right Wheel RPM: 196
Drv: 0.200000(1.032000V),Left Wheel RPM: 247,Right Wheel RPM: 194
Drv: 0.210000(1.083600V),Left Wheel RPM: 243,Right Wheel RPM: 210
Drv: 0.220000(1.135200V),Left Wheel RPM: 276,Right Wheel RPM: 215
Drv: 0.230000(1.186800V),Left Wheel RPM: 292,Right Wheel RPM: 239
Drv: 0.240000(1.238400V),Left Wheel RPM: 268,Right Wheel RPM: 239
Drv: 0.250000(1.290000V),Left Wheel RPM: 286,Right Wheel RPM: 263
Drv: 0.260000(1.341600V),Left Wheel RPM: 320,Right Wheel RPM: 267
Drv: 0.270000(1.393200V),Left Wheel RPM: 314,Right Wheel RPM: 280
Drv: 0.280000(1.444800V),Left Wheel RPM: 304,Right Wheel RPM: 278
Drv: 0.290000(1.496400V),Left Wheel RPM: 323,Right Wheel RPM: 276
Drv: 0.300000(1.548000V),Left Wheel RPM: 333,Right Wheel RPM: 306
Drv: 0.310000(1.599600V),Left Wheel RPM: 339,Right Wheel RPM: 298
Drv: 0.320000(1.651200V),Left Wheel RPM: 333,Right Wheel RPM: 314
Drv: 0.330000(1.702800V),Left Wheel RPM: 325,Right Wheel RPM: 335
Drv: 0.340000(1.754400V),Left Wheel RPM: 357,Right Wheel RPM: 333
Drv: 0.350000(1.806000V),Left Wheel RPM: 323,Right Wheel RPM: 363
Drv: 0.360000(1.857600V),Left Wheel RPM: 353,Right Wheel RPM: 353
Drv: 0.370000(1.909199V),Left Wheel RPM: 380,Right Wheel RPM: 382
Drv: 0.380000(1.960799V),Left Wheel RPM: 380,Right Wheel RPM: 378
Drv: 0.390000(2.012399V),Left Wheel RPM: 384,Right Wheel RPM: 375
Drv: 0.400000(2.063999V),Left Wheel RPM: 396,Right Wheel RPM: 412
Drv: 0.410000(2.115599V),Left Wheel RPM: 402,Right Wheel RPM: 404
Drv: 0.420000(2.167199V),Left Wheel RPM: 402,Right Wheel RPM: 404
Drv: 0.430000(2.218799V),Left Wheel RPM: 443,Right Wheel RPM: 414
Drv: 0.440000(2.270399V),Left Wheel RPM: 408,Right Wheel RPM: 453
Drv: 0.450000(2.321999V),Left Wheel RPM: 431,Right Wheel RPM: 467
Drv: 0.460000(2.373599V),Left Wheel RPM: 439,Right Wheel RPM: 481
Drv: 0.470000(2.425199V),Left Wheel RPM: 429,Right Wheel RPM: 496
Drv: 0.480000(2.476799V),Left Wheel RPM: 445,Right Wheel RPM: 526
Drv: 0.490000(2.528399V),Left Wheel RPM: 463,Right Wheel RPM: 518
Drv: 0.500000(2.579999V),Left Wheel RPM: 463,Right Wheel RPM: 547
Drv: 0.510000(2.631599V),Left Wheel RPM: 496,Right Wheel RPM: 587
Drv: 0.520000(2.683199V),Left Wheel RPM: 492,Right Wheel RPM: 587
Drv: 0.530000(2.734799V),Left Wheel RPM: 502,Right Wheel RPM: 612
Drv: 0.540000(2.786399V),Left Wheel RPM: 518,Right Wheel RPM: 614
Drv: 0.550000(2.837999V),Left Wheel RPM: 522,Right Wheel RPM: 630

左のモータ+ギヤギヤボックスは低電圧域から良く回るが回転は頭打ちの傾向があり、右のモータ+ギヤボックスは低電圧域は回転が悪いが回転の伸びは良いようなのだ。同じモータでも特性にバラつきが出ている。
さらに、このログではさほど差が出てないが、回数を重ねて調べたところ右のモータ+ギヤボックスは左より低電圧で車輪が回り出すようなのだ。

対処

まっすぐ走らないのはモータの特性差が原因だろう。モータが同じように回るように補正処理を追加だ。

もうひとつの問題・低速域でランダムな動きを抑制するには、右左どちらも回転する電圧を足切り電圧と定め、それ値以下の時はモータを停止する処理の追加だ。

電池の電圧低下

モータ電圧は電池の出力をベースにPWMで加減しているのだが、モータを回せば当然のことながら基準となる電池電圧が下がってくる。三端子レギュレータなどで定電圧を加えるという選択肢もあるが、1Aや2Aの電流が流れるモータだから三端子レギュレータもそれなりのものが必要な上、余分な電力は熱になってしまうので、直接電池を接続している。
モータは2.7V~3Vが駆動範囲となっているので、3V以内で駆動できるようにPWMで加減しているのだ。
モータに加える電圧は一定であることが望ましいので細かくPWMの制御をしないと筐体の姿勢が安定しないのだ。
常に電池電圧を監視するように回路の改修が必要だと考えている。

DCモータ版では静止させることが大変

ステッピングモータでは静止は簡単だが、DCモータ版では回転を電圧で管理しているのでアバウトとところがあるのだ。これが静止させるのが難しいところだ。今の目標は静止なのである。