変数はロボットが覚えておくための箱です。
これを使うと、ロボットをもっと賢くすることができます。

「あらかじめ決めたコースを往復して掃除するロボットを作りたい」
という相談がありました。

例えば、以下のような動きをするロボットを考えます。

この場合、よく見ると同じ動きの繰り返しがあるので実際のプログラミングは半分で済みますね。

これをプログラミングするとこんな感じになりますね。

次は障害物の回避です。
超音波センサーを前向きに設置して距離を測ることにします。20cm以内に障害物があったら隣の列に移動し、そのまま残りの距離を走ります。

最初に変数Aに0を覚えさせて前進し、障害物を発見したらその時のBモーターの角度を記憶。そのあと、右スピン、300度前進、左スピンで隣の列へ。そこから残りを進みたいのでもともと進むつもりだった3000からAを引いた残りを前進します。

障害物を避けて隣の列にいますので、今回はその場で180度スピン。そして2回目のループに入ります。

これをプログラムにすると以下のようになります。

上記プログラムにはひとつ問題があって、障害物を避けた先にさらに障害物があった場合に対応できていないことです。

そこまで対応すると大変なことになってしまうので、今回はこの辺りで筆をおきたいと思います。

では!

って、去っておきながら、見直したらミスがありました。これではまともに動きません。

正しくは、以下の通りです。途中で隣の列に移動したかどうかをチェックする変数Bを組み込みました。

いやぁ~。難しい難しい(笑)