[#NETMF] Instalando .Net Gadgeteer para Visual Studio 2012 (menudas ostias !!!)

image

Buenas,

después de un par de días en la playita con los amigos de Gusenet, vamos a meter las actualizaciones a cholón en el laptop.

Nota: No me olvido de agradecer a todos los que participaron y coordinaron el eventazo #YoNodeTuXaml. Hubo un montón de cracks y la verdad que pase un rato genial. Mañana escribiré un post al respecto (a ver si @jc_quijano me pasa alguna foto)

Hoy vamos a lo que vamos, desinstalo Visual Studio 2010 y paso a trabajar con .Net Gadgeteer solamente con Visual Studio 2012 (esa es la idea que comenté ayer).

Aquí dejo una crónica de los pasos que he seguido, incluidas las ostias y golpazos que me pegué en el camino para que funcione.

1. Desinstalar versiones anteriores. Aunque con cuidado, no desinstales el SDK (aunque no debería hacerte falta si no haces HW, hazme caso)

image

2. Descargar y ejecutar .NET Gadgeteer Core 2.42.700 desde https://gadgeteer.codeplex.com/releases/view/105366

image

3. 2 minutos después ya está todo OK

image

4. Ahora si, abro Visual Studio 2012 y puedo ver los nuevos tipos de proyecto para Gadgeteer

image

5. Vamos con un new project del tipo NETMF 4.2 y … ostion

    —————————
    Microsoft Visual Studio
    —————————
    The project file ‘C:Users<user>AppDataLocalTempxnrmsqxj.xekTempGadgeteerApp8.csproj’ cannot be opened.

    There is a missing project subtype.
    Subtype: ‘{b69e3092-b931-443c-abe7-7e7b65f2a37f}’ is unsupported by this installation.
    —————————
    OK   Help  
    —————————

6. En el canto de los dientes, que dolor! y no entiendo muy bien porqué. Bueno en realidad si, ha pasado lo siguiente:

Un prerequisito para esta versión de .Net Gadgeteer para Visual Studio 2012 es .Net Micro Framework 4.3. Yo no tengo pensado actualizar mi hardware con lo que pensé que con NETMF 4.2 me alcanzaba, pero no. Me toca descargar NETMF 4.3 SDK desde http://netmf.codeplex.com/downloads/get/500745 y lanzar el instalador.

image

7. Dentro del mismo veo que tiene todas las versiones “anteriores” de NETMF

image

8. Asi que para adelante!

image

9. Y ahora si ya puedo crear nuevo proyecto

10. Escrivir un Hola Mundo!

11. Y … Funciona 😀

En el caso de .Net Gadgeteer es algo así como poner lo siguientes elementos

Con el siguiente diagrama

image

y el siguiente código par encender y apagar el led del button cuando se presiona el mismo

   1: using Gadgeteer.Modules.GHIElectronics;

   2:  

   3: namespace GadgeteerApp12

   4: {

   5:     public partial class Program

   6:     {

   7:         void ProgramStarted()

   8:         {

   9:             button.ButtonPressed += ButtonButtonPressed;

  10:         }

  11:  

  12:         void ButtonButtonPressed(Button sender, Button.ButtonState state)

  13:         {

  14:             button.ToggleLED();

  15:         }

  16:     }

  17: }

Saludos @ Home

El Bruno

image image image

[#PERSONAL] La tecnología al servicio de la ayuda contra el maltrato infantil

image

Buenas,

hoy toca cambiar de tema, en algo casi impensado para mi blog. Sin embargo después de ver el siguiente video podrás ver como tecnologías que parecen que son más para jugar que otra cosa, pueden servir a un propósito específico.

http://youtu.be/N0h1mgpn95s

Dicho esto, no voy a entrar en los aspectos tecnológicos que son simples pero con una efectividad brutal. Voy a felicitar al equipo de Grey Spain por una idea tan buena.

Saludos @ Home

El Bruno

image image image

[#NETMF] .Net Gadgeteer ahora con soporte para #VS2012

image

Buenas

notición para cerrar el fin de semana desde el hotel del juguete en IBI:

Por fin .Net Gadgeteer está soportado en Visual Studio 2012.

Hasta ahora, el DSL para el diseño y programación de aplicaciones con .Net Gadgeteer solo se podía hacer con Visual Studio 2010. Ahora con el release 2.42.700 ya tenemos soporte para Visual Studio 2012. Eso sí, hay que utilizar .Net Micro Framework 4.3, lo que significa que tengo que actualizar mi micro de pruebas. Espero no quedarme con un ladrillo, en cuanto lo haga, pues un post sobre como se hace (:

Por cierto, ya conté alguna vez que todo .Net Gadgeteer es Open Source?

Download: https://gadgeteer.codeplex.com/releases/view/105366

Saludos @ IBI

El Bruno

image image image

[#EVENT] Materiales del evento Internet of Things en Santa Pola #GuseNet #YoNodeTuXaml

image

Buenas,

después de que el gran Jose Miguel Torres nos muestre lo impresionante de Xamarin Studio, aprovecho para publicar los materiales que utilicé en la charla con los amigos de Gusenet.

La presentación es la siguiente

y el código fuente se puede descargar desde http://sdrv.ms/ZDCgna

Saludos @ Santa Pola

El Bruno

image image image

[ELBRUNO] .Net Gadgeteer, HowTo: Mostrar un chart en un display

image

Buenas

Después de 2 días en Paris donde pude escribir poco y aprender mucho; hoy vamos con un ejemplo de código puro y duro

Cómo pintar pixel a pixel un chart en un display con .Net Gadgeteer.

En este ejemplo utilizaremos los siguientes elementos

Organizados con el siguiente esquema:

image

Del código de la aplicación debo resaltar

  • linea 19, en el press del Button además de detener e iniciar el timer, enciendo y apago el LED del boton
  • línea 32, la rutina que dibuja el chart es de lo más simple, incrementa un contador entre 20  40 y luego lo decrementa. También hay un segundo flag para controlar el avance vertical

   1: using GT = Gadgeteer;

   2:  

   3: namespace GadgeteerApp6

   4: {

   5:     public partial class Program

   6:     {

   7:         private uint _axisX = 20;

   8:         private uint _axisY = 20;

   9:         private GT.Timer _timer;

  10:         private bool _modeUp = true;

  11:  

  12:         void ProgramStarted()

  13:         {

  14:             button.ButtonPressed += ButtonButtonPressed;

  15:             _timer = new GT.Timer(200);

  16:             _timer.Tick += TimerTick;

  17:         }

  18:  

  19:         void ButtonButtonPressed(GT.Modules.GHIElectronics.Button sender, GT.Modules.GHIElectronics.Button.ButtonState state)

  20:         {

  21:             button.ToggleLED();

  22:             if (_timer.IsRunning)

  23:             {

  24:                 _timer.Stop();

  25:             }

  26:             else

  27:             {

  28:                 _timer.Start();

  29:             }

  30:         }

  31:  

  32:         void TimerTick(GT.Timer timer)

  33:         {

  34:             _axisY++;

  35:             if (_axisY + 10 > display_T35.SimpleGraphics.Height)

  36:             {

  37:                 display_T35.SimpleGraphics.Clear();

  38:                 _axisY = 20;

  39:             }

  40:             if (_modeUp && _axisX > 40)

  41:             {

  42:                 _modeUp = false;

  43:             }

  44:             if (!_modeUp && _axisX < 20)

  45:             {

  46:                 _modeUp = true;

  47:             }

  48:             if (_modeUp)

  49:             {

  50:                 _axisX++;

  51:             }

  52:             else

  53:             {

  54:                 _axisX--;

  55:             }

  56:             display_T35.SimpleGraphics.SetPixel(GT.Color.Green, _axisX, _axisY);

  57:             for (uint i = 1; i < 15; i++)

  58:             {

  59:                 display_T35.SimpleGraphics.SetPixel(GT.Color.Red, _axisX + i, _axisY);

  60:             }

  61:         }

  62:     }

  63: }

Para muestra nada mejor que un video

Y ya mañana para Santa Pola a mostrar estas cositas en vivo con los amigos de GuseNet.

Saludos @ Home

El Bruno

image image image

[#OPINION] Sobre los techies y el negocio que soportan

image

Buenas,

siempre me pasa cada vez que salgo a eventos cuyo foco no es la tecnología, me doy cuenta de que cuando mucha distancia entre los equipos de IT y las personas de negocio, pues el trabajo es probable que no sirva para nada.

Hoy tuve la suerte de ver en vivo a una persona … ok no puedo decir el nombre, pero creo que puedo dar pistas. Los que conozcan los viajes espaciales conocerán la empresa donde trabaja esta persona, que es una de las pocas empresas comerciales que se dedican a enviar cosas al espacio. Y así como te ponen en órbita de modo comercial, también se ponen las pilas y ganan un par de campeonatos de F1, claro no?

Pues eso, en un determinado momento, se planteó el debate sobre si departamento de tecnología interno o externo, y el ejemplo fue buenísimo. Básicamente se trata de recordar de porqué todos los websites de fines de los 90s y principios del 2000 eran más feos que el parto de Mick Jagger. Muy simple, los dirigian los departamentos de IT. Teníamos websites muy prácticos con listas interminables, procesos super complejos para dar de alta un par de datos y repito, más feo que pisar mierda descalzo. Luego comenzó a meterse en el tema los expertos de negocio y claro .. la cosa fue a mejor.

Nota: cuidado que hoy un sitio web feo, está de moda. Se puede llegar a pensar en que el mismo es así como una técnica de marketing para que asociemos al mismo con una persona. Recomiendo darle un vistazo a este link.

Prosigo, el foco a tener en cuenta es que lo techies son (somos?) muy importantes, tal vez esenciales. Pero un techie sin dirección es como un barco sin timón, puede terminar en cualquier parte. Para ejemplo el caso de Facebook. El Mark Z es un techie, sin embargo es una persona que vive las 25 horas del día pensando en una sola cosa ¿como mejorar Facebook?. Los que lo conocen (yo no he tenido la suerte), dicen que por ser el padre de la red social más grande del mundo, es la persona mas aSocial que existe. Esto es normal, él no es un ejemplo de lo crea, es solo la mano que guía los rumbos de FB.

Ahora bien, ¿y porqué este post? (además de tener tiempo en el Charles de Gaulle) solo para recordar que si eres un techie, en muchas ocasiones es casi más importante trabajar al lado de la persona de negocio que intentar colar con calzador lo último de lo último en tecnología. 5 de las 10 empresas más exitosas a nivel comercial, son de última en el soporte tecnológico sobre el que se apoyan. Eso sí, cumplen su objetivo de manera magistral Risa

Recursos: http://forums.site-reference.com/topic/1897/The-Surprising-Truth-About-Ugly-Websites/

Saludos @ Home

El Bruno

image image image

[#VS2012] HowTo: Crear extension methods en C++ para extender extension methods en C# ya existentes

image

Buenas,

imagehoy me toca escribir algo un poco complicado. El título del post ya te lo dice todo, y si sigues leyendo, seguramente te pica la curiosidad sobre el CÓMO se hace algo que no tiene mucho sentido. Así que bien, en este post no verás nada de código, inclusive ningún ejemplo real, este POST NO SIRVE.

Y si la pregunta que te haces ahora es ¿PORQUÉ? La respuesta es muy fácil,

NO SIEMPRE HAY USAR LOS EJEMPLOS QUE SE LEE EN INTERNET

Si a algún iluminado se le dio por descompilar el core transversal de la Ribbon de Office 2013, y cruzando un jabalí con un lagarto, pudo incrustar esa Ribbon en una aplicación C#, eso no significa que TU DEBAS HACERLO!

Así que bien, este post es un llamado a la solidaridad con 2 puntos a tener en cuenta

  • Estoy pensando seriamente en dejar de poner el código fuente de mis ejemplos en “modo texto”, a partir de ahora deberían ser PNGs. Como bien sabrás, yo no soy ejemplo de nadie, sin embargo he visto como mucha gente hace Copy&Paste y luego pregunta. Lo de pensar ya no está de moda
  • Por favor, piensa y analiza lo que encuentras en internet. Una solución muy molona para un escenario, tal vez a la larga sea un infierno para TU ESCENARIO. Esto no solo aplica a cosas con APIs nativas de Windows (donde ahora sufrirás el tormento eterno de ver como lo haces para WinRT!), sino con modelos de entidades de negocio, con patrones, etc.

Así que bien, antes de irme a París y acordarme de todos los parientes de más de uno … dejo un post que no aporta nada (pero me sirve de consuelo que nadie hará un COPY&PASTE del mismo !)

Image: http://ffffound.com/image/50c1b282a9c00f2d3ec68f8d5af641c75249796f

Saludos @ Home

El Bruno

image image image

[#NETMF] HowTo: Cambiar el color de un LED con un Timer y un Button

image

Buenas

el ejemplo de hoy es un poco más complicado que un Hello World, pero te da mas alegrías. Se trata de utilizar un botón y un LED multicolor para cambiar el color del mismo con un timer.

En este ejemplo utilizaremos

con el siguiente diagrama

image

Y de nuevo, con menos de 50 líneas de código fuente podremos implementar nuestra aplicación.

   1: using Gadgeteer.Modules.GHIElectronics;

   2: using GT = Gadgeteer;

   3:  

   4: namespace GadgeteerApp5

   5: {

   6:     public partial class Program

   7:     {

   8:         private GT.Timer _timer;

   9:  

  10:         void ProgramStarted()

  11:         {

  12:             button.ButtonPressed += ButtonButtonPressed;

  13:             _timer = new GT.Timer(1000);

  14:             _timer.Tick += TimerTick;

  15:         }

  16:  

  17:         void ButtonButtonPressed(Button sender, Button.ButtonState state)

  18:         {

  19:             if (!_timer.IsRunning)

  20:             {

  21:                 _timer.Start();

  22:             }

  23:             else

  24:             {

  25:                 _timer.Stop();

  26:                 multicolorLed.TurnOff();

  27:             }

  28:         }

  29:  

  30:         private void TimerTick(GT.Timer timer)

  31:         {

  32:             var color = multicolorLed.GetCurrentColor();

  33:  

  34:             if (color == GT.Color.Blue)

  35:             {

  36:                 color = GT.Color.Green;

  37:             }

  38:             else if (color == GT.Color.Green)

  39:             {

  40:                 color = GT.Color.Red;

  41:             }

  42:             else

  43:             {

  44:                 color = GT.Color.Blue;

  45:             }

  46:  

  47:             multicolorLed.TurnColor(color);

  48:         }

  49:     }

  50: }

Datos interesantes de la aplicación
  • Línea 13, implementación especial de timer para .Net Gadgeteer. Ni intentes utilizar el timer de .Net, morirás entre terribles sufrimientos
  • Línea 19, en la implementación del button, se inicia el Timer y se apaga el LED cuando se detiene el timer
  • Línea 29, demuestra lo simple que es utilizar el LED, un GetCurrentColor() para obtener el color actual y luego un TurnColor() para definir el color del LED

El video a continuación

 

Saludos @ La Finca

El Bruno

image image image

[#NETMF] Distribuidor oficial en España (gastos de envío gratís a Mordor ;)

image

Buenas

cuando te toca un día como hoy con un viaje relámpago a MADRID-BARCELONA-MADRID, poco tiempo te queda para ponerte al día de las novedades. Sin embargo, hace 2 días me entró un correo del gran Pep LLuis, donde me decía que

SI QUERES COMPRAR COMPONENTES DE ROBOTICA, COMO POR EJEMPLO ALGO DE .NET GADGETEER AQUI EN ESPAÑA, SAVECOMM.NET ES DISTRIBUIDOR OFICIAL .

Así que ya sabes, si te pica la cuiridad por el fabuloso mundo de .Net Microframework, date una vuelta por y seguro que encontrarás lo que necesitas!

HomePage: http://savecomm.net 

Saludos @ Home

El Bruno

image image image

[#TFS2012] Virtual Machines con las demos de #VS2012 y #TFS2012 actualizadas con el Update 2

image

Buenas,

el crack del Brian Keller nos confirma que las virtual machines con Visual Studio 2012 y Team Foundation 2012 ya están actualizadas con el Update 2. El update 2 incluye muchas cosas, así que lo mejor es actualizar los entornos de demo a esta versión. Los detalles de la descarga aquí : http://blogs.msdn.com/b/briankel/archive/2011/09/16/visual-studio-11-application-lifecycle-management-virtual-machine-and-hands-on-labs-demo-scripts.aspx

Fuente: http://blogs.msdn.com/b/briankel/archive/2013/04/17/visual-studio-2012-update-2-alm-virtual-machine-and-hands-on-labs-demo-scripts-now-available.aspx

Saludos @ La Finca

El Bruno

image image image