Hallo Hatzl,
es ist relativ einfach möglich beliebige Bewegungsabläufe mit den "move(...)" und "rotate(...)" Funktionen zu realisieren.
Dazu gibt es schon Beispielprogramme!
Das ist allerdings für bestimmte Distanzen.
Zeitgesteuert klappt das z.B. recht einfach und universell so:
Lässt sich beliebig erweitern und verändern.Code:powerON(); // Wichtig: Sensoren anschalten! startStopwatch1(); // Stopwatch1 starten! uint8_t count = 0; // Sekundenzähler while(true) { if(getStopwatch1() > 1000) // 1000ms = 1s, andere Werte sind natürlich { // ebenfalls möglich! switch(count) // Sekundenzähler auswerten { case 1: // Sekunde 1... moveAtSpeed(25,25); changeDirection(FWD); // geradeaus break; case 4: // *Bei* Sekunde 4 schneller fahren... moveAtSpeed(60,60); break; case 7: // Sekunde 7 im Bewegungsablauf... moveAtSpeed(35,35); changeDirection(LEFT); // links break; case 10: // usw. moveAtSpeed(50,50); changeDirection(FWD); break; case 12: moveAtSpeed(0,0); // Stop! count = 0; // wieder von vorn beginnen! break; } count++; // Sekundenzähler erhöhen setStopwatch1(0); } task_RP6System(); }
Hier wurde es mit "switch" gelöst, geht natürlich auch mit if-else...
MfG,
SlyD







Zitieren

Lesezeichen