Hallo
Hier dein Kollisionsprogramm:
Code:
#include <asuro.h>
int main (void)
{
Init();
int p;
while(1){
MotorDir(FWD,FWD);
MotorSpeed(125,125);
if(PollSwitch()>=8 )
{
MotorDir(RWD,RWD);
MotorSpeed(125,125);
for(p=0;p<300;p++)
{Sleep(72);}
MotorDir(BREAK,RWD);
MotorSpeed(0,125);
for(p=0;p<1000;p++)
{Sleep(72);}
}
if((PollSwitch()<8 && PollSwitch()>=1))
{
MotorDir(RWD,RWD);
MotorSpeed(125,125);
for(p=0;p<300;p++)
{Sleep(72);}
MotorDir(RWD,BREAK);
MotorSpeed(125,0);
for(p=0;p<1000;p++)
{Sleep(72);}
}
}
while(1){}
return 0;
}
Das Tischkantenprogramm müsste so inetwa aussehen (nicht getestet):
Code:
#include <asuro.h>
int main (void)
{
int p;
unsigned int data[2];
Init();
FrontLED(ON);
while(1)
{
LineData(data);
if (data [0]<260 || data [1]<260) // Hier musst du bei Bedarf anpassen
{
MotorSpeed(0,0);
BackLED(ON,OFF);
for(p=0;p<200;p++)
{Sleep(72);}
BackLED(OFF,ON);
for(p=0;p<200;p++)
{Sleep(72);}
}
else
{
MotorDir(FWD,FWD);
MotorSpeed(125,125);
}
}
while(1){}
return 0;
}
Sobald der Asuro die Tischkante erkennt bleibt er stehen udn blinkt mit den LEDs.
Wenn der Asuro generell stehen bleiben auch mit "festem Untergrund" musst du die Zahlen 260 vergrößern bis es passt (versuch am besten 20er Schritte also 280 wenner immer noch so stehen bleibt 300 usw bis es klappt max 1023)
Gruß Thund3r
Lesezeichen