Exemple #1
0
        /// <summary>
        /// Sets the speed at which the DC Motor rotates.
        /// </summary>
        /// <param name="speed">A value between -1 and 1.</param>
        public static void SetSpeed(double speed)
        {
            if ((speed > 1 | speed < -1))
            {
                throw new ArgumentOutOfRangeException("speed", "speed must be between -1 and 1.");
            }

            if ((speed == 1.0))
            {
                speed = 0.99;
            }

            if ((speed == -1.0))
            {
                speed = -0.99;
            }


            if ((_started))
            {
                _pwm.Stop();
            }

            _pwm.DutyCycle = speed;
            _pwm.Start();
            _started = true;
        }
        /// <summary>
        /// Play a frequency for a specified duration
        /// </summary>
        /// <param name="frequency">The frequency in hertz of the tone to be played</param>
        /// <param name="duration">How long the note is played in milliseconds, if durration is 0, tone plays indefinitely</param>
        public void PlayTone(float frequency, int duration = 0)
        {
            if (frequency <= 0)
            {
                throw new System.Exception("frequency must be greater than 0");
            }

            if (!_isPlaying)
            {
                _isPlaying = true;

                var period = (uint)(1000000 / frequency);

                _pwm.Period   = period;
                _pwm.Duration = period / 2;

                _pwm.Start();

                if (duration > 0)
                {
                    Thread.Sleep(duration);
                    _pwm.Stop();
                }

                _isPlaying = false;
            }
        }
Exemple #3
0
        public static void Main()
        {
            AnalogInput capt        = new AnalogInput((Cpu.AnalogChannel)Cpu.AnalogChannel.ANALOG_0);
            OutputPort  dir         = new OutputPort(FEZSpider.Socket8.Pin9, true);
            InputPort   microswitch = new InputPort(FEZSpider.Socket4.Pin3, false, Port.ResistorMode.PullDown);

            double frequence       = 38000; // Période en microseconde
            double rapportCyclique = 0.5;   // Période en microseconde

            PWM motorDriver = new PWM(FEZSpider.Socket8.Pwm7, frequence, rapportCyclique, false);

            motorDriver.Stop();


            while (true)
            {
                if (microswitch.Read())
                {
                    motorDriver.Stop();
                }

                Debug.Print("Distance : " + capt.Read().ToString());

                Debug.Print(microswitch.Read().ToString());
                Thread.Sleep(50);
            }
        }
Exemple #4
0
 /// <summary>
 /// Sets the frequency and duty cycle of the <see cref="PWMOutput"/> interface and starts the PWM signal.
 /// </summary>
 /// <param name="frequency">Required frequency in Hertz.</param>
 /// <param name="dutyCycle">Duty cycle from 0-1.</param>
 public void Set(int frequency, double dutyCycle)
 {
     if (frequency < 0)
     {
         throw new ArgumentException("frequency");
     }
     if (dutyCycle < 0 || dutyCycle > 1)
     {
         throw new ArgumentException("dutyCycle");
     }
     if (pwm == null)
     {
         pwm = new PWM(pwmChannel, frequency, dutyCycle, invert);
         pwm.Start();
         started = true;
     }
     else
     {
         if (started)
         {
             pwm.Stop();
         }
         pwm.Frequency = frequency;
         pwm.DutyCycle = dutyCycle;
         pwm.Start();
         started = true;
     }
 }
Exemple #5
0
 private void SetTone(Tone tone)
 {
     _buzzPwm.Stop();
     if (Math.Abs(tone.Freq) < Double.Epsilon)
     {
         return;
     }
     _buzzPwm.Frequency = ((int)tone.Freq);
     _buzzPwm.DutyCycle = 0.5;
     _buzzPwm.Start();
 }
 public void Play(int freq_Hz, int duration_mSec)
 {
     myPWM.Stop();
     if (freq_Hz != 0)
     {
         myPWM.Frequency = freq_Hz;
         myPWM.Start();
     }
     Thread.Sleep(duration_mSec);
     myPWM.Stop();
     Thread.Sleep(tempo / 2);
 }
