Exemplo n.º 1
0
        public static void Main(string[] args)
        {
            ManualResetEvent terminateProgram = new ManualResetEvent(false);
            var          lightSensor          = new NXTLightSensor(SensorPort.In1);
            ButtonEvents buts = new ButtonEvents();

            LcdConsole.WriteLine("Use light on port1");
            LcdConsole.WriteLine("Up value ");
            LcdConsole.WriteLine("Down change mode");
            LcdConsole.WriteLine("Esc. terminate");
            buts.EscapePressed += () => {
                terminateProgram.Set();
            };
            buts.UpPressed += () => {
                LcdConsole.WriteLine("Sensor value:" + lightSensor.ReadAsString());
            };
            buts.DownPressed += () => {
                if (lightSensor.Mode == LightMode.Ambient)
                {
                    lightSensor.Mode = LightMode.Relection;
                }
                else
                {
                    lightSensor.Mode = LightMode.Ambient;
                }
                LcdConsole.WriteLine("Sensor mode is now: " + lightSensor.Mode);
            };
            terminateProgram.WaitOne();
        }
Exemplo n.º 2
0
 private void configure_sensors()
 {
     light1        = new NXTLightSensor();
     light2        = new NXTLightSensor();
     light4        = new NXTLightSensor();
     brick.Sensor1 = light1;
     brick.Sensor2 = light2;
     brick.Sensor4 = light4;
 }
