Mostrando entradas con la etiqueta Microframework. Mostrar todas las entradas
Mostrando entradas con la etiqueta Microframework. Mostrar todas las entradas

jueves, 8 de enero de 2015

¿Por qué usar Microframework es una buena opción?

No siempre el Arduino es la mejor opción para realizar un proyecto embebido, en éste artículo expondremos un caso donde el microframework nos permitirá ahorrar algún dinero, espacio físico y tiempo de desarrollo.

Vayamos al grano...


Supongamos que necesitamos desarrollar una solución de hardware donde se requiera almacenamiento en una microsd y una conexión de red.

Para éste ejemplo haremos la comparación entre el clásico Arduino Uno y el NetduinoPlus2 que es una implementación de microframework OpenSource con el factor de forma del Arduino. Para ser más justos utilizaremos todos los precios de un solo distribuidor en este caso Sparkfun.

vayamos directo al grano con la siguiente gráfica.



Si nos vamos por la opción del Arduino tendríamos las siguiente limitantes: 

1) Hay que usar 2 (dos) tarjetas, eso implica que se ocupa el doble de espacio que el NetduinoPlus2

2) No crean que siguen disponiendo de 32k para el programa, la librería Ethernet de Arduino usa 1532 bytes.

3) Al estar usando una tarjeta SPI de hecho ya están usando un pin dedicado a la tarjeta Ethernet y microSD.

4) Poca memoria RAM sólo 2k.

5) Están gastando mucha plata 24.95 + 45,95 = 70,9 dólares.

Ahora bien veamos que nos da el NetduinoPlus2

1) Menos espacio, una sola tarjeta.

2) 384Kb que no se ven afectados por uso de la Ethernet puesto que ya está descontado éste espacio.

3) Los puertos SPI están libres.

4) El microprocesador es de 32bits vs 8 bits del Arduino.


5) Al ser microframework el nivel de abstracción es demasiado elevado, imaginense poder usar el poderoso framework .NET sin tantas complicaciones (manejos de hilos, complejos programas que serían muy difícil de implementar en C++).

6) Solo hay que gastar 59.95 dólares.


Aquí aplica bien el dicho de las ofertas "Más por Menos".


Ahora bien el Microframework no es la perfección, por ejemplo aquí no puedes tener SoftwareSerial algo que para el Arduino es algo sencillo de hacer; si queremos sacar el MCU del Arduino no hay problema, el hardware nos sale mas barato, con el Netduino no es algo tan trivial; no hay que dejarse engañar de la frecuencia del NetduinoPlus2, aún cuando es 10 veces superior a la del Arduino recuerden que ejecuta un código intermedio, si borramos el microframework del NetduinoPlus2 y trabajamos directamente en el STM32 si veríamos un enorme rendimiento pero sólo en C/C++ o sea sin .NET.








sábado, 3 de enero de 2015

Manejando las pantallas TouchScreen de 4DSystems con Microframework

Iniciamos este nuevo año con una publicación sobre la interfaz gráfica 
uLCD-32PTU de la empresa australiana 4dSystems.

Si hacen clic en el link del producto podrán ver todas las bondades.

El modelo 32PTU se maneja a través del puerto serial, eso nos permite desarrollar una interfaz gráfica prácticamente en todos los tipos de microprocesadores que hay en el mercado incluyendo por supuesto en nuestro apreciado IntelEdison, claro hay que aclarar que no estaríamos ejecutando Gnome ni KDE ni nada que se le parezca solamente algo mas sencillo que nos permita interactuar con el usuario.

El módulo es muy completo prácticamente se puede hacer de todo, uno puede trabajar en bajo nivel con un lenguaje script que se llama 4dgl y también se puede usar el modo ViSi que posee un conjunto de controles gráficos preconstruidos.

El detalle que le veo a este modulo en particular es que sólo está soportado para Arduino y Raspberry; en realidad cuando uno trabaja con estas librerías ellas se encargan de ocultar el protocolo del fabricante para que el desarrollador se enfoque en lo que desea mostrar en la pantalla.

El esquema de la libreria a primera vista suele ser un poco incómodo uno no está acostumbrado a trabajar de la manera en que están construidas, uno quisiera al menos que se parezca a trabajar con Qt. Aunado al hecho de que últimamente he estado trabajando con microframework específicamente con el NetduinoPlus decidí iniciar la construcción de una librería en C#.

Si ustedes tienen la oportunidad de trabajar con Arduino y desean manejar muchas pantallas el código se va tornando inmanejable; debido a eso empecé a desarrollar una implementación de WinForm para Microframework utilizando el protocolo de ViSi y le puse como nombre VisiForm.

Estoy muy conforme con la implantación que estoy haciendo ya que prácticamente uno cree que está trabajando con C# en Windows y resulta que es Netduino con la pantalla de 4DSystems.

Si ustedes han desarrollado en C# en Windows verán que la librería VisiForm prácticamente está quedando igual:


Se puede observar que la ventana MessageBox hereda de Form igual que Windows, VisiForm.Form contiene el manejo de mensajes del protocolo VisiGenie codificado en microframework permitiendo que el programador se centre en su código C# como si trabajara para una ventana de Windows, por otra parte quise respetar el nombre de los controles de Visi por que no son exactamente iguales a los de WinForm, por ejemplo hay 11 tipos de botones frente a 1 en Windows, si quieres más tipos de botones en Windows tienes que hacerlos o comprarlos a un tercero. El control Strings que se ve en el código fuente anterior es equivalente al Label de Windows, ViSi también tiene un label pero es solo lectura así que preferí dejar el nombre del control original.

Ahora veamos el punto de entrada, se puede observar que es muy parecido al de WinForm.



Créanme que trabajar un sistema con muchas ventanas en Arduino o Raspberry con esta pantalla es algo difícil de mantener, con la implantación que estoy desarrollando VisiForm es súper sencillo ya que todo el protocolo ViSi está codificado en C# al estilo de manejo de mensajes de Windows, me tocó recordar mis viejos tiempo cuando desarrollaba en Windows 3.1 con Lenguaje C, jejeje.

La libreria VisiForm aún esta en desarrollo, es un poco grande también pienso hacer un VisiForm para C++ aunque creo que solo para Raspberry no estoy muy seguro de que el Arduino tenga suficiente memoria para soportarla de todas maneras haré el intento.

A continuación un pequeño video de un sistema biométrico con Netduino y la pantalla de 4dSystems







martes, 16 de julio de 2013

Netduino Plus 2 otra opcion al estilo Arduino

No esta de mas ver otro tipo de hardware, el netduino plus 2 es una buena opción a la hora de utilizar una tarjeta con el mismo pinout del arduino pero con microframework, lo que mas me gusta de éste con respecto a la primera version (netduino plus) es la velocidad de procesamiento, realmente es mas rápido, aunque de primera vista algunos se sorprenden del porqué cambiaron el chip ethernet por uno de 10mbits con respecto al de 10/100 que tiene su predecesor; lo primero que se me vino a la mente es que con el arduino plus inicial habia que tener cuidado con el trafico de la LAN, si es excesivo ejemplo una oficina con muchos empleados, una universidad o ambientes similares se podia quedar congelado, puesto que no le daba tiempo de procesar tantas solicitudes, espero que no ocurra lo mismo que este nuevo diseño, de todas maneras hay que ponerlo a prueba.

Manos a la obra luego les aviso...