öhm...ja...übersehen.Sorry. .Funktioniet aber irgendwie nicht.Der Roboter bleibt nur stehen.
@DerNeuling
Läufts jetzt?
Nach rotate(...); fehlt dir ne } um den IF Zweig zu schließen.Code:void bumpersStateChanged(void) { if(bumper_left || bumper_right) { moveAtSpeed(0,0); move(MOVE_SPEED, BWD, DIST_MM(300), BLOCKING); rotate(TURN_SPEED, LEFT, 90, BLOCKING); }
öhm...ja...übersehen.Sorry. .Funktioniet aber irgendwie nicht.Der Roboter bleibt nur stehen.
Kanns leider nicht testen, weil ich bei meinem RP6 die Sicherung durchgebrannt habe:Zitat von DerNeuling
Code:void rec (void) { if (!obstacle_left && !obstacle_right && !bumper_left && !bumper_right) { changeDirection(FWD); moveAtSpeed(75,75); } if (bumper_left) { move(80, BWD, DIST_MM(100), BLOCKING); rotate(80, RIGHT, 45, BLOCKING); } if (bumper_right) { move(80, BWD, DIST_MM(100), BLOCKING); rotate(80, LEFT, 45, BLOCKING); } } int main(void) { initRobotBase(); powerON(); while(true) { rec(); task_RP6System(); } return 0; }
Danke RoboNull.Es hat nur noch das #include "RP6RobotBaseLib.h" am Anfang gefehlt,dann hats geklappt.Ich hab aber noch ein paar Fragen.Was ist void rec (void) .Bisher kenne ich nur main und ein paar andere Funktionen.Kann man jede Funktion nennen wie man will,um sie dann in der main-Funktion aufzurufen?
obstacle_left && !obstacle_right .Was bewirkt das?Ich hab immer gedacht man muss nur bumper_left bzw. bumper_right schreiben um zu sagen"wenn bumper_left bzw. bumper_right berührt wurde,dann.....".Muss das dann noch hin?
Und was ist eigentlich dieses Task_RP6System?Ist das,damit er auf die Motoren zugreift?
mfG
Hallo,
Bitte mal die Anleitung lesen & ein C Turial durchlesen.
Deine Fragen sind sehr grundlegend, welche alle in den ersten Seiten der Anleitung durchgegnagen werden.
Grüße
Lesezeichen