DevExperience

.Net Framework, Embedded Systems & Design Patterns Paolo Patierno's Blog

Recent Posts

Apps & Articles

Applicazioni

Pubblicazioni

Tags

Archives

Windows Embedded CE 6.0

Building Embedded Devices using Windows Embedded CE 6.0 R2

My Profiles

 

My Embedded101 Blog

Sto leggendo...

Open Source Hardware

Windows Embedded

.Net Micro Framework

.Net Framework & CLR

Email Notifications

Le novità di Windows Embedded Compact 2013

Oggi ho seguito uno dei webcast Microsoft tenuto da Douglas Boling, autore di numerosi libri su Windows CE, e con argomento principe le novità di Windows Embedded Compact 2013, la cui uscita sul mercato è imminente.

Le novità sono molteplici soprattutto in termini di performance del sistema operativo e di strumenti di sviluppo disponibili. La base del sistema sarà Windows CE 8 che ha ereditato il meglio da Windows Phone 8 e come sempre sarà “componibile” attraverso il suo ampio catalogo.

Il miglioramento in termini di performance è strettamente legato al file system che garantisce un aumento della velocità di caricamento delle applicazioni ed un tempo di accesso in lettura ridotto. Inoltre, è stato introdotto lo “snapshot boot” che garantisce un tempo di boot molto basso nel caso di cold start.

Per quanto riguarda l’ambiente di sviluppo, Platform Builder 2013 è “ospitato” in Visual Studio 2012 con tutte le migliorie che ne derivano; è interessante osservare che è possibile un’installazione side-by-side con Platform Builder 7.

Lo sviluppo di applicazioni native può avvalersi dell’ultimo compilatore Microsoft C++ e delle novità del C++11, nonchè di una versione aggiornata delle librerie MFC, STL e ATL. Per quanto riguarda lo sviluppo in codice managed, c’è il principale passaggio dal .Net Compact Framework 3.5 al 3.9 con l’introduzione del Garbage Collector generazionale. Inoltre, gli assembly del framework sono condivisi tra più app domains e non duplicati come accadeva nelle versioni precedenti.

Notevoli miglioramenti sono stati apportati allo sviluppo con XAML ed al networking con il pieno supporto a IPv6.

Non ci resta che aspettare il rilascio ed toccare con mano tutte queste novità !

Posted: 30 Apr 2013 19:41 da Paolo | con no comments
Inserito sotto: ,
ioProgrammo : Netduino robot in movimento con il Kinect e la “nuvola” di Google…

4-185g

Questo mese su “ioProgrammo” (n. 185, Maggio/Giugno 2013) ci sono due miei articoli notevolmente diversi nei contenuti e nelle tecnologie utilizzate.

Il primo articolo è completamente dedicato alla demo di una sessione che ho tenuto con Clemente Giorio alla Microsoft Embedded Conference 2013 che ho organizzato con la community di cui faccio parte, il DotNetCampania, e che si è tenuta a Napoli nel mese di Gennaio. Obiettivo dell’articolo è la realizzazione di un robot basato sulla board Netduino Plus e .Net Micro Framework che è possibile pilotare attraverso il Kinect, facendo uso di comandi vocali e gestures.

Il secondo articolo, pur essendo un “Microsoftiano” convinto, è dedicato alla tecnologia Cloud del concorrente Google. Vedremo infatti come muovere i primi passi nell’ambito del Google App Engine, dallo sviluppo con Eclipse al deploy in pochi semplici passaggi. Ovviamente, non mancherò in futuro di scrivere un articolo sulla controparte di casa Microsoft, Windows Azure !

Come sempre, non mi stancherò mai di dirlo, non perdetevelo !

Sorriso

.Net Campus 2013 : un appuntamento annuale imperdibile !

banner-468x60_2013_9

Domani, come ogni anno, c’è un appuntamento fisso che non posso assolutamente perdere…il .NetCampus !!

