#include "asuro.h"
#define STOP 50
/*asuro kann einem abgrund mittels der liniensensoren ausweichen und hindernissen mittels der kollisionstaster*/
int main(void)
{
while(1)
{
//***************************deklaration der variablen***************************************** ***
unsigned int lineData[2]; //array für die daten der liniensensoren
unsigned char running = TRUE;
unsigned char i; //laufvariable für die for-schleifen
unsigned char taste=0; //nimmt den wert der kollisionstaster auf
//***************************programm*************** **********************************************
Init();
FrontLED(ON);
Sleep(20); //kurze pause, damit linedata die richtigen werte erfasst
LineData(lineData);
PollSwitch();
taste = PollSwitch();
if ((lineData[0] > STOP) && (lineData[1] > STOP) && (taste==0)) //vorwärts falls kein hinderniss und kein abgrund
{
MotorDir(FWD,FWD);
MotorSpeed(140,150);
PollSwitch();
}
else //wenden falls abgrund oder hinderniss
{
MotorSpeed(0,0); //stop
BackLED(ON,ON);
Sleep(100);
for(i=0; i<210; i++) //kurz zurueck
{
MotorDir(RWD,RWD);
MotorSpeed(130,130);
Sleep(100);
}
MotorSpeed(0,0);
for(i=0; i<140; i++) //wenden
{
MotorDir(FWD,RWD);
MotorSpeed(140,140);
Sleep(100);
}
BackLED(OFF,OFF);
}
Sleep(100);
}
return 0;
}
Lesezeichen