December 2012 - Posts
Os deseo una agradable cena de noche vieja en compañía de los vuestros.
También espero que a partir de Enero seamos capaces de construir nuevos escenarios que nos permitan volvernos a subir al andamio :-))
Feliz Transición.
Salud, Paz y Amor!!
PepLluis
Una buena forma de empezar, es poder disponer un "paso" a "paso". Atendiendo a la consulta de un lector, me complace compartir con vosotros un punto de entrada para leer la temperatura y la humedad con un "Cerbuino Bee"
Una vez lanzado Visual Studio 2010 con los SDK's de netmf QFE2 y el SDK 4.2 de GHI, desde el menú 'Archivo' >
· Nuevo Projecto>Visual Basic>Gadgeteer>Net gadgeteer Application (NETMF 4.2)>Asignar nombre>Aceptar
Una vez en el diseñador y desde el 'toolbox' pestaña 'Gadgeteer Mainboars' seleccionar : Fez Cerbuino Bee, Luego desde la pestaña "seeed" arrastrar y soltar el modulo 'TemperatureHumidity', según la siguiente imagen :
Copiar/Pegar el siguiente código.

En el editor Seleccionar la pestaña "Program.vb".
Imports GT = Gadgeteer
Imports GTM = Gadgeteer.Modules
Imports Gadgeteer.Modules.Seeed
' Ejemplo de lectura de temperatura / humedad
Partial Public Class Program
Private WithEvents timer As GT.Timer = New GT.Timer(1000)
Public Sub ProgramStarted()
timer.Start()
Debug.Print("Program Started")
End Sub
Private blink As Boolean
Private Sub timer_Tick(timer As Gadgeteer.Timer) Handles timer.Tick
Mainboard.SetDebugLED(blink)
blink = Not blink
temperatureHumidity.RequestMeasurement()
End Sub
Private Sub temperatureHumidity_MeasurementComplete(sender As Gadgeteer.Modules.Seeed.TemperatureHumidity, temperature As Double, relativeHumidity As Double) Handles temperatureHumidity.MeasurementComplete
Debug.Print("Temperature :" + temperature.ToString())
Debug.Print("Humidity : " + relativeHumidity.ToString())
End Sub
End Class
y en la ventana de 'Debug' podreis visualizar los resultados de la captura :-)

