Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Diff: main.cpp
- Revision:
- 7:22392ed60534
- Parent:
- 6:4868f789c223
- Child:
- 8:8131269dc46e
--- a/main.cpp Tue Apr 24 15:35:24 2018 +0000
+++ b/main.cpp Fri Apr 27 13:07:13 2018 +0000
@@ -8,12 +8,11 @@
/* todo:
- Regler gerade Fahrt
- > Rotationen
- gespeicherten Weg fahren
- - Problem: Links beschleunigt schneller
Optimieren:
- Beschleunigung
+ - Zentrieren
- über längere Strecke schneller fahren
- Abbiegen
@@ -82,7 +81,7 @@
}
//Return to last junction
-void reverseToJunction(int& junc, int& r, int route[]) {
+void reverseToJunction(int junc, int& r, int route[]) {
while (junc < r ) {
@@ -189,8 +188,24 @@
//if (j > 0) {j--;}
printf("Kreuzung %d Schritt %d geloscht\n", j, r);
j--;
- reverseToJunction(junction[j], r, route);
-
+ //reverseToJunction(junction[j], r, route);
+
+ while (junction[r] < r ) {
+
+ //invert rotation
+ if (route[r] == LEFT) {
+
+ route[r] = RIGHT;
+
+ }else if (route[r] == RIGHT) {
+
+ route[r] = LEFT;
+ }
+
+ motion.runTask(route[r]);
+ route[r] = 0;
+ r--;
+ }
}else{
route[r] = LEFT;
@@ -213,9 +228,9 @@
route[r] = RIGHT;
printf("Schritt: %d, Befehl: %d\n", r, route[r]);
r++;
- /*route[r] = MOVE;
+ route[r] = MOVE;
printf("Schritt: %d, Befehl: %d\n", r, route[r]);
- r++;*/
+ r++;
motion.scanMove();
motion.stop();
@@ -226,7 +241,24 @@
//if (j > 0) {j--;}
printf("Kreuzung %d Schritt %d geloscht\n", j, r);
j--;
- reverseToJunction(junction[j], r, route);
+ //reverseToJunction(junction[j], r, route);
+
+ while (junction[r] < r ) {
+
+ //invert rotation
+ if (route[r] == LEFT) {
+
+ route[r] = RIGHT;
+
+ }else if (route[r] == RIGHT) {
+
+ route[r] = LEFT;
+ }
+
+ motion.runTask(route[r]);
+ route[r] = 0;
+ r--;
+ }
}else{
@@ -259,7 +291,7 @@
//Return to last junction
while (junction[j] <= r ) {
- if (junction[j] == r && (route[r] == LEFT || route[r] == RIGHT)) {
+ if (junction[j] == r) {
switch (route[r]) {
case MOVE:
@@ -308,13 +340,16 @@
}
motion.runTask(route[r]);
- route[r] = 0;
r--;
- }*/
+ }
+
+ motion.runTask(route[r])
+ */
Ziel = 1;
r = 0;
start = 0;
+ controller.counterReset();
}else{
Ziel = 0;
}
@@ -334,6 +369,11 @@
//Auf längere Strecke schneller fahren
route[r+1] = SPEED;
}*/
+
+ float distanceL = irSensorL.readL();
+ float distanceC = irSensorC.readC();
+ float distanceR = irSensorR.readR();
+
motion.runTask(route[r]);
r++;