Exemple #7
0
        public void go_clockwise_one_tick()
        {
            servo.Duration = (uint)1300;
            servo.Start();
            Thread.Sleep(20);
            servo.Stop();
            Thread.Sleep(200);
            _rightTicksTaken++;

            // Debug.Print("Right ticks taken " + _rightTicksTaken);
            // Debug.Print("Total Tick count: " + get_ticks());
        }
Exemple #8
0
 void allarm_Tick(GT.Timer timer)
 {
     if (!StopAllarm)
     {
         buzzer.Frequency = 500;
         Thread.Sleep(200);
         buzzer.Frequency = 1000;
         Thread.Sleep(200);
     }
     if (StopAllarm)
     {
         buzzer.Stop();
     }
 }
Exemple #9
0
        public static void Rick()
        {
            PWM myPWM = new PWM(FEZSpiderII.Socket11.Pwm9, frequence, 0.5, false);

            myPWM.Start();
            myPWM.Frequency = Fa;
            Thread.Sleep(750);
            myPWM.Frequency = Sol;
            Thread.Sleep(750);
            myPWM.Frequency = Do;
            Thread.Sleep(500);
            myPWM.Frequency = Sol;
            Thread.Sleep(750);
            myPWM.Frequency = La;
            Thread.Sleep(750);

            myPWM.Frequency = Do1;
            Thread.Sleep(180);
            myPWM.Frequency = Sib;
            Thread.Sleep(180);
            myPWM.Frequency = La;
            Thread.Sleep(300);

            myPWM.Frequency = Fa;
            Thread.Sleep(750);
            myPWM.Frequency = Sol;
            Thread.Sleep(750);
            myPWM.Frequency = Do;
            Thread.Sleep(1000);


            myPWM.Stop();
        }
Exemple #10
0
        private void SetSpeed(PWM motor, OutputPort direction, int speed, bool isLeft)
        {
            motor.Stop();

            motor.Frequency = MOTOR_BASE_FREQUENCY;

            if (speed == 0)
            {
                direction.Write(false);
                motor.DutyCycle = 0.01;
            }
            else if (speed < 0)
            {
                direction.Write(isLeft ? true : false);
                motor.DutyCycle = speed / -100.0;

                motor.Start();
            }
            else
            {
                direction.Write(isLeft ? false : true);
                motor.DutyCycle = speed / 100.0;

                motor.Start();
            }
        }
Exemple #11
0
 public void Disable()
 {
     if (controller != null)
     {
         controller.Stop();
     }
 }
Exemple #12
0
 /// <summary>
 /// Stops the Servo Motor.
 /// </summary>
 public static void Deacticvate()
 {
     if (_started)
     {
         _pwm.Stop();
         _started = false;
     }
 }
Exemple #13
0
 /// <summary>
 /// Stops the buzzer from playing.
 /// </summary>
 public static void Stop()
 {
     if (_started)
     {
         _pwm.Stop();
         _started = false;
     }
 }
Exemple #14
0
 protected override void ActuatorCleanup()
 {
     if (_piezo == null)
     {
         return;
     }
     _piezo.Stop();
     _piezo.Dispose();
 }
Exemple #15
0
 void UpdateMotors(float motorLeftValue, float motorRightValue)
 {
     motorPwmLeft.Stop();
     motorPwmRight.Stop();
     motorPwmLeft.DutyCycle  = motorLeftValue;
     motorPwmRight.DutyCycle = motorRightValue;
     motorPwmLeft.Start();
     motorPwmRight.Start();
 }
 protected override void ActuatorCleanup()
 {
     if (_servoMotor == null)
     {
         return;
     }
     _servoMotor.DutyCycle = 0;
     _servoMotor.Stop();
     _servoMotor.Dispose();
 }
