Ejemplo n.º 1
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);
        }
Ejemplo n.º 2
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();
        }