Esempio n. 1
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);
        }
Esempio n. 2
0
 public MainPage()
 {
     this.InitializeComponent();
     ultrasonic = new Sr04UltrasonicDistanceSensor(triggerPinNumber: 12, echoPinNumber: 16);
     ultrasonic.DistanceChanged += ultrasonic_DistanceChanged;
 }
Esempio n. 3
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)));
        }