#include "asuro.h" // standardna biblioteka void gurajLevo(void){ // funkcija koja sluzi da ispravi robota MotorDir(FWD,FWD); // podesavanje pravca motora MotorSpeed(220,100); // podesavanje brzine motora } void gurajNapred(void){ // funkcija koja sluzi da gura robota van ringa MotorDir(FWD,FWD); // podesavanje pravca motora MotorSpeed(255,255); // podesavanje brzine motora } void gurajDesno(void){ // funkcija koja sluzi da ispravi robota MotorDir(FWD,FWD); // podesavanje pravca motora MotorSpeed(100,220); // podesavanje brzine motora } int main(void){ // pocetak main funkcije unsigned int lineData[2]; // promenljiva za prikupljanje podataka sa foto senzora unsigned int i; // brojac unsigned char prekidac; // promenljiva za prikupljanje podataka sa senzora za pritisak Init(); // pokretanje funkcija robota while(1){ // beskonacna petlja LineData(lineData); // funkcija za prikupljanje podataka sa foto senzora prekidac = PollSwitch(); // dodeljivanje vrednosti promenljivoj sa senzora za pritisak FrontLED(ON); // podesavanje prednje diode MotorDir(FWD,FWD); // podesavanje pravca motora MotorSpeed(140,140); // podesavanje brzine motora if((lineData[0] < 40) || (lineData[1] < 40)){ // provera da li je robot naisao na granicu ringa if(lineData[0]lineData[1]){ // medjusobna provera levog i desnog foto senzora MotorSpeed(0,0); // podesavanje brzine motora for(i=0;i<300;i++){ // petlja za cekanje od 300 milisekundi Sleep(72); // funkcija za cekanje od 1 milisekunde } MotorDir(RWD,FWD); // podesavanje pravca motora MotorSpeed(130,150); // podesavanje brzine motora for(i=0;i<300;i++){ // petlja za cekanje od 300 milisekundi Sleep(72); // funkcija za cekanje od 1 milisekunde } MotorDir(FWD,FWD); // podesavanje pravca motora MotorSpeed(140,140); // podesavanje brzine motora } } else if( prekidac > 0 ){ // provera senzora za pritisak switch(prekidac){ // switch funkcija case 1: gurajLevo();break; // guraj robota ulevo za slucaj 1 case 2: gurajNapred();break; // guraj robota napred punom brzinom case 4: gurajNapred();break; // guraj robota napred punom brzinom case 8: gurajNapred();break; // guraj robota napred punom brzinom case 16: gurajNapred();break; // guraj robota napred punom brzinom case 32: gurajDesno();break; // guraj robota udesno za slucaj 32 } } } return 0; // vrati nulu main funkciji }