完成したプログラムです。
数学ブロックを使って移動距離を元に回転数を計算しています。
Lモーターブロックのパワーは「50」に設定しました。
走行タイムはタイマ1の値をそのまま使います。タイムはディスプレイに表示させます。
プログラムを実行してみました。
タイムは「約2.4秒」でした。モーターの負荷が増えていても平地の時と結果は変わりません。さらに、ロボットを持ち上げて無負荷の状態で実行してもタイムは「約2.4秒」です。
これはどういうことかというと、モーターの負荷をインテリジェントブロック側が感じ取って、本当のパワーを調節しているためです。パワーを変化させることで同じタイムを維持しているわけです。おそらくバッテリが消耗した場合でも、ある程度は差を吸収してくれるのではないでしょうか。
つまり、モーターブロックのパラメータの「パワー」というのはソフト上で管理している「速度」のことです。パワーには「本当のパワー」と「ソフト上のパワー」の2種類が存在しています。見える化によって、それをハッキリさせることができました。
ちなみに坂道の場合、ロボットはゴールの約7cm手前で止まってしまいました。これはタイヤがスリップしてしまったためです。対策するためには、ゴールに到着できたかどうかを回転センサー以外の方法で検出しないといけません。