Exemple #17
0
 /// <summary>
 /// Moves the motor in the specified direction.
 /// </summary>
 /// <param name="direction">The direction : forward or backward.</param>
 /// <param name="speed">The speed, from 0.0 to 1.0 (100%)</param>
 /// <param name="rampTime">The ramp time if needed, in milliseconds. It's the time that will be taken to start from speed 0.0 to "Speed".</param>
 /// <example>
 /// <code language="C#">
 ///     // Moves the motor forward with a ramptime to full speed of 2 sec
 ///     _motor.Move(DCMotorClick.Directions.Forward, 1.0, 2000);
 /// </code>
 /// </example>
 public void Move(Directions direction, Double speed = 1.0, Int32 rampTime = 0)
 {
     if (IsMoving)
     {
         _pwmOut.Stop(); Thread.Sleep(200);
     }
     _select2.Write(direction == Directions.Backward);
     if (rampTime == 0)
     {
         _pwmOut.DutyCycle = speed; IsMoving = true; _pwmOut.Start();
     }
     else
     {
         _rampIncrement = (Int32)(speed / 0.05);
         _rampWaitTime  = (Int32)(rampTime * 0.05 / speed);
         IsMoving       = true;
         new Thread(RampUp).Start();
     }
 }
Exemple #18
0
        static void TestPWM()
        {
            var pin = HardwareProvider.HwProvider.GetPwmPinForChannel(Cpu.PWMChannel.PWM_0);

            Debug.Print("PwmPinForChannel:" + pin);
            var count = HardwareProvider.HwProvider.GetPWMChannelsCount();

            Debug.Print("PWMChannelsCount:" + count);

            //如果通道共用同一时钟,则周期以第一个的设置为准
            var pwm0 = new PWM(Cpu.PWMChannel.PWM_0, 500, 250, PWM.ScaleFactor.Microseconds, false);
            // 可以得到稳定的1M输出,注意调整逻辑分析仪的采样频率
            //var pwm1 = new PWM(Cpu.PWMChannel.PWM_4, 1000000, 0.5, false);
            var pwm1 = new PWM(Cpu.PWMChannel.PWM_4, 2, 1, PWM.ScaleFactor.Microseconds, false);

            Debug.Print("Period:" + pwm0.Period);
            Debug.Print("Duration:" + pwm0.Duration);

            var led = new OutputPort(ledPins[0], true);

            for (uint i = 1; i < 100; i++)
            {
                led.Write(!led.Read());

                Debug.Print("pwm0 Start");
                //pwm0.Duration = 5;
                pwm0.Start();
                Thread.Sleep(500);
                Debug.Print("pwm0 Stop");
                pwm0.Stop();

                Debug.Print("pwm1 Start");
                //pwm1.Duration = i;
                pwm1.Start();
                Thread.Sleep(500);
                Debug.Print("pwm1 Stop");
                pwm1.Stop();
                Thread.Sleep(300);
            }

            //pwm1.Start();
            while (true)
            {
                var b = led.Read();
                led.Write(!b);

                Thread.Sleep(100);
            }
            //pwm0.Stop();
            //pwm1.Stop();
        }
Exemple #19
0
// -------------------------------- Sensori -------------------------------- //
        private void InitSensors()
        {
            Mainboard.SetDebugLED(true);
            Gadgeteer.Socket socket = Gadgeteer.Socket.GetSocket(8, true, null, null);
            buzzer = new PWM(Cpu.PWMChannel.PWM_4, 1000, 0.5, false);
            buzzer.Stop();
            orizzontal_mov         = extender.CreatePwmOutput(Gadgeteer.Socket.Pin.Seven);
            vertical_mov           = extender.CreatePwmOutput(Gadgeteer.Socket.Pin.Nine);
            current_orizzontal_pos = 0.075;
            current_vertical_pos   = 0.075;
            orizzontal_mov.Set(50, current_orizzontal_pos);
            Thread.Sleep(2000);
            vertical_mov.Set(50, current_vertical_pos);
        }
Exemple #20
0
 public static void SendBit(PWM infraredOut, char c)
 {
     if (c == '1')
     {
         var startTime = DateTime.Now;
         infraredOut.Start();
         while (startTime.AddMilliseconds(sleep) > DateTime.Now)
         {
         }
         infraredOut.Stop();
     }
     else
     {
         var startTime = DateTime.Now;
         while (startTime.AddMilliseconds(sleep) > DateTime.Now)
         {
         }
         startTime = DateTime.Now;
     }
 }
