Control de pulsadores con Netduino


 

 

 

 

 

Una de las preguntas más comúnmente hechas para comenzar Netduino 2 usuarios es cómo utilizar un botón. Para los dos ejemplos incluidos aquí vamos a usar el botón de encendido y el lede  internos de la placa .

 

Hay dos formas básicas para utilizar los puertos de entrada digital en el Netduino 2. Podemos configurarlo como un puerto de entrada, donde tendremos que comprobar continuamente el valor del puerto a continuación, realizar una acción basada en este valor o podemos utilizarlo como un puerto de interrupción donde vamos a definir un controlador de evento que se basan en una cambio de valor.

 

Para nuestro primer ejemplo este sencillo programa se iluminará el LED a bordo cuando se presiona el botón del tablero de. Esto se hace comprobando constantemente el estado del puerto de entrada en el bucle while. Cuando se pulsa el botón, el valor es alto y cuando se suelta el valor es bajo. Este valor se pasa directamente al puerto LED.

 

Observe filtro falla del InputPort se fija por falso. El filtro de interferencia se usa para prevenir el rebote del interruptor, que no es un problema en este caso. También hemos establecido el modo Resistencia interno ya que el botón a bordo Netduino 2 tiene una resistencia pulldown.

 

El MCU tiene la capacidad de fijar para pull-up o en modo descolgante ya que tiene ambas capacidades incorporadas para el pasador. Desde que usamos una resistencia pulldown para tirar de la línea de baja y el botón se conecta a la línea de 3,3 V, el botón seguirá siendo baja presionado momento en el que pasará a ALTO luego de vuelta a BAJO cuando se suelta.

?

1 /// <summary>
2 /// Button Tutorial for the Netduino 2 and Netduino Plus 2
3 /// </summary>
4 public class Program
5 {
6     /// <summary>
7     /// Main method runs on startup
8     /// </summary>
9     public static void Main()
10     {
11         // Define a new Output Pin to the Onboard LED
12         // NOTE: Setting initial state of the pin to "false"
13         OutputPort onboardLED = new OutputPort(Pins.ONBOARD_LED, false);
14
15         // Define a new Input Pin to the Onboard Switch
16         // NOTE: Set glitch filter to "false".  This is only needed to
17         //       prevent switch bounce and in this case not needed.
18         // NOTE: The pullup on the MCU is disabled and the onboard switch
19         //       has a pulldown resistor so we set this to "Disabled".
20         // NOTE: The switch has a pulldown resistor and is connected to 3.3 (logic HIGH)
21         //       so the switch will show HIGH when pressed or LOW when released.
22         InputPort button = new InputPort(Pins.ONBOARD_SW1, false, Port.ResistorMode.Disabled);
23
24         // Create a boolean member to hold the button state.
25         bool buttonState = false;
26
27         // Loop forever
28         while (true)
29         {
30             // Read the button's state
31             buttonState = button.Read();
32
33             // Illuminate the LED based on a button press
34             onboardLED.Write(buttonState);
35
36         }
37
38     }
39 }

 

 

 

 

 

 

La caída en el ejemplo de código anterior es el hecho de que tenemos que comprobar constantemente el estado del puerto de entrada y llevar a cabo sobre la base de esa condición. Un método más limpio, más eficiente es utilizar un InterruptPort. El InterruptPort nos permite crear un controlador de eventos para cuando el estado del botón cambia. Un ejemplo es el siguiente:

 

 

/// <summary>
2 /// Button Event Handler Tutorial for the Netduino 2 and Netduino Plus 2
3 /// </summary>
4 public class Program
5 {
6
7     // Define a new Output Pin to the Onboard LED
8     // NOTE: Setting initial state of the pin to "false"
9     private static OutputPort onboardLED = new OutputPort(Pins.ONBOARD_LED, false);
10
11     /// <summary>
12     /// Main method runs on startup
13     /// </summary>
14     public static void Main()
15     {
16         // Define a new Interrupt Port to the Onboard Switch
17         // NOTE: Set glitch filter to "false".  This is only needed to
18         //       prevent switch bounce and in this case not needed.
19         // NOTE: The pullup on the MCU is disabled and the onboard switch
20         //       has a pulldown resistor so we set this to "Disabled".
21         // NOTE: The switch has a pulldown resistor and is connected to 3.3 (logic HIGH)
22         //       so the switch will show HIGH when pressed or LOW when released.
23         // NOTE: Set the Interrupt to fire on both edges (HIGH and LOW). (More Info:http://msdn.microsoft.com/en-us/library/cc532332.aspx)
24         InterruptPort button = new InterruptPort(Pins.ONBOARD_SW1, false, Port.ResistorMode.Disabled, Port.InterruptMode.InterruptEdgeBoth);
25
26         // Create an event handler for the button
27         button.OnInterrupt += new NativeEventHandler(button_OnInterrupt);
28
29         // Wait forever
30         Thread.Sleep(Timeout.Infinite);
31     }
32
33     /// <summary>
34     /// Event Handler for the Button Press
35     /// </summary>
36     /// <param name="port"></param>
37     /// <param name="data"></param>
38     /// <param name="time"></param>
39     private static void button_OnInterrupt(uint port, uint data, DateTime time)
40     {
41         // Activate the LED when button is pressed (data == 1)
42         onboardLED.Write(data == 1);
43     }
44
45 }

 