Anche questa volta l’agenda è ricchissima di appuntamenti e di sessioni di assoluto interesse, considerando anche l’elevato livello degli speaker (molti dei quali sono MVP), tra i quali ricordo Michele Aponte, nostro presidente del DotNetCampania con la sua sessione “going mobile with asp.net mvc4, html5 e jquery mobile”.

Quest’anno la mia scelta sulle sessioni da seguire sarà monopolizzata dall’avvento di Windows 8, per cui penso che rimarrò “segregato” nella medesima aula dalle 9:00 alle 16:00 per poter approfondire al meglio tale argomento ! Non avendo il dono dell’ubiquità mi dispiace perdere le sessioni su Windows Phone 8….

Oltre alle sessioni, segnalo anche i lab su Windows Azure, Windows 8 e Windows Phone 8.

Per i ritardatari…mi raccomando…le iscrizioni sono ancora aperte e non è mai troppo tardi !

Posted: 12 Apr 2013 6:28 da Paolo | con no comments
Inserito sotto:
Un mio nuovo piccolo progetto su CodePlex : M2Mqtt

m2mqttpng

Ho appena pubblicato su CodePlex un mio piccolo nuovo progetto : M2Mqtt.

Si tratta di un client MQTT (Message Queue Telemetry Transport) che può essere utilizzato su tutte le piattaforme .Net, ovviamente con un occhio particolare al .Net Micro Framework.

Per chi non lo sapesse MQTT è un protocollo per la comunicazione M2M (Machine to Machine) nell’ambito dell’Internet Of Things e per il quale ultimamente è stato avviato un processo di standardizzazione con OASIS. Basti pensare che grazie alla suo notevole “leggerezza”, è stato scelto come protocollo per lo scambio di messaggi attraverso il Facebook Messanger.

Per maggiori informazioni vi rimando al sito ufficiale MQTT ma non mancherò di pubblicare al più presto una serie di articoli dedicati a questo protocollo ed all’utilizzo della libreria che ho appena rilasciato.

Mi raccomando….stay tuned !!

Codemotion 2013 : resoconto di una bella giornata !

599760_542160762472903_1638510498_n

Appena tornato da Codemotion 2013….gran bella esperienza che voglio condividere con voi attraverso una breve descrizione della mia giornata !

La prima sessione è stata ovviamente quella dell’amico Lorenzo Maiorfi (Innovactive) “Sviluppo di soluzioni embedded moderne con .Net Micro Framework” che, dopo una rapida carrellata delle potenzialità del .Net Micro Framework, ci ha fatto vedere in che modo sia possibile pilotare ed acquisire dati da un sistema basato su di esso attraverso un tablet Android. A seguire, nella stessa sala, la presentazione della nuova shield GSM di Arduino con la sessione “Arduino GSM shield. Outdoor Internet of Things” di Federico Vanzati (officine Arduino) e devo dire che Arduino è ancora la piattaforma per hobbisti (e non solo) che tira più di ogni altra, visto il pienone nella sala con numerose persone a seguire in piedi. La stessa sala non si è assolutamente svuotata, con la sessione sulla RaspberryPi, “RaspberryPi, l’emozione nel lampone” tenuta da Luigi Dell’Aquila, anche in questo caso con una serie di demo interessanti che hanno dimostrato quanto sia semplice in Python sviluppare su di essa.

L’ora del pranzo è stata superata brillantemente con un panino con mortadella offerto gentilmente dal team di Codemotion 2013 !

Alla ripresa, ho seguito la stupenda sessione “Ruzzle vs Lego Mindstorm: il robot che usa un tablet” di Alberto Sarullo sulla quale il video che segue vale più di mille parole. Posso solo complimentarmi con l’autore per l’idea e l’intero processo di progettazione e sviluppo !

Per l’ultima sessione, la mia scelta è caduta sull’evoluzione dei protocolli Web, “HTTP, WebSocket, SPDY : evoluzione dei protocolli Web” di Simone Bordet, grazie alla quale è stato messo in evidenza quanto il protocollo HTTP attuale sia assolutamente inadeguato per le applicazioni Web moderne.

