This commit is contained in:
BlubbFish 2015-12-03 13:56:49 +00:00
parent fac00f4a2a
commit 98e334d4ad
6 changed files with 58 additions and 46 deletions

View File

@ -62,11 +62,15 @@ namespace ebbits.Arduino {
internal void clearStack(char key) {
LinkedList<ArduinoInput>.Enumerator e = readStack.GetEnumerator();
try {
while(e.MoveNext()) {
if(e.Current.key == key) {
readStack.Remove(e.Current);
}
}
} catch(InvalidOperationException) {
return;
}
}
}
class ArduinoInput {

View File

@ -29,8 +29,9 @@ namespace ebbits.Arduino {
serialSend('b', 2, 1); //Bremse = an
}
public void trainMove() {
public void trainMove(byte speed) {
serialSend('b', 2, 0); //Bremse aus
serialSend('p', 2, speed);
}
internal void changeDir(byte dir) {
@ -77,7 +78,7 @@ namespace ebbits.Arduino {
public bool findStart() {
changeDir(0);
if(this.whereRead() == 0) {
trainMove();
trainMove(70);
System.Threading.Thread.Sleep(3000);
}
if(this.whereRead() == 0) {
@ -95,35 +96,35 @@ namespace ebbits.Arduino {
switch(this.whereRead()) {
case 6:
Logger.Info("Fahre von 6 nach 5");
trainMove();
trainMove(70);
readStop('r',4);
trainMove();
trainMove(70);
readStop('r',5);
break;
case 4:
Logger.Info("Fahre von 4 nach 5");
trainMove();
trainMove(70);
readStop('r',5);
break;
case 3:
Logger.Info("Fahre von 3 nach 5");
trainMove();
trainMove(70);
readStop('r',2);
trainMove();
trainMove(70);
readStop('r',1);
trainMove();
trainMove(70);
readStop('r',5);
break;
case 2:
Logger.Info("Fahre von 2 nach 5");
trainMove();
trainMove(70);
readStop('r',1);
trainMove();
trainMove(70);
readStop('r',5);
break;
case 1:
Logger.Info("Fahre von 1 nach 5");
trainMove();
trainMove(70);
readStop('r',5);
break;
}
@ -132,6 +133,10 @@ namespace ebbits.Arduino {
return (this.whereRead() == 5);
}
public bool trainSwitchIsOff() {
serialSend('s', 0, 0);
ArduinoInput a = base.getInputWait('s');
return a.value == 0;
}
}
}

View File

@ -53,44 +53,46 @@ namespace ebbits {
continue;
}
}
while(a.trainSwitchIsOff()) {
Thread.Sleep(100);
}
Logger.Message("Move from Start to Welding Pos");
a.trainMove();
a.trainMove(70);
a.measureAndStop('r', 1);
Logger.Message("Welding");
l.run();
Logger.Message("Move from Welding to Paint Pos");
a.trainMove();
a.trainMove(68);
a.measureAndStop('r', 2);
Logger.Message("Paint");
p.run();
Logger.Message("Move from Paint to Glas Pos");
a.trainMove();
a.trainMove(68);
a.measureAndStop('r', 3);
Logger.Message("Glas");
g.run();
Logger.Message("Move from Glas to Turn around Pos");
a.trainMove();
a.readStop('r',6);
a.trainMove(78);
a.measureAndStop('r',6);
Logger.Message("Turn aroud and move from Turn around to Waiting Pos");
System.Threading.Thread.Sleep(500);
a.changeDir(0);
a.trainMove();
a.trainMove(90);
a.readStop('r',4);
Logger.Message("Move from Waiting Pos to Start Pos");
a.trainMove();
a.trainMove(90);
a.readStop('r', 5);
Logger.Info("Runde zuende!");
Console.ReadLine();
}
}
}

View File

@ -25,15 +25,14 @@ namespace ebbits.Robots {
setPosition(new int[] { -1, 13, -1, -1, -1 }, 300);
setPosition(new int[] { -1, -1, 90, 100, 20 }, 200);
setPosition(new int[] { -1, -1, 82, 97, 25 }, 20); // Fine Settings
setPosition(new int[] { -1, -1, 80, 94, 26 }, 20); // Fine Settings
System.Threading.Thread.Sleep(1000);
setPosition(new int[] { -1, -1, 90, 90, 20 }, 20); // Fine Lift
setPosition(new int[] { -1, -1, 103, 105, 80 }, 150);
setPosition(new int[] { -1, -1, -1, -1, 174 }, 300);
setPosition(new int[] { -1, 154, 118, 122, -1 }, 300);
setPosition(new int[] { -1, 154, 118, 122, 174 }, 300);
setPosition(new int[] { -1, -1, 86, 102, 42 }, 300);
setPosition(new int[] { -1, -1, 81, 113, 48 }, 100);
setPosition(new int[] { -1, -1, 83, 113, 48 }, 100);
setPosition(new int[] { -1, -1, -1, 117, -1 }, 20);
setPosition(new int[] { 20, -1, 78, -1, -1 }, 150);
setPosition(new int[] { -1, -1, 81, 111, -1 }, 20);

View File

@ -19,12 +19,12 @@ namespace ebbits.Robots {
base.setStartPosition(new int[] {77, 175, 155, 84 }, 500);
base.setPosition(new int[] { 77, 157, 134, 84 }, 400);
base.setPosition(new int[] { 83, 97, 116, 44 }, 200);
base.setPosition(new int[] { 83, 96, 114, 44 }, 200);
Arduino.setLaser(MainArduino.ON);
base.setPosition(new int[] { 102, 90, 108, 42 }, 20);
base.setPosition(new int[] { 98, 79, 90, 48 }, 20);
base.setPosition(new int[] { 83, 82, 95, -1 }, 20);
base.setPosition(new int[] { 83, 97, 116, 44 }, 20);
base.setPosition(new int[] { 101, 91, 107, 45 }, 20);
base.setPosition(new int[] { 98, 78, 88, 49 }, 20);
base.setPosition(new int[] { 83, 82, 95, 46 }, 20);
base.setPosition(new int[] { 83, 96, 114, 44 }, 20);
Arduino.setLaser(MainArduino.OFF);
base.setPosition(new int[] { 77, 157, 134, 84 }, 400);
base.setPosition(new int[] { 77, 175, 155, 84 }, 400);

View File

@ -25,25 +25,27 @@ namespace ebbits.Robots {
setPosition(new int[] {-1, 71, 55, 110 }, 200);
setPosition(new int[] {-1, 43, 42, 175 }, 200);
Arduino.setColor(MainArduino.RED);
setPosition(new int[] {60, 33, 22, -1 }, 50);
setPosition(new int[] { 75, 37, 39, -1 }, 50);
setPosition(new int[] { 68, 39, 30, -1 }, 50);
setPosition(new int[] { 68, 39, 30, -1 }, 50);
setPosition(new int[] { 60, 32, 20, -1 }, 50);
Arduino.setColor(MainArduino.OFF);
setPosition(new int[] {-1, 63, 45, 150 }, 200);
setPosition(new int[] {50, 68, 76, 132 }, 200);
Arduino.setColor(MainArduino.WHITE);
setPosition(new int[] {-1, -1, -1, 160 }, 100);
setPosition(new int[] {60, -1, -1, 172 }, 100);
setPosition(new int[] {-1, -1, -1, 144 }, 100);
setPosition(new int[] {44, -1, -1, 153 }, 100);
setPosition(new int[] {60, -1, -1, 164 }, 100);
setPosition(new int[] {58, -1, -1, 138 }, 100);
setPosition(new int[] {70, -1, -1, 150 }, 100);
setPosition(new int[] {-1, -1, -1, 175 }, 100);
setPosition(new int[] {80, -1, -1, -1 }, 100);
setPosition(new int[] {-1, -1, -1, 155 }, 100);
setPosition(new int[] {90, 74, 84, 148 }, 100);
setPosition(new int[] {-1, -1, -1, 175 }, 100);
setPosition(new int[] {100, -1, -1, 166 }, 100);
setPosition(new int[] {-1, -1, -1, 146 }, 100);
setPosition(new int[] {60, -1, -1, 170 }, 100);
setPosition(new int[] {75, -1, -1, 175 }, 100);
setPosition(new int[] {77, -1, -1, 155 }, 100);
setPosition(new int[] {83, -1, -1, -1 }, 100);
setPosition(new int[] {-1, 77, 88, 162 }, 100);
Arduino.setColor(MainArduino.OFF);
setPosition(new int[] { -1, -1, 100, -1, -1 }, 200);
setPosition(new int[] { 0, 87, 175, 160, 92 }, 400);
setPosition(new int[] { -1, 132, -1, -1 }, 250);
setPosition(new int[] { 87, 153, 138, 92 }, 400);
setPosition(new int[] { 87, 175, 160, 92 }, 400);
shutdownServo();
}