Hallo!
Wir haben hier ein Projekt, das wir selbst programmiert haben und für uns logisch erscheint...allerdings macht unser Roboter nicht das was wir wollen!!!
Unser Projekt: Der ASURO soll eine Kurve fahren, an die er im ersten Durchgang anstößt...im zweiten Durchgang soll er sie perfekt nehmen...
Dies wollen wir erreichen, das der ASURO im ersten Durchgang die "Wechsel von Hell-Dunkel" bei der Odometrie zählt und im zweiten Durchgang nach einer bestimmten Anzahl die Kurve fahren (Wert durch Abzug von erstem Durchgang)!!!
MfG,
Hansebanger vs. BangboyCode:#include "asuro.h" void SleepEx(short); #define STOP 120 int main(void) { unsigned char taste; unsigned int data[2],dato[2]; int i,S,DrehR,DrehL; Init(); while (1==1) { FrontLED(ON); S=0; MotorDir(FWD,FWD); MotorSpeed(100,100); // Weite messen OdometrieData(data); if (data[0]>900) { (i++);} do { taste=PollSwitch(); if (taste > 7) { DrehR=i; MotorSpeed(0,0); BackLED(ON,ON); MotorDir(RWD,RWD); MotorSpeed(0,100); SleepEx(15); MotorSpeed(0,0); SleepEx(10); MotorDir(FWD,FWD); MotorSpeed(105,100); } else if((taste < 7) && (taste > 0) ) { DrehL=i; MotorSpeed(0,0); BackLED(ON,ON); MotorDir(RWD,RWD); MotorSpeed(100,0); SleepEx(15); MotorSpeed(0,0); SleepEx(10); MotorDir(FWD,FWD); MotorSpeed(105,100); } // Stop am Ende LineData(dato); if ((dato[0] < STOP) && (dato[1] < STOP)) { MotorSpeed(0,0); S=1; } if (S=1) { while (i<(DrehL-20)) { MotorSpeed(105,100); } if (i>(DrehL-20)) { MotorSpeed(120,20); } } } while(1); } } void SleepEx(short zsecnds) { int wdhlg=zsecnds/.03; int i=0; while (i<wdhlg) { Sleep(216); i++; } }







Zitieren

Lesezeichen