Я создал алгоритм для следования черной линии.Но у меня проблема в том, что именно на перекрестке робот всегда завершает свой путь вперед.Но я хочу, чтобы он пошел налево.Я имею в виду, он всегда отдает предпочтение движению вперед и не исследует все пути лабиринта
Зная, что все дороги - только угловые или прямые дороги
Я разместил датчики 00100, датчик[0] датчик [1] датчик [2] датчик [3] датчик [4] просто середина в черной линии.
read_sensor_values();
// i use 5 sensor 0 to 4 in table sensor[];
if(sensor[2]==HIGH){
if(sensor[1]==LOW && sensor[3]==LOW){
go_Advance(); //straight
set_Motorspeed(M_SPEED1,M_SPEED1);
}
else if(sensor[1]==HIGH && sensor[3]==LOW){
go_Left(); //Turn left
set_Motorspeed(0,M_SPEED1);
}
else if(sensor[1]==LOW && sensor[3]==HIGH){
go_Right(); //Turn right
set_Motorspeed(M_SPEED1,0);
}
}
else {if(sensor[2]==LOW){
if(sensor[1]==HIGH && sensor[3]==LOW){ //Turn left
go_Left();
set_Motorspeed(0,M_SPEED1);
}
else if(sensor[1]==LOW && sensor[3]==HIGH){ //Turn right
go_Right();
set_Motorspeed(M_SPEED1,0);
}
}
else {
go_Back();
set_Motorspeed(M_SPEED1,M_SPEED1);
}
if(sensor[1]==HIGH){
if(sensor[0]==HIGH && sensor[2]==LOW){
go_Left();
set_Motorspeed(0,M_SPEED2);
}
else{ //Turn left
go_Left();
set_Motorspeed(0,M_SPEED1);
}
}
if(sensor[3]==HIGH){
if(sensor[2]==LOW && sensor[4]==HIGH){
go_Right();
set_Motorspeed(M_SPEED2,0);
}
else{
go_Right();
set_Motorspeed(M_SPEED2,0);
}
}
}
}