Exemple #21
0
 public static void SendBit(PWM infraredOut, OutputPort led, char c)
 {
     if (c == '1')
     {
         var startTime = DateTime.Now;
         infraredOut.Start();
         while (startTime.AddMilliseconds(200) > DateTime.Now)
         {
             led.Write(true);
             //noop
         }
         infraredOut.Stop();
     }
     else
     {
         var startTime = DateTime.Now;
         while (startTime.AddMilliseconds(200) > DateTime.Now)
         {
             led.Write(false);
             //noop
         }
         startTime = DateTime.Now;
     }
 }
        public static void Main()
        {
            // Create a PWM signal on Pin 3 @ 1000Hz and a 50% duty cycle
            PWM dutyCyclePwm = new PWM(PWMChannels.PWM_PIN_D3, 1000, .5, false);
            // note that only certain pins support PWM. the PWMChannels enumeration
            // lists the ones that do.

            // Create a PWM signal on the onboard LED by specifying the period and duration
            // in milliseconds. this will be a 33% duty cycle (on 1/3rd of the time)
            PWM periodDurationPwm = new PWM(PWMChannels.PWM_ONBOARD_LED,
                                            3, 1, PWM.ScaleFactor.Milliseconds, false);

            // alternate between the 50% duty cycle and the 33% duty cycle every second
            while (true)
            {
                dutyCyclePwm.Start();
                Thread.Sleep(1000);
                dutyCyclePwm.Stop();

                periodDurationPwm.Start();
                Thread.Sleep(1000);
                periodDurationPwm.Stop();
            }
        }
Exemple #23
0
 private static void InitialiseLeds()
 {
     RedLedDutyCyclePwm.Stop();
     YellowLedDutyCyclePwm.Stop();
     GreenLedDutyCyclePwm.Stop();
 }