In conclusione, la mia prima esperienza al Codemotion è stata positiva e sono sicuro che diventerà per me un appuntamento fisso da non poter perdere ogni anno !

Posted: 23 Mar 2013 16:55 da Paolo | con no comments
Inserito sotto:
Un weekend con Codemotion 2013 !!

Cattura

 

 

 

 

 

 

Questo fine settimana (22-23 Marzo) ci sarà Codemotion 2013 a Roma !

L’evento in realtà inizia già domani 20 Marzo con una serie di workshop interessantissimi sulle più disparate tecnologie, dall’HTML5/CSS3 a Python, da DDD a GitHub…insomma ci sono argomenti per tutti i gusti !

Venerdì 22 inizia invece la due giorni di conference, in cui segnalo la sessione di Michele Aponte, presidente della nostra community DotNetCampania, sullo sviluppo di applicazioni Web Mobile con ASP.NET MVC4, HTML5 e jQuery Mobile. Saranno inoltre di sicuro interesse i lab Microsoft su Windows 8, Windows Phone 8 e Windows Azure oltre a quello su Arduino & Processing. Infine, inizierà alle ore 15:00 un “Surprise hackaton” che terminerà alla stessa ora del giorno successivo (!!!) ed in cui i makers si sfideranno nella realizzazione di un progetto il cui tema verrà stabilito al momento (a sorpresa). Purtroppo io non potrò esserci il Venerdì ma mi rifarò Sabato !

Infatti, il giorno 23, seguirò sicuramente la sessione di Lorenzo Maiorfi (community TinyCLR.it di cui anche io faccio parte) su .Net Micro Framework , così come ho deciso di seguire la sessione sull’evoluzione dei protocolli Web tenuta da Simone Bordet. Per il resto, ho ancora un enorme dubbio data la vastità della scelta e degli argomenti che saranno trattati nell’intera giornata. Anche in questo caso, ci sarà un lab, questa volta di Google, sulla realizzazione di RESTful API con Google App Engine.

Per l’agenda e gli approfondimenti vi rimando al sito ufficiale. Io direi che l’evento è assolutamente da non perdere !! Ci vediamo lì allora ??

Posted: 19 Mar 2013 20:30 da Paolo | con no comments
Inserito sotto:
ioProgrammo : Una stazione meteo con il Netduino

4-184g

Questo mese su “ioProgrammo” (n. 184, Marzo/Aprile 2013) c’è un mio articolo dedicato alla realizzazione di una stazione meteo con il Netduino Plus.

Utilizzando il .Net Micro Framework e la board Netduino Plus, vediamo passo per passo come realizzare una stazione meteo che ci permetta di rilevare temperatura, umidità, luminosità e velocità del vento, tenendo tutto sotto controllo attraverso il Web, mediante un web server integrato ed un “mini-sito” onboard.

La mia raccomandazione di sempre…non perdetevelo !

Sorriso

Online slide e demo della Microsoft Embedded Conference 2013 !

mec

Sono disponibili online le slide ed i codici sorgenti delle demo mostrate alla Microsoft Embedded Conference che si è tenuta a Napoli il 26 Gennaio 2013.

Per tutti coloro che hanno partecipato c’è tutto il materiale da poter utilizzare come punto di partenza per eventuali approfondimenti su quanto hanno già visto, per tutti gli altri c’è la possibilità di valutare ciò che si sono persi !

Occhiolino

Il client per ThingSpeak della μPLibrary su Channel9 !

IoTChannel9

Questa volta su Channel9 c’è il progetto di Duke Nukem di gas sensoring con .Net Gadgeteer che fa uso del mio client ThingSpeak incluso nella uPLibrary. Sono ovviamente contento nel constatare che il mio “piccolo” lavoro possa sempre essere utile ad altri e venga riconosciuto come valido e funzionante….speriamo !!

Se dovesse servirvi, ricordo che è sempre disponibile su Nuget !!

Sorriso

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 Jan 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 Jan 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 Jan 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 Jan 2013 15:51 da Paolo | con no comments
Più Post Pagina seguente »