curso netduino presentacion

72
Universidad Juárez Autónoma de Tabasco División Académica de Informática y Sistemas

Upload: ramirezpd

Post on 24-Dec-2015

16 views

Category:

Documents


2 download

DESCRIPTION

Curso Netduino

TRANSCRIPT

Page 1: Curso Netduino Presentacion

Universidad Juárez Autónoma de TabascoDivisión Académica de Informática y Sistemas

Page 2: Curso Netduino Presentacion

El Internet de las cosas con NetduinoInstructor:J. Adrián Sevilla Azuara

Page 3: Curso Netduino Presentacion

Contenido:1 Introducción 2 Mi primer aplicación3 Practicas4 Uso de Hilos5 Web Server6 Proyecto final

Page 4: Curso Netduino Presentacion

IntroducciónTemas:• El Internet de las cosas• ¿Qué es Netduino?• Otros tipos de Hardware• Antes de empezar…

Page 5: Curso Netduino Presentacion

¿Qué es Netduino?

Netduino es una plataforma electrónica de código abierto (open source) usándo el .NET Micro Framework.Contiene un microcontrolador de 32 bits y un gran entorno de desarrollo que es adecuado para ingenieros y aficionados.

Page 6: Curso Netduino Presentacion

Netduino

• Netduino combina 20 E/S de propósito general.

• .NET Micro Framework combina la facilidad de alto nivel de codificación y las características de los micro controladores.

Page 7: Curso Netduino Presentacion

Netduino

• Programación orientada a objetos, hilo de ejecución, depuración línea por línea y puntos de ruptura.

• Netduino es compatible con los pines de los Arduino Shields y muchos otros accesorios pre-construidos como la localización GPS, control de servomotores y baterías.

Page 8: Curso Netduino Presentacion

Especificaciones Técnicas

Page 9: Curso Netduino Presentacion

Especificaciones Técnicas

Procesador y Memoria:• STMicro 32-bit

microcontroller• Speed: 168MHz, Cortex-

M4• Code Storage: 384 KB• RAM: 100+ KB

Potencia:• Alimetación: 7.5 - 9.0 VDC

o USB• Salida: 5 VDC y 3.3 VDC

regulados.• Corriente Máxima: 25 mA

por pin.• microcontroller max

current: est. 125 mA total• digital i/o are 3.3 V--but 5 V

tolerant

Page 10: Curso Netduino Presentacion

Especificaciones Técnicas

Page 11: Curso Netduino Presentacion

Requerimientos de Sistema

• Windowso Windows XP, Vista, 7 y 8 (32 y 64 bits).o Procesador igual o mayor a 1.6 Ghz.o 1Gb de Ram.

• Mac y Linuxo Maquina Virtual con Windows (VMWare o VirtualBox).o Mono.

Para mas información Visitar http://www.netduino.com/

Page 12: Curso Netduino Presentacion

Otros tipos de Hardware

ARDUINO

NET FEZ

Page 13: Curso Netduino Presentacion

Antes de empezar…

Page 14: Curso Netduino Presentacion

Antes de empezar…

Page 15: Curso Netduino Presentacion

Los componentes

Page 16: Curso Netduino Presentacion

Paso 1

Colocar adhesivos

Page 17: Curso Netduino Presentacion

Paso 2

Instalar el Netduino en la proto para después sujetarlo con El UTP

El amarre debe estar a un lado de la proto para que no estorbe.

Cuidar que la parte negativa, quede hacia abajo.

Page 18: Curso Netduino Presentacion

Paso 3Instalar 5 leds con la patita Negativa en el agujero de la proto en las conexiones negativas.Colocar UTP, para conectar GND con el lado negativo de la proto.

Empiece a colocar leds en el agujero 31.

Page 19: Curso Netduino Presentacion

Paso 4Instalar 4 Botones, a partir del agujero 17, cuidando que se instalen en la separación que forma el canal central.

Colocar un puente entre el bus Negativo.

Page 20: Curso Netduino Presentacion

Paso 5Conectar el primer Led de la Izquierda con la salida 13 del Netduino y así sucesivamente hasta llegar a la salida 9.

Para que el cable no estorbe, puede escalonar las conexiones entre los buses B,C,D y E.

Page 21: Curso Netduino Presentacion

Paso 6

Colocar la conexión a los botones, empezando de la salida 8 al primer botón de la izquierda.Es importante conectarlo en el lado derecho del botón.

Conectar al bus negativo cada uno de los botones.Es importante conectar el lado derecho.

Page 22: Curso Netduino Presentacion

Paso 7

Conectar el cable para el potenciómetro, Agujero F30 a salida análoga 0, agujero F28 a la salida análoga 1 y agujero F26 a la salida análoga 2.

Salida Análoga

Insertar el potenciómetro en los agujeros G30,G28 Y G26.

Page 23: Curso Netduino Presentacion

Paso 8

Revisar la firmeza de las conexiones que ya ha terminado.

Page 24: Curso Netduino Presentacion

El cable Cruzado

Page 25: Curso Netduino Presentacion
Page 26: Curso Netduino Presentacion

Mi primer aplicaciónObjetivos:• Instalar el software• Crear Mi primer aplicación

Page 27: Curso Netduino Presentacion

Instalar el Software

• Para poder programar el Netduino es necesario instalar el software para ese fin en el siguiente orden:o Microsoft Visual Studio C# Express 2010o .NET Micro Framework SDK v4.2o Netduino SDK v4.2.1.0 (32-bit) or Netduino SDK v4.2.1.0 (64-bit)

Page 28: Curso Netduino Presentacion

Crear Mi primer aplicación

Page 29: Curso Netduino Presentacion

PracticasTemas:• Puertos de salida.• Puertos de entrada.• Puertos analogos.

Page 30: Curso Netduino Presentacion

Practica 1

• Encender un Led de forma intermitente al momento de presionar un botón.

• Abrir el proyecto Practica1 de Visual Studio.• Se destaca el uso de puertos digitales de entrada

y salida.

Page 31: Curso Netduino Presentacion

Practica 2

• Encender y apagar tres Leds de forma de forma seriada, en un ciclo infinito.

• Abrir el proyecto Practica2 de Visual Studio.• Se destaca:

o Uso de un puerto de salida.o Uso de Thread para control de tiempo.

Page 32: Curso Netduino Presentacion

Practica 3

• Encender un led solo cuando se tiene presionado un botón.

• Abrir el proyecto Practica3 de Visual Studio.• Se destaca:

o Uso de un puerto de salida.o Uso de un puerto de entrada.

Page 33: Curso Netduino Presentacion

Practica 4

• Encender un led con base al retardo obtenido del valor del potenciómetro.

• Abrir el proyecto Practica4 de Visual Studio.• Se destaca:

o Uso de un puerto de salida.o Uso de un puerto de entrada analógica.

Page 34: Curso Netduino Presentacion

Practica 5

• Encender una serie de leds dando el efecto de la parrilla del auto Increíble.

• Abrir el proyecto Practica5 de Visual Studio.• Se destaca:

o Uso de un puerto de salida.

Page 35: Curso Netduino Presentacion

Practica 6

• Encender el led 13 cuando este presionado el botón y contar en pantalla una secuencia después de trascurrido cierto tiempo.

• Abrir el proyecto Practica6 de Visual Studio.

Page 36: Curso Netduino Presentacion

Practica 7

• Encender el led 13 cuando este presionado el botón y contar en pantalla una secuencia después de trascurrido cierto tiempo y reiniciar contador.

• Abrir el proyecto Practica7 de Visual Studio.

Page 37: Curso Netduino Presentacion

Practica 8

• Lectura del potenciómetro y presentar el valor en pantalla.

• Abrir el proyecto Practica8 de Visual Studio.

Page 38: Curso Netduino Presentacion

Practica 9

• Encender una serie de leds según la lectura del potenciómetro.

• Abrir el proyecto Practica9 de Visual Studio.

Page 39: Curso Netduino Presentacion

Uso de HilosTemas:• ¿Qué es un Hilo o Thread?• Practica con tareas multiples

