DevExperience

.Net Framework, Internet of Things & M2M, Embedded Systems, Design Patterns Paolo Patierno's Blog

MVP Award

I'm Microsoft MVP for Windows Embedded

Recent Posts

Apps & Articles

Progetti

Pubblicazioni

Tags

My Profiles

 

My Embedded101 Blog

My YouTube Channel

Windows Embedded CE 6.0

Building Embedded Devices using Windows Embedded CE 6.0 R2

Archives

Sto leggendo...

Windows Embedded

.Net Micro Framework

.Net Framework & CLR

Email Notifications

Open Source Hardware

RSS Blog Post

gennaio 2013 - Post

Microsoft Embedded Conference : una fantastica giornata !

Sabato 26 Gennaio, è andata in scena la prima Microsoft Embedded Conference che si è tenuta in quel di Napoli ed organizzata dalla nostra community DotNetCampania insieme a TinyCLR.it. Nonostante fosse Sabato, l’affluenza di pubblico è stata “interessante”, con molte persone che sono giunte addirittura da altre regioni (e ringraziamo anche Marco Dal Pino di DotNetToscana per la sua presenza); ciò ha confermato l’interesse che poteva suscitare l’organizzazione di un evento del genere.

Alle ore 8:30 il team era già all’Holiday Inn per i preparativi e per poter accogliere egregiamente i partecipanti; per fortuna l’evento è iniziato quasi in perfetto orario. La mattinata è iniziata con la keynote del nostro presidente Michele Aponte, che ha presentato la nostra community, e con me che ho presentato l’agenda della giornata oltre alla community TinyCLR.it di cui faccio parte.

Subito dopo, quasi in perfetto orario, siamo partiti con due interessantissime sessioni di Beppe Platania sugli Intelligent Systems e l’offerta completa di Microsoft per il mondo embedded oltre ad un approfondimento su Windows Embedded Compact 7. Dopo il coffee break ed una breve presentazione dello sponsor Platinum “Adeneo” da parte di Valter Minute, Beppe è ritornato in scena per affrontare gli argomenti Windows Embedded Standard 2009 e 7. Subito dopo, ancora Valter per una panoramica sul concetto di sistema embedded, facendo toccare anche con mano alcuni prodotti “made in Italy”. I presenti hanno seguito con molto interesse le sessioni, partecipando attivamente e ponendo numerose domande ai nostri due speaker.

 

Giunta l’ora di pranzo, abbiamo gustato tutti insieme una buonissima pizza, riprendendo l’evento alle 14:15 circa. La prima sessione pomeridiana è toccata a me con un’introduzione ed una panoramica generale sul .Net Micro Framework che ha fatto da apripista per le sessioni successive sul medesimo argomento. La sessione di Mirco Vanini su .Net Gadgeteer ha suscitato notevole interesse nei presenti, grazie anche al forte contenuto pratico oltre che teorico. A conclusione degli interventi per la community TinyCLR.it, il suo ideatore Lorenzo Maiorfi che, insieme a Gianluca Ruta, ha parlato di “Internet of Things” facendo anche divertire le persone in sala, ciascuna dotata del proprio smartphone, nel pilotare via web una piattaforma ricca di attuatori e sensori portata con se per la demo (luci che si accendevano e bazzer che suonavano l’hanno fatta da padrona).

 

A fine giornata, la ciliegina sulla torta, con la sessione di Clemente Giorio (e me) su Kinect e la demo finale che ha visto protagonista un robot, messo in movimento grazie ai comandi vocali (addirittura in napoletano) ed alle gestures.

Un ringraziamento particolare va a tutti i ragazzi del DotNetCampania per l’organizzazione impeccabile, partendo da Antonio Liccardi per la logistica fino a Massimiliano Amendola ed Umberto Collina per il “servizio fotografico”, passando per Gaetano Criscuolo e Giulio D’Angelo che hanno portato con se la loro fantastica attrezzatura grazie alla quale è stata resa possibile la registrazione audio/video dell’evento.

Dopo una giornata così impegnativa ma ben organizzata grazie all’aiuto di tutti, la soddisfazione più grande l’abbiamo ricevuta dai numerosi complimenti che ci sono stati fatti dai partecipanti che come ben sappiamo rappresentano il vero cuore di una community !

