私の入門記録であって、入門者向け解説サイトではありません。

自動運転

  • 投稿日:
  • Category:

自動運転は、Arduinoで実行出来る内容としては最も実用的ではないだろうか。回路は簡単で、前回のものからボリューム部分を取り除けばオーケーだ。スケッチも以下の通り、今のところ基本的に出力のみで、値を読み取るルーチンはない。前進は10番ピンに値100を出力し、後退は逆に11番ピンに出す。delayが前後進と停止の時間指定で、実験なのでこれを無限に繰り返すだけの簡単な処理である。

[ スケッチ:Pwm1]

void setup() {
  pinMode(10, OUTPUT);
  pinMode(11, OUTPUT);
}
void loop() {
  analogWrite(10, 100);
  digitalWrite(11, LOW);
  delay(2550);    // 前進
  analogWrite(10, LOW);
  digitalWrite(11, LOW);
  delay(5000);    // 5秒停止
  analogWrite(11, 100);
  digitalWrite(10, LOW);
  delay(2650);    // 後退
  analogWrite(11, LOW);
  digitalWrite(10, LOW);
  delay(5000);    // 5秒停止
}

前回と同じくテスト車両を乗せて動作チェック、机上で線路長が短いのでひとりチキンレースみたいになっているが(笑)、スケッチで往復の時間を調整する事により何とか収まっている。ただ、調整中に2度ほど落下させてしまったのは、いちおう白状しておこう。

なお、この実験では単純に時間調整だけで一定範囲を往復させているが、モーターの特性として前進と後進で速さが変わって来るし、スリップ等で位置もズレるため、実運用ではセンサーを併用して停止位置を判定する手法の導入が必要だろう。また、ゼロからいきなり一定値を送っているので、ラピッドスタートになっている点も要改善である。