[#XDUINO] Arduino vs Netduino vs Gadgeteer (III) el ejemplo con Netduino

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

5 thoughts on “[#XDUINO] Arduino vs Netduino vs Gadgeteer (III) el ejemplo con Netduino

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.