static void Turning(EV3GyroSensor gyroSensor, int draaiGraden, Motor motorL, Motor motorR) { gyroSensor.Reset(); sbyte draaiSnelheid = 20; sbyte minDraaiSnelheid = -20; int graden = 0; int counter = 0; int updateTime = 8; if (draaiGraden > 0) //als hij naar rechts moet draaien dus een positief getal is { LcdConsole.WriteLine("GROTER ALS 0 ", draaiGraden); motorL.SetSpeed(draaiSnelheid); motorR.SetSpeed(minDraaiSnelheid); while (graden <= draaiGraden) //terwijl het aantal graden dat hij gedraaid is kleiner is dan het aantal graden dat hij moet draaien { LcdConsole.WriteLine("Gyro sensor: " + gyroSensor.ReadAsString()); graden = gyroSensor.Read(); Thread.Sleep(updateTime); counter++; if (counter > 500) { break; } } } if (draaiGraden < 0) //als hij naar links moet draaien dus het aantal graden negatief is { LcdConsole.WriteLine("KLEINER ALS 0 ", draaiGraden); motorL.SetSpeed(minDraaiSnelheid); motorR.SetSpeed(draaiSnelheid); while (graden >= draaiGraden) //terwijl het aantal graden dat hij gedraaid is groter is dan het aantal graden dat hij moet draaien { LcdConsole.WriteLine("Gyro sensor: " + gyroSensor.ReadAsString()); graden = gyroSensor.Read(); Thread.Sleep(updateTime); counter++; if (counter > 500) { break; } } } else { LcdConsole.WriteLine("IK KAN GEEN 0 GRADEN DRAAIEN " + gyroSensor.ReadAsString()); } motorR.Brake(); motorL.Brake(); motorR.Off(); motorL.Off(); Thread.Sleep(1000); }
public void Step3() { //_vehicle.SpinLeft (25, 200, true); //Thread.Sleep (1500); //_vehicle.Brake (); _vehicle.SpinLeft(20); int gyroStart = _gyro.Read(); while ((gyroStart - _gyro.Read()) < 90 || (gyroStart - _gyro.Read()) > 90) { Thread.Sleep(1); } _vehicle.Brake(); }
// Function that will repeat the file. public void repeat() { // Set robot angle back to 0 on start of repeat. while (gyroscope.Read() != 0) { if (gyroscope.Read() > 0) { left(true); } else { right(true); } } // Split commands. for (int i = 0; i < cmds.Count; i++) { string[] splitComma = cmds [i].Split(','); actualCmds.Add(splitComma[0]); actualCmds.Add(splitComma[1]); } // For loop through the commands. for (int i = 0; i < actualCmds.Count; i += 2) { // Switch checks what command and takes time out of array. switch (actualCmds[i]) { case "forward": Thread.Sleep(int.Parse(actualCmds[i + 1])); forwards(); break; case "left": Thread.Sleep(int.Parse(actualCmds[i + 1])); left(); break; case "backward": Thread.Sleep(int.Parse(actualCmds[i + 1])); backwards(); break; case "right": Thread.Sleep(int.Parse(actualCmds[i + 1])); right(); break; case "grab": Thread.Sleep(int.Parse(actualCmds[i + 1])); clawGrab(); break; case "release": Thread.Sleep(int.Parse(actualCmds[i + 1])); clawRelease(); break; case "clawStop": Thread.Sleep(int.Parse(actualCmds[i + 1])); clawStop(); break; case "stop": Thread.Sleep(int.Parse(actualCmds[i + 1])); stop(); break; case "endAll": Thread.Sleep(int.Parse(actualCmds[i + 1])); endAll(); break; } } }