Beispiel #1
0
        public async void Run(IBackgroundTaskInstance taskInstance)
        {
            deferal = taskInstance.GetDeferral();
            brick   = await Brick.InitializeInstance("Uart0");

            InitGpio(brick);
            brick.Arduino1Led.Toggle();
            if (!await brick.InitializeSensors())
            {
                Debug.WriteLine("Something went wrong initializing sensors");
            }
            int version = await brick.GetBrickVersion();

            Debug.WriteLine(string.Format("Brick Version: {0}", version));
            bool timeoutSuccess = await brick.SetTimeout(200);

            Debug.WriteLine(string.Format("Setting timeout succesfully: {0}", timeoutSuccess));
            touch             = new NXTTouchSensor(SensorPort.Port_S1, SensorType.TOUCH_DEBOUNCE);
            touch.OnPressed  += Touch_OnPressed;
            touch.OnReleased += Touch_OnReleased;
            touch.OnChanged  += Touch_OnChanged;
            await brick.Sensors.Add(touch, true);

            ultrasonic           = new NXTUltraSonicSensor(SensorPort.Port_S2, SensorType.ULTRASONIC_CONT);
            ultrasonic.Threshold = 5;
            await brick.Sensors.Add(ultrasonic, true);

#if COLOR
            color = new NXTColorSensor(SensorPort.Port_S4, SensorType.COLOR_FULL);
            await brick.Sensors.Add(color, true);

            color = new NXTColorSensor(SensorPort.Port_S3, SensorType.COLOR_FULL);
            await brick.Sensors.Add(color, true);
#else
            color = new NXTColorSensor(SensorPort.Port_S3, SensorType.COLOR_RED);
            await brick.Sensors.Add(color, true);
#endif
            //            color.PropertyChanged += Color_PropertyChanged;
            if (!await brick.InitializeSensors())
            {
                Debug.WriteLine("Something went wrong initializing sensors");
            }

            brick.Start();

            //while (true)
            //{
            //    await brick.UpdateValues();
            //    await Task.Delay(1000);
            //}

            //motorA.SetTachoCount(motorA.GetTachoCount());
            //await brick.Stop();
            await Task.Delay(5000);

            //brick.Start();
        }
Beispiel #2
0
        //TODO build test for EV3 Ultra Sound

        private async Task TestNXTUS()
        {
            NXTUltraSonicSensor ultra = new NXTUltraSonicSensor(BrickPortSensor.PORT_S4);

            for (int i = 0; i < ultra.NumberOfModes(); i++)
            {
                int count = 0;
                while (count < 100)
                {
                    Debug.WriteLine(string.Format("NXT US, Distance: {0}, ReadAsString: {1}, Selected mode: {2}",
                                                  ultra.ReadDistance(), ultra.ReadAsString(), ultra.SelectedMode()));
                    await Task.Delay(300);
                }
                ultra.SelectNextMode();
            }
        }
        private static void TestNXTUS()
        {
            Console.WriteLine("Running NXT Ultrasonic sensor test on port 4. Uses all the modes and read 50 times.");
            NXTUltraSonicSensor ultra = new NXTUltraSonicSensor(_brick, SensorPort.Port4);

            for (int i = 0; i < ultra.NumberOfModes(); i++)
            {
                int count = 0;
                while (count < 50)
                {
                    Console.WriteLine($"NXT Ultrasound, Distance: {ultra.ReadDistance()}, ReadAsString: {ultra.ReadAsString()}, Selected mode: {ultra.SelectedMode()}");
                    Thread.Sleep(2000);
                    count++;
                }

                ultra.SelectNextMode();
            }
        }
Beispiel #4
0
        private async Task LunchFollowMe()
        {
            EV3TouchSensor      touch = new EV3TouchSensor(BrickPortSensor.PORT_S1);
            NXTUltraSonicSensor ultra = new NXTUltraSonicSensor(BrickPortSensor.PORT_S3, UltraSonicMode.Centimeter);

            robot = new Vehicule(BrickPortMotor.PORT_B, BrickPortMotor.PORT_C);
            while (!touch.IsPressed())
            {
                int valultra = ultra.Value;
                if ((valultra < 70) && (valultra != 0))
                {
                    Debug.WriteLine($"Taking picture, distance {valultra} cm");
                    await MakePicture();
                }

                await Task.Delay(10);
            }
            Debug.Write("end of face tracking and detection");
        }