A breve saranno messe a disposizione tutte le slide e le demo delle sessioni sul sito ufficiale dell’evento e per questo…stay tuned !

La stazione meteo basata su .Net MF su Channel9 !

Cattura

Il progetto relativo alla stazione meteo che ho già pubblicato su CodePlex è oggetto di uno dei post del blog Coding4Fun su Channel9, come sempre gestito da Greg Duncan.

Sorriso

Posted: 20 gen 2013 10:21 da Paolo | con no comments
Inserito sotto: ,
ioProgrammo : Accesso al file system attraverso il browser

4-183g

Questo mese su “ioProgrammo” (n. 183, Febbraio 2013) c’è un mio articolo dedicato all’accesso al file system dal browser.

Grazie al nuovo standard HTML5, le nostre applicazioni Web hanno la possibilità di gestire un file system “sandboxed” sul PC del client utilizzando numerose e potenti funzioni.

La mia raccomandazione di sempre…non perdetevelo !

Sorriso

Posted: 18 gen 2013 21:26 da Paolo | con no comments
Inserito sotto: , , ,
Netduino 2 : anche il fratello minore del Plus si potenzia !

E’ stato da poco annunciato ufficialmente sul forum di Netduino il rilascio della nuova versione della board base della SecretLabs : il Netduino 2 !

Dopo il rilascio della seconda versione della scheda dotata di connessione Ethernet e microSD onboard, il Netduino Plus 2, finalmente anche la versione entry level ha un successore ancora più potente.

inputandoutput

Microprocessore e memoria

Seguendo la stessa linea del Netduino Plus 2, il microprocessore è completamente diverso da quello del predecessore, infatti si tratta di un STM32F2 (della STMicroelectronics) basato su architettura Cortex-M3 a 120Mhz in luogo di un Atmel ARM7 a 48 Mhz. Anche il salto di memoria è strabiliante ! Il quantitativo di RAM a disposizione è sempre di 60 KB ma il quantitativo di Flash a disposizione della nostra applicazione passa da 128 a 192 KB.

Input ed Output

La board fornisce 22 pin di GPIO (contro i 20 precedenti) di cui una parte assumono le seguenti funzionalità :

  • 6 PWM;

  • 4 UART;

  • Interfaccia SPI;

  • Interfaccia I2C;

Inoltre, ci sono 6 canali ADC con una risoluzione a 12 bit (e non più a 10 bit).

Storage

Ovviamente, questa versione non dispone di un sistema di storage onboard ma mediante un’opportuna shield è possibile aggiungere una microSD fino a 2 GB.

Per tutte le specifiche dettagliate, rimando alla pagina sul sito ufficiale.

La μPLibrary su Channel 9 !

Cattura

La libreria μPLibrary, dedicata al .Net Micro Framework, che ho iniziato a sviluppare ormai da più di un anno e che aggiorno nel tempo con nuove funzionalità, è stata segnalata su Channel 9 nel Blog Coding4Fun grazie all’interessamento di Greg Duncan al seguente link.

Sorriso

Posted: 12 gen 2013 12:01 da Paolo | con no comments
Inserito sotto: ,
Misuriamo la velocità del vento con la μPLibrary

La versione 1.9 della uPLibrary si arricchisce di un altro managed driver per la gestione di un anemometro, strumento utilizzato per la rilevazione della velocità del vento. Il driver è generico, considerando il funzionamento comune per la maggior parte di tutti gli anemometri, ma nel mio caso ho effettuato i test utilizzando questo dispositivo.

6710-WIND01

Quest’ultimo genera 4 impulsi al secondo al rilevamento di una velocità del vento pari a 10 Km/h; tali informazioni sono utili per determinare la velocità del vento reale contando gli impulsi in un intervallo di tempo che può essere impostato. Infatti, La classe Anemometer fornisce un costruttore i cui parametri sono i seguenti :

  • inPin : pin della board utilizzata ed a cui è collegato il segnale di output degli impulsi dell’anemometro;
  • calculatePeriod : periodo nell’ambito del quale il driver deve osservare e valutare la velocità del vento (il valore di default è 5000 ms);
  • referenceWindSpeed : velocità del vento di riferimento in Km/h (il valore di default è 10);
  • referencePulseForSecond : numero di impulsi per secondo di riferimento (il valore di default è 4);

