예제 #1
0
 public IndirectedPwmOutput(int channel, PCA9685 pwm) {
     this.channel = channel;
     this.pwm = pwm;
 }
예제 #2
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 NativeInterfaces.I2cDevice.CreateInterfaceAsync("I2C1", new I2cConnectionSettings(ADS7830.GetAddress(false, false))));
            this.pwm = new PCA9685(await NativeInterfaces.I2cDevice.CreateInterfaceAsync("I2C1", new I2cConnectionSettings(PCA9685.GetAddress(true, true, true, true, true, true))));

            this.gpios = new PCA9535[2];
            this.gpios[0] = new PCA9535(await NativeInterfaces.I2cDevice.CreateInterfaceAsync("I2C1", new I2cConnectionSettings(PCA9535.GetAddress(true, true, false))), await NativeInterfaces.DigitalIO.CreateInterfaceAsync(22));
            this.gpios[1] = new PCA9535(await NativeInterfaces.I2cDevice.CreateInterfaceAsync("I2C1", new I2cConnectionSettings(PCA9535.GetAddress(true, false, true))), await NativeInterfaces.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;
        }
예제 #3
0
 internal Servo(PCA9685 pwm, int channel) {
     this.pwm = pwm;
     this.channel = channel;
     this.position = 0.0;
     this.limitsSet = false;
 }
예제 #4
0
            internal Motor(PCA9685 pwm, int pwmChannel, int direction1Pin, int direction2Pin) {
                var gpioController = GpioController.GetDefault();

                this.speed = 0.0;
                this.pwm = pwm;
                this.disposed = false;

                this.direction1 = gpioController.OpenPin(direction1Pin);
                this.direction2 = gpioController.OpenPin(direction2Pin);
                this.pwmChannel = pwmChannel;

                this.direction1.SetDriveMode(GpioPinDriveMode.Output);
                this.direction2.SetDriveMode(GpioPinDriveMode.Output);
            }
예제 #5
0
 internal RgbLed(PCA9685 pwm, int redChannel, int greenChannel, int blueChannel) {
     this.color = Color.Black;
     this.pwm = pwm;
     this.redChannel = redChannel;
     this.greenChannel = greenChannel;
     this.blueChannel = blueChannel;
 }