完成したプログラムがこちらです。
構造的には先ほどのプログラムと同じです。モーターを停止させる代わりに、右折と左折という動きを行います。
・センサーの値が30より小さいと左折。
・センサーの値が30以上だと右折。
なお、センサーを読み取る周期を早めるため、「時間を待機」の時間を0.25秒→0.1秒に変更しました。この値が小さいほど細かい時間でセンサーを読み取ることができます。しかし、短すぎるとI2C通信を採用しているモジュールが正しく動作できるか不安なので、0.1秒にとどめてみました。試していませんが、理論的には0.02秒くらいまでには値を減らせるはずです。
実行すると、ロボットがラインの上を進んでいきます。
ロボットが急激なカーブをうまく乗り越えられるのか心配でしたが、 まったく問題なくトレースできています。見た目の印象とは違って、非常に小回りがききます。
うまく曲がれる理由は後輪にオムニホイールが搭載されているためです。 これによって、実質的に前輪だけで進んでいる状態となり、自在に旋回ができるようになっています。
以上で、レッスン3の内容をしっかりマスターできました。次はアタッチメントを装着して、まだ使っていない機能に挑戦してみたいです。