3Д
ROB-75258Мой робот представляет из себя сложный механизм, состоящий из следующих компонентов:
- Датчики линии;
- Мотор;
- Драйвера мотора;
- Расширительная плата;
- Платформа Ардуино;
- Элементы питания.
Принцип работы робота, следующего вдоль линии, достаточно прост. Датчики робота обнаруживают линию и передают соответствующие сигналы на 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);
}