Exemple #24
0
 public void Stop()
 {
     ThrowIfDisposed();
     _pwm.Stop();
     _isActive = false;
 }
        public static void Main()
        {
            var songs = new[]
            {
                "The Simpsons:d=4,o=5,b=160:c.6,e6,f#6,8a6,g.6,e6,c6,8a,8f#,8f#,8f#,2g,8p,8p,8f#,8f#,8f#,8g,a#.,8c6,8c6,8c6,c6"
                ,
                "Indiana:d=4,o=5,b=250:e,8p,8f,8g,8p,1c6,8p.,d,8p,8e,1f,p.,g,8p,8a,8b,8p,1f6,p,a,8p,8b,2c6,2d6,2e6,e,8p,8f,8g,8p,1c6,p,d6,8p,8e6,1f.6,g,8p,8g,e.6,8p,d6,8p,8g,e.6,8p,d6,8p,8g,f.6,8p,e6,8p,8d6,2c6"
                ,
                "TakeOnMe:d=4,o=4,b=160:8f#5,8f#5,8f#5,8d5,8p,8b,8p,8e5,8p,8e5,8p,8e5,8g#5,8g#5,8a5,8b5,8a5,8a5,8a5,8e5,8p,8d5,8p,8f#5,8p,8f#5,8p,8f#5,8e5,8e5,8f#5,8e5,8f#5,8f#5,8f#5,8d5,8p,8b,8p,8e5,8p,8e5,8p,8e5,8g#5,8g#5,8a5,8b5,8a5,8a5,8a5,8e5,8p,8d5,8p,8f#5,8p,8f#5,8p,8f#5,8e5,8e5"
                ,
                "Entertainer:d=4,o=5,b=140:8d,8d#,8e,c6,8e,c6,8e,2c.6,8c6,8d6,8d#6,8e6,8c6,8d6,e6,8b,d6,2c6,p,8d,8d#,8e,c6,8e,c6,8e,2c.6,8p,8a,8g,8f#,8a,8c6,e6,8d6,8c6,8a,2d6"
                ,
                "Muppets:d=4,o=5,b=250:c6,c6,a,b,8a,b,g,p,c6,c6,a,8b,8a,8p,g.,p,e,e,g,f,8e,f,8c6,8c,8d,e,8e,8e,8p,8e,g,2p,c6,c6,a,b,8a,b,g,p,c6,c6,a,8b,a,g.,p,e,e,g,f,8e,f,8c6,8c,8d,e,8e,d,8d,c"
                ,
                "Xfiles:d=4,o=5,b=125:e,b,a,b,d6,2b.,1p,e,b,a,b,e6,2b.,1p,g6,f#6,e6,d6,e6,2b.,1p,g6,f#6,e6,d6,f#6,2b.,1p,e,b,a,b,d6,2b.,1p,e,b,a,b,e6,2b.,1p,e6,2b."
                ,
                "Looney:d=4,o=5,b=140:32p,c6,8f6,8e6,8d6,8c6,a.,8c6,8f6,8e6,8d6,8d#6,e.6,8e6,8e6,8c6,8d6,8c6,8e6,8c6,8d6,8a,8c6,8g,8a#,8a,8f"
                ,
                "20thCenFox:d=16,o=5,b=140:b,8p,b,b,2b,p,c6,32p,b,32p,c6,32p,b,32p,c6,32p,b,8p,b,b,b,32p,b,32p,b,32p,b,32p,b,32p,b,32p,b,32p,g#,32p,a,32p,b,8p,b,b,2b,4p,8e,8g#,8b,1c#6,8f#,8a,8c#6,1e6,8a,8c#6,8e6,1e6,8b,8g#,8a,2b"
                ,
                "Bond:d=4,o=5,b=80:32p,16c#6,32d#6,32d#6,16d#6,8d#6,16c#6,16c#6,16c#6,16c#6,32e6,32e6,16e6,8e6,16d#6,16d#6,16d#6,16c#6,32d#6,32d#6,16d#6,8d#6,16c#6,16c#6,16c#6,16c#6,32e6,32e6,16e6,8e6,16d#6,16d6,16c#6,16c#7,c.7,16g#6,16f#6,g#.6"
                ,
                "MASH:d=8,o=5,b=140:4a,4g,f#,g,p,f#,p,g,p,f#,p,2e.,p,f#,e,4f#,e,f#,p,e,p,4d.,p,f#,4e,d,e,p,d,p,e,p,d,p,2c#.,p,d,c#,4d,c#,d,p,e,p,4f#,p,a,p,4b,a,b,p,a,p,b,p,2a.,4p,a,b,a,4b,a,b,p,2a.,a,4f#,a,b,p,d6,p,4e.6,d6,b,p,a,p,2b"
                ,
                "StarWars:d=4,o=5,b=45:32p,32f#,32f#,32f#,8b.,8f#.6,32e6,32d#6,32c#6,8b.6,16f#.6,32e6,32d#6,32c#6,8b.6,16f#.6,32e6,32d#6,32e6,8c#.6,32f#,32f#,32f#,8b.,8f#.6,32e6,32d#6,32c#6,8b.6,16f#.6,32e6,32d#6,32c#6,8b.6,16f#.6,32e6,32d#6,32e6,8c#6"
                ,
                "GoodBad:d=4,o=5,b=56:32p,32a#,32d#6,32a#,32d#6,8a#.,16f#.,16g#.,d#,32a#,32d#6,32a#,32d#6,8a#.,16f#.,16g#.,c#6,32a#,32d#6,32a#,32d#6,8a#.,16f#.,32f.,32d#.,c#,32a#,32d#6,32a#,32d#6,8a#.,16g#.,d#"
                ,
                "TopGun:d=4,o=4,b=31:32p,16c#,16g#,16g#,32f#,32f,32f#,32f,16d#,16d#,32c#,32d#,16f,32d#,32f,16f#,32f,32c#,16f,d#,16c#,16g#,16g#,32f#,32f,32f#,32f,16d#,16d#,32c#,32d#,16f,32d#,32f,16f#,32f,32c#,g#"
                ,
                "A-Team:d=8,o=5,b=125:4d#6,a#,2d#6,16p,g#,4a#,4d#.,p,16g,16a#,d#6,a#,f6,2d#6,16p,c#.6,16c6,16a#,g#.,2a#"
                ,
                "Flinstones:d=4,o=5,b=40:32p,16f6,16a#,16a#6,32g6,16f6,16a#.,16f6,32d#6,32d6,32d6,32d#6,32f6,16a#,16c6,d6,16f6,16a#.,16a#6,32g6,16f6,16a#.,32f6,32f6,32d#6,32d6,32d6,32d#6,32f6,16a#,16c6,a#,16a6,16d.6,16a#6,32a6,32a6,32g6,32f#6,32a6,8g6,16g6,16c.6,32a6,32a6,32g6,32g6,32f6,32e6,32g6,8f6,16f6,16a#.,16a#6,32g6,16f6,16a#.,16f6,32d#6,32d6,32d6,32d#6,32f6,16a#,16c.6,32d6,32d#6,32f6,16a#,16c.6,32d6,32d#6,32f6,16a#6,16c7,8a#.6"
                ,
                "Jeopardy:d=4,o=6,b=125:c,f,c,f5,c,f,2c,c,f,c,f,a.,8g,8f,8e,8d,8c#,c,f,c,f5,c,f,2c,f.,8d,c,a#5,a5,g5,f5,p,d#,g#,d#,g#5,d#,g#,2d#,d#,g#,d#,g#,c.7,8a#,8g#,8g,8f,8e,d#,g#,d#,g#5,d#,g#,2d#,g#.,8f,d#,c#,c,p,a#5,p,g#.5,d#,g#"
                ,
                "Gadget:d=16,o=5,b=50:32d#,32f,32f#,32g#,a#,f#,a,f,g#,f#,32d#,32f,32f#,32g#,a#,d#6,4d6,32d#,32f,32f#,32g#,a#,f#,a,f,g#,f#,8d#"
                ,
                "Smurfs:d=32,o=5,b=200:4c#6,16p,4f#6,p,16c#6,p,8d#6,p,8b,p,4g#,16p,4c#6,p,16a#,p,8f#,p,8a#,p,4g#,4p,g#,p,a#,p,b,p,c6,p,4c#6,16p,4f#6,p,16c#6,p,8d#6,p,8b,p,4g#,16p,4c#6,p,16a#,p,8b,p,8f,p,4f#"
                ,
                "MahnaMahna:d=16,o=6,b=125:c#,c.,b5,8a#.5,8f.,4g#,a#,g.,4d#,8p,c#,c.,b5,8a#.5,8f.,g#.,8a#.,4g,8p,c#,c.,b5,8a#.5,8f.,4g#,f,g.,8d#.,f,g.,8d#.,f,8g,8d#.,f,8g,d#,8c,a#5,8d#.,8d#.,4d#,8d#."
                ,
                "LeisureSuit:d=16,o=6,b=56:f.5,f#.5,g.5,g#5,32a#5,f5,g#.5,a#.5,32f5,g#5,32a#5,g#5,8c#.,a#5,32c#,a5,a#.5,c#.,32a5,a#5,32c#,d#,8e,c#.,f.,f.,f.,f.,f,32e,d#,8d,a#.5,e,32f,e,32f,c#,d#.,c#"
                ,
                "MissionImp:d=16,o=6,b=95:32d,32d#,32d,32d#,32d,32d#,32d,32d#,32d,32d,32d#,32e,32f,32f#,32g,g,8p,g,8p,a#,p,c7,p,g,8p,g,8p,f,p,f#,p,g,8p,g,8p,a#,p,c7,p,g,8p,g,8p,f,p,f#,p,a#,g,2d,32p,a#,g,2c#,32p,a#,g,2c,a#5,8c,2p,32p,a#5,g5,2f#,32p,a#5,g5,2f,32p,a#5,g5,2e,d#,8d"
                ,
                "axelf2:d=4,o=5,b=125:e,8g.,8e,16e,8a,8e,8d,e,8b.,8e,16e,8c6,8b,8g,8e,8b,8e6,16e,8d,16d,8b4,8f#,e,2p,e,8g.,8e,16e,8a,8e,8d,e,8b.,8e,16e,8c6,8b,8g,8e,8b,8e6,16e,8d,16d,8b4,8f#,e"
                ,
                "StWars:d=4,o=5,b=160:8f,8f,8f,2a#.,2f.6,8d#6,8d6,8c6,2a#.6,f.6,8d#6,8d6,8c6,2a#.6,f.6,8d#6,8d6,8d#6,2c6,p,8f,8f,8f,2a#.,2f.6,8d#6,8d6,8c6,2a#.6,f.6,8d#6,8d6,8c6,2a#.6,f.6,8d#6,8d6,8d#6,2c6"
                ,
                "PacMan:d=4,o=5,b=90:32b,32p,32b6,32p,32f#6,32p,32d#6,32p,32b6,32f#6,16p,16d#6,16p,32c6,32p,32c7,32p,32g6,32p,32e6,32p,32c7,32g6,16p,16e6,16p,32b,32p,32b6,32p,32f#6,32p,32d#6,32p,32b6,32f#6,16p,16d#6,16p,32d#6,32e6,32f6,32p,32f6,32f#6,32g6,32p,32g6,32g#6,32a6,32p,32b.6"
            };

            var pwm    = new PWM(Cpu.PWMChannel.PWM_4, 50, 0, false);
            var player = new RttlPlayer(new PwmSpeaker(pwm));

            foreach (string song in songs)
            {
                player.Play(song);
            }

            pwm.Stop();
        }
