Der Roboter fährt geradeaus. Nach 3 Sekunden wendet er um 90Grad nach links, dreht sich dann aber immer im Kreis weiter. (also er fährt nur noch links).Zitat:
Zitat von roboter14
Grüße
Druckbare Version
Der Roboter fährt geradeaus. Nach 3 Sekunden wendet er um 90Grad nach links, dreht sich dann aber immer im Kreis weiter. (also er fährt nur noch links).Zitat:
Zitat von roboter14
Grüße
du musst halt nach rotate wieder moveAtSpeed machen
Warum bitte? Wenn das C sein soll, dann ist das korrekt!Zitat:
Zitat von Martinius11
Wenn der Counter 3 Sekunden erlangt hat, dreht sich der Roboter nach Links (90 Grad). Dann wird der Counter auf 0 gesetzt. Die Programm ausführung springt wieder zur task_motionControl(), da wir uns in einer while (true) Schleife befinden. Dann wird das moveAtSpeed(70, 70) ausgeführt und nach 3 Sekunden fallen wir wieder in den IF Zweig.Code:task_motionControl();
task_ADC();
moveAtSpeed(70, 70);
startStopwatch1();
if (getStopwatch1() > 3000)
{
rotate(70, LEFT, 90, true);
setStopwatch1(0);
}
Grüße
Hi RoboNull,
probiers mal hiermit:
gruß FabiCode:#include "RP6RobotBaseLib.h"
void hinderniss(void)
{
if (!obstacle_left && !obstacle_right && !bumper_left && !bumper_right) // Wenn nichts vorliegt ...
{
changeDirection(FWD);
moveAtSpeed(75,75);
}
if (obstacle_left && obstacle_right) // Wurde ein hinderniss erkannt ...
{
move(80, BWD, DIST_MM(200), BLOCKING); // ... 200mm mit der Geschwindichkeit 80 zurückfahren
rotate(80, RIGHT, 45, BLOCKING); // ... um 45 grad nach Rechts drehen mit der Geschwindichkeit 80
}
}
int main(void)
{
initRobotBase();
powerON();
setACSPwrMed(); // ACS auf Normale Entfernung
while(true)
{
hinderniss();
task_RP6System();
}
return 0;
}