Page 40: Curso Netduino Presentacion

Practica 1

• Objetivo: Crear una programación que de forma paralela realice tres procesos, en el microcontrolador Netduino, según el siguiente diagrama:

Page 41: Curso Netduino Presentacion

Paso 1, Crear variables

• Crear variables estáticas de los puertos y botones , con la finalidad de crear salidas o entradas. Salidas: Leds, Entradas: Botones y Potenciómetro.

• Las variables de leds son: led09, led10, led11, led12 y led13.• Las variables de botones son: btn5, btn6, btn7 y btn8.• Las variables del potenciómetro son: bajo, alto y potenciometro_A1, sin

embargo nos referiremos al potenciómetro solo con la variable potenciometro_A1, para obtener su valor.

Page 42: Curso Netduino Presentacion

Paso 2, crear funciones.

• Segmentar por tareas las actividades que realizará la aplicación.

• El separar por tareas especificas nos ayudará a crear los hilos de ejecución.

Page 43: Curso Netduino Presentacion

Paso 3, crear hilos

• Inicializar cada una de las tareas (funciones) como un nuevo hilo de ejecución por separado, creando de esta forma tareas que se ejecutarán de forma simultanea.

• Es importante mandar a “Dormir” el proceso principal, para ejecutar las tareas paralelas.

Page 44: Curso Netduino Presentacion

Web ServerTemas:• Crear un Web Server.• Aceptar comandos.

Page 45: Curso Netduino Presentacion

Practica 2

• Objetivo: Crear un cliente que pueda leer el estado de los botones del Netduino, mediante una conexión de red, según el diagrama:

Page 46: Curso Netduino Presentacion

Paso 1, Programación del

Servidor

• Inicializar la interfaz de red con una dirección ip.• Crear una variable con la clase Server. (Creada más adelante).• Inicializar un proceso nuevo con la acción

“IniciarCapturaDeSocket”, que inicia la tarea de escuchar las peticiones del cliente.

Page 47: Curso Netduino Presentacion

Paso 2, Crear Clase Server

• Crear variables.• Crear el constructor principal.

Page 48: Curso Netduino Presentacion

Paso 3, Crear funciones

• La función necesaria para escuchar las peticiones y traducirlas.• La función necesaria para leer el valor de los botones en forma paralela.

Page 49: Curso Netduino Presentacion

Paso 4, Programación de cliente

• Para el servidor se crea una clase denominada Cliente que es la encargada de realizar la conexión mediante tres parámetros,: dirección, puerto y comando.

public string conectar(string direccion, string puerto, string comando)

Page 50: Curso Netduino Presentacion

Paso 4, Programación de cliente

• Código de la página Web (Web Aplication).

<%@ Page Title="Practica 2" Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="Practica2.aspx.cs" Inherits="Practica2" %>

<asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server"></asp:Content><asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server"><script type="text/javascript"> function callkeydownhandler(evnt) { var ev = (evnt) ? evnt : event; var code = (ev.which) ? ev.which : event.keyCode; if (code == 37) { location.href = "Practica1.aspx"; } if (code == 39) { location.href = "Practica3.aspx"; } } if (window.document.addEventListener) { window.document.addEventListener("keydown", callkeydownhandler, false); } else { window.document.attachEvent("onkeydown", callkeydownhandler); }</script> <div> <h1>Practica 2<asp:Timer ID="Timer1" runat="server" Interval="200" ontick="Timer1_Tick"> </asp:Timer> </h1> <h3>Revisar el estado de los botones</h3> <p></p>

<asp:UpdatePanel ID="UpdatePanel1" runat="server" RenderMode="Inline"> <Triggers> <asp:AsyncPostBackTrigger ControlID="Timer1" EventName="Tick"> </asp:AsyncPostBackTrigger> </Triggers> <ContentTemplate>

<table class="style1"> <tr class ="estado"> <td> <asp:Label ID="Label1" runat="server" Text="Estado de los botones"></asp:Label> &nbsp;</td> </tr> <tr> <td> <asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Leer estado de botones ahora" /> </td> </tr> </table>

