Netduino, Arduino y .NET MicroFramework

 

netduino

netduino

Siguiendo con el tema de “Arduino y como introducirse en robótica” me gustaría compartir una alternativa muy interesante con la que me he topado esta tarde: Se trata del proyecto netduino, un proyecto inspirado en Arduino pero con la peculiaridad de que soporta el .NET MicroFramework. Esto es posible gracias de que utiliza un microcontrolador AT91SAM7X512(ARM  7 de Atmel) mas potente y compatible con el MicroFramework.

.NET MicroFramework es una tecnología que “permite” ejecutar aplicaciones .NET (C#) en algunos microcontroladores de 32 bits (Algo parecido a JME). Lo realmente sorprendente del MicroFramework respecto a otras soluciones para .NET como el CompactFramework(típicamente usado en móviles y PDAs) es que el MicroFramework puede ser utilizado en algunos microcontroladores sin MMU¡Y por lo tanto sin Sistema Operativo! (como el WindowsCE y descendientes, con protección de memoria, sistema de archivos, etc.). De hecho, de alguna forma el MicroFramework podría considerarse (mas o menos) un sistema operativo.

WindowsCE+Compact Framework está mas orientado a móviles, PDAs, tablets PC, etc. Por el contrario el .NET Microframework está orientado al desarrollo dispositivos empotrados (lavadoras, microondas, maquinara). El .NET  Microframework además ofrece ciertas librerías “extra” para el manejo de la mayoría de las características y componentes típicos ofrecidos por microcontroladores (Interrupciones, Timers, buses I2C, buses SPI, usb device, etc.) (Pregunta: Creo que el JME no ofrece estas cosas ¿No?).

Con esto, se pueden desarrollar soluciones con un hardware mínimo sin sistema operativo pero al mismo tiempo haciendo use de un lenguaje de muy alto nivel como c# (POO, recolección de basura, hilos (sí), etc).  Otra buena característica es que el desarrollo se realiza con Visual Studio Express (Con toda la mejora en la productividad que esto implica). Otra ventaja mas es que el código del MicroFramework es OpenSource (Apache Public License 2.0) lo que nos permite entender mejor las entrañas e incluso depurar “la máquina virtual” a través de JTAG.  Es curioso, hacía tiempo que Microsoft anunció el .NET MicroFramework pero parece que no le están dando demasiado bombo (no se por qué), pero aún así, en mi opinión, se trata  de una solución increíblemente elegante, especialmente para el diseño e implementación del software.

Algunos aspectos negativos: las librerías de .NET no están disponibles en su totalidad (eso ya sería mucho pedir) y que la ejecución del código IL es interpretada y no “Jitteada” (convertida a código nativo) con la correspondiente pérdida de rendimiento (aún mas perceptible en un microcontrolador de menos de 100 MHz). Otra consecuencia es que no es aplicable a problemas con restricciones de tiempo real (aviones, frenos de los coches, etc.), una de las principales ventajas que permiten la mayoría de microcontroladores ejecutando código nativo. Otra mas es que por ahora solo soporta C# (aún no tengo claro porqué).

Un par de enlaces de referencia para los que estén mas interesados:
Libro en google books: .NET Micro Framework (Second Edition) (Buenas primeras 60 páginas visibles)
– Netduino en Sparkfun(no, no me dan comisión :D)

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: