示例#1
0
 public Room(MulticolorLed lights, Display_T35 screen, Motion_Sensor motion_Sensor, MulticolorLed door, MulticolorLed curtains, Camera camera, Button door_button, Text messageText)
 {
     this.lights = lights;
     this.screen = screen;
     this.motion_Sensor = motion_Sensor;
     this.door = door;
     this.curtains = curtains;
     this.camera = camera;
     this.door_button = door_button;
     this.messageText = messageText;
 }
示例#2
0
        public MainPage()
        {
            this.InitializeComponent();
            Unloaded += MainPage_Unloaded;

            ultrasonic = new Sr04UltrasonicDistanceSensor(triggerPinNumber: 12, echoPinNumber: 16);
            ultrasonic.RaiseEventsOnUIThread = true;
            ultrasonic.DistanceChanged      += ultrasonic_DistanceChanged;

            led = new MulticolorLed(redPinNumber: 18, greenPinNumber: 23, bluePinNumber: 24);
        }
示例#3
0
        public MainPage()
        {
            this.InitializeComponent();
            Unloaded += MainPage_Unloaded;

            led = new MulticolorLed(redPinNumber: 18, greenPinNumber: 23, bluePinNumber: 25);

            button           = new PushButton(pinNumber: 16);
            button.Pressed  += ButtonPressed;
            button.Released += ButtonReleased;
        }
示例#4
0
        public MainPage()
        {
            InitializeComponent();
            Unloaded += MainPage_Unloaded;

            led = new MulticolorLed(redPinNumber: 27, greenPinNumber: 22, bluePinNumber: 23);

            pir = new Sr501PirMotionDetector(pinNumber: 5);
            pir.RaiseEventsOnUIThread = true;
            pir.MotionDetected       += pir_MotionDetected;
            pir.MotionStopped        += pir_MotionStopped;
        }
示例#5
0
        public MainPage()
        {
            InitializeComponent();
            Unloaded += MainPage_Unloaded;

            //Window.Current.CoreWindow.PointerCursor = null;

            connection = new RemoteConnection();
            connection.OnLedEvent(LedEvent);

            led = new MulticolorLed(redPinNumber: 18, greenPinNumber: 23, bluePinNumber: 25);

            humitureSensor = new Dht11HumitureSensor(pinNumber: 4);
            humitureSensor.RaiseEventsOnUIThread = true;
            humitureSensor.ReadingChanged       += HumitureSensor_ReadingChanged;

            relay = new Relay(pinNumber: 16);

            motionDetector = new Sr501PirMotionDetector(pinNumber: 12);
            motionDetector.RaiseEventsOnUIThread = true;
            motionDetector.MotionDetected       += MotionDetector_MotionDetected;
            motionDetector.MotionStopped        += MotionDetector_MotionStopped;

            metalTouchSensor = new MetalTouchSensor(pinNumber: 5);
            metalTouchSensor.RaiseEventsOnUIThread = true;
            metalTouchSensor.TouchDetected        += MetalTouchSensor_TouchDetected;
            metalTouchSensor.TouchRemoved         += MetalTouchSensor_TouchRemoved;

            flameSensor = new FlameSensor(pinNumber: 26);
            flameSensor.RaiseEventsOnUIThread = true;
            flameSensor.FlameDetected        += FlameSensor_FlameDetected;
            flameSensor.FlameExtinguished    += FlameSensor_FlameExtinguished;

            timer = new DispatcherTimer {
                Interval = TimeSpan.FromSeconds(30)
            };
            timer.Tick += Timer_Tick;
        }
示例#6
0
        public MainPage()
        {
            this.InitializeComponent();
            Unloaded += MainPage_Unloaded;

            movements = new Dictionary <RoverMovementType, Action>
            {
                [RoverMovementType.Forward]       = () => motors.MoveForward(),
                [RoverMovementType.ForwardLeft]   = () => motors.MoveForwardLeft(),
                [RoverMovementType.ForwardRight]  = () => motors.MoveForwardRight(),
                [RoverMovementType.Backward]      = () => motors.MoveBackward(),
                [RoverMovementType.BackwardLeft]  = () => motors.MoveBackwardLeft(),
                [RoverMovementType.BackwardRight] = () => motors.MoveBackwardRight(),
                [RoverMovementType.RotateLeft]    = () => motors.RotateLeft(),
                [RoverMovementType.RotateRight]   = () => motors.RotateRight(),
                [RoverMovementType.Stop]          = () => motors.Stop(),
            };

            streamingService = new StreamingService();
            httpCameraServer = new HttpCameraServer();
            httpCameraServer.OnRequestDataAsync(RequestDataAsync);

            connection = new RemoteConnection();
            connection.OnRoverMovementEvent(RoverMovementEvent);

            socket = new LocalConnection();
            socket.OnRoverMovementEvent(RoverMovementEvent);

            int motor1Pin1Number, motor1Pin2Number, motor2Pin1Number, motor2Pin2Number;
            int redPinNumber, greenPinNumber, bluePinNumber;
            int triggerPinNumber, echoPinNumber;

            switch (DeviceInformation.Type)
            {
            case DeviceType.MinnowBoardMax:
                motor1Pin1Number = 0;
                motor1Pin2Number = 1;
                motor2Pin1Number = 2;
                motor2Pin2Number = 3;
                redPinNumber     = 4;
                greenPinNumber   = 5;
                bluePinNumber    = 6;
                triggerPinNumber = 7;
                echoPinNumber    = 8;

                break;

            case DeviceType.Colibri:
                motor1Pin1Number = 98;
                motor1Pin2Number = 103;
                motor2Pin1Number = 97;
                motor2Pin2Number = 79;

                // On Colibri there's not enough Pin on to be used only via GPIO: don't use Multicolor LED.
                redPinNumber = greenPinNumber = bluePinNumber = -1;

                triggerPinNumber = 133;
                echoPinNumber    = 101;

                break;

            case DeviceType.RaspberryPi2:
            case DeviceType.RaspberryPi3:
            default:
                motor1Pin1Number = 27;
                motor1Pin2Number = 22;
                motor2Pin1Number = 5;
                motor2Pin2Number = 6;
                redPinNumber     = 18;
                greenPinNumber   = 23;
                bluePinNumber    = 24;
                triggerPinNumber = 12;
                echoPinNumber    = 16;

                break;
            }

            var motorDriver = new L298nMotorDriver(motor1Pin1Number, motor1Pin2Number, motor2Pin1Number, motor2Pin2Number);

            motors = motorDriver.AsLeftRightMotors();

            distanceSensor = new Sr04UltrasonicDistanceSensor(triggerPinNumber, echoPinNumber, mode: ReadingMode.Continuous);

            // Checks whether the Pin number for Multicolor LED has been specified.
            if (redPinNumber > 0)
            {
                led = new MulticolorLed(redPinNumber, greenPinNumber, bluePinNumber);
            }

            random = new Random(unchecked ((int)(DateTime.Now.Ticks)));
        }