Realmente no tiene ningún misterio, aunque hace falta instalar varias cosas.
Lo primero de todo es bajar e instalar el Microsoft Visual C# Express 2010, durante la instalacion pregunta si queremos instalar también el SQL Server, pero eso no nos sirve para nada así que lo dejaremos desmarcado.
Después hace falta el .NET Micro Framework SDK v4.2, solo se puede instalar teniendo el Microsoft Visual C# Express 2010 así que ahora es el momento de hacerlo.
Por ultimo hace falta el Netduino SDK, hay disponible en versiones de 32 bits y 64 bits, si tu sistema operativo es de 64 bits no intentes instalar la de 32 bits, no te dejara.
Y eso es todo, recordar que siempre es recomendable comprobar si hay nuevas versiones del software en la página oficial.
Una vez instalado todo ya se puede empezar a programar, para ello arrancamos el Microsoft Visual C# 2010 Express y vamos a: Archivo > Nuevo proyecto, y en plantillas elegimos Visual C# > Micro Framework y dentro veremos que hay plantillas para todos los NetDuinos, elegimos, en este caso, Netduino 2 Application.
En la parte inferior podemos darle un nombre al proyecto y después a Aceptar. Al hacerlo se abriera el proyecto que contiene diferentes ficheros, nos interesa el llamado Program.cs que es el que contiene el programa principal:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
using System; using System.Net; using System.Net.Sockets; using System.Threading; using Microsoft.SPOT; using Microsoft.SPOT.Hardware; using SecretLabs.NETMF.Hardware; using SecretLabs.NETMF.Hardware.Netduino; namespace NetduinoApplication1 { public class Program { public static void Main() { // write your code here } } } |
Todo ese código es el programa principal, podemos acortarlo un poco pulsando en cualquier parte vacía del código y pulsando en Organizar instrucciones Using > Quitar y ordenar.
A diferencia de Arduino que tenemos un solo fichero (sin contar las librerías de los módulos) donde ponemos todo el código del programa y donde es obligatorio tener las funciones setup() y loop(), la primera para configurar los pines e instanciar algunas librerías, y la segunda para que el programa se ejecute constantemente, en NetDuino no sucede así.
En NetDuino el código se puede dividir en diferentes partes, bien para usarlas directamente desde el fichero principal o desde el resto de ficheros. Por ejemplo podríamos tener un servo trucado que por sus caracteristicas ya no nos sirve su librería, no directamente, porque si que podríamos crear una clase «MyServo» con sus métodos de «Atrás», «Adelante» y «Izquierda», «Derecha» en el caso de tener dos servos, que nos permitiesen controlar ese servo trucado como dos motores con reductora de forma transparente para el código del programa principal.
Es decir, en vez de montar ese sistema en el mismo fichero dividimos el programa en muchos ficheros con código especifico de esa parte, así encapsulando todo se consigue simplificar el programa y lo hace mas legible.
Para empezar, en el código del ejemplo de arriba, tenemos lo primero un namespace que nos permite agrupar diferentes clases con funciones en común. Por ejemplo podríamos tener el espacio de nombres «motores» y dentro una clase para cada motor, imaginemos que un motor (y su clase) se llama MR12, pero que tenemos también un sensor de luz cuyo nombre es igual… esto no seria problemas ya que cuando queramos hacer uso de la clase del motor ira precedida del espacio de nombres, que sera distinto al del espacio de nombres de los sensores.
Dentro del namespace tenemos una clase que hace de clase principal, eso es así porque en su interior tiene el método Main() que es el método que se busca para iniciar el programa, sin embargo podemos tener si queremos varias clases con métodos Main() pero después en las propiedades del proyecto deberemos de especificarle que clase sera la que inicie el programa, no pueden hacerlo todas, solo una.
Para que nos sirve tener varias clases con métodos Main? pues ahora de primeras se me ocurre para crearnos un proyecto con ejemplos, que cada ejemplo sea una clase que hace algo distinto y para probarlos solo tengamos que grabarle el programa indicándole cual de todas esas clases debe iniciar.
Como decía esto se cambia desde las propiedades del proyecto que están en: Proyecto > Propiedades, ahí podemos elegir el nombre del proyecto, el nombre del espacio de nombres, el objeto que inicia el programa y otras muchas cosas interesantes como el número de versión, año de creación, etc.
Y por ahora eso es todo, en la próxima entrada veremos como se hace el típico Blink como ¡hola mundo! y otro un poco más complejo para probar otras estructuras.