
角度を使ってライントレースする距離を決めたいとき、BモーターかCモーターのどちらかのみを使って行うと、確認していない方のモーターだけが空回りしてしまうことがあります。
数式を使って繰り返しのたびにBモーター+Cモーターの角度を確認することで、制御不能のリスクを最小限にします。

マイブロックにしてみました。
中身はラインの右側をたどるか、左側をたどるかを決めるために”line”という変数を使っています。
1を入れておくと左側、それ以外なら右側をたどるようにプログラムしてあります。
また、進ませる距離も”B+C”という変数を作って、事前に設定できるようにしました。
BモーターとCモーターの角度を足し合わせているので、角度は実際の約2倍になることに注意してください。
どちらもマイブロックの前に変数ブロックを置くことで設定します。

LineDegの下についているturn90もマイブロックです。
”magaru”という変数を使って、左右を選べるようにしています。
1なら左、それ以外なら右です。

移動スピードを30%に設定し、直進方向に100度進んだ後、光センサーの色を確認していますが、その中身が空になっています。これはカラーセンサーのモードを事前に切り替えておくためです。回転し始めて、色を読むときに切り替えていたのでは間に合わない可能性があります。モード切り替えには少し時間がかかりますので、失敗しないために考えたちょっとしたコツです。
マイブロックを使うと、圧倒的にプログラムが作りやすくなります。変更も大変楽です。
どんなマイブロックがあれば便利だと思いますか?
ぜひ、工夫してみてください。