En este ejemplo por encima de los ajustes son muy similares para el filtro de glitch y el Modo de Resistencia . Un ajuste adicional para el InterruptPort es el modo de interrupción de la que nos hemos fijado para InterruptEdgeBoth . En este escenario, el evento se disparará cuando el pin cambia de bajo a alto o alto a bajo. En esencia, esto nos permite manejar la prensa y la liberación del botón. Cuando esto sucede el evento OnInterrupt se dispara . El controlador de eventos que permite transformar el LED encendido o apagado en función del estado del botón.

 

La parte eficaz de este ejemplo es que el programa se va a dormir después de la inicialización de los puertos. Se despertará cuando se controla el evento , y luego irá a dormir de nuevo hasta el próximo evento .

Yo mencioné al principio me cubra el uso de componentes externos y aquí lo haré. Usted puede utilizar un botón externo o LED externo , ya sea con ejemplo . Usted sólo tendrá que conectar los componentes adecuados . Para este ejemplo vamos a necesitar nuestra Netduino 2, una placa, un botón , un LED y dos resistencias, una de 1kΩ  y una de 470Ω .

 

En ambos casos vamos a querer cambiar los pernos que estamos utilizando a los pines externos en lugar de la en los pines de mesa. Para estos ejemplos cualquiera de los pines digitales (D0-D13) se puede utilizar.

 

Vamos a utilizar D0 y D1 en nuestro ejemplo.

 

Dónde estamos utilizando el bordo LED como así:

OutputPort onboardLED = new OutputPort (Pins.ONBOARD_LED, false);

 

Vamos a querer cambiar utilizando el pin 1 para nuestro ejemplo:

OutputPort onboardLED = new OutputPort (Pins.GPIO_PIN_D1, false);

 

Dónde estamos usando el botón del tablero en que así:

Botón InputPort = new InputPort (Pins.ONBOARD_SW1, falso, Port.ResistorMode.Disabled);

 

Vamos a querer cambiar utilizando Pin 0 para nuestro ejemplo:

Botón InputPort = new InputPort (Pins.GPIO_PIN_D0, falso, Port.ResistorMode.Disabled);

 

 

Fuente aqui

Anuncios

Vigila tus hijos con este peculiar sensor


El CES  de las Vegas de este año no ha parado de mostrar cosas interesantes como  este original sistema llamado  Sen.se Mother que permite  monitorear a tus hijos gracias a su  diseño  que es muy amigable,    lo cual lo hace todavía más curioso.

Ha llegado el momento para los dispositivos que aprenden a vivir con nosotros en vez de aprender a vivir con ellos. Los sensores que entiendan las cosas sin necesidad de que se les diga . Baterías que duren más de un año .  Dispositivos sin botones simples. Sen.se Mother y sus sensores se han diseñado para integrarse en su vida y adaptarse a su comportamiento sin necesidad de ningún esfuerzo , entrenamiento o cuidado de usted.

Su condición física , la salud , la seguridad o el confort doméstico no están aislados , los reinos independientes de su vida. Juntos tejen la trama de sus días y de interactuar unos con otros . De un vistazo y en un solo lugar se puede encontrar momentos grandes y pequeños, mayores y benignos preocupaciones, priorizados según su importancia y urgencia. Por fin se puede soltar las piezas del rompecabezas de su vida en su lugar

La idea subyacente del sistema es  que nuestras necesidades cambian constantemente, de hecho algunos sólo duran unos instantes por lo que ya  no es necesario un dispositivo especializado para manejar cada uno de ello  ,o pequeños gadgets (llamados >Motion Cookies) que permiten realizar el seguimiento del movimiento, temperatura o la distancia entre lacookie y la mother  y  son los primeros miembros esenciales de la siempre creciente familia Sense Madre.Son Pequeños y resbaladizos, y se pueden poner a casi cualquier cosa. Ellos tienen el poder para detectar y comprender los movimientos de los objetos y las personas

