Hallo
Hier dein Kollisionsprogramm:
Das Tischkantenprogramm müsste so inetwa aussehen (nicht getestet):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; }
Sobald der Asuro die Tischkante erkennt bleibt er stehen udn blinkt mit den LEDs.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; }
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






Zitieren

Lesezeichen