Пример #1
0
        private async void Setup()
        {
            try
            {
                rootPage.NotifyUser("Establishing sensor connectivity", NotifyType.StatusMessage);

                this.mainboard = await GT.Module.CreateAsync <GTMB.FEZCream>();

                this.lightSensor = await GT.Module.CreateAsync <GTMO.LightSense>(this.mainboard.GetProvidedSocket(6));

                this.tempSensor = await GT.Module.CreateAsync <GTMO.TempHumidSI70>(this.mainboard.GetProvidedSocket(8));

                // serial connection via XBee modules
                arduinoConnection = new UsbSerial("0403", "6001");

                //Begin connection
                arduinoConnection.begin(57600, SerialConfig.SERIAL_8N1);

                //Attach event handlers
                arduinoConnection.ConnectionEstablished += ArduinoConnectionEstablished;
                arduinoConnection.ConnectionFailed      += ArduinoConnectionFailed;

                // instantiate remote device
                arduino = new RemoteDevice(arduinoConnection);
                arduino.StringMessageReceived += ArduinoStringMessageReceived;
                rootPage.NotifyUser("Sensors connected successfully!", NotifyType.StatusMessage);
            }
            catch (Exception e)
            {
                rootPage.NotifyUser("Error connecting to sensors", NotifyType.ErrorMessage);
            }
        }
Пример #2
0
        private async void Setup()
        {
            this.mainboard = await GT.Module.CreateAsync <GTMB.FEZCream>();

            this.temphumid = await GT.Module.CreateAsync <GTMO.TempHumidSI70>(this.mainboard.GetProvidedSocket(3));

            this.gas = await GT.Module.CreateAsync <GTMO.GasSense>(this.mainboard.GetProvidedSocket(6));

            this.light = await GT.Module.CreateAsync <GTMO.LightSense>(this.mainboard.GetProvidedSocket(5));

            this.relay = await GT.Module.CreateAsync <GTMO.RelayX1>(this.mainboard.GetProvidedSocket(4));

            //mqtt
            if (client == null)
            {
                // create client instance
                MQTT_BROKER_ADDRESS = "gravicodeservices.cloudapp.net";
                client = new MqttClient(MQTT_BROKER_ADDRESS);
                string clientId = Guid.NewGuid().ToString();
                client.Connect(clientId, "mifmasterz", "123qweasd");
                SubscribeMessage();
            }

            this.timer          = new DispatcherTimer();
            this.timer.Interval = TimeSpan.FromMilliseconds(2000);
            this.timer.Tick    += this.OnTick;
            this.timer.Start();
        }
Пример #3
0
        private async void Setup()
        {
            _mainboard = await GT.Module.CreateAsync <GTMB.FEZCream>();

            _extender = await GT.Module.CreateAsync <GTMO.Extender>(_mainboard.GetProvidedSocket(8));

            _colorPin0 = await _extender.CreateDigitalIOAsync(GT.SocketPinNumber.Three, false);

            _colorPin1 = await _extender.CreateDigitalIOAsync(GT.SocketPinNumber.Four, false);

            _colorPin2 = await _extender.CreateDigitalIOAsync(GT.SocketPinNumber.Five, false);

            _colorPin3 = await _extender.CreateDigitalIOAsync(GT.SocketPinNumber.Six, false);
        }
