Guten Morgen allerseits !
Hab folgendes Problem:
Ich möchte meinen Asuro in Dauerbetrieb nehmen. Später soll er bei einem geringen Batteriestand die Ladestation aufsuchen. Momentan bin ich noch in der Anfangsphase und habe bisher folgenden Code:
Code:#include "asuro.h" #include <stdlib.h> #define maxspeed 130 #define medspeed 120 #define quadteiler 30 int speedLeft,speedRight, sR, sL, i; unsigned int lineData[2]; void Line (void) { speedRight = medspeed - ((i*abs(i))/quadteiler); speedLeft = medspeed + ((i*abs(i))/quadteiler); if (speedRight > maxspeed) speedRight = maxspeed; if (speedLeft > maxspeed) speedLeft = maxspeed; if (speedRight < -maxspeed) speedRight = -maxspeed; if (speedLeft < -maxspeed) speedLeft = -maxspeed; if (speedRight < 0) {MotorDir (FWD,RWD); sR=-speedRight;sL=speedLeft;} else if (speedLeft < 0) {MotorDir (RWD,FWD); sL=-speedLeft;sR=speedRight;} else {MotorDir(FWD,FWD);sL=speedLeft;sR=speedRight;} } int main(void) { Init(); FrontLED(ON); for (i = 0; i < 0xFF; i++) LineData(lineData); speedLeft = speedRight = 120; for(;;) { LineData(lineData); i = lineData[0] - lineData[1]; if (i > 0) { StatusLED(GREEN); Line(); } else if (i < 0) { StatusLED(RED); Line(); } else { StatusLED(OFF); speedLeft = speedRight = medspeed; MotorDir(FWD,FWD); sL=speedLeft;sR=speedRight; } MotorSpeed(sL,sR); SerWrite("Akkuladung: ",12); PrintInt(Batterie()); SerWrite("\n\r",3); } }
Bei diesem Code, ist allerdings die Linienverfolgung miserabel. Könnte mir jemand einen Tipp geben, wie man es optimieren könnte ?
Und noch eine Frage:
Kann man die Akkus auch aufladen, wenn der Asuro eingeschaltet ist ?
===========================
Vielen Dank!







Zitieren
Lesezeichen