Espero que os sea útil,
Feliz Año!
PepLluis,
Un punto de entrada para probar que todo esta bien después de actualizar a QFE2.
using System.Threading;
using Microsoft.SPOT.Hardware;
using Mountaineer.Netmf.Hardware;
public class BlinkingLed
{
public static void Main()
{
var Rojo = new OutputPort(OnboardIO.LedRed, false);
var Verde = new OutputPort(OnboardIO.LedGreen, false);
var Azul = new OutputPort(OnboardIO.LedBlue, false);
while (true)
{
Rojo.Write(true);
Thread.Sleep(500);
Verde.Write(true);
Thread.Sleep(500);
Azul.Write(true);
Thread.Sleep(1000);
Rojo.Write(false);
Thread.Sleep(500);
Verde.Write(false);
Thread.Sleep(500);
Azul.Write(false);
Thread.Sleep(100);
}
}
}
Saludos,
PepLluis.
Empezando con Netduino Plus en QFE2 y el SDK para 4.2
- Instalar Visual Studio en cualquiera de sus versiones
- Descargar / Instalar el SDK 4.2 QFE2 de Microframework
- Descargar / Instalar el SDK 4.2 de Netduino
- Lanzar Visual Studio.
- Nuevo Proyecto
- Microframework
- Netduino Plus
- Copiar el siguiente código y reemplazar por el existente en modulo1
Imports Microsoft.SPOT
Imports Microsoft.SPOT.Hardware
Imports SecretLabs.NETMF.Hardware
Imports SecretLabs.NETMF.Hardware.NetduinoPlus
Module Module1
Private led As New OutputPort(NetduinoPlus.Pins.ONBOARD_LED, False)
Private tmr1 As New Timer(New TimerCallback(AddressOf tic), Nothing, 1000, 500)
Sub Main()
Thread.Sleep(System.Threading.Timeout.Infinite)
End Sub
Private onOff As Boolean
Sub tic()
onOff = Not onOff
led.Write(onOff)
End Sub
End Module
Feliz Navidad!
PepLluis,
Feliz Navidad y Prospero año nuevo!
Con la esperanza de reconciliar a la sociedad para encontrar nuevas formas de recuperar puestos de trabajo y el bienestar de las personas necesitadas.
Sin duda necesitamos caminar juntos para definir nuevos escenarios para que el mundo sea relamente mejor.
Mis mejores deseos para que este 2013 se convierta en el Año de pan con azúcar y vino!
Merry Christmas to you and your family as well
Hoping reconcile the society to find new ways to recover jobs and the day to day welfare for the needy people.
With no doubt we need walk together to define a new scenario to make the world better.
My best wishes to make this 2013 becomes the Year of bread with sugar and wine!
:-))
Catalonian Claus.
This is an small sample code to show how to build our basic gadgeteer web server using VB with Spider and the 4.2 RTM Premium library's.
Start Visual Studio with a new gadgeteer project and copy/paste...That's all! (remember add library's references)
Imports System.Net
Imports System.Text
Imports Microsoft.SPOT.Hardware
Imports GHI.Premium.Net
Imports GT = Gadgeteer
Partial Public Class Program
Private WithEvents ethernet As New EthernetBuiltIn()
'
Private ip As New IPAddress(New Byte() {0, 0, 0, 0})
Private WithEvents myweb As WebEvent
'
Private WithEvents timer As GT.Timer = New GT.Timer(1000)
Public Sub ProgramStarted()
'Initialize adapter
ethernet.Open()
ethernet.NetworkInterface.EnableDhcp()
ethernet.NetworkInterface.EnableDynamicDns()
NetworkInterfaceExtension.AssignNetworkingStackTo(ethernet)
'app timer on
timer.Start()
End Sub
Private Sub ethernet_CableConnectivityChanged(sender As Object, e As GHI.Premium.Net.EthernetBuiltIn.CableConnectivityEventArgs) Handles ethernet.CableConnectivityChanged
If e.IsConnected Then
' reboot device after plug... to startup again
PowerState.RebootDevice(True)
End If
End Sub
Private Sub ReceivedWebEventHandler(path As String, method As WebServer.HttpMethod, responder As Responder) Handles myweb.WebEventReceived
' webb response
responder.Respond(New System.Text.UTF8Encoding().GetBytes("Hello from " + ip.ToString() + " At " + System.DateTime.Now.ToString()), "text/html")
End Sub
Private tic As Boolean
Private Sub timer_Tick(timer As Gadgeteer.Timer) Handles timer.Tick
' blink debug led... system working
tic = Not tic
Mainboard.SetDebugLED(tic)
' get an IP from DHCP if no previous one
If (ip.ToString = "0.0.0.0") And ethernet.IsCableConnected Then
ip = IPAddress.GetDefaultLocalAddress()
WebServer.StartLocalServer(ip.ToString(), 80)
myweb = WebServer.SetupWebEvent("Hello")
End If
End Sub
End Class
Regards,
PepLluis,
Pos Eso! :-) un nuevo gran recurso.
La Biblioteca de imagenes de Visual Studio contiene imágenes de aplicaciones que aparecen en Microsoft Visual Studio, Microsoft Windows, Office System y otros programas de Microsoft, esta biblioteca continene más de 5.000 imágenes que se pueden utilizar para crear aplicaciones que se parecezcan visualmente y de forma consistente con el estilo de software de Microsoft.
http://www.microsoft.com/en-us/download/details.aspx?id=35825
Saludos,
PepLluis,
Conversando con un compañero que en 2009 asistimos a una charla sobre Microframework en el TechEd de Barcelona, me comentaba que era una lástima que netmf no pudiera ejecutar hilos….. Mi respuesta fue: Pero hombre! desde entonces ha llovido mucho!! Jajajaja.
Si habrá llovido que incluso ya está en ruta la versión 4.3 que se integrara en Visual Studio 2012.
Evidentemente estos últimos cuatro años como ya vengo diciendo en los últimos post, han dado una sana madurez a netmf. Si además del montón de funcionalidades actuales de netmf también disponemos de threats.
Valga este modesto ejemplo, para manejar dos ‘threading.timers’ :
Imports Microsoft.SPOT
Imports System.Threading
Namespace MFConsoleApplication1
Public Module Module1
Private tmr1 As New Timer(New TimerCallback(AddressOf tic), Nothing, 1000, 500)
Private tmr2 As New Timer(New TimerCallback(AddressOf tac), Nothing, 1000, 500)
Sub Main()
' desfasar el primer hilo del segundo para crear el Tic Tac
Thread.Sleep(500)
' poner a dormir al hilo principal
Thread.Sleep(System.Threading.Timeout.Infinite)
End Sub
' CallBack para tic
Sub tic(ByVal state As Object)
Debug.Print("Tic")
End Sub
' CallBack para cac
Sub tac(ByVal state As Object)
Debug.Print("Tac")
End Sub
End Module
End Namespace
Saludos,
PepLluis,