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);
        }
Exemple #2
0
        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();
        }
Exemple #3
0
        // 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;
                }
            }
        }