Month: October 2012

ThingSpeak Community : la mia uPLibrary tra i tutorials !

Chi segue il mio blog sa che il mese scorso, la mia libreria uPLibrary dedicata al .Net Micro Framework si è arricchita di un client per la piattaforma ThingSpeak per l’Internet of Things. Oggi ho avuto la sorpresa di vedere referenziato il mio progetto tra i tutorials che proprio ThingSpeak offre sul sito per spingere l’utilizzo del proprio sistema di IoT !

6136.thingspeak_2BF23963

Ovviamente, non posso che esserne felice ! Eccovi il link !

ioProgrammo : una sola applicazione, più piattaforme mobile

7026.4-180g_3037668A

Questo mese su “ioProgrammo” (n. 180, Novembre 2012) c’è un mio articolo dedicato al framework PhoneGap per lo sviluppo mobile.

Si parte dalle problematiche tipiche dello sviluppo di un’applicazione mobile per più piattaforme differenti, passando per l’analisi del framework PhoneGap che fornisce un grande aiuto in tal senso, fino ad arrivare ad un esempio pratico con una semplice applicazione in esecuzione su Windows Phone ed Android.

La mia raccomandazione di sempre…non perdetevelo !

AnalogInput : Netduino .Net MF 4.1 vs .Net MF 4.2

Una delle principali novità della versione 4.2 del .Net Micro Framework è il supporto per gli input analogici mediante l’introduzione della classe AnalogInput (nel namespace Microsoft.SPOT.Hardware). Sino a tale versione, ciascun produttore di board che effettuava il porting del framework su di essa, introduceva nel proprio SDK una classe personalizzata per la gestione di tali ingressi. In particolare, anche la SecretLabs, produttrice del Netduino, fornisce la classe AnalogInput (nel namespace SecretLabs.NETMF.Hardware) con la versione 4.1 e che presenta alcune differenza rispetto a quella attualmente introdotta nella nuova versione. Grazie a tale novità, lo sviluppatore può lavorare con la medesima classe su più board diverse senza doversi adattare di volta in volta alla specifica implementazione da parte del produttore della stessa.

Vediamo di seguito quali sono le principali differenza tra la AnalogInput del Netduino con la versione .Net Micro Framework 4.1 e la corrispondente unica classe con la versione 4.2 dello stesso framework.

In primo luogo il costruttore, che nel caso del Netduino 4.1 prevede in ingresso il pin di ingresso (enum Cpu.Pin) mentre nel .Net MF 4.2 prevede l’enum Cpu.AnalogChannel.

Per quanto riguarda l’operazione di lettura della grandezza in ingresso (comunque un valore di tensione), nel caso del Netduino 4.1 è previsto il metodo Read() che ritorna un valore intero risultato della conversione eseguita dall’ADC (Analog-Digital Converter). Per ottenere il corrispondente valore di tensione, è necessario eseguire nel codice i propri calcoli tenendo conto della risoluzione dell’ADC (10 bit, valori da 0 a 1023) e la tensione di riferimento (tipicamente 3,3V). Nel caso del .Net MF 4.2, il metodo Read() ritorna un valore compreso tra 0 ed 1 che moltiplicato per la tensione di riferimento, ci fornisce direttamente il valore di tensione letto sul pin. Se vogliamo ottenere il valore intero, risultato della conversione, è necessario utilizzare il metodo ReadRaw(). Inoltre, sono state introdotte le due seguenti proprietà :

  • Offset : rappresenta un offset da sommare alla lettura della Read() prima che venga restituita (il default è ovviamente 0);
  • Scale : rappresenta un fattore di scala per il quale moltiplicare il valore della ReadRaw() prima che venga restituito (il default è ovviamente 1);

Di seguito riporto due esempi di applicazione di entrambe le classi..

Netduino con .Net Micro Framework 4.1

AnalogInput input = new AnalogInput(Pins.GPIO_PIN_A0)

// ritorna un valore tra 0 e 1023 (ADC a 10 bit)
int value = input.Read();

// bisogna calcolare il valore corrispondente della tensione
double volt = value * 3.3 / 1023;

.Net Micro Framework 4.2

AnalogInput input = new AnalogInput(AnalogChannels.ANALOG_PIN_A0)

// ritorna un valore tra 0 e 1023 (ADC a 10 bit)
int rawValue = input.ReadRaw();

// ritorna un valore tra 0 ed 1 che va moltiplicato per
// la ARef per ottenere il valore in Volt della tensione
double volt = input.Read() * 3.3;

Rilasciato .Net Micro Framework 4.3 Beta

Pochi giorni fa è stata rilasciata la versione Beta del .Net Micro Framework 4.3 che porterà con se le seguenti principali novità :

  • supporto per Visual Studio 2012 e per la versione Windows Desktop Express;
  • tutte le features dei QFE della 4.2 e vari bug fixes (miglioramento PWM, maggiore affidabilità dello stack lwIP, input analogici, WinUSB e supporto per le ultime versioni del compilatore GCC);
  • migliorate le informazioni di diagnostica;
  • ridotto il tempo di boot;

Per maggiori informazioni, questo è il link alla pagina ufficiale su Codeplex.