Su creadores denuncian que dejemos de  descartar dispositivos cuando el servicio que prestan ya no es de ningún interés para usted por lo qeu han  diseñado sensores que pueden readaptarse dentro de unos minutos para resolver sus preocupaciones actuales . Usos dura toda la vida , o un par de horas , para preguntas críticas o mundanas – usted puede confiar Sense Madre y sus galletas con la tarea sin pensarlo dos veces , si su necesidad merece un dispositivo dedicado .

Obviamente el tema de la privacidad también la han perseguido  pues   se puede  pulsar el botón de pausa en la aplicación de teléfono inteligente o simplemente eliminar la cookie relacionada desde su ubicación. Todos los datos generados por los dispositivos que compra el usuario son del usuario  En cualquier momento, usted puede, por supuesto, optar por eliminar todos los datos grabado  y por  ultimo tampoco  hay necesidad de pagar una cuota de suscripción

¿Como se usan?

  • Seleccione lo que desea Sense madre que haga por ti
  • Ponga un movimiento Galleta en el objeto apropiado
  • Iniciar el seguimiento de la actividad
  • Reciba alertas y notificaciones cuando sea necesario mediante un aplicación especifica
  • Noticias Senseboard de todo su vida:Tener un par de minutos de sobra? Hojea el libro de cuentos que le dice su propia historia. Todo lo que usted pidió Sense madre a tener en cuenta es en ese país. Echa un vistazo a los titulares del día. Separar lo que merece su atención y lo que es normal o de rutina. Algo llama su interés? Sólo tiene que tocar para explorar con todo detalle.

¿Qué te importa lo de hoy?

Aplicaciones para ayudarle a sentirse mejor, recuperar la calma, saben a sí mismo ya su entorno, hacer la vida más fácil. Sense Mother sabrá cómo ayudarle en cada vez más áreas de su vida diaria. Seleccione la aplicación que satisfaga sus necesidades y preocupaciones actuales. Sense Mother y las cookies sabran perfectamente adaptarse. No todos los problemas duran toda la vida.

Una vez que se solucione el problema, sólo tiene que elegir otra aplicación. Estas son algunas de las primeras aplicaciones  curiosas que han creado:

  • Walk:¿Eres lo suficientemente activo para mantenerse en forma ? Monitorear el número de pasos que usted hace, las distancias que camina , las calorías que quema .
  • café expreso:¿Cuántos cafés expreso usted elabora ? ¿Usted Toma muchos de ellos en la noche ? ¡Entérate antes de tirar  fuera  las cápsulas .
  • presencia:¿Hay alguien en casa en este momento? Bajar automáticamente el termostato cuando no hay nadie allí.
  • dientes:¿De verdad se cepille los dientes mejor que tus hijos? Acepte el reto y lo mejor van a dar el ejemplo.
  • intrusión:Supervisar el acceso a su casa. Obtener un aviso cuando se detecta actividad inusual cuando usted está ausente .
  • medicación:Siempre tome sus medicamentos a tiempo . Recibe una notificación si se le olvida . Vigilar la regularidad de su consumo .
  • temperatura:Mida la temperatura de todo el mundo le parezca. Recibe un aviso si se va por encima o por debajo del rango normal.
  • bebida:Beber suficiente agua es importante para mantenerse en forma . Evaluar la cantidad de agua que usted bebe cada recordatorios day.Get si usted no bebe suficiente .
  • sueño:Dormir mejor . Despierta descansado . Medir la perfección la calidad de su sueño y ser despertado suavemente en el mejor momento .
  • Plantas:¿A veces se olvida de regar las plantas? Esta App se asegura de que usted está saciar su sed y te recuerda si es necesario.
  • misterios:Todos tenemos nuestros pequeños secretos que no se permite que nadie más que tocar . Mantenga un ojo en la suya y ser advertido si se mueven .
  • nevera:¡Entérate si la puerta de la nevera se deja abierta y se calienta . Al mismo tiempo , no perder de vista su picoteo entre las comidas.

Detalles técnicos de la Madre

TAMAÑO 160mm x 90mm
PESO 450gr
CONEXIÓN Conexión Ethernet con cable al router
POTENCIA 100 y 240 voltios de entrada
USO Uso de interior solamente
DISPOSITIVOS MÓVILES iPhone, iPad (iOS 6.1 +) Android (4.0 +)
COMPUTADORAS Cualquier equipo con una versión reciente de un navegador de gran
SEGURIDAD Mother Sense obviamente no es un juguete y debe mantenerse fuera del alcance de los niños

Para seguir con lo extraño, tiene un precio de 165 dólares ¿será el gadget definitivo ???

Fuente aqui