Exemplo n.º 3
0
        private void btnConnect_Click(object sender, EventArgs e)
        {
            String comPort = "COM" + txtCOM.Text;

            try
            {
                // if brick is already connected then disconnect it
                if (brick != null && brick.Connection.IsConnected)
                {
                    MessageBox.Show("Robot is already connected", "Connect error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return;
                }

                // create brick object and connect it to robot
                brick = new Brick <Sensor, Sensor, Sensor, Sensor>(comPort);
                brick.Connection.Open();

                // light/colour sensor declaration and connect in port 3
                sensorLight   = new NXTLightSensor();
                brick.Sensor3 = sensorLight;

                // distance sensor declaration and connect in port 4
                sensorDistance = new Sonar();
                brick.Sensor4  = sensorDistance;

                // update form with brick details
                lblConnectStatus.Text = "Connected to NXT Robot " + brick.GetBrickName();


                // Set ports for synchronised motor vehicle
                brick.Vehicle.LeftPort  = MotorPort.OutC;
                brick.Vehicle.RightPort = MotorPort.OutA;


                // Update form buttons
                btnConnect.Enabled    = false;
                btnDisconnect.Enabled = true;
                enableSensors(true);
            }
            catch
            {
                MessageBox.Show("Error connecting to robot on " + comPort, "Connect error", MessageBoxButtons.OK, MessageBoxIcon.Error);

                // call disconnect in case robot has already connected when error occured
                disconnect();
            }
        }
Exemplo n.º 4
0
        private async Task TestNXTLight()
        {
            //NXTTouchSensor touch = new NXTTouchSensor(BrickPortSensor.PORT_S2);
            //EV3TouchSensor ev3Touch = new EV3TouchSensor(BrickPortSensor.PORT_S1);
            //NXTSoundSensor sound = new NXTSoundSensor(BrickPortSensor.PORT_S4);
            NXTLightSensor nxtlight = new NXTLightSensor(brick, BrickPortSensor.PORT_S4);
            int            count    = 0;

            while (count < 100)
            {
                //Debug.WriteLine(string.Format("NXT Touch, Raw: {0}, ReadASString: {1}, IsPressed: {2}, NumberNodes: {3}, SensorName: {4}", touch.ReadRaw(), touch.ReadAsString(), touch.IsPressed(), touch.NumberOfModes(), touch.GetSensorName()));
                //Debug.WriteLine(string.Format("EV3 Touch, Raw: {0}, ReadASString: {1}, IsPressed: {2}, NumberNodes: {3}, SensorName: {4}", ev3Touch.ReadRaw(), ev3Touch.ReadAsString(), ev3Touch.IsPressed(), ev3Touch.NumberOfModes(), ev3Touch.GetSensorName()));
                //Debug.WriteLine(string.Format("NXT Sound, Raw: {0}, ReadASString: {1}, NumberNodes: {2}, SensorName: {3}", sound.ReadRaw(), sound.ReadAsString(), sound.NumberOfModes(), sound.GetSensorName()));
                Debug.WriteLine(string.Format("NXT Color Sensor, Raw: {0}, ReadASString: {1}, NumberNodes: {2}, SensorName: {3}",
                                              nxtlight.ReadRaw(), nxtlight.ReadAsString(), nxtlight.NumberOfModes(), nxtlight.GetSensorName()));
                Debug.WriteLine(string.Format("Color: {0}, ",
                                              nxtlight.ReadRaw()));

                await Task.Delay(300);

                //if ((touch.IsPressed()) && ev3Touch.IsPressed())
                count++;
            }
            count = 0;
            nxtlight.SelectNextMode();
            while (count < 100)
            {
                //Debug.WriteLine(string.Format("NXT Touch, Raw: {0}, ReadASString: {1}, IsPressed: {2}, NumberNodes: {3}, SensorName: {4}", touch.ReadRaw(), touch.ReadAsString(), touch.IsPressed(), touch.NumberOfModes(), touch.GetSensorName()));
                //Debug.WriteLine(string.Format("EV3 Touch, Raw: {0}, ReadASString: {1}, IsPressed: {2}, NumberNodes: {3}, SensorName: {4}", ev3Touch.ReadRaw(), ev3Touch.ReadAsString(), ev3Touch.IsPressed(), ev3Touch.NumberOfModes(), ev3Touch.GetSensorName()));
                //Debug.WriteLine(string.Format("NXT Sound, Raw: {0}, ReadASString: {1}, NumberNodes: {2}, SensorName: {3}", sound.ReadRaw(), sound.ReadAsString(), sound.NumberOfModes(), sound.GetSensorName()));
                Debug.WriteLine(string.Format("NXT Color Sensor, Raw: {0}, ReadASString: {1}, NumberNodes: {2}, SensorName: {3}",
                                              nxtlight.ReadRaw(), nxtlight.ReadAsString(), nxtlight.NumberOfModes(), nxtlight.GetSensorName()));
                Debug.WriteLine(string.Format("Color: {0}, ",
                                              nxtlight.ReadRaw()));

                await Task.Delay(300);

                //if ((touch.IsPressed()) && ev3Touch.IsPressed())
                count++;
            }
        }
Exemplo n.º 5
0
 private String select_sensor_and_command_for_line(int line)
 {
     monitored_sensor = light1;
     if (line == 0)
     {
         monitored_sensor = light4;
         return("A");
     }
     if (line == 1)
     {
         return("C");
     }
     if (line == 2)
     {
         return("D");
     }
     if (line == 3)
     {
         monitored_sensor = light4;
         return("B");
     }
     return("*");
 }
Exemplo n.º 6
0
        private static void TestNXTLight()
        {
            Console.WriteLine("Run NXT Light sensor test on port 4. Uses all the modes and read 100 times.");
            NXTLightSensor nxtlight = new NXTLightSensor(_brick, SensorPort.Port4);
            int            count    = 0;

            while (count < 100)
            {
                Console.WriteLine($"NXT Color Sensor, Raw: {nxtlight.ReadRaw()}, ReadASString: {nxtlight.ReadAsString()}, NumberNodes: {nxtlight.NumberOfModes()}, SensorName: {nxtlight.GetSensorName()}");
                Console.WriteLine($"Color: {nxtlight.ReadRaw()}");
                Thread.Sleep(300);
                count++;
            }

            count = 0;
            nxtlight.SelectNextMode();
            while (count < 100)
            {
                Console.WriteLine($"NXT Color Sensor, Raw: {nxtlight.ReadRaw()}, ReadASString: {nxtlight.ReadAsString()}, NumberNodes: {nxtlight.NumberOfModes()}, SensorName: {nxtlight.GetSensorName()}");
                Console.WriteLine($"Color: {nxtlight.ReadRaw()}");
                Thread.Sleep(300);
                count++;
            }
        }