Exemple #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
            byte EEPROM_I2C_ADDR   = 0x50; // Microship 24LC256 = 32k
            byte MCP23008_I2C_ADDR = 0x20; // Microship MCP 23008 = 8 gpios

            using (var nusbio = new Nusbio(serialNumber)) // , 
            {
                _eeprom = new EEPROM_24LC256(nusbio, sdaPin, sclPin);
                _eeprom.Begin(EEPROM_I2C_ADDR);
                _mcp = new MCP23008(nusbio, sdaPin, sclPin, gpioStartIndex:9);
                _mcp.Begin(MCP23008_I2C_ADDR);

                Cls(nusbio);

                var standardsGpios = new List<NusbioGpio>() {
                    NusbioGpio.Gpio2,
                    NusbioGpio.Gpio3,
                    NusbioGpio.Gpio4,
                    NusbioGpio.Gpio5,
                    NusbioGpio.Gpio6,
                    NusbioGpio.Gpio7
                };
                var extendedGpios = new List<string>() {
                    NusbioGpioEx.Gpio9 , 
                    NusbioGpioEx.Gpio10, 
                    NusbioGpioEx.Gpio11, 
                    NusbioGpioEx.Gpio12, 
                    NusbioGpioEx.Gpio13, 
                    NusbioGpioEx.Gpio14, 
                    NusbioGpioEx.Gpio15, 
                    NusbioGpioEx.Gpio16
                };

                var g = NusbioGpioEx.Gpio16;
                _mcp.SetPinMode(g, PinMode.Input);

                while(nusbio.Loop())
                {
                    //if (_mcp.GPIOS[g].DigitalRead() == PinState.High)
                    //{
                    //    ConsoleEx.Write(0, 10, string.Format("[{0}] Button Down", DateTime.Now), ConsoleColor.Cyan);
                    //}
                    //else
                    //{
                    //    ConsoleEx.Write(0, 10, string.Format("[{0}] Button Up     ", DateTime.Now), ConsoleColor.Cyan);
                    //}

                    foreach (var eg in extendedGpios) { 

                        _mcp.GPIOS[eg].State = !_mcp.GPIOS[eg].State;
                        _mcp.GPIOS[eg].DigitalWrite(_mcp.GPIOS[eg].State);
                    }
                    foreach (var sg in standardsGpios) { 

                        nusbio.GPIOS[sg].State = !nusbio.GPIOS[sg].State;
                        nusbio.GPIOS[sg].DigitalWrite(nusbio.GPIOS[sg].State);
                    }
                    TimePeriod.Sleep(300);

                    if (Console.KeyAvailable)
                    {
                        var k = Console.ReadKey(true).Key;
                        if (k == ConsoleKey.D0)
                         {
                            ReadEEPromPerPage(10, nusbio);
                            Cls(nusbio);
                        }
                        
                        if (k == ConsoleKey.A)
                        {
                            ReadEEPromPerPage(512, nusbio);
                            Cls(nusbio);
                        }
                        if (k == ConsoleKey.Q) {
                            _mcp.AllOff();
                            break;
                        }
                    }
                }
            }
            Console.Clear();
        }
Exemple #2
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 clockPin    = NusbioGpio.Gpio0; // White
            var dataOutPin  = NusbioGpio.Gpio1; // Green
            var dataInPin   = NusbioGpio.Gpio2; // Orange
            
            byte EEPROM1_WR = 80;//0xA0;

            using (var nusbio = new Nusbio(serialNumber)
                //, inputGpios: new List<NusbioGpio>() {dataInPin})
                ) // , 
            {
                Cls(nusbio);

                _eeprom = new EEPROM_24LC256(nusbio, dataOutPin, clockPin);
                _eeprom.Begin(EEPROM1_WR);
                
                while(nusbio.Loop())
                {
                    if (Console.KeyAvailable)
                    {
                        var k = Console.ReadKey(true).Key;
                            
                        if (k == ConsoleKey.W)
                        {
                            var a = ConsoleEx.Question(23, "Write 32k now Y)es, N)o", new List<char>()  { 'Y', 'N' });
                            if (a == 'Y') {
                                WriteEEPROMPage(512);
                            }
                        }

                        if (k == ConsoleKey.R)
                        {
                            ReadAndVerifyEEPROMPage(10);
                            Cls(nusbio);
                        }
                        if (k == ConsoleKey.A)
                        {
                            ReadAndVerifyEEPROMPage(512);
                        }
                        if (k == ConsoleKey.Q) break;

                        Cls(nusbio);
                    }
                }
            }
            Console.Clear();
        }