【2009.09.03】
ループ処理を用いてロボットに複雑な命令をさせよう!!
前回、ロボットのモータ制御ができたS木君(ものづくり講座1年4ヶ月,小学校6年生)。 ロボットの左右のモーターについて、それぞれ回転方向を制御し、好きな方向へ走らせてきました。 これに対し、今回は命令を組み合わせて、ロボットが目標地点でUターンして戻ってくるプログラミングを考えます。 Uターンなどある程度複雑な命令になる場合、以前AVRマイコン学習ボードで学んだfor文によるループ処理を使います。 前進の命令、回転の命令をそれぞれ組み合わせ、ループ文で繰り返します。
しかし、なぜかループ文を2つ並列にマイコンに書き込むと、時々プログラムどおりモーターが動かないというバグが発生してしまいました。 原因を探してみると、今回はプログラミングに問題がありました。ポート処理の際に同時に2つのPINを制御した状態でループ文を2つ使うと誤作動を起こすようです。 そこで、PINを1つずつ、1ミリ秒間隔で交互にまわすことでこの問題を回避しました。 次回は、センサー回路を取り付け、自ら障害物を避けるようなロボット製作を目指しましょう!!