Buenas
después de presentar ayer .Net Micro Framework, hoy veremos más en detalle .Net Gadgeteer.
.Net Gadgeteer (a partir de ahora GT) es una plataforma Open Source basada en .NET Micro Framework (NETMF). Si te suena Arduino, seguramente también te sonará Netduino que es la misma idea pero basada en NETMF. El punto donde GT se diferencia es que los fabricantes de hardware crean piezas que se montan en un modo plug-and-play con un motherboard. Esto hace que no solo sea divertido el crear gadgets, sino que además es bastante simple ya que no hay que preocuparse por la conexión de los periféricos. El corazón de GT es un módulo EMX que tiene un poco de todo: RAM, un procesador ARM, ethernet, etc. Lo bueno es que está modificado para poder olvidarse de las conexiones. La siguiente imagen muestra un motherboard donde no han dejado espacio para ningún sensor. (Y sí, eso grande que vez debajo es un display táctil que “hostea” apps WPF … o casi)
Nota: Aquí hay más de 100 sensores y motherboards diferentes para ver lo que puedes crear con GT http://www.netmf.com/gadgeteer/showcase.aspx?showcaseid=1
Software
Si te entró la curiosidad, lo único que tienes que saber es que para poder comenzar necesitas los siguientes prerequisitos de software:
-
Microsoft Visual C# Express 2010
You can still use professional or ultimate.
-
Microsoft .NET Micro Framework 4.2 QFE2 SDK
This SDK must be installed before step three.
-
GHI Software Package v4.2 Feb. 18, 2013
Includes NETMF and .NET Gadgeteer SDKs and components. See release notes and known issues.
Nota: Estos son los de la página oficial, cada 2 meses es mejor ver los mismos directamente en http://www.ghielectronics.com/support/.net-micro-framework
Lo siguiente es darse un repaso por el siguiente eBook gratis:
Beginners Guide to C# and the .NET Micro Framework
http://www.ghielectronics.com/downloads/FEZ/Beginners%20guide%20to%20NETMF.pdf
Son 60 páginas que realmente te ayudan a comenzar con GT.
Y ya estás listo para escribir tu primera aplicación. En este caso y para los siguientes ejemplos utilizaremos los sensores que vienen con el Kit “FEZ Spider Starter Kit”:
- FEZ Spider Mainboard
- Display T35 Module (3.5″ with touchscreen)
- USB Client DP Module (with USB cable)
- Camera Module
- 2x Multicolor LED Module (DaisyLink)
- 2x Button Module
- Ethernet J11D Module
- SD Card Module
- USB Host Module
- Extender Module
- Joystick Module
- 10cm IDC cables (included with modules).
- Assorted IDC Cable Pack:
- 4x 5cm IDC cables
- 3x 20cm IDC cables
- 1x 50cm IDC cable
- Reusable Plastic Storage Box
Creando la primera aplicación
Tenemos el hardware, tenemos el software, ahora toca crear el primer hola mundo ;).
1. Abrimos Visual Studio 2010. (en otro post comento porqué VS2010 y no VS2012)
2. Creamos un nuevo proyecto del tipo Visual C# // Gadgeteer // .Net Gadgeteer Appication (NETMF 4.2)
3. En VS2012 veremos un DSL con una placa FEZ Spider, un pequeño tip y en la barra de herramientas todos los sensores disponibles para utilizar.
4. Agregamos un elemento de tipo Button.
5. Luego desde el único conector del Button, conectamos el mismo con el motherboard. Un punto importante es que en el diseñador se nos ofrecerán los slots correctos para la conexión.
6. Una vez conectado tendremos algo similar a …
7. Ahora vamos a agregar un PowerPoint (o punto de poder) jua!. Lo conectamos automáticamente y tendremos lo siguiente:
8. Ya podemos comenzar a escribir código. Si limpiamos de comentarios y basura el código limpio de este ejemplo es el siguiente:
1: using Microsoft.SPOT;
2:
3: namespace GadgeteerApp2
4: {
5: public partial class Program
6: {
7: void ProgramStarted()
8: {
9: Debug.Print("Program Started");
10: }
11: }
12: }
9. Como en una app C# de las de siempre, tenemos intellisense, inline help, etc. Vamos inclusive un button se comporta como un button 😉
10. Y luego ya podemos agregar el “Hello Valentino”
1: using Gadgeteer.Modules.GHIElectronics;
2: using Microsoft.SPOT;
3:
4: namespace GadgeteerApp2
5: {
6: public partial class Program
7: {
8: void ProgramStarted()
9: {
10: button.ButtonPressed += ButtonButtonPressed;
11: Debug.Print("Program Started");
12: }
13:
14: void ButtonButtonPressed(Button sender, Button.ButtonState state)
15: {
16: Debug.Print("Hello Valentino !!!");
17: }
18: }
19: }
11. Impresionante de simple. Ahora me toca armar el juguetito para probarlo “en vivo”
Nota: eso de detrás es un mando de Xbox (sin modelo que me crujen) y también un mate, es lo que tenemos los argentinos en exterior
12. Funciona de una, en cada clic del botón, tenemos el mensaje en el Output window.
Saludos @ Home
El Bruno
Leave a comment