Пример #4
0
        protected async override Task Initialize()
        {
            this.gpioMap         = FEZCream.CreateGpioMap();
            this.analogMap       = FEZCream.CreateAnalogMap();
            this.pwmMap          = FEZCream.CreatePwmMap();
            this.analogSharedMap = FEZCream.CreateAnalogSharedMap();
            this.pwmSharedMap    = FEZCream.CreatePwmSharedMap();

            this.analog = new ADS7830(await GNI.I2cDevice.CreateInterfaceAsync("I2C1", new I2cConnectionSettings(ADS7830.GetAddress(false, false))));
            this.pwm    = new PCA9685(await GNI.I2cDevice.CreateInterfaceAsync("I2C1", new I2cConnectionSettings(PCA9685.GetAddress(true, true, true, true, true, true))));

            this.gpios    = new PCA9535[2];
            this.gpios[0] = new PCA9535(await GNI.I2cDevice.CreateInterfaceAsync("I2C1", new I2cConnectionSettings(PCA9535.GetAddress(true, true, false))), await GNI.DigitalIO.CreateInterfaceAsync(22));
            this.gpios[1] = new PCA9535(await GNI.I2cDevice.CreateInterfaceAsync("I2C1", new I2cConnectionSettings(PCA9535.GetAddress(true, false, true))), await GNI.DigitalIO.CreateInterfaceAsync(26));

            for (var i = 2; i <= 7; i++)
            {
                this.gpios[0].SetDriveMode(i, GpioPinDriveMode.Output);
                this.gpios[0].Write(i, true);
            }

            Socket socket;

            socket = this.CreateSocket(1);
            socket.AddSupportedTypes(SocketType.I);
            socket.SetNativePin(SocketPinNumber.Three, 18);
            socket.NativeI2cDeviceId = "I2C1";
            socket.DigitalIOCreator  = this.DigitalIOCreator;

            socket = this.CreateSocket(2);
            socket.AddSupportedTypes(SocketType.U);
            socket.NativeSerialDeviceId = "COM1";
            socket.DigitalIOCreator     = this.DigitalIOCreator;

            socket = this.CreateSocket(3);
            socket.AddSupportedTypes(SocketType.S, SocketType.X);
            socket.SetNativePin(SocketPinNumber.Three, 24);
            socket.SetNativePin(SocketPinNumber.Four, 25);
            socket.SetNativePin(SocketPinNumber.Five, 13);
            socket.NativeSpiDeviceId      = "SPI0";
            socket.NativeSpiChipSelectPin = 0;

            socket = this.CreateSocket(4);
            socket.AddSupportedTypes(SocketType.Y);
            socket.SetNativePin(SocketPinNumber.Three, 6);
            socket.DigitalIOCreator = this.DigitalIOCreator;

            socket = this.CreateSocket(5);
            socket.AddSupportedTypes(SocketType.A);
            socket.SetNativePin(SocketPinNumber.Three, 12);
            socket.DigitalIOCreator = this.DigitalIOCreator;
            socket.AnalogIOCreator  = this.AnalogIOCreator;

            socket = this.CreateSocket(6);
            socket.AddSupportedTypes(SocketType.A);
            socket.SetNativePin(SocketPinNumber.Three, 16);
            socket.DigitalIOCreator = this.DigitalIOCreator;
            socket.AnalogIOCreator  = this.AnalogIOCreator;

            socket = this.CreateSocket(7);
            socket.AddSupportedTypes(SocketType.P, SocketType.Y);
            socket.SetNativePin(SocketPinNumber.Three, 5);
            socket.DigitalIOCreator = this.DigitalIOCreator;
            socket.PwmOutputCreator = this.PwmOutputCreator;

            socket = this.CreateSocket(8);
            socket.AddSupportedTypes(SocketType.P, SocketType.Y);
            socket.SetNativePin(SocketPinNumber.Three, 27);
            socket.DigitalIOCreator = this.DigitalIOCreator;
            socket.PwmOutputCreator = this.PwmOutputCreator;

            socket = this.CreateSocket(9);
            socket.AddSupportedTypes(SocketType.I);
            socket.SetNativePin(SocketPinNumber.Three, 23);
            socket.NativeI2cDeviceId = "I2C1";
            socket.DigitalIOCreator  = this.DigitalIOCreator;
        }