Come si può osservare i valori di default del driver sono quelli relativi all’anemometro utilizzato per i test.

Al suo interno, la classe associa una InterruptPort al pin passato al costruttore ed in corrispondenza dell’event handler conta gli impulsi ricevuto dall’anemometro. Ad esso si aggiunge un Timer che, periodicamente sulla base del periodo fornito al costruttore, determina la velocità del vento in relazione degli impulsi contati. Tale valore è disponibile all’esterno della classe attraverso la proprietà WindSpeed. L’avvio ed il termine delle operazioni di rilevamento da parte del timer sono gestibili attraverso i metodi corrispondenti di Start() e Stop().

   1: Anemometer anemometer = new Anemometer(Pins.GPIO_PIN_D0);
   2: anemometer.Start();
   3:  
   4: while (true)
   5: {
   6:     Debug.Print("Wind speed = " + anemometer.WindSpeed);
   7:     Thread.Sleep(1000);
   8: }

Ricordo come sempre la disponibilità della libreria su Nuget !

Posted: 5 gen 2013 15:51 da Paolo | con no comments
μPLibrary : un nuovo sensore di temperatura ed umidità

Inizio anno…la uPLibrary cresce e passa alla versione 1.9 !

Una delle nuove funzionalità aggiunte è il driver managed per il sensore di temperatura ed umidità SHT1X della Sensirion, che è disponibile in una comodissima breakout board della DFRobot.

SHT1x_Humidity_a_50b6083927d83

Il protocollo di comunicazione previsto è un I2C non standard, per cui le classi del .Net Micro Framework dedicate all’I2C sono inutilizzabili. In questo caso, l’unica soluzione è il bit banging, attraverso il quale i segnali data e clock vanno pilotati direttamente da software. La classe implementata SHT1X mette a disposizione un costruttore al quale passare i due pin utilizzati per i segnali suddetti oltre alla tensione di alimentazione fornita al sensore. Quest’ultima informazione è necessaria per l’applicazione di alcune formule di compensazione per il calcolo del valore reale di temperatura ed umidità a partire dai dati letti dal sensore. I metodi esposti all’esterno sono banalmente i seguenti :

  • ReadTemperature() : fornisce la temperatura rilevata, sulla base dell’unità di misura passata come parametro;
  • ReadRelativeHumidity() : fornisce il valore dell’umidità relativa (in valore percentuale);

L’utilizzo del driver è pressoché immediato e mostrato di seguito con un semplice codice di esempio, utilizzando la scheda Netduino e collegando i segnali DATA e CLOCK del sensore rispettivamente ai pin digitali D0 e D1 della board. Ovviamente, è necessario anche il collegamento della massa (GND) e dell’alimentazione (VCC) in questo caso a 3,3 V.

   1: double temp, humidity;
   2: SHT1X sht1x = new SHT1X(Pins.GPIO_PIN_D0, Pins.GPIO_PIN_D1, SHT1X.Voltage.Vdd_3_5V);
   3:  
   4: while (true)
   5: {
   6:     temp = sht1x.ReadTemperature(SHT1X.TempUnit.Celsius);
   7:     humidity = sht1x.ReadRelativeHumidity();
   8:     Debug.Print("Temp = " + temp + " Humidity =  " + humidity);
   9:     Thread.Sleep(1000);
  10: }

Come sempre la libreria aggiornata è anche disponile su Nuget e quindi comodamente integrabile nella propria applicazione attraverso il relativo package manager di Visual Studio.

Posted: 5 gen 2013 13:44 da Paolo | con no comments
Una stazione meteo con il Netduino Plus !

cloudybar

Oggi ho pubblicato su CodePlex, al seguente link, un nuovo progetto open source relativo alla realizzazione di una stazione meteo mediante l’utilizzo del .Net Micro Framework e la board Netduino Plus.

Img1

Il sistema permette di rilevare la temperatura, l’umidità, la luminosità e la velocità del vento attraverso una serie di sensori e di mostrarne l’andamento in tempo reale attraverso una pagina Web in stile “Metro”, grazie all’utilizzo del Metro UI CSS (http://metroui.org.ua/) ed ovviamente al Web Server integrato. Inoltre, mediante l’attivazione della funziona di data logging è possibile storicizzare tutti i dati sulla microSD.

Img2