<br />

Page 51: Curso Netduino Presentacion

Paso 4, Programación de cliente 2

• <table class="style1">• <tr>• <td>• BOTON 5</td>• <td>• BOTON 6</td>• <td>• BOTON 7</td>• <td>• BOTON 8</td>• </tr>• <tr>• <td>• <asp:CheckBox ID="CheckBox1" runat="server" Enabled="False" Text="Activado" />• </td>• <td>• <asp:CheckBox ID="CheckBox2" runat="server" Enabled="False" Text="Activado" />• </td>• <td>• <asp:CheckBox ID="CheckBox3" runat="server" Enabled="False" Text="Activado" />• </td>• <td>• <asp:CheckBox ID="CheckBox4" runat="server" Enabled="False" Text="Activado" />• </td>• </tr>• <tr>• <td>• <asp:Image ID="bt5L" runat="server" ImageUrl="~/Images/Botonlibre.jpg" • Height="100px" Width="100px" />• <asp:Image ID="bt5P" runat="server" ImageUrl="~/Images/BotonPresionado.jpg" • Height="100px" Width="100px" Visible="False" />• </td>• <td>• <asp:Image ID="bt6L" runat="server" ImageUrl="~/Images/Botonlibre.jpg" Height="100px" Width="100px" />• <asp:Image ID="bt6P" runat="server" ImageUrl="~/Images/BotonPresionado.jpg" Height="100px" Width="100px"• Visible="False" />• </td>• <td>• <asp:Image ID="bt7L" runat="server" ImageUrl="~/Images/Botonlibre.jpg" Height="100px" Width="100px" />• <asp:Image ID="bt7P" runat="server" ImageUrl="~/Images/BotonPresionado.jpg" Height="100px" Width="100px"• Visible="False" />• </td>• <td>• <asp:Image ID="bt8L" runat="server" ImageUrl="~/Images/Botonlibre.jpg" Height="100px" Width="100px" />• <asp:Image ID="bt8P" runat="server" ImageUrl="~/Images/BotonPresionado.jpg" Height="100px" Width="100px"• Visible="False" />• </td>• </tr>• </table>

• </ContentTemplate>• </asp:UpdatePanel>

• <p>Para el desarrollo de esta actividad fué necesario configurar en el Netduino:</p>• <ul>• <li>Configuración de las entradas y salidas.</li>• <li>Configuración del puerto Ethernet, con IPV4 y protocolo TCP.</li>• <li>Crear dos procesos en paralelo mediante el uso de Thread.</li>• <li>El proceso "LeerBotones().</li>• <li>El proceso escuchar las peticiones del cliente.</li>• </ul>• <p>Para el lado cliente fue necesario:</p>• <ul>• <li>Crear una interfaz para recibir información del Netduino.</li>• <li>Crear una clase para la conexión al Netduino.</li>• <li>Mandar el comando al Netduino.</li>• <li>Analizar y presentar la información recibida.</li>• <li>Reenviar el comando cada 2 segundos.</li>• </ul>• </div>• </asp:Content>

Page 52: Curso Netduino Presentacion

Paso 4, Programación de cliente 3

• Código de ejecución oculto.• Se solicita la conexión mediante la clase Cliente, el resultado

se ejecuta en el Netduino

using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.UI;using System.Web.UI.WebControls;

public partial class Practica1 : System.Web.UI.Page{

protected void Page_Load(object sender, EventArgs e) {

} protected void Button1_Click(object sender, EventArgs e) { Cliente NuevoCliente = new Cliente();

NuevoCliente.conectar("192.168.1.93", "80", "ledsarreglo"); }}

Page 53: Curso Netduino Presentacion

Practica 3

• Objetivo: Crear un cliente que pueda leer el estado del potenciometro del Netduino, mediante una conexión de red, según el diagrama:

Page 54: Curso Netduino Presentacion

Paso 1, Programación del

Servidor

• Inicializar la interfaz de red con una dirección ip.• Crear una variable con la clase Server. (Creada más adelante).• Inicializar un proceso nuevo con la acción

