ラインフォロワーロボットの製作1


 Arduinoでラインフォロワーロボットを製作しました。

Arduinoでラインフォロワーロボットを製作



 Arduinoを使ってラインフォロワーロボットを製作しました。フォトリフレクタを2個使用した簡単なものです。
今後、フォトリフレクタの数を増やして精度とスピード感のあるライントレーサーを作成してみたいと思っています。
今回は1号機の製作忘備録としてまとめてみました。



  完成ビデオ


 次の動画は、A3の厚紙4枚に2cm幅のラインを作り、その上をトレースしているビデオです。




  完成写真


 使用している主な部品は、安く仕上げるためにフォトリフレクタ、arduino pro_mini、モータードライバー、ギヤードモーター及びタイヤ、 電池ケース、基板、キャスター、スイッチ等は全て中国製です。1200円ほどで作成しました。




  回路図


 次に、回路図を表示します。
モータードライバーは、L298Nモータードライバー($1.35)を使用しました。




  プログラミング


 スケッチプログラムは、余計なものは省き簡単なプログラムとしました。
actionstop()も必要ないかなと思います。

const int threshold = 600;

void actionstop() {
  digitalWrite(6,LOW);
  digitalWrite(7,LOW);
  digitalWrite(8,LOW);
  digitalWrite(9,LOW);
}

void setup() {
  pinMode(6,OUTPUT);
  pinMode(7,OUTPUT);
  pinMode(8,OUTPUT);
  pinMode(9,OUTPUT);
  pinMode(10,OUTPUT);
  pinMode(11,OUTPUT);
}

void loop() {
  int Lsenser = analogRead(A0);
  int Rsenser = analogRead(A1);

  if (Lsenser < threshold & Rsenser < threshold) {
    analogWrite(10,80);
    digitalWrite(6,HIGH);
    digitalWrite(7,LOW);
    analogWrite(11,80);
    digitalWrite(8,HIGH);
    digitalWrite(9,LOW);

  }else if(Lsenser >= threshold & Rsenser < threshold) {
    analogWrite(10,80);
    digitalWrite(6,HIGH);
    digitalWrite(7,LOW);
    digitalWrite(8,LOW);
    digitalWrite(9,LOW);

  }else if(Rsenser >= threshold & Lsenser < threshold) {
    digitalWrite(6,LOW);
    digitalWrite(7,LOW);
    analogWrite(11,80);
    digitalWrite(8,HIGH);
    digitalWrite(9,LOW);

  }else {
    actionstop();
  }

}
						



  参考


 フォトリフレクタで、中国製のITR9909と秋月販売のLBR-127HLDのピン配置は下図のように違っています。
混乱しやすいですが、実質的には同じと考えてよいと思います。参考として掲載しました。