Ejemplo n.º 1
0
        public static void Run(string[] args)
        {
            Console.WriteLine("Nusbio initialization");
            var serialNumber = Nusbio.Detect();

            if (serialNumber == null) // Detect the first Nusbio available
            {
                Console.WriteLine("nusbio not detected");
                return;
            }

            var sclPin = NusbioGpio.Gpio0;             // White
            var sdaPin = NusbioGpio.Gpio1;             // Green

            // With the Nusbio Adafruit I2C Adapter we need to reverse sda and scl
            // So we can plug the IS31FL3731 in the adpater
            var nusbioAdafruitI2CAdadpater = !true;

            if (nusbioAdafruitI2CAdadpater)
            {
                sclPin = NusbioGpio.Gpio1;
                sdaPin = NusbioGpio.Gpio0;
            }

            // The chip IS31FL3731 is I2C 400 000 Hz
            // http://www.issi.com/WW/pdf/31FL3731.pdf
            // Nusbio default is 912 600 baud which is
            Nusbio.BaudRate = IS31FL3731.MAX_BAUD_RATE / 8;

            using (var nusbio = new Nusbio(serialNumber))
            {
                var ledMatrix16x9 = new IS31FL3731(nusbio, sdaPin, sclPin);
                if (!ledMatrix16x9.Begin())
                {
                    Console.WriteLine("Led matrix not detected");
                    return;
                }

                Cls(nusbio);
                while (nusbio.Loop())
                {
                    if (Console.KeyAvailable)
                    {
                        var k = Console.ReadKey(true).Key;
                        if (k == ConsoleKey.B)
                        {
                            BarScrollDemo(ledMatrix16x9);
                            Cls(nusbio);
                        }
                        if (k == ConsoleKey.I)
                        {
                            IntensistyScrollingDemo(ledMatrix16x9);
                            Cls(nusbio);
                        }
                        if (k == ConsoleKey.T)
                        {
                            IntensistyDemo(ledMatrix16x9);
                            Cls(nusbio);
                        }
                        if (k == ConsoleKey.L)
                        {
                            LandscapeDemo(ledMatrix16x9);
                            Cls(nusbio);
                        }
                        if (k == ConsoleKey.Q)
                        {
                            nusbio.ExitLoop();
                        }
                    }
                }
            }
            Console.Clear();
        }