Exemple #26
0
 public void Stop()
 {
     //this.Dispose();
     pwm.Stop();
 }
Exemple #27
0
        static void Main(string[] args)
        {
            int result = GPIO_Init.WiringPiSetup();

            if (result == -1)
            {
                Console.WriteLine("WiringPi init failed!");
            }
            else
            {
                Console.WriteLine("WiringPi init success!");

                //int R_pin = 27;
                //int G_pin = 28;
                //int B_pin = 29;
                int W_pin = 21;
                //int Fan_pin = 24;
                //soft pins 21 22 24 25 26 27 28 29
                //hardware pins 23

                PWM pwm = new PWM();

                //pwm.Attach(R_pin);
                //pwm.Attach(G_pin);
                //pwm.Attach(B_pin);
                pwm.Attach(W_pin);
                //pwm.Write(W_pin, 1024);
                //pwm.Attach(Fan_pin);
                //string s = "";
                Random rd = new Random();
                while (!Console.KeyAvailable)
                {
                    //if (Console.KeyAvailable)
                    //{
                    //    s += Console.ReadKey().KeyChar;
                    //    if (s.EndsWith("\r") || s.EndsWith("\n"))
                    //    {
                    //        int p = 0;
                    //        if (int.TryParse(s, out p))
                    //        {
                    //            p = Math.Max(0, Math.Min(pwm.PWM_MAX, p));
                    //            pwm.Write(pin, p);
                    //            Console.WriteLine("PWM set to: " + p + "/" + pwm.PWM_MAX);
                    //        }
                    //        s = "";
                    //    }
                    //}
                    Console.WriteLine("Fading In");
                    for (int i = 0; i <= pwm.PWM_MAX; i += 8)
                    {
                        pwm.Write(W_pin, i);
                        if (i % 128 == 0)
                        {
                            Console.Write(i + ", ");
                        }
                        GPIO.Timing.delay(40);
                    }

                    Console.WriteLine();
                    Console.WriteLine("Fading Out");
                    if (Console.KeyAvailable)
                    {
                        break;
                    }

                    for (int i = pwm.PWM_MAX; i >= 0; i -= 8)
                    {
                        pwm.Write(W_pin, i);
                        if (i % 128 == 0)
                        {
                            Console.Write(i + ", ");
                        }
                        GPIO.Timing.delay(40);
                    }

                    Console.WriteLine();
                    Console.Write("10 Random Values: ");
                    if (Console.KeyAvailable)
                    {
                        break;
                    }

                    for (int i = 10; i >= 0; i--)
                    {
                        int r = rd.Next(0, pwm.PWM_MAX);
                        pwm.Write(W_pin, r);
                        Console.Write(r + ", ");
                        GPIO.Timing.delay(200);
                    }
                    Console.WriteLine();
                }
                pwm.Stop();
            }
        }
Exemple #28
0
 public void Halt()
 {
     _leftPWM.Stop();
     _rightPWM.Stop();
 }
Exemple #29
0
 public static void Halt()
 {
     leftPWM.Stop();
     rightPWM.Stop();
 }