“IniciarCapturaDeSocket”, que inicia la tarea de escuchar las peticiones del cliente.

Page 55: Curso Netduino Presentacion

Paso 2, Crear Clase Server

• Crear variables.• Crear el constructor principal.

Page 56: Curso Netduino Presentacion

Paso 3, Crear funciones

• La función necesaria para escuchar las peticiones y traducirlas.• La función necesaria para leer el valor del potenciometro en

forma paralela.

Page 57: Curso Netduino Presentacion

Paso 4, Programación de cliente

• Para el servidor se crea una clase denominada Cliente que es la encargada de realizar la conexión mediante tres parámetros,: dirección, puerto y comando.

public string conectar(string direccion, string puerto, string comando)

Page 58: Curso Netduino Presentacion

Paso 4, Programación de cliente

• Código de la página Web (Web Aplication).

<%@ Page Title="" Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="Practica3.aspx.cs" Inherits="Practica3" %>

<asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server"></asp:Content><asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server"><script type="text/javascript"> function callkeydownhandler(evnt) { var ev = (evnt) ? evnt : event; var code = (ev.which) ? ev.which : event.keyCode; if (code == 37) { location.href = "Practica2.aspx"; } if (code == 39) { location.href = "Practica4.aspx"; } } if (window.document.addEventListener) { window.document.addEventListener("keydown", callkeydownhandler, false); } else { window.document.attachEvent("onkeydown", callkeydownhandler); }</script> <div> <h1>Practica 3<asp:Timer ID="Timer1" runat="server" Interval="200" ontick="Timer1_Tick"> </asp:Timer> </h1>

<h3>Obtener el valor del potenciómetro:</h3> <p></p>

Page 59: Curso Netduino Presentacion

Paso 4, Programación de cliente

• Código de la página Web (Web Aplication).

<asp:UpdatePanel ID="UpdatePanel1" runat="server"> <Triggers> <asp:AsyncPostBackTrigger ControlID="Timer1" EventName="Tick"> </asp:AsyncPostBackTrigger> </Triggers> <ContentTemplate> <table class="style1"> <tr> <td><asp:Label ID="Label1" runat="server" Text="Valor del potenciometro" CssClass="potenciometro"></asp:Label> &nbsp;<br /> </td> </tr> <tr> <td> <asp:Button ID="Button1" runat="server" Text="Obtener el valor del potenciometro." /> </td> </tr> </table> </ContentTemplate> </asp:UpdatePanel>

<br /> <br /> <br />

</div></asp:Content>

Page 60: Curso Netduino Presentacion

Practica 4

• Objetivo: Crear un cliente que pueda leer el estado de los botones, el potenciómetro y encender o apagar los Leds del Netduino, mediante una conexión de red, según el diagrama:

Page 61: Curso Netduino Presentacion

Paso 1, Programación del

Servidor

• Inicializar la interfaz de red con una dirección ip.• Crear una variable con la clase Server. (Creada más adelante).• Inicializar un proceso nuevo con la acción

“IniciarCapturaDeSocket”, que inicia la tarea de escuchar las peticiones del cliente.

Page 62: Curso Netduino Presentacion

Paso 2, Crear Clase Server

• Crear variables.• Crear el constructor principal.

Page 63: Curso Netduino Presentacion

Paso 3, Crear funciones

• La función necesaria para escuchar las peticiones y traducirlas.• La función necesaria para leer los botones, leer el estado de los leds, el valor

del potenciometro, función que apague y encienda los leds en forma paralela.

Page 64: Curso Netduino Presentacion

Paso 4, Programación de cliente

• Para el servidor se crea una clase denominada Cliente que es la encargada de realizar la conexión mediante tres parámetros,: dirección, puerto y comando.

public string conectar(string direccion, string puerto, string comando)

Page 65: Curso Netduino Presentacion

Paso 4, Programación de cliente

• Código de la página Web (Web Aplication).

<%@ Page Title="Practica 4" Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="Practica4.aspx.cs" Inherits="Practica4" %>

<asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server"><script type="text/javascript"> function callkeydownhandler(evnt) { var ev = (evnt) ? evnt : event; var code = (ev.which) ? ev.which : event.keyCode; if (code == 37) { location.href = "Practica3.aspx"; } if (code == 39) { location.href = "Codigo.aspx"; } } if (window.document.addEventListener) { window.document.addEventListener("keydown", callkeydownhandler, false); } else { window.document.attachEvent("onkeydown", callkeydownhandler); }</script> <style type="text/css"> .style1 { width=100%; } </style></asp:Content><asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server"> <div> <h1>Practica 4</h1> <h3>Obtener el estado de los botones.</h3> <asp:Timer ID="Timer1" runat="server" Interval="500" ontick="Timer1_Tick"> </asp:Timer> <asp:UpdatePanel ID="UpdatePanel1" runat="server"> <ContentTemplate> <table class="style1"> <tr class ="estado"> <td><asp:Label CssClass="estado" ID="Label1" runat="server" Text="Estado de los botones"></asp:Label> &nbsp;</td> </tr> <tr> <td> <asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Leer valores ahora" /> </td> </tr> </table>

Page 66: Curso Netduino Presentacion

Paso 4, Programación de cliente

• Código de la página Web (Web Aplication).

<br /> <table class="style1"> <tr> <td> BOTON 5</td> <td> BOTON 6</td> <td class="style1"> BOTON 7</td> <td> BOTON 8</td> </tr> <tr> <td> <asp:CheckBox ID="CheckBox1" runat="server" Enabled="False" Text="Activado" /> </td> <td> <asp:CheckBox ID="CheckBox2" runat="server" Enabled="False" Text="Activado" /> </td> <td > <asp:CheckBox ID="CheckBox3" runat="server" Enabled="False" Text="Activado" /> </td> <td> <asp:CheckBox ID="CheckBox4" runat="server" Enabled="False" Text="Activado" /> </td> </tr> <tr> <td style="margin-left: 40px"> <asp:Image ID="bt5L" runat="server" ImageUrl="~/Images/Botonlibre.jpg" Height="100px" Width="100px" /> <asp:Image ID="bt5P" runat="server" ImageUrl="~/Images/BotonPresionado.jpg" Height="100px" Width="100px" Visible="False" /> </td> <td> <asp:Image ID="bt6L" runat="server" ImageUrl="~/Images/Botonlibre.jpg" Height="100px" Width="100px" /> <asp:Image ID="bt6P" runat="server" ImageUrl="~/Images/BotonPresionado.jpg" Height="100px" Width="100px" Visible="False" /> </td>

Page 67: Curso Netduino Presentacion

Paso 4, Programación de cliente

• Código de la página Web (Web Aplication).

<td class="style1"> <asp:Image ID="bt7L" runat="server" ImageUrl="~/Images/Botonlibre.jpg" Height="100px" Width="100px" /> <asp:Image ID="bt7P" runat="server" ImageUrl="~/Images/BotonPresionado.jpg" Height="100px" Width="100px" Visible="False" /> </td> <td> <asp:Image ID="bt8L" runat="server" ImageUrl="~/Images/Botonlibre.jpg" Height="100px" Width="100px" /> <asp:Image ID="bt8P" runat="server" ImageUrl="~/Images/BotonPresionado.jpg" Height="100px" Width="100px" Visible="False" /> </td> </tr> </table> <p> </p> <table class="style1"> <tr> <td colspan="2">Led 13</td> <td colspan="2">Led 12</td> <td colspan="2">Led 11</td> <td colspan="2">Led 10</td> <td colspan="2">Led 09</td> </tr> <tr> <td colspan="2"> <asp:Image ID="ibtn13a" runat="server" Height="50px" ImageUrl="~/Images/ledapagado.jpg" Width="50px" /> <asp:Image ID="ibtn13e" runat="server" Height="50px" ImageUrl="~/Images/ledencendido.jpg" Width="50px" Visible="False" /> </td> <td colspan="2"> <asp:Image ID="ibtn12a" runat="server" Height="50px" ImageUrl="~/Images/ledapagado.jpg" Width="50px" /> <asp:Image ID="ibtn12e" runat="server" Height="50px" ImageUrl="~/Images/ledencendido.jpg" Width="50px" Visible="False" /> </td>

