Probier es doch mal mit diesem minimal Programm:
Code:Init(); Encoder_Init(); MotorDir(FWD,FWD); MotorSpeed(175,175); while(1){ diff=encoder[RIGHT]-encoder[LEFT]; MotorSpeed(175+diff,175-diff); }
Hallo zusammen,
ich bin ein Newbie in Sachen ASURO. Kann mir jemand helfen? Ich möchte gerne mit meinem ASURO möglichst gerade fahren. Im folgenden Code habe ich versucht die Odometrie zu nutzen. Was mache ich falsch???
Danke.
void geradeaus(int m){
int speedLeft = 255;
int speedRight = 255;
int posLeft = 0;
int posRight = 0;
int flagLeft = FALSE;
int flagRight = FALSE;
int schwelle = 255;
unsigned int data[2];
while (posLeft < m){
OdometrieData(data);
//linkes Rad
if ( (data[0] < schwelle) && (flagLeft == TRUE)) {
flagLeft = FALSE;
}
if ( (data[0] > schwelle) && (flagLeft == FALSE)) {
posLeft ++;
flagLeft = TRUE;
}
//rechtes Rad
if ( (data[1] < schwelle) && (flagRight == TRUE)) {
flagRight = FALSE;
}
if ( (data[1] > schwelle) && (flagRight == FALSE)) {
posRight ++;
flagRight = TRUE;
}
//ggf. links oder recht in bisschen bremsen
if ((posLeft-posRight)>3) {
StatusLED(GREEN);
speedLeft--;
}
else if ((posLeft-posRight)<-3) {
StatusLED(RED);
speedRight--;
}
else {
StatusLED(OFF);
posLeft = posLeft = 0;
speedLeft = speedLeft = 255;
}
MotorSpeed(speedLeft,speedRight);
}
MotorSpeed(0,0);
}
Probier es doch mal mit diesem minimal Programm:
Code:Init(); Encoder_Init(); MotorDir(FWD,FWD); MotorSpeed(175,175); while(1){ diff=encoder[RIGHT]-encoder[LEFT]; MotorSpeed(175+diff,175-diff); }
Prostetnic Vogon Jeltz
2B | ~2B, That is the Question?
The Answer is FF!
Hallo,
die Lösung sieht interessant aus, aber woher hast du die Methode Encoder_Init????
Gruß RoboRace
Die sind fertig in der asuro.c
* Encoder_Init() initializing encoder-counter
* Encoder_Start() start autoencoding
* Encoder_Stop() stop autoencoding
Die aktuelle Versinon kannst du hier finden: http://sourceforge.net/project/showf...roup_id=155217
Prostetnic Vogon Jeltz
2B | ~2B, That is the Question?
The Answer is FF!
Prima, danke für Deine Antwort. Funktioniert!
Prima, danke für Deine Antwort. Funktioniert!
Hi, ich habe von ein paar Tagen ein Programm geschrieben, dass der Asuro Roboter ein Hindernis umfahren kann. Mein Problem ist, dass der Asuro nicht geradeaus fährt...ich bitte sie daher, ob sie mir mit der Odometrie helfen können, damit ich dieses Problem so schnell wie möglichst beheben kann.
mfG Westside
dieses kleine Programm, dass vogon gepostet hat, geht bei mir nicht....wenn ich es compiliere, dann kommen 2errors und etwa 4warnings.
mfG Westside
ich habe diese Problem jetzt beheben können....
ich hätte ja von Anfang an drauf kommen können, dass das main und viele andere dinge noch fehlten....jedenfalls habe ich jetzt keinen Fehler mehr!Vielen Dank!!!!
mfG Westside
Hi, was hat dieses flagRight = TRUE; int flagLeft = FALSE; usw. zu bedeuten ?
wie kann ich den zurückglegten Weg beim Asuro messen , in cm ?
Lesezeichen