image

Serie

  1. Introducción. https://elbruno.com/2013/07/13/xduino-arduino-vs-netduino-vs-gadgeteer-i/
  2. Ejemplo con Arduino. https://elbruno.com/2013/07/15/xduino-arduino-vs-netduino-vs-netgadgeeter-ii-usamos-el-arduino/
  3. Comenzando con Netduino. https://elbruno.com/2013/07/16/xduino-arduino-vs-netduino-vs-netgadgeeter-iii-empezamos-con-netduino/

Buenas.

Después de la introducción de ayer al desarrollo con Netduino, hoy veremos la implementación de la aplicación utilizando el Netduino. En el caso del Netduino 2 podemos implementar la aplicación utilizando la board sin necesidad de conectar sensores externos, ya que la misma tiene un BUTTON y un LED.

Creando un nuevo proyecto del tipo Netduino 2 Application y cambiando el target a NETMF 4.2 en las propiedades del protecto

image

El código quedaría de la siguiente forma:

   1: using System.Threading;

   2: using Microsoft.SPOT.Hardware;

   3: using SecretLabs.NETMF.Hardware.Netduino;

   4:  

   5: namespace NetduinoApplication3

   6: {

   7:     public class Program

   8:     {

   9:         private static InterruptPort _boardButton;

  10:         private static OutputPort _boardLed;

  11:         private static bool _ledOn;

  12:  

  13:         public static void Main()

  14:         {

  15:             _boardLed = new OutputPort(Pins.ONBOARD_LED, false);

  16:             _boardButton = new InterruptPort(Pins.ONBOARD_BTN, 

  17:                 false, Port.ResistorMode.Disabled, 

  18:                 Port.InterruptMode.InterruptEdgeLow);

  19:             _boardButton.OnInterrupt += boardButton_OnInterrupt;

  20:             while (true)

  21:                 Thread.Sleep(Timeout.Infinite);

  22:         }

  23:  

  24:         static void boardButton_OnInterrupt(uint data1, uint data2, System.DateTime time)

  25:         {

  26:             _boardLed.Write(_ledOn);

  27:             _ledOn = !_ledOn;

  28:         }

  29:     }

  30: }

Y la aplicación funciona:

Sin embargo lo interesante de este post, es mostrar como podemos hacer lo mismo utilizando la misma bandeja Groove que usamos en el Netduino. En el siguiente ejemplo utilizaremos este hardware:

Como en el ejemplo del Arduino de hace unos días respetaré los Pins donde conecto los sensores, el PIN 6 para el LED y el PIN 9 para el BUTTON (líneas 15 y 16). Además en este ejemplo cambio la forma en la que cambio el estado del LED, el código es el siguiente:

   1: using System.Threading;

   2: using Microsoft.SPOT;

   3: using Microsoft.SPOT.Hardware;

   4: using SecretLabs.NETMF.Hardware.Netduino;

   5:  

   6: namespace NetduinoApplication3

   7: {

   8:     public class Program

   9:     {

  10:         private static InterruptPort _boardButton;

  11:         private static OutputPort _boardLed;

  12:  

  13:         public static void Main()

  14:         {

  15:             _boardLed = new OutputPort(Pins.GPIO_PIN_D6, false);

  16:             _boardButton = new InterruptPort(Pins.GPIO_PIN_D9, 

  17:                 false, Port.ResistorMode.Disabled, 

  18:                 Port.InterruptMode.InterruptEdgeLow);

  19:             _boardButton.OnInterrupt += boardButton_OnInterrupt;

  20:             while (true)

  21:                 Thread.Sleep(Timeout.Infinite);

  22:         }

  23:  

  24:         static void boardButton_OnInterrupt(uint data1, uint data2, System.DateTime time)

  25:         {

  26:             _boardLed.Write(!_boardLed.Read());

  27:         }

  28:     }

  29: }

Y aprovechando el Groove la aplicación se ensambla en pocos segundos y funciona:

Saludos @ La Finca

El Bruno

image image image Google

Discover more from El Bruno

Subscribe now to keep reading and get access to the full archive.

Continue reading