ROB-75258

Мой робот представляет из себя сложный механизм, состоящий из следующих компонентов:

  1. Датчики линии;
  2. Мотор;
  3. Драйвера мотора;
  4. Расширительная плата;
  5. Платформа Ардуино;
  6. Элементы питания.

 

Принцип работы робота, следующего вдоль линии, достаточно прост. Датчики робота обнаруживают линию и передают соответствующие сигналы на Arduino. А плата Arduino в соответствии с этими сигналами управляет двумя моторами, движущими робота.

Если центральный датчик обнаружит черную линию, то робот будет двигаться прямо.  В обратном случае, управляющий сигнал даст команду на поворот в ту или иную сторону.  Крайние датчики корректируют платформу на повороты. 

int pinSensor [3]={A0,A1,A2};

int koficent [3]={-1,0,1};

int base=150;

int Kp=10;

void setup() {

 pinMode(4,OUTPUT); 

 pinMode(5,OUTPUT); 

 pinMode(6,OUTPUT);

 pinMode(7,OUTPUT); 

pinMode(A0,INPUT); 

pinMode(A1,INPUT); 

pinMode(A2,INPUT); 

}

 

void loop() {

  double error=0;

  int caunt=0;

  for (int i=0;i<3;i++){

if (digitalRead(pinSensor[i])==LOW){

  error=error+ koficent[i];

  caunt++;

  }

}

caunt=error/caunt;

  int right=0;

  int left=0;

if(error>0){

 right=(int)(base +error *Kp);

 left=(int)(base -error *Kp);

}

if(error<0){

 right=(int)(base -error *Kp);

 left=(int)(base + error *Kp);

}

 digitalWrite(4,HIGH);//левый

 analogWrite(5,left);

 digitalWrite(7,HIGH);//правый

 analogWrite(6,right); 

}