Page 68: Curso Netduino Presentacion

Paso 4, Programación de cliente

• Código de la página Web (Web Aplication).

<td colspan="2"> <asp:Image ID="ibtn11a" runat="server" Height="50px" ImageUrl="~/Images/ledapagado.jpg" Width="50px" /> <asp:Image ID="ibtn11e" runat="server" Height="50px" ImageUrl="~/Images/ledencendido.jpg" Width="50px" Visible="False" /> </td> <td colspan="2"> <asp:Image ID="ibtn10a" runat="server" Height="50px" ImageUrl="~/Images/ledapagado.jpg" Width="50px" /> <asp:Image ID="ibtn10e" runat="server" Height="50px" ImageUrl="~/Images/ledencendido.jpg" Width="50px" Visible="False" /> </td> <td colspan="2"> <asp:Image ID="ibtn09a" runat="server" Height="50px" ImageUrl="~/Images/ledapagado.jpg" Width="50px" /> <asp:Image ID="ibtn09e" runat="server" Height="50px" ImageUrl="~/Images/ledencendido.jpg" Width="50px" Visible="False" /> </td> </tr> <tr> <td style="margin-left: 120px"> <asp:Button ID="bled13a" runat="server" onclick="bled13a_Click" Text="OFF" Width="50px" /> </td> <td style="margin-left: 40px"> <asp:Button ID="bled13e" runat="server" Text="ON" Width="50px" onclick="bled13e_Click" /> </td> <td> <asp:Button ID="bled12a" runat="server" Text="OFF" Width="50px" onclick="bled12a_Click" /> </td> <td> <asp:Button ID="bled12e" runat="server" Text="ON" Width="50px" onclick="bled12e_Click" /> </td>

Page 69: Curso Netduino Presentacion

Paso 4, Programación de cliente

• Código de la página Web (Web Aplication).

<td class="style1"> <asp:Button ID="bled11a" runat="server" Text="OFF" Width="50px" onclick="bled11a_Click" /> </td> <td class="style1"> <asp:Button ID="bled11e" runat="server" Text="ON" Width="50px" onclick="bled11e_Click" /> </td> <td> <asp:Button ID="bled10a" runat="server" Text="OFF" Width="50px" onclick="bled10a_Click" /> </td> <td> <asp:Button ID="bled10e" runat="server" Text="ON" Width="50px" onclick="bled10e_Click" /> </td> <td> <asp:Button ID="bled09a" runat="server" Text="OFF" Width="50px" onclick="bled09a_Click" /> </td> <td> <asp:Button ID="bled09e" runat="server" Text="ON" Width="50px" onclick="bled09e_Click" /> </td> </tr> </table> </ContentTemplate> <Triggers> <asp:AsyncPostBackTrigger ControlID="Timer1" EventName="Tick" /> </Triggers> </asp:UpdatePanel>

</div></asp:Content>

Page 70: Curso Netduino Presentacion

Proyecto final

Page 71: Curso Netduino Presentacion

Aplicación Cliente/Servidor

• Cada uno de los participantes deberá crear lo siguiente:

• Una aplicación cliente que controle el Netduino y haga lo siguiente:o Encender y apagar cada led.o Leer el valor del potenciómetro.o Conocer el estado de los botones.o Agregar función de coordinación de leds.

• La programación del Netduino para aceptar los comandos por el puerto de conexión 80.

Page 72: Curso Netduino Presentacion

Web Server

• Cada uno de los participantes deberá crear lo siguiente:

• Programar al Netduino para que funcione como un Web Server, deberá cumplir lo siguiente:o Aceptar conexiones por el puerto 80.o Responder con una página en Html.o La página deberá mostrar las opciones correspondientes para controlar

los dispositivos conectados a la proto, leds, botones y potenciómetro.o Se sugiere el uso de Javascrip.