Пример #5
0
        private async void Setup()
        {
            this.mainboard = await GT.Module.CreateAsync <GTMB.FEZCream>();

            this.motor = await GT.Module.CreateAsync <GTMO.MotorDriverL298>(this.mainboard.GetProvidedSocket(8));

            this.breakout = await GT.Module.CreateAsync <GTMO.BreakoutTB10>(this.mainboard.GetProvidedSocket(4));

            this.RedLed = await breakout.CreateDigitalIOAsync(GHIElectronics.UWP.GadgeteerCore.SocketPinNumber.Eight, false);

            this.GreenLed = await breakout.CreateDigitalIOAsync(GHIElectronics.UWP.GadgeteerCore.SocketPinNumber.Nine, false);

            this.Buzz = await breakout.CreateDigitalIOAsync(GHIElectronics.UWP.GadgeteerCore.SocketPinNumber.Seven, false);

            this.timer          = new DispatcherTimer();
            this.timer.Interval = TimeSpan.FromMilliseconds(100);

            this.timer.Start();

            Mobil            = new MobilRemote();
            this.timer.Tick += (a, b) =>
            {
                /*
                 * double x, y, z;
                 *
                 * this.hat.GetAcceleration(out x, out y, out z);
                 *
                 * this.LightTextBox.Text = this.hat.GetLightLevel().ToString("P2");
                 * this.TempTextBox.Text = this.hat.GetTemperature().ToString("N2");
                 * this.AccelTextBox.Text = $"({x:N2}, {y:N2}, {z:N2})";
                 * this.Button18TextBox.Text = this.hat.IsDIO18Pressed().ToString();
                 * this.Button22TextBox.Text = this.hat.IsDIO22Pressed().ToString();
                 * this.AnalogTextBox.Text = this.hat.ReadAnalog(GIS.FEZHAT.AnalogPin.Ain1).ToString("N2");
                 */
                if (isNavigating)
                {
                    return;
                }
                isNavigating = true;
                //this.hat.D2.Color = GIS.FEZHAT.Color.Black;
                //this.hat.D3.Color = GIS.FEZHAT.Color.Black;

                switch (Mobil.Arah)
                {
                case MobilRemote.ArahJalan.Maju:
                    this.motor.SetSpeed(GHIElectronics.UWP.Gadgeteer.Modules.MotorDriverL298.Motor.Motor1, 1.0);
                    this.motor.SetSpeed(GHIElectronics.UWP.Gadgeteer.Modules.MotorDriverL298.Motor.Motor2, 1.0);

                    GreenLed.Write(true);
                    RedLed.Write(false);
                    Buzz.Write(false);
                    break;

                case MobilRemote.ArahJalan.Mundur:
                    this.motor.SetSpeed(GHIElectronics.UWP.Gadgeteer.Modules.MotorDriverL298.Motor.Motor1, -1.0);
                    this.motor.SetSpeed(GHIElectronics.UWP.Gadgeteer.Modules.MotorDriverL298.Motor.Motor2, -1.0);

                    GreenLed.Write(false);
                    RedLed.Write(true);
                    Buzz.Write(false);

                    break;

                case MobilRemote.ArahJalan.Kiri:
                    this.motor.SetSpeed(GHIElectronics.UWP.Gadgeteer.Modules.MotorDriverL298.Motor.Motor1, -0.7);
                    this.motor.SetSpeed(GHIElectronics.UWP.Gadgeteer.Modules.MotorDriverL298.Motor.Motor2, 0.7);

                    GreenLed.Write(false);
                    RedLed.Write(false);
                    Buzz.Write(false);
                    break;

                case MobilRemote.ArahJalan.Kanan:
                    this.motor.SetSpeed(GHIElectronics.UWP.Gadgeteer.Modules.MotorDriverL298.Motor.Motor1, 0.7);
                    this.motor.SetSpeed(GHIElectronics.UWP.Gadgeteer.Modules.MotorDriverL298.Motor.Motor2, -0.7);

                    GreenLed.Write(false);
                    RedLed.Write(false);
                    Buzz.Write(false);
                    break;

                case MobilRemote.ArahJalan.Stop:
                    this.motor.SetSpeed(GHIElectronics.UWP.Gadgeteer.Modules.MotorDriverL298.Motor.Motor1, 0.0);
                    this.motor.SetSpeed(GHIElectronics.UWP.Gadgeteer.Modules.MotorDriverL298.Motor.Motor2, 0.0);

                    GreenLed.Write(false);
                    RedLed.Write(false);
                    Buzz.Write(false);
                    break;
                }
                isNavigating = false;
            };
            timer.Start();

            client = new MqttClient(MQTT_BROKER_ADDRESS);
            string clientId = Guid.NewGuid().ToString();

            client.Connect(clientId